1日の創業数を都道府県別に表示するアプリに、GitHub Actionsを使った自動更新を設定。廃業データも加え、名前も「新型コロナウイルス対策ダッシュボード」と合わせ、「創廃業ダッシュボード」と改めました。

創廃業ダッシュボードsrc on GitHub
創業数が廃業数より大きいと赤背景、廃業の方が多いと青グレーな背景としました。クリックかタップすると、該当する会社名が表示されます。


gBizINFO/.github/workflows at main · code4fukui/gBizINFO
GitHub Actionsは、GitHubのサーバー上で指定した処理をやってくれます。パブリックリポジトリであれば、利用は無料。「.github/workflows」というフォルダを作成し、中にアクション毎にYML(ヤムル)ファイルを置くだけです。

Deno標準のコーディング規約に沿っているかチェックする「deno.yml」と、毎日自動的に創業廃業それぞれのデータを、CSVファイルにして、リポジトリにプッシュする「scheduled-fetch.yml」を置きました。

name: Scheduled fetch on: schedule: # 毎日17:44分に実行 (JST=UTC+9) - cron: '44 8 * * *' jobs: build: name: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: denoland/setup-deno@v1 with: deno-version: v1.x - name: fetch run: deno run -A downloadDiff.js - name: commit and push run: | git config --global user.email "workflow@example.com" git config --global user.name "workflow user" git add . git commit -m 'update data' && git push ${REPO} HEAD:${{github.event.pull_request.head.ref}} || true git push

使いたい環境を記述して、やってほしいことをstepsで記述するだけ、簡単ですね!
GitHub Actionsのワークフロー構文 - GitHub Docs
昨日の作品、福井高専ニュースも、定期更新の設定してみました。


国税庁法人番号公表サイト
データ元はこちら、差分のCSVダウンロードを使っています。gBizINFOのSPARQL APIを使った実装と、作りやすさやパフォーマンスを比べてみたいところです。


創業ダッシュボードsrc on GitHub
都道府県別新規創業会社数から名前をシンプルに変更し、日付で選べるようにしました。(差分公開されていた7/14以降)


廃業ダッシュボードsrc on GitHub
都道府県別に廃業のみを見たい方はこちらをどうぞ。

各地でインターンしている高専生。リアルな現場での学び、楽しいですね!

「コネクトフリー社で活躍する福井高専インターン生」

ものづくりへの想いがぐっと高まった、その勢いで、普段の学生生活自体も現場と見て、自分たち、教員たちの課題を解決してみるいい機会!


福井高専ニュースsrc on GitHub
古巣、福井高専のニュースを掲載している全件「スクレイピング / scraping」によって取得して、CSVオープンデータとして加工するプログラム。 シンプルなコードはこの通り。ぜひみなさん、自分の学校でチャレンジしてみましょう! import { HTMLParser } from "https://js.sabae.cc/HTMLParser.js"; import { CSV } from "https://js.sabae.cc/CSV.js"; const url = "https://www.fukui-nct.ac.jp/news/"; const html = await (await fetch(url)).text(); const dom = HTMLParser.parse(html); const lis = dom.querySelectorAll(".news-list li"); const data = lis.map(li => { return { url: li.querySelector("a")?.attributes.href, date: li.querySelector(".post-date").text, category: li.querySelector(".post-cate").text, title: li.querySelector(".post-title").text, } }); await Deno.writeTextFile("fnct-news.csv", CSV.stringify(data));

HTMLParserで、HTMLをパース(字句解析)して、欲しい項目を名前付きデータの配列に変換、CSVとして出力しています。(Denoを入れて動かしてみましょう!)


デジタル庁ニュース
動き激しい、デジタル庁。「第1回デジタル社会推進会議幹事会 |デジタル庁」にて、多数の興味深い資料が公開されています。 日本全体のデジタル化、身近な学校が取り残されて損するのは学生自身。動こう、創ろう!

gBizINFOでは、法人情報はweb標準のAPI、SPARQLで検索できるので、ひとまず種別で全件取得し、検索できるようにしてみました。

