PHPUnitが意外と入らない

pearPHPUnitって意外とすんなり入ってくれないですよね。

という訳で必要な最小限のコマンドだけメモ。

sudo pear upgrade -Z pear
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
sudo pear install -Z --alldeps phpunit/PHPUnit

-Zがいい感じのはまりポイントでした。

5分で作るナウでヤングなvim環境

なんだこのタイトル。

 

vimのバージョンアップからプラグイン(unite.vimやunite.grep,vimprocなど)の導入まで所要時間5分、コマンド3つぐらいでいけるようにしてみたので書いておく。

 

複数の端末でvimを扱わなければいけないなんてことはよくある話なわけです。自宅のvim、会社のvimなどなど。なのでそれらの環境をそろえようと思ってvimrcをgithubに上げて管理してる人は多いとおもいます。

 

ただそれだけでは必ずしも完全に揃うわけではなかったりします。

まぁ理由は色々考えられますが、一番面倒なのはvimのバージョンアップが必要な場合じゃないですかね

特に最近主流となっているunite.vimやvimprocは7.2以上を前提としています。なのでそれより古い場合バージョンアップが必要です。shougoさんの偉大な功績を是非使いましょう。

 

とは言えバージョンアップはちょっと怖いし手間もかかります。そういうわけで、vimrcのcloneからvimのバージョンアップまでコマンド三つ(ぐらい)でできるようにしてみました。

こちらです。

https://github.com/gong023/vimsetup

使い方はreadmeにも書きましたが

  1. git clone https://github.com/gong023/vimsetup
  2. vimsetup/setup.sh
  3. (vimを開いて):NeoBundleInstall
(2012/07/14修正)
uu59さんの修正によりNeoBundleInstallも自動的に行ってくれるようになりました。ありがとうございます!
 
の3ステップになります。これで僕とだいたい同じvim環境になると思います。
 
このスクリプトを実行する上での注意点をいくつか書きます。
  • このスクリプトを実行するとvimrcが僕のものに置き換わりますので注意して下さい。また古いバージョンのvimと今使っている.vimrcは~/tmp/vimsetupにバックアップをとるようになっています。vimrcはシェルが失敗したら必ず元の位置に戻すようにして下さい。(というかvimrcはこことは更に別の場所にバックアップを作っておいたほうがいいです)
  • シェルを実行する際はvimsetup/setup.shのディレクトリで行なって下さい。ディレクトリが違った場合の挙動を修正するまでの精度はありません。
  • このシェルはlinux環境のvimのアップデートを想定しています。例えばmacのローカルではやらないでください。
  • 途中で「sorry.make vim7.3 failed」とでたらmakeを失敗しています。vimのアップデートに必要なものが足りてないっぽいので頑張ってググって問題を解決してください。そして5分は諦めてください。すいません。
  • ただmakeを失敗してもvimのバージョンやvimrcは元のままなので大丈夫です
 
最後に補足するとconfigureの際にprefixを指定しないのは環境によってvimコマンドの位置が違うから合わせてみました。指定してもいいのかもしれない。
 

まるちゃんに特定のリプライが来たらリストに入っている人に拡散させるようにした

ギークハウス高円寺の住人まるちゃんに「all」「みんな」という単語を含めてリプライをすると、住人全員にそのリプライを拡散してくれる機能を作りました。

 

rubyでStreamAPIなんてもうとっくに市民権を得ているのでぶっちゃけ書くことはないのですが、スクリプトを動かしているサーバーはかたさん(id:hotchemi)が塩漬けにしていたというサーバーを借りているのでこの場を借りてありがとうございますとお伝えしたい。

 

あと@飛ばすメンバーはぎーまるちゃんのリストに追加されてる人たちから動的に作成するので住人は勝手にリストいじったりしないようにお願いします。

 

rubyはこれでかけるのいいですね・・・

Twitter.list_members('geekmaru-member').attrs['users'].each do |key,value|

end

一応githubにも上げました

https://github.com/gong023/public-product/blob/master/marubot/userstreamtweet.rb

 

 

 

クックパッドコンテストのお題二人で三つリリースしてみた

今までなぜ僕ははてなブログをかたくなに拒否していたのかというと、なんとなくカッコつけてて嫌だったからだ(本筋とは関係ない話) 

 

 昨日、クックパッドコンテストに参加してきました。

