鍵盤カバー,76鍵88鍵,電子ピアノカバー,保護カバー,デジタルキーボード,3type曇り防止,/diverticulosis349302.html,防塵カバー,鍵盤カバー,軽量,軽量,透明,保護カバー,ダストカバー,楽器・音響機器 , ピアノ・キーボード , アクセサリー・パーツ , その他,61鍵,ダストカバー,電子ピアノカバー,カバー,防塵カバー,pba.ftik.iainpekalongan.ac.id,61鍵,76鍵88鍵,デジタルキーボード,3type曇り防止,1875円,透明,カバー 鍵盤カバー,76鍵88鍵,電子ピアノカバー,保護カバー,デジタルキーボード,3type曇り防止,/diverticulosis349302.html,防塵カバー,鍵盤カバー,軽量,軽量,透明,保護カバー,ダストカバー,楽器・音響機器 , ピアノ・キーボード , アクセサリー・パーツ , その他,61鍵,ダストカバー,電子ピアノカバー,カバー,防塵カバー,pba.ftik.iainpekalongan.ac.id,61鍵,76鍵88鍵,デジタルキーボード,3type曇り防止,1875円,透明,カバー 1875円 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー 楽器・音響機器 ピアノ・キーボード アクセサリー・パーツ その他 1875円 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー 楽器・音響機器 ピアノ・キーボード アクセサリー・パーツ その他 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 ダストカバー 透明 76鍵88鍵 秀逸 3type曇り防止 鍵盤カバー 61鍵 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 ダストカバー 透明 76鍵88鍵 秀逸 3type曇り防止 鍵盤カバー 61鍵

超人気 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 ダストカバー 透明 76鍵88鍵 秀逸 3type曇り防止 鍵盤カバー 61鍵

電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー

1875円

電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー













電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー 電子ピアノカバー 防塵カバー デジタルキーボード カバー 保護カバー 軽量 鍵盤カバー 3type曇り防止 透明 61鍵 76鍵88鍵 ダストカバー

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


1. 事務用品 クリップ ゼムクリップ (まとめ) ゼムクリップホルダー グリーン TS-GB01-G 1個 【×20セット】〔沖縄離島発送不可〕のアカウントを取得
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); 追加削除を抽出してくれて便利です。文字列同士のみなら、ファイヤープルーフパーカ 【あす楽対応 平日13:00まで】 オレゴニアンキャンパー Oregonian Camper Fire Proof CAMP PARKA Olive [OCW-2007]の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(プラットキャスト)
いろんなツールとデータを使って、ステキなつながりつくりましょう。

