福野泰介の一日一創

講義が変われば大学が変わる。大学が変われば若者が変わる。早稲田大学、市長と対談講義で大活躍「コメント.net」

2016/12/07 23:55:00
#opendata #sabae 

大学のゲストスピーカーとして、鯖江市長、牧野百男さんとして、初の早稲田大学! 毎週水曜日、全学部・全学年を対象としている講座「地域連携と地域競争力」のコマ、早稲田大学8号館B107教室。

「鯖江から日本を変える!」と、鯖江市長から鯖江市三本の矢の紹介の後、オープンデータ時代と鯖江の話をして、対談タイム!リアルタイムにコメントを受け付ける、コメント.netが活躍しました。QRコードをスライドで1分ほど投影しただけでしたが、たくさんの学生が参加してくれました!170件を超える投稿に、市長も大喜び!


鯖江と大学生といえば「鯖江市地域活性化プランコンテスト」即席、市長をやりませんか?の問いかけに「地元の町長なりたい!」とコメントと声援がすばらしい!表面的には幸せな日本社会、不都合な未来はデータに眠っています。裏を返せば解決を待ってるチャンスだらけ。


最後に鯖江に行ってみたい人を訪ねたところ、8割超の学生が手を上げてくれ感激です!ぜひ来年10周年、参加、観覧、その他旅行もお待ちしてます!(市長室も常にオープンです、とのこと)


コメント.netに寄せられたうれしい声の数々。面と向かって何かを発言するのは恥ずかしいと思わされている呪縛から逃れ、ぜひ内なる声を社会に伝えてみてください。無責任な話ですが、若者軽視の一昔前とは違って、現代の社会や大人たちはみなさんからの声を待望しています。「若者が変われば、大人が変わる。大人が変われば、まちが変わる。 by 牧野百男」


学生あふれる早稲田大学前、大学生数を調べたらなんと4.4万人と日本大学の6万人についで2番目!全国にキャンパスがある高専5万人に匹敵する規模。本当はスゴイ学生パワー。気に入ってくれた「コメント.net」どうぞ講義などで勝手に使ってもりあがってください!(コメント全文コピー機能を追加!)

関連リンク
- 早稲田大学にゲストスピーカーで出講、鯖江自慢してきました。|『さばえ.jp』百さんのブログです
- 地域・自治体との連携 – 早稲田大学

つつじバスで乗車数把握実験、オムロン顔認識センサーxさくらのIoT Platformで人体数検出IoT

2016/12/06 23:55:00
#KidsIT #IchigoJam #IoT 

子供に大人気!オムロン製、顔認識センサーを使ったワークショップの研究に、小学生は無料で乗れる鯖江市営つつじバスの乗降数を把握できるか実験を、Yahoo!Japanからのコーポレートフェローシップチームと共同実施。


距離や車内の安全バーなどの関係か、実際より少なめに表示されつつも、混み具合は認識できそう。


バス中で掲げて認識数実験。実際に設置するとなると、安全で美しい固定方法を考えるなど、勉強のテーマは盛りだくさん!


オムロン顔認識センサー用のシールドを作成
シリアルTXD/RXD/GNDを接続し、電源5V用のジャンパー線をはんだづけ
(IchigoJamにぴったりのユニバーサル基板(aitendo)が便利!)


CN5の5Vのピンを分岐して、さくらのIoT Platform αも接続、スタンドアローンの人体検出&ネット送信IoTデバイスができあがり!


今回、協力してくれた、かわいいつつじバス!

IchigoJamで動かしていたプログラムはこのような感じ。年齢センサーとの違いは、10行のコマンド送信で4bit目の代わりに、人体検出の0bit目を指定。返ってくる人数はヘッダ後のデータ1byte目[0]に格納される。800行はさくらのIoT Platform αへ変数Nを送信するサブルーチン。これでリアルタイムオープンデータのできあがり!

1 'BODY-DETECT 5 SWITCH 10 UART3:LC0,-1:?CHR$(#FE,4,3,0,1<<0,0,0);:UART0,2 20 GSB900:IF N!=#FE ERR 30 GSB900:IF N ERR 40 GSB900:L=N:FOR I=1 TO 3:GSB900:NEXT 50 FOR I=0 TO L-1:GSB900:[I]=N:NEXT 55 CLS 60 LC3,1:IF [0]>0 LC3,2:?[0];"ニンイマス" ELSE ?"ニンズウヲ、アテマス" 70 N=[0]:GOSUB800 80 WAIT 60:GOTO 10 800 POKE#700,#30,1,ASC("I"),N,0,0,0,0,0:?I2CW(#4F,#700,1,#701,6):RTN 900 N=INKEY():IF N=0 IF BTN() UAR0,0:END ELSE CONT 910 N=N&#FF:RTN

