2016年12月24日土曜日

micro:bitの開発環境を一通り試してみる

chibi:bit が来たので、micro:bit の開発環境のサイトにあるものを一通り試してみました。micro:bit が mbed 対応というだけあって、どの開発環境も基本的に mbed スタイルです。Web上の開発環境で開発して、バイナリをダウンロードしてきて、PCにストレージとしてマウントされている chibi:bit にコピーして、chibi:bit 背面のリセットボタンを押すだけです(ダウンロード→ストレージにコピーというのが arduino に比べて面倒という人もいます)。


Microsoft PXT (Beta)


micro:bit といえば Block Editor というイメージだったのですが、いつのまにかそれに代わるものが登場してますね。Scratch 風のブロックプログラミングと JavaScript で開発できるものとのこと。

ちょいとブロックでプログラミングしてみて、、、




JavaScript  タブをクリックすると対応する JavaScript が見れます。JavaScript 側でコードに修正いれてみたら、リアルタイムにブロック側に反映されました。



シュミレータも付いているので、デバッグもやりやすそうです。


MicroPython


MicroPython も使えます。予め MicroPython のファームウェアを入れておく必要はなく、作成したスクリプトとインタプリタがまとめて入ります。



適当なターミナルソフトで chibi:bit にシリアル接続して、キーボード割り込み入れると実行中のプログラムが中断して REPL に入れます。MicroPython のバージョンは 1.7-9 でちょっと古いです。MicroPython にはシミュレータが付いていないので、別に用意されているアップロードツールでスクリプトを転送しつつ、REPL で実行を試してみるといったほうがデバックしやすいでしょう。ちなみに、実行中にエラーが発生すると、LED上にエラーメッセージがスクロール表示されるのですが、あれ読むのは無理!




Microsoft Block Editor 


ちょっと前まで micro:bit といえばコレだったという印象だったのですが、PXT が出た後もまだあります。シミュレータもあります。



メニューにある「convert」とはナンゾやと思ったら、後に出てくる Touch Develop というスクリプトに変換するもののようですね。


Code Kingdoms Javascript 


今回、試せなかったのはコレだけ。どうにもエディットできません。何か根本的に操作を間違っているのだろうか。まあ、JavaScript はもう PXT で使えるから、コレは使えなくてもいいのだけれども





Microsoft Touch Develop

なにやらモバイル用にタッチインタフェースでプログラミングできるスクリプトを目指したものなんだそうな。先の Block Editor を変換してみたものが以下。





おまけ:chibi:bit 専用開発環境

スイッチサイエンスさん公開している chibi:bit 専用開発環境も使ってみました。PXT を日本語化したものの模様。ブロックと JavaScript でプログラミングでき、双方リアルタイムに反映されます。





2016年12月23日金曜日

chibi:bit 開封の儀

発売に気づくのがちょっと遅れましたが、12/20 に注文した chibi:bit がクリスマス・イブイブに届いたので開封。

箱ものです。スイッチサイエンスさん力はいってます。




シールの封印も無く、横にスライドするだけでブツが出てきます。


入ってるのは本体だけ。本家 micro:bit の配布物と違い、USBケーブルも電池ボックスも付いてきません。丸い穴は何のためかと思いきや、バナナプラグというもので繋ぐためのもののようですね。


 裏側。リセット用のボタンがあります。技適付の Bluetooth モジュールもあります。



USBケーブルで電源供給すると、すぐにデモプログラムが動きます。




2016年12月22日木曜日

Python を知った昔のお話

この記事は『PyCon JP Advent Calendar 2016』『PyCon JP Advent Calendar 2016』 22日目の投稿です。余裕ぶっこいていたらこんなに遅くなってしまいました。

PyCon JP スタッフではありません。札幌在住のソフトウェア技術者です。昔々の Python との出会いと、長い年月を経て Python 界隈に戻ってきたお話をします。

Python との出会いは、1995年の夏ではなかったかと思います。

当時は仕事でマイナーな UNIX マシンを使っていて、SunOS などメジャーな UNIX 用に開発されたフリーソフトウェアをせっせと移植して使う日々でした。

そのころ仕事で使っていた開発言語は USL の C++ 2.0、テンプレートも例外も無かった頃のものです。あの頃をあれこれ思い出してみると…


  • Java, Ruby, PHP なんかが登場しようとしてたころ
  • C++ 以外でオブジェクト指向プログラミングしたいと思ってたころ
  • Perl 5 のオブジェクト指向サポートにがっかりしていたころ


今は亡き秋葉の Laser 5 で洋書のフリーソフトウェアカタログを購入したのもそんなころ。その中にあった "object-oriented scripting language" なるキーワードが目にとまりました。これが Python との初めての出会いです。このときの Python のバージョンは 1.2〜1.3 ぐらいかと。

メソッド定義の第一引数にselfって、何その実現方法丸出しぃって印象でしたが、perl 5 よりははるかにましだったということもあり、使い初めてみたのでした。言語仕様は気に入ったものの、ブロックにインデントを使うというこだわりは、エディタの手厚いサポートがないと実用的じゃないので、こりゃ絶対メジャーな言語にはなれないなと思ったもんです。私自身、emacs の python モードを見つけなかったら(当時は標準で無かったはず)たぶん使う気にならなかったでしょう。

日本語文献は皆無だったので、Reference Manual をかいつまんで読んで言語仕様の細かいところを調べてました。そんなさなかに 鈴木さん@OTSL が Tutorial の日本語訳を出してくれました。これは私も貢献せねばと、つまみ喰い状態の Reference Manual の訳を強引に進め、拙い和訳を NetNews の fj.comp.lang.misc に出しました。




ちなみに、当時の Python ドキュメントは LaTeX で書かれていました。当時の日本語対応のTeX は ASCII版jTeX と NTT版 日本語TeX の2派があって、微妙に互換が無くてなかなかに困りものでした。仕事で使っていたのがNTT版だったので、開き直ってNTT版オンリーで公開しました。

反響はどの程度あったのかはぜんぜんわかりません。鈴木さん@OTSL からは修正コメントをいただきました。しかしそのころから、仕事が非常に忙しくなり、そうこうしているうちに Java が出てきたり、ちょっとした書き捨てスクリプトを書くには Perl が便利だったりして、仕事で使っていない Python から離れてしまいました。Reference Manual の修正版出せず、鈴木さん@OTSL には申し訳なく思っております。

21年の歳月が経ち、予想をよい意味で裏切ってくれて、Python もすっかりメジャーな言語になりました。私も仕事で Python 使うことになったので、先日札幌で開催された Python Boot Camp に参加し、Python 再入門させていただきました。PyCon JPを知ったのもこのときが初めてです。(2015には札幌で PyCon mini が開催されていたのですね。行きたかった...)

Boot Camp の懇親会にも参加させていただき、地域コミュニティの話も出ました。札幌には元々「Python 札幌」というコミュニティがあることは知っていたので、先日、運営していた方の話を聞いたら休止状態とのことでした。道内コミュニティには何かとスタッフ人材の道外流出という問題がつきまとう模様。そんな残念な状況なので、札幌近郊のコミュニティを再活性化したいところ。1人では何かと大変なので仲間になってくれる方がいれば嬉しいです。とりあえず7月 OSC Hokkaido では何かやろうと思ってます。PyCon JP
スタッフはもうちょっと様子を見ようと思います。「リモートにぎやかし」って枠はないのですかね(笑)

それでは、とりとめもない話でしたが、昔を懐かしんで書いてみました。