Code for FUKUIが手掛ける、越前市国高地区で開発と運用が進む地域安全マップ「キッズセーフ」。 昨夜開催された、国高地区でのこども110番の家看板づくりとアプリ説明会の様子が、NHK福井で放送されました。紙と違って、すぐ反映できると好評です。

この日も不審者アイコンをその場で更新!新メンバーの福井高専専攻科1年生、大活躍!


こども110番の家看板づくり。ラミネートし、台座に貼り付け、できあがり。みんなで協力すると作業が早い!まさにこういう作業のIT版がコードフォー(Code for)です。


4,000世帯ある国高地区の広報誌の1面に大きく掲載いただいていました。QRコードですぐに見えます!


左が11年前の地域安全マップ。なかなか更新できなかったとのことですが、デジタル化したのでどんどん更新していけますね!もちろん、必要な人には紙で渡すことも可能です。(印刷利用可能な国土地理院の地図を使っています)

国高地区で起きた不審者出没。地域の安全、地域で守る何かものづくりができないか?

パチパチクラッピーナノ?IchigoJamで、不審者追い払いましーんのプロトタイプを作ってみました。


センサーが反応するとパチパチ拍手します。不審者が隠れそうな場所に設置してみると、びっくりして追い払えるかも?ボタンを押したら、手拍子付きでペンタトニックで演奏を始めるおまけ付き。


USB電源をつないでボタンを押してパチパチ遊べる、パチパチクラッピーナノ?ですが、裏の端子を使えばIchigoJamなどにつないでプログラムでの制御も可能です。

Gと書いた方の端子をGND、もう一方をOUT1に接続して、下記を打ち込むだけ、パチっと1回拍手します!(OUT1にし続けるとソレノイドに電気が流れっぱなしになり、長時間放置すると発熱するので注意!)

OUT1:WAIT3:OUT0

続いて、不審者を検出するセンサーです。

赤外線で距離を測る、測距センサー。間違えやすいですが、このセンサーでは赤がGND、黒が5Vと通常と逆です。白はアナログの信号線。IN2に接続してANA(2)で値を取得可能。

10 ?ANA(2):WAIT10:CONT RUN

これで連続する値をチェックできます。近づくにつれ大きくなりますが、スペックに書いてある測距範囲:10~80cmを超えて近すぎると値がおかしくなることを確認してみましょう。 このセンサーでは外に置くにはちょっと反応距離が短いですね。ちょうどいいセンサーを探してみましょう。使い方はだいたい同じです。


プログラム0の先頭行に@ARUNを書いておけば、キーボード、テレビなしの単体マシーンのできあがり!


こちら、おまけの拍手付きペンタトニック演奏のプログラム!時報代わりにオリジナル曲を鳴らすのもかわいいかも?


電子工作や、プログラミングを学ぶのにオススメの雑誌、電子工作マガジン


おもしろそうな「プログラミングで温泉たまごを作って、おいしく食べよう」の記事、IchigoJamを使った方法も紹介されています。 追い払いましーんのように、センサーで計測して、制御とプログラミング。自由自在にできると世界が更に広がります。


ベーマガコーナー(マイコンBASICマガジンコーナー)には、2進法と16進法をテーマにした解析しやすいゲームや、IchigoJam R向けの力作などが掲載! 打ち込んで改造して遊んでいるうちに、プログラミングの基礎力が自然と身につきます!(ました)


電子工作マガジンは、鯖江、Hana道場でいつでも読めるように設置しています!気になる方、ぜひどうぞ。 IchigoJamでプログラミングやコンピューターを学んだ彼らは、現在、中高生向けのサイバーセキュリティ教育プログラム「CyberSakura」にチャレンジ中!

頼もしいですね!地域のIT力、地域で上げましょう!地域ICTクラブで全国に広める事業も総務省さんと企画中!


今月のPCレクチャーは「IchigoJam BASICで秋の夜長にゲームプログラミング! by くりひろしさん」。 電子工作マガジンでアイデア広げて、ものづくり&プログラミングを楽しもう!投稿しちゃおう!

