PyCon mini Hiroshima 2018 参加者・発表者募集中 #pyconhiro

PyCon mini Hiroshima 2018 2018年10月6日 土曜 すごい Python 広島で流行らせよう

2018年10月6日(土曜)に PyCon mini Hiroshima 2018 を開催します。

概要

PyCon mini Hiroshima 2018
すごいPython 広島で流行らせよう!
2018年10月6日(土曜)

基調講演
Pythonで遊ぼうコンピュータ将棋
芝 世弐(岡山県立大学情報工学部)
Pythonの10年と今、これから
佐藤治夫(株式会社ビープラウド)

会場
広島大学東千田未来創生センター
広島県広島市中区東千田町1-1-89

参加費
学生:無料
一般:1000円
事前の申し込みをお願いします)

講演者募集

Python に関するご講演を募集しております。

講演申込 Google フォーム をご利用ください。

またはメールでのお申し込みに関する説明を参照してください。

申込締切は8月29日(水曜)です。

西日本豪雨の影響

以下、現時点での個人的な見通しです。

  • 当日の会場への新幹線(JR広島駅)や広島空港からの交通アクセス:問題なし
  • 広島市中心部から西側(宮島など)の観光スポット:問題ありませんが、JR在来線の運行区間に変更があり、運行本数も少なめです。時間に余裕をもって行動するとよいと思います。
  • 広島市中心部から東側(呉、東広島、尾道など)へのアクセス:JR在来線が被災し、10月の時点ではまだ全線復旧できていない見込みです。バスや車での移動は運休、不通区間、渋滞に注意が必要です。
  • 西条酒まつり:開催されます。ですが JR 在来線で広島市内から移動できない可能性があります。酒蔵ツアーについては8月中旬にご案内する予定です。
  • 追記(8月16日)PyCon mini Hiroshima 2018 Sake-Matsuri Tour 募集中です!当日はJR在来線で広島市内から移動できる見込みです。

雑感

私自身は、豪雨から3週間以上が過ぎた現在も、自宅地域が避難勧告の対象になっています。川沿いの道路がいたるところで陥没して、愛犬と散歩をする道がごくわずかになってしまいました。それでも、この地域にも多くのボランティアが来てくださって、砂ぼこりを巻き上げていた道路が少しずつきれいになり、通勤などでの不便は残っているものの、日常を取り戻しつつあります。

こんな状況でしたが、7月22日に「PCNひろしま」のプログラミング教室を予定通りに開催して、改めて、自分の置かれた状況に配慮しながら、やってきたことをやり続けることの意味もあるような気がしました。

PyCon mini Hiroshima でも、広島で今年起きたことを踏まえた取り組みを、なにか扱えるのでは、と思っています。先週の水曜日に開催した「すごい広島 with Python」でも、位置情報を扱うライブラリやオープンデータなどの情報交換をしたところです。

「すごい広島 with Python」は1年以上毎月開催して、ここで Python を勉強しはじめた人が、東京で開催される PyCon JP のプロポーザルを出す(通ったかどうかはいずれ。。)という段階までたどり着きました。参加者としても今年も何人かが広島から PyCon JP に参加することになりそうです。

Python を広島で使い始めている人に、ちゃんと広島にコミュニティがあって、全国的なコミュニティとつながっている、ということを知っていただくために、もうしばらくこのイベントを続けたい、という気持ちで準備を進めています。

現在受付中の講演募集ですが、30分、15分に加えて、持ち時間5分のライトニングトーク(LT)も選択可能にしています。 Python に関するいろいろなアイディアやノウハウをお持ちの方は、お気軽にお申込みください。

よろしくお願いします。

追記

講演申込締切を8月29日(水曜)に変更しました。(8月15日)

アクセシビリティの祭典 2018 と NVDA チートシート

2018年5月17日(木曜)に神戸で開催される「アクセシビリティの祭典 2018」に、NVDA 日本語チームとして出展を行い、また「視覚障害を持つ方の最新事情」セッションに登壇します。

配布資料を準備していたのですが、もっと役に立つものを提供したいと思い、現在「NVDA Cheat Sheet」の制作をすすめています。

当日、会場でお披露目する予定で、それまで内容は公開しません。

