JavaScriptでサーバーサイドもサクサク書けて便利な Node.js。 jsからmjsへ移行したもののブラウザ上のコードとの互換性が無いことにと、プロジェクトごとに増える node_modules が気になっていたところ、Node.jsの作者 Ryan Dahl 氏自身による Deno を発見。 いい感じだったので「PUSHかんたんオープンデータ」を移行してみました。


福井県施設 オープンデータ - PUSHかんたんオープンデータ」(src on GitHub)
バックエンドのエンジン変更なので、見た目は変わりません。 それでは寂しいので、複数の施設をひとまとめにする「集約オープンデータ」に対応! 複数の施設や店舗をひとまとめにしたオープンデータリンクを自由に作成できます。追加、削除、順番変更も思いのまま!


福井県、県有施設等の混雑状況をオープンデータとして公開:民間有志が同データを利用して混雑状況の一覧をスマートフォン等からも閲覧可能なダッシュボードを作成し公開 | カレントアウェアネス・ポータル
国立国会図書館さん、中日新聞さんにご紹介いただきました!オープンデータで切り拓く、ライトな官民連携の仕組み。ぜひ他の地域でもどうぞ!
県有施設の混雑状況をオープンデータに 出発前に確認、スマホでOK:福井:中日新聞(CHUNICHI Web)


