バコラー日記

人生は決して受け身になってはいけない。攻めるが勝ち!

    タグ:Python

    • カテゴリ:
      このエントリーをはてなブックマークに追加 Share on Tumblr Clip to Evernote
    20)タイトルの通り「PyCon JP 2011」に参加してきました。

    PyCon JP 2011 はてなブックマーク - PyCon JP 2011


    プログラミングを本格的に始めて4ヶ月な僕が、Pythonのでっかい会議に参加して感じたことを5つ書いていきます。


    PyConの当日の内容や専門的なことは他の方がたくさん書かれているので、そちらを読んで頂ければお腹いっぱいになりますよ。

    こちらに当日の講演のUstreamアーカイブや資料、ブログ記事やTogetterなどのリンクがまとめられています。

    速報版 PyCon JP 2011 諸々まとめ — PyCon JP 2011 はてなブックマーク - 速報版 PyCon JP 2011 諸々まとめ — PyCon JP 2011


    1. ノベリティグッズが素敵!


    PyCon JP 2011 の参加者には、Pythonのバッジ・ステッカー・キャンディーなどが貰えました。

    写真


    ステッカーは新しい Mac Book Air を購入したらそれに貼りたいですね。

    キャンディーは勿体無くて食べれないのですが… ><


    2. 参加者にコアな方が多い


    他の勉強会に比べて、特にライトなPythonプログラマーは少ないように感じました。

    なので、自分がまだPythonについて詳しくないので、コアなPythonistaの方々と深い話ができず、かなりもったいなかったです。


    日々、Pythonでプログラムを書かなければですね。

    こういうカンファレンスや勉強会がある/あった前後の期間は、異様にモチベーションが高いのは当然なので、そうでないときに”やる”ことを続けないといけないですね。


    3. どうせ参加するなら発表者として


    まるっと一日、受身で発表を聴くのもこれはこれで勉強にはなるのですが、「発表者として参加したらどれだけ有意義だろうなぁ」と思いました。

    次のPyCon JPでは、LTとかあわよくばセッションの発表者として参加したいですね。


    そのためにも月1回のペースで開催されている「Python mini Hack-a-thon」で発表の経験を積んでいこうと思います。

    ・次回開催について:(第11回)Python mini Hack-a-thon : ATND はてなブックマーク - (第11回)Python mini Hack-a-thon : ATND


    4. スタートアップはいかに速くサービスを作れるかが勝負


    「Python と MongoDB でWEB開発」の発表者であるVuzzのCTO:清田さんとお話しして頂いて、印象に残った言葉が「スタートアップはいかに速くサービスを作れるかが勝負」ということでした。

    その手段として、Python + MongoDB だと。

    何でMongoDBを使うのですか?メリットって何ですか?という質問に対する回答だったので、「スケーラビリティを確保できる」というのもポイントみたいです。


    サービスがヒットしたときにスケーリングしやすいってのは、スタートアップでサービスを作っていくエンジニアにとっては欠かせないポイントなんでしょうね。


    5. Sprintの「App Engine Code Lab」に参加できず(涙)


    PyCon JP の翌日に開催されたSprints(スプリント)で「App Engine Code Lab」に参加しようと思ってたら、Googleの松尾さんが風邪気味ということと、僕が事前登録をしていなかったことで中止に…。

    参加登録が必須でないと書いてあったので、軽く考えていたせいで痛い目に合いました。

    PyCon JP 2011 Sprint Spreadsheet で自分でテーマを書いてリーダーになることもできますし、他の人のテーマに参加することも可能です。 参加登録は必須ではありませんが、リーダーが何を準備するかとか考える助けになるので、事前登録をおすすめします。

    ・引用元:Sprints(スプリント) — PyCon JP 2011

    ”参加登録必須”とか、参加する人は必ずスプレッドシートにやることを記入するとかにしておいて貰えれば、僕みたいな人が現れず、もっと良くなりそうだなと思いました。


    幸いスプリントでやる予定だった内容のリンクを知ることができたので、取り組んでみます!

    Python Codelab - Google Developer Codelabs


    まとめ


    PyCon JP 2011、為になりました。

    もっと為になるものにするには、Pythonでコードをもっと書かねばですね。


    @ransuiさんのセッションで、Pythonプログラミングの経験として「初めてのPython」もしくは「Python チュートリアル」をクリアしている人ということを言われていました。

    Python チュートリアル はてなブックマーク - Python チュートリアル

    これが初心者から中級者になるための1つの基準なのでしょうか。


    まずはこれに取り組みつつ、またWebサービスを作っていきます!


    おまけ(宣伝)


    本を裁断して電子書籍化するユーザー向けに、裁断済み書籍を検索できるサービス「自炊戦隊サイダーン」を先日リリースしました。

    自炊戦隊サイダーン | 裁断本を一括検索 はてなブックマーク - 自炊戦隊サイダーン | 裁断本を一括検索

    Pythonで書いているのでよかったら使ってみて下さい!

    • カテゴリ:
      このエントリーをはてなブックマークに追加 Share on Tumblr Clip to Evernote
    今年の夏休みの予定はもうお決まりですか?

    海、山、川に行ったり、ビアガーデンで飲んだり、花火大会に行ったりするのも良いですよね。


    20)でも、それだけでいいんですか?

    ちょっと物足りない?

    そんな方は「PyCon JP 2011」に行きませんか?

    PyCon は、Pythonユーザが集まり、PythonやPyt​honを使ったソフトウェアについて情報交換し、交流す​るためのカンファレンスです。 PyCon JP開催を通してPythonの使い手が一同に集まり、​他の分野などの情報や知識や知人を増やす場所とすること​が目標です。

    ・公式:PyCon JP 2011
    ・Facebookページ:PyCon JP 2011

    お申し込みはこちらからどうぞ。


    僕は、Python使い始めて数ヶ月程度ですが、この機会にPython界隈の先を行っている方々の発表を聞いて面白そうな技術とかを知れたらいいなと思い、参加することにしました。

    Python初心者でも大歓迎(なはず)なので、この夏、PyCon JP に行ってみませんか?

    • カテゴリ:
      このエントリーをはてなブックマークに追加 Share on Tumblr Clip to Evernote
    PythonでGoogle 関連サービスのAPIを使うには「Google Data APIs Python Client Library」というライブラリを入れる必要があるみたいです。
    gdata-python-client - Project Hosting on Google Code

    YoutubeのAPIが使えなくて英語のドキュメントをちゃんと読んだら書いてました…。
    Getting Started with the Google Data Python Library - Google Data Protocol - Google Code

    以下に「Google Data APIs Python Client Library」の導入手順を説明します。


    ダウンロード


    まずはダウンロード方法です。

    下記から「Google Data Python library」の最新版をダウンロードします。一番上にあるのが最新版になります。
    Downloads - gdata-python-client - Project Hosting on Google Code

    現在は「gdata-2.0.13.zip」が最新版みたいです。


    インストール方法:「setup.py install」


    ダウンロード後、gdata-2.0.13.zipを解凍します。
    解凍後のディレクトリ gdata-2.0.13 内で「setup.py install」のコマンドを実行してインストールします。

    インストールは数秒で完了します。

    インストール後、gdata-2.0.13 内に「build」→「lib」→「atom」、「gdata」というディレクトリが作成されています。これを使いたいディレクトリにコピーして使います。


    YoutubeのAPIを使ってみた


    ライブラリの設定が完了したので、試しにYoutubeのAPIを使ってみました。

    # -*- coding: utf-8 -*-
    
    import gdata.youtube
    import gdata.youtube.service
    
    client = gdata.youtube.service.YouTubeService()
    query = gdata.youtube.service.YouTubeVideoQuery()
    
    query.vq = 'ミスチル'
    query.max_results = 25
    query.start_index = 1
    query.racy = 'exclude'
    query.format = 5
    query.orderby = 'relevance'
    
    feed = client.YouTubeQuery(query)
    
    for entry in feed.entry:
    	print entry.title.text
    
    


    実行結果は以下の通りです。ちゃんとYoutubeの検索結果から動画のタイトルを表示できました。

    Mr.Children HANABI
    Mr.Children CANDY
    Mr.Children-sign
    しるし Mr.Children
    Mr Children
    Mr.Children 名もなき詩
    Mr.Children 抱きしめたい
    Mr.Children - youthful days
    Mr.Children/365日
    Mr.Children - Forever
    Mr.Children 彩り
    Mr.Children-CROSS ROAD
    Mr.Children - GIFT [PV]
    Mr.Children 終わりなき旅 (PV) (歌詞付き)
    Mr.Children HERO
    Mr.Children innocent world
    Mr.Children HERO
    Mr.Children Sign
    Strange Chameleon Mr.Children
    Mr.Children - エソラ [PV]
    HERO / Mr.Children
    Mr.Children新曲「fanfare」フル
    Mr.children 1993~1996 Break
    Mr.Children - Coelacanth
    Mr.Children 365日

    簡単にGoogle のサービスのAPIが使えるようになりました。

    以上です。

    ・参考:Google Data APIs Python Client Library - hashimoto.py - fukuoka.pyのはてなグループ

    • カテゴリ:
      このエントリーをはてなブックマークに追加 Share on Tumblr Clip to Evernote
    Pythonを使ってるとインデントで怒られることがよくあるので注意が必要です。

    ・"IndentationError: unindent does not match any outer indentation level"「インデントの個数が中途半端な位置に減っている!」

    ・"IndentationError: unexpected indent"「いらないところにインデントがある」

    ・"IndentationError: expected an indented block"「インデントが必要なのにないよ!」

    line 3とか書いてあるはずなのでその行を見て直す。問題がなさそうに見える場合タブとスペースが混在しているかも。区別できるエディタを使おう。

    他にも初心者がよく出すエラーがまとめられていたのでメモ。

    ・"__add__ nor __radd__ defined for these operands"「その計算の対象にしているオブジェクトには__add__も__radd__も定義されていないよ(足し算が定義されていないよ)」→数が入っているつもりの変数にNoneが入っていたりするとかありがち。数を返すはずの関数がreturnしわすれでNoneを返すとか。

    ・"global name 'x' is not defined"「'x'という名前の変数が(グローバルまで探しに行ったけど)見つからなかったよ!つづり間違ってない?」
    "NameError: name 'true' is not defined"「'true'は定義されていないよ!つづり間違ってない?」
    ちなみにTrueが正解。

    ・"UnboundLocalError: local variable 'y' referenced before assignment"「ローカル変数yは代入するまえに読まれてるよ!つづりまちがってない?」

    ・"TypeError: drawOval(): 1st arg can't be coerced to int"「drawOvalの1番目の引数がintに変換できないよ!」

    ・"not all arguments converted"「埋め込むモノが余った」

    ・"not enough arguments for format string"「埋め込むモノが足りない」
    ・引用元:よくあるエラー - 西尾泰和のはてなダイアリー

    • カテゴリ:
      このエントリーをはてなブックマークに追加 Share on Tumblr Clip to Evernote
    Pythonにて下記のエラーが出て、対処方法を調べたのでメモ。

    SyntaxError: Non-ASCII character '\xe3' in ... ,
    but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

    エラーの出たファイルの先頭に、以下のように文字コードを書くだけでOKです。

    #-*- coding: utf-8 -*-

    【参考】
    SyntaxError: Non-ASCII character '\xe3' ... - id:rx7(@namikawa)の技術メモ - 技術日記
    Python でUTF-8, shift_jis, euc_jpなど日本語を使う方法
    PEP 0263 -- Defining Python Source Code Encodings

    このページのトップヘ