2017年12月24日

STEM 教育教材

 ちょっと悲しくなるツイートを見かけました。

 SONY の KOOV は「見るべきものはない」という評価なんですね。まあ確かになあ、これと mBot シリーズを見比べたら、値段の差で mBot を選ぶかな。なんか、KOOV って「無駄に高級感がある」印象なんだよね。大事なお子様の教育のためだったらこれぐらいのお金(5万円)出すでしょあなたたち、と言われている気がする。んー出す人もいるんだろうけど、うちは無理。2万円の mBot なら選択肢に入った可能性はある(子供がもっと小さければ)。

 STEM 教育教材といっても、何でもかんでもロボットにしなくてもいいと思うんだけど、動きがあるからアピールしやすいんでしょうね。指導する方の都合もあるから、あまりバリエーションを増やすのも具合が悪そうだし。

 うちの子供達は、Scratch は一応2人とも知っている。その先に進めるのは難しかった。ラズパイを所有している坊の方は、そのうち python に手を出すかもしれない。一応ラズパイを使った電子工作の本は持っているが、まだハードルが高いと感じているみたい。中学レベルの数学・技術科の内容を一通り勉強すれば、もう少し楽に入っていけるのかもしれない。

 「子供の科学」に「ポケデン」という電子工作の連載があって、面白いんだけど、毎回ディスクリート回路で組んじゃっているのね。去年は「スタディーノ」を使ったマイコン電子工作をやっていたようだが、見逃してしまった。今度、ラズパイの連載の方で「スタディーノ」との連携が始まるようだから、そちらに期待したい。

posted by toshinagata at 10:08| 日記

2017年12月21日

「終わらない歌」(宮下奈都/実業之日本社)

 「よろこびの歌」の続編。音大に進んだ御木元玲は、相も変わらず自分の才能が足りないことに悩んでいる。いつも前に進めずにもたもたしている玲の背中を押すのは、やっぱり千夏ちゃんだ。

(クリックすると Amazon の商品ページに飛びます)

 今回もやっぱり千夏ちゃん中心に話が回っていくのかな、と思いきや、3年ぶりの同窓会(2年の時のクラスだから、卒業2年後だ)の場面で「あやちゃん」が急に表に出てくる。あやちゃんは前作では名前が時々出てくるだけで、ほとんど存在感がなかった。ところが、短大を卒業して「北陸のどこかの町」に就職し、しかも「こちらに戻ってくるつもりはない」と言い切るあやちゃんに、心がざわつかされる。就職後のあやちゃんのエピソードは、その次の章で語られる。眼鏡工場というから、鯖江市だろうか。そういえば著者の宮下さんは福井県出身だった。

 そして、物語を締めくくるのは、千夏ちゃんに引っ張られた玲だった。宮下さんの筆が冴える。玲の「歌の力」が解放されるさまが、見事に活写される。この歌はあやちゃんにも届くんだろうか。届いて欲しいね。

 細かいことだけど、この子たちが「苗字で呼ばれるか、名前で呼ばれるか」を気にして、お互いの距離感を測っているのが、印象に残った。ちょっと男性にはわかりにくい感覚。

はい、と姿勢を正しながら、小さな驚きとよろこびに打たれてしまった。今、御木元さんが、ひかり、と呼んだ。佐々木さんから、昇格だ。(よろこびの歌)

東条さんは笑って、テーブル越しにこちらへ身を乗り出すようにし、小声でいった。
「できれば、あやちゃんのままのほうがいいです」
「え」
「さっき、あやちゃんって呼んでくれましたよね」
「ええっ」
迂闊だった。気持ちは一気に近づいたけど、まだ「東条さん」のつもりだった。(終わらない歌)

タグ:読書
posted by toshinagata at 00:18| 日記

2017年12月17日

wxWidgets で作成した Windows アプリを Wine で動かす

 wxWidgets の環境整備第3弾。Wine ってどうなんだろうと前から思っていた。エミュレータを使わずに Windows アプリを Mac 上で走らせるものだが、X Window が必要なのが面倒。とおもっていたら、EasyWine というのを使うと Xquartz を明示的にインストールしなくても Wine が使えるらしい。すばらしい。

 インストールしてみた。demos/forty フォルダを Finder で見てみると、forty.exe が EasyWine のアイコンになっている(もしそうなっていなかったら、「情報を見る」で EasyWine を使って開くように設定すればいい)。

20171217-1.png

 ところが、ダブルクリックしても立ち上がらない。EasyWine は立ち上がるのだけど、しばらくすると勝手に終了してしまう。ネットで調べても「Wine は『運が良ければ動く』ぐらいに思っておこう」というような情報ばかりで、なかなか手掛かりがない。勝手に終了する前に何かエラーメッセージを出しているはずだ、といろいろ調べて、やっとつかまえた。コマンドラインから、下のようにすればいい。

$ /Applications/EasyWine.app/Contents/Resources/wine/bin/wine forty.exe
err:module:import_dll Library libgcc_s_sjlj-1.dll (which is needed by L"Z:\\....\\demos\\forty\\forty.exe") not found
err:module:import_dll Library libstdc++-6.dll (which is needed by L"Z:\\....\\demos\\forty\\forty.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\....\\demos\\forty\\forty.exe" failed, status c0000135

 libgcc_s_sjlj-1.dlllibstdc++-6.dll は、どちらも MinGW 由来のライブラリである。これに依存してちゃだめですね。どの DLL に依存しているかは、objdump を使えば確認できる。

$ /usr/local/mingw-w32/bin/i686-w64-mingw32-objdump forty.exe -p | grep DLL
 vma:            Hint    Time      Forward  DLL       First
    DLL Name: ADVAPI32.dll
    DLL Name: COMCTL32.DLL
    DLL Name: COMDLG32.DLL
    DLL Name: libgcc_s_sjlj-1.dll
    DLL Name: GDI32.dll
    DLL Name: KERNEL32.dll
    DLL Name: msvcrt.dll
    DLL Name: ole32.dll
    DLL Name: OLEAUT32.dll
    DLL Name: SHELL32.DLL
    DLL Name: libstdc++-6.dll
    DLL Name: USER32.dll
    DLL Name: WINSPOOL.DRV

 Makefile を下のように修正。

srcdir = ../../../demos/forty
top_srcdir = ../../..
LIBS = -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32
LDFLAGS_GUI = -mwindows
LDFLAGS_GUI += -static  #  これを追加
CXX = i686-w64-mingw32-g++
CXXFLAGS = -DWX_PRECOMP -mthreads -O2 -fno-strict-aliasing 

 ビルドし直す。objdump でもう一度確認。確かに libgcc_s_sjlj-1.dlllibstdc++-6.dll がなくなっている。

$ /usr/local/mingw-w32/bin/i686-w64-mingw32-objdump forty.exe -p | grep DLL
 vma:            Hint    Time      Forward  DLL       First
    DLL Name: ADVAPI32.dll
    DLL Name: COMCTL32.DLL
    DLL Name: COMDLG32.DLL
    DLL Name: GDI32.dll
    DLL Name: KERNEL32.dll
    DLL Name: msvcrt.dll
    DLL Name: ole32.dll
    DLL Name: OLEAUT32.dll
    DLL Name: SHELL32.DLL
    DLL Name: USER32.dll
    DLL Name: WINSPOOL.DRV

 forty.exe をダブルクリックして立ち上げる。動きました!

20171217-2.png
posted by toshinagata at 19:36| 日記