毎日創って毎日公開「一日一創」を掲げた2012年元日。うるう年、計366のwebアプリが誕生。作りきった達成感は良い自信になりました。 宣言時に終了条件を入れ忘れたので、そのまま今まで続いています。

2013年からはブログという形に変更。気がかりだった2012年製アプリ達を、この度ブログへ統合完了!現時点で3,533記事となりました。

一日一創100アプリ達成記念
一日一創のはじまり「一日一創カレンダー


福野泰介の一日一創一覧
ced2012タグで、検索も可能!

次は、古くてうまく動いていないものや、APIが停止しているものなのなど、ちょっとずつメンテナンスしていきます。

一覧XMLを使った一覧取得、HTML取得、パース、XML化などのJavaScript/Denoの変換プログラムは下記にコミット済み。参考にどうぞ。
taisukef/fukunojigjp

仕事としてのwebアプリ開発に興味ある方。
webアプリ開発入門勉強会&会社説明会、開催します!
プログラミングは好きだけど、サーバーを使ったwebアプリはちょっと敷居が高くてやってみるきっかけがない人などにオススメです。

長らく使っていた自作のブログシステム、全記事を rss.xml に追記するスタイルを続けていましたが、テキストファイル容量が12MBを超え、編集中にエディタがクラッシュ。 ファイルが壊れました。そろそろ潮時とブログシステムを刷新を決意。元はJavaですが、最近お気に入りのJavaScriptで作り直し。

ひとまず、だいたい元通り。3,000記事以上あるので、検索した結果も多くなりすぎだったので、一覧表示化します。

新システムで稼働できればよかったのですが、移行にひと手間かかることが分かったので、ひとまずオープンソースとして公開のみ。
taisukef/fukunojigjp
Deno / JavaScript で、自分でブログを作りたい人、参考になるかもしれません。

10年前は無力でした。

開発現場や技術から離れ、企画、広報、マネジメント寄りだった10年前。未曾有の危機に、何も創れなかった自分が悔して、2011年12月、毎日ひとつ何か作ろうと決め達成。 その勢いで2012年1月1日、一日一創をFacebookで宣言、2013年からブログ化)。 つくり続けて10年目、できることと仲間が増えました。

Code for Japan 代表、関さんのブログ。
sinsai.info からの10年|Hal Seki|note
オープンデータが提唱されたのは2009年、世界にはすでにオープンデータがあったようです。2010年に鯖江市長に話し、実現したのが2012年1月。 震災時のデータ不足の反省が後押しとなりました。

データを利用者に届けるのはアプリ。いかに速く作れるかが勝負です。地図アプリを速く作るためのツール「egmapjs」をよりシンプルにしました。


全1470個所 いしぶみマップ - 京都市オープンデータ x egmapjs
本日、京都からプルリクいただき改善された「京都いしぶみマップ」を、ESモジュール化したegmapjsをベースに書き直し。 CSVオープンデータを読み込み、マーカー表示、Geo3x3を含む詳細表示まで、割と素直なプログラムになっています。

