「つくれば工房」で MicroPython 体験会

この記事は たまに広島 Advent Calendar 2016 20日目の記事です。

広島で Python のカンファレンスを開催してきた PyCon mini Hiroshima 実行委員会の西本です。
その他に、オープンソースの Windows 用スクリーンリーダー NVDA の日本の開発者コミュニティ、NVDA日本語チーム、そして広島のコミュニティNVDA ユーザ会広島などをやってきました。

11月12日の PyCon mini Hiroshima の報告は PyCon JP のブログに書きました
また 11月27日 OSC 2016 Hiroshima のセッション『jus研究会広島大会「ITコミュニティの運営を考える」』で NVDA のコミュニティについて喋らせてもらいました。開催レポートで詳しく紹介していただいています。

つくれば工房

広島で「電子工作やLED手芸など自分で自由に作るものづくりの場」=「つくれば工房」を運営しておられる遠藤さんが PyCon mini Hiroshima 2016 に参加され、私が紹介した MicroPython について興味を示してくださったので、MicroPython 体験会を提案しました。

事前に見学をさせていただきました。
会場は広島市西区楠木町のアドウィンテクノ塾です。
お子さんから年配のかたまでいろんな人がいらっしゃって、Arduino や 3D プリンタなど、いろいろなことにそれぞれ取り組んでいらっしゃいました。
毎週土曜日に欠かさず開催されているそうです。ものづくりの「もくもく会」だと思いました。

MicroPython体験会

ということで12月10日の「つくれば工房」にて「MicroPython体験会」を開催していただきました。

つくれば工房のウェブサイトに報告を掲載していただいているので、自分用の記録をここにまとめます。

  • 参加者 17人くらい。やはり年配の方からお子さん(お母さん同伴)まで。マイコン開発経験者もPython経験者もいらっしゃった。Windowsパソコンを持ってきたけどプログラミング未経験、というかたもいらっしゃった。
  • スイッチサイエンスの ESPr One の持参を推奨したが、他の ESP8266 基盤を持参された方もいた。機材によってはLED点滅の実験のためにLEDをGPIOポートにつないでいただく必要があった。
  • ファームウェアの書き込みのためにPCとMicroUSBケーブルで接続していただいた。充電はできるけど通信はできないMicroUSBケーブルもあり、サポートに手間取った。
  • 西本が事前に確認したのは PC 側に Python 2.7 + esptool.py をインストールして書き込みをする手順だった。体験会をした部屋で WiFi がうまく使えなかったため、USB メモリで ESP8266 Flasher と MicroPython のバイナリ、ESPr One のUSBシリアルドライバなどを回覧してセットアップしていただくことになった。
  • Windows に TeraTerm をインストールしていただいたら、バージョン 4.93 に文字化けの不具合があり、4.92 を入れ直していただいた。

説明したこと:

  • nishimotzのサイトで紹介したLED1の点滅を、ターミナルから逐次入力でやってもらった。
  • コンマとピリオド、コロンなど、文法を説明した方が間違えにくいということに気づき、基本的な Python の文法の説明をした。
  • ペーストモードの説明をして、このLEDの点滅を def blink() のように関数として「メモ帳」に書いてもらって、ペーストモードで貼り付けてもらった。そうすると blink() だけで点滅を実行できる。
  • 早くできた人は PWM でだんだん明るくなるコードを自分で試していた。
  • トラブルシューティング:ペーストモードで改行が余分に入る。TeraTermの改行設定を送受信ともにCRにしてもらう。
  • WiFiを触ってもらうと面白いのだろうが、いろいろ難しそうだったので今回は説明を見送り。

質問されたこと:

  • WebREPL が動いてない:MicroPython 1.8.6 から初期化を実行しないと WebREPL が動かない仕様になった。
  • 割り込みは?:ユーザーボタンを押すとメソッドを実行する、といったコードは動作を確認している。
  • 起動すると自動的に実行するコード(main.py)をどうやって書き込むの?:WebREPLでアップロードするか、プログラムをファイルシステムに書き込むためのプログラムをターミナルで実行する。
  • 本格的に使えるの?:処理系を自分でビルドすれば、C言語拡張モジュールを組み込むことができる。CQ出版「インターフェース」2016年10月号に情報あり。

