タグ: python

  • ふりかえり 2020年12月

    2020年8月ごろから現在までの活動と、今後の予定をまとめます。年賀状に書くような近況報告だと思ってお読みいただければ幸いです。

    2020年8月

    すごい広島 with Python [41] で Alexa スキル開発の話をしました。

    PyCon JP 2020 (オンライン開催)で「広島における地域Pythonコミュニティの立ち上げ方と続け方」という登壇をしました。遅ればせながら私もオンライン飲み会を体験して、これはこれで面白いもんだな、とちょっと思えるようになりました。

    ひさしぶりの「PCN ひろしま」会場での開催でした。

    2020年9月

    はんなりPython(オンライン開催)で tkinter の話をしました。

    オープンソースカンファレンス Online/Hiroshima に参加しました。PyCon mini Hiroshima を露骨に告知するようなミーティング枠をいただきましたが、いろいろ質問やコメントもいただけたりして、楽しかったです。

    PCNひろしま、9月も何とか開催。

    terapyon podcast に(2回目の)出演。

    すごい広島 with Python を開催。

    2020年10月

    10月10日に PyCon mini Hiroshima 2020 オンラインを開催しました。私が言い出して実現させていただいた「ラジオ番組っぽいオンラインイベント」でしたが、多くの人に楽しんでいただけたようです。まだ録画を公開できていませんね。。この年末年始に作業できればいいのですが。

    基調講演は寺田学さんに「PyCon JP が生まれて10年、コミュニティのつながりとPython 〜PyCon JP誕生からコミュニティの重要性・多様化〜」というお話をしていただきました。

    オンラインでしかイベントができない、という状況もまた、コミュニティについて深く考えるよい機会になりました。けっきょく「毎月のように、カジュアルな活動を、をコツコツ積み重ねること」が大事だと気づきました。

    10月もPCNひろしま、開催。

    すごい広島 with Python を開催。

    2020年11月

    「NVDA日本語チーム・ラジオ」を開始しました。これは「NVDA日本語チーム」のコアメンバーが Zoom + YouTube Live でラジオ番組のように「スクリーンリーダーNVDA」の情報をお伝えするオンラインイベントです。これを毎月定期的にやっていくことになりました。お便りを読んで、質問に答えたり、ご意見を伺ったりしていきます。YouTube チャンネルで録画(録音)を公開しています。

    すごい広島 with Python も開催。

    PCNひろしま、開催されたのですが、私は私用で欠席でした。

    2020年12月

    NVDA日本語チーム・ラジオ 第2回も開催

    アクセシビリティ・サポーテッド(AS)テスト もくもく会。これは私が参加しているウェブアクセシビリティ基盤委員会(WAIC)のオンラインイベントでした。いわゆる「AS情報」を、2020年4月に出しましたが、これは私が2015年からワーキンググループに参加して以来、初めてのアウトプットでした。今後、なるべく頻繁にリリースできることを目指して、活動を続けています。

    PCNひろしま、今月は広島における新型コロナウイルス感染拡大を受けて、オンラインで開催されました。経験者枠(参加者が機材をご自分で用意する枠)だけだったので、参加者ごとにブレイクアウトルームに分かれて、個別にサポートする、といった進め方になりました。ウェブで公開されている教材・コンテンツを活用させていただいたことに感謝しつつ、「けっこうやれる」という感触が得られました。

    VIC(広島市視覚障害者情報支援センター)20周年記念事業「フォーラム2020 ICTで視覚障害者の未来を拓く」に、スタッフの立場で参加しました。新型コロナ感染拡大で広島市の施設が閉鎖されようとしているタイミングでした。Zoom ウェビナーでは全国から多くの方に参加していただきました。現在も記録をまとめる作業などに携わっています。

    これから、そして2021年

    明日、今年最後の「すごい広島 with Python」です。今回は何か喋れるかな。。

    「オープンセミナー2021広島」の実行委員長を拝命しています。2021年5月またはそれ以降に延期するとは決めましたが、まだキックオフもしていません。さすがにそろそろしないと。。興味があればお気軽にご連絡ください。

    こんな状況で1年を終えようとしていますが、私は2011年からずっとテレワークで生き延びてきたので、ある意味「いままでと同じように仕事をさせていただいた一年」でした。

    オープンソース開発や技術カンファレンスの運営で経験したメソッドやツールは、オンラインでの技術チームのマネジメントに役立ちました。時間の余裕がなくて仕事が滞りがちですが、新しい仕事のお話もときどきいただいています。

    犬と猫、どっちも飼っていると。。

    前回のブログでドッグトレーナーさんのことを書きましたが、4月下旬から9月上旬まで「カジタニドッグスクール」さんに来ていただいて、主に「過剰に吠える(いわゆる無駄吠え)」という問題についてご指導いただきました。

    教えていただいたトレーニング(遊び方、しつけ方)は、いまも(なるべく毎日という気持ちで)コツコツと続けています。

    どのようなことをやって、何がわかるようになって、どう効果があったのか、いずれ書きたいと思っています。

    そして「人々が家族として愛玩動物と向き合うこと」に関わるアウトプットを、来年はもっと頑張りたいと思っています。

  • ふりかえり 2020年夏

    2020年3月ごろから現在までの活動と、今後の予定をまとめます。暑中お見舞い、残暑お見舞いに書くような近況報告だと思ってお読みいただければ幸いです。

    2020年3月

    ためま株式会社(ためまっぷプロジェクト)に参加。現在も技術チームのお手伝いをしています。並行して自分の会社の活動も続けています。

    「すごい広島 with Python」で Flask と DynamoDB という話をしました。主に Flask でフォームを使う方法の紹介でした。

    NVDA日本語チームとして「いまこそ NVDA で始める Windows」というイベントをオンライン開催しました。

    2020年4月

    ポッドキャスト terapyon channel #11 にゲスト出演して PyCon mini Hiroshima や NVDA 日本語チームの活動についてお話しました。

    「すごい広島 with Python」で3月にしゃべり切れなかった DynamoDB (AWS)の話をしました。

    2020年4月

    ドッグトレーナーさんに自宅に来ていただいて、犬のしつけを教えてもらう、ということを始めました。1か月に3回か4回くらいのペースでいままで続けてきました。現在も回数は減らしていますが、勉強を続けています。許可をいただいて、毎回、ボイスレコーダーで録音して、あとで書き起こして復習をしています。

    世界は新型コロナウィルス感染拡大の第一波で、国際政治学者のイアン・ブレマーさんが ETV の番組などで「犬は重要だ、犬を飼うべきだ」と主張して(ちょっとだけ)話題になりました。

    このころから、私はコワーキングスペースに通うこともほとんどなくなり、フルリモート、テレワークの生活になりました。

    犬の散歩は、飼い主が体を動かす貴重な機会でもあります。

    特に、人と人が接触を避けるようになっている現状において、犬は、人が何かを教えたり教わったりする身近な対象として、真剣に向き合うべきパートナーだということにも気づかされます。

    2020年5月

    ドッグトレーナーを描いたコミック「DOG SIGNAL」 を読み始めました。(8月に第4巻も出ました)

    2020年6月

    「すごい広島 with Python」で「アンナほえたワンを集計してみた」という話をしました。実はドッグトレーニングの効果がちょっと出てきて、吠える回数が減りはじめた、というタイミングでしたが。。

    アンナほえたワンを集計してみた 資料

    そんなある日、子猫がやってきた。

    「こんにちはPython」読書会を始めたころは、保護したばかりの赤ちゃん猫が鳴き続ける、それに反応してアンナが吠える、大騒ぎでした。

    子猫の「ハコ」と仲良くしてもらうために、愛犬アンナのトレーニング、今もいろいろ頑張っています。

    2020年7月

    広島のパソコンボランティア団体による講習会「NVDA で Zoom を使う」の講師を担当しました。

    Zoom 講習会 資料

    NVDA日本語チームとして「いまこそ NVDA で始める Windows 第2回」をオンライン開催しました。

    「こんにちはPython」読書会を7月末にも開催しました。その予習として tkinter について調べたので、この話は「すごい広島 with Python」のネタにしました。

    tkinter 資料

    PyCon mini Hiroshima 2020 を10月10日にオンライン開催することになり、告知を始めました。

    画像 PyCon mini Hiroshima 2020 つながろう Python 2020年10月10日(土曜)

    2020年8月 これから

    PyCon JP 2020 が8月28日・29日にオンライン開催されます。広島で Python イベントを続けてきたメンバー4人で「広島における地域 Python コミュニティの立ち上げ方と続け方」と題して登壇します。

    PyCon mini Hiroshima 2020 のトーク募集締め切りは8月31日の予定です。

    このほかにも、秋、年末、来年に向けて、オンラインイベントの運営やサポートに関わることになりそうです。

    テレワークやオンラインイベントなどで「自宅から出なくても忙しい日々」は続きます。

  • Hello Python 第2回

    ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython (すがや みつる 著)を読んで、プログラミングを勉強してゲームを作ろう、というオンライン勉強会、第2回の記録です。ゲストは第1回と同じ高校生(男子)、見学者1名でした。

    前回は7章まで読んでいましたね?

    >8章 tkinter で GUI プログラミング。読みましたが、紹介されたプログラムが長かったので、読んだだけで、入力して試したわけではないです。

    読んでいて疑問はある? tkinter (「ティーケーインター」と私は読んでいます)は Python に最初から入っていて、追加のインストールをしなくてよいのは利点だけど、わかりにくい点もある。

    >169ページのアクティビティ図、マウスの動きの確認、マウスのポインターの位置を調べる、これは何のために?

    ラケットを動かすところでマウスポインターのx座標を使っている。

    プログラムを著者のサイトからダウンロードして実行してみたら、何をやっているか、わかりやすくなる。

    >ダウンロードしたファイルをダブルクリックしたら、すぐに動いた。

    IDLE を開いて、File / Open から、ダウンロードしたプログラムを開いて、F5 で実行すれば、自分で入力した雰囲気に近くなる。

    ちなみに「まんが版こんにちは Python エラー情報」というページもある。

    >質問。次に読むとよさそうな Python の入門書を知りたい。

    Amazon を検索して画面共有しながら。。

    私が読んでない本や、旧版しか読んでない本もあるので、参考になれば、ということで。。

    最後の「Pythonチュートリアル」は Pythonエンジニア認定基礎試験の出題範囲とのこと。

    >2冊くらい選んで読んでみます。ところで、Python Boot Camp テキストを読むとよい、と言われましたが、まだ読んでいません。

    じゃあ、それも関係あるので、ここから私の準備してきた話題を。。

    「こんにちはPython」で紹介されている tkinter は公式ドキュメントにも説明がある。

    だけど、この説明は「Tcl/Tkドキュメント」と合わせて読まないと、詳しいことがわからない。

    もともと Python とは別のシステムとして作られていたものを「Python からも」使えるようにしたものが tkinter だから。

    公式ドキュメントの中ほどに、「簡単な Hello World プログラム」という例がある。コピーペーストして、自分のマシンで実行してみよう。ほら。。

    import tkinter as tk
    
    class Application(tk.Frame):
        (中略)
    
    root = tk.Tk()
    app = Application(master=root)
    app.mainloop()

    まず「こんにちはPython」とこの例は tkinter を「インポート」する方法が違う。

    • from tkinter import * を使うと、そのあと Tk() や Canvas() などがそのまま書ける
    • import tkinter as tk のように書くと、tk.Tk() や tk.Canvas() のように、先頭に tk. をつけて「モジュールの中身」を使えるようになる

    次に、この例では class Application というのが使われている。文字通り「クラス」を使っている。公式ドキュメントの例だから、ということで、クラスを使う理由や目的に深入りはしない。

    このプログラムは、上から順番に実行されるのではなく、最後の3行が最初に実行されて、Application(master=root) のところで、字下げされた前半部分が実行されている。

    私が書いてみたのは「まわり将棋」のプログラム。ソースコードはこちらの mawari.py

    • 全体の構造は「簡単な Hello World プログラム」に合わせている。
    • master という用語を root に置き換えている
    • tkinter の Canvas で「9x9」の盤と、「歩」という文字を表示している
    • Canvas の上の「歩」という文字は “player” という「タグ」をつけていて、表示した後で、場所やテキストを変更している
    • Label でメッセージを表示
    • Button で「金将を投げる」という操作をさせている
    • ボタンが押されたら button_pressed という関数(正式にはメソッド)を実行する
    • scores = [0, 0, 0, 0] は「要素が4個のリスト」を作っている。リストを作ると要素の数だけ処理を繰り返したり、加工したり、合計したり、ということが簡単にできる。リストというのは Python Boot Camp テキストで紹介されている「コレクション」の一種。
    • calc_score() は random.choice メソッドを使って、ある確率である値が得られるようにしている
    • set_player_pos(), set_player_text(), set_message() の各メソッドは、プログラムを読みやすくするために、簡単な処理に、あえて名前を付けようと思って作った
    • 必要な変数をクラスの中に固めている。だからこのプログラムには global が出てこない

    実行してみるとこんな感じ。

    まわり将棋の画面キャプチャー

    駒が進むときに、1歩ずつ動いてほしいけど、一度にまとめて動いちゃうね。

    これを改善するためには「時間が経過したらなにかを実行する」という処理が必要。スカッシュゲームですでに使われているテクニックだけど、こちらに組み込むのは、次のステップの課題にしよう。。

    何か詳しく聞きたいことは?

    >たぶん大丈夫

    画面に何かを表示して動かすプログラムの「型」を紹介したかった。必要なものは最初から全部出しておいて、動かす操作だけをやっている。

    この後はなにをやってみたい?難しすぎることを目指すと大変だけど。。

    >簡単に作れるゲーム、それから、何か役に立つものを。。

    じゃあ、また次回までに相談しましょう。

    (終わり)