楽天テクノロジーカンファレンスでLTしてきました!

裏の仕組みとか説明しだすと、別にやっていること自体はそれほど難しくないんだけど、mixiアプリをさわってない人には
ぽかーんなので前提から説明する必要があって、それだとさすがに5分間では難しいなぁとかいろいろ思ったので
全部「コードみてくれ」ですっとばして特徴だけ述べたからだいぶ地味な発表になってしまった。


デモ的なものもちょっとやればよかったのかと反省。


まぁ要約するとアプリ作る人が余計なこと考えずにアプリ開発に注力できるものっていいたかった。
まだ足りないところはいろいろあったりしますが、方向性としてはぶれずに開発してます。
負荷的なところとかはdrecomの中の人が日々四苦八苦しているだろうからきっとそれを還元してくれるはず。

git submodule

入門gitを読んで知りました。
svnでも似た機能があるのであるだろうとは思ってたんだけど調べてなかった。

railsだと更新が頻繁だったり自分で管理しているpluginをsubmoduleにすると便利ですね。


使い方


★現在のsubmodule一覧を表示

% git submodule


★submoduleに追加

% git submodule add git://github.com/unshiu/peeled-unshiu-mixi.git vendor/plugins/mixi

submoduleの自体の開発をする場合はgithubの場合Your Clone URLの方にしておけばok

% git submodule add git@github.com:unshiu/peeled-unshiu-mixi.git vendor/plugins/mixi


★submoduleを取得

% git submodule init vendor/plugins/mixi
% git submodule update vendor/plugins/mixi

9/30付けでドリコムを退職し、10/1からライブドアでお世話になることになりますた。


もちろんunshiuはそんなん関係なく続けます。
私がスムーズに続けられるようにドリコムの関係者の方にはだいぶ骨をおってもらいました。
自分の成果物を認めてもらった上で退職後も続けられる環境をつくってもらえるのは
エンジニア冥利につきるところはあります。


オープンソースという形をとったことだからこそできる形で、あんまりこういうケースも
聞いたことないので(海外はよくしらないですが)いい結果を残せるようにがんばりたいです。


って退職祝いでこんなんもらっていいのかいって恐縮してしまったのですがPS3もらった!!!!
大事に使います!

f:id:gaooh:20091001223624j:image

あと一緒にお酒もw

f:id:gaooh:20091001223641j:image


最後に慰労会でさんざん飲まされてVIP扱いしやがってだいぶ辞めるのを後悔させるステキないやがらせをうけましたが、
そんなことをしてくれる人たちのためにもがんばって結果だしていきたいです。


いじょ。

バックアップをgmailへ

そういえばVPSなレンタルサーバのバックアップしてないや。
ちゃんとやりたいけなー。あ、このレンサバ、追加料金払えば丸ごと日時バックアップとってくれるのね。
いやそこまでじゃなくて、とりあえず個人的なwikiとかだから「あのディレクトリだけ」とれればいんだけど。


とふとおもいたったので、バックアップしてgmailに添付ファイルとしてなげるの設定をしてみました。
gmailに投げてくれればなにかの問題でバックアップとれてなかったというのも気がつきやすいですしね。


↓みたいな感じをcronでしかけたらさくっといった。

#/bin/sh

BACKUP_HOME=/home/gaooh/backup
DIR=/var/public_html/dokuwiki
TO=アドレス+backup@gmail.com

tar cfvz $BACKUP_HOME/dokuwiki.tar.gz $DIR
echo 'success' | /usr/local/bin/mutt -s '[BACKUP] dokuwiki' -a $HOME/dokuwiki.tar.gz -- $TO
rm -f $HOME/dokuwiki.tar.gz

最初ちょっとしらべたら uuencode を使ってメール添付している例が多かったんですが、gmailだとuuencodeで添付してあっても
添付ファイルだとなぜかみなしてくれませんでした。
ちゃんと調べたら uuencode 自体がだいぶ使われてないっぽいので、muttってのをつかうことに。


muttは↓のようにさくっとインストールできた。

$ wget ftp://ftp.mutt.org/mutt/devel/mutt-1.5.20.tar.gz
$ tar xfvz mutt-1.5.20.tar.gz
$ cd mutt-1.5.20
$ ./configure
$ make
$ make install

趣味のものならこんなんでOKかなー。

Rubykaigi2009でLTしました!

とりあえず資料。

カラーリングはunshiuということで「グリーン」と「オレンジ」。そしてそれが映えるように背景は「ブラック」とすぐ決まりました。
今後もこれベースにしようっと。


発表の際はだいぶ早口になってしまったなぁとは思ったのですが、
実は前日何回練習しても5分におさまりきらなかったので、あのスピードがギリでしたw
一度でも頭が真っ白になると時間オーバーする計算だったのできっちりおわれたときは「よっしゃー!」って心の中で思ってたりしました。


なにぶんあがり性なものなので、「どうやったらあがらないか」を発表の1週間前から発表内容そっちのけで考えてたんですが、
よく考えたらあがり性なわりに、小学校のとき学習発表会で主役とかやっているんですよね。
そういえば役者の人って特に舞台役者の人っとかって舞台にあがると人格変わる系の人が多いなぁ、そうか役に入りきればいいんだという結論で、その手法でいったらおもいのほか成功しました。
まぁだんだんLT慣れしてきたというのも若干あるかも。。。


そんなことはおいといて


unshiuです!


LTだと使い方とかきっちり説明できる時間はなかったのであまり詳しく触れていないので、
詳細はぜひ↓で


http://wiki.unshiu.jp/


といってもまだ情報まとめきってないですし、「足りない点」をあげるといくらでもあるんですが、それは今後がんばります!

--no-commitを覚えた

gitを用いてある修正のマージとかをする際に、普通に

git merge hogehoge

とやってしまうと、コミットログに Merge for xxxxx... と記録されちゃう!
シンプルなgitのみの管理だと別に気にならないのですが、
git-svnを利用して git と svn でそれぞれソースを管理していると、片方のログには一体何をコミットしたのかわからない
という状況になってしまって、困ったなぁと。


特に困ったのは unshiu は社内の svn, 社外の githubでソース管理をしているので、
github側にはマージした履歴しか表示されず


「え?何しているの?」状態に。


何をしているの?だけならまだしも、なんとコミットした人の名前まで履歴としてひきづってしまうのですよね。
gaoohっていうアカウントでコミットしてても、社内では本名のsvnアカウントを当然使っているのでその名前がgithubにorz


そこで --no-commit オプションです。
これをつけて merge や cherry-pick をすると、コミットはされず、変更点だけ既存のブランチのソースにマージされます。
その後コミットする際は自由にコメントをつけられるので、コミットログが Merge for xxxx... ばっか!ってことは防げる。
もちろん本名の流出も防げる!


# 本名の流出より、大事なのは私の本名とgaoohが結びつかない人が「こいつだれだよ」ってなってしまうことのが問題ですが。
# 本名と似ているハンドルならともかく(汗


わーいわーい。git楽しい。

git cherry-pick を覚えた

「全部mergeは困る。この変更だけgithub側にもmergeして更新したいのに」

って場面に遭遇したので、そんなことができないかしらべてみたら、あっさりできることがわかった。

git cherry-pick commit-id

でいいらしい。
なんかかわいらしいコマンド名。