移行済み

http://feiz.hateblo.jp/

[プログラミング]よいコードを書くために

コードをたくさん読んでいると、よくできていて参考にしたくなるコードや、身の毛もよだつクソコードなど、色んなコードに出会う。自分一人で書いていた頃は、コードの良し悪しは全て自分にはね返ってきていたのだが、チームを組むとそうはいかない。人の書…

一週間ノマドやってみた

ばあさんが入院したというので、先週から実家に帰っていた。さすがにこんな状況で日帰りだの1泊2日だの慌ただしいスケジュールで動くのもやだし、かといってまる一週間休みが取れるほど代休を残してるわけでもヒマなわけでもなかったので、休暇一切なしにし…

macで256色terminal使いたいけどiTermが重すぎて死にたい

こたえ iTerm2つかえよ 時は201X年... にも関わらずmacのTerminal.appはansiカラーしか出せなかった。*1 feizは8色の世界に飽き飽きしていた。ansiカラーはやたら眩しいか暗すぎて見えないかの2択しかなくて終わっている。特にvimのシンタックスハイライトで…

fabfileの構造化

fabfile.pyって、task数個までならまあ1ファイルでいいんですが、それ以上増えてくるとスクリプト自体がカオスになって収集がつかなくなります。更に似たような、けど微妙に違うtaskをいっぱい定義したりすると名前まで酷くなってきます。こんなかんじに。 @…

認証と認可

OpenIDだのOAuthだのFacebookコネクトだの認証だの認可だの白だの黒だの!たまに混同しそうになるので認証と認可についてまとめておく。 認証 英語でAuthentication -> 辞書的な意味*1 目的 アクセスしてきたユーザーが誰なのかを特定すること。 一般的な認…

PyconJP2011のかんそうぶん

PyCon JP 2011行ってきました。 プログラムひとこと感想 Webフォームウィジェットツールキットを総括する - aodag 途中から参加。種類が多く、機能も使い勝手も千差万別と中々選定が難しいが、やっぱりdeform使っとくのが一番安定しそうな気がした。 Object-…

英語弱者のためのchromeプラグイン

python界の英弱、feizです。英語の文章を読む時に便利なchromeの辞書/翻訳プラグインを2つ紹介します。英弱必携。 英辞郎 英辞郎 on the WEB 拡張機能 - Chrome Web Storeページ内の単語選択>右クリックメニュー>英辞郎で検索 で英辞郎 on the webの検索結…

form.clean_xxxの実行順

重要な追記 コメ欄でぼこすか殴られたので追記。 こういう複数のフィールドにまたがるバリデーションはcleanを使うべきで、↓みたいなコードを書くべきではありません。 この記事の趣旨は今まで不定だと思いこんでたclean_xxxの実行順が実は決まってたという…

django標準テンプレート構文で文字列の足し算ぽいこと

forloop.counterを使って「お届先住所X」という文字列をテンプレート上で作りたかったのだが、あいにくdjangoテンプレートは簡単には足し算ができるようになっていない。addフィルタを使えば "お届け先住所"|add:"いち"のようなことはできるのだが、"いち"を…

しごととおかねとエンジニア : 新卒準備カレンダー2011春

新卒準備カレンダー 2011春 : ATNDというイベントに参加させていただきました。なんかちょっと、偉そげなこととか書いてみたいと思います。とはいえ、他の方みたく魔法とかシリコンバレーとかかっこいい言葉はでてきません。すいません。 内容 エンジニアと…

案件ふりかえり

とある案件が終わった。相変わらずきっつい納期だったうえに、全メンバー片手間の情況でよくやれたなと自画自賛していいと思う。ふりかえりをツイートしたら清水川大明神先生様に「それブログで」って言われたので、すこし整理してみた。 テスト テストを書…

案件ふりかえりそのに

またも清水川大明神先生様に「それブログで」って言われたので、もうすこしまとめてみた。まだまだである。 お客さんとプログラマー プログラマー(SE?)の仕事はお客さんが持ってるもやもやとしたアイデアを最終的に動くプログラムというカタチに変換してあ…

デフォルトマネージャという地雷

djangoのモデルデータはマネージャというオブジェクトを介して取得します。独自定義のマネージャを使うことでデフォルトとは違う挙動をさせることができて便利ですが、地雷もありますよという話。http://docs.djangoproject.com/en/1.2/topics/db/managers/#…

デフォルトマネージャについての補足

重要なところの説明が抜けていたので補足。 先にまとめ get_query_setをオーバーライドしたマネージャを作ると地雷原になりうるので、オーバーライドしないor↑の対策を忘れないようにしましょう。逆方向リレーションのことを考えると前者がおすすめです。 ge…

HTTPRequestオブジェクトの手動生成

ビュー関数のテストをするときにてきとうなHttpRequestが欲しいなら1. django.http.HTTPRequestをつかう from django.http import HttpRequest request = HttpRequest() request.POST["key"] = "val" 2. django.core.handlers.wsgi.WSGIRequestをつかう requ…

