Hatena::Groupsubtech

hakobenikki#

2012-02-23

git diff いろいろ 11:07

コードレビューをする際には変更をいろんな方向から調べて正確に把握する必要があります。git diffにはいろいろ便利オプションがあるので、レビューの際に便利に使っています。

最近知ったやつだと --dirstat オプションと --submoduleが便利度高いです。

変更全体の把握に役立つ

  • git diff --stat
    • 変更されたファイルの一覧と変更行数を表示
  • git diff --dirstat
    • ディレクトリごとにどの程度変更されたか割合を表示
  • git diff --submodule
    • submodule ごとに変更箇所のlogを表示する
    • submoduleまでおりていってlogみなくてもだいたいの変更がわかるので便利

個別の変更の把握に役立つ

  • git diff --word-diff=color
    • 単語ベースのdiff
    • 行の中の一部だけが変更されてるのをみたりするのに便利
    • color を指定すると色の変化でdiffがわかって良い
  • git diff --ignore-space-at-eol
    • 末尾空白の変更を無視する
    • なんかのついでに末尾スペース削りまくってるみたいな変更に対して便利
  • git diff -b
    • 空白の変更を無視する
    • このへん多分インデントかわっただけだよね.. そうだよね.. て心配なときに確認するのに便利

もろもろ役立つ

  • git diff --ignore-submodule=dirty
    • コミットしてないけどなんか変更してる( = dirty) なsubmoduleの変更を無視する
    • 適当にdiffを渡したいけど、submoduleは関係ない.. みたいなときに便利

2012-02-18

rubyのビルド 13:11

わすれがち

> ./configure \
 --with-out-ext=tk\* \
 --with-arch=x86_64 \ 
 --prefix=$HOME/.rbenv/versions/1.9.3-p125 \
  --with-readline-dir=/usr/local \
  --with-libyaml-include=/usr/local/include  \
  && make && make install

--with-gcc=/usr/local/bin/gcc-4.2が今回からなくてもいい。 いつもどおり gem install capistrano だけします

2012-02-15

22:08

Google Chromeをオプション付きで起動したら便利というはなしを聞いたので、Google Chromeを起動するためだけのAutomatorを作って、Dockにいれてる。

f:id:hakobe932:20120215220128p:image

--no-referrersでリファラをつけない。 --allow-running-insecure-contentBy default, an https page cannot run JavaScript, CSS or plug-ins from http URLs. This provides an override to get the old insecure behavior. というやつ。良くはないんだけど、良い方法がなくてとりあえずつけてる...うーん..

homebrew環境でTerm::ReadLine::Gnuのインストール 13:57

いつも忘れるのでメモる。

> cpanm --look Term::ReadLine::Gnu
> perl Makefile.PL --includedir=`brew --prefix readline`/include --libdir=`brew --prefix readline`/lib
> make
> mak install

homebrewreadlineをいれると /usr/local/{lib,include} には入らないので指定する必要がある。

dotdot2012/02/18 23:50brew link readline すれば解決するということはないですか。

2011-10-17

[][]YAPC::Asia TOKYO 2011のLTでアニメについて話してきました 22:00

今年も YAPC::Asia TOKYO 2011 に参加して参りました。

テストに関する話でメイントークに応募したのですが、残念ながら落ちてしまったので、代わりにLTでアニメの話をしてきました。ざっくりとした内容で申し訳ない感じでしたが、聞いていただいたみなさま、ありがとうございました。

資料は以下に公開しましたが、LT用の資料ですので、そんなに役にたたないと思います..

今回のLTは、WebService::SyoboiCalendar について話しました。しょぼいカレンダーというたいへん便利なアニメ専門の番組表サイトがあります。アニメに関するデータベースが非常に充実しているのですが、Perlから利用しにいくいため、WebService::SyoboiCalendar というモジュールを作成しました。

WebService::SyoboiCalendarは以下のリポジトリで開発していますが、まだまだ機能が足りないので、気に入った人は何かコードを書いてもらえると嬉しいです。今後はもう少し実用的なアプリケーションを書きつつ開発を進めていく予定です。

感想

去年と引き続きYAPCに参加しましたが、今年もいろいろな方と話せて楽しく過ごせました。ネットで見かけるハッカーの方達がどういう雰囲気でコード書いているのが感じられるのがたいへん刺激になってよかったです。

他社サービスの裏側の話しなどを聞くと、わりと自分たちが苦労している部分と似たような部分で苦労されていて参考になります。「あーあるある」とかいいながら、解決方法について議論できて、自分達のサービスにも生かせそうです。

去年も今年も色物な発表しかしていないので、来年は技術を中心にした話をできるようにネタをあたためたいです。ちゃんと動く便利なプロダクトがあると、いくらでも発表できる気がするので、なんとかがんばろうと思います。

最後に、YAPCに関わったみなさん、おつかれさまでした & ありがとうございました!YAPCに参加すると、ヤル気がでてくるので、来年もがんばって参加したいです!

面白かった発表*1

*1:antipopさん形式です

2011-09-03

brew install ioがbuildできないのを直した 00:52

7つの言語 7つの世界 をちまちま読んでます。紹介されてる言語の一つであるioをbrew install したらビルドに失敗するので、それをpatchあてたFormulaを作った。

https://github.com/hakobe/homebrew/commit/b62eee8c805fab0488cc07dcff05832756e85ac3#diff-0

tagでsha1を指定しなくてもいいはずだけど、いまのheadが普通にビルド失敗するっぽい*1。ので明示的に今日現在ののHEAD^を指定してる。

io動くようになったので、Object clone するところろまではやってみた!プロトタイプ!

*1:原因はよくわかってないけど、Lionにしかないライブラリつかってる?