日本の地方公共団体一覧」「日本の国の機関一覧src on GitHub
現在、それぞれ7386法人と846法人、合計8232法人あります。1つの国、これだけの機関があると管理費も膨大ですね。デジタル化で一気に効率化しちゃいましょう!

気がついた点
- 日本語の語彙とSPARQLでの英字変数の対応を考えるのが煩雑
- 同じ住所で表記ゆれがある
- 語彙がリンク切れしている
- 市区町村コードのURIがリンク切れしている
- コード一覧もCSVやAPIで取得したい(法人種別 kind.csv など作成)
- SPARQL便利!(makeLocalgovs.js using GBizINFO.js based on SPARQL.js)

課題はいろいろありますが、網羅性あるオープンデータが機械判読できる状態で存在すれば、なんとでも変換できますね!Let's code for 日本!
デジタル庁とシビックテック|デジタル庁


本日、産官学の会「ゼロトラスト研究会」の第二回目を越前市役所にて開催。 ゼロトラスト研究会は、福井県情報システム工業会、DX推進委員会、行政手続き分科会での研究会で、工業会メンバー企業を中心に、福井県、福井県内市町、福井高専などで構成しています。 地球上さまざまな機関、安全にシンプルにつなぎましょう!


武生に来たら、ボルガライス

福井県がオープンデータ化している河川の水位データの整理後、早速、@furandon_pigさんより、いい感じな改善案いただきました。(furandon-pig/csv-map.js.diff)

アイコンではなく、その場で推移がグラフが見えると便利そう!
csv-mapタグのCSVMapクラスを拡張可能にリファクタリングし、直近5点のグラフ表示に対応してみました。
福井県河川水位計マップ
CSVMapのマーカー生成部をオーバーライドして、グラフ描画している例です(src on GitHub)。 また、見たい場所をURLで記憶、共有可能にする機能も追加。Geo3x3とレベルを使った位置保存、便利!

拡張タグの継承時、customElements.defineで登録しないと、クラス生成時に「TypeError: Illegal constructor」となるので注意!


水防災オープンデータ提供サービス事業 - 国土交通省水管理・国土保全局
福井県以外にも対応するのに便利そうな、@imabarizineさんに教えてもらったオープンデータ!・・・と思いきや、1県あたり月額1500円の有償提供

オープンデータとは、二次利用が可能な利用ルールで公開されたデータのこと。有償データ提供サービスのデータはオープンデータとは言えません。

水防災オープンデータのオープンデータ化、望みます!

恐ろしい大雨による河川氾濫。実際見に行くのは危険なので、データで見ましょう。

福井県 河川・砂防総合情報」に福井県内の河川水位データが集約されています。
スマホ対応されていない古いシステムなので、データをスクレイピングして、使いやすいアプリづくりのベースを整えましょう。
福井県河川水位計マップsrc on GitHub
データを取得し、グリーンは問題ない水位。水防団待機水位を超えたら紫、はん濫注意水位を超えたら黄色、避難判断水位を超えたらオレンジ、はん濫危険水位を超えたら赤のマーカーで表示しています。 推移をざっくり把握するため、過去5件のデータを表示していますが、グラフ化するともっと分かりやすくなりそうです。

GPSを使って近所のデータをすぐにチェックする機能を追加しました。Promiseを使ってシンプルにawaitできる「getCurrentPosition.js」を使うと楽ですよ!


クリックすると、基準となる水位などを詳細情報を表示。福井県のグラフ表示サイトへのリンクもあります。

こちら今回まとめた勝手オープンデータ。県のページでは1時間おきですが、最新情報は10分置きに更新されます。
- 河川水位センサーのCSVオープンデータ
- 日付別に全観測所の水位のCSVオープンデータ

位置情報は福井県のサイトからざっくりマッピングしているのでズレがあります。公式での位置情報オープンデータを探してみます。
→ 福井県オープンデータ「1.防災 | 福井県ホームページ」に位置情報ありました!(Thanks! @y_takamu さん)

