下目黒でシェアハウス始めた
パーティを11時で終わらせるな
という言葉があって、確かソーシャルネットワークだったと思うが、僕は割とこの言葉が好きです。
ところで、この7月から新しいシェアハウスに移ってみた。
- http://r7kamura.hatenablog.com/entry/2013/07/02/013533
- http://naoty.hatenablog.com/entries/2013/07/01
- http://blog.ainam.me/2013/07/15/%E5%BC%95%E3%81%A3%E8%B6%8A%E3%81%97%E3%81%9F/
ここの人たちに声かけて住み始める前、僕はギークハウス高円寺とギークハウス水道橋というところにいて、それぞれ思い出深いところではあったのだけれど、色々あって今の形に落ち着いた。
ギークハウス高円寺という場所は、個室が一切ないシェアハウスで、一つの部屋に二段ベッドが2つで計4人、それが3部屋ある古い一軒家だった。住民間の距離が(物理的に)とても近く、かえってそれが良い方向に働いてとてもアットホームな場所だった。距離が近いとそれなりにたまるストレスもあるのだけれど、それ以上に住民間で色々話してゲラゲラしてた思い出が多くて、思い返してみると楽しかったなぁと素直に思う。ここに住んではじめて僕は、家族でもなければ恋人・友人とも違う「住人」という特殊な対人カテゴリを得た。
シェアハウスの住人というのはとても不思議な人間関係で、所詮は他人なので大切な部分はお互いなかなか話さない。けれど、一緒に住んでいるうちに積み重なって共有される時間とか物事がなんとなく意味を持ってくる。どうもうまくは言えないのだけれど、とにかく僕はそうやって安易に得られる人間関係に居心地の良さを感じた。一人でいるのが好きなくせして寂しがり屋な人はシェアハウス向いていると思う。
高円寺には一年以上いたのだけれど、社会人になってからは個室ナシの空間はキツイなーと思い、個室があるギークハウス水道橋というところに移った。水道橋は、当時ギークハウス文化の中心地だったと言っていいと思う。地理的にも東京の中心に位置していて、色々な場所から色々な人が集まってきた。もはやギークという概念はその文化の一部でしかなく、リビングにはプログラマ・ニート・就活生・スナック勤務のおねーさん・DJ・芸術家の卵・平田ガールズ・その他よくわからん人が曜日とか関係なく集まってきた。いや。ほとんど平田ガールズだった気がしてきた。どうだろう。あとそういえば漫画の「シマシマ」でしかみたことない添い寝屋という人を始めてみたのもここだ。 水道橋はとても人が「濃い」場所で、僕は毎夜毎夜「東京はいろんな人いるなぁ」と思っていた。リビングは人の流れのうねりのような吹き溜まりのような場所で、とにかくそこに人が集まっていることが奇跡のような感じがしたし、僕はそれを眺めているのが好きだった。
話は全然違うのだが、秋葉原にMOGRAというクラブミュージックの有名な箱があって、気分がいい時にいくととても楽しい。僕が行くのはだいたいアニマトかボカマニで、特にアニマトなんかはオールナイトでやってるから、イベントの時間が深くなるにつれて、どんどん日常生活から遠ざかる感じがする。日をまたいだ頃に終電がなくなって、2時ぐらいに酒回ってハイになって、3時過ぎた頃に足が痛くなって、それでもどっかの原住民みたいに踊ったり跳ねたり叫んだりしてると、だんだんよくわからん感じになってるけど爆音は爆音で、とにかく気分だけが気持ちよく吹っ飛んでいく。 こんな激しくはないけど、僕が水道橋で感じた感覚は割とこれに近いんじゃないかなと思う。なんかよくわからんフロアの一体感みたいな空気に酔って、あーもう隅っこのほうで溶けてるわみたいな気持ちになってくる。
そういう空間において、そこにそういう音楽とか映像が流れているということに実はそれほど強い意味はなくて、とにかくそこにそういう空気が成り立っているのが最も大事なことだと思う。夏祭りもだいたい同じ原理だ。あれが祭りとして成り立っているのは祭事が行われるからではなくて、夏休みに行われるからだし、浴衣を着ていいことになっているからだし、まぁとにかくそういう様々な要因を組み合わせて奇跡的なバランスでそうなっているのであって、それを大事にしないことには祭りは祭りたりえない。
水道橋もそういうバランスの上に成り立っていたのだけれど、残念ながらある日それは失われてしまった。 早い話、そういう空気が許せない人たちの希望によって、内部的から崩れた。夜中はゲスト来訪禁止というルールができたし、他にも善意で行われていたことがルールになって、保たれていた曖昧さは崩れた。一応断っておくが、そういう人たちを批判する気持ちは一切ない。バランス感覚が違えばそれまでだと思う。部屋キレイになったし。 ただ、ゆるい連帯の中で曖昧に生まれたものでしか本質的ではないと思う。
水道橋の出来事は、僕にはパーティーが11時で閉まってしまった感じがした。終電前のイベントには意味がない。 だから、新しく声かけてシェアハウス作ってみることにした。 流れに身を任せるけど、ここが二次会会場になればいいなとぼんやり考えている。
しかし他の住人はエンジニアとして全員が全員で僕なんかより10倍も20倍も優れている人たちなので、結構死にたい。 家の設備とかについては他の住人がもう書いてたしなるべくスピリチュアルな事書いてみた。 声かけたらなんかすごい人来ちゃった感あって死ぬ。 それにしてもブログ塩漬けにしてたし、元々プライベートなこと書かなかったのでなんか恥ずかしい。振り返ったら長くなった。
「長い。三行で。」と言われそうなので三行でまとめます。一行、いや二行でいいです。
http://www.amazon.co.jp/registry/wishlist/31WJYTS73D19K http://www.amazon.co.jp/registry/wishlist/2DFLW2BAK8HT/ref=cm_sw_r_tw_ws_Bj.4rb0JQ70B6
ひっそりとあげ
ニコニコ動画のランキングから動画を落とす&mp3にするスクリプト作った
作りました。
https://github.com/gong023/nicoaudio
もちろん全部の動画落としてくるわけじゃなくて「歌ってみた」とかそのへんのmp3にする価値があるやつを狙って変換します。あと、処理が終わったらtwitterのDMで処理にかかった時間と成功or失敗をお知らせしてくれます。
2,3ヶ月前からcronで毎日回して運用していますがそこそこ動作が安定してきた。これのおかげでだいぶ楽になりました。新しい曲を何もしなくても毎日聞けるのはいい。
READMEに簡単な使い方書いてあります。もし使いたい場合はどうぞ。(といってもcloneするだけじゃ動きません。READMEもいつかはちゃんと最後まで書きます)
作っていて気になっていたことを書きます
rubyのマルチスレッド
このスクリプトはruby1.9.3のマルチスレッドを使って動画のDLを行なっています。ベンチマークを取ってみたら処理速度が5倍になっていてビビりました。
マルチスレッドなし --
D, [2012-08-23T04:39:06.525075 #16552] DEBUG -- : get / all / 3.560000 5.090000 8.650000 (1638.229236)
マルチスレッドあり --
D, [2012-08-23T04:08:10.576479 #16269] DEBUG -- : get / all / 4.200000 6.380000 10.580000 (319.074013)
rubyは1.9.1からカーネルスレッドになったらしいのですが、特別な事情がない限りスレッドセーフになっていて、なんちゃってマルチスレッドみたいになっています。ただIOが絡む場合は別で、今回はそのケースに当てはまるのでちゃんと効果が出たみたいです。
その辺りを検証してくれているブログもありました
http://www.kaeruspoon.net/articles/726
MySQL
無駄にmysql使ってます。videoのidが一意であることを保証するためです。それだけです。ええ。
完全に大げさ。
yamlでいいじゃんといえばそれまでなんですが
insert ignore楽じゃん。indexもあるしさ
その他
- もっとrubyの黒魔術使いたかった
- なんか書こうかと思ったけど忘れた
せっかくmp3がとれたので今はブラウザでプレイヤー作ってます
ニコニコ動画のランキングからmp3を自動抽出
タイトルの通りですが、ニコニコ動画の総合ランキングから適当な単語を抽出してそれをmp3に自動変換してくれるスクリプトを作りました。
ただしあんまり完成度は高くないので、しばらく個人で運用して使い勝手とか高めていきたいなーと思っています。
糞糞糞うんこコードですが一応githubにもさらしました
https://github.com/gong023/nicoaudio
処理の手順としては
- ニコニコ動画のランキングをとってくる
- そのなかで「歌ってみた」とかを含むタイトルの動画を日時と一緒にMongoDBに保存
- mongoDBの情報をもとにニコニコAPIで動画(mp4)を取得
- mp4をffmpegでmp3に変換
すごく有り合わせのものでいい加減に作ったのでこのスクリプトのいい所なんてぎりぎり動く所ぐらいなのですが、リファクタ&機能追加はしていきたいなーと思います
とりあえず
- スクリプトをrubyで統一(getflv...)
- webインターフェースの作成
- ブラウザからDLできるようにしたい
- 検索するキーワード指定できるようにしたい
- カテゴリ選べるようにしたい
- ある程度ランキングの期間指定できるようにしたい
これぐらいは考えてます。まぁいつできるか知りません。
昔はいろいろブラウジングしながら好きな曲とか見つけてたんですが、まぁさすがに色々忙しくなってきてなかなかそういう時間をとるのが難しくなってきました。で、ある程度自動化できることはできたらいいなぁと思って今回のようなスクリプトを書いてみました。こういうのエンジニアリングで解決できるのは楽しいです
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にも書きましたが
- git clone https://github.com/gong023/vimsetup
- vimsetup/setup.sh
- (vimを開いて):NeoBundleInstall
- このスクリプトを実行するとvimrcが僕のものに置き換わりますので注意して下さい。また古いバージョンのvimと今使っている.vimrcは~/tmp/vimsetupにバックアップをとるようになっています。vimrcはシェルが失敗したら必ず元の位置に戻すようにして下さい。(というかvimrcはこことは更に別の場所にバックアップを作っておいたほうがいいです)
- シェルを実行する際はvimsetup/setup.shのディレクトリで行なって下さい。ディレクトリが違った場合の挙動を修正するまでの精度はありません。
- このシェルはlinux環境のvimのアップデートを想定しています。例えばmacのローカルではやらないでください。
- 途中で「sorry.make vim7.3 failed」とでたらmakeを失敗しています。vimのアップデートに必要なものが足りてないっぽいので頑張ってググって問題を解決してください。そして5分は諦めてください。すいません。
- ただmakeを失敗してもvimのバージョンやvimrcは元のままなので大丈夫です
まるちゃんに特定のリプライが来たらリストに入っている人に拡散させるようにした
ギークハウス高円寺の住人まるちゃんに「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を教わりつつ。
で、最初にできたのがこちら
twitterとfacebookの友達に「添い寝したい」的なことを言うというだけですがhnnhnのお友達からかなりいい反応いただいたみたいです。
小規模な身内だけとはいえ続々と色々なひとが登録してくれて、好き勝手に使ってくれて、twitterで拡散されていくサービスの中心点に自分がいれる喜びとは興奮は、ちょっとそこらでは味わうことのできないものです。幸福と呼んでいいものだと僕は思います。
使っているうちに続々バグがでたりdumpしてる変数ユーザーに見られたりしましたが、それも楽しくてしかたなかったというのが正直な感想です。僕らはまるでエンジニアリングを通してジャズを演奏したりDJをしている気分でした。オーディエンスの反応を見ながら繰り返しサービスを変形させていく面白さは、やっぱりエンジニアだからこそ味わえるものだと思います。
一つ目のサービス「添い寝」を作って 「添い寝」という単語がバズっていくのにすっかり気をよくしてしまったので、僕とhnnhnはまた別のアプリも作成することに決めました。
時間は既に深夜の2時を回った頃だったとは思いますが、とにかく思いつきで手を動かしていきました。
4時を回るぐらいにはすっかりハイテンションになっており「歌舞いてね?それ歌舞いてね?」「いやーそれ歌舞いてるわー」とか1センテンスに絶対一回以上「歌舞伎」という言葉が出てくる会話をしていて、なんというかもうよくわかんなかったです。
そんなテンションで僕が作ったアプリがこんな感じです。
このアプリは、夜の間に「添い寝」というツイートをすると、同じアプリに登録した全員でそれをふぁぼりにかかるというアプリです。例えばこのアプリに10人登録していると、「添い寝」とつぶやいただけで10ふぁぼもらえるというわけです。
「添い寝」という言葉に反応するので、先に作った「添い寝」との相性も良いというわけです。
ちなみにhnnhnはこんなアプリを作ってました
これは渋ハウスの人たちとコラボしたアプリで、渋ハウスのパリジェンヌっていう人っぽいツイートを決まった時間につぶやくアプリらしいです。文章作成のアルゴリズムは圧縮新聞botと同じようです。
まぁそんな感じで二人で三つのアプリを完成させた時にはギー杉のみんなも含めてぐったりしており、リビングはまさに祭りのあとって感じでした。
コンテスト自体はルンバにすらかすりもしない自信がありますが、僕自身楽しめたので全然おっけーだと思います。
ただこのコンテストを通じて色々な力不足を感じたのも事実で、例えば反省点として一番大きいのは身内だけでなく大勢の人に楽しんでもらうアプリを作ろうという考えが自分の中で圧倒的に不足しているし苦手なのかもしれないということです。これはビジネスっぽい頭がないのとは違います。ビジネスライクな考え方とはまた別に、多くの人に使ってもらう方法はあると思います。
あと技術的な面でいえば、やっぱり普段使い慣れない技術は24時間しかないコンテストのなかでは使い物にならない。時間をかければもっといいものはできただろうけど、限られた時間の中でもすぐにできることが自分の実力なのだと思います。これはもう精進するしかありません。
こういう時限付きハッカソン、機会があったらまた参加したいですね。