不審者追い払いましーん、電子工作マガジンは、今月のサイバーフライデーに持っていきます。ご興味ある方ぜひどうぞ。
サイバーフライデー」2021-09-24

誰もが知っているドレミの音階。音と呼ぶ空気の振動、周波数が倍になることを1オクターブ上がると言い、1オクターブを平均的に12コに分割したものがドレミの音階です。

なぜ12コに分割したのでしょう?白い鍵盤と暗い鍵盤の違いは何?

12平均律ピアノsrc on GitHub
物質中心の世界では、キーボードのQWERTYという謎の並びと同様、何かの標準が無いと普及しませんでした。12平均律が最も普及しましたが、ソフトウェアの世界であればそれに捕らわれる必要はありません。 (音源としてMSXで出会った計算によるステキ音源、FM音源をWeb Audio APIを使った、ESモジュール「FMSound」として使用)

n平均律の音階tから周波数fを計算する関数freq、周波数fから音階tを計算する関数rferq const n = 12; const freq = (t) => 440 * Math.pow(2, t / n); const rfreq = (f) => Math.log2(f / 440) * n; console.log(freq(4)); // ミの周波数 554.3652619537442Hz console.log(rfreq(554.3652619537442)); // ミの音階 4 オクターブが1上がる毎に倍にするため、Math.powで2の階乗を計算します。上がる幅はnで割って平均的なので平均律。 逆に音階を求めるには、階乗の逆関数 Math.log2 を使います。


5平均律ピアノsrc on GitHub
nを5として計算した5平均律ピアノです。他にも、6平均律から11平均律まで作ってみました。

数字キーを押しても弾けるようにもしてあります。聞き馴染みのない音階による演奏で遊んでみましょう! どの鍵盤を何色にして、何と呼ぶか?定義されていないものは定義し放題。自由に発想できるサイバー空間を活用しましょう!


場学実「お寺でのステューデンテックから始める、シビックテックへの挑戦 - Day2 Track3 - Code for Japan Summit 2021 - YouTube
Code for Japan Summit 2021での、Code for FUKUI / PCN武生の森田さんによる発表!お寺という非日常空間で、学ぶ技術から互いに学び合うステューデンテック。シビックテックはその発展という位置づけ。 常識を自分で検証する技術を持ったこどもたちによる、実践の場での活躍が楽しみですね!


古くて新しいお寺という学ぶ場からの実践、じっくり末永く取り組んでいきましょう!

はじまりました、Code for Japan Summit 2021!今年は9/18-19の2日間

Code for Japan Summit 2021」アーカイブ、見られます。


音楽とプログラミングについて講演されたおんがくふぁくとりー、さかいりょうたさんの「作曲から考える子どものプログラミング思考について」にて、紹介されていた「俳句のうたの作り方」、音の周波数を12音階に分けた平均律から、更に5音だけ使うペンタトニックというテクニック。


サイコロを使ってメロディを入れる方法がおもしろい!


障がい者とプログラミング そしてシビックテック(動画アーカイブ)
イトナブ、古山さん!ITを学ぶ、遊ぶ、営む、イノベーションからイトナブ、ステキな名前!


IchigoJamを使って、早速ペンタトニックを鳴らしてみました。(IchigoJam webの場合、「AUDIO ON」ボタンを押して音を出します)
CDEFGAB = ドレミファソラシ、に対応するので、CDEGA(ドレミソラ)がペンタトニック。


PENTATONIC DICE on IchigoJam web
ボタンを押す毎にランダム(RND)にペンタトニックを鳴らすプログラム、おー、作曲がちょー簡単!(IchigoJam webでは、画面タップでボタンを押したことになります。)


ペンタトニックダイス - pentatonic-dicesrc on GitHub
iPhone/iPad/PC用のウェブアプリとして、JavaScriptでも作ってみました。
俳句に合わせて、自分の名前に合わせて、ボタンを押すだけで、誰でもかんたんに作詞作曲を楽しめます。