緯度経度、度分秒(DMS)形式から度への変換プログラムはこんな感じです。 const dms2d = (d, m, s) => { const p = (s) => parseFloat(s); return p(d) + p(m) / 60 + p(s) / (60 * 60); }; ただ、5箇所の正確な緯度経度が分かっていません(Geo3x3のレベルが14のもの)

7/22海の日に、マリンデブリ問題にシビックテックで挑む!
福井県庁と美浜町の共催によるアイデアソン「美しい浜アイデアソン」に参加しました。

オンライン開催となりましたが、せっかくなので訪れた美浜町役場。


主催者の福井県庁、美浜町役場、お題提供の方々!


美浜の海 - VRふくい
ステキな海岸、さすが美浜!(福井で2つしかない珍しい交差点、美浜町ラウンドアバウトも写ってます)


と思ったら、海岸では無いところにはマリンデブリ、不法投棄され漂流、漂着した海洋ゴミがありました。 お題提供の方の話の通り、きれいな海岸の裏には多大な労力と、費用がかかっています。


福井県の美しい浜代表、水晶浜に到着。砂浜でアイデアソンスタート!今回5チームに分かれました。


さすがに炎天下で続けるのは無理そうだったので、お昼休憩に移動、美浜原子力PRセンターにカフェ発見。


おいしかった、へしこ茶漬け!

お昼後、アイデア検討を続け、スライドにまとめて、15時から発表!
発表時間は各チーム6分。審査の結果、参加していたBチームが優勝!

集合写真 by 福井県×デジタル・トランスフォーメーション


xGC - garbage collection anywhere
マリンデブリの7割以上は地上で不法投棄(ポイ捨て含む)によるものとのこと。海だけの問題ではないわけです。 押さえて置きたい、ゴーストフィッシング、東日本大震災後いまだ漂うガレキ、海外から漂着する危険ゴミ問題。 Code for FUKUIのGitHubにまとめました。

製造から回収まで、ぐるっと資源を回すのが筋。不法投棄されたものを回収、回復する費用をきちんと捻出できるモデルにしなくてはいけません。 アイデアソンでは、地域通貨やポイントなどで、拾う人へのメリットあるようにとディスカッションされましたが、問題はその原資。

原資がなくても、ゴミ拾い自体を楽しんでしまうのがゲーム化するプラン。 ゴミ拾い後の分別にコストがかかるなら、そもそも特定のごみのみ拾うスポーツに仕立ててしまいましょう!

ペットボトルのキャップを集めて、一定エリアにばらまき、早く全部拾ったもの勝ちのゲームで対戦してみると楽しいかも!?

Treasure Hunting
スマホゲームにもしてみました(PCでもマウスで遊べます)。ごみ1つのステージから、10コまでの10ステージのタイムを競えます。 触ったら即アウトな危険ゴミを追加するのもいい学習になって良いかも。

過去の様々な実験によると、最も効果が高いものは不法投棄・ポイ捨てへの罰金・罰則とのことでした。ポイ捨て条例作って原資を確保するのもありかもしれません。


イベント終了後、美浜原子力PRセンター内、見学。凄まじい原子力のイメージとは違ったかわいい内部。


お隣敦賀市、高速増殖炉もんじゅ近くのテイクアウトカフェ「Calm」は残念ながらおやすみの日。

不法投棄ごみ問題、Code for FUKUI にて、継続的にチャレンジしましょう!
xGC - garbage collection anywhere
コメントや、アイデア投稿、お待ちしています!

勝山市、中学生自身が開発する校内SNSによる学校DX by PCN勝山片瀬クラブ!
校内版SNS 中学生開発へ 勝山南部 つぶやき、画像 瞬時に閲覧:日刊県民福井Web
URLインポートでESモジュールを使っていので、JavaScript / Denoですね!

IchigoJamでプログラミングの基本が分かったら、JavaScriptで遊ぶのがオススメです。ゲームやツールづくりからAI、画像処理、音声、動画まで、幅広く楽しめます。