基本的には視力のある人が NVDA の機能や操作体系をざっと把握できるような A4 サイズ1枚の資料です。
昨年のオープンソースカンファレンス広島で名刺サイズのカードを作って、ほんの少しだけ配布したのですが、どうやら A4 サイズなら、いろいろな説明が盛り込めそうです。

内容は、過去にまとめた 開発者のためのNVDA (2015) および 開発者のための NVDA (2017) の資料と、NVDA 日本語版ガイドブック で説明したことを踏まえて選びました。

目標は時代工房さんの JIS X 8341-3:2016, WCAG 2.0 早見表 なのですが、今回のイベントで配布しながら実演や説明に使ってみて、改良点を見つけて、すこしずつバージョンアップしていきたいと考えています。

セッションでは、18年前に「視覚障害者のためのキーボード練習ソフト」の開発を通じて知り合った 園 順一さんとひさしぶりにご一緒させていただきます。
お話をするのが今から楽しみです。どうぞよろしくお願いします。

シュアルタ

写真 犬の人形(こぎん差し) 小さなツリー ふたりの人の影

あけましておめでとうございます。

2017年12月に広島駅前のコワーキングスペースの会員になって、平日の昼間はオフィスで仕事をするようになりました。

同じタイミングで、過去に使ってきた「オラビー・ジャパン」という個人事業主の屋号を「シュアルタ」に改めました。

2018年から、妻の個人事業主としての活動だった kikurako を、シュアルタの事業のひとつとして行います。

シュアルタではこれから妻と、そして愛犬「アンナ」と協力して、新しい事業を行っていきます。

今年もよろしくお願いいたします。

オフィス(2017年12月より)
〒732-0828
広島県広島市南区京橋町1−7
アスティ広島京橋ビルディング1階
西本 卓也

(fabbit広島駅前)

NVDA 行く年くる年

この記事は Web Accessibility Advent Calender 2017 の10日目の記事です。

オープンソースの Windows 用スクリーンリーダー NVDA に関するこの1年の活動を振り返るポエムで乗り切ろうと思ったのですが、ゆうべ広島フロントエンド勉強会で喋ったら気が変わってしまいました。

11月11日 JAC Vol.1 の講演「アクセシビリティ検証ツールとしてのNVDA入門」での失敗をフォローします。

決済サイト試作の入力バリデーション画面例

アクセシブルな決済システムの試作

アクセシビリティで難しそう、めんどくさそう、スクリーンリーダーで実際に検証しないと不安なポイントはやっぱりセキュリティだろう。

試してみたくなったのがクレジット決済 API を使うサイトの開発だった。

11月11日に見せようとした試作サイトは、以下のような方針で開発した。

決済サービスの選択

  • テストモード、つまり、ダミーのカード情報を送信して実際にWebアプリのテストができること
  • カード情報を Web アプリが保存しなくてよい、できれば受け取る必要すらないこと(情報漏洩のリスクを回避)
  • Python から簡単に使えること(個人的な好みです)

実際に使った決済サービスの仕様

  • JavaScript ライブラリがあり、ブラウザが決済APIサーバと直接通信を行い、カードと紐付いたトークン情報だけが返ってくる
  • そのトークン情報を Web アプリが受け取って、実際の課金を行うことが(Python ライブラリから)できる

つまり、ブラウザの中で「ユーザーにカード情報を入力させて、決済サーバに送って、カードのトークンを受け取る」という処理を、画面遷移せずに完結させたい、ということになる。

これは、セキュリティのために「動的なコンテンツを作らざるを得ない」ということで、アクセシビリティの題材としてはよさそうだと思った。

11月11日の前に作っていたもの

コードの抜粋はこちら

環境は Google App Engine for Python + Flask

(1) ログインする前の画面

ログインしてください、という表示になり、ログインのリンクがある。
実際にログインで使っているのは Google アカウント認証。

これが使いたかったので GAE を選んだ。本人確認されたユーザーのメールアドレスを取得。Google のログイン画面はスクリーンリーダーでちゃんと使えるはず。

ログインする前とログインしたあとの画面は Jinja2 (Python のテンプレートエンジン)で分岐している。

(2) ログインした直後の画面

ログインすると最初の画面が入力フォームになっている。

上から順に、以下のものがある。

  • テキスト「カード情報を入力して「確認」を押してください」
  • 4個の入力フィールド:カード番号、有効期限(年)、有効期限(月)、CVC番号
  • 「確認」ボタン(有効状態)
  • 「購入」ボタン(無効状態)
  • 「キャンセル」ボタン(無効状態)