JavaScriptでのプログラムもIchigoJamプログラマーならそんなに難しくありません。核になるプログラムはこれだけ! <!-- レイアウト --> <h1>ペンタトニックダイス<div>pentatonic-dice</div></h1> <button id="play">ならす</button> <!-- ロジック --> <script type="module"> import { Tone } from "https://taisukef.github.io/Tone.js/Tone.mjs"; // https://tonejs.github.io/ import { rnd } from "https://js.sabae.cc/rnd.js"; const evt = play.ontouchstart ? "ontouchstart" : "onmousedown"; play[evt] = () => { const tone = "CDEGA"[rnd(5)]; const synth = new Tone.Synth().toMaster(); synth.triggerAttackRelease(tone + "4", "4n"); play.innerHTML = "ならす<br>" + tone; }; </script> 動き(レイアウトとロジック)ができたら、あとはCSSを使って伝えたい相手に合わせてスタイルを決めるだけ!
何色にする?文字の大きさはどのくらい?主に使うのはiPhone?iPad?縦?横?まずは使う人やデバイスを1つに絞って調整するのがオススメです。


はじめてのプログラミングから、エンジニアチームと一緒のガチ開発まで幅広くサポートするイトナブ。 そのはじめのいっぽ的位置づけ「ナブかつLAB Seeds | プログラミング教育を子どもたちに。」ではIchigoJamが使われています。 IchigoJamでプログラミングのおもしろさにはまったら、JavaScriptでスマホアプリづくりへGO!


小学4年生の女の子、IchigoJamを使って好きなアイドルの曲を作ってお母さんに聞かせてあげたそう!

自分で作れる喜び、それによって広がる未来に向けたワクワク、どんどん広げていきましょう!
Let's code for!

二日目、9/19日14:30-、Code for FUKUI、森田さん、登壇です!
場学実「お寺でのステューデンテックから始める、シビックテックへの挑戦」 | Code for Japan Summit 2021」 links
- Code for Japan Summit 2021

今年2回目の地域ICTクラブ全国ネットワーク交流会、基調講演は、CoderDojo 宮島さん!

ポケモンなど企業との連携による取り組みがおもしろいCoderDojoは、7〜17才のこども達が無料で学べる「子どものためのプログラミング道場」。Railsで作られGitHubでオープンソースになっているウェブサイト、「近日開催の道場まとめ - CoderDojo Japan」から地域別で開催日が確認できてステキです!

CodeDojo Kata」で紹介されていた「まよえるニンジャのためのやりたいことさがし」がステキだったので、オリジナル版を作ってみました。

プログラミングガイドsrc on GitHub
「ゲームはすき?」で始まり「はい」か「いいえ」で答えるだけで、プログラミングの世界へといざなうイメージで作ったものです。

prog-guide/data.yesno.csv at main · IchigoJam/prog-guide
質問文と遷移先を記述したシンプルなCSVデータ(yesno.csvデータ)を読み込んで動くウェブアプリなので、GitHubでforkしていろいろと派生版づくりの元ネタにもお使いください。

ウェブアプリもシンプルなHTML1ファイル構成。前半がJavaScriptによるプログラミング部分、後半のデザイン部分は画面構成を記述するHTMLと見た目を変更するCSS。 特別なツールなしに、誰でも気軽にチャレンジできます! <!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width"> <title>プログラミングガイド</title> <!-- プログラム --> <script type="module"> import { CSV } from "https://js.sabae.cc/CSV.js"; import { waitClick } from "https://js.sabae.cc/waitClick.js"; const reload = async () => { await waitClick(retry); document.location.reload(); }; onload = async () => { reload(); const data = CSV.toJSON(await CSV.fetch("data.yesno.csv")); let cur = data[0]; for (;;) { if (cur.no == "-") { no.style.display = "none"; yes.textContent = "つぎへ"; if (cur.yes == "-") { yes.style.display = "none"; } } else { no.style.display = "inline"; yes.textContent = "はい"; } if (cur.url) { q.innerHTML = `<a href=${cur.url}>${cur.label}</a>`; } else { q.textContent = cur.label; } const ans = await waitClick([yes, no]); if (ans == 0) { cur = data.find(d => d.id == cur.yes); } else { cur = data.find(d => d.id == cur.no); } } }; </script> <!-- デザイン --> <link rel="stylesheet" href="https://code4fukui.github.io/neomo.css/neomo.css"> <style> body { text-align: center; padding: 0 40px; } h1 { font-size: min(7vw, 65px); } body { max-width: 800px; } #q { font-size: min(5vw, 40px); margin: 1em; height: 4em; } button { font-size: min(5vw, 40px); margin: 1em; } </style> </head><body> <h1>プログラミングガイド</h1> <section><section><section> <div id=q></div> <button id=yes>はい</button> <button id=no>いいえ</button> </section></section></section> <br> <button id=retry>リトライ</button> <hr><a href=https://github.com/ichigojam/prog-guide/>prog-guide on GitHub</a><br> </body><html> 楽しもう、広げよう、プログラミングの輪!

