Python」を開催しています。4月からはじめて3ヶ月やってみて、定着してきたので、やっと自信をもって報告してみることにしました。Python」は、なにかやってみて知見を共有する、というところに力を入れていて、いまのところライトニングトーク形式での開催が続いています。作業環境の構築ではまった」という話を聞いたので、情報共有サイトで言い尽くされているのに、と思いながら、繰り返し喋ったことをもう一度ここで書いておきます。処理系に深く依存しています。アプリ開発に使ったり、逆に上書きしてしまうことは賢明ではありません。いちど読んで、その方法を理解することをお勧めします。向けの環境構築は「ソースからインストールしなさい」になっていて、不親切に見えるかも知れないのですが、実はデプロイ環境を作る手順として一番つぶしがきくというのが私の実感です。紐付いた環境で作業をするということです。環境への影響を心配する必要がありません。するのが安全と思います。系を安全に切り替えたりするときにも有効です(詳細は省略)。通す必要がない(はず)です。ふだんは私は個人的な技術メモは別のサイトにこっそり書いていますが、この件は、きっと同じようなことをいろんな人がしつこく書かないといけないのだろうと思って、めずらしくブログに技術ネタを書きました。実行委員会の西本です。ユーザ会広島などをやってきました。コミュニティについて喋らせてもらいました。開催レポートで詳しく紹介していただいています。体験会を提案しました。事前に見学をさせていただきました。会場は広島市西区楠木町のアドウィンテクノ塾です。プリンタなど、いろいろなことにそれぞれ取り組んでいらっしゃいました。毎週土曜日に欠かさず開催されているそうです。ものづくりの「もくもく会」だと思いました。MicroPython体験会ということで12月10日の「つくれば工房」にて「MicroPython体験会」を開催していただきました。つくれば工房のウェブサイトに報告を掲載していただいているので、自分用の記録をここにまとめます。年配の方からお子さん(お母さん同伴)まで。マイコン開発経験者もPython経験者もいらっしゃった。Windowsパソコンを持ってきたけどプログラミング未経験、というかたもいらっしゃった。基盤を持参された方もいた。機材によってはLED点滅の実験のためにLEDをGPIOポートにつないでいただく必要があった。ファームウェアの書き込みのためにPCとMicroUSBケーブルで接続していただいた。充電はできるけど通信はできないMicroUSBケーブルもあり、サポートに手間取った。インストールして書き込みをする手順だった。USBシリアルドライバなどを回覧してセットアップしていただくことになった。入れ直していただいた。説明したこと:nishimotzのサイトで紹介したLED1の点滅を、ターミナルから逐次入力でやってもらった。ように関数として「メモ帳」に書いてもらって、ペーストモードで貼り付けてもらった。明るくなるコードを自分で試していた。トラブルシューティング:ペーストモードで改行が余分に入る。TeraTermの改行設定を送受信ともにCRにしてもらう。WiFiを触ってもらうと面白いのだろうが、いろいろ難しそうだったので今回は説明を見送り。動かない仕様になった。割り込みは?:ユーザーボタンを押すとメソッドを実行する、といったコードは動作を確認している。起動すると自動的に実行するコード(main.py)をどうやって書き込むの?:WebREPLでアップロードするか、プログラムをファイルシステムに書き込むためのプログラムをターミナルで実行する。本格的に使えるの?:処理系を自分でビルドすれば、C言語拡張モジュールを組み込むことができる。CQ出版「インターフェース」2016年10月号に情報あり。私はいろいろ準備不足でしたが、ベテランのかたが気を利かせてサポートしてくださったおかげで、無事に体験会を行うことができました。メリットや面白さをなにか感じていただければと思います。体験会、いかがでしょうか。こんどやるときはもっと上手にやれると思うので、ご連絡ください。開催報告記事は準備中ですが、まず私の発表を紹介しておきます。移植版」などに言及されていました。開発者がもともとそういう分野の出身なのだそうです。思い出せなくてすみませんでした。ついては、実行時にバイトコードではなくCPUのネイティブ命令を生成する機能など、性能を上げる処理がいろいろ実現されています。2016年11月12日このブログ記事では、今回の発表をどのように準備したかを簡単に振り返っておきます。書き込み、動作確認をしました。手頃なセンサーやデバイスをいろいろESP8266の入出力につないでMicroPythonで動かしてみました。BOOKS)」で紹介されていて、いずれ遊ぼうと思って入手していました。付属していたものをそのまま拝借しました。モデルチェンジしているようなので、現在購入できるモデルにブザーがついているかどうかはわかりません。超音波センサーHC-SR04は5月にソラコムのハンズオンをやった(IoTLT広島で紹介済み)ときのパーツです。Oneからは5Vと3.3Vの両方の電源をとることができます。入力側は抵抗で分圧しています。検索すると見つかるので、人気のあるパーツを選ぶと便利ですね。手頃なパーツがなかったので実験しませんでした。つないだのは小型のディスプレイ(OLED)です。組み込んでビルドし直していますが、MicroPythonのソースに入っているドライバーファイルをWebREPLでアップロードすればそのまま動きました。メモリを節約したかったら組み込んでビルドしたほうがいいと思います。書籍や記事でよく出てくるパーツだったので買っておいたのでした。表示する、みたいな「しょうもない」使い方しかしていません。ポート番号を選びました。値を読むことができますが、ボードをケースに入れてしまったせいで、細い棒のようなもので突かないと押せません。光センサーと超音波距離センサーをスイッチの代わりにするか、ということで、全体を「光線銃ゲーム」に仕立てることに決めました。変換で使う抵抗の値を選び、超音波センサーは「距離測定を3回実行して80センチ未満が1回以上あったかどうか」を判定することで誤判定をなるべく回避するように実装しました。得られるランダムなバイト列を使いました。圧電ブザーを並列につなぎ、メロディを流すのに使いました。性能が足りないのか精度が足りないのか、高い音は綺麗に出ません。音が出ているときはLEDも光ります。して信号が0になるようにしています。ゲームそのものの実装とデバッグは本番直前の2〜3日でやりましたが、よく考えると(電子工作やマイコンに親しんでいた子供時代を含めて)人に見せるために電子工作やミニゲームを開発したのはこれが初めてだなあ、と思いました。私が子供のころの電子工作はハンダ付けで組み立てるのが普通で、ブロックを組み合わせるような電子工作実験回路を羨ましく思ったものでした。いま、こういう回路がブレッドボードで簡単に組み立てできて、入出力デバイスもモジュール化されて、マイコンとデジタルで繋がって、しかもPythonで対話的に開発、実行できる。いい時代になったんだな、と素直に思った、そんなこの数日間でした。教材が充実してくれば、子どもの遊びやプログラミングの教育に使えるのではないでしょうか。如法会2の報告を書いていただいたのですが、過大に評価していただいたようなので言い訳を書きます。私のトークはこういう内容でした。Pythonで統計や機械学習という記事、文献、書籍がこの1年くらい日本語でもどんどん出版されています。本当に同じ言語仕様なんだろうか」と疑問に感じてきました。いう言語をどのように拡張しているのか、という観点から資料を探していたら見つけたのが神嶌さんの「機械学習とPythonとの出会い」でした。無料で公開されている文献なら紹介しやすいし、単純ベイズだけを扱っているので、やりたいことはわかりやすい。通して読んでみたのですが、さて勉強会で紹介するとしたら「単純ベイズ」のところだけが難しく感じられるだろうなあ。思って準備したのが「『機械学習とPythonとの出会い』との出会い」でした。このテキストを説明しようとして、別の文献をいろいろ読むことになったので、私自身も勉強のきっかけになりました。スライドのように使う方法もあわせて勉強させてもらいました。1990年代の音声認識技術からパターン認識の分野に関わったので、ひとつのアプリケーションで有用な技術がどう他の対象に応用できるか、といった発想で物事を考えることはあいかわらず多く、そういうことが(データさえあれば)すぐに形にできる時代になったのはすごいことだなあと思いつつ、一見時代遅れのパターン認識手法をどこかでしゃべるのも、なにか新しいことに役立つかも、と思ったりもします。オマケのように喋ったのが「2つのPython」というキーワードでした。思われるかも知れませんが、もうその話は終わってたんだな、ということを東京で納得してきました。温度差があるということを薄々感じ始めています。コミュニティが分断されないためには多様性が尊重されるカンファレンスの場が必要なのだ、ということも強く感じました。(11月12日開催)でこの続きが聞きたいと書いておられましたが、取っておこうと思ったことを如法会で喋ってしまい、大したことでもなかったな、と思えてしまったので、私はたぶん別の話を(時間があれば)すると思います。実は講演プロポーザルの締切を10月5日まで延長したので、まだ講演の提案をお待ちしているところです。最後はまたイベントの宣伝になってしまってすみません。開発とコミュニティ活動」というポスター発表をしました。多くの人に見ていただけたようです。長い時間をかけてこちらの話に付き合ってくださったかたも多かったです。アドオンを開発するチュートリアルなどを行いました。メンバー4人で楽しくハッカソン的な時間を過ごしました。NVDA日本語チームは2013年からユーザーを対象にしたイベントを行ってきましたが、今年、方針を変更してこういう技術者向けイベントに参加しました。結果として、より多くの人にNVDAを知ってもらったり、コミュニティのメンバーを広げたりする手段になったと感じています。「多様性」がキーノートや講演でも取り上げられました。そのような中で、アクセシビリティの話が、多様性についての視野を広げるお役に立てていたらうれしいです。参加を通じて得た知識、気づいたことなどは、また改めて書いたり喋ったりしたいと思います。誰にでも参加して楽しんでいただけるイベント」を目指しています。発表のプロポーザルを9月30日まで募集しています。機械学習をテーマにLTをしようと思っています。こちらもよろしくお願いします。開催日は2016年11月12日(土曜)、会場は広島市立大学サテライトキャンパス(広島市役所のすぐ前)です。サイトでの参加募集(および講演の申込受付)を開始します。基調講演は石本敦夫さん「Pythonの肩にのる」でした。一人前のプログラマになるための勉強は果てしなく続く。なにかひとつの技術やプロダクトに深く関わることが重要。世界はその理想的な入口のひとつ。そんなことをご自身の20年の経験を踏まえて語っていただきました。技術者やコミュニティの素晴らしいパワーに触れる機会を得てきた私には、自分の気持ちととても重なった内容でした。第2回となる今年は「広島から発信しよう」を目指しています。技術者にどんなチャンスがあり得るのか」といった話題を持ち寄って、なにかを生み出したいと思います。メディア工学研究室」の関係者にご協力をお願いして、「広島とPython」の接点を探ります。セッションを共同開催します。勉強した方がいいのかな?」と思っている人に刺激を与えるようなお話をお願いしています。どんな内容になるのか、私もまだわかりませんが楽しみにしています。コミュニティでは、初学者向けの勉強会(BootCamp)など新しい取り組みが各地で始まっています。基盤にしたビッグデータ、機械学習、インフラ管理など、いろいろなツールのコミュニティも広がりつつあります。コミュニティ活動のきっかけにと願いつつ、まずはご参加のご案内をさせていただきます。講演テーマ募集は9月30日を締切とさせていただく予定です。参加申込とあわせて、お気軽にご提案いただければ幸いです。いう話を2月14日にしゃべってから、いろいろな方にご相談して、ご協力いただいています。開催日:2015年11月22日(日曜)会場:サテライトキャンパスひろしま私は実行委員長を務めることになりました。このイベントについての詳細はいずれまたお知らせします。行動規範に始まり、整備されたマニュアルやツールなど、イベントの運営についていろいろ学ぶことがある、という話をしました。以下はLT駆動でしゃべらなかったですが、9月の東京でのイベントのお知らせの続報。東京」の参加申し込みの受付を開始しています。翌日も東京ですが、9月13日(日曜)『Web制作者のためのNVDA入門』というイベントで講師を担当します。事前に呼びかけてみたら、NVDAユーザ会広島の関係者が、私を含めて3人集まりました。日本語版の点訳エンジンに関する下記の検討でした。日本語版に含まれている日本語点訳エンジンにはテストコードが用意されており、なにか修正をしたときに、いままでうまくいっていた点訳の事例を壊さないように作業をしています。テスト駆動開発の理念を尊重して作業しています。いわゆる「デグレード」を避けるべき理由はいろいろあるでしょうが、不具合が増えてしまうと、それを嫌って「古いバージョンをわざわざ使う人」が増えてしまいます。本家版はそのようなことがないように努力しているのがわかるので、日本語版もそうしたいと思います。私がこの日にやった作業は以下のような感じでした。本当はエラーが出ているのでコミットするべきではないですが、作業手順の説明とバックアップのためにコミットされました。帰宅して数日のうちにもうひとつのコミットを行い、この時点でエラーの数は0に戻りました。いう名前で管理されています。して参照されています。ソースだけで点訳エンジンの開発と単体テストが可能になっています。修正の中身をすこし詳しく説明しておきます。日本語点訳において(日)(火)などの曜日表記が、読み付与が間違っているためにどちらも「ヒ」になっていて、区別がつかない。このような事例だけでも個別対応をして修正できないか、というのがいただいた要望でした。一般的には「日」や「火」という文字が出てくるたびにすべてを「ニチ」「カ」のように変換してしまうわけにはいかず、本来は文脈に応じた処理を行う必要があります。文脈に応じた処理をしないと、たぶん既存のテストケースのどこかが壊れてしまうでしょう。辞書登録に加えて形態素解析結果の後処理で正規化(形態素の分割)を行って、なんとかつじつまを合わせています。読み上げで「(日)」「(火)」は「ヒ」「ヒ」のままになっています。カッコトジ」のような文字列になってしまいます。辞書に追加しても、点訳エンジンに対してしか効果はありません。以上、やった作業の簡単な報告でした。日本語チームのメーリングリストにおいて、日本語テキスト解析に関する開発には多くのひとが興味をお持ちのようなので、この部分に特化した開発をしていただくために、ソース、ドキュメント、ツールなどを整理したいと思っています。複雑な作業であることにはかわりないので「誰でも開発に参加できるようになる」と期待されるとつらいですが。まとめる作業を進めているところです。コミットすると点訳エンジンのテストを自動実行する、いわゆる「継続的インテグレーション」などもやりたいと思っています。主催イベントと参加イベントの2件のご報告です。日本語チームによる初めてのミートアップを開催しました。私は最初に「2015年のNVDAとWindows環境」という講演をしました。限らずコンピューターやインターネットに関する技術の変化が速くなっています。ユーザーに対する貢献に繋がる活動を心がけたいと思います。Nishimoto私たちが確保した時間の大半は「アンカンファレンス」と呼ばれる形式で進められ、その場で決まったテーマで3個ないし4個のグループに分かれて議論したり作業したりしました。議論の一部は以下にて報告されています。こちらは私は参加者として勉強してきたのですが、参加者も集まり、なによりも貴重な内容が多々あって非常に有益でした。広島で」という提案のライトニングトークをしました。いう大きな(とは言っても大きすぎない)枠組みで、広島とそのご近所の地域コミュニティ活性化を、というのが私の今年の目標になりそうです。ご理解、ご協力いただければ幸いです。2015年1月29日すごい広島の毎週水曜日の活動にひさしぶりに参加してきました。プルリクエストをするというルールのある勉強会(ミートアップ)です。完了していませんが、私の手順を記録しておきます。使っているので、こういう操作は久しぶり)下記は「ブラウザだけで作業が完結する手順」のはずです。NVDAの翻訳をする」のようにタイトルを入力します。説明も適当に書いておきます。右側の「今日やること宣言」という赤いラベルを有効にします。いうラベルもつけておけばよいようです。親切な人があっという間につけてくれましたが。通し番号がつけられます。最後にプルリクエストを出すのですが、まずブランチを作っておきます。開発でソースコードをいじるときにも、先にブランチを作ってから作業をするんですよ。本当は赤の他人はブランチを作る前にリポジトリそのものをフォークしておきます。「すごい広島」はフォークではなく参加者にブランチ作成権限を与える流儀になっているそうです。「マージする前に管理者がブランチを直したいことがあるから」らしいです。」というボタンを押すとブランチを作ることができます。branches/tagsと書かれていて、その下にブランチのリストが並んでいます。branch...と書かれています。ここに新しいブランチ名を書き込むと、いきなりブランチが作れてしまうわけです。ブランチを作りました。このブログを更新したら、この記事のURL(固定リンク)が決まるので、実際に更新作業をしてプルリクエストを出せるわけです。入れてプルリクエストですね。request.)という選択肢が出てきました。する」という手順はアリかも知れないです。追記3(2月5日)1週間後にissueがクローズされた。お誘いして、もくもく会の相乗りができないかと考えています。「アンカンファレンス」の運営を経験する予定なので、広島での活動に取り入れたいと思います。紹介などをさせていただく予定です。ひとつだけ、私はただの参加予定者ですが、2015年2月14日に「オープンセミナー2015@広島」(osh2015)が開催されます。テーマは「クラウド時代の構成管理入門」とのことで、いまホットな話題のひとつだと思うのですが、広島でこういう技術に興味のある(しかもバレンタインデーを勉強会に費やすことができる)人に「もっともっと参加を呼びかけたい」状況なんだそうです。使っており、こういう場で情報を得ないと、つい自己流になってしまうなあ、と思う日々です。私がいまどういう仕事をやっているか、まだ詳しく書けないことも多いのですが、いつかは人を雇わなくてはいけない日が来ると思うので、こういう勉強会やイベントには、これからもなるべく参加したいと思っています。結果がコメントとしてくっついてますね。エラーがないかどうかチェックする作業が自動化されているようです。いう技術も「クラウド時代の構成管理」ですね。