クックパッド本社ではオフィスを開放してシェフ呼んでうまいランチとか出していたらしいですね。まぁ、目が覚めたのが昼過ぎだった僕には全く関係のない話ですね。

 場所はギークハウス武蔵小杉を借りることになっていたので、とりあえず移動しつつ電車のなかで出されたお題を確認しました。「一日の終わりを楽しくするもの」でした。

 

ギー杉につくと早起きな住人のみなさんが既に稼働していました。自分でなんか作ろうかなーとも思ったんですが、あんまり他の人とハッカソンしたことがなかったので、とりあえずeffyさんの作るものにコミットすることにしました。

effyさんの作りたいものを簡単に聞いて、DBとクラスを一つ作ったところでギークハウス水道橋の@hnnhnが到着。

 

前から添い寝アプリを作ってみたかったらしく、今回のお題にぴったりだろうということでさっそく実装し始める。あんまり触ったことのないcakePHPを教わりつつ。

 

で、最初にできたのがこちら

 

添い寝

 

twitterfacebookの友達に「添い寝したい」的なことを言うというだけですがhnnhnのお友達からかなりいい反応いただいたみたいです。

 

小規模な身内だけとはいえ続々と色々なひとが登録してくれて、好き勝手に使ってくれて、twitterで拡散されていくサービスの中心点に自分がいれる喜びとは興奮は、ちょっとそこらでは味わうことのできないものです。幸福と呼んでいいものだと僕は思います。

使っているうちに続々バグがでたりdumpしてる変数ユーザーに見られたりしましたが、それも楽しくてしかたなかったというのが正直な感想です。僕らはまるでエンジニアリングを通してジャズを演奏したりDJをしている気分でした。オーディエンスの反応を見ながら繰り返しサービスを変形させていく面白さは、やっぱりエンジニアだからこそ味わえるものだと思います。

 

一つ目のサービス「添い寝」を作って 「添い寝」という単語がバズっていくのにすっかり気をよくしてしまったので、僕とhnnhnはまた別のアプリも作成することに決めました。

 

時間は既に深夜の2時を回った頃だったとは思いますが、とにかく思いつきで手を動かしていきました。

4時を回るぐらいにはすっかりハイテンションになっており「歌舞いてね?それ歌舞いてね?」「いやーそれ歌舞いてるわー」とか1センテンスに絶対一回以上「歌舞伎」という言葉が出てくる会話をしていて、なんというかもうよくわかんなかったです。

 

そんなテンションで僕が作ったアプリがこんな感じです。

 

添い寝fav

 

このアプリは、夜の間に「添い寝」というツイートをすると、同じアプリに登録した全員でそれをふぁぼりにかかるというアプリです。例えばこのアプリに10人登録していると、「添い寝」とつぶやいただけで10ふぁぼもらえるというわけです。

「添い寝」という言葉に反応するので、先に作った「添い寝」との相性も良いというわけです。

 

ちなみにhnnhnはこんなアプリを作ってました

 

さっぱりぱりぱりパリジェンヌ

 

これは渋ハウスの人たちとコラボしたアプリで、渋ハウスのパリジェンヌっていう人っぽいツイートを決まった時間につぶやくアプリらしいです。文章作成のアルゴリズムは圧縮新聞botと同じようです。

 

 

まぁそんな感じで二人で三つのアプリを完成させた時にはギー杉のみんなも含めてぐったりしており、リビングはまさに祭りのあとって感じでした。

コンテスト自体はルンバにすらかすりもしない自信がありますが、僕自身楽しめたので全然おっけーだと思います。

 

ただこのコンテストを通じて色々な力不足を感じたのも事実で、例えば反省点として一番大きいのは身内だけでなく大勢の人に楽しんでもらうアプリを作ろうという考えが自分の中で圧倒的に不足しているし苦手なのかもしれないということです。これはビジネスっぽい頭がないのとは違います。ビジネスライクな考え方とはまた別に、多くの人に使ってもらう方法はあると思います。

あと技術的な面でいえば、やっぱり普段使い慣れない技術は24時間しかないコンテストのなかでは使い物にならない。時間をかければもっといいものはできただろうけど、限られた時間の中でもすぐにできることが自分の実力なのだと思います。これはもう精進するしかありません。

 

こういう時限付きハッカソン、機会があったらまた参加したいですね。