キーボードが得意になるはじめのいっぽのA-Zタイピングゲームほこちら

1 ?"AカラZマデ ハヤクオス!" 20 CLT:C=ASC("A") 30 ?CHR$(C); 40 IF INKEY()!=C CONT 50 C=C+1:IF C<=ASC("Z") GOTO30 60 T=TICK():?:?"TIME:";T/60;".";T/6%10 70 ?"SPACEデ モウイチド" 80 IF INKEY()!=SPACE CONT 90 RUN

データ活用に欠かせないのはつなぐこと。複数のデータを比較し、組み合わせて、新たな知見を生まれます。

その足かせとなるのはデータ形式の不一致。数と一言で言っても半角全角、カンマ区切りの有無、小数を含むかどうか、万など漢数字表記の有無など、個性豊かな様々なデータ達・・・。

もちろんコンピューターなので、様々な表記方法を想定して対応することは可能ですが、網羅性を保証できず、膨大なデータ量に対する処理では何十倍ものコストとして跳ね返ります。 同じ手間ならデータを作る際にかけるのが効率的です。

どうデータ形式の定義するか?ベストはリソース記述フレームワーク(RDF)の語彙を使うことでしょう。 Googleの検索エンジン他で使用されるスキーマオルグ(schema.org)や、Facebookが提唱し一般化したオープングラフプロトコル(OGP)、日本政府が提唱する共通語彙基盤もその一種です。

語彙でつながるオープンデータを、LOD(エルオーディー/Linked Open Data)、5つ星オープンデータと呼びます。

5つ星オープンデータ/LOD 3基準

1. リソースとデータ項目(語彙)をURLで表現する
IDではなくURL。アクセス可能なURLを使用する。
自分のリソースのURLは、自分で編集可能なドメインを用いる。

2. 共通の語彙の利用
語彙は正しく、できるだけ既存の語彙を使う。(schma.org/url)

3. 外部リンク
できるだけ外部リソースへのリンクを含める。(SNSやWikidataへのリンク)

ただ、まだまだRDFへの理解が浸透していないため、まだちゃんとしたデータは多くはありません。よりシンプルに作りやすくするためのツール整備を進めました。


NQuads.js
語彙を含んだLODのJSON表現、JSON-LDを扱うライブラリjsonld-esを、Node.js用のライブラリjsonld.jsから移植。 依存ライブラリを次々と全部ESモジュール化して、GitHub Pagesとして公開。 require表記をgithub.ioを使ったURL importに書き換えたので、全ソース、ブラウザでも使用可能になりました。ESモジュールはDenoモジュールとしても使えるので、Denoでサクサク活用可能です!

NQuads.jsは、LODのテキスト表現「N-Quads」をJSONLD.jsを使って作成。 import { JSONLD } from "https://taisukef.github.io/jsonld-es/JSONLD.js"; class NQuads { static async parse(s) { return JSONLD.fromRDF(s, { format: "application/n-quads" }); } static async stringify(json) { return JSONLD.toRDF(json, { format: "application/n-quads" }); } } export { NQuads }; コアはこれだけ。JSONLDをimportして使うだけのライブラリなのでとってもシンプル!
ちゃんとしたオープンデータを増やしましょう!


