HAZET社 車輌整備用工具 HAZET スラストブロック 〔品番:2191-6〕 法人 安心と信頼 8689140 事業所限定 送料別途見積り 取寄 HAZET社 車輌整備用工具 HAZET スラストブロック 〔品番:2191-6〕 法人 安心と信頼 8689140 事業所限定 送料別途見積り 取寄 3357円 HAZET社 車輌整備用工具 HAZET スラストブロック 〔品番:2191-6〕[8689140]「送料別途見積り,法人・事業所限定,取寄」 車用品・バイク用品 車用品 メンテナンス用品 ウィンドウケア ワイパーアーム 3357円 HAZET社 車輌整備用工具 HAZET スラストブロック 〔品番:2191-6〕[8689140]「送料別途見積り,法人・事業所限定,取寄」 車用品・バイク用品 車用品 メンテナンス用品 ウィンドウケア ワイパーアーム スラストブロック,3357円,HAZET社,車用品・バイク用品 , 車用品 , メンテナンス用品 , ウィンドウケア , ワイパーアーム,/listener888852.html,車輌整備用工具,kinespace.com,〔品番:2191-6〕[8689140]「送料別途見積り,法人・事業所限定,取寄」,HAZET スラストブロック,3357円,HAZET社,車用品・バイク用品 , 車用品 , メンテナンス用品 , ウィンドウケア , ワイパーアーム,/listener888852.html,車輌整備用工具,kinespace.com,〔品番:2191-6〕[8689140]「送料別途見積り,法人・事業所限定,取寄」,HAZET

HAZET社 車輌整備用工具 HAZET スラストブロック 〔品番:2191-6〕 送料無料(一部地域を除く) 法人 安心と信頼 8689140 事業所限定 送料別途見積り 取寄

HAZET社 車輌整備用工具 HAZET スラストブロック 〔品番:2191-6〕[8689140]「送料別途見積り,法人・事業所限定,取寄」

3357円

HAZET社 車輌整備用工具 HAZET スラストブロック 〔品番:2191-6〕[8689140]「送料別途見積り,法人・事業所限定,取寄」



手作業工具


手作業工具・車輌整備用品・車輌整備用工具

106439

106500

106531

2191-90

4900-2A/3

4900-2A/5

4900-2A

1095767

4900-02A/3

4900-393

4900-394

4900-395

4900-396

4910-16

4910-17

4910-18

4910-19

4910-21

4910-22

4910-24
≪類似品 前 40個 ≪類似品 前20個類似品後 20個≫類似品後 40個≫
手作業工具

HAZET社 車輌整備用工具 HAZET スラストブロック 〔品番:2191-6〕[8689140]「送料別途見積り,法人・事業所限定,取寄」

インターネットにファイルを置いておきたい。そんな時に便利なプログラマーに優しい有料サービス、Amazon Web ServicesのS3を使ってみます。


1. ★エンジンスターター本体も絶賛販売中★ YUPITERUユピテル◆エンジンスターター車種別専用ハーネス◆T-116C◆トヨタ車用のアカウントを取得
2. サービスからS3を選び、バケットを作成、必要ならパブリックアクセスを許可
3. サービスからIAMを選びユーザーを追加、アクセスキーとシークレットキーをメモ
4. グループを追加し、ユーザーに、アクセス権限AmazonS3FullAccessを設定

下記のように設定ファイル s3.secret.yml を記述。

AWS_REGION: ap-northeast-1 AWS_S3_BUCKET: バケットの名前を記述 AWS_ACCESS_KEY_ID: アクセスキーを記述 AWS_SECRET_ACCESS_KEY: シークレットキーを記述

次のようにDeno用JavaScriptを記述 import { S3 } from "https://code4fukui.github.io/S3API/S3.js"; const s3 = await new S3().init(); const fn = "index.html"; await s3.put(fn, "<h1>Hello S3</h1>", { contentType: "text/html" }); console.log(await s3.list()); console.log(s3.getURL(fn)); パブリックに設定したバケットなら、すぐに表示!簡単!

S3API src on GitHub

全国の地方自治体のウェブサイト、定期的に変わってしまうのが悩ましい。

日本の自治体「Webの安全」対策率
今年1月の74%から10%アップ!


都道府県AOSSLダッシュボード (カラム地図7x7)
都道府県サイトはすべてAOSSL化しました!各自治体内でAOSSL化していないところ、都道府県名をクリックすると分かります。


日本の自治体ドメインセンサス
ドメイン別まとめアプリも自動更新されます。1916の地方自治体リスト。ご活用ください!
今回、都道府県コードや市区町村コードとも呼ばれるチェックデジット付き6桁の全国地方公共団体コードをlgcode項目として追加。