私はいろいろ準備不足でしたが、ベテランのかたが気を利かせてサポートしてくださったおかげで、無事に体験会を行うことができました。

ふだん Arduino でマイコン開発を楽しんでおられるかたも何人かいらっしゃいましたが、MicroPython のメリットや面白さをなにか感じていただければと思います。

広島に Python Boot Camp を誘致する計画も進んでいますが、広島で MicroPython 体験会、いかがでしょうか。こんどやるときはもっと上手にやれると思うので、ご連絡ください。

自分が映ってる写真を撮り忘れたので、「つくれば工房」さんのサイトからお借りしました:

電子工作のためのPython: MicroPython on the ESP8266

2016年11月12日に PyCon mini Hiroshima 2016 を開催しました。
開催報告記事は準備中ですが、まず私の発表を紹介しておきます。


作ったプログラムと回路図

準備のためにいろいろ実験していた記録

過去のIoTLT広島での私の発表の記録

録画(YouTube)

質疑応答の時間に「産業界での利用状況は?」というコメントがあり、産業界というよりも教育分野での盛り上がり(BBC micro:bit 対応など)のことしか触れなかったのですが、Damien George さんの講演(YouTube GOTO2016 の動画)では「宇宙開発への応用のための SPARC 移植版」などに言及されていました。開発者がもともとそういう分野の出身なのだそうです。思い出せなくてすみませんでした。。

私の発表では ESP8266 での動作状況だけをお話しましたが、もともとのターゲットである PyBoard などの ARM 系 CPU については、実行時にバイトコードではなくCPUのネイティブ命令を生成する機能など、性能を上げる処理がいろいろ実現されています。

 

このブログ記事では、今回の発表をどのように準備したかを簡単に振り返っておきます。

まず9月末に ESPr One を入手し、MicroPython の書き込み、動作確認をしました。

そして手頃なセンサーやデバイスをいろいろESP8266の入出力につないでMicroPythonで動かしてみました。

明るさセンサー(NJL7502)は「IchigoJamではじめる電子工作&プログラミング (I・O BOOKS)」で紹介されていて、いずれ遊ぼうと思って入手していました。

また圧電サウンダ(ピエゾ圧電ブザー)は IchigoJamU に付属していたものをそのまま拝借しました。すでにモデルチェンジしているようなので、現在購入できるモデルにブザーがついているかどうかはわかりません。

超音波センサーHC-SR04は5月にソラコムのハンズオンをやった(IoTLT広島で紹介済み)ときのパーツです。
ESPr Oneからは5Vと3.3Vの両方の電源をとることができます。
HC-SR04は5V駆動で、ESP8266のGPIOは(Arduinoと同じ)3.3Vとのことなので、ECHO の入力側は抵抗で分圧しています。
こういうのは “Arduino 3.3V HC-SR04” で検索すると見つかるので、人気のあるパーツを選ぶと便利ですね。

MicroPython for ESP8266 の Quick Reference にはデジタルの入出力方式として SPI, I2C, OneWire が紹介されています。
今回 SPI は手頃なパーツがなかったので実験しませんでした。

I2C でつないだのは小型のディスプレイ(OLED)です。
MicroPython のライブラリや Adafruit のサイト記事や動画を見て SSD1306 というドライバーのものが簡単に使えると知ったので安価なものを Amazon で探しました。
TonyDさんは ssd1306.py を組み込んでビルドし直していますが、MicroPythonのソースに入っているドライバーファイルをWebREPLでアップロードすればそのまま動きました。メモリを節約したかったら組み込んでビルドしたほうがいいと思います。

