タグ: python

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

    すごい合同勉強会 in 広島 2014 に参加してきました。
    広島市立大学の学園祭の企画になっていたとのことで、会場に向かうエレベーターを降りるとお化け屋敷の受付、という刺激的な環境でした。
    あいにくの雨でしたが、ライトニングトークのゆるい雰囲気と、プログラミング言語の本格的なトークの、バランスが取れたイベントだったと思います。

    私のトークは「NVDA日本語版の思い出(仮)」で、(仮)を取りそびれて最後までこれがタイトルになってしまいましたが、オープンソースソフトウェアのコミュニティを作ること、続けることについて話したかったのでした。。
    @nobkz さんのセッションで「勉強会の運営のために意見を抽象化する」という話があったのですが、お話したような事情もあり NVDAユーザ会広島 は活動を
    「広島地域での NVDA と Python の勉強会」
    に広げてみたいと考えています。
    いままでも NVDA 日本語版の開発のために Python の勉強をしました。
    自然言語処理、機械学習にも手を出したことがありました。
    Python のエコシステムにはこういうツールや参考書がいろいろあります。
    どの勉強会も同じだと思いますが、日程を決めて人を集めるのが難しいんですよね。。
    最初は NVDA と Python の二兎を追うという前提で、集まっていただける人のやりたいことをすこしずつ整理していきたいと思います。
    NVDAユーザ会広島には 招待制のメーリングリスト があるので、まずはお問い合わせいただければ幸いです。
    追記(2014-11-03)コメントをいただいたので「勉強会の内容を絞っていくために」から「勉強会の運営のために」に修正しました。
    ランチは広島市立大学から徒歩10分くらいの古民家カフェに(こっそり)行きました。

  • Python の Yield

    LT駆動開発03という勉強会に参加して、「PythonのYieldをかじってみた」という発表をしました。

    もともとやろうとした「状態遷移モデルをすっきり書く」という試行錯誤の例はこちらにあります。
    やってみて何かもやもやしていたのですが、やっと気づいたのは「状態を切り替える処理ではないけど、状態に依存する処理」をどこに書くか、だったんですね。。
    気づいたので何か方法がありそうな気がしてきました。
    Python と同じようなアプローチで近々 JavaScript に Yield が入るらしいです。。
    広島市内はフラワーフェスティバルというイベントでにぎわっていて、広島駅付近はプロ野球の観戦でにぎわっているのに、天気のいい日中に屋内で勉強会でした。
    IT技術者も勉強会だけでなく平和大通りをパレードするようなイベントをやったらいいのに。。
    と書いたら即座につっこまれました。。
    とはいえ、若い人も含めてたくさん参加者がいて、みんないろいろ面白いことしてるなあ、という感じでよかったです。
    広島ではまだまだ Python という言語そのものがマイナーなので、今後も地道に Python の発表をしていこうと思います。

  • すごい広島 #4 で Twitter API の勉強

    すごい広島とは 広島のエンジニアやウェブデザイナーが毎週集まって、 もくもくしたり Hackしたり 読書したり する場所です。
    ということで、今週は第4回でした。
    NVDA の作業をしようかと思ったのですが、たまたま Twitter API 1.0 が今日終了したということで、あちこちでソフトやサービスが動かなくなったという話を聞き、久しぶりに Twitter API の勉強をしました。
    よく考えたら、Twitter API はなんどか使ったことがあるのでした。最初に勉強したのは Twitter4r という Ruby のライブラリでした。。
    まずは Apigee で Twitter API 1.1 を叩いてみます。OAuth 認証もやってくれて、JSON で情報が返ってきます。簡単ですね。。簡単すぎてつまらない。。
    The Qube というスクリーンリーダー対応の Twitter クライアントは Python で書かれていて Tweepy というライブラリに依存しているという話。
    なにかライブラリを試してみようか、ということで、調べたら Tweepy の他に Python Twitter というものが見つかりました。
    せっかくなので使ってみました
    が、タイムラインが取れて、ツイートができることは確認できたものの、GetFollowers などを使うと

    twitter.TwitterError: [{u’message’: u’Rate limit exceeded’, u’code’: 88}]

    になってしまい、うまくいかず。。
    そもそも Twitter で何をしたいのか深く考えてなかったので、久しぶりに音声対話アプリを書いてみました。
    書いたのはこんなコードです。
    Windows 8 でこのプログラムを起動して、「今日はWindowsで音声認識を使うプログラムを作りました」「コンピューターいまのをツイートして」といえば、Windows 内蔵の日本語音声認識と日本語音声合成で、下記のようにツイートができました。


    「コンピューターツイッターを読んで」といえばタイムラインを読んでくれます。
    Python でこういうライブラリを使うと HTTP も JSON も文字コード変換もほとんどお任せでいいから便利ですね。。
    静かな「もくもく作業の場」でひとりコンピューターに向かってしゃべり続けてしまい、すみませんでした。今度から突発的に音声認識アプリが書きたくなったときに備えて、常にヘッドセットを持参しようと思います。。
    最近は Mac OS X や Chrome ブラウザにも音声認識機能がついてたりしますが、Windows 8 はクラウドでなくコンピューターの中で音声認識と音声合成をしています。でも作ったものが Twitter アプリだから、やっぱりネットワークにつながってなくてはならないわけで、違いをアピールしにくいです。。
    今日は使いませんでしたが dragonfly – Python-based speech recognition framework – Google Project Hosting は SAPI と Dragon の音声認識APIラッパーらしいです。アプリケーションごとの音声コマンドのライブラリが充実している印象ですが、フレームワークがここまでやるとローカライズが大変かも。。
    ところで、今週土曜日にはNVDA広島勉強会を行います。よろしくお願いします。
    追記(6月14日)
    Twitter クライアントの Qube は無事に API 1.1 対応したそうです: