Python4PHPer 第7回講習会
mon_satです。
PHP使いの人に向けたPython勉強会に参加してきました。
この勉強会は定期的に開催されているようですので、興味がある方はATND内に記載のGoogleグループを登録しておくと良いですよ。
わたしも前回満員で今回参加できました。
Google App Engine for Python
以前、Amazon EC2 の勉強会に参加しましたが、同じクラウドであるGoogle App Engine (以下GAE)にも大変興味があります。
GAEは、JAVAもしくはPythonの使用に限定されているため、PHPだけでやってきたわたしとしては少々難易度が高いです。
ですが。
調べてみると、Pythonは、JavaScript に似たところも多く、非常に扱いやすい言語であることが分かりました。
実際、習作で、Tweepy というモジュールを利用しTwitterアプリを作ってみたところ、結構簡単に作れました。
しかしながらPHPであればつまずかないところでも、Pythonへの理解が甘いためにつまずくこともあり、もっと言語仕様に近い理解が必要であることを痛感し、今回の勉強会参加となりました。
勉強会への準備
結局キャンセル待ちが届かなかった以前の勉強会の前に、GAEのSDKのインストールおよび、Hello World 程度のチュートリアルは終わらせておきました。
SDKのインストールで詰まってしまって勉強会で学べることが限られてしまうのはもったいないので、よっぽどの事情がない限りはインストールしておくことをお勧めします。
いざ、勉強会へ
この勉強会は、10時〜22時という長丁場です。
いつも以上に朝食をがっつりとり、準備万端で臨みました。
PHPとの文法の違いを説明しつつ、章の合間に、各自手を動かして理解を深める。というのを各章ごとにやっていくかたちで勉強会は進んできます。
途中お昼休憩と自己紹介タイム、夕食タイム、GAE実践タイム、がありますが、基本的には、講師の@makotokuwataさんが作成した資料をもとにした、上記の流れで進むスタイルでした。
Python の特徴を知る
この資料が非常にためになりました。
というのも、PHPでは○○と書くところを、Pythonでは××と書く。というように書いてあるため、非常に頭に入りやすいです。
各サイトで事前に基礎的な文法が分かっていたようでも、勉強会を通じて、Python ならではの文法をいくつも知ることができました。
個人的に、とくに知りたかったのはモジュールの使い方のところです。
Python は、JavaScript が分かれば、非常に扱いやすい言語だと思います。PHPと比べても学習コストは同等程度に低いでしょう。しかし、もっとも大きな違いが、この、モジュールによる拡張ではないかと思いました。
何かを作る上で、再利用性を考えれば、いきおい自分でもモジュールを作っていくことになります。
実際、Tweepyを利用して簡単なWebアプリを作ったときもモジュール化を試しました。
しかし、モジュールがどのように扱われているかを分からないため、何度も試行錯誤を繰り返し、結局「よく分からないけど動いたからいいや」で終わらせたのでした。
この勉強会ではさらっと流れましたが、Python では必須のモジュール周りの理解は、GAEでアプリを作るにあたって大きな意味がありそうです。
この点が理解できただけでも、参加して良かったと思います。ホント。
交流しよう
勉強会は知識を習得する場ではありますが、もうひとつの側面として、参加者同士が交流をする場でもあります。
なるべく、知識習得に終わらず、交流もして帰ろうと思っているのですが、この勉強会でも、素晴らしい出会いがありました。
上述の通り、途中、夕食タイムに先立ち、自己紹介タイムがありました。
これは、講師の方が、夕食時に交流しやすいようにと設けているものです。
簡単な自己PRをすることで、その後の食堂での夕食時に、各参加者がいろいろ話しやすくなります。
驚いたことがふたつ。
ひとつは、以前つとめていた会社で同じ部署だった方(@uniom)が参加していたこと。
かぶった期間が短すぎて、お互い、よく覚えていなかったんですけどね(笑)
でも、再会できて嬉しいです。
もうひとつは、もっとびっくり。
席がとなりになった彼(@shinout)。bioを見て分かるようにすごいキャリアで「いやあ負けられないなあ」なんて呑気に思っていたんだけど。
GAE実践タイムのとき、以前NerineというHTML5+CSS3を使ったプレゼンツールを使って作った、某勉強会用のプレゼン資料をGAEであげておいたんです。
で、「GAEで静的サイト動きますよ。ほら、このプレゼンツールがそう。かっこいいよね」とぱらぱらとスライドをめくっていたら、、、自己紹介ページのブログの名前のところで「あれ?このブログ、、、最近見ましたよ」と。
え?またまたあ。ほとんどCakePHPのことしか書いてないし、(彼はSymponyユーザー)誰も見てないことには定評あるんだから、他人の空似ならぬ、他人の空サイトでしょ?と、思った訳です。
NerineはスライドをHTMLで作りますので、当然ブログにはリンクが張ってあります。
で、飛ぶ訳です。そしたら
「やっぱり見ました」って。
どうやら、gitではまってインターネッツを彷徨い、この記事を見つけて、そして『まったく同じ解決手法で解決した』んだって。びっくりですよね、奥さん!
彼の場合、さくらではなく、コアサーバーでつまずき、(例として提示した) spush ではなくご丁寧に cpush というエイリアスにしたって(コアサーバー用だから)
ちなみに続きの記事がないのは、いまだ根本的解決してないからなんですけどね(笑)
ひとりの前途多望な若者を救ってしまいました。こんな場末のブログが。
一方、見せてもらった、彼の開発ブログ。
CSS3使って、右カラムがすごいことになってます(笑)
内容もためになります。たとえばこれ。 MacOSXのコマンドからGoogleトランジット
$ open -a "/Applications/Google Chrome.app" http://www.yahoo.co.jp/
Macでこんなことできるなんて思いませんでした。
たしかにこれを使っていろいろやると便利なこと多そうです。
せっかく仲良くなれたので、起業のときとかで、何か困ったことがあったら遠慮なく言ってくださいね。
まとめてきな何か
他にもTwitterでフォローしたりと、何人かと交流できました。
こうやって輪が広がっていくのは嬉しいことです。
そしてなによりPythonの知識が深まりました。
クロージャとかデコレータとか、解説が丁寧だったので分かりやすかったです。
(途中Googleグループからファイルがダウンロードできないという予期せぬトラブルあり、最後駆け足になってしまいましたが)
こんなためになる勉強会を、激安で開催されている@makotokuwataさんには、感謝してもしきれません。
GAEを生かしたウェブアプリつくることが恩返しだと思って頑張りたいと思います。
Python がもっと普及するように祈りつつ。
というわけで、同じ時間を共有できたみなさん、どうもありがとうございましたー。