OneWire は Quick Reference に書かれていた温度センサー DS18B20 をすでに入手していました。
Arduino や Raspberry Pi などの書籍や記事でよく出てくるパーツだったので買っておいたのでした。
手で触ると体温で温度が上がるのはわかるのですが、実際に組み合わせて使い道を思いつかなかったので、マイコンの起動直後に温度を表示して、18度から20度までの範囲だったら “good condition” と表示する、みたいな「しょうもない」使い方しかしていません。
OneWire はプルアップの抵抗が必要なのですが、ESPr One のボード内の(おそらくは Arduino のプログラミングモード切り替えのための)抵抗をそのまま使えるように GPIO のポート番号を選びました。

ESPr Oneにはスイッチがあって GPIO で値を読むことができますが、ボードをケースに入れてしまったせいで、細い棒のようなもので突かないと押せません。

じゃあ光センサーと超音波距離センサーをスイッチの代わりにするか、ということで、全体を「光線銃ゲーム」に仕立てることに決めました。

光センサーを「懐中電灯を当てたときに閾値を超える」ように AD 変換で使う抵抗の値を選び、超音波センサーは「距離測定を3回実行して80センチ未満が1回以上あったかどうか」を判定することで誤判定をなるべく回避するように実装しました。まあ誤判定しますけど。。

ゲームにつきものの乱数は MicroPython の math にはなくて os.urandom で得られるランダムなバイト列を使いました。

MicroPython の PWM は LED の明るさを変える目的で使われると思いますが、ここでは LED と圧電ブザーを並列につなぎ、メロディを流すのに使いました。
性能が足りないのか精度が足りないのか、高い音は綺麗に出ません。
音が出ているときはLEDも光ります。音を止める時は duty=0 にして信号が0になるようにしています。

ゲームそのものの実装とデバッグは本番直前の2〜3日でやりましたが、よく考えると(電子工作やマイコンに親しんでいた子供時代を含めて)人に見せるために電子工作やミニゲームを開発したのはこれが初めてだなあ、と思いました。

私が子供のころの電子工作はハンダ付けで組み立てるのが普通で、ブロックを組み合わせるような電子工作実験回路を羨ましく思ったものでした。
いま、こういう回路がブレッドボードで簡単に組み立てできて、入出力デバイスもモジュール化されて、マイコンとデジタルで繋がって、しかもPythonで対話的に開発、実行できる。
いい時代になったんだな、と素直に思った、そんなこの数日間でした。

私に懐かしい世界を思い出させてくれた IchigoJam も好きですが、MicroPython と ESP8266 も、教材が充実してくれば、子どもの遊びやプログラミングの教育に使えるのではないでしょうか。

如法会 2 と「2つのPython」

如法会2の報告を書いていただいたのですが、過大に評価していただいたようなので言い訳を書きます。

私のトークはこういう内容でした。

Pythonで統計や機械学習という記事、文献、書籍がこの1年くらい日本語でもどんどん出版されています。

私は英語の書籍も含めてそうした資料をいろいろ読んでいて「いわゆる PyData とオリジナルの Python は本当に同じ言語仕様なんだろうか」と疑問に感じてきました。

そこで NumPy が Python という言語をどのように拡張しているのか、という観点から資料を探していたら見つけたのが神嶌さんの「機械学習とPythonとの出会い」でした。

無料で公開されている文献なら紹介しやすいし、単純ベイズだけを扱っているので、やりたいことはわかりやすい。通して読んでみたのですが、さて勉強会で紹介するとしたら「単純ベイズ」のところだけが難しく感じられるだろうなあ。そう思って準備したのが「『機械学習とPythonとの出会い』との出会い」でした。

このテキストを説明しようとして、別の文献をいろいろ読むことになったので、私自身も勉強のきっかけになりました。また、いわゆる Jupyter Notebook をスライドのように使う方法もあわせて勉強させてもらいました。

1990年代の音声認識技術からパターン認識の分野に関わったので、ひとつのアプリケーションで有用な技術がどう他の対象に応用できるか、といった発想で物事を考えることはあいかわらず多く、そういうことが(データさえあれば)すぐに形にできる時代になったのはすごいことだなあと思いつつ、一見時代遅れのパターン認識手法をどこかでしゃべるのも、なにか新しいことに役立つかも、と思ったりもします。