IchigoJamで扱える記憶容量はせいぜい100KB、現代のPCのHDDはTB単位なので、ざっと1000万倍もの巨大容量が自由自在!?

とはいえ、メインメモリはGB単位なので、1GBのファイルでさえExcelで開けません。そんなときはプログラミング!行単位で分割された大容量ファイルを扱うライブラリ「line-rw」を作り、CSVReader/CSVWriterを提供する「csv-rw」と、NDJSONに行単位アクセスを追加しました。


line-rw
readLine、writeLineと行単位でアクセスします。非同期関数なので、読み込み終了を待ってほしいときは await 付きで呼び出しましょう。 読み込みバッファを超えて改行を探すところで一工夫していますが、もうちょっと改善の余地があります。


csv-rw
上記 LineReader / LineWriterをそれぞれ使ったCSVReader / CSVWriterです。 CSVはダブルクォートを使って改行付きのデータを入れられるので、1行読んで途中なら更にもう1行読む感じで1レコード取得しています。


NDJSON
ワクチン接種数オープンデータで使われているNDJSONもLineReaderで真価を発揮! CSVと比べて容量は大きくなりがちですが、1行目を読む必要がなく項目が変化しても大丈夫な柔軟なデータ形式です。

ESモジュールなので、インポートすれば即使えます。 関数を足したい、更に効率を上げたいなどの場合にも、GitHubからcloneして改造できるオープンソース。 それぞれ試しに動かせる example、deno test -A でチェックできる、test ディレクトリを付けています。

・・・改行コードの問題を忘れていました。Windowsで要確認です。
そろそろ改行はLF(=10)のみ統一したい。

機械学習(ディープラーニング)を使った疑似企業の評価額を競う、高先生向けコンテストの第二回、DCON2021にて打音検査システム「D-ON」を作った福井高専チームが最優秀賞!
【DCON2021 最終結果】打音検査システムが6億円の企業評価額を受け、福井工業高専チームが最優秀賞を受賞 - 一般社団法人日本ディープラーニング協会【公式】
(若手奨励賞、アイング賞、KDDI賞も同時受賞)

メンターを務めた舞鶴高専の先輩、さくらインターネット社長の田中さん、ご来鯖!

福井高専正面にはDCON勝利を伝える巨大な垂れ幕!


大きな優勝旗と共に!

D-ONは、劣化する橋梁などの打音検査を機械学習を使ってサポートするシステム。鯖江橋梁オープンデータによると423もある鯖江市管理の橋。 年齢判明している最古の橋は1926年製、95歳!福井高専内、環境都市工学科向けに作られた古い橋梁の検査施設も活用して実装が進んだ本プラン。


音と機械学習は相性良し。音を気軽に扱うWeb Conponents、input-voiceタグと、それを応用した音声非同期コミュニケーションツール「voice-bbs」のミニマム版を公開。 ちょうど内定者向けの勉強会向けに作ったところでした。 <script type="module" src="https://code4fukui.github.io/input-voice/input-voice.js"></script> <input-voice id="inputVoice" max-length=5></input-voice> これだけで音声録音して、データを取り出せます。お手軽ですね! GitHubとDenoとブラウザだけですぐ試せる、音遊び。DCON2022のエントリーも始まってます!


メンタリングも決勝大会もすべてオンラインだったので、これが初リアル対面!


福井高専校長田村さんと高専の未来会議&学生とのアフターメンタリング。 コンテストはあくまできっかけ。ひとりひとりが持つ可能性、最大限に活かしていきましょう!


Han道場向かいのステキシェアオフィス、Hana工房も見学。


中高生向けセキュリティコンテスト「CyberSakura - サイバーサクラ」も今年から本格展開スタート。 参加者募集中!進化する高専生達を応援します!

自分たちのまち、自分たちでつくろう、Make our City プロジェクトを推進する一般社団法人コードフォージャパンの代表関さん、来福!

元市長の牧野さん、鯖江市元CIOの牧田さんとひさびさの再開!Code fon FUKUIの発足式と、Code for Japanとのパートナーシップ締結も行い、サイバーフライデーを一緒に楽しみました。