ただし、デモなので、入力フィールドには決済サービスのテスト用カード番号があらかじめ入れてある。

確認ボタンを押すと URL が遷移するのではなく、JavaScript の処理が実行されて、コンテンツが動的に変化する。

(3) カード情報が正しくない場合の「確認」結果

「カード番号が正しくありません」などが表示され、入力フィールドの修正と「確認」ボタンしか有効にならない。

何が正しくないかというメッセージはテキスト( aria-live=”assertive” 属性の div )として表示され、スクリーンリーダーで読み上げられる。

つまり動的コンテンツだがバリデーション結果をアクセシブルに提示できる。

(4) カード情報が受理された場合の「確認」結果

「カード情報が確認できました。「購入する」を押すと***円のお支払いが完了します。」

のように表示され、「購入」ボタンと「キャンセル」ボタンが有効になり、入力フィールドと「確認」ボタンが無効になる。

購入ボタンを押すとカードのトークンが submit されて URL が遷移する。Python アプリで決済 API をたたいて結果を取得、次のページに「購入完了」みたいな表示を出す。

「キャンセル」を押すと、入力フィールドの値がふたたび変更可能になる。

本番でやったドジなこと

確認ボタンを押して入力フィールドが無効になった状態で、「じゃあ今度は値をわざと変更して正しくない入力内容にしてみましょう」とか言いながら、無効になっている入力フィールドのテキストを書き換えようとしてうまくいかず、デモを中断してしまった。

そのあとで考えたこと

aria-live=”assertive” とか、フォーカスの制御とか、invalid とか、いろいろ盛り込んだのだが。。

そもそも「自分がうっかり間違えるような UI 設計がよくない」と考え直した。

最近作り直したもの

(1) ログインする前の画面

ログインしてください、という表示になり、ログインのリンクがある。

(2) ログインした直後の画面

ログインすると最初の画面が入力フォームになっている。

上から順に、以下のものがある。

  • テキストA「カード情報を入力して「確認」を押してください」
  • 4個の入力フィールド:カード番号、有効期限(年)、有効期限(月)、CVC番号
  • 「確認」ボタン(有効状態)

(3) カード情報が正しくない場合の「確認」結果

テキストA「カード番号が正しくありません」などが表示され、入力フィールドの修正と「確認」ボタンが使える状態のまま

(4) カード情報が受理された場合の「確認」結果

  • テキストB「カード情報が確認できました。「購入する」を押すと***円のお支払いが完了します。」
  • 「購入」ボタン
  • 「キャンセル」ボタン

その他のものは非表示になる。

「キャンセル」を押すと、テキストAと入力フィールドだけの表示に戻る。

振り返って思うこと

なんのことはない、これはひとつの HTML ファイルにダイアログAとダイアログBがあって、交互に表示・非表示になる、一種のモーダルである。

たぶん最初の「非表示・無効」だらけの画面を作っていたときには、「この操作を実際に行うと、次にどういう段階に進むのか」みたいな見通しを伝えたかった。
だから、あとから有効になるけどいま無効なものをたくさん作ってしまった。
その流れで「さっきは有効だったけどいまは無効になった」ものも、たくさん残してしまった。

だが、けっきょくのところ「ひとつひとつの段階で迷わせない」「無関係なものを見せない」ということのほうが大事だったと思われる。

カード情報が確認できたときに、もういちどカード番号を表示する、みたいなことは、本当はやった方がいいのか、やっぱり不要なのか。。

こまかいこと

今回のデモでは invalid の判定には2種類ある。

(1) HTML の required と pattern を使う処理
(2) 決済APIサーバーのエラーメッセージに基づく処理

後者の場合には、JavaScript のコールバックで

<div id="input_guide" class="alert alert-primary" role="status" aria-live="assertive"></div>
<div class="col-12">
  <label for="card_number">カード番号</label>
  <input type="text" id="card_number" class="form-control" aria-describedby="card_number_help" value="5555555555554444" required aria-required="true" pattern="[0-9]{13,16}" />
  <small id="card_number_help" class="form-text text-muted">半角数字 <span aria-hidden="true">省略できません</span></small>