データ活用はじめのいっぽ、コンピューターとプログラミングへの入り口、IchigoJamのファームウェアの不具合修正
- ichigojam-1.4b29.zip
OUT11,0が効かない不具合修正(OUT11、IN4を出力に切り替えて使う場合の番号です)


福井県独自の緊急事態宣言最終日、ランチは通常営業だった鯖江駅前商店会」でタコライス!

先日会ったアフリカ人、ict4eへのインターン生ビドさんが、IchigoJamプリントフランス語版、作ってくれました!

IchigoJamプリント - フランス語版
IchigoJamプリントは、その名の通り紙として印刷も想定した教材(もちろん、PC、タブレット、スマホでもどうぞ)。 印刷用のPDFへの変換にヘッドレスChromeとPDF結合ツールnode用の「PDFManager」を使っていました。中身はJavaでできたApache PDFBoxだったので、Denoに移植。

taisukef/easy-pdf-merge-deno: A module to merge PDFs for Deno
本家がメンテナンス終了していましたが、deno版として勝手に引き継ぐ形としました。結合だけでなく、PDF関係でいろいろ使えそうです。

ヘッドレスChromeのフロントエンド、deno-puppeteer、Macでも普通に使えました!
Denoでpuppeteerを使う (windows) - Qiita
これで巨大なnode_modulesと付き合う機会が減りますね。


make deno version · IchigoJam/print@2ffd20c
揃ったので、NodeからDenoへ変換してできあがり!

deno run -A --unstable makepdf.js

Denoを使って、IchigoJamプリントの全ページを自動でブラウジングしながらPDFへ一括変換できます。


【レポート】アフリカ人留学生のインターンシップを実施しました | ict4e
ベナン共和国からはるばる日本へ来てくれているビドセスィ エマニュエル アゴス(Bidossessi Emmanuel AGOSSOU)さん!


ビドさん、フランス語版、ありがとう!
コンピューターの楽しさ、アフリカのこどもたちにも伝えよう!PCNこどもプロコンでは、世界中のこども達からの作品、お待ちしてます!


IchigoJam web でプログラミング体験! - YouTube
コロナでリアルイベントがなかなかしづらい状況が続きますが、IchigoJamはブラウザだけあれば無料で体験できます。 IchigoJam web を使ったはじめてのプログラミングから、ゲームづくりまでの30分動画(jigインターン生向けに実施&収録)。 ぜひ自分で打ち込みながらご覧ください!(高専生向けスピードなので、追いつけなければ一時停止、遅すぎであれば再生スピードを速くするなどでどうぞ!)

今年はオンライン開催となった政府によるこども向けイベント、夏休み恒例「こども霞が関見学デー」。 文科省のプログラムに、動画で疑似体験するIchigoJamとして参加しています。小さくてもスゴイ、コンピューターのパワーは、実機を触って試してもらうのが一番ですが、その片鱗を動画やエミュレーターでその片鱗に触れてみましょう。


☆令和3年度 「こども霞が関見学デー」 8月18日・19日 土曜学習応援団プログラム☆ - 学校と地域でつくる学びの未来
企業から提供されている就学前、小学生、中学生、高校生向けのプログラムが紹介されています。


プログラミング教材「IchigoJam(イチゴジャム)」の使い方とデモンストレーション - YouTube
動画と合わせて学ぶ、はじめてのプログラミング、ブラウザで、IchigoJam web を開き、一緒に動かしながらご覧ください。 大人の方もぜひどうぞ!


jigインターンも折り返しの3日目。夕方16時からの30分、気分転換としてお届けしたIchigoJam webを使ったプログラミング教育体験会。 ゲームづくり、学生にも楽しんでもらえました。(「⭐jigintern diary⭐」3日目)