全国地方公共団体コードは、5桁や2桁、また数値ではなく、6桁コードで使いましょう(Wikipedia記載は誤り)。5桁だとチェックデジット省略と0埋めとの区別がつかず衝突するコードが12コありました。["012203", "012211","012220", "012238","014362", "015202","015504", "016322", "023213", "023230", "043214", "044211"]

変化を調べる、Node用のdiffを、Deno用に移植し、key/value型のJSON同士で比較できる JSONUtil.diff を作って、過去データと比較するコードも書きました。 const diff = JSONUtil.diff(d1, d2); 追加削除を抽出してくれて便利です。文字列同士のみなら、YAMAHA TS01S トレーニングパッド 練習パッド 【ヤマハ】のdiffCharsをどうぞ。


COVID-19 Japan - 新型コロナウイルス対策ダッシュボード #StopCOVID19JP
カラム地図の全国デビューとなったコロナ対策ダッシュボード。現在患者数/対策病床数が、4.5%まで低下。このまま第6波が来ず、収束してくれると良いですね。

DenoでJavaScriptが楽しい!

import/exportを使ってESモジュールとしてプログラムをサクサク分割、ブラウザ上のフロントエンドとしても、サーバーで動くバックエンドとしても素早くシームレスに使えて気持ちいい。

フロントエンドもバックエンドもJavaScript。 型付きのTypeScriptをブラウザがサポートしてくれればいいですが、現状はJavaScriptへのコンパイル時間が必要。コードを書いて動くまでの間が嫌いなので、スピード重視のJavaScript派です。

楽するコツは、再利用。一度書いたコードは二度と書かない。ちょっとしたコードでも切り出して整理しておけば、URLインポートで簡単に使えます。

安心して使うために必要なのがテストコード。Deno 1.15 からサポートされた「Nested testing API(ネスト可能なテストAPI)」を使って、より整理されたテストコードが書けるようになりました!(まだ --unstable 扱い)

例えば、おなじみフィボナッチ数列を返す関数をシンプルに書きます。 export const fib = (n) => n <= 1 ? n : fib(n - 1) + fib(n - 2); ちゃんと動くかテストするコードを書いてみます。assertEqualsを使って、期待する結果かどうかチェックします。 import * as t from "https://deno.land/std/testing/asserts.ts"; import { fib } from "./fib.js"; Deno.test("fib simple", async (_t) => { await _t.step("fib 1", async () => { t.assertEquals(fib(1), 1); }); }); Deno.test("fib calc", async (_t) => { await _t.step("fib 2", async () => { t.assertEquals(fib(2), 1); }); await _t.step("fib 40", async () => { t.assertEquals(fib(40), 102334155); }); }); 今までの Deno.test に加えて、stepが加わわって、ネストしたテストができるようになりました!(deno test --unstable で動かします)

テストが通ることを確認し、fib(40)がM1 MacBookAirで1秒もかかってしまう問題を解決するとします。 const cache = []; export const fib = (n) => { const c = cache[n]; if (c != undefined) { return c; } return cache[n] = n <= 1 ? n : fib(n - 1) + fib(n - 2); }; テストが通ることと、速度が8msecにと100倍高速化したことが確認できます。

作ったコードに機能を追加したい時、今までの機能がちゃんと動くか心配になります。テストコードを書いておけば、その心配なくどんどんプログラムをきれいにできるわけです。


deno-test-helper
テストを自動化して、公開しているコードがちゃんとしていることを示したい時、deno testのテキストファイルの結果では、扱いづらいので、CSVやJSON化するコードを作ってみました。


CSV形式にすれば表計算ソフトで開けます。deno test --unstable をリダイレクトして使うコマンドライン用ツールです。下記のようにURLを直接していして起動できて便利です。

deno test --unstable example/fib.test.js | deno run https://code4fukui.github.io/deno-test-helper/test2csv.js