</div>
if (response.error.code === 'invalid_number') {
  $('#card_number').attr('aria-invalid', true).focus();
  $('#input_guide').text('カード番号が正しくありません').addClass('alert-warning').removeClass('alert-success');
}

みたいなことをする(jQuery を使っている)。

JavaScript 2行目の最後の .focus() がなければライブリージョンの「カード番号が正しくありません」が読み上げられる。

一方で、この .focus() をつけてしまうと card_number 要素の読み上げしか聞くことができない。

NVDA 2018.1jp-beta-171206x + Firefox ESR 52.5.2 でスピーチビューアを使って確認すると:

ブラウズモード
カード番号が正しくありません 
カード番号  エディット  正しくない入力内容  必須  オートコンプリート  半角数字 省略できません
55555555555544 選択
フォーカスモード

つまり、ライブリージョンの読み上げの直後にフォーカス位置の読み上げイベントが発生して、直前の読み上げを止めてしまうのだ。

(「フォーカスモードとブラウズモードの切り替えを音で報告」はチェックなし。後述の追記2を参照のこと)

実は最初のバージョンはこれが気に入らなくて(だって live region のデモにならないから)フォーカスを移動しなかったのだが、考えてみるとライブリージョンを読むことよりもフォーカスをエラー箇所に移動してあげることのほうがずっと親切で、ユニバーサルな気がする。

さらに、フォーカスを読み上げるときに「正しくない入力内容」もちゃんと読み上げているのだ。

本当にスクリーンリーダーで検証するべき「アクセシビリティのディティール」というのはこういうことなんだろうな、と思っている。

ここから追記

追記:NVDA の live region の実装がおかしいのではないか、と言われそうな気もするので(そうかも知れないけど)ちゃんと制御できるケースも紹介しておく。

$('#card_number').attr('aria-invalid', true);
$('#get_token_btn').focus();
$('#input_guide').text('カード番号が正しくありません').addClass('alert-warning').removeClass('alert-success');

こんなふうにボタンにフォーカスを移動して、直後に live region の内容を更新すれば、「カード番号が正しくありません」をちゃんと聞くことができる。
(このテクニックは最初のバージョンで使っていた)

追記2:さらに調べたら、NVDA の「フォーカスの変化を追跡する自動フォーカスモード」をチェックなしにすると、エディットにフォーカスが移動したときに live region を最後まで読み上げて、それからフォーカスを読み上げるようになった。

ボタンとエディットで挙動が違うのだから、もしやと思ったら、やっぱりそういうことだったか。。

おことわり

勘のいい人は shop.nishimotz.net というサイトを見つけたかも知れませんが、このサイトは「本当に何かを販売して決済を行うサイト」に作り替える予定の場所です。

明日は tosssaurus さんの「社内じんわりアクセシビリティ普及活動報告」だそうです。お楽しみに。

MicroPython の雑誌記事を執筆した話

広島版IoT縛りの勉強会! IoTLT広島 Vol.7 で「MicroPython の雑誌記事を執筆した話」をしました。

2017年11月25日発売 CQ出版 Interface(インターフェース) 2018年1月号

「第4部 マイコンPython無線センシング実験室」


元ネタとして蓄積してきた情報はこちら。

発売されてすぐにブログを書こうと思ったのに、すっかり遅れてしまいました。

記事のフォローアップはスライドを見てください。編集部に送るのが遅くなってしまい、紙面で触れられてませんが、ダウンロードできるソースコードも公開されています。

技術の検証は一段落したので、集めた素材を使っていろいろ面白いものを作りたいと思っています。

JAC vol.1 & NVDAワールド 2017 & NVDA開発者会

もんどさんのブログを読んで、私も書くことにしました。

Japan Accessibility Conference

Japan Accessibility Conference vol.1
2017年11月11日(土曜)
会場:ヤフー株式会社 紀尾井タワー セミナールーム

にて「アクセシビリティ検証ツールとしてのNVDA入門」という講演をします。

2015年に「Web製作者のためのNVDA入門」というイベントの講師をしたのですが、今回はハンズオンでもなく、時間も限られているので、いちおう下記のような予定です。

視覚に障害があるユーザーがPCを使う上で不可欠なものがスクリーンリーダーです。
無料で利用できる Windows 用スクリーンリーダー NVDA をご紹介します。

  • スクリーンリーダーとはどのようなものなのか、
  • スクリーンリーダーで Web ブラウザをどう操作するのか、
  • アクセシビリティ検証ツールとして NVDA をどう使えばよいか