<script type=module> import { initMap, showHere, convertDMS2D } from "https://code4fukui.github.io/egmapjs/egmap.mjs"; import { CSV } from "https://code4sabae.github.io/js/CSV.js"; import { Geo3x3 } from "https://taisukef.github.io/Geo3x3/Geo3x3.mjs"; window.onload = async () => { const map = initMap("mapid"); //const url = "https://data.city.kyoto.lg.jp/file/3969/download?token=Tka3iJPr"; // CORS err const url = "https://code4fukui.github.io/kyotoishibumi/ishibumi-data-281211.csv"; const data = CSV.toJSON(await CSV.fetch(url)); const lls = []; let cnt = 0; for (const c of data) { const d = { num: c["番号"], name: c["名称"], address: c["住所"], lat: c["北緯"], lng: c["東経"], }; if (!d.lat || !d.lng) { console.log("err: " + d.name + ", " + d.address + ", " + d.lat + ", " + d.lng) cnt++ continue } const [lat, lng] = convertDMS2D(d.lat, d.lng); const name = `<a href=https://www2.city.kyoto.lg.jp/somu/rekishi/fm/ishibumi/html/${d.num.toLowerCase()}.html target=_blank rel=noopener>${d.name}</a>`; const geo3x3 = Geo3x3.encode(lat, lng, 16); const geo3x3link = `Geo3x3: <a href=https://code4sabae.github.io/geo3x3-map/#${geo3x3} target=_blank>${geo3x3}</a>`; map.addIcon(lat, lng, [d.num, name, d.address, geo3x3link].join("<br>")); lls.push([lat, lng]); } console.log("緯度経度変換エラー数:" + cnt); map.fitBounds(lls); // 現在位置表示ボタン gotohere.onclick = showHere; }; </script>

いつ起きるかわからない災害。備えは十分とは言えません。
データと活用する力、蓄えておきましょう。

2020年も最終日。今年も一日一創、完走です。
年に一度の振り返り、アクセスランキングで1年を振り返ります。

15位 1,470PV 日本政府広報に登場、国産PC、IchigoJam! Z80マシン語が使えるIchigoJam試作
国の広報掲載、うれしいですね!国産PCこどもパソコンIchigoJam、がんばりますっ

14位 1,592PV 厚生労働省CSVオープンデータ開始!CSVをグラフ化する高校プログラミング向け補助教材
ブログで対応をお願いしたからかも?高校でもプログラミング、2022年から必修化です。きれいなデータを用意しておきたいですね。

13位 1,645PV HTML内にMarkdown記法を混ぜて使うシンプルな方法
意外な人気なMarkdownの埋め込み方法。福井の中学生からの要望に応えた記事。

12位 1,922PV 病床使用率をモニタリング!福井で初の感染者、感染症病床数は48、みんなで打ち勝つ新型コロナ、Let's Code for 地元!
新型コロナウイルス対策ダッシュボードの着想は、福井県からの発表でした。

11位 2,302PV 今年10月、65年ぶり三つ巴の鯖江市長選! オープンデータで作ろう候補者比較サイト
今年、鯖江市新市長が誕生!

10位 2,382PV 東京都カラム地図で患者発生場所を可視化、一次情報を活用するツール「オープンデータ」の作り方と育て方
カラム地図、大活躍でした。

9位 2,416PV 福井県、新型コロナウイルス感染症オープンデータを公開、福井県市町別状況を即時反映可能に
オープンデータが大いに活躍

8位 2,468PV 新型コロナウイルス対策感染症病床数データをダッシュボードアプリに反映、Raw Data Now! #js
病床数の逼迫を防ぎましょう!

7位 2,518PV 学校に激震!? 昭和の「一斉授業」から令和の「個別最適化された学び」へ! すべてのこどもたちに世界とイノベーションへの入口を、GIGAスクール構想とは?その実現に近いまちは?
GIGAスクール構想、コロナによって一層重要性増しました

6位 3,055PV 比べてみよう、RISC-VとArm、RISC-V対応かんたんマシン語「asm15r」
注目のRISC-V、IchigoJam Rもお楽しみに!

5位 4,717PV COVID-19 Japan 新型コロナウイルス対策ダッシュボード、東京都内累計患者数表示追加、CSV/JSONデータ提供中
ダッシュボードで集めたデータの二次利用も増えています!

4位 4,892PV 地域ごとの防衛ライン?厚生労働省の感染症病床数データを3つ星オープンデータ化(HTML→JSON スクレイピング by Node.js / cheerio)
病床数データが厚生労働省から安定的に公開してもらえるようになったのは大きい!できればCSVで!

3位 5,738PV DAISOの300円無線マウスを改造して、ワイヤレスかんたん入力マシンが創れる!? → 不推奨です
技適製品には注意です

2位 10,934PV 厚生労働省提供の新型コロナウイルス陽性患者数PDFデータをJSON-API化しました
CSVオープンデータで行きましょう!

1位 29,757PV 自治体・医療機関の方、新型コロナウイルス対策感染症病床数の一次情報の公開おねがいします → アプリ化します! #js
新型コロナウイルス対策ダッシュボードからのリンクで最多アクセスとなりました。


一日一創一覧
全3068記事、CSVオープンデータ化して、検索アプリにしました。

一日一創ブログ、3000記事目!

正確には、0から始まっていたり、欠番があったり、2012年のは連番に含まなかったりしますが、キリ良い節目なID。 3000コのアプリ、一見途方も無く感じますが、毎日8年ちょっとやっていると理論上到達します。

記念日なので、年齢を使った自分だけの時を感じる、時計アプリ。年齢を聞かれた時、通常小数点以下を切り捨てて回答しますが、連続量として回答すれば、誕生日の近さも伝わって便利かも?

analog-age 自分時計
日付を設定すると、ブラウザ内に保存され、開くと誕生日の近さが分かる円グラフと共に、アナログ量としての年齢を知ることができます。 現在 41.92696321才、小数点以下8桁表示するとリアルタイムに成長を感じられることがわかりました。

const age = getAge(); txt.textContent = `${age.toFixed(8)}才`;

円グラフは、Chart.jsをESモジュール対応した、Chart.mjsを使ってサクッと描画。

let chart = null; const show = () => { const age = getAge(); if (chart) { chart.destroy(); } const dage = age - Math.floor(age); const data = [dage, 1 - dage]; const backgroundColor = ["#222", "#eee"]; const config = { type: "pie", data: { datasets: [{ data, backgroundColor }] }, }; chart = new Chart.Chart(canvas, config); };

一度設定した誕生日をブラウザ内に手軽に保存する localStorage、サーバーには送っていないことをソースで確認しましょう。

date.onchange = () => { const s = date.value; localStorage.setItem("analogage-age", s); show(); }; const sdate = localStorage.getItem("analogage-age"); if (sdate) { date.value = sdate; }

links
- 一日一創2012 timeカテゴリー

今年も365日、一日一創、完走です。
アクセス数で今年1年を15位からカウントダウンしながら、ふりかえり!

アクセスランキング(2019年記事編)
15. 200円超音波センサー x IchigoJam
14. MacのGPUで700倍
13. Ruby on Jam
12. Ruby x IchigoJamで操るフルカラーLED
11. TelloEDU x IchigoJam
10. 50行でマイクラVR風
9. NT鯖江開催決定
8. 高等専門学校は高専と改名すべし
7. 1年間COMPを食べた健康診断結果
6. React x OculusQuest
5. テキスト型プログラミングをすすめる理由
4. 緯度経度地図2
3. IoT対応 IchigoJam 1.3
2. ruby on web
1. パスワード付きZIPファイルの有効性検証!
アクセスランキング(全記事編)
15. イオンがない福井
14. IoT対応 IchigoJam 1.3
13. Java SSLで失敗
12. 水蒸気量計算
11. IchigoJamプリント、ローマ字
10. RL78マシン語
9. ruby on web
8. 日本式ローマ字
7. オフライン音声認識
6. カロリー計算
5. はじめてのマシン語
4. ヒューズ
3. 印刷地図
2. PS2キーボード
1. パスワード付きZIPファイルの有効性検証!

共にトップは、パスワード付きZIPの記事、16,834アクセス!
Twitterで1,800いいねを集めたのが大きかった。

2020年度は、オープンデータ全市区町村に広まる目標年。緯度経度地図、印刷地図が引き続き人気です。IoT化したIchigoJam1.3は、1.4にバージョンアップ!リアルタイムオープンデータ化に貢献しそう!

また、こどもプログラミングも2020年いよいよ小学校での必修化スタート。テキスト?ビジュアル?ローマ字? ドローン、TelloEDUにVRもプログラミング!新技術への入り口広げましょう!

2010年代の終わりをつげるカウントダウン。
IchigoJamのPCGを使って、7セグLEDエミュレーションしてみました。

8x8のドットで、7セグLEDを表現。VIDEO5で拡大表示するカウントダウンプログラム(大幅に遅れるエディション)

10 S=1*60*60 20 VIDEO5:CLS:LC2,2:FORI=0TO4:?CHR$(224+I);:NEXT 25 LET[10],`111111,`110,`1011011,`1001111,`1100110,`1101101,`1111101,`100111,`1111111,`1101111 31 N=S/60/60:F=~S&1:M=0:GSB90 32 N=S/60%60/10:F=0:M=1:GSB90 33 N=S/60%60:F=~S&1:M=2:GSB90 34 N=S%60/10:F=0:M=3:GSB90 35 N=S%60:M=4:GSB90 40 S=S-1 42 WAIT60 50 IF S>=0 GOTO31 55 LET[20],`1110110,`1110111,`1110011,`1110011,`1110010 60 FORM=0TO4:N=[20+M]:GSB95:NEXT:WAIT60 61 LET[30],2,0,2,0:FORM=0TO3:N=[30+M]:GSB90:NEXT:N=0:M=4:GSB95:WAIT60 62 GOTO60 90 N=[N%10+10]+F*256 95 FORI=0TO7:[I]=0:NEXT 100 IFN&1[0]=[0]|#38 101 IFN&2[1]=[1]|4:[2]=[2]|4:[3]=[3]|4 102 IFN&4[5]=[5]|4:[6]=[6]|4 103 IFN&8[7]=[7]|#38 104 IFN&16[5]=[5]|#40:[6]=[6]|#40 105 IFN&32[1]=[1]|#40:[2]=[2]|#40:[3]=[3]|#40 106 IFN&64[4]=[4]|#38 107 IFN&128[7]=[7]|1 108 IFN&256[2]=[2]|1:[5]=[5]|1 110 FORI=0TO7:POKE#700+I+M*8,[I]:NEXT 120 RTN

(RUN on IchigoJam web)

こちらメイキング、0と1とでドットをかいてみて、セグメントに該当する部分を1にするIF文をつくってます(参考、7セグLED - 一日一創2012)

IchigoJam版、RTCを使わないと実時間とズレが大きいので、正確なカウントダウンにはこちら JavaScript版をどうぞ!
dsegcountdown

2012年からスタートした一日一創、地味に活躍しているアプリを発見、その名は「パスワードメーカー」
ご要望にお応えして、紛らわしい文字を除く機能を追加した新バージョンです!

パスワードメーカー
開いた瞬間、生成したパスワードを選択した状態になるので、即時にコピー(Ctrl-C / Command-C)できます! 使う文字種、長さ、設定はURLに反映されるので、お好きな設定でブックマークしておくと便利です。

パスワードの強さはどう決めたらいいでしょう?

オンラインサービスのパスワードは何度か間違えるとロックされるので、そこまで気にしなくてもよかったりしますが、パスワード付きのExcelやzipファイルは要注意です。 何度間違えてもペナルティーがないので、力技の全探索が可能です。解読されるリスクを計算してみましょう。

例えば、数字4文字だと10の4乗、つまり1万通りのパスワードになります。IchigoJamのCPUでさえ1秒で5000万回計算できるので一瞬です。

数字を20文字まで伸ばすと10の20乗通り、全探索するのに、1秒に1兆回(10の12乗)試行できたとしても、10の8乗秒 = 1億秒 = 約3年かかる計算です。なかなか強くなりました。(ざっくり1日は10の5乗秒、1年は10の8乗秒と覚えておくと便利)

ただ、油断半禁物です。3台使えば1年、3000台使えば1日で解読できてしまいます。誰でも数千台とかを一時的に借りられるクラウド時代、非現実的な手段とは言えません。

オススメは、今回アプリの初期設定、アルファベット小文字、先頭は大文字の20文字。そこそこ短さながら10の27乗。1日で解読するためには3000億台のコンピューターがいるクラスです。大文字小文字を混ぜてほしいシステムにも対応。どうしても記号や数字が必要な時用にオプションもあり。

それでも、まだ不安な方のために、どーんと100文字設定を準備しました。10の100乗、記号などを含めると10の151乗までになるので、国家レベルどころか、全宇宙中のリソースを持ってしても現実的な時間で破ることはできないでしょう。(・・・と思いましたが、そもそも本プログラムの場合、乱数の品質で頭打ちです。強い乱数に関してはまた改めて)


パスワードメーカー」旧バージョン
こちら元になった2012年バージョン、そのまま残しておくことにしました。

パスワードメーカー」新バージョン
依存ライブラリがない、単一HTMLで動くシンプルでオープンなライセンスによるオープンソースなので、安全を自分でご確認いただけます。 また、自由に改造、再配布が可能なので、かわいくするのも、かっこよくするのも自由自在!

「ストップ、パスワードのつかいまわし」
自分の身は自分で守ろう、情報セキュリティの啓蒙用にもどうぞ。

links
- 一日一創 2012

30年前の今日、1989年3月12日、ティム・バーナーズ=リー氏「web」を発明!
The original proposal of the WWW, HTMLized

インターネットで結ばれたコンピューター内の文書同士をリンクで結ぶというシンプルなコンセプトと、オープンなシステムは、瞬く間に広がり、世界中を覆った。 ただ、世界中に兆単位にある文書をすべて辿ることはもはやコンピューターでも不可能。

リンクに意味をつけるだけで整理できるティム氏による更なる発明「セマンティック・ウェブ」は、同氏提唱の「5つ星オープンデータ」と共に花開く。

そろそろ本ブログも次世代webへと移行しなければと、まずはリンクだけを整理したJSONデータを作成。
ひとまず、webアプリとしてグラフ表示してみたのがこちら。(これでも一部))

とても、手におえないので、直近300件の相互に何らかのリンクがあるもののみの表示としたものがこちら。

一日一創 graph
ブログ内でのリンクを可視化し、タップまたはクリックでそのページを開く。
リンクのつながりで、関連ある塊感だけがわかる状態。

シンプルなリンクは世界中をつないだ偉大なアイデア!
ただ、世の中を整理するには不十分。
例えば、福井県と鯖江市をつなぐリンク。これだけだと、ただの関係としてしかわからない。
ここで、意味付きリンクの出番となる。

福井県内にある市町のひとつであるなど、組織の含有関係をことを示す「意味付きリンク」でつなげば日本にいくつ市があるか瞬時にわかり、世界中の自治組織がすべて整理できる。

本ブログ内のリンクはまだ意味がついていない状態。
まずは、自分のオープンデータを整理しながら、次世代web化のメリットを明らかにしていきたい。

links
- Web will connect world as one! (web25周年)

あけましておめでとうございます!
今年の一日一創も、よろしくおねがいします。


nenga2019」 - framework websarasa.js
こどもパソコンIchigoJamIchigoJamフォント と websarasa.js を使った年賀アプリ!

本サイト「福野泰介の一日一創」遅ればせながら、ようやくAOSSL(Always on SSL / 常時SSL)にしました。 無償で使えるSSL Let's Encrypt と、軽量webサーバー Nginx で、Javaで開発する自前webアプリケーションサーバー Zerosen へ受け渡す形で実現。

従来の非URL http で始まるアドレスへのアクセスは、https を付ける形でリダイレクトするので、基本的には動くはずですが、混ぜるな危険のSSLの仕組み上、アプリが動かなくなっているものは、順次修正していきます。

アドレスが変更になったことから、Facebookのいいね数などがリセット。心機一転、リスタート。ひとまず、ソーシャルボタンを外したところ、ずいぶん軽量になりました!


日本の自治体「Webの安全」対策率
1年ぶりに調査してみた、地方自治体webサイトのAOSSL化状況。
2017年12月には54自治体、2.8%から、306自治体15.9%まで大幅増とはいえ、対策は遅い。
Webの安全、準備できてますか? 2017年はHTTPS標準化元年 地方自治体対応率はわずか1.5%

SSLの普及率、世界平均69.9%、日本平均62%、アメリカはすでに82%!(2018年5月の調査)
日本のHTTPS導入、普及しつつもまだ不十分 – Anderswodenkender – Medium

オープンデータ伝道師&地域情報化アドバイザーとしての活動にも力が入ります!

links
- 2012年 2012年のテーマ「一日一創」
- 2013年 じゃみじゃみ年賀アプリでスタート、2013年の一日一創
- 2014年 セマンティックWeb元年、一日一創第三章のテーマは「つなぐ」
- 2015年 創造は力なり スロットおみくじハードウェアで占う2015年
- 2016年 起動10秒!IchigoJam BASIC、PC用のOSベータ版リリース! IchigoJam PC
- 2017年 BIG SCREEN IchigoJam New Year Update!
- 2018年 Happy New Year 2018! Starting with Glasses! 新メガネで迎える新年

2012年1月1日にスタートした「一日一創」まる7年が終わります。
2018年に書いた記事のアクセスランキングで、振り返ってみます。

10位 1,820アクセス、距離計測IoTと水位センサー、現実社会へのデプロイのおもしろさ
Internet of Things (IoT)が、一気に実用段階に入った年でした。IoT火災報知器も登場!
大人向けのIoTプログラミング研修、ますます人気になる予感!

9位 2,056アクセス、より速く! jig.jp 第15回定時株主総会のお土産と会長就任のお知らせ
社長から会長になりました! 名刺には chair と記載。

8位 2,200アクセス、大鵬薬品 x 鯖江市、第5期 Code for Japan 地域フィールドラボ事業報告会 - 現場での恊働とデータが生むイノベーション
あらゆる業種を巻き込むオープンデータとオープンイノベーション、IoT研修&報告会も楽しかった!

7位 2,859アクセス、受肉したい高専生。プログラミング嫌いはメガネで克服! - 高専カンファレンス東京2018レポート
熱い視線注がれる高専、とはいえ問題が無いわけではありません。高専IT系部活 Advent Calendar 2018 で綴られる生の声を生かして、次のレベルへ!

6位 2,953アクセス、改造してプログラミングも楽しい!4千円6足歩行ロボ「FOLO」の組み立てとIchigoJamコントロール
プログラミングとロボは人気!地域ICTクラブによって参加者大幅増の第二回越前がにロボコン2018も大いに盛り上がりました!

5位 3,106アクセス、鯖江市の実用IoT、LoRaで格安水位計測IoT&リアルタイムオープンデータ、公開スタート
親和性が高い、IoTとオープンデータ!データを蓄積し、AI活用も!

4位 3,229アクセス、BASICでIoT「IchigoSoda」さくらインターネットからまもなく登場 - IchigoJam for sakura.io
sakura.io が簡単に使えるIchigoJam互換機、IchigoSodaの登場で、こどもも大人もとっても簡単にIoTつくれるようになりました!

3位 3,237アクセス、特別支援学校は日本教育変革の救世主!? KidsVenture in 沖縄、教員&こどもプログラミングワークショップとIoT
こどもプログラミング、KidsVentureの活動も大いに広がった1年でした。福井の特別支援学校では自動運転車が大活躍!

2位 3,576アクセス、オフラインでフリーで使える音声認識 Julius、声で操作するロボを自作しよう
自分で作って楽しむ、音声コントロール!無料で遊べるおもしろいもの、たくさん!いい時代です。

1位 4,635アクセス、生きていたZ80!? 国産8bit/16bit CPU、RL78のマシン語はほぼZ80
かつての憧れマシン語! MSXとZ80あっての今の自分。コンピューターの楽しさ、現代のこどもたちにもどんどん広めましょう!
12月には、ベーマガの別冊化しての再創刊も大いにもりあがりました!これはまだ始まりです。じゃんじゃん投稿してもりあげましょう!

ちなみに、2018年に限らないアクセスランキング1位は「IchigoJam対応キーボード
2位は「はじめてのマシン語」、3位は「ホットプレート温度ヒューズ交換」でした。

残り5時間を切った2018年、良いお年を!

DSEG countdown
クリックでフルスクリーン対応、デザイン変更可能な、24時間、カウントダウン!

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