写真 青い空と雲と建物と木々の緑

nishimotzの日記

  • なぜ @24motz aka @nishimotz は #RubyKaigi で講演をするのか

    いよいよ開催が迫ってきた RubyKaigi 2017 (開催地:広島)で、オーガナイザーのひとりとして活動している「にしもつ」 @24motz aka @nishimotz です。
    What visually impaired programmers are thinking about Ruby? というトークもさせていただく予定です。
    2015年から Python の活動を広島でやっていて、やっと Python がブレイクしてきた今年、そっちの活動を保留して RubyKaigi のお世話をすることになったのですが、私のもともとのモチベーションが NVDA 日本語版の紹介、そして「アクセシビリティ」だったので、じゃあ RubyKaigi で自分がアクセシビリティ関連の貢献をすればよいのでは、と気持ちを切り替えたのが、上記のトーク提案の背景です。
    今年 PyCon JP 2017 ではスクリーンリーダー関係の発表や活動をしていません(聴講者として参加して楽しんできました)が、かわりに東京では NVDA ワールド 2017 を10月31日(火曜)に開催します。
    私がアクセシビリティの委員会活動やスクリーンリーダーのコミュニティでつながっている人の何人かは、音声合成による画面読み上げや、点字ディスプレイというデバイスを PC に接続して、プログラミングやインフラ管理などをやっておられます。
    その人たちに Ruby について質問してみたことをヒントに、私が Ruby のドキュメントやエディタなど主にツールのアクセシビリティを調べています。その結果を NVDAでの実演を交えて紹介します。
    今年の RubyKaigi サイトにはアクセシビリティのポリシーのページがあります。
    会場に託児所を用意していること、発表は録画して後日公開されること、など、いままで RubyKaigi が取り組んでいたことも「アクセシビリティ」の一環として位置づけられています。
    現在まで視覚や聴覚の障害をお持ちの方から「参加するので配慮をしてほしい」というご要望はありませんでしたが、もし早い段階でなにかご要望があれば、可能なことの手配をお手伝いしようと思って構えていたのは事実です。
    (すべての日本語セッションに英語同時通訳をつけるというレベルの予算と体制のイベントなので、やれば手話通訳も要約筆記もできるはず。今年なくても来年でも)
    いや、いまからだと遅いといっているわけではありません。いまからできることをベストエフォートで提案するので、障害をお持ちのかたの RubyKaigi 参加を今からでも(少なくともオーガナイザーの一人である私は)歓迎します。
    チケットの購入はこちらです。
    本当に障害の当事者の人に参加してもらうためには「その人たちが聞きたいと思うコンテンツ」を用意することも必要だと、私は過去の学会活動やイベント運営の経験から感じています。
    RubyKaigi は「Ruby プログラミングが気になる人のためのイベント」というよりも「Ruby 言語の開発者たちが集まって Ruby の未来を真剣に語り合う場」なので(たぶん)、敷居が高いのだと思いますが、そんな中で私が「Ruby の開発者にも障害の当事者にも興味がありそうな話」ということで提案したのが「視覚障害者は Ruby についてどう思ってるのか」という発表です。
    なんせ私が当事者の声を代弁するだけなので、ぜひ「本当はこう思ってる」という人にフロアにいてほしい、あるいは後からでも議論のきっかけになってほしいと思っています。
    実は最初は「プログラミング言語の文法の違いは、アクセシビリティに影響がある」「Ruby の文法はアクセシビリティ的に優れている」みたいな仮説を検証できるといいなあ、と思ったのですが、ちょっと考えたり調べたりして、やはり無謀な計画だと思いなおしました。
    そういう話は10年くらい前に、視覚障害の学生にプログラミングを教えている先生からちらっと聞いていました。
    いわく、メソッドチェーンでどんどん1行で書いていけるので、コーディングを教えやすいし、音声読み上げにも向いている、と。。
    この仮説の検証はいまは無謀だと思えてきたわけですが、たとえば Python と比べて Ruby の文法が「視覚障害者に書きやすいか?」と自問自答すると、はっきり言えるのは「インデント」でしょうか。単純な問題ではなさそうです。
    けっきょくは、何をやりたいのか、求められるアウトプットはどういう状態なのか、仕事なのか趣味なのか、どういう環境やツールなのか、本人のスキルはどうなのか、といった話になります。
    最後に広島のグルメ情報でも書ければいいんですが、あいにく私はグルメでないし人生の半分くらい広島県外にいたので、「るびま」のリンク集にお任せします。
    かわりに、視覚障害者のプログラミングについて雑談します。
    彼ら(主に男性)は、スクリプト言語やドメイン固有言語(DSL)が好きな人たちだと私は見ています。
    たとえば Hot Soup Processor (HSP)日本語プログラミング言語「プロデル」はスクリーンリーダー利用者にとても愛されています。
    また世界的に有名なスクリーンリーダー JAWS には JAWS スクリプトという言語があって、アクセシビリティに問題のある Windows アプリの不具合を補うためにエンドユーザーがスクリプトを書いて共有しあっています。(同じようなことを汎用プログラミング言語 Python でやれるようにしたというのが NVDA の特長の一つです)
    ニュースサイトをスクレイピングして簡単に音声読み上げできるようにする「視覚障害者専用アプリ」もいくつかあり、人気を博していますが、スクレイピングのためのマクロや正規表現をメーリングリストで共有する、という文化も根強く続いています。
    そんな人たちが Ruby に向き合うとどうなるのか。。できるだけわかりやすく話せるように頑張りたいと思います。お楽しみに。
    余談:もうすこし予習したい人には、ラックの外谷さんの記事「スクリーンリーダーの音声を聞いたことがありますか?」をご紹介しておきます。

  • Windows + Python + Conda

    昨日は第4回の「すごい広島 with Python」でした。
    前回の報告:

    Interface as Mimesis


    このときに py.exe による Windows 環境での Python の切り替えについて詳しく書かなかったので、このブログでその続きを書きます。
    昨日は「もくもく会」だったので、ディープラーニングの環境構築にとりかかりました。行ってみると「話したいので聞いてほしい」という参加者が多数いらっしゃって、楽しかったのですが、私の作業はあまり進まなかったです。。
    やってみたこと:Windows に Theano を(GPU対応なしで)インストールした。
    環境:Windows 10 Home (64bit)
    もともと入っている Python:Python 2.7 (32bit) と Python 3.6 (32bit)
    もともとできていたこと:
    Python 3.6 を入れるとついてくる py.exe を使って py -2 または py -3 で両者を切り替えることができた。
    今回 theano をインストールした手順:

    1. Miniconda Windows 64bit installer をデフォルトのオプションでインストール
    2. コマンドプロンプトで
      > conda install numpy scipy mkl
    3. つづいてコマンドプロンプトで
      > conda install theano

    theano の動作確認:

    C:\work>python
     Python 3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
     Type "help", "copyright", "credits" or "license" for more information.
     >>> import theano
     >>> from theano import tensor as T
     >>> x1 = T.scalar()
     >>> w1 = T.scalar()
     >>> w0 = T.scalar()
     >>> z1 = w1 * x1 + w0
     >>> net_input = theano.function(inputs=[w1, x1, w0], outputs=z1)
     >>> print('Net input: %.2f' % net_input(2.0, 1.0, 0.5))
     Net input: 2.50
     >>> import numpy as np
     >>> x = T.fmatrix(name='x')
     >>> x_sum = T.sum(x, axis=0)
     >>> calc_sum = theano.function(inputs=[x], outputs=x_sum)
     >>> ary = [[1, 2, 3], [1, 2, 3]]
     >>> print('Column sum:', calc_sum(ary))
     Column sum: [ 2. 4. 6.]
     >>> theano.config.floatX = 'float32'
     >>> ary = np.array([[1, 2, 3], [1, 2, 3]], dtype=theano.config.floatX)
     >>> print('Column sum:', calc_sum(ary))
     Column sum: [ 2. 4. 6.]

    この状態で python コマンドは今回インストールした Miniconda の Python になっています。
    この状態での Python 処理系の切り替えの確認:

    C:\work>py -3.6
    Python 3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    C:\work>py -3.6-32
    Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    C:\work>py -2
    Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.

    公式 Python は 32bit 版を入れて Anaconda 系 Python は 64bit 版を入れる、という使い分けが必要にはなりますが py.exe ですべての環境を切り替えられることを確認しました。
    なお Theano の動作確認は Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 第13章を引用しました。
     

  • 学習・発達支援員養成講座(広島)のお知らせ

    西本は NPO法人 日本インクルーシブ教育研究所 の理事として、発達障害への正しい理解の促進、支援方法の普及啓発のお手伝いをしています。
    この団体の主な活動は発達障害を持つ人や保護者の直接的なサポートではなく、そういう問題に関わっておられる専門家の育成や支援です。
    教師、特別支援教育のアシスタントや指導員の方々などが会員として、あるいは受講者として参加しておられます。
    IT技術者向けの勉強会やイベントと重なってあまり行事に参加できないのですが、ときどき講演会や講習会のお手伝いをすることがあり、現実の現場の厳しさ、そういう場で活躍しておられる専門家の知見や洞察の深さ、そして受講生の方のモチベーションの高さなど、驚くことが多いです。
    私は主に事務の効率化やツールのアドバイスをしたり、組織運営の方針について議論をさせてもらったりしています。
    チャットワークのNPO支援プログラムは私が提案したツールの一つで、すっかり定着して便利に活用されています。ありがたいプログラムだと思います。
    そんな日本インクルーシブ教育研究所ですが、現在、第3期の「学習・発達支援員養成講座」として、広島で「学習・発達支援員ライセンス」の取得を目指される受講者を募集しております。
    理事として日ごろあまり貢献できていないので、いまさらですが、ブログで告知を引用させていただきます:

    (お知らせ ここから)
    今年もNPO日本インクルーシブ教育研究所では、広島市内の小中学校へ専門性のある支援員を配置したいといった思いから、学習・発達支援員養成講座を開きます。
    この養成講座は東京都港区とNPOエッジ(ディスレクシア普及団体)が12年前に始めたもので、民間と行政が協働で専門性のある学習支援員を各学校に配置したところ、不登校がゼロになった、子どもの成績が上がった、子どもが自立して支援員が必要なくなった等数々の良い報告があります。
    また文科省のホームページにもこの制度の素晴しさが載っていますのでご覧ください↓
    http://www.mext.go.jp/a_menu/shotou/tokubetu/material/012/013.htm
    一刻も早く、今を生きる子ども達が適切なサポートを受けて大人になっていける学級づくりをしていけるよう、私達はその一助となりたいと思っています。
    第3期学習・発達支援員養成講座についてはこちらからご覧頂けます↓
    https://www.hikk.biz/seminar/lsa-3/
    この養成講座の説明会もございます↓
    https://www.hikk.biz/seminar/muryo-setsumeikai/
    この養成講座にはフォローアップ研修もあります↓
    https://www.hikk.biz/seminar/follow-up/
    また、学習・発達支援員ライセンス取得者には定期的に事例検討会に参加できるよう現在準備を進めています。
    発達障害のある子ども達が、周りからの無理解や不適切な対応により二次障害となり社会へ出ていけなくなるといった最悪の事態を防ぐためにも、どうか周知のご協力をよろしくお願いいたします。
    (お知らせ ここまで)