をご説明します。

この講演は5月ごろから打診をいただいていたので、このイベントにあわせて NVDA 2017.3jp に導入した新機能もありますし、お馴染みの FocusHighlight アドオンも(RubyKaigi 2017で実演に使いましたが)新しいバージョンをリリースしたいと思っています。

なので、11月11日に話を聞いてくださった人には、これまでよりもスムーズに「アクセシビリティ検証ツールとしてのNVDA」をお試しいただけると思います。

(おわかりのとおり WordPress を使っているので、私のセッションの裏番組も気になります。。)

NVDAワールド2017

一方で、前述のイベントがこの日程になることがわかっていたため、11月1日から3日まで開催されるサイトワールドの翌日ではなく前日に開催することにした

NVDAワールド2017
2017年10月31日(火曜)
会場:日本マイクロソフト
(東京都港区港南2-16-3 品川グランドセントラルタワー)

は参加申し込みの締め切り(10月23日)まであと2週間になりました。

こちらの私のセッションは「ビジネスツールとしてのNVDA」というテーマにしました。
前述のカンファレンスの発表と内容が重複しない、はずです。。

概要:2013年に NV Access が視覚障害者コミュニティの支援で PowerPoint 対応を実現して以来、NVDA は視覚に障害がある人の就労手段としてグローバルに支持されています。

本セッションではビジネスツールとしての NVDA の機能を紹介しつつ、最近の NV Access や開発コミュニティ、 NVDA 日本語チームの活動を報告します。

NVDA の Microsoft Office 対応や Windows 10 対応の最新情報を、この機会にまとめてお伝えしたいと思います。

NVDA開発者会

最後に、NVDAワールド2017開催日の午前に行う予定の「NVDA 開発者会」について補足します。

いま NVDA 本家の開発コミュニティではいろいろな新しい動きがあって、NVDA の開発に興味がある人に伝えるべきことはとても増えています。

2017.4 で Windows XP/Vista 対応を打ち切ることが決まり、新しい動きは本格化しました。

開発に使われている Visual Studio のバージョンを 2015 から 2017 に上げること、各種の依存パッケージを更新すること、そして NVDA を Python 2.7 から Python 3 に移行させる作業が、これから2019年ごろまでに行われます。

今回の開発者会では、まず Windows 環境で Python 2.7 と Python 3.6 を共存させる方法をご紹介します。
これから1年か2年くらいの間 NVDA に関わるために必要な知識だと思うからです。

それから、おそらく当日までに本家の移行が完了しているはずなので、Visual Studio 2017 Community を使う前提で NVDA (本家版および日本語版)のソースコードからの実行方法やビルド方法を紹介する予定です。

日本語に対応していないことが課題になっている eSpeak や libLouis など音声合成エンジンや点訳エンジンなどの現状、ソースコードからの実行やテストの方法、開発コミュニティの動向などの情報も、時間の制約はありますがお伝えしたいと思います。

点字ディスプレイなどふだん私が検証できない機材は、その場に持参いただければ、不具合の調査などができると思います。

開発者会には NVDAワールド 2017 の connpass 申し込みで「開発者枠」でお申し込みください。

#RubyKaigi 2017 終了

What visually impaired programmers are thinking about Ruby?

発表も終了し、オーガナイザーとしての3日間も終わりました。

参加したことさえなかった RubyKaigi のオーガナイザーを引き受けることになり、どうなることかと思いましたが、スピーカーもさせていただいて、素晴らしいチームの一員として働かせていただいたことに、満足そして感謝しています。

ウェブアクセシビリティの観点から Ruby のドキュメントツールについて指摘したので、具体的に何をどう直したらいいか、もうすこし考えてみます。それまでは私の中で RubyKaigi は終わらないような気がしています。

なぜ @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」でした。

前回の報告:

すごい広島 with Python &環境構築

このときに 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/
また、学習・発達支援員ライセンス取得者には定期的に事例検討会に参加できるよう現在準備を進めています。

発達障害のある子ども達が、周りからの無理解や不適切な対応により二次障害となり社会へ出ていけなくなるといった最悪の事態を防ぐためにも、どうか周知のご協力をよろしくお願いいたします。

(お知らせ ここまで)