おもしろいセンサー x IoT ますます楽しいものづくり!

壊れたら捨てる前にバラそう!ホットプレート温度ヒューズ交換

2016/12/05 23:55:00
#KidsIT #IchigoJam 

家電が壊れたら分解のチャンス!
テスターがなくてもIchigoJamとジャンパー線があれば、故障箇所は簡単にチェックできます。

10 A=ANA() 20 PRINT A 30 LED A<500 40 WAIT10 50 GOTO 10

※BTNとGNDにジャンパー線をつないで、導通(電気が通じているか否か)をみてLEDが光るプログラム


点かなくなった、壊れたホットプレートを分解して、導通チェック。
コンピューターが入っていないシンプルなつくり、温度によって曲がる金属らしきものとバネを使って温度調節しているところがおもしろい。(熱膨張率が異なる金属を貼り合わせた、バイメタルというものでした)


電源コードは正常、温度センサーとスイッチも正常、白い布で覆われた部分が導通していないことを発見、開けてみると現れたこちらの部品。書いてある部品名「AUPO BF240」で検索するとThermal Fuse(温度ヒューズ)であることが分かります。


買ってきた温度ヒューズに交換、はんだづけ。240度がなかったので192度で代用してみる。


無事、動くようになった!と思ったら、しばらくすると停止。やはり温度ヒューズの温度が低すぎたようです。Amazonで見つけた同等品を注文。

直ったら得、直らなくてもいい経験。
何かが壊れたら嬉しくなれますよ!(高電圧を使ってそうな家電には要注意!)

小1でマスターするキーボード、タイピングゲーム「ゴモジ」

2016/12/04 23:55:00
#KidsIT #IchigoJam 