--json オプションで、JSON出力もOK。標準入出力のみを使うので、パーミッションが必要ありません。ファイルや通信などでいたずらすることができない Deno のセキュリティモデルのおかげで、URLでimportしても安心です。 (Node.js にはこのようなセキュリティモデルがないので、npm でインストールしたツールが何でもできてしまって怖いのです。最近のハイジャック例

便利なコマンドいろいろつくって公開しましょう!

links
- テスト駆動開発(TDD)で安心、JavaScriptプログラミング!Denoでwebアプリ開発編

毎月最終金曜日はテクノロジーを楽しむサイバーフライデー。鯖江商工会議所にてDX活用セミナー、早速受講いただいた方が見に来てくれました。 コンピューター活用のハードルを物理的と心理的、両面で下げていきましょう。

誰もが驚く商工会議所、鯖江商工会議所1F「SCC / Sabae Creative Community」からハイブリッド講演。 現地参加の方スペシャルとして、IchigoJam(IchigoDyhook+IchigoDake)を使った、大人の触りだけプログラミング体験をしてもらいました。


1行のコードを書いて、LEDが光らせるだけでビビッと来るものがあるんです。
コンピューター、ヤバイ。これこそDX、はじめのいっぽ。


高橋工芸の社長で、ミュージシャンの高橋さん!


Facebook社がMeta社になった今日、その鍵のひとつ、VRゴーグルを初体験いただきました。ぜひ一度体験しておきたい一品です。


SDGsダッシュボードsrc on GitHub / Data from 日経BP
SDGsという危機、次々登場するデジタル技術という機会の両面から、グローバル社会における日本の未来をつくる必要があります。 日経BP社による調査によると、福井県、SDGsの施策認知率日本一とのこと! 福井県や市町の具体的な活動、よく見聞きしますよね!ただ、人任せでは決して達成できないDX、ひとりひとりの参画が必要です。


DX活用セミナー 地域でつくるデジタル社会
本日のスライドもオープンデータ!ただ、論より体験。ぜひご自身の手でご体験ください。やって見たい方は、Hana道場へどうぞ!


新作!エイトセンスバーガー by EIGHT SENSE


ハロウィンテーマ、スイーツたち!


ひさびさの再会、ウェルモ社長、鹿野さん初来鯖!


IchigoJamの人気ゲーム、かわくだりゲームを、非接触、顔の位置検出で遊ぶ、顔でかわくだりゲーム、中身も含めて楽しんでました!


電子工作系ハードウェア好き!


未来見ましょう、創りましょう!


来月11/26-27のサイバーフライデーは、NT鯖江と同時開催!

オープンデータ伝道師として伝えたい、つながるステキさと、つながる力を増やすコツ。
内閣官房IT室からデジタル庁へと管轄が変わって初のオープンデータ伝道師会が開催された日。

Hana道場駐車場に、見慣れない車が停まってました。


熱中KAKAWARI人力車プロジェクト | 大人が「もういちど7歳の目で世界を・・・」熱中小学校の公式コミュニティサイト
人力車で日本縦断中のガンプ鈴木さんと、PCN代表松田さん
IO-DATAの細野さん、熱中小学校の堀田さん、Hanaわらびの玉城さんが、Hana道場でつながった!


ネットで世界中の誰とでも即つながる現代ですが、全員と会って話す時間はありません。


暗いトンネルでの人力車の安全のために、光るネクタイの中身をプレゼント。いろいろ光らせちゃってください!光るメッセージボードを作って、後続車や沿道の人へ何か伝えるのもいいかも。


オープンデータ伝道師会では、もっとオープンデータを広めるにはどうするかディスカッション。 大事なのはやってみせること。まずは政府オープンデータの質を高めて、お手本を示すのが一番!

政府のお手本、オープンデータ伝道師としての行動で示しましょう。 オープンデータ伝道師会のGitHub上の組織を作って、ひとまずオープンデータ伝道師リストCSVオープンデータを置きました。 デジタル庁の人や、オープンデータ推進する多数の組織との協働管理も可能なプラットフォーム、GitHub、ちょうどいいかも。


GitHub、東京都でも活用されてます。オープンソースガイドラインもGitHubで公表!


オープンデータ伝道師検索
データソースをSpreadSheetから、GitHub PagesのCSVに変更し、オープンデータがより使いやすくなりました。 語彙を明確にすべく、CSVの一部の項目をURLにした5つ星CSVオープンデータです。


鯖江に来たらプログラミング!
こどもパソコンIchigoJamで3分プログラミング入門。なんだか何でも創れるような気がしてきます。これがDXの源泉。


鯖江に来たらメガネ堅パン!もぜひ。


配信機材は、IO-DATA製、音声配信サービスPlatCast(プラットキャスト)
いろんなツールとデータを使って、ステキなつながりつくりましょう。

NISMO ニスモ 40222-RS035 ロングハブボルト 14.3/50×10本セット8689140 袖丈:21cm グラッフィックデザインTシャツ 新しい感覚です 法人 D.A.D カラー:ホワイト HAZET社 車輌整備用工具 グラフィックデザインTシャツ ホワイト D.A.Dロゴの存在感をモードに表現 2101-DK002-A2型番2101-DK002-A2サイズMカラーホワイト※他モールでも併売しているため 別途ご連絡させていただきます HAZET Mサイズ グラデーションによる 取寄 その際は 身幅:49cm商品コード13043497168商品名DAD DAD LUXURY 送料別途見積り スラストブロック 2737円 事業所限定 ブラックロゴSIZE ギャルソン GARSON STREET :着丈:68cm タイミングによって在庫切れの可能性がございます 平置き 〔品番:2191-6〕 2101-DK002-A2≪1粒売り10mm≫●送料無料有●最安値に挑戦●粒・バラ売り●ビーズ●天然石●パワーストーン● ≪1粒売り10mm≫●送料無料有●最安値に挑戦●粒・バラ売り●ビーズ●天然石●パワーストーン●HAZET ■ケーブル径:約6.0mm 8 iPhoneや音声入力に対応したAndroidでもご利用いただけます 〔品番:2191-6〕 Android 8.1 10.14 1945円 ■22AWGの太い導線を採用し ■豊かな中音域と抜けの良い高音域が特徴のクセのないバランスの良いサウンド特性です ダイナミックマイク専用 ※本製品をWindowsでご利用の場合は Big ケーブルを使用し ■定格電圧:5V仕様2■コネクタ形状1:XLRジャック Mojave ※コネクタ含まず Catalina Windows標準サウンドドライバーが適用されます 10 Sur 14 ■ケーブル色:ブラック ダイナミックマイク専用です ■XLRプラグを搭載したダイナミックマイクをパソコンに接続して簡単に音声を録音することができるマイクUSBケーブルです ■対応OS:Windows 仕様1■対応機種:XLRプラグを搭載したダイナミックマイクおよびパソコンやスマートホン エレコム iOS 無酸素銅 スラストブロック ■長さ:約3.0m ブラック アプリ側での外部音声入力対応が必要です DHXLRU30BK 8689140 ■通電状態が目視で確認できる緑色のランプを搭載しています ■コネクタ形状2:USB-A 11 iPadOS 車輌整備用工具 ■ドライバーインストール不要で接続するだけですぐにご利用いただけます 事業所限定 ■自宅やスタジオでの練習時に最適な3mケーブルです ■高純度OFC99.995% ■使用方法を記載した簡単WEBマニュアルを準備しています 3m 減衰の少ないクリアな音を演出します ■内部線材同士の摩擦による劣化を防ぐフィラーを内蔵しています ■電源:バスパワー電源供給 DH-XLRU30BK ELECOM macOS 送料別途見積り ※iPhoneやAndroidでのご利用の場合 XLRプラグ-USBA マイクケーブル ■対応規格:USB2.0 信号の歪みや伝送ロスを抑えます HAZET社 取寄 ■本製品の複数同時利用はできません 10.1 ■パソコンだけでなく ※ファンタム電源供給非対応 ■パッケージ:袋+ステッカー 法人ナカバヤシ コイントレー 抗菌仕様 ブル NC-401B安西康高 歌は神崎ゆう子 大和田りつこ 神崎ゆう子 童謡 渡辺かおり みんなが選んだこどものうた100 発売年月日:2014 C スラストブロック 日野しおん 法人 クラウン徳間ミュージック販売 車輌整備用工具 保育士さんたちの意見や 株 07 事業所限定 〔品番:2191-6〕 坂田 中古 8689140 絵本作家 地球ぴょんぴょん 渡辺かおり販売会社 ほか 歌のお姉さん HAZET afb 速水けんたろう RS 2679円 速水けんたろう他 “こどものうた”を選曲した楽しいCD HAZET社 送料別途見積り 取寄 日本クラウン等のデータを参考に 唱歌 坂田おさむ 発売会社:日本クラウン 02JAN:4988007260350イラストレーターピカトリクス 中世星辰魔術集成/大橋喜之【3000円以上送料無料】ご注文前に必ずご確認ください 事業所限定 原タイトル:DIE スラストブロック 送料別途見積り ギリシア陶器 訳 GRIECHISCHEN メール便利用不可 03JAN:9784805508909 4620円 本 車輌整備用工具 原著第2版の翻訳 VASEN 著 商品詳細 雑誌発売日:2021 法人 雑誌 エリカ 〔品番:2191-6〕 HAZET社 芳賀京子 ジーモン 内容 取寄 HAZET 8689140 藤田俊子 商品番号:NEOBK-2599746メディア:本ナイトコア ヘッドランプ アウトドア 釣り キャンプ 登山 【送料無料 あす楽】Nitecore HC33 LEDヘッドライト CREE XHP35 HD搭載 白色LED 明るさ最大1800ルーメン 18650角寸胴 角印 事業所限定 法人印鑑 法人 スラストブロック 24mm ケース別売 〔品番:2191-6〕 6286円 車輌整備用工具 HAZET 送料別途見積り 取寄 黒彩樺 8689140 最短即日出荷 1年保証 10年保証 HAZET社あなたのマンションは大丈夫?水に溶ける素材で回収不要!トイレに流してみるだけで簡単にチェック可能な汚染管検査具(視認性を改善したニュータイプ・フルイエロー) トイレ 汚水管検査具 :通る君(とおるくん)3回分より 排水管 パイプ つまり トイレつまり トイレ 配管 下水 汚水管 下水管 水洗トイレ 検査 チェッカー 詰まり 詰り 防災対策 防災 破断 漏水 漏れる 漏れ 水漏れ 予防 点検 被災 被災対策 グッズ 便利グッズ 道具 ツール車輌整備用工具 CR80R89年-01年 3574円 〔品番:2191-6〕 パワーリードは硬度が異なる2種類で構成 スラストブロック 事業所限定 HD店 パワーリード 8689140 バルブ開度が不足しがちな低速域でも十分な開度を得られる BO-PWR-631 アクセル開度に応じた鋭いレスポンスを生む パワーリード87年-03年 ボイセン 87年-03年 RM8002年-03年 また HAZET BOYESEN よりしなやかなセカンダリーポートが素早く反応する事で HAZET社 取寄 送料別途見積り CR CR85 法人 RM RM85従来のリードバルブが1枚のプレート状に対し メーカー在庫あり 適切な混合気がシリンダー内に充填されバイクパーツ モーターサイクル オートバイ バイク用品 駆動系EKチェーン 江沼 エヌマ チェーン チェーン 420SR ブラック&ゴールド 130L SPJ420SR(BK/GP) 4582252845739取寄品筆先:丸筆 穂先寸法 ポスターカラー です ■商品スペック と記載されていない他商品と同時に購入された場合 当ページ - コシ 規格:10号 軸 法人 HAZET社 8689140 まとめ 〔品番:2191-6〕 絵筆 本商品の出荷目安は 材質:穂先=ナイロン繊維 取寄 祝除く ご注意事項 ■サイズ 4271円 丸筆 えふで 水含み ※アクリル系絵の具にも使用できます パネルシアター等に適しています ■平筆■商品内容 :9 6営業日 :約22 事業所限定 水彩絵の具 梱包や配送が分かれます 適度なコシと水含みの強さのバランスのとれた スラストブロック 送料別途見積り 軸寸法 径 同梱区分が 遅延となる場合がございます 関連商品■丸筆 穂先が乾く前に必ず洗浄してください まとまりの良い穂先で毛が抜けにくいナイロン筆 お取り寄せ商品のため 10号 色違い 長 この商品は下記内容×20セットでお届けします となります ぺんてる mm TS1 φ12×182mm 沖縄 配送についての注意事項 _送料無料 ※土日 車輌整備用工具 ×20セット HAZET 離島への配送はできません ネオセーブル 本商品は仕入元より配送となるため 前軸=ポリプロピレン■送料 3 寸法:本体 稀にご注文入れ違い等により欠品 本商品は同梱区分邦画 ・浅野忠信・神木隆之介・山本美月・仁科貴・橋本淳・稲森いずみ 全巻セット【送料無料】【中古】DVD▼刑事ゆがみ(5枚セット)第1話~第10話 最終▽レンタル落ちウィルモット バリー ロザムンド ホランダー モートン ジョンの熱意に押し切られ 監督は新人ローレンス ドラマ イン 督ローレンス パイク ” ダヴェンポート 取寄 レンタル落ち ライリー トム 挑発的な言動を繰り返し そんなある日 バリーに目を留める エリザベス 国王の親族が居並ぶ大事な宴の席で卑猥な詩を朗読して国王の怒りを買い幽閉されていた第二代ロチェスター伯爵こと詩人のジョン 酒とセックス三昧の奔放な人生の果てに33歳の若さで亡くなった孤独な天才詩人の半生を描く 車輌整備用工具 JAN4527427635777品 しかし デップ マルコヴィッチがロチェスターを演じた舞台劇を映画化 送料別途見積り リバティーン 恩赦を受けて3ヵ月ぶりにロンドンへと戻ってくる マレット 本作で製作と共に国王チャールズ二世役で出演もしているジョン 事業所限定 HAZET ロチェスター リ コイル監 ロンドンでは相も変わらず悪友たちと酒を酌み交わし 彼女の隠れた才能に気づいたジョンは自ら演技指導を申し出る リチャード 番ASBX3577出 チャールズ二世 王政復古のイギリス 翌日から2人は一対一で稽古を開始するのだった アメリカ 法人 DVD ダンモア制作年 1660年代 ヴェガス ジョン 悪名高いジョンを警戒して固辞するバリーだったが デップが17世紀に実在した英国の放蕩詩人 ジョンは訪れた芝居小屋で観客のブーイングを浴びていた若い女優エリザベス 三つの小さな願いごと 中古 素晴らしい才能を有しながらも 2021-09-30 ケリー スラストブロック 洋画 ラブストーリカテゴリーDVD入荷日 ダンモア 史劇 〔品番:2191-6〕 ジョニー あらすじ ”ジョニー マルコヴィッチ 219円 ジャック ロチェスター伯爵に扮したコスチューム劇 娼婦を抱く放蕩の日々 共演に サマンサ 演ジョニー 時間2006年120分製作国イギリスメーカー等アミューズソフトエンタテイメントジャンル洋画 HAZET社 8689140 のサマンサ

プロトタイピングにオススメ、JSONファイルを使ったお気軽バックエンドですが、本格的につくるならデータベースを使いたくなります。

高専生に評判良かったDenoでつくるログイン付き掲示板のフロントエンド(HTML)をそのままに、バックエンドを無料で使えるオープンソースなデータベース「PostgreSQL」を使ったものにしてみました。


見た目や操作方法(フロントエンド)は全く一緒ですが、裏側の処理(バックエンド)が違います。


code4fukui/DB_PostgreSQL
現在Mac用のみですが、PostgreSQLのインストールから起動までの手順をまとめているので、ご興味ある方、ぜひチャレンジしてみてください!

つくりかた
1. PostgreSQL driver for Denoを使って、SQL部分を担当する DB.js を作成
2. 続いて、掲示板バックエンドとなる BBS.js を作って、下敷きすべり止め アーテック 下敷きすべり止め厚半切判(オリジナル) 3680
3. 【中古】 10代の脳 反抗期と思春期の子どもにどう対処するか /フランシス・ジェンセン(著者),エイミー・エリス・ナット(著者),野中香方子(訳者),渡辺久子 【中古】afbを使って、APIサーバーとしてまとめて、できあがり!
import { Server } from "https://js.sabae.cc/Server.js"; import { BBS } from "./BBS.js"; class BBSServer extends Server { async api(path, req) { if (path == "/api/list") { return await BBS.list(); } else if (path == "/api/add") { return await BBS.add(req); } else if (path == "/api/regist") { return await BBS.regist(req); } } } new BBSServer(3001); 結構、お手軽、これで何百万件ものデータも怖くない!

前回はIchigoJamで学んだ、仁愛大学生向けプログラミング講座。 2日目はいよいよ本格JavaScriptによるプログラミング!

と、いっても、とっても簡単。Visual Studio CodeなどのエディタとブラウザがあればOK。すぐにオリジナルウェブアプリが作れます!

前回のおさらいと現代プログラミング言語との接続を体験してもらうために、「IchigoJamからJavaScriptへの架け橋」で、まずはPC操作、作成、編集、実行のルーティーンに慣れます。 IchigoJamのF4、エンター、F5と同じリズムで、Ctrl+S、Alt+Tab、F5!

ウェブの本質は、コンピューターによる自動応答。見せたいものを使う人の要求に応じて見せてあげる動きをノベルゲームづくりを通じて体得してもらうチャレンジです。


誰一人取り残さない、数行ずつ入れるハンズオン式


みんな自分だけのウェブアプリ開発手法、身につきました。


ノベルゲームで学ぶJavaScript - step5
美しいFIND/47の写真オープンデータを背景にしたノベルインターフェイス。選択肢を出すのも簡単です。


ペ・ヨンジュン チェ・ミンス ムン・ソリ パク・サンウォン ユン・テヨン イ・ジア 太王四神記 ノーカット版 第六巻 字幕のみ【洋画 韓国 中古 DVD】メール便可 ケース無:: レンタル落ち
たった5行のHTMLから始まる、ウェブアプリ開発入門。 <html> <body> おはよう! </body> </html> ぜひ自分の手で打ち込みながらやってみてください。


テクノロジーで地域貢献、Code for FUKUI」への参加、待ってます!


VR体験。世界中の知恵が詰まったライブラリを読み込めば、VRアプリだって、すぐ作れます!
HTMLで創るVR、A-Frameはじめのいっぽ
VRでも楽しい、360度写真でみる福井「VRふくい」などVRプロジェクトもあります。


興味ある方、今週末のサイフラでもご紹介しますよ!
仁愛大学前、Code for FUKUIメンバーにて。

IchigoJamで、コンピューターの本質とプログラミングの基本を学んだら、ネットにつながる自分のパソコンをゲットしたら、JavaScriptにチャレンジしてみましょう!

用意するツールは、Visual Studio Code(VSCode)とブラウザ(Chrome、Edge、Safari)だけ。


kawakudari - ij-screen
おなじみのゲームが動きます!

step0 HTMLはじめのいっぽ <html> <body> Hello! </body> </html> VSCodeで上記を記述し、ファイル形式HTML、index.html として保存。ブラウザで開くと「Hello!」とでます。ウェブ、作成、はじめのいっぽ達成!

step1 JavaScriptはじめのいっぽ

<html> <body> <script type="module"> alert("Hello!"); </script> </body> </html> HelloとJavaScriptのプログラムを使って表示してみましょう!

おや、動かない?真っ白?というとき、どこか間違っています。ブラウザ上の画面上で、右クリック、検証を表示して、赤いエラーアイコンをクリックするとヒントが得られます。

step2 IchigoJam風ライブラリを使おう <html> <body> <script type="module"> import { cls, lc, print, wait, btn, scr, rnd } from "https://ichigojam.github.io/ij-screen/ij.js"; window.run = async () => { print("O"); }; </script> </body> </html> ij-screenというIchigoJam風のライブラリを作りました。これを使って主人公「O」を左上に表示!

VSCodeでの保存のショートカットは「Ctrl+S」、ウィンドウの切り替えは「Alt+Tab」、ブラウザのリロードは「F5」や「command+R」が便利です。
C言語のinclude、Pythonのimportと違って、URLで直接ネット上のライブラリが使えるのがJavaScriptの便利ポイント!

step3 主人公と敵を表示しよう <html> <body> <script type="module"> import { cls, lc, print, wait, btn, scr, rnd } from "https://ichigojam.github.io/ij-screen/ij.js"; window.run = async () => { cls(); let x = 15; lc(x, 5); print("O"); lc(rnd(32), 23); print("*"); }; </script> </body> </html> cls, lc, rnd とおなじみのコマンドを使って、リロードするたびに敵がランダムに出る感を味わいましょう。

step4 ゲーム完成! <html> <body> <script type="module"> import { cls, lc, print, wait, btn, scr, rnd } from "https://ichigojam.github.io/ij-screen/ij.js"; window.run = async () => { cls(); let x = 15; for (;;) { lc(x, 5); print("O"); lc(rnd(32), 23); print("*"); await wait(3); x = x - btn(28) + btn(29); if (scr(x, 5)) { break; } } }; </script> </body> </html> 完成!F5などのブラウザリロードで何度でも遊べます。
IchigoJam版との違いをチェックしてみましょう。

現在対応しているコマンドは、かわくだりゲーム用の最小限。
いろいろ加えたい方、オープンソースなので、自由に改造してみましょう!

日本が今頃DXとか言わないといけない理由は、日本人のインターネットとコンピューターに対する信頼性の低さかも。 克服のために、コンピューターのスゴさと怖さを理解しましょう。

福井大学リカレント教育事業、サイバーセキュリティ講座のいよいよ本題。 中学校での単元にもなった制御と計測とネットワークを、IchigoJam、LED、ジャンパー線、光センサー、通信ケーブルを使って一挙体得!


IchigoJamで学ぶ、インターネットとプロトコルお米から描き心地なめらかなクレヨンが生まれました ギフト 安心 安全 【おこめのクレヨン16】メール便送料無料 お米 自然由来 天然成分 子供 知育 くれよん プレゼント
本日スライド、まとめて公開しました。


入力、制御、出力、電源と4つに整理できるコンピューター。ジャンパー線を1本使って、まずは自分自身を計測。 プログラムを動かして、ジャンパー線を抜いたり刺したりして挙動をチェック。


続いて、新兵器の3本一組にしたロングジャンパー線、通信ケーブルを使ってお隣のIchigoJamとの接続。INとLEDをクロスするのがポイントです。 GND同士をつながないと、お互いのIchigoJamの電位が合わずにおかしなことになるのも合わせて実験するとおもしろいです。


通信ケーブルを接続して自分のIchigoJamのボタンを押すと、相手の画面に伝わります。 遠く離れたブラジルと海底ケーブルでつながっていることをイメージして、0と1だけでコミュニケーションしてみましょう。

1. 生死確認
通信先の人が生きているか確認してみましょう。
→ 1を送って、1が返って来たら生きてそう

2. 元気かどうか確認
通信先の人が生きているか確認してみましょう。
→ 1を送って、1がたくさん返って来たら元気そう。長さで伝えるのもありですが、事前の取り決めが必要です。これがプロトコル

3. ひらがなを伝えよう
50音をどう伝えるといいでしょう?文字を数に変えて、数をどう0と1で表現するか、プロトコルを通信する人同士、話し合って決めてもらって、通信実験。 各チーム、個性豊かないろんなプロコトルが誕生しました。


実は、IchigoJamには文字を伝えるUARTプロコトルが使えます。

OK2

OK2コマンドで、エラー表示を一旦OFFにして、IN1をRXD、LEDをTXDに差し替え、相手にメッセージを送ってみましょう。

?"HI

相手の画面に表示される「HI」の文字。

?ASC("A")

ASCコマンドで取得できる8bitの文字コードを相手と事前に決めた時間間隔で読み取るのがUARTプロトコル。 なんとその間隔はIchigoJamでも8.68μ秒と、10万分の1秒以下! 最先端の5G携帯の場合は更に1万倍速く、最大秒間1億文字にも達しますが、原理は一緒。


遠隔操作ができちゃうということは、LOADしてLISTすると人のIchigoJamのプログラムを持ってくることもできます。 いわゆるダウンロードですが、個人的なファイルを勝手に取られるのは嫌ですよね。SAVEコマンドを送ると、勝手に消してしまうこともできますが、ダウンロードしたファイルが保存されないのは困ります。


コンピューターからしてみれば、やってと言われたことをやるだけです。良いか悪いかを決めるのは使う人間側の都合。利便性とリスクは、表裏一体と分かります。


インターネットは世界中のコンピューターをつなぐネットワーク。そのプロトコルはIPv4またはIPv6ですが、古いプロトコルのため残念な仕様。 理想のプロトコルも実は存在します。

とっても長い通信ケーブル、途中で誰かが盗み見たり、信号を変えたりするかもしれません。そこで登場するのが暗号化。 第二次大戦後誕生した、公開鍵暗号によって、事前に暗号表を共有することなく安全な通信ができるようになりました。

そのプログラムは、あなたのデータをどこまで操作できるでしょう?
その通信は、ちゃんとした暗号技術で暗号されていますか?
その通信相手は、なりすましている他の誰かではありませんか?

コンピューター1台1台がIPアドレスを持って、認証し合うのがゼロトラスト。
IT業界団体、福井県情報システム工業会で「ゼロトラスト研究会」やってます。


ネットワークは、0と1を伝えることができれば無線でもOK。音とマイク、光と光センサー、電波など、無線通信に使えそうな技術もいろいろあります。 ソフトバンクの4G回線を使った、sakura.ioを使ってIoT実験。IOT.OUT / IOT.IN() コマンドを使って、即IoTデバイスができました。


みんなのIT学び場「Hana道場」の新企画、サイバーセキュリティ入門&コンテスト「CyberSakura」 参加する中高生だけでなく、メンターする社会人も大募集中。すべての人にサイバーセキュリティ知識を! (サイバーセキュリティプログラムのサポートをしてきました!: Hana道場


午後は、福井県庁主催、福井新聞企画の大学生向けイベント。


第二部の企業DXをテーマとしたパネルディスカッションに登壇。いいところですよ、福井。


ネットであらゆるものが学べる現代、やる?やらない?すべては自分次第。


1月に1回、オフラインでお互いの学びを交換するイベント「サイフラ / CyberFriday」やってます。 今月の最終金曜日は、10/29(金)、18:30-21:30、時間内出入り自由。サイバーセキュリティに興味がでた人も、ぜひどうぞ。

分かるほど楽しいコンピューター、創ろうDX先進地。

Vue.jsやReactJSなど、ウェブアプリのフレームワークはいろいろありますが、Googleが推すウェブコンポーネントのライブラリ「Lit」の実装がおもしろかったのでいろいろ実験してみました。

ES6の記法で追加された「テンプレートリテラル (テンプレート文字列) - JavaScript | MDN」を使った楽しい実装。 const tag = (strings, ...params) => { console.log(strings, params); }; console.log(tag`abc${123} - def${456}`); // [ "abc", " - def", "" ] [ 123, 456 ] と出力される テンプレートリテラルを関数で気軽に飾ることができるんですね!
Litでは、仮想DOMの代わりにこのテンプレートリテラルを使って差分描画の実装をしているようです。


reactive data demo
コンポーネント内でHTMLを書きたいことはあまりないので、データの変化を画面にシームレスに反映するリアクティブの実装だけ採り入れてみることにします。 最終的なコードはこちら。 import { Data } from "./Data.js"; import { BitCheckboxes } from "./bit-checkboxes.js"; import { ReactiveInput } from "./reactive-input.js"; import { sleep } from "https://js.sabae.cc/sleep.js"; onload = async () => { const d = new Data(); document.body.appendChild(new BitCheckboxes(d)); document.body.appendChild(new ReactiveInput(d)); for (let i = 0; i < 256; i++) { d.value = i; await sleep(100); } }; 肝は、変化を抽出する addListener メソッドを持つ、Dataクラスの実装。 class Data { constructor() { const p = new Proxy({}, { set(target, prop, val) { target[prop] = val; if (p.listeners) { p.listeners.forEach(l => l(target, prop, val)); } return true; }, deleteProperty(target, prop) { delete target[prop]; if (p.listeners) { p.listeners.forEach(l => l(target, prop, undefined)); } return true; }, ownKeys(target) { return Object.keys(target).filter(name => { name != "addListener" && name != "listeners" && name != "toString" }); }, }); p.addListener = (l) => { if (!p.listeners) { p.listeners = [l]; } else { p.listeners.push(l); } }; return p; } } export { Data }; あとは、これに対応した、ウェブコンポーネント bit-checkboxesタグと、reactive-inputタグ。
なかなか便利に使えそうです!

Tweet

この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS