ブログ引越し
大してポストしていないけど、ブログを引っ越した:
http://zakkied.hatenablog.com/
# hatena id が気に入らなかったので...
hatena blog はエクスポート&インポートができないのかな。
Install Netatalk to OpenIndiana
どうにも TimeMachine のバックアップが遅くなって調べていたら Netatalk の 3 系がリリースされていたので、折角なのでアップデートしてみた。
http://hatx.blog.so-net.ne.jp/2012-04-25 を参考にした。
まずはデーモンを止めて、バックアップをとっておく
$ sudo /etc/rc2.d/S90netatalk stop $ sudo cp -r /usr/local /usr/local.sv # 他に /usr/local 以下にインストールしていないので、これでよし。
Berkeley DB のアップデート。
http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html からダウンロード。5.3.21 にした。
$ tar zxvf db-5.3.21.gz $ cd db-5.3.21 $ cd build_unix/ $ ../dist/configure --prefix=/usr/local $ make $ sudo make install
Netatalk 本体のインストール
$ tar jxvf netatalk-3.0.1.tar.bz2 $ cd netatalk-3.0.1 $ ./configure --with-init-style=solaris $ make $ sudo make install
Netatalk (afpd) の設定。こんなかんじにした。Time Machine にしか使わないので [Homes] とかは定義していない。
$ cat /usr/local/etc/afp.conf [Global] mac charset = MAC_JAPANESE log file = /var/log/netatalk.log vol preset = my default values [my default values] file perm = 0400 directory perm = 0700 [Time Machine] path = /pool2/for_backup time machine = yes
デーモンの起動設定と古い起動スクリプトは消しておく。
$ sudo svcadm enable svc:/network/netatalk:default $ sudo rm /etc/rc2.d/S90netatalk $ suro rm /etc/rc0.d/K04netatalk
SublimeText2 で Python 用に設定したこと
インストールしたパッケージ
Python PEP8 Autoformat:- ctrl + shift + r で実行、のはずなんだけど動かない.. 使うのやめた
- Python PEP8 Lint:
- Command + Ctrl + 8
- 一旦ファイルを保存しないと動かない。sspy していてもダメ。
- PythonOpenModule:
- Command + Shift + O
- モジュール名を入力するとそのモジュールのファイルを表示する
- SublimeCodeIntel
- インストールした後、一旦 ST2 を終了、rf -r ~/.codeintel/ する必要があった
- 例えば os. まで打ったときに abort, access, .. を補完候補に出してくれる or Command + J
- メソッドの引数まで展開してくれると嬉しいんだけど...
設定
タブを空白に展開。
ビルド用のコマンドを Homebrew でいれた Python に変更。
$ cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/User/ $ more Python.sublime-settings { "tab_size": 4, "translate_tabs_to_spaces": true, "indent_to_bracket": true } $ more Python.sublime-build { "cmd": ["/usr/local/bin/python", "-u", "$file"], "env":{ "PYTHONPATH": "/usr/local/lib/python2.7:/usr/local/lib/python2.7/site-packages" }, "selector": "source.python" }
OS の設定
.py なファイルを SublimeText2 に関連付け。
SublimeText2 のビルドコマンドを変更する
こんなかんじに Packages/User/ 以下にビルドルールをつっこむ。
$ more ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/User/Haskell.sublime-build { "cmd": ["/tmp/ghc/bin/runhaskell", "$file"], "selector": "source.haskell" }
ファイルを置くと "Tools" > "Build System" から haskell が選択できるようになっている。
これで Command + B でビルドが始まる。
リファレンス: http://docs.sublimetext.info/en/latest/reference/build_systems.html
Homebrew にパッケージを追加
Homebrew にパッケージを追加したときのメモ。
https://github.com/mxcl/homebrew/wiki/Formula-Cookbook のとおりに。
$ brew create http://prdownloads.sourceforge.net/docutils/docutils-0.9.1.tar.gz $ more Library/Formula/docutils.rb require 'formula' class Docutils < Formula homepage 'http://docutils.sourceforge.net/' url 'http://prdownloads.sourceforge.net/docutils/docutils-0.9.1.tar.gz' version '0.9.1' sha1 'c55d1ccabe2de82dd93d0f14884d07bbe10a3d40' def install system "python", "setup.py", "install", "--prefix=#{prefix}", "--install-scripts=#{prefix}/bin" end end $ brew install docutils
pull request を送る。あらかじめ github で https://github.com/mxcl/homebrew を fork しておく。
$ brew update $ cd `brew --prefix` $ git checkout -b docutils $ git branchコミットログは "パッケージ名" + "バージョン番号" がよろしいようだ。 あとは github から pullrequest をするだけ。 ただ、python や ruby のパッケージは pip とかで入れればいいじゃんということらしいので、ここまで。docutils
master $ git add Library/Formula/docutils.rb $ git commit -m'docutils 0.9.1' $ git push --all git@github.com:/homebrew.git
Sublime Text 2 を使ってみた
軽いし見た目いいしで、しばらく使ってみることにした。Python で拡張できるのもいいね。
インストールしてからやったこと
Sublime Package Control のインストール
Sublime Text のパッケージマネージャ。パッケージのインストールが簡単になるので、まずはこれを入れるものらしい
http://wbond.net/sublime_packages/package_control/installation にあるとおり、
- Ctrl + ` でコンソールを開く
- 以下を実行する
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'
- Sublime Text 2 を再起動する
これだけ。簡単だ。
パッケージのインストール
- Shift + Command + p
- "install" あたりまで入力すると "Package Controll: Install Package" が補完されるので Return で確定
- 数秒待つ
- パッケージ一覧が表示される
- インクリメンタルサーチができるので、インストールしたいパッケージを探す
- パッケージの更新は "upgrade" っぽい (まだアップデートされたパッケージが無いので試してない)
インストールしたパッケージ:
- git
- SideBarGit: サイドバーで右クリックから git コマンドが実行できる
- SidebarEnhancements: サイドバーで右クリックメニューが増える
Python PEP8 Autoformat: Shift + Ctrl + R で PEP8 に沿ったフォーマッティングをしてくれる- PythonTidy: これも自動フォーマットしてくれる。
PEP8 Autoformat と違って入力中に勝手にフォーマットしてくれるそんなことなかった... - Python Open Module: sys.path を見てモジュールのソースコードを表示してくれる。Shift + Command + O
- google-search: なぞって右クリックすると "Google Search" できる
- Restructured Text (RST) Snippet:
- SublimeRope: Python用。ST2 の補完がもっと賢くなる http://www.sublimetext.com/forum/viewtopic.php?f=5&t=1866
vi ライクなキーバインドにする
vi なキーバインドにしていると、ST2の便利なショートカットキーがつぶされてしまってかえって不便だったのでやめた。
- "Preferences" -> "Settings - Default" を選択する
- "ignored_packages": ["Vintage"] の行を "ignored_packages": [] にする
- 保存 (Command + s) して再起動
Goto Anything
command + P: 開いているファイルを選択できる。さらに...
- @: クラスや関数などの一覧を表示
- ":": 行番号にジャンプ
- hf:10: hoge_fuga.py の 10 行目にジャンプ。@ も同様
基本的な操作はそれっぽくできるようだ。
TODO
- 補完リストへの追加。os. まで打ったら os.system とかを補完候補に出したい
- Pluginが参照する PYTHONPATH の指定方法を調べる。/usr/local/lib/python 以下を使わせたい
PyCon JP 2012 のメモ
参加したセッションから
gevent
python 開発環境
- http://www.youtube.com/watch?v=3ntNXzzgZDs
- http://ymotongpoo.hatenablog.com/entry/2012/09/16/090842
- Sublime Text 2 よさそう
- python のパッケージ管理
- "Read the Docs" よさげ
alnair
- http://www.youtube.com/watch?v=ZLcSnreXvj4
- https://github.com/naoina/alnair
- chef みたいに管理サーバがいらない
- 数十台までのシステムがターゲット。それ以上は、sshが追いつかなくなってくる
Sphinxにおけるdocutilsの役割
- http://www.youtube.com/watch?v=kiUMwzTjMGY
- docutilsの解説だ!
Clime: With A Line, Convert Your Functions into a Multi-Command CLI Program
- http://www.youtube.com/watch?v=-7GTPv7LjC4
- https://github.com/moskied/clime
- ちゃちゃっと作るときによさげ
- なんかなごんだ
unittest嫌いがunittestをtesting
Python 製ビルドツールのススメ
- http://www.youtube.com/watch?v=KXJNuJTXBEE
- wafイイ!
- python さえ動けばどこでもビルドできる
- http://matsu911.github.com/waf_book_ja/ waf book
Tornadoで分散KVSフレームワーク
- http://www.youtube.com/watch?v=5WTSdyvK3QY
- 独自 KVS "Vortex" を作った。
- 操作関数を導入
- "CAP でいうと A と P を選択。Cはバージョンを意識することで克服"
What Makes Pyramid Unique!
- http://www.youtube.com/watch?v=ZM59E3G7Amc
- Pyramid こわい
セッションかぶって見れなかったリスト
- ソーシャルゲームとメッセージキュー http://www.youtube.com/watch?v=UTGAbADtcAg
- RabbitMQ 使ってるらしい
- Sublime Text 2 を使おう http://www.youtube.com/watch?v=LTBS7Fj5MwM
- Python Type and Object http://www.youtube.com/watch?v=ujrJNLd0jI4
- ナウでヤングな17歳のVPS構築記 http://www.youtube.com/watch?v=tOWZB9tFgu8
- 最近の高校生は怖いな
- Python入門者のコードをリファクタリングしてみた http://www.youtube.com/watch?v=DCOvwsBzuVc
- Pythonistaの働き方 http://www.youtube.com/watch?v=4D8kBAi4-IQ
- (GAP) Full Text Search の概要と使い方 http://www.youtube.com/watch?v=VzYdkYhPMj0
- LT! http://www.youtube.com/watch?v=FDOrCsJ76lM