Deno
恐竜アイコンがかわいい、Deno(ディーノ)は、Node.js作者が反省を踏まえて開発した、webフレンドリーなもうひとつのJavaScriptバックエンドエンジンです。ブラウザとの互換性の高さと、package.json不要で、URLでimportし、適宜キャッシュしてくれるパッケージ管理システムが特徴です。 (Denoの登場でNode.jsの時代は終わるのか? - Qiita

Node.js 用プログラムからの移行、ファイルアクセスの標準モジュール fs を必要なものだけ独自に用意。(node_fs.mjs on GitHub)

const fs = {} fs.readFileSync = function (fn) { const data = Deno.readFileSync(fn) const decoder = new TextDecoder('utf-8') const s = decoder.decode(data) return s } fs.writeFileSync = function (fn, s) { const d = new TextEncoder('utf-8').encode(s) Deno.writeFileSync(fn, d) } fs.appendFileSync = function (fn, s) { const d = new TextEncoder('utf-8').encode(s) Deno.writeFileSync(fn, d, { append: true }) } fs.readdirSync = function (dirn) { return Deno.readDirSync(dirn) } fs.mkdirSync = function (dirn) { return Deno.mkdirSync(dirn) } export default fs

あとは、expressからDenoのhttpに移植して、完了!(push_deno.mjs on GitHub)

セットアップに npm install はもういりません!下記の起動コマンドで即実行!(ファイルアクセスやネットワークアクセスを許可する -A オプションが必要です)

deno run -A push_deno.mjs

mjs x Deno の組み合わせで作ってみることにします!

混雑を避ける、コロナ禍では平時以上に重要です。福井県統計情報課とCode for Fukui / Sabae 連携で、福井県施設ダッシュボードに混雑状況表示が加わり、運用開始

福井県施設ダッシュボード」(src on GitHub)
定休日や、臨時休館日などを反映して、開いているかどうか、空いているかどうかがひと目で分かります。CSV/JSONオープンデータを使った応用例です。 デザインや、使い勝手、データを収集しての解析など、自由に二次利用が可能です。もちろんこのアプリもオープンソース、改造提案、改造版立ち上げも大歓迎!


福井県施設状況オープンデータ
CSVやJSONでダウンロードし、自由に活用可能です。


PUSH かんたんオープンデータ」(src on GitHub)
Code for Fukui / Sabae で開発した、データを更新する仕組みはこちら。Googleスプレッドシートによる更新をもっとシンプルにしたイメージです。スマホで簡単に、混雑状況を伝えられます。 急な休業日、営業時間変更も簡単!


教育博物館 オープンデータ
個別のページも自動的にでき、CSV/JSONオープンデータへのリンクがあって、人にも機械にも優しい。


教育博物館 オープンデータ
プログラマー大好き、JSON形式!


エイトセンス オープンデータ
ランチなどでお世話になっている鯖江のカフェ、EIGHT SENSE(エイトンセンス)さんにも使ってみてもらいました。行政施設のみならず、幅広く使っていきたいところ。


県有施設等の混雑情報をオープンデータ化します | 福井県ホームページ
行政と民間、オープンデータでどんどんつないでいきましょう!


日本政府による民間とすすめるコロナ対策「指標をCSVオープンデータに! by 福野泰介さん | 新型コロナウイルスと戦う意見募集サイト VS COVID-19アイディアボックス」が、人気です!

福井市のヒノキ花粉飛散量を予測するチャレンジ「カフモン2020」の期間が終了。 福井県による花粉オープンデータと照合して、結果発表です!

カフモン - 花粉オープンデータチャレンジ
優勝は、みずのさん!おめでとう!


2020年分のスギ花粉とヒノキ花粉の量も合わせてグラフ表示しています。(src on GitHub)
東京都版対策サイトでも活躍、グラフライブラリ Chart.js を、ES6モジュール対応の Chart.mjs へと調整、import 構文ですっきり使えるようにしています。

export default Chart

変更点はシンプル、末尾に Chartクラスを export と書くだけでした。

import Chart from './lib/Chart.mjs' import util from './lib/util.mjs' // 中略 const main = async () => { const url = 'data/r2_kahun_fukui.csv' const json = await util.fetchCSVtoJSON(url) console.log(json) showData(json) const urlp = 'data/kafumon2020.csv' const pdata = await util.fetchCSVtoJSON(urlp) console.log(pdata) showResult(json, pdata) }

Chart.mjs と util.mjs を使って、2つのグラフを作成しています。(src on GitHub)


今年のヒノキ花粉は、例と比べてずっと少なかったという結果でした。何が影響したのでしょうか?2007年からのデータがあるので、過去の気象データなどさまざまなデータを使った解析が可能です。

来年のカフモン2021もお楽しみに!

福井県独自の新型コロナウイルス対策、県内全戸へのマスク配布を購入券配布で、福井のドラッグストア「ゲンキー株式会社」が協力。 受け取った購入券を持って、最寄りのゲンキーを手軽に探せるマップアプリを作ってみました。 (県民向けにマスク購入をあっせんします | 福井県ホームページ


ゲンキーマップ
ゲンキー公開の店舗オープンデータはなかったので、「店舗・チラシ検索」に記載のデータから、一覧CSVデータを作成。 全角半角、郵便番号の表記ゆれも標準化。スクレイピングするソースコードもオープンソース、全国の高専生、Let's Code for! (Node.js src on GitHub

使用技術:ゲンキー店舗一覧CSV地理院地図 x leaflet.mjsカラム地図util.mjs
* util.mjs - JavaScriptプログラム用の便利ユーティリティーの mjs まとめ(旧、fukuno.js)


ゲンキー店舗一覧CSV
Excelなどで一覧で見ると、表記ゆれや、データの間違いは一目瞭然。行政だけでなく、民間企業でもCSVオープンデータとして公開、業務効率化と集客に有効です!

Open Data Now! (元ネタ)

links
- 福井県庁の方へ、教材リストCSVオープンデータでウェブサイトも同時更新して楽する方法
- 厚生労働省の方へ、CSVオープンデータ化で効率化しましょう! 新型コロナウイルス国内事例における都道府県別の患者報告数表示アプリ
- おうちで学ぼう、時間割ガチャ。オープンソースで貢献するきっかけ、プログラミングの教え方新動画も公開!
- jigインターン2020募集開始!高専生の学びは止まらない、JavaScriptモジュール対応の地理院地図使用クラスライブラリ leaflet.mjs

臨時休館中の福井県内施設。現在、空いているかどうかを、ひと目で確認できたらうれしいとのことで、プロトタイピング!

福井県施設ダッシュボード
混雑状況フラグもあれば、空いているところを狙っていくこともできますね。データが溜まれば混雑予測につなげることも可能。IoTで自動連携もしたいですね!(参考、来場者IoTカウンター


今回の目玉は「休日の翌日」や「第二月曜日」などの表記への対応。 日本語をコンピューターに分かるように翻訳する、JavaScriptのクラスライブラリ dtcheckjp.mjs を作りました。 休日は祝日を含むので、政府オープンデータ「国民の祝日」を使っています。 まだまだ足りない表記がありますが、どんどん要望いただいたり、オープンソースなのでプルリク(修正要望)もらって、改善予定です!

チェック例

const dtcheck = await (new DateTimeCheckerJPl()).init() console.log(dtcheck.checkTime('8時〜9時')) console.log(dtcheck.checkDate('4月20日〜5月1日')) console.log(dtcheck.checkDate('祝日'))

お店の営業時間や、ゴミ捨てなどにも応用できます!

福井県の現役先生による動画教材「ふくいわくわく授業」に感動です。 福井県内外のこどもたちの学びにつなげるよう、教材リストのオープンデータ化を推進すべく、ウェブサイトの更新をCSVオープンデータで簡単にする提案です。


ふくいわくわく授業用HTML埋め込みサンプル」(福井県庁ウェブサイトスタイル)
教材リストオープンデータによって、業務が効率化する方法紹介しています。ひとまず、最新の状態にしてあるCSVファイルを福井県庁のウェブサイトスタイルで埋め込み、うまくいったら、更新用のCSVファイルを作って、更新してみてください。以降は、CSVファイルをアップするだけでOKです! (同様に、福井県教育総合研究所によるまとめを埋め込んだ例


新型コロナウイルス感染症について | 福井県ホームページ
既存のウェブサイトへの埋め込みは、福井県庁の新型コロナウイルス感染症対策サイトでも使われています!(福井県内の最新感染動向 | 福井県公認 新型コロナウイルス感染症対策サイト

教材リストオープンデータ(CSV)に、水戸市や、さいたま市の教材も追加しました。 ふくいわくわく授業のみを使った「時間割ガチャ」、一覧みるなら「いえでまなぼう!」など、オープンデータなら二次利用が広がります。

こどもも大人も自分で学べる「時間割ガチャ」引き放題、学び放題!
アプリづくりはオープンソーススマホひとつで誰でもチャレンジできる動画教材づくりなど、レッツトライ!

福井県の教育委員会が始めた福井県独自の学習動画づくり&配信の取り組みがステキです!


Twitter/Facebookでも県内外から大きな反響!そこで、作ってみました、動画で学ぶ時間割!全国の高専の先生もいかがでしょう?エンジニアに憧れる、小中学生にワクワクを届けるチャンスです!


時間割ガチャ - 教材オープンデータから自動生成する時間割
PCNチャンネルと合わせて、オープンデータとしてまとめ、作ったランダムに教科をピックアップして自分だけの時間割を作ってくれるアプリです。

自分の好きなことを自分で学ぶ時間「自由研究」と、自分で学べば学ぶほど楽しい「プログラミング」を混ぜています。 「ゲームは1日1時間! IchigoJamは1日4時間!!」 by 高橋名人(出典、連射ゲーム - SHIROのIchigoJam日記

Schooさんで、収録した新動画「おとなプログラミング入門」も追加!

プログラミング教材「IchigoJam」の使い方とデモンストレーション 32min」
BASICからはじめよう、SchooにてIchigoJam動画教材収録! ガチャピン・ムック、engadget、高橋名人も参戦!?


「対象、科目、タイトル、URL、公開日」を項目名としたGoogleスプレッドシートや、CSVデータとしてオープンデータとしていただければ、どんどんつないでいきます!
教材オープンデータ 登録フォーム

集約したCSVJSONデータは、オープンデータ by Code for Fukui。こちらも自由にお使いください。ただし、動画自体はそれぞれ提供者の著作物なのでご注意ください。


このプログラムも、GitHubでオープンソースとして公開しているので、学生でも誰でも自由に作り変えて使ったり、公開したりできます! デザインをかわいくしたり、学年選択や、得意科目を多めにいれる、逆に苦手科目を克服するなど、自由に改造して自慢しましょう!

JavaScriptで作ったプログラムのメイン部分(index.html)を紹介。CSVデータを読み込み、タイムテーブル作成し、ウェブサイト内に組み込む。ボタンが押されたら、もう一度!

const main = async function() { const url = 'data/funs.csv' const data = await fetchCSVtoJSON(url) const show = function() { timetable.innerHTML = '' const tt = makeTimeTable(data) timetable.appendChild(tt) } show() btn.onclick = show } window.onload = main

学び方を学ぶ、良い機会!

福井県庁、新型コロナウイルス対策アプリに必要なオープンデータを、総務省推奨、Code for Japan 作成の推奨データセットに準拠する形で公開スタート!
新型コロナウイルス感染症のオープンデータを公開します! | 福井県ホームページ


COVID-19 Fukui 福井県 新型コロナウイルス対策ダッシュボード
早速、陽性患者オープンデータを使って、福井県カラム地図上で各市町の現在患者者数の多さを色の濃さで表現。


新型コロナウイルス感染症のオープンデータを公開します! | 福井県ホームページ
データはこちらからどなたでもオープンデータとしてご利用いただけます。


陽性患者情報、検査実施件数、陰性確認数、コールセンター相談件数、4つのデータセットがCSVで公開。


東京都版をベースに新たな定義された推奨データセットを使用(総務省資料より)


新型コロナウイルス感染症対策サイトのためのデータ公開について 令和2年3⽉31⽇総務省
詳細は「新型コロナウイルス感染症対策サイトのためのデータ公開について」「新型コロナウイルス感染症対策サイトのためのデータ公開支援 - Code for JapanCode for Japan」をご覧ください。 他の都道府県の担当の方もぜひご検討ください!(参考、オープンデータの作り方と育て方


福井新聞掲載された、福井高専学生開発の福井版対策サイトと共に、新型コロナウイルス対策ダッシュボードも連携サイトとして福井県庁からリンクいただきました。

東京都によるGitHub公開から1週間、日本政府も新型コロナウイルス対策の民間支援データをまとめオープンデータとして公開、Code for Japan連携で開発GitHubで公開、経産省&総務省からのプレスリリースと爆速展開! オープンデータ x GitHub、各地に広まってます。


VS COVID-19 #民間支援情報ナビ」(src on GitHub経産省 発表総務省 発表
データを集めと標準化した経産省CIO補佐官 平本さん、デザインしてくれた北海道森町の行政アーティスト、山形さん(@howmori)!Code for Japanからのリリースに向けてサポートしてくれた、関さん(@hal_sk)。 他、官民、組織、地域を越えた関係者による素早い連携で実現。

プログラムは何の変哲も依存関係もないシンプルなHTML+CSS+JavaScript、1ファイル!公開直後、丁寧で効果的なプルリクをいただき、大感謝!改善提案、自分好みの言語への変換など、オープンソース力を大いに活用いただきたい。


VS COVID-19 企業/NPOによる支援リスト」(src on GitHub)
Code for JapanのSlackにて、NPOからの情報も載せたいと要望あったので、同形式でデータを追記してもらい、Code for Sabaeでフォークしてミックスしたバージョンを公開。 それぞれ使いやすいように自由に改造、公開できるのがオープンソースの強み。ぜひ得意な言語で、かっこいいサイトで新型コロナウイルスに対抗しよう!


COVID-19 Hokkaido」(src on GitHub)
東京都GitHubをforkした北海道版がスタート!早速、data.jsonを使ってサマリーアプリ。


COVID-19 Kanagawa」(src on GitHub)
神奈川県版

プログラムを自由に公開、再利用できるコラボレーションサイト「GitHub」は、情報系高専生にも人気。第一線で活躍するエンジニアのコードはどうなっているのか?どのような手順で開発は進むのか?生の現場を見られ、体験できる最良の学習の場!


COVID-19 Fukui」(src on GitHub)
陽性患者がでていない福井県、「新型コロナウイルス感染症について」として、情報提供開始。スクレイピングして、JSON-API化したものを作って、同様のサマリーアプリにした。 IchigoJam/MixJuice向けTEXT-APIもうどうぞ。 HTMLによるみなし2つ星オープンデータ、サイトの構造が変わると追従できないので、感染者がでたり、タイムリーな情報提供が必要になったら、また対応すると同時に、より連携しやすい方法を相談してみたい。

盛り上がる日本のシビックテック。東京都GitHubや、Code for Japanでの貢献呼びかけに応じる高専生、学生はまだまだ少ない。年齢や技術スキルで制限をしているわけでもないので、長い春休みなのに出かける機会が減っている学生にとっては絶好の活躍チャンス。

まだまだ手探りな行政DX(デジタルトランスフォーメーション)、だからこそシビックテック、ひとりひとりの行動が大きな力になる。 未来を嘆くか、未来を創るか。


【もっと挑戦!福井人】vol.3 福野泰介さん/こどもプログラミングの仕掛け人、福井で輝き続ける理由とは|福井県の長期ビジョン 〜みんなで描こう福井の「未来地図」〜|note
福井県からの取材。今の自分があるのは、高専生の頃、プログラミングの技を社会で実践させてもらえるチャンスがあったから。どんな場所でも、誰であっても、すぐに貢献できるネット時代。大いに活用していきたい。

links
- 小中学生でも貢献できる! IchigoJam/MixJuice用、新型コロナウイルス状況オープンデータ取得API東京都編
- 都内日別患者数を等身大でVR体験するアプリ「VR-Patient」、体作りデータ、対策キャラが誕生した世界オープンデータデイ in 鯖江

鯖江牧野市長も副市長勤めて、サバつながりの小浜市にて、KDDI、エル・コミュニティー、jig.jp連携事業。(連携発表
大人向けに子供向けプログラミングを体験してもらってのディスカッション!VIEDO3を使った拡大文字が好評でした。小さな子にもいいかも?


はじめてのプログラミング with IchigoJam (BIG)
拡大文字を使ってエルチカ&かわくだり!
標準、USキーボード版も更新しました!(slide pptx/keynote/pdf on GitHub


動画もどうぞ(6年の集大成、はじめてのプログラミングの決定版、IchigoDyhookを使った模擬授業の全動画 - 地域ICTクラブ普及フォーラム

小浜市副市長もプログラミング!

鯖街道の起点、発見!

小浜市のよっぱらいサバ!

鯖SABAつながり、盛り上げていきましょう!

links
- KDDIさんと出張Hana道場!小浜市でIchigojamプログラミング: Hana道場

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