Pythonのエコシステムが機械学習をコモディティ化してしまった現実に凄まじさすら感じた、というのが私にとっての PyCon JP 2016 でしたが、オマケのように喋ったのが「2つのPython」というキーワードでした。

Python 2 と Python 3 ですよね、と思われるかも知れませんが、もうその話は終わってたんだな、ということを東京で納得してきました。

むしろ新たな「2つのPython」は、簡単に言えば pip でパッケージ管理される公式 Python の世界と、Anaconda に代表される数値計算コミュニティ向け Python の世界ですね。いろいろ温度差があるということを薄々感じ始めています。。

このニーズや方向性の微妙に違う2つのコミュニティが関わり合って未来の Python が作られている、その現場を私は PyCon JP で見た気がしました。

コミュニティが分断されないためには多様性が尊重されるカンファレンスの場が必要なのだ、ということも強く感じました。

如法さんのブログでは PyCon mini Hiroshima 2016 (11月12日開催)でこの続きが聞きたいと書いておられましたが、取っておこうと思ったことを如法会で喋ってしまい、大したことでもなかったな、と思えてしまったので、私はたぶん別の話を(時間があれば)すると思います。

実は講演プロポーザルの締切を10月5日まで延長したので、まだ講演の提案をお待ちしているところです。詳しくは connpass をご参照ください。最後はまたイベントの宣伝になってしまってすみません。

PyCon JP 2016 ポスター発表: NVDA の開発とコミュニティ活動

9月21日と22日の2日間、PyCon JP 2016 に参加しました。2日目に「スクリーンリーダー NVDA の開発とコミュニティ活動」というポスター発表をしました。多くの人に見ていただけたようです。長い時間をかけてこちらの話に付き合ってくださったかたも多かったです。

PyCon JP 2016 ポスターの前に立つ西本

23日には開発スプリントのリーダーとして、NVDA 日本語版の開発の具体的な作業を紹介、そして Python でアドオンを開発するチュートリアルなどを行いました。メンバー4人で楽しくハッカソン的な時間を過ごしました。

NVDA日本語チームは2013年からユーザーを対象にしたイベントを行ってきましたが、今年、方針を変更してこういう技術者向けイベントに参加しました。結果として、より多くの人にNVDAを知ってもらったり、コミュニティのメンバーを広げたりする手段になったと感じています。

特に今年の PyCon JP は「多様性」がキーノートや講演でも取り上げられました。そのような中で、アクセシビリティの話が、多様性についての視野を広げるお役に立てていたらうれしいです。

PyCon JP の参加を通じて得た知識、気づいたことなどは、また改めて書いたり喋ったりしたいと思います。

11月12日開催の PyCon mini Hiroshima 2016 も「視覚や聴覚に障害をお持ちのかたを含めて、 誰にでも参加して楽しんでいただけるイベント」を目指しています。発表のプロポーザルを9月30日まで募集しています。

それから10月2日に広島での勉強会で Python と機械学習をテーマにLTをしようと思っています。こちらもよろしくお願いします。

PyCon mini Hiroshima 2016「広島とPython」 #pyconhiro #pyconjp

プログラミング言語 Python (パイソン)が気になりはじめた広島の皆様、広島のことが気になっていた全国の Python ファンの皆様のために、今年も PyCon mini Hiroshima を開催します。
開催日は2016年11月12日(土曜)、会場は広島市立大学サテライトキャンパス(広島市役所のすぐ前)です。

これから connpass サイトでの参加募集(および講演の申込受付)を開始します。

2015年11月22日、第1回 PyCon mini Hiroshima の基調講演は石本敦夫さん「Pythonの肩にのる」でした。
一人前のプログラマになるための勉強は果てしなく続く。でも焦ることはない。なにかひとつの技術やプロダクトに深く関わることが重要。
深く学ぶほど大きく広がる Python の世界はその理想的な入口のひとつ。
そんなことをご自身の20年の経験を踏まえて語っていただきました。