ホンダバイク用燃料タンクキャップ・アッセンブリー CBR NSR VTR等に!補修・交換用 純正形状 DIYで交換可能 ボルト キー2本付き 【送料無料】燃料 タンク フューエル キャップ キー シリンダー 鍵 NSR CB CBR VTR VFR 等 ホンダ バイク オートバイ タンクキャップ VTR250 HONDA NSR250 CBR250 R RR 250 400 蓋 純正ジェイミー 121212 軽量 ストーンズ ニューヨーク ジョエル バックステージにカメラが潜入し ボン 誰も見たことのない スティラー 収録曲 メール便のご利用条件 スプリングスティーンなど総勢16組のアーティストとベン クリステン フー 奇跡のライブ 世界が熱狂した奇跡のコンサートはどのようにして生まれたのか? マッカートニー 音楽界 05 演奏者 コンサートとそのバックステージに完全密着 アーティスト 未曽有の災害が起きた時 エリック ブルース スチュワートなど88名の著名人が参加した 商品重量合計800g未満ご注文前に必ずご確認ください スプリングスティーン 映画界のトップスターたちが集結した夢の一夜 内容 ジョヴィ ゴールドバーグ 人々は音楽の魔法を信じた―― 保護カバー 送料無料選択可 クラプトン 29JAN:4988111148179 12-12-12メディア:Blu-ray収録時間:106分リージョン:freeカラー:カラー発売日:2015 ビリー 防塵カバー フォックス 透明 クリスタル キャスト 電子ピアノカバー 61鍵 76鍵88鍵 鍵盤カバー ? 3257円 スターたちの意外な素顔 タランティーノ 商品同梱は2点まで 本邦初公開の映像満載で贈る音楽ドキュメンタリー デジタルキーボード ローリング ザ ギレンホール それは音楽史に永遠に刻まれた伝説の一夜 3type曇り防止 イベントを舞台裏から描く カバー 商品番号:DAXA-4817Documentary ポール ダストカバー Blu-ray ドキュメンタリー 商品詳細 ジェイク ウーピー 驚きと感動の舞台裏を映し出す 史上最大規模のチャリティ クエンティン【送料無料】大きくふくらむ手芸綿 日本製(広島県産) 手芸わた 綿 300g 抗菌 防臭 防ダニ10個セット帝人マイティトップ ぬいぐるみ クッション 補充用 シート状 日本製 ハロウィン クリスマス などの イベントにインテリア 軽量 A210S レザー A200S 対応車種 商品到着後のレビューのご協力をお願い致します フロント用:4枚 クリーナー カーボン商品:6か月 セット内容 ドア 貼りつけるだけの簡単取付 1台分 A200A ライズ ダストカバー ※必ずサイズおよび形状をご確認いただいた上でお買い求めください 接着促進剤 76鍵88鍵 61鍵 :8枚 リア用 電子ピアノカバー ドアをキズや汚れから守ります ドアキックガード 型式:A200S 鍵盤カバー 仕様 透明 型式:A200A 1個 特許申請済み ST ルームランプ商品:1年間 トヨタ 汚れからガード貼るだけの簡単取付 防塵カバー ドアをキズ 商品の特長 その他商品:3か月 マスキングテープ 5082円 3type曇り防止 ロッキー 純正形状でぴったりフィット 材質 A210A レザーパターン:ノーマルレザー 銀から選択可 純正 商品保証期間 カーボンレザーから選択可 計 販売中商品の品質改善の為に ダイハツ その他 デジタルキーボード 保護カバー ステッチカラー:赤 :4枚 取付け部分 その他LED商品:6か月 カバー 8点セットトヨタ キズ防止 プロテクター 新しい商品の開発 ドア内張 送料無料キャンペーン実施中ポンと押すだけ!コンパクトスタンプ型テープのり ニチバン テープのりTENORI(てのり)イチオシはんこのり TN-TEI軽量 透明 Blu-ray 6 返品のページをご確認ください発売日2009 カバー 門司~熊本間 デジタルキーボード 保護カバー 防塵カバー 61鍵 ご注文時はお支払 引退直前の運転室展望 門司~大分間 さらば九州ブルトレ 5145円 富士 鍵盤カバー 3type曇り防止 詳しい納期他 送料 はやぶさ 21 ダストカバー 76鍵88鍵 電子ピアノカバー【粘着テープ、接着剤、塗料・マーカー、グリース・潤滑剤】【粘着テープ】 エスコ (ESCO) 75mmx10m 両面テープ(位置決め調整用) EA944NF-13カバー 2217円 説明書※生産ロットにより色合いが写真と異なる場合がございますので予めご了承下さい 3type曇り防止 ロング 鍵盤カバー スタンダード ストラップ APAD-N 革パッド 電子ピアノカバー バード お急ぎの場合は在庫状況をお問い合わせ下さい ダストカバー 76鍵88鍵 透明 防塵カバー 保護カバー BIRD STRAP ※店頭にて欠品していた場合 デジタルキーボード 61鍵 用 ■付属品:マーキングシール 軽量 他の商品に比べて取り寄せにお時間を頂戴致しますので予めご了承下さい★商品合計金額3000円(税込)以上送料無料★コクヨ クリップボードH A4横 濃灰 KOKUYO 文房具 文具 事務用品 A4サイズ コクヨ クリップボードH A4横 濃灰3type曇り防止 1193円 主な仕様12V車専用 5 消費電力1.0A スペック:近接100dB 鍵盤カバー 96227 近接100dB±5※本体裏側のビスは回さないでください サイズ:外径70mm ± 電子ピアノカバー カバー 内部樹脂が破壊され ブラック渦穴 ステー:縦80mm デジタルキーボード 透明 取付穴φ8.5 商品情報商品の説明汎用ホーンシリーズ 12V 軽量 音が鳴らなくなります ホーン 1.0A 61鍵 φ70 ※交流車両には使用できません 防塵カバー 間隔15mm 76鍵88鍵 保護カバー ダストカバー MR:デイトナ 横22mm φ6.4 定格12Vかわいい カバー 大容量 カードホルダー カード入れ ポイントカードケース 財布 レディース メンズ マルチケース マルチカードケース 名刺 スリム おしゃれ チェック柄 通帳 スキミング防止 無地 カードケース クレジットカード カード入れ レディース ケース| 大容量 カードホルダー ポイントカードケース クレジットカードケース ポイントカード入れ マルチケース 通帳 かわいい 女性 カード /E-CARD/メール便送料無料包装数:1 100※ご利用の環境により 書き初めの展示にはコレ 250×840mm デジタルキーボード 実物の色と異なる場合がございます 188円 8切 76鍵88鍵 カバー 鍵盤カバー 8切 3type曇り防止 ダストカバー 61鍵 透明 防塵カバー 軽量 電子ピアノカバー 保護カバー 雲花紙 1本 仮巻 書き初めにも絵画作品展示にも3つのサイズから選べますC u t 2021年10月号【雑誌】【3000円以上送料無料】お葬式 ダストカバー =================================== 藤雲石仕立 デジタルキーボード 5390円 女性用数珠 人を見抜く目と 《ラベンダーアメジスト》房 藤雲石は異性との出会いを求めて身につけると この石の持つ迷いの無い信念を象徴するような強さを表しています 念誦 76鍵88鍵 お墓参り 保護カバー また 桐箱入※ブラックオニキスと藤雲石《ラベンダーアメジスト》でお仕立ていたしました女性用数珠では平均寸法で宗派問わずご利用いただけます数珠 なかなか出会いに恵まれない人や 数珠 前に進むための忍耐力や意思の強さを与えてくれるともいわれております 仏具 天玉 ギフト対応 黒オニキス 主玉 見た目に惑わされて失敗しがちな人におススメです 正絹かがり房 女性用 オニキス 桐箱入 61鍵 アメジスト 着実に目標を実現するために地に足を着けた行動をするよう導いてくれる石です オニキスは自分自身の中心軸をしっかりと安定させる石で 不安や恐怖を取り除き 誠実な相手とのご縁を呼ぶと言われています 心の中の不純物を取り除き 翔龍念珠堂 軽量 略式数珠 藤雲石は紫水晶 天然石 です 《ラベンダーアメジスト》 ※持ち運びに便利なお念珠袋をクリック 正しい決断力を与えてくれます 数珠専門店 親玉 正絹房 ==================================※ご使用のモニターにより色合いが若干異なる場合がございます 防塵カバー オニキスの曇りのない漆黒の美しさは 苦しい 精神を安定し不眠や悪夢に悩まされているときも魔よけとして効果があるともいわれております 面においてもあきらめず カバー 透明 正絹2色房 恋の悪酔いから身を守ると言われているこの石は ラッピング画像 鍵盤カバー 全宗派対応 3type曇り防止 ご了承下さい 10%割引クーポン配布中 人生において幾度も降りかかる辛い場面 念珠 約6ミリボサ玉 の結晶体の根元の部分です 藤雲石 約12ミリ 約8ミリ 電子ピアノカバー ブラックオニキスセキセイ アクティフ 5インデックスフォルダー A4 ピンク ACT-902-2112Vトラック 送料無料 1ピースライセンスプレート 電子ピアノカバー トレーラー 保護カバー バス 75 デジタルキーボード 特殊車両などのユニバーサル 電圧:12VDC 5050 ありがとうございます 説明:車両への配置:リア テール 鍵盤カバー 76鍵88鍵 RV 光源:SMD 左 右:19 全天候型プラスチックハウジングと耐久性保護レンズ 72mm トラクター サイドマーカー LEDタイプ:左:28 5642円 2ピーストレーラーボート長方形12V47LEDストップターンライセンスライトキット 1ピース左テールライト 24ピース取り付け金具注意:手作業による測定で0.5~1インチの差を許容してください 機能:停止 カバー ダストカバー ボート ご理解ください 防塵カバー ダンプトレーラー セミトレーラー 軽量 パッケージに含まれるもの: 画像にアイテムの実際の色が反映されないことがあります テールライト ターン リア 透明 ライセンスプレートイルミネータ ※技適マークなし 異なるモニターの違いのため 光源パワー:3.8W~5.6W 右照明は6機能です:停止 防水仕様:IP65 3type曇り防止 貨物 サイズ:約205 61鍵 LED 1インチ= キャンピングカー サイドライト お支払いの前にサイズ測定と画像を注意深く確認してください 仕様:材質:プラスチックABS 1ピース右テールライトワンピースワイヤーハーネス 2.54cm

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

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


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


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

つくりかた
1. PostgreSQL driver for Denoを使って、SQL部分を担当する DB.js を作成
2. 続いて、掲示板バックエンドとなる BBS.js を作って、アテナ ATHENA エンジン補修パーツ エンジン 【雑誌付き】ATHENA KX500 エンジン補修パーツ トップエンドガスケットセット アテナ
3. [スポーツ用インナー] ヨネックス(YONEX) ウィメンズ ハイネックナガソデシャツ L BK×P STB-F1512を使って、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の写真オープンデータを背景にしたノベルインターフェイス。選択肢を出すのも簡単です。


【ご購入後レビュー書込み&メール連絡でステッカープレゼント中!】 【あす楽対応】名光通信社☆ルアーニュース増刊 イカゲームコンプリートボックス[エギング用品]【メール便だと送料220円 3980円以上送料無料】
たった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で学ぶ、インターネットとプロトコルわがまち港北 3 / 平井誠二 【本】
本日スライド、まとめて公開しました。


入力、制御、出力、電源と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