FUKUIワクチンダッシュボード」(src on GitHub)
こちら本日発表、新型コロナウイルスのワクチン接種予約をスムーズにするために、市町ごとに予約可能な日程がひと目でわかるアプリ! GitHubで公開しているオープンソース、福井県庁の職員の人も直接GitHubで編集する形での共同作業で開発しました。 県内医療機関によるデータ登録が始まり、福井県庁のサイトからリンクされ、一般公開がスタートです。 福井県知事、杉本さんもツイート


各医療機関が「PUSHかんたんオープンデータ」を使って、予約可能な日付をセットして「更新」ボタンを押すだけ。オープンデータ化され、アプリで使っています。 福井県との取り組み「福井県施設ダッシュボード」向けに作ったオープンソースを少し拡張しています。


8回目くらいの来鯖、Code for Japanの関さん、クリスとのラジオ番組、CyberValley, Japan にゲスト出演いただきました。


鯖江商工会議所DX委員会主催の講演会、DIY都市をつくろう by Code for Japan 関さん


ともに考えともにつくる、Code for Japan のミッションは、オープンにつながり社会をアップデートすること!シビックテック、しましょう!


企業と地方自治体との連携、Code for Japan コーポレートフェローシップ事業は鯖江で誕生!


未来の都市づくりには、テクノロジーを使った都市OSだけでなく、何を目指しどのように進めるかという都市マネジメントが大事。


DIY都市、改め、Make our Cityプロジェクトへ!自分達のまち、自分たちで創ろう!


しっかり話し合うためのプラットフォームとしてオープンソースの「Decidim」の活用が始まっているとのこと。 (Code for Japan によるDecidim on GitHub)

コメント.netを使って、会場からの質問、感想を送ってもらいました。その回答と共にご紹介。

1. Make our City に関する感想などをどうぞ

2. 楽しかったです
うれしいです

3. 都市OSって名前かっこいい
かっこいいですね!

5. 市民、自治体、企業で地域課題解決をしていくスキームが素晴らしいと思います。このイニシアチブを誰がとるとベストなんだろうという事が気になりました!
誰とは決めずに、取りたい人が取り、オープンに連携していく形が良さそうです

6. 概論として良かったです。次はいくつかの具体事例を掘り下げるセミナーがあると嬉しいです。
具体的に何かに取り組んで、手を動かしてみるのが理解を深める一番の近道かもしれません

7. 勘違いでなければ、都市OSが乱立している状況とあり、今後もさらに増え続けると思いますが、そのことは結局市民と市町間でのデータ割り振りは便利でも、結局県同士など大きな括りで便利になりきらず、いいことも全国には広がりきらないイメージを受けとりましたが、実際どうなのでしょうか
Code for Japanが開発した東京都の新型コロナウイルス対策サイトは一気に全都道府県に広がりました。オープンソースなので、すべてが同じソフトウェアである必要はなく、地域ごとカスタマイズも可能で、バリエーションも生みますが、それが同時に強さとなります。

8. オープンデータも内容によってはある意味自分の(自治体の)弱さを認める度量が必要なのかなと思います。そこでためらわないようにするためにはどのような後押しが必要でしょうか?
国のシステムですらゴタゴタしているので、ある程度の弱さは想定内でしょう。弱さや誤りの発見こそ「前進の証」とポジティブに捉えましょう。

9. 大学生でビジネスプランを考えていたのですが、FIWAREの活用例で気になる点があったのでその所を深掘りしていきたい。
ぜひ探っていきましょう!

10. 都市OSって、本当に国は作らない、統一しないのでしょうか?
11. そうなると、自治体で統一IDを作らないと、様々なサービスが連携しませんよね。マイナンバーは統一IDにできないでしょうから。県内で一つにまとめる意義はあるでしょうか?
マイナンバーカード、gBizID、ベースレジストリなど、国が用意する機能もあります。都市OSではそれらを必要に応じて活用する形になります。
政府の整備するデータに関しては「包括的データ戦略(2201-06-18)」が詳しく、関係者が登壇するCode for Japan主催のイベントもあります。
データアカデミー研究会 presents 「政府のデータ戦略ってどう進んでいくの?」セミナー | Peatix