BASICのいいところ
1. アルファベット小文字は知らなくてOK!(キーボードは基本大文字)
2. コマンドが短く、打つ文字数が少ない!(慣れてないと打つのが大変)
3. 覚えることが少ない!(BASICは対話ターミナルの祖!)

なんと、今年のインターン生のあろーから、任天堂SWITCHで動くBASIC、プチコン4のSmileBASIC版Geo3x3のプルリクが届きました!

BASICから派生したSmileBASICで実装された、Geo3x3の緯度経度のコード化アルゴリズム。


別ファイル呼び出しで関数を読み込んでいます。(プチコン3号とプチコン4でちょっと違う)


動作、完璧!対応82言語目としてマージしました!

せっかくなので、BASICの日として、MSXでお世話になったマイクロソフト製のVisualBASICとは別系譜のBASIC、Small Basic版Geo3x3の実装してみました。

Microsoft Small Basic Ever Kids Can Code
Small Basicにも、IchigoJam web 的な、オンライン開発環境があります。


Small Basic
Windowsであれば実行ファイルをコンパイルしてくれるソフトもダウンロードできます。ループ脱出に使ったGOTO用ラベルがオンライン版だと重複OKだったものが、ネイティブ版だとNGという違いがありましたが、両対応完了です。 (src on GitHub)

Small Basicは、元祖BASICとVisualBasicの間で、VisualBasic寄りな感じです。 変数はすべてグローバル、関数的なものはパラメータが付けられないサブルーチンのみなので、IchigoJam BASIC同様、小規模プログラム向け。 ただし、組み込み関数の名前はVisualBasic並かそれより長めで、打つ文字は長くなり勝ち。エディタ上で常時エラー検出していて、動かす前に間違いが分かるのは新設でいい感じ。

Let's begin program from basic!

福井高専主催、ものづくりを通して将来の研究者(ドクター)を発掘・育成するための小中学生向けプロジェクト「クラフテックラボ」30のプログラムのひとつ「はじめてのプログラミング」講座を開催。
福井県内の「ものづくり好き小中学生」大集合!


LEDを自分の思うようにつけたり消したり、繰り返したりするプログラミングを通じて学ぶ、コンピューターの本質。 とんでもなく速い計算力と記憶力を持つコンピューターくん。使用教材にこどもパソコンIchigoJam。 アルゴリズムや、アプリづくりの要を学ぶテレビゲームづくりも大盛況。


メモリになってみようsrc on GitHub
今回の講座で触れた、コンピューターの記憶、メモリの秘密を体験できるアプリを作ってみました。 オセロのコマように裏か表か、0か1かで記憶するのがコンピューターのメモリ。16コ使うと0から65535の65536通りの数を表せます。 この1つを1bitと呼び、この16bitはIchigoJamの変数と一緒です。LED65536で消えるヒミツ、分かったかな?

今回使ったプログラミング言語、IchigoJam BASICで慣れたら広がる、本格プログラミングの世界。このゲームはJavaScriptという言語でできています。 ゲームのコアの部分を見てみましょう。(index.html) // main let bk = 0; for (let i = 0; i < 10; i++) { const max = i < 2 ? 9 : i < 5 ? 99: i < 7 ? 999: i < 9 ? 9999 : 65535; const n = rnd(max) + 1; if (n == bk) { // 前回と被ったらやりなおし i--; continue; } bk = n; qdiv.textContent = n + "をおぼえてね"; while (n != await waitChanged()); qdiv.textContent = n + "、おぼえた!"; await sleep(1500); } qdiv.textContent = "ぜんぶできた!"; 近いもの、感じませんか?


はじめてのプログラミング with IchigoJam - スライドPDF
福井高専電子情報工学科棟の隣、専攻科棟の3Fと4Fに分かれた会場、オンラインでつなぎつつ、両方の教室を見て回るスタイル。「IchigoJam web」と合わせて、自宅でもトライ!


こども達に大人気だった、セグウェイドリフトもコンピューターを使った応用例。


みんなが好きな「ものづくり」にプログラミングをプラス!

小中学生向けのチャレンジ、PCNこどもプロコン越前がにロボコンもどうぞ!