IchigoJam Advent Calendar 2016の5日目
こどもプログラミングサミット2016 in Fukui」で発見した小学校低学年における余裕ある時間。
プログラムを自分で論理的に組み立てるのは難しいとしても、キーボードの練習はきっといける!
(参考、4才にプログラミングを教える10ステップ


10 C=5 20 FOR I=1 TO C 30 [I]=65+RND(26) 40 ?[I]; 50 NEXT:?:CLT 60 FOR I=1 TO C 70 IF INKEY()<>[I] GOTO 80 80 ?[I]; 90 NEXT:?:?TICK()

ランダムに表示される5文字をすばやく打つゲームです。
打ちにくい文字がでるかどうかは運。ハイスコア目指してがんばっている内にタイピングがみるみる速くなるかも?

体系的かつ高速に楽しくタイピングが覚えられるゲームづくりの元ネタとしてどうぞ!


こどもプログラミングサミット2016 in Fukui
たくさんご来場、ありがとうございました!

プログラミングは勉強だってゲームに改造できる秘密の道具、福井大学附属中学校21世紀夢講座

2016/12/03 23:55:00
#KidsIT #IchigoJam 

三重から福井市明道中学校へ転校、近くにありながら行ったことがなかった福井大学附属中学校。
「21世紀夢講座」にて中学2年生25名に「プログラミングで道具を創る仕事」を紹介。
話だけでなく体験を!IchigoJamたいけんセットを人数分を持参。


電源が豊富な被服室を準備してもらい、テーブルは8人4島、延長コードを机の上に出すまでを準備、IchigoJamの接続などからやってもらいました。 テレビ、キーボード、電源をうまくつないで、スイッチONで、起動!子供の頃、ビデオデッキの配線とか好きでしたが、そういう体験することも少なくなっているのかも。


LEDコマンドとWAITコマンドを組み合わせて自動的に点滅する方法を伝授。
では、10回点滅させるには?こちらの学生、6回分までがんばってた!


便利な繰り返しコマンドFORを使えば楽に指定回数の点滅をやってもらえます。 気がつかないうちに身の回りで活躍しているコンピューター、すべては誰かがプログラミングしたもの。
ひとつひとつのコマンド、RPGの魔法の如し。


思い思いのキャラクターでかわくだりゲームづくりをつくって楽しんでくれました!


1,500円のパソコンは、1秒間に5000万回計算できちゃいますが、ほんの序の口。
iPhoneでIchigoJam 400台分の計算力、ちょっといいパソコンだと20万台分、スパコン京で2億台分!
このようなコンピューターが100億台の単位でつながったものが、インターネット!
あらゆるものがデータ化され、世界中瞬時に伝わるIoT(インターネット・オブ・シングス)時代を楽しもう!

25名中、自分のパソコンを持っていたのは4名。
授業後の感想、難しかったけど楽しかった意見が多数。続けたいと答えてくれた人もたくさん!

おまけ、足して10になる数当てゲーム for IchigoJam

10 C=10:N=0:CLT 20 CLS:N=N+RND(8):N=N%9+1:LC5,4:?N;"+";"?=10" 30 IF INKEY()-48+N=10 S=S+1:C=C-1:IF C GOTO20 ELSE?"TIME:";TICK()/60;"SEC":END 40 GOTO 30

楽しくない勉強はプログラミングで改造しよう!
楽しい勉強はゲームと区別がつかない!


廊下にあったMIDIキーボード!
IchigoJamでMIDI楽器の制御もできますよ!
人に代わっていろいろやってくれるロボットを自分で自由に作れちゃうのがプログラミングの醍醐味!

IchigoJamでプログラミングスキルを身に付け、こどもプロコンへ応募し、受賞を狙おう。
親に「スマホアプリをつくる!」と決意を示し、いいパソコンを買ってもらえるよう交渉すべし!


所かわって福井商工会議所こどもプログラミングサミット2016 in Fukuiの最終準備!


なんと北海道石狩から九州福岡まで、全国から冬の福井に大集合した!


当日参加もOK!子供とプログラミングと未来、話したい方、ぜひ!

こどもプログラミングサミット2016 in Fukui
12/4(日)9:30-17:10 福井商工会議所 国際ホール(B1F)

OpenGLとC言語で始めるパソコン用ゲームづくり

2016/12/02 23:55:00
#OpenGL #KidsIT 

長野高専のC言語プログラミングの授業で使われているOpenGL
WindowsやMacやLinuxなど、環境問わずにグラフィクスや入力を扱えて、ハードウェアアクセラレーションも効かせてくれる便利なツール。

IchigoJamでやっているような基本、2次元モノクログラフィクスとキー入力を試してみました。これでシンプルなゲームは作れそうですねっ。
(参考、GLUTによる「手抜き」OpenGL入門

ランダムドット、スペースキーで画面再描画。sでアニメーションスタート、eで停止。qかescキーで終了。

プログラムも比較的簡単なので、IchigoJam BASICでプログラミングの基本と、タイピングに抵抗がなくなったら、大学・高専で学ぶプログラミング言語のデファクトスタンダード、C言語に触れてみるのもいいですね。マシン語にコンパイルされるのでパフォーマンスは最強クラス!

OpenGLとC言語のいいところは、プログラムがシンプルなので、コンパイル時間がほとんどかからず、BASICインタプリタ並に試行錯誤が超高速にできるのもうれしいポイント!

#include <GL/glut.h> #include <stdio.h> #include <stdlib.h> #define SCR_W 32 #define SCR_H 24 #define RATIO 2 #define OFFSET 8 #define SCREEN_W (SCR_W * 8 * RATIO) #define SCREEN_H (SCR_H * 8 * RATIO) #define SCREEN_W2 (SCREEN_W + OFFSET * 2) #define SCREEN_H2 (SCREEN_H + OFFSET * 2) void setPixel(int x, int y, int white) { if (white) { glColor3d(1.0, 1.0, 1.0); } else { glColor3d(0.0, 0.0, 0.0); } double dx = (double)(x * RATIO + OFFSET) / SCREEN_W2 * 2.0 - 1.0; double dy = -(double)(y * RATIO + OFFSET) / SCREEN_H2 * 2.0 + 1.0; double dx2 = (double)((x + 1) * RATIO + OFFSET) / SCREEN_W2 * 2.0 - 1.0; double dy2 = -(double)((y + 1) * RATIO + OFFSET) / SCREEN_H2 * 2.0 + 1.0; glBegin(GL_POLYGON); glVertex2d(dx, dy); glVertex2d(dx2, dy); glVertex2d(dx2, dy2); glVertex2d(dx, dy2); glEnd(); } void display(void) { glClear(GL_COLOR_BUFFER_BIT); setPixel(0, 0, 1); setPixel(32 * 8 - 1, 0, 1); setPixel(32 * 8 - 1, 24 * 8 - 1, 1); setPixel(0, 24 * 8 - 1, 1); for (int i = 0; i < 100; i++) { int x = rand() % SCREEN_W; int y = rand() % SCREEN_H; setPixel(x, y, 1); } glFlush(); } void init(void) { glClearColor(0.0, 0.0, 0.0, 1.0); } void keyboard(unsigned char key, int x, int y) { printf("key: %d\n", (int)key); switch (key) { case 'q': case 'Q': case '\033': // esc exit(0); break; case ' ': glutPostRedisplay(); break; case 's': glutIdleFunc(glutPostRedisplay); break; case 'e': glutIdleFunc(0); break; default: break; } } int main(int argc, char** argv) { glutInitWindowSize(SCREEN_W2, SCREEN_H2); glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutCreateWindow("test"); glutDisplayFunc(display); glutKeyboardFunc(keyboard); init(); glutMainLoop(); return 0; }

Macでのコンパイルと実行は、下記のようにします

cc -I/usr/X11R6/include main.c -L/usr/X11R6/lib -lglut -lGLU -lGL ./a.out

図書館空席オープンデータをBASICで取得して表示するIoT - SORACOM x 3GIM x IchigoJam

2016/12/01 23:55:00
#IoT #IchigoJam #opendata 

0SIM x 3GIMクラウド温度センサーそば or notにつづき、sabotaの「つくえなう」で使って図書館空席オープンデータをタブレイン社の3GIMで表示してみました。


11座席をIchigoJamの画面で表示。位置決めはFORコマンドとLOCATEコマンド(LC)、表示はPRINTコマンド(?)ですね!

プログラムはこんな感じです。まずは3GIMで通信してデータを取得するまで。
鯖江市の図書館空席オープンデータ - 数値取得API

10 BPS2400:OUT6,1:WAIT60:OUT6,0:UART3,1 20 CLS:INPUT "",D 30 ?"$WG http://sabae.club/rdfp/sabaelibrary/?f=num" 40 CLS:INPUT "",D 50 C=PEEK(#900):IF C=ASC(">") OR C=ASC("$") GOTO 40 60 UART0,0:OUT6,1

レスポンス、先頭に&>や$がついていないものを取得します。返ってきた数値は変数Dに入ります。
つづいて、その変数Dの値を使って画面描画

100 FOR I=0 TO 10 110 B=D&(1<<I)!=0 120 LC 5+I*2,10 130 ?CHR$(232+B) 140 LC 5+I*2,12 150 ?I+1 160 NEXT 170 WAIT 60*60:RUN

表示し終わったら、1分待って、再度実行、再取得というループです

今回は、SORACOMのSIMを使いました。
3GIM v1では、SORACOMを使うために事前設定が必要です。(3Gシールド/3GIM Wikiページ

10 BPS2400:OUT6,1:WAIT10:OUT6,0:UART3,1 20 ?"$YD TABrain ";CHR$(34);"$x49$x3D$xD8$xC9$xCE$x98$xDB$x3D$x22$xCA$x56$x84$xCA$xA2$x97$x7F"; 30 ?"$xBB$xC5$x6D$xEC$xBE$xAF$x39$x89$x47$xA7$xFF$x67$x79$x81$xA3$xBD$x66$x9D$xBD$xDD$x5B$x5F"; 40 ?"$x58$x89$x46$x5D$x57$xEB$x95$x23$x29$xE3$x78$x23$x32$x31$x49$xB2$xD0$xE9$x47$xC0$x16$x34$xB5";CHR$(34) 50 INPUT"",D:UART0,0 RUN

これで12番にSORACOMのAPNが登録され、次のコマンドで切り替え

UART3,1:?"$PS 12":INPUT"",D:UART0,0

3GIM V2.0の場合、$PSコマンドでAPNを登録する方式に変わっているので注意!(詳細


IchigoJam BASIC で、お気軽IoTをお楽しみください!

IchigoJam Advent Calendarスタート「ゆきだるまゲーム」 with アナログ加速度センサー

2016/11/30 23:55:00
#KidsIT #IchigoJam 

雪が大好き、ゆきだるま。
降ってくる雪をたくさんゲットしよう!

PCNフラッグシップAssemblageで取扱予定の簡単なアナログ加速度センサーを使った作品。
クリスマスの12/25まで、1日ずつオープンされるアドベントカレンダー、今年はIchigoJamのミニプログラムで挑戦。


アナログ加速度センサー、VCCを合わせて、IN1をOUT8,0でGNDに切り替えると加速度センサーが動き出し、ANA(2)でIN2に接続されたZ_OUTの値が読めます。


X,Y,Zと3軸の加速度センサーですが、今回は左右に動く1軸のみ使用。
5ピンの配置、IchigoJamの左ピンソケットがぴったり!


このようにL字ピンで立てるとちょうどZ軸が左右に振って反応します。


一定時間中、雪だるまを加速度センサーをさしたIchigoJamを左右に傾けて操作して、たくさん雪を獲得しよう!

10 OUT8,0 20 CLS:S=0:C=300 30 X=(ANA(2)-512)/6+16 40 LC X,21:?"O" 50 LC RND(31),0:?"*" 60 IF SCR(X,20) S=S+1 70 SCROLL DOWN 80 LC 0,23:?C,S; 90 C=C-1:IF C=-1 END 100 WAIT 5 110 GOTO 30

S:スコア
C:残り時間
X:雪だるまの位置


アキハバラ キラキラ化計画で誕生した、手作りイルミネーションが秋葉原各地を飾っています!

IchigoJamと共に待つ楽しいクリスマス、ぜひ楽しいプログラムを子供に届けましょう!
IchigoJam Advent Calendar 2016 - Qiita
アドベントカレンダー、参加者大募集!

なんとcomドメイン2つ増加!? 移行が進む .lg.jpドメイン - 第2回 日本の自治体ドメインセンサス

2016/11/29 23:55:00
#opendata 

今年3月17日に調査から半年、全自治体Webサイトへ実際にアクセスして調べたWebの安全調査(https or not)の結果を使って再度センサス。(自動アクセスプログラムを作って調査、リンク切れを検出した3件は手動で検索、追記した)

なんと .com が2つ増加!ぜひ住民の方、行動を!
.jp .org が5つ減少、都道府県がつく.jpの地域型.jpが24減少は、よい傾向。
代わって、.lg.jp が25増加!
※移行時には、元のドメインを失効させず、移行先へ飛ぶように(リダイレクト)!でなければ偽サイトの餌食に・・・
(参考、東京都主税局 zei.tokyo と ようこそzei.tokyo.jpへ

総務省「地方公共団体における情報セキュリティポリシーに関するガイドライン」内に「ウェブサイトを構築する場合は、「lg.jp」ドメインを含む属性型・地域型 JP ドメイン名の使用を調達仕様書に含めることが望ましい」とありますが、地域型JPドメインは受付終了、都道府県型JPドメインは一般開放されているので使うべきでないので削除、Webの安全HTTPSの追記と合わせて修正が望ましい。
汎用・都道府県型JPドメイン名お申し込み手順 /JPDirect」←一般でも取得可能な都道府県型JPドメイン


日本の自治体ドメインセンサス

こちらが前回(3月17日時点)

今回アプリに、1917の自治体Webサイト一覧を追加。
収集・確認したデータは、CC0のオープンデータ、どうぞご活用ください!

日本の自治体ドメインセンサス

Webの安全、準備できてますか? 2017年はHTTPS標準化元年 地方自治体対応率はわずか1.5%

2016/11/28 23:55:00
#opendata 

Webの住所(アドレス)には、「http://」で始まるものと「https://」で始まるもの、2種類あります。
一文字違いの「s」はsecure(安全)の意味、httpには経路中に改ざん・盗聴されるリスクがあります。
銀行やネットショップでは昔から使われていたhttpsですが、今後は標準になります。

httpのまま使う問題点
- Google検索で上位に表示されにくくなる(Google公式ブログより 2015.12.18 / 2014.8.7
- 2017年1月移行に登録されるiPhone/iPadアプリでアクセスできなくなる(SSL対応必須
- Webアプリで現在位置取得できない(iOS10Chrome
- HTTPS上にあるWebアプリから画像取得できない(AKIJIKANで画像が表示されるされない問題
- FacebookやTwitterなどのアプリ内で表示されなくなる可能性がある

地方自治体のオープンデータが、httpsになっていないと、他のアプリからの使用ができなくなります。
Webアプリからhttpの画像データへのアクセスができなくなるなど、すでに弊害もでています。

全国の自治体Webサイト一覧から、https対応状況をチェックしてみました。
今年の3月、一覧を作成データでは、11件だったものが、29件と18件増。対応は進んでいますが、全体のわずか1.5%。 早急の対応が求められます。


日本の自治体「Webの安全」対策率」(data on GitHub) 2016.11.29現在

もちろん行政だけでなく、民間も!
WebのSSL化待ったなし!さくらのクラウド x Nginx x Let’s Encrypt でつくるココイクSSL版
HTTPS標準元年への備え、万全ですか?

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — 表示 4.0 国際 — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / 高解像度プロフィール画像(和服)