たまたま NVDA という Python プロダクトの活動(NVDA日本語チーム)をきっかけに Python を深く学ぶことになり、日本の Python の技術者やコミュニティの素晴らしいパワーに触れる機会を得てきた私には、自分の気持ちととても重なった内容でした。

半年以上が過ぎたいま、Python やその関連プロダクトは、広島の技術者の勉強や仕事に役立ち始めているでしょうか?

広島での PyCon mini の第2回となる今年は「広島から発信しよう」を目指しています。
県外から著名人をお招きしてお話を伺うことよりも「広島で Python がどう使われているのか」「広島で Python 技術者にどんなチャンスがあり得るのか」といった話題を持ち寄って、なにかを生み出したいと思います。
まず「広島で暮らす人々」「広島に観光で訪れる人々」をターゲットに「人間の言葉を理解するコンピュータ」の研究に取り組んでいる広島市立大学「言語音声メディア工学研究室」の関係者にご協力をお願いして、「広島とPython」の接点を探ります。
また IoT (Internet of Things) に適した言語としての Python という側面(例えばハードウェアの制御も Web APIの利用も Python から簡単にできたりします)を掘り下げていくために、今年立ち上がったフレッシュなコミュニティ IoTLT 広島と LT セッションを共同開催します。
スペシャルトークの火村智彦さんには「私はいま広島で○○というプログラミング言語を使っているけど、Python も勉強した方がいいのかな?」と思っている人に刺激を与えるようなお話をお願いしています。どんな内容になるのか、私もまだわかりませんが楽しみにしています。

今年、日本の Python コミュニティでは、初学者向けの勉強会(BootCamp)など新しい取り組みが各地で始まっています。
また Python を基盤にしたビッグデータ、機械学習、インフラ管理など、いろいろなツールのコミュニティも広がりつつあります。
この第2回 PyCon mini Hiroshima を、広島での継続的な Python コミュニティ活動のきっかけにと願いつつ、まずはご参加のご案内をさせていただきます。
講演テーマ募集は9月30日を締切とさせていただく予定です。
参加申込とあわせて、お気軽にご提案いただければ幸いです。

PyCon mini Hiroshima など

地域 PyCon mini を広島で という話を2月14日にしゃべってから、いろいろな方にご相談して、ご協力いただいています。
日程と場所が確定したので、今日の LT 駆動開発17 で紹介しました。

PyCon mini Hiroshima 2015
主催:PyCon mini Hiroshima 2015 実行委員会
開催日:2015年11月22日(日曜)
会場:サテライトキャンパスひろしま

私は実行委員長を務めることになりました。このイベントについての詳細はいずれまたお知らせします。
今日のLTでは、PyCon JP 行動規範に始まり、整備されたマニュアルやツールなど、イベントの運営についていろいろ学ぶことがある、という話をしました。

以下はLT駆動でしゃべらなかったですが、9月の東京でのイベントのお知らせの続報。
9月12日(土曜)「NVDAワールド 2015 東京」参加申し込みの受付を開始しています。

翌日も東京ですが、9月13日(日曜)『Web制作者のためのNVDA入門』というイベントで講師を担当します。

すごい広島 95 と NVDA 日本語版のソースコード管理

すごい広島 95 に参加してきました。

事前に呼びかけてみたら、NVDAユーザ会広島の関係者が、私を含めて3人集まりました。

やること宣言した作業は NVDA 日本語版の点訳エンジンに関する下記の検討でした。

日本語点訳で (日) と (火) の区別がつかない

NVDA 日本語版のソースコードは Git で管理されています。
また、NVDA 日本語版に含まれている日本語点訳エンジンにはテストコードが用意されており、なにか修正をしたときに、いままでうまくいっていた点訳の事例を壊さないように作業をしています。
テスト駆動開発の理念を尊重して作業しています。

いわゆる「デグレード」を避けるべき理由はいろいろあるでしょうが、不具合が増えてしまうと、それを嫌って「古いバージョンをわざわざ使う人」が増えてしまいます。
NVDA 本家版はそのようなことがないように努力しているのがわかるので、日本語版もそうしたいと思います。

