Python Developers Festa (pyfes) 2012.07 に行きました。完全に個人的なメモです。
今回は発表することもなかったので、知り合いとダベることと、気になっていることをちょろっと試すことにしました。
普段、仕事をするときには、目の前の問題を、できるだけ確度の高い予想期間で片付けたいので、手持ちのカードだけで解決しようとしてしまいます。たかだか数時間ですが、ちょろっと試す機会に使おうと思ったわけです。自宅だと、ついエロ動画サイトとか徘徊しちゃうんでね。
Git
すみません、今更です。とりあえず、空のプロジェクトを作って、いじいじしました。Git と、いつも使っている Mercurial は、ブランチの考え方が違うので 1 on 1 でコマンドが対応しません。(1) add の意味の違いと、(2) push でどのリポジトリに、どのブランチを、っていうのを指定するのが、いちばん私が気をつけねばと感じたことです。
PyCharm
いまは Komodo Edit (Komodo IDE の機能限定無料版)を使っています。以前 @ikasamt に Pycharmいっすよと言われていました。試用版をインストール。
Backspace にCTRL-H 、Enter に CTRL-M を割り当てる。
App Engine のプロジェクトを作ったのだけれど、最近は buildout で環境を使っているので、Komodo も Pycharm の App Engine インテグレーションはじつは不要だったりする。単体テストやデバッガを使うときに効いてくるのかも知れない。
watchdog モジュール
ドキュメントもコードも、ファイルを変更したらビルド/テストするようにしています。が、これが美しくないやりかたをしています。OS X 上でのEmacs や Komodo でのファイル変更は、OMake で検知できません。
watchdog インストールして、さっそくやろうとしたら…
$ bin/watchmedo shell-command --patterns="*.c;" --recursive --command='make all' Traceback (most recent call last): … from argh import arg, alias, ArghParser File "/Users/torufurukawa/works/pyfes201207/lib/python2.5/site-packages/argh/__init__.py", line 25 from .exceptions import * SyntaxError: 'import *' not allowed with 'from .'
面倒くさいなぁ。もういいや。
ndb
GvR が作った、Google App Engine のデータストアライブラリ(あるいは、BigTable のラッパ)。この文書をだらだら眺めていました。Pythonic で使いやすいし、隠蔽のバランスが直感的です。
ところで未だに、キーをヒエラルキーにすることが活かされる状況って、どういうときだよ、と思っていました。トランザクションで要るとは思うんだけどなぁ、などと、昼ごろにうとうとしながら考えていました。
あー、エンティティではなくて、キーから親子関係を引けるのがいいのか、と。
キーに親子関係がないときは…
from google.appengine.ext import ndb class Foo(ndb.Model): pass class Bar(ndb.Model): foo = ndb.KeyProperty(kind=Foo) f = Foo() f.put() b = Bar(foo=f.key) b.put() k = b.key # k から f を取得する。 b = Bar.get_by_id(k.id()) # ここでフェッチ f = b.foo.get() # ここでもフェッチ
キーに親子関係があると
from google.appengine.ext import ndb class Foo(ndb.Model): pass class Bar(ndb.Model): pass f = Foo() f.put() b = Bar(parent=f.key) b.put() k = b.key # k から f を取得する f = b.key.parent().get() # フェッチはここだけ
だべり
- とおるメモを、電子書籍にして売れば? → いいなぁ。このブログのアフィリエイトよりも、遥かに効率がよさそうだ。
- とおるメモアプリは、電話機能にアクセス権限とか要るんでしょ? → w
- アイコンはち◯こだろ → w
- うちの製品のマーケティングって、次は何したらいいの? → (・∀・)ニヤニヤ