デコレータを外す

おはこんばんちわ。情弱王子feizです。最近とある方の影響で自動テストに凝っておりまして、それはもうセルフプレジャーを覚えた猿のようにテストを書いてるとかいないとかな毎日です。 さて Pythonでテストをかいてると、たまにデコレータが邪魔になること…

2010年ふりかえり&2011年目標

どうも大変ご無沙汰です。なさけないかぎりです。 ふりかえり △それなりにしごとができるようになった気がする ▼ブログちっともかかなかった ▼新しい言語とか覚えなかった ▼私生活が破滅だった 改めてリストアップしてみるとなんとも碌でも無い年ですね。 目…

pythonのimportあれこれ

importでハマって丸一日つぶしたのでメモ。 基本的なことがら Pythonのモジュールインポートのしくみ6.12 import 文このへん読む 今回の教材 feiz@dev % tree /home/feiz/tmp/imp/ |-- ddd.py |-- xxx | |-- __init__.py | |-- aaa.py | `-- eee.py `-- yyy …

hg diff

まことに情けない話ですが、あるブランチ全体のdiffをとるとき*1こんなふうにしてました。 $ hg diff -r 1234:1237 > /tmp/feiz.outdiffを見たいブランチの先頭リビジョンと最終リビジョン番号を調べてその間のdiff。こんなとり方をすると何が困るかというと…

チケットの粒度

開発初期とか機能に取り掛かるときは〜〜機能の開発 とかでかい粒度のチケットだけでいい 成果共有の速度と手軽さが重要。 チケットの子チケットとか切ってるとブランチも多段になっていくので、defaultマージしづらい=共有遅れる=破滅 ひとそろえ動くよう…

クラスベースビューとreverseとDjangoのURLディスパッチ

以下、django1.2.0時点の話です。 参照: クラスベースビューとデコレータとkwargs - logiqboard viewクラスを使ったURL設計 前回の記事でいうところのshopとgoodsのように、URL・機能的にはshopという大枠にまとまってはいるんだけど、その中に小機能がいっ…

クラスベースビューとデコレータとkwargs

クラスベースビューとデコレータを駆使するとDRYに書けていいですねーという話。 たとえば こんなURL設計のページを実装するとする。 /shop/<shop_id>/ /shop/<shop_id>/goodsA/<goodsA_id>/ /shop/<shop_id>/goodsA/ /shop/<shop_id>/goodsA/<goodsA_id>/buy /shop/<shop_id>/goodsA/<goodsA_id>/confirm /shop/<shop_id>/goodsA/<goodsA_id>/buy_finish /shop/<shop_id>/</shop_id></goodsa_id></shop_id></goodsa_id></shop_id></goodsa_id></shop_id></shop_id></goodsa_id></shop_id></shop_id>…

Django+Tritonnで日本語全文検索の追記

Django+Tritonnで日本語全文検索〜重み付けもあるよ〜 - logiqboard テーブルの持ち方 レプリケーションのスレーブの一つをサーチ用にして、そこのBookテーブルにインデックスを張ればよいという話をしてもらった。なるほどそれならマスタ書き込み系に影響を…

java-ja温泉2まとめ

ダブルスポイラー 4までやった 記事 3件消化。 botengineがやっとできた 汎用Bot記述ライブラリみたいな形に落ち着いた。スペシャルサンクス id:nullpobug 育英した した。 やりのこしたこと0。いい温泉でござった。また行きます。

EC2とMySQLとダンプリストア

EC2上のMySQLで、大量データをダンプリストアしようとしたらとんでもない時間がかかりましたという話。 経緯 EC2で運用してるサイトのMySQLのibdata1が結構なサイズに膨らんでしまったので、ダンプリストアして縮小+ibdata1を分割しようとした。 誤算 7000…

第二回java-ja温泉でやること

ロマンスカーの車窓から更新。 ダブルスポイラーやりこむ 溜めてる記事ネタ消化 ぱいそん?

Django+Tritonnで日本語全文検索〜重み付けもあるよ〜

DBにTritonnを使ってDjangoから全文検索をする という話 Tritonnってなに?どうやって入れんの かつあい モデル構造 class Book(models.Model): """本""" title = models.CharField(max_length=255) desc = models.TextField() pub_date = models.DateTimeFi…

俺の例大祭7

イベントに行き始めてからずっとやりたかったコレを遂にやる日が来た。 本96冊、CD8枚、総計102アイテム。買い物って、気持ちいいよね!

設定ファイルのバージョン管理

.vimrcとか.hgrcとか.profileとかを新しい環境ができるたびにどっかからコピーして設置して・・・というのに飽きたのでbitbucketで一元管理できるようにした。 方法 1. .configというプロジェクトをbitbucketに作成 2. ~/でhg pull http://bitbucket.org/fei…