情報発信のいいところは、良い情報が得られること。

SNS用画像生成に関して、@imabarizineさんに教えていただいたpuppeteerが良い感じでした! 情報のご提供、ありがとうございます!

夏休み、鯖江のHana道場ではこどもパソコンIchigoJamのはんだづけワークショップが開催されてました。

楽しくヤバイ、自分だけのパソコンをゲットしたら、ちょっと突っ込んで遊ぶためのIchigoJamプリントもオススメのひとつ。 puppeteerを使ってPDFまとめも作りました!

IchigoJamプリント
PDFダウンロードに対応!スマホや、タブレットで見るときはHTML版でOKですが、印刷にはPDF版が便利です。


日本語(80枚)英語(36枚)ルワンダ語(35枚)スワヒリ語(34枚)、4ヶ国語で学べる、IchigoJamプリント!

IchigoJam BASICで、プログラミングに慣れたら挑戦しよう、いろいろ作れるJavaScript。指定URLのリンクをたどって全ページPDFにするプログラムのコアはこちら。 const makePDF = async (browser, url, dstfn) => { const html = await (await fetch(url)).text(); const dom = HTMLParser.parse(html); const links = dom.querySelectorAll("a").map((a) => a.attributes.href).filter((a) => a.endsWith(".html")); const format = "a5"; const page = await browser.newPage(); const pdfs = []; for (const link of links) { await page.goto(url + link); const path = "temp/" + link.substring(0, link.length - 4) + "pdf"; pdfs.push(path); await page.pdf({ path, format }); } await mergeAsync(pdfs, dstfn); }; fetch(フェッチ、データの取得)して、parse(パース、文字解析)してリンク(links)を抽出して、リンクの数だけブラウザでその開いてPDF保存を繰り返し(for (const of links))しています。

IchigoJam BASICも、JavaScriptも同じコンピューターとのお話なので基本は一緒。まずはシンプルな言語でタイピングとプログラミングに慣れちゃいましょう!

SDGS、一番最初の目標「貧困をなくそう」を達成するにはどのような社会にするといいのでしょう?
富の分布のシミュレーション
平等にコインを持った状態でスタートし、1日に1度、ランダムに出会って2人が五分五分で1枚だけコインを交換するものを繰り返すと、富が大きく偏ります。 1枚ではなく、所持コインの10%、20%などと大きくするほどに、偏りがでる速度が増します。100%、つまり総取りにするとあっと言う間に世界で1人だけが全部持っていってしまうので、すべてはその中間ということです。

じゃんけんゲームシミュレーションsrc on GitHub
JavaScriptで作ったかんたんなシミュレーションツールです。

- 勝敗がランダムではなく実力で決まるとしたらどうなるでしょう?
- お金持ちから税金を徴収し、所持金0になった人に分けるとどうでしょう?
- 勝負に参加しない人がいるとどうなるでしょう?
- 1日に1勝負ではなく1秒に1勝負発生するとしたらどうなるでしょう?
- 定期的にリセットしてみてはどうでしょう?

こどもパソコンIchigoJamでもシミュレーション可能です。

100 FORI=0TO99:[I]=100:NEXT 110 T=0 120 FORN=0TO99 130 M=RND(100) 140 IF N=M GOTO130 150 IF N<M B=[N]/10 ELSE B=[M]/10 160 R=RND(2) 170 IF!R [N]=[N]-B:[M]=[M]+B 180 IF R [M]=[M]-B:[N]=[N]+B 190 NEXT 200 T=T+1 210 ?T 220 FORI=0TO99:?[I];",";:NEXT 230 GOTO120

社会を形作るルールを作るのは私達。
理想のルール、探りましょう!

links
- 成功を決めるのは「才能」でなく「運」 驚きの研究結果発表 | Forbes JAPAN(フォーブス ジャパン)
- 富の分布のシミュレーション
- 「格差は不当」と憤る人が気づいてない過酷な摂理 | リーダーシップ・教養・資格・スキル | 東洋経済オンライン | 社会をよくする経済ニュース

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS