タグ: python

  • こんにちは「こんにちはPython」

    ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython (すがや みつる 著)を、プログラミングの勉強を始めたいという高校生(男子)に勧めたところ、さっそく読んでいるとのことだったので、オンラインで感想を聞いて、いくつかアドバイスをしました。

    どこまで読みましたか?

    >第7章(テキストベースのゲーム)の終わりまで。

    なにかわからなかったこと、聞きたいことありますか?

    >”You Win” とか “hantei” とか “while” とか、いろんな記述が出てきたけど、何がどう違うのか?

    “You Win” みたいなのは、命令そのものではなく、例えば print という命令に与える値。

    hantei みたいなのは、変数につけられた名前。プログラムを作る人が自由につけることができる。でも、変数に自由に使えない名前もある。

    while みたいなのが、変数に自由に使えない名前。予約語といって、これはPythonの文法で決められている。この本の51ページには予約語の一覧も、Python で予約語の一覧を出す方法も書かれている。(入門書でこれに触れている本は貴重!)

    ところで予約語に似ているけどちょっと違うのが、たとえば乱数で使う random というキーワード。使うときには random.randint() のように出てくる。

    これは Python の予約語ではなくて、このプログラムの一番最初で import random という命令を使って、これから使うよという手続きをした場合だけ使える。

    Python に入っている(追加のインストールは必要ない)けれど、Python の文法ではない(予約語ではない)というもの(標準ライブラリ)は、random の他にもたくさんある。

    ところで、次に作ってみたいものを何か思いついた?

    >画像を出したり動かしたり。。

    それは第8章(Tkinterを使ったGUIゲーム)を読んでからのほうがいいですね。テキスト表示でできそうなことで何かやってみたいことは?

    >(作りたいものを答えてもらった)

    なるほど。たしかに作れそう。でも、そのためには、もうちょっと Python の機能を知ったほうがよさそうです。例えばトランプゲームを作りたいときに、この本の知識だけだと、カードの枚数=52種類の変数が必要になっちゃうし、その扱いも大変です。

    Python Boot Camp テキスト 4. Python のデータ型(コレクション編) の内容を理解するといいと思います。無料で読めるのでぜひ。

    この Python Boot Camp テキストでは、最初のほうで FizzBuzz の実習も出てきます。「こんにちは Python」も最初の題材は FizzBuzz でしたね。。それから、Python のインストールの方法もこの本と同じですね。

    Python Boot Camp は私も運営に関わったことがあり、このテキストは、日本の Python コミュニティの技術者たちが内容をチェックしながら公開しています。私は「こんにちは Python」に Python コミュニティへのリスペクトを感じました。

    他に質問はありますか?

    >作ったゲームを配信したり配布したりできますか?

    いろんなやり方があります。場合によっては他のプログラミング言語で作り直さないといけない場合があります。でもプログラミング入門ではなくなるので、次の段階で。

    >本格的にゲーム開発をしたかったら、この本を読んだら次に何を読めばいいですか?

    作りたいものが決まって、それがこんな風に作れる、とわかってきたら、その方法に近い本を探して学ぶ、という手があります。 Python で開発されて有償・無償で配布されているゲームもあるし、Python で本格的なゲーム開発という解説書もあります。

    そういえば去年 PyCon mini Hiroshima 2019 の基調講演で、「プログラミング言語の勉強にゲーム開発は適している」という ransui さんのトークがありました。録画が YouTube にあります。ちょっと難しいかも、だけど、歴史や技術の奥深い話に興味があれば見てみてください。

    もうひとつは、さっきの「コレクション」のように、プログラミング言語としての Python のいろいろな機能をもっと深く知る勉強も考えられます。そちらも、やりたいことを広げてくれる。

    でも、「作りたいもの」を決めて、必要なことに絞って勉強するほうがモチベーションが維持しやすそうですね。

    では今回はこのくらいで。実は nishimotz もこの ransui さんのお話を思い出して、ゲームを作ろうとしています。

    年齢を超えて Python でゲーム開発の勉強をする会を、これから定期的に Zoom でやれたらと思っています。

    次回、仲間が増えているかも知れないよ。よろしくね。。

    補足:次回以降は connpass の shuaruta グループでイベント告知をしたいと考えています。よろしければチェックしてみてください。

  • オープンセミナー2020@広島

    オープンセミナー2020@広島が昨日(2020年2月8日)開催されました。


    Togetter まとめ
    私も3年くらい前から実行委員の一人として運営に関わっていて、今回は副委員長を務めました。
    おかげさまで100人を超える(懇親会の参加者だけでも67人)多くの人にご参加いただき、盛況に終わりました。
    次回以降のスタッフ希望のご連絡は @24motz 宛でも結構ですので、お待ちしています。

    PyCon mini Hiroshima 2020

    私の会社(シュアルタ)は前回に続いてスポンサーとなりました。
    去年に続いてスポンサーセッションの時間を5分いただいたのですが、イベントのテーマ「エンジニアライフHacks」に沿った話をするには時間が短すぎました。
    そこで 過去にブログに書いた内容を「PyCon mini Hiroshima のウェブサイトとアクセシビリティ」として紹介しました。

    スライドの中でご紹介した重要な告知は
    「2020年10月10日(土曜)に PyCon mini Hiroshima 2020 をやります」
    です。詳細はこれからすこしずつ発表していきます。よろしくお願いします。

    「正しいことを」の話

    スクリーンリーダー NVDA のコミュニティ活動を踏まえてウェブ制作の配慮の話をしました。
    私の活動のモチベーションを「正しいことを躊躇なく行うのは、気持ちいい」と表現しています。
    「正しいことを躊躇なく」は、Python コミュニティの著名な人たちからヒントを得たキーワードです。
    「正しいことを行うことに喜びを感じている人たち」は、アクセシビリティのコミュニティで著名な人たちについての私の観察です。
    「エンジニアは正しくないことを行いたくたい」は、自分の感じていることでもあり、よく語られていることでもあります。
    こういったことを考えていたら、前述のようなトークになりました。短い時間で説明するのは難しかったですね。

    Hacks?

    各セッションは聞きながら響いたキーワードや感じたことをツイートしています。
    2020年2月8日 @24motz のTwiLog
    どなたもきちんと考え抜いて丁寧に「エンジニアの生き方・学び方」あるいは「ソフトウェア開発の最先端」を語っておられました。
    「働くこと」と「楽しむこと」の両立についても多く語られました。
    これは、前回の「学び方Hacks」のときからテーマ決定に参加している私の反省になるのですが、設定したテーマが「Hacks」という、ちょっと斜に構えたキーワードになっているのは、アンバランスだなあ、と思いました。
    学び方にも生き方にも「Hacks はない、まじめにやろう」という、当たり前のようなことを、去年と今年と2回にかけて、登壇者の皆さんから感じ続けています。

    座長&実行委員長

    昨夜の懇親会で挨拶しましたが、PyCon mini Hiroshima 2020 の座長も、オープンセミナー2021@広島の実行委員長も、どちらも「やります」ということになりました。


    この一年、いろいろご協力、ご支援をいただければ幸いです。よろしくお願いします。

    株式会社シュアルタ

    私が2011年に広島に戻って以来、基本的にフリーランスのような働き方でエンジニアとしてやってこれたのは、オープンセミナーや PyCon のようなコミュニティのイベントで、いろいろなことを学ばせてもらったおかげだと思っています。
    株式会社シュアルタは2018年2月9日(肉球の日)設立で、今日は会社の設立記念日でもあります。
    無事に第2期が終わり、今月から第3期として営業をしております。
    ウェブアプリ、モバイルアプリなどの受託開発、ソフトウェア開発のコンサルティングをしながら、スクリーンリーダー NVDA 日本語版の活動を行い、ペット事業の研究も続けています。
    シュアルタも引き続きよろしくお願いします。

  • NVDA 2019.3 の新機能

    このエントリーは Webアクセシビリティ Advent Calendar 2019 の3日目の記事になります。
    NVDA日本語チーム の西本です。ふだんは広島県広島市にいます。オープンソースのスクリーンリーダー NVDA の日本語対応に関わりながら、NVDA 日本語版のリリースを続けています。
    ウェブアクセシビリティ基盤委員会 WAIC WG2 にも参加しています。
    広島では Python のコミュニティ活動やイベント開催に関わっています。
    フリーランスの技術者として NVDA に関するコンサルティングや開発のお仕事をいただくこともあります。
    私の会社(シュアルタ) にご相談ください。

    NVDA相談会の開催報告

    本題に入る前に NVDA 日本語チームのブログ記事をご紹介します。
    2019年11月1日にサイトワールド2019で「NVDA相談会」を開催しました。
    NVDA 相談会 in サイトワールド2019 開催報告

    NVDA 2019.3 の新機能

    NVDA 2019.3 はまだリリースされていませんが NV Access のブログ で変更点が紹介されています。
    私も 翻訳 をしていて、単に Python のバージョンが変わるだけではなく「新機能も盛りだくさん」になってきたなあと感じています。
    ここでは Web アクセシビリティに関わる皆様に関係があることを中心にご紹介してみます。

    フォーカスハイライト

    2016年のアドベントカレンダー記事 など何回か紹介した「フォーカスハイライト」という NVDA アドオンですが、ついに NVDA 2019.3 で NVDA 本体の機能になります。
    この機能は「画面が見えにくい人」の支援技術であると同時に、NVDA の「ナビゲーターオブジェクト」や「ブラウズモード」がどう動くのか、どういう状態なのかを把握できるので、アクセシビリティ検証に役立つと思います。
    私の実装は大幅に書き直しされましたが、基本的に「私がやりたかったこと」を「私がやってきた方法」で実装してもらえました。
    さらに、NVDA 本体に入ることのメリットとして、NVDA に視覚的な拡張を行うアドオン(ビジョン拡張プロバイダー)の仕様が決められて、その枠組みで新しいフォーカスハイライトが実装されました。
    現状では、NVDA 2019.3 のフォーカスハイライトと、私のアドオンは、それぞれ以下のような利点があります。

    • 本体機能:ブラウズモードのカーソルをハイライトできる。Webブラウザで左右の矢印キーで1文字ずつ移動すると、どの文字を読んでいるかがわかる。
    • アドオン:ハイライトの色や太さのカスタマイズができる。NVDA+Alt+P でハイライトの表示/非表示を切り替えできる。過去のバージョンの NVDA でも利用できる。

    おそらく今後は NVDA 本体のフォーカスハイライトの改良に貢献したほうがよいと考えています。ご要望があればお知らせください。

    スクリーンカーテン

    さきほど紹介した「ビジョン拡張」のもうひとつの機能として「スクリーンカーテン」が追加されました。
    VoiceOver にもあるのでご存じかも知れませんが、簡単にいえば「画面を真っ黒にする」機能です。
    アクセシビリティ検証作業のために目をつぶって操作をしていた晴眼者の皆様にも、待望の機能かも知れませんね。
    (スクリーンカーテンを終了する方法をちゃんと練習してから試してください。)
    NVDA 2019.3 設定「ビジョン」カテゴリ

    WAI-ARIA など Web 標準への対応の強化

    NVDA の Enhanced Aria アドオン に相当する機能強化が NVDA 本体で行われました。
    例えば Issue 9485 として aria role group への対応を確認しました。
    報告されていた例をすこし手直しした下記の例をブラウザのロケーションバーに入力して
    data:text/html, <p><button>1</button></p><p role="group" aria-label="A"><button>2</button></p><p><button>3</button></p>

    1, 2, 3 という3つのボタンが上下に並んでいる
    最初は Tab でボタンに移動、続いて下矢印キーで操作すると

    • ボタン 1
    • A グループ ボタン 2
    • グループの外 ボタン 3

    のようになります。
    この「グループ」の報告は「書式とドキュメント情報」で有効・無効を切り替えられます。
    また「入力ジェスチャー」でカスタマイズすれば、1文字ナビゲーションで「グループ」単位の移動ができます。
    (デフォルトではキー操作が割り当てられていません)
    他には例えば Issue 9616 として role=combobox 対応の不具合が修正されています。
    この他に figure 要素や article 要素への対応も強化されています。

    コンソール対応の改善

    Web 関連ではありませんが、2019.3 ではコマンドプロンプトや WSL など、いわゆる「コンソール」への対応が改善されます。
    この作業の一部は、Google Summer of Code の支援で行われました。
    従来の NVDA ではコマンドプロンプトが日本語の文字を正しく処理できない場合がありましたが、新しい NVDA では改善していると思います。

    2019.3 リリースへの道のり

    NVDA の通常のリリース作業は、本家ベータ版のリリース、翻訳チームの作業期間の宣言(string freeze と呼ばれます)とその作業締切(通常は2週間後)、リリース候補版、通常はその1週間後に正式リリースとなります。
    今日すぐに本家ベータ版がリリースされたとしても、最短で3週間後に正式リリースとなります。
    あれ、NVDA 2019.3 は本当に2019年12月31日までにリリースされるの?
    みたいなハラハラドキドキも私たちと共有したいという皆様、まずは NVDA 日本語チームのメーリングリストへのご参加から、私たちの活動にご協力いただけると嬉しいです。
    詳しくは www.nvda.jp をご参照ください。