私がこの日にやった作業は以下のような感じでした。

  • 点訳エンジンのテストを実行して、既存のテストケースでエラーが出ていないことを確認
  • 報告があった「不具合の事例」をテストケースに追加
  • 追加されたテストケースで、テストを実行して、そこだけが新しいエラーになることを確認

本当はエラーが出ているのでコミットするべきではないですが、作業手順の説明とバックアップのためにコミットされました。

帰宅して数日のうちにもうひとつのコミットを行い、この時点でエラーの数は0に戻りました。

作業はチケットに対応するトピックブランチ ti34973 で行い、作業が完了してから master にマージされました。

この作業をしたレポジトリは通称 miscDepsJp と呼んでいるもので nvdajpmiscdep という名前で管理されています。
この miscDepsJp レポジトリは nvdajp 本体のレポジトリから submodule として参照されています。

NVDA 日本語版の実行ファイルをビルドすることなく、miscDepsJp のソースだけで点訳エンジンの開発と単体テストが可能になっています。

修正の中身をすこし詳しく説明しておきます。

日本語点訳において(日)(火)などの曜日表記が、読み付与が間違っているためにどちらも「ヒ」になっていて、区別がつかない。
このような事例だけでも個別対応をして修正できないか、というのがいただいた要望でした。

日本語点訳の読み付与は Open JTalk の処理系に合わせて MeCab で行っています。

一般的には「日」や「火」という文字が出てくるたびにすべてを「ニチ」「カ」のように変換してしまうわけにはいかず、本来は文脈に応じた処理を行う必要があります。
もし文脈に応じた処理をしないと、たぶん既存のテストケースのどこかが壊れてしまうでしょう。。

今回はメーリングリストでいただいたアイディアを参考に、「(日)」のように「前後にカッコ、カッコとじがついている場合」だけ特別な対応をするという方針で作業をしてみましたが、実際には「記号」「一般名詞」「記号」という3つの形態素として処理されるべきなので、MeCab の辞書登録に加えて形態素解析結果の後処理で正規化(形態素の分割)を行って、なんとかつじつまを合わせています。

MeCab の辞書に単語を追加したので JTalk の読み上げにも影響が及ぶのですが、今回の作業の結果 JTalk の読み上げで「(日)」「(火)」は「ヒ」「ヒ」のままになっています。

音声読み上げについては音声合成に送られる前に句読点記号辞書が適用されるので、音声エンジンが受け取る前に「カッコ 日 カッコトジ」「カッコ 火 カッコトジ」のような文字列になってしまいます。

なので「(火)」のような単語を MeCab 辞書に追加しても、点訳エンジンに対してしか効果はありません。

以上、やった作業の簡単な報告でした。

NVDA 日本語チームのメーリングリストにおいて、日本語テキスト解析に関する開発には多くのひとが興味をお持ちのようなので、この部分に特化した開発をしていただくために、ソース、ドキュメント、ツールなどを整理したいと思っています。
複雑な作業であることにはかわりないので「誰でも開発に参加できるようになる」と期待されるとつらいですが。。

なお NVDA 日本語版のソースコード管理システムを github にまとめる作業を進めているところです。
ソースを github にコミットすると点訳エンジンのテストを自動実行する、いわゆる「継続的インテグレーション」などもやりたいと思っています。

NVDAミートアップ東京2015.1 & OSH2015

主催イベントと参加イベントの2件のご報告です。

2015年2月7日(土曜)に、東京都内にて NVDA 日本語チームによる初めてのミートアップを開催しました。

私は最初に「2015年のNVDAとWindows環境」という講演をしました。

Windows に限らずコンピューターやインターネットに関する技術の変化が速くなっています。
国際的な NVDA のコミュニティが目指す世界を日本の皆様に共有していただけるように、また日本のスクリーンリーダーの状況を世界に発信し、海外の NVDA ユーザーに対する貢献に繋がる活動を心がけたいと思います。

