webの本質は共同作業、みんなの力をキュートに集めるウェブサービス、自分でも創ってみたいですね。 進化するプログラミングの世界、随分簡単にステキなサービスが作れるようになりました。

今回は、IchigoJam BASICからのステップアップにイチオシの言語「JavaScript」と便利ツール「Node.js」を使った「チャット」づくりのチュートリアル!

みんなの力を集めるには、ひとりひとりが持つコンピューターからデータを集約するために、いつも動いているコンピューター、サーバーが必要です。ひとまず、今使っている自分のパソコンでOKをサーバーにしてみましょう!

そんなサーバー上で動かすための便利ツール「Node.js(ノード・ジェイ・エス)」を使えば、サーバー上でもJavaScriptが使えます。

まずは Node.js をインストール!
(初心者の方へ、PDF WebサービスはじめのいっぽJavaScript / Node.js版
【Node.js入門】各OS別のインストール方法まとめ(Windows,Mac,Linux…) | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト

GitHubから今回のチャットサービス「nodechat」をダウンロード。
ダウンロードしたファイル、まずは JavaScript での基本表示。console.logを使って、計算しましょう。(step0.js)

console.log(1 + 1)

こちら、コンソールを開いて、ダウンロードしたフォルダに移動し node コマンドを使って動かします。

node step0.js 2

1+1の計算ができました!

続いて、ウェブサーバーを作ります。(step1.js)

const http = require('http') const server = http.createServer() server.on('request', function(req, res) { console.log(req.url) res.writeHead(200, { 'Content-Type' : 'text/html; charset=utf-8' }) res.write('ハロー<br>req.url: ' + req.url) res.end() }) server.listen(8001)

こちらも同じように動かします

node step1.js

何も出ずに固まっている?エラーが出てなければ無事動いているはずです。ブラウザで http://localhost:8001/ を開いてみましょう。

ブラウザのアドレス欄、URLの末尾に数字やアルファベット足してエンター、アクセスしてみましょう(例:http://localhost:8001/abc)。nodeを実行した画面にも、ブラウザにも表示されますね。 端末側(クライアントと呼びます)からのデータを、サーバーで処理し、クライアントに返すがウェブの基本です!

※ localhostというのは自分のコンピューターを表し、コロンの後はポート番号といって窓口のID的なものです。同じ番号の窓口で複数のサーバーは起動できないので、必要であれば番号 8001 を好きな数に変えましょう(推奨:1024〜49151)。

step2.js で、static フォルダに入っているHTMLファイルや画像ファイルを返すようなプログラムを追記します。requireを使ってサーバー上のファイルを返す、簡単なウェブサーバー機能 simplewebserver.js を追加すると、画像つきのウェブページが見えるようになります。

step3.js で、クライアント側とデータをやりとりするAPIのベースを作成、/api/ で始まるパス名が来たら API として処理することにします。

server.on('request', function(req, res) { console.log(req.url) if (req.url.startsWith('/api/')) { const urlp = url.parse(req.url, true) res.writeHead(200, { 'Content-Type' : 'application/json; charset=utf-8' }) console.log(urlp.query) res.write(JSON.stringify(urlp.query)) } else { simplewebserver.serve(res, req.url) } res.end() })

そしていよいよ step4.js でチャットを実現するAPIを追加!
こちらがそのハイライト、サーバーのデータを操作しています。

let data = [] function serveAPI(fn, query) { if (fn.endsWith('/add')) { data.push(query) return data } else if (fn.endsWith('/list')) { return data } else if (fn.endsWith('/get')) { return data[query.idx] } else if (fn.endsWith('/clear')) { data = [] return data } else if (fn.endsWith('/remove')) { data.splice(query.idx, 1) return data } return { res: "OK" } }

5つのAPIを実装しました(addで追加、listで全部取得、getで1つ取得、clearで全件消去、removeで1つ消去)
こちらを動かし http://localhost:8001/chat.html を開きましょう。文字をいれて SENDボタンで、1行追記されます。別のウィンドウでも開いて一人二役チャットをやってお試しください。

ipconfig (Windows) や ifconfig (Mac/linux) を使って、今使っているIPアドレスを見つけたら、同一ネットワーク内にいる人や、Wi-Fiにつないだスマホから、IPアドレスで参加できます!(例、http://192.168.1.13:8001/chat.html )

chat.html 内は、何もフレームワークを使わないシンプルなJavaScriptでできています。

window.onload = function() { const fetchJSON = async function(path) { return await (await fetch(path)).json() } const show = function(data) { console.log("show", data) let s = "" for (let i = 0; i < data.length; i++) { const d = data[i] s += `<div><span>${d.ts}: </span><span>${d.text}</span></div>\n` } list.innerHTML = s } const update = async function() { const data = await fetchJSON('/api/list') show(data) setTimeout(update, 3000) } update() send.onclick = async function() { const text = encodeURIComponent(nickname.value + ": " + chat.value) const ts = Date.now() show(await fetchJSON(`/api/add?text=${text}&ts=${ts}`)) chat.value = "" } remove.onclick = async function() { show(await fetchJSON('/api/remove?idx=0')) } removeall.onclick = async function() { show(await fetchJSON('/api/clear')) } }

この状態だと、サーバーを止めるとデータが消えてしまうので、ファイルとして保存するようにしたのが step5.js です。require('fs')を使った違いを見てみましょう。

以上でチュートリアル終了です。おつかれさまでした!疑問に思ったところは、いろいろ変えたり、調べたりしてみましょう!分からないことあれば、@taisukef までメンション/DM大歓迎です!(より良いチュートリアルに仕上げたいので)

テキスト、絵、音声、画像など、どんなデータを集めて、どう見せる?
それはあなたの自由です!

実際にネット上のみんなに使ってもらうためには、常時動かしておくサーバーが必要です。 自宅のパソコンを動かし続けてもOKですし、Herokuで無料で始めてみたり、さくらインターネットのVPSや、ConoHa(1時間1円!)などで借りることもできます。


春のjigインターン、開始!


SCCにて、IchigoDyhookを使ったIchigoJamプログラミング教え方講座


はじめてIchigoJam BASICを触った高専生による改造されたかわくだりゲーム


こちらソース!


めがね会館、見学!明日から開発開始!

tags
- 所要時間: 3分
- ジャンル: 3分でわかるTech記事

links
- JavaScript(Node.js)編 src on GitHub
- PDF WebサービスはじめのいっぽJavaScript / Node.js版
- Vue.js x Node.js でつくろう、ウェブサービスの基本「チャット」ハンズオン

新型コロナウイルス対策、一番大事なのは医療崩壊を防ぐこと。現在患者数の増加するか否かをチェックしたいですね。画像データ(1つ星オープンデータ)として提供される、厚生労働省の提供の現在患者数をOCRを使ってJSON-API化し、アプリに反映させました。


COVID-19 JAPAN - 都道府県別 新型コロナウイルス陽性患者数 (カラム地図7x7、厚生労働省データ)
都道府県別のPCR検査状況データもPDFであったので、こちらもAPI化して、検査陽性率を都道府県別に表示するように改良しました。スマホでもデスクトップでも見やすく、レイアウトも調整。


こちらが前々日と前日の厚生労働省提供の画像、みなし1つ星オープンデータです。左右、レイアウトが若干違うことがわかります。解像度も異なったりするので、何人かの担当者がパワポを手動で作って画像化し、ウェブサイトにアップしているのでしょう。 なので、自動化していますがちゃんと動き続ける保証できないのが痛いところです。

APIはこちら (API src on GitHub for Node.js / JavaScript)

https://app.sabae.cc/api/covid19japan_summary.json https://app.sabae.cc/api/covid19japan.json?type=withpcr https://app.sabae.cc/api/covid19japan.json

withpcrとそうでないもの、データの条件が違うので、陽性患者数が異なります。詳しくは、元データをご参照ください。

OCRは、GitHubでオープンソースとして公開されている「Tesseract」を使いました。img2text.js として使っています。 なかなかいい感じですが、月日などが入っていたり、切り方によっては誤認識してしまう様子。認識範囲を数字だけに限定して、精度をもっと上げてみたいところです。

IchigoJam+MixJuiceなど、マイコンで使いやすいテキストバージョンもどうぞ!

https://app.sabae.cc/api/covid19japan_summary.txt https://app.sabae.cc/api/covid19japan.txt


codeforyouth/vs-covid19: VS COVID-19 企業による支援リストsrc on GitHub
#民間支援情報ナビ を Code for Youth がフォークして、TypeScript化されました!


COVID-19 Fukui - 福井県 新型コロナウイルスオープンデータサマリー
中学生からのプルリク!自動更新機能と、手動更新できるボタンが追加されました。

ネットがあればどこからでも、年令・職業問わず貢献できるネットの良いところ!
世界中のイベントがオンライン化しているので、気軽に参加できるようになっているなど、大きくネット活用社会への移行が進みそう。

三重県、鳥羽商船高専生4人チームによる三重県版新型コロナウイルス対策サイトもスタート!(forked from 都内の最新感染動向 | 東京都 新型コロナウイルス対策サイト src on GitHub

全国展開に向けて、厚生労働省が提供しているデータを使ってざっくり状況を確認できるようにしてみました。自動更新されるJSONを使って地元の対策サイト立ち上げに使ってみてください。ただし、データ更新は都道府県での情報提供の方が更新は早そうです。


COVID-19 JAPAN - 都道府県別 新型コロナウイルス陽性患者数 (カラム地図7x7、厚生労働省データ)

厚生労働省による「新型コロナウイルス感染症について」では、PDFで国内の発生状況をまとめたデータが提供されていますが、各地のデータと比べるとちょっと時差があるようですが、網羅的にデータがあるのがうれしいです。

PDFは1つ星オープンデータですが、中身は画像ではなくテキストなので、比較的簡単にデータは取り出せます。Popplerを使ってテキストを抽出し、JSONデータ化するAPIの運用をスタートしました。(JSON, TXT for IchigoJam / MixJuice など)

https://app.sabae.cc/api/covid19japan.json https://app.sabae.cc/api/covid19japan.txt

PDFはウェブサイトが更新されるたびにファイル名が変更になるので、1時間ごとにスクレイピングして更新があったら自動的に更新するようにしてあります。詳細は、APIのプログラムをご参照ください (covid19japan.js on GitHub)

ハッピー、インターナショナル・オープンデータ・デイ!

今年は基本オンライン開催だったので、ちょうど同じくオンライン開催された Code for Japan ハッカソンにも参加できました。

VR-Patients COVID-19 Tokyosrc on GitHub
COVID-19 TokyoのVRビジュアライズ版。日別、陽性患者数を等身大のフィギアで表して、リアリティーを感じてもらうWebVRアプリ。PCでもカーソルキーで歩けますが、OculusQuestを使うと、リアルに歩き回れます。


ちょっとオフライン、鯖江の新拠点、SCCにて、新メニュー、スープオムライス!


実際に使ってみてもらいました。一体験は百見に如かず。


VS COVID-19 Code for Sabae ver.」 src on GitHub
対COVID-19キャラクター誕生!(by Shimoken)


鯖江 おすすめレシピ」 Code for Sabaeメンバー成果物
地産地消、地元の美味しいものを食べて強い体を作っておきましょう!


鯖江 近松の里 散策ルート」 Code for Sabaeメンバー成果物
適度な運動による、体力づくりも大事!


ハッカソンとは、誰でも楽しめるものづくりイベント!自由に使えるSCC、気軽に集まって、ガンガンアプリづくり、データづくりを楽しもう!

作ったものはオープンデータなどで、公開すると、誰かがその続きをやってくれます!その連鎖こそ、オープンソース、オープンデータのおもしろさ。


18時、オンラインで成果発表記念撮影!東京都副知事、宮坂さんもゲスト参加!
ビジネス特集 “爆速”の男 副知事に転身 | NHKニュース
東京都による新型コロナウイルス対策サイトも、宮坂さん x 関さん(Code for Japan)で、異例のスピード開発&展開!GitHub公開1週間で3千スター、68人の貢献者!

本日の40人が参加した、オンラインハッカソンでも、保守性改善、アクセシビリティ改善、多言語化、他地域化などが同時並行的に一気に進んだ原動力は、共感得るテーマ x 価値あるオープンデータ x オープンソースの力!

未来は自分たちの手で創るもの。行動しましょう!
貢献の仕方 - 東京都 新型コロナウイルス感染症対策サイト
Code for Sabae Facebookグループ

東京都の対COVID-19サイト、見たい未来は自分でつくる「Code for Japan」の呼びかけによって、Slackアカウントに続々と開発者が集まり、#covid19 チャンネルに300人!

3/7、世界オープンデータデイを前に「COVID-19 Tokyo - 東京都 新型コロナウイルスオープンデータサマリー」をメンテナンスしつつ、オープンデータ伝道師仲間で創る、新しい対策アプリづくり。

VS COVID-19 企業による支援リストsrc on GitHub
企業や自治体などから新型コロナウイルス対策として発表された様々な支援メニューをまとめ、自分に必要なメニューをすばやく見つけられるようにするサービスのベース開発を終え、Code for JapanのGitHubアカウントにてリポジトリ作成!


「データとトキメキをつなぐBAR」 by Govtechを一緒につくる会
世の中には、まだまだテキスト化されていない熱い想いや、良いアイデアがたくさんあります。「つぶやく」より更に手軽になる「配信」が身近になると見える新しいこと。


特別企画「ふわっちスター配信」~第1弾は諸星和己さんが登場~
ふわっちでは、元、光GENJIの諸星さんが配信!

イベントは自粛ではなく、オンライン化して派手にいきましょう!
COVID-19 Response Hackathon - HackMD


Code for Sabae, Fukui でもオンラインイベント開催!

世界各地に広がるCOVID-19(新型コロナウイルス)、ITとデータの力でどう戦うか?
東京都の新型コロナ対策サイト、GitHubでコード公開 修正提案受け付け - ITmedia NEWS
元Yahoo! Japanの社長、宮坂さんを副知事として迎えた東京都の動きが熱い!
元ヤフー社長の宮坂氏、東京都副知事へ 小池知事が方針:朝日新聞デジタル
東京都が管理する新型コロナウイルス関係データをオープンデータ化し、それを可視化するアプリをGitHubでオープンに開発。コメントや、修正、改善案提案など、幅広くボランティアを募っています(こちら)。


Covid19 Tokyo - 東京都 新型コロナウイルスオープンデータサマリー
公開されたオープンデータを使って、どう横展開できるかをさぐるために、簡単な表示アプリ「Covid19 Tokyo」を作ったところ、公開後からもどんどんデータが追加されていることが判明! 検査人数、入退院数、症状別人数が増えていたので、表示するよう改良!
公式の見える化サイト「都内の最新感染動向 | 東京都 新型コロナウイルス対策サイト」よりも部分的に情報量、多いです!


画面下と、JavaScriptコンソールで確認できる data.json の構造。語彙が独自で、データ形式が標準化されていないJSON3つ星オープンデータ。まだまだ開発途中なのかもしれません。 ひとまず、どんな形式でも構わないので、どんどんオープンデータ化していきましょう!

data.json をwebアプリで使うコードはこれだけ!

window.onload = async function() { const url = "https://raw.githubusercontent.com/tokyo-metropolitan-gov/covid19/development/data/data.json" const data = await (await fetch(url)).json() console.log(data) }

変数 data をいろいろいじって表示します。

小計を足し算して、合計を求めるプログラム

const calcSum = function(data) { let sum = 0 for (const d of data) { sum += d['小計'] } return sum }

ちょっと今風の書き方をすると、下記のようにも書けますが、正解はありません。好きな書き方でOKです!

const calcSum = (data) => data.reduce((acc, val) => acc + parseInt(val['小計']), 0)

ソースコード全文はこちら!(Covid19 src on GitHub by Code for Sabae


みなさんへの招待状 — Open Data Day
今週末3/7(土)は世界的なオープンデータの日。Code for Sabae, Fukui でもオンラインイベントを開催!

3/6(金)19時からは「「データとトキメキをつなぐ夜」LIVE配信ライブはこちら)」、3/8(土)にはデータを活用し、地域課題を解決するコンテスト「チャレンジ!!オープンガバナンス 2019」もオンライン開催! 移動時間とコストが必要ない分、いろんなイベントと合わせて楽しめますね!

Let's code!

ICTの力で世界をより良く!総務省/NICT主催「起業家甲子園」、新型コロナウイルス「COVID-19」対策のため初の無観客開催。

起業家甲子園トロフィー、ファイナリストのみなさん、おめでとうございました!!
シリコンバレー研修で横のつながりと縦の深みが増し、ぐっと成長した様子!ひとまずおつかれさまでした!
ただ、あくまで通過点、これを励みにどんどん創っていきましょう!

見せよう日本のIT力、東京都は新型コロナウイルス状況を伝えるサイトソースをGitHubで公開!Issuesを見るとリアルタイムに改善される様子も見られます。熱い!(参考、台湾マスクオープンデータ
Covid19 Tokyo - 東京都 新型コロナウイルスオープンデータサマリーsrc on GitHub
Code for Sabae として鯖江市でも展開できないかと、ひとまず東京都公開のデータ(data.json)をサマリー&デバッグ表示するアプリづくり。 Rawでのアクセス、ドメインを越えたwebアプリからもアクセスできるように「Access-Control-Allow-Origin *」設定してくれていてありがたい!(新しいデータ metro.js が追加された!)


ぐっと人が少ない東京駅、すぐそば丸の内JPタワーホール、広い会場、無観客開催。


メンター担当したチーのプレゼン前に、紹介&応援メッセージ!


沖縄高専チーム3人は、なんと全員高専1年生!


長岡高専チーム、1年生2人によるプレゼンもいい感じ!


福井高専プログラミング研究会、分かりやすく説得力あるプレゼン、好評でした!


宮崎大学チーム、放牧養豚を全国に広げる革命児!展開楽しみ!


阿南高専チーム、自分たちのまちを自分たちで守る!いろいろな困難に立ち向かってきた人類、持てる知恵と道具を総動員しよう!


都立高専品川キャンパスチームでは、2年生が活躍!


各チームとつなぐ質疑応答は、電話。インターネット回線の信頼性、もう一段上げないと。


jig.jp賞の行方は・・・!?


都立高専品川キャンパスチームに jig.jp賞!
実家が放牧をやっているというラッキーを活かして、どんどん実験を進めよう!敷地内ならドローンも飛ばし放題!


こちら jig.jp賞の副賞、フジテレビ x IchigoJam x ベーマガ x Hana道場のスペシャルセット。 加えて、会長ランチ権をプレゼント!


メンター担当した、宮崎大学チーム、審査委員特別賞(2位)、受賞!


メンター担当した、福井高専チーム、AWS賞、クラウドワークス賞、YJキャピタル賞、Saleforce.com賞を受賞!


メンター担当した、阿南高専チーム、さくらインターネット賞、セプテーニ・ホールディングス賞、アイオーデータ賞、Infineon Award賞を受賞!


メンター担当した、長岡高専チーム、NTTデータ賞、受賞!


ICT活用の広がりが感じられたと審査委員長、佐藤さんからメッセージ。もっと尖っていきましょう!


総務大臣賞獲得チームのメンター、さくらインターネット田中さんが今年の最優秀メンター賞!

links
- ICTスタートアップ支援センター | 令和元年度起業家甲子園 〜 開催報告 | NICT-情報通信研究機構

台湾マスクオープンデータのAPI化に続く、API化。刻々と変わる世界各国の対日本の動き。 外務省の海外安全情報オープンデータを使ったglobalsafeは、配信されているXMLオープンデータをそのまま使っていましたが、バックナンバーの取得ができず、ちょっと初回の起動が重いのが難点でした。それを今回 Node.js を使って、API化し高速化。サーバーに過去データもストックする形になりました。


globalsafe - 外務省 海外安全情報オープンデータサーチ」(コロナで検索リンク

GETパラメーターで、スペース区切りでAND検索するキーワードでフィルタリングできるJSON-API
https://app.sabae.cc/api/globalsafe.json?key=コロナ&limit=10
ライセンスは CC BY 外務省 海外安全情報オープンデータ, @taisukef
気軽にご活用ください!


海外安全情報オープンデータ」は、VLEDのオープンデータ表彰2019でjig.jp賞として、勝手ながら選出させていただいた。 日本政府、自治体、各民間企業によるオープンデータ化がますます進みますように!

XMLをJSON化する xml2json が、どうもサーバーでうまくいかなかったので、xmldomのDOMParserを使って、簡易コンバーターを実装。

function makeJSON(xml) { let obj = {} if (xml.nodeType == 1) { // element if (xml.attributes.length > 0) { for (var j = 0; j < xml.attributes.length; j++) { const attribute = xml.attributes.item(j) obj[attribute.nodeName] = attribute.nodeValue } } } else if (xml.nodeType == 3) { // text obj = xml.nodeValue } if (xml.hasChildNodes()) { if (xml.childNodes.length == 1 && xml.childNodes.item(0).nodeName == "#text") { return xml.childNodes.item(0).data } for (let i = 0; i < xml.childNodes.length; i++) { const item = xml.childNodes.item(i) const nodeName = item.nodeName if (nodeName == undefined) { } else if (typeof(obj[nodeName]) == "undefined") { if (!(nodeName == "#text" && item.data == '\n')) { obj[nodeName] = makeJSON(item) } } else { if (typeof(obj[nodeName].push) == "undefined") { var old = obj[nodeName] obj[nodeName] = [] obj[nodeName].push(old) } obj[nodeName].push(makeJSON(item)) } } } return obj } const DOMParser = require('xmldom').DOMParser const toJSONfromXMLString = function(s) { const parser = new DOMParser() const xml = parser.parseFromString(s) return makeJSON(xml) }

attributeも中のタグも一緒くたに扱う変換となっています。必要に応じてカスタマイズするなど、どうぞご活用ください。

links
- 外務省 海外安全情報オープンデータ
- 台湾エリア別マスク残数表示アプリ、JSON-API化して低負荷高速化

解消しないマスク不足。台湾政府はマスクの残数をリアルタイムオープンデータとして公開、現在も800万コ残数があることが誰にでもわかり、安心できる。

台湾ではマスクの購入にICチップ付き保険証の提示が義務付けられ、その購入情報がリアルタイムに政府に伝わる仕組みとのこと。
台湾政府がマスクのリアルタイム在庫状況を公開し、数日で50以上のアプリが爆誕|Hal Seki|note

台湾エリア別マスク残数
台湾カラム地図を使って22エリア別に表示。住所の間違いかもしれない、エリアに分類できない住所データは表示していない(台南東區、淡水區、桃園県、彰化市、台南県、高雄県、屏東市、花蓮市、台東市)。

元データのCSVは、買える店舗ごとにずらっとならんだ724KBのデータ。サーバー違いのCSVファイルを直で読み込めないので、自前プロキシ経由で、毎回読み込んでいたが、若干申し訳なく、使う側も重い。 そこで、今回は10分置きにキャッシュするJSON-APIサーバーを立てたので、心置きなくアクセスして大丈夫!(https://app.sabae.cc/api/taiwan_masks.json


nmasks Taiwan - 台湾のマスク数オープンデータ
こちらもAPIを使うように変更したので、高速化!

花粉症の人、または、花粉症予防にも必須なマスク。日本でもマスクオープンデータ、ほしいところですね!

福井でもマスク不足。どこで買えるのか?逃したらいつ買えるのか?
不安が社会の無駄を産む。

台湾政府によるマスク残数オープンデータは、公開後数日で50以上のアプリを産み、多くの人々に届いているという。一次データを速やかに公開し、どう伝えるかは市民に委ねるのが、21世紀スタイル。 (Code for Japan 関さんによる記事、台湾政府がマスクのリアルタイム在庫状況を公開し、数日で50以上のアプリが爆誕|Hal Seki|note

シンプルに合計マスク数を表示するアプリを作った。日本でも同じような取組をするためには何が必要なのだろう?


nmasks Taiwan - 台湾のマスク数オープンデータ

開発中、困ったポイント
1. 「衛生福利部中央健康保險署-查詢頁面」にExcelデータはあるが、CSVデータ「健康保險資料開放服務」へのリンクがない(headerにDC.Identifierはある)
2. 逆に「健康保險資料開放服務」から「衛生福利部中央健康保險署-查詢頁面」へのリンクがない(たくさんのリンクがオープンデータで推奨されている)
3. 住所からエリアに分ける方法が不明(県、市、区で切ってみたが文化的に正しいか不明)
4. エリアの表示順が不明(今はソートしていないけど、きっと見やすくない)
5. 市と巿、見た目は同じ違う文字コードが存在する!(正規化してあった方がきっと使いやすい、できれば日本と同じ'市'がうれしい)
6. 項目名が台湾語で読みづらい(英語名も併記してくれるとうれしい)
7. 最後更新時間が民国紀元で書かれていて読みづらい(例、109年02月27日)
8. 更新間隔に記載がほしい(30分?1時間?不定期?)
9. 「950台東市」というエリア名はたぶん住所表記のバグ

データをどう見せるかで伝わり方が変わる。例えば、時系列でマスクが増えているのか減っているのか、エリア別にどうか?減少した際、どう補充されるのか、刻々と変わる状況をデータで読み、どう捉えるかは千差万別。だからこそ一時データをオープンデータとして、その解釈を市民、民間に委ねるのが有効となる。

海外オープンデータを使った開発で、日本状況が知りたい外国の人、日本のオープンデータを見て思うであろうことを疑似体験できる。世界がつながる、5つ星オープンデータへ駒を進めたい。

links
- 台湾の38歳大臣が見た日本の弱さ「デジタル化への柔軟性が台湾より低い」 - ライブドアニュース
- データとアプリでつながる台湾と日本 Asia Open Data Hackathon 2017 に向けて連携! / Taiwan and Japan Open Data Alliance
- 台湾台北オープンデータを使った公園大きさランキング、最大39ha、最小7坪 / Largest Park in Taipei Taiwan by Open Data
- 台湾のカタカナ?ボポモフォ対応IchigoJam

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