福井高専校長田村さん、地域とテクノロジーと高専、相性バツグンです!


Code for FUKUI」のロゴ、発表!
ビル群ではなく、東尋坊に載ったフクイラプトルがモチーフとした、福井県ブルー基調のロゴ。作者は、越前市役所の職員、ボルガチョフ波多野さん!


Code for Japan と Code for FUKUI パートナーシップを締結。Code for X ブリゲードとして登録完了! 背景にした、Code for FUKUI ロゴと、Code for Japan ロゴの市松模様を作成するアプリ「プレス背景(src on GitHub)」もオープンソースソフトウェア。


Code for FUKUI発足でインタビュー。


FUKUIワクチンダッシュボードを一緒につくった福井県庁職員で、Code for FUKUI メンバーの宇佐美さんと!


関さんからアドバイスもらう、坂井市活性化アプリを企画している高校生


続いて、最終金曜日なので、サイバーフライデー!今回も展示にLTに、盛り上がりました。


ナチュラルスタイル工芸部による、ステキ焼き物さん達。抵抗箸置き大人気!


お箸とはんだごてが並ぶ不思議な光景。


家の温度、湿度、気圧、二酸化炭素濃度がオシャレに分かるアプリ in Dart/Flutter


福井高専生によるオリジナル基盤、IchigoShakeにアクリルのかっこいいケースが!


パソコンにつなぐ自作キーボードの標準規格に合わせた、人と差がつくペットボトルキャップのキーキャップ、1つ50円!


電子部品交換会も初開催!変なセンサーから生まれる発想もあります。ぜひ余った部品を持ってお越しください。


LTタイム、学生によるコンテスト「福井 SDGs アワード | FUKUI SDGs AWARDS 2020」の紹介。 SDGsに向けてよいツール探し&づくり、したいですね!


医療とテクノロジー融合がテーマのハッカソン「Hacking Medicine 2021」の参加レポート。 あらゆる分野で活躍する、テクノロジー。


機械学習を使ってネコとのツーショットを自動撮影してくれるアプリ!


関さんもLT「埼玉の呪われた玉」
日本で使う文字コードは政府提唱、JIS X 0213か、文字情報基盤でいきましょう!


今回のEIGHT SENSEのケータリングテーマは、ストロベリームーン!赤っぽくとまるっこいホットドッグ!


ソースカツ丼!人気のラスクも!


セグウェイドリフトに乗る関さん。


次回は、7/30金です!何か作りたい気持ちか、何か作ったものを持って、お越しください!
CyberValley, Japan

links
- テクノロジーで地域課題解決 コードフォーフクイ発足

福井県観光連盟によるイベント情報と、Code for FUKUIのイベントを混ぜて、CSVオープンデータ化し、アプリにしました。

イベント福井
どの語彙を使うか迷うところですが、政府CIOポータルの「標準ガイドライン群」にある「行政サービス・データ連携モデル イベントデータモデル(β版)」と「共通語彙基盤」をベースに日本語で設定しました。
event_fukui.csv

ひとまずシンプルに並べて表示するこのアプリ、CSSとJavaScriptが中心のHTML1ファイル

- CSSのflexレイアウトを使用して、タイル状に並べています
- 横幅に合わせてレスポンシブに横に並べる数を変えるmedia queryを書きました
- 画像のアスペクト比を固定する aspect-ratio: 16 / 9 と、いい感じにクロップしてくれる object-fit: cover が便利です
- キーカラーにCSS変数を使っているので、イメチェンも簡単です

forkしていろいろ遊んでみてください。イベント情報の追加プルリクもOKです!
(code4fukui / event_fukui src on GitHub)

HTMLをスクレイピングしてCSVデータ化するJavaScript/Denoコードと共にGitHub Pagesでオープンデータ公開しているリポジトリはこちら。
(code4fukui / event_fukui_data - src on GitHub)

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