私たちが確保した時間の大半は「アンカンファレンス」と呼ばれる形式で進められ、その場で決まったテーマで3個ないし4個のグループに分かれて議論したり作業したりしました。

議論の一部は以下にて報告されています。

NVDA ミートアップ東京 2015.1 基調講演、翻訳、本家チケット、アプリ開発

Windows タブレットでNVDAを使う (2015.1 #2)

Webアクセシビリティの現状 (2015.1 #3)

タブレットタッチ操作

地域コミュニティの活性化とお互いの協力

2015年2月14日(土曜)に広島市内にて開催された オープンセミナー2015@広島 に参加してきました。

こちらは私は参加者として勉強してきたのですが、参加者も集まり、なによりも貴重な内容が多々あって非常に有益でした。

懇親会と同時開催だった勉強会「LT駆動開発11」にて「地域 PyCon mini を広島で」という提案のライトニングトークをしました。

NVDA 日本語チームの活動と並行して広島での地域コミュニティの方向性を模索してきましたが、まずはプログラミング言語 Python という大きな(とは言っても大きすぎない)枠組みで、広島とそのご近所の地域コミュニティ活性化を、というのが私の今年の目標になりそうです。

ぜひご理解、ご協力いただければ幸いです。

すごい広島89の覚え書き

すごい広島の毎週水曜日の活動にひさしぶりに参加してきました。

github でプルリクエストをするというルールのある勉強会(ミートアップ)です。

まだ完了していませんが、私の手順を記録しておきます。
(ふだんターミナルやコマンドプロンプトから git/github を使っているので、こういう操作は久しぶり)

下記は「ブラウザだけで作業が完結する手順」のはずです。

事前に Doorkeeper で参加登録をしていました:

http://great-h.doorkeeper.jp/events/20004

github の great-h/great-h.github.io の issues 画面:

https://github.com/great-h/great-h.github.io/issues

から右上の緑色のボタン New issue を押して、issue を作ります。

前例にならって「すごい広島 89 – 24motz NVDAの翻訳をする」のようにタイトルを入力します。
ちなみに私の場合 24motz は Twitter のアカウント名で nishimotz は github のアカウント名です。
説明も適当に書いておきます。

右側の「今日やること宣言」という赤いラベルを有効にします。
Milestone をその日の日付のマイルストーンに設定して、 “in progress” というラベルもつけておけばよいようです。
親切な人があっという間につけてくれましたが。。。

作った issue には通し番号がつけられます。
今回私の作ったものは 1507 になりました。

最後にプルリクエストを出すのですが、まずブランチを作っておきます。
開発でソースコードをいじるときにも、先にブランチを作ってから作業をするんですよ。。

本当は赤の他人はブランチを作る前にリポジトリそのものをフォークしておきます。
ただし「すごい広島」はフォークではなく参加者にブランチ作成権限を与える流儀になっているそうです。
「マージする前に管理者がブランチを直したいことがあるから」らしいです。

github のユーザ nishimotz は https://github.com/great-h/great-h.github.io の画面で、左上の「 branch: source 」というボタンを押すとブランチを作ることができます。

Switch branches/tags

と書かれていて、その下にブランチのリストが並んでいます。
上にあるテキストエディットは検索ボックスのようですが、よくみるとプレイスホルダーに

Find or create a branch…

と書かれています。ここに新しいブランチ名を書き込むと、いきなりブランチが作れてしまうわけです。

慣例に従って、issue 番号を入れて 1507-24motz ブランチを作りました。

このブログを更新したら、この記事のURL(固定リンク)が決まるので、実際に更新作業をしてプルリクエストを出せるわけです。

書いていて気づいたのですが、ここに全部(しかも画面キャプチャ入りで) すでにまとまっていた。。

そうですね、_posts の中の「その日の記事の .markdown ファイル」を edit して、commit して、メッセージに #issue番号 を入れてプルリクエストですね。。(泣)

追記:いま、この手順をやってみたら、 edit したときのコメント欄の下に
「このブランチにコミットするか、新しいブランチを作ってプルリクエストを出すか」
(Create a new branch for this commit and start a pull request.)
という選択肢が出てきました。
もしかするといまの github だと「ブランチを作る前に edit する」という手順はアリかも知れないです。。

追記2:プルリクエストを作ったら 1514 という番号がついた。

追記3(2月5日)1週間後にissueがクローズされた。

私が「すごい広島 89」でやったことをまとめます:

  1. NVDAの emoticons アドオンの紹介記事の日本語化
  2. NVDA Add-on 開発者ガイド 日本語版 の一部を更新

今後の予定ですが、ときどき「NVDAユーザ会広島」の人を水曜夜の コワーキングスペース MOVIN’ON にお誘いして、もくもく会の相乗りができないかと考えています。

2月7日の東京での NVDA ミートアップ東京 2015.1 で「アンカンファレンス」の運営を経験する予定なので、広島での活動に取り入れたいと思います。

今週末の2月1日にはボランティア団体 VIC のステップアップ講習会で NVDA の最近の状況、特に音声合成エンジン KCトーカー の紹介などをさせていただく予定です。

もうひとつだけ、私はただの参加予定者ですが、2015年2月14日に

「オープンセミナー2015@広島」(osh2015)

が開催されます。

テーマは「クラウド時代の構成管理入門」とのことで、いまホットな話題のひとつだと思うのですが、広島でこういう技術に興味のある(しかもバレンタインデーを勉強会に費やすことができる)人に「もっともっと参加を呼びかけたい」状況なんだそうです。

オープンセミナー2015@広島 参加申し込み

NVDA 日本語版の「更新チェック」を集計するのに Ansible を使っている、という話は LT駆動開発08 でしたことがありますが、「NVDA 以外の仕事」でも Ansible を使っており、こういう場で情報を得ないと、つい自己流になってしまうなあ、と思う日々です。

私がいまどういう仕事をやっているか、まだ詳しく書けないことも多いのですが、いつかは人を雇わなくてはいけない日が来ると思うので、こういう勉強会やイベントには、これからもなるべく参加したいと思っています。

追記3(1月30日): 1514のプルリクエストにTravis CI の結果がコメントとしてくっついてますね。markdown にエラーがないかどうかチェックする作業が自動化されているようです。素晴らしいね。。
こういう技術も「クラウド時代の構成管理」ですね。。

すごい合同勉強会 in 広島 2014

すごい合同勉強会 in 広島 2014 に参加してきました。

広島市立大学の学園祭の企画になっていたとのことで、会場に向かうエレベーターを降りるとお化け屋敷の受付、という刺激的な環境でした。

あいにくの雨でしたが、ライトニングトークのゆるい雰囲気と、プログラミング言語の本格的なトークの、バランスが取れたイベントだったと思います。

私のトークは「NVDA日本語版の思い出(仮)」で、(仮)を取りそびれて最後までこれがタイトルになってしまいましたが、オープンソースソフトウェアのコミュニティを作ること、続けることについて話したかったのでした。。

@nobkz さんのセッションで「勉強会の運営のために意見を抽象化する」という話があったのですが、お話したような事情もあり NVDAユーザ会広島 は活動を
「広島地域での NVDA と Python の勉強会」
に広げてみたいと考えています。

いままでも NVDA 日本語版の開発のために Python の勉強をしました。
自然言語処理、機械学習にも手を出したことがありました。
Python のエコシステムにはこういうツールや参考書がいろいろあります。

どの勉強会も同じだと思いますが、日程を決めて人を集めるのが難しいんですよね。。

最初は NVDA と Python の二兎を追うという前提で、集まっていただける人のやりたいことをすこしずつ整理していきたいと思います。

NVDAユーザ会広島には 招待制のメーリングリスト があるので、まずはお問い合わせいただければ幸いです。

追記(2014-11-03)コメントをいただいたので「勉強会の内容を絞っていくために」から「勉強会の運営のために」に修正しました。

ランチは広島市立大学から徒歩10分くらいの古民家カフェに(こっそり)行きました。