2014-01-01から1年間の記事一覧

ダイジェスト2014年

1〜3月 楽しい人生を送っていたのでコードを書いていなかった 4〜6月 社内のLTのネタのためにGoを始めた。Schemeの処理系とかTwitterクライアントとか書いた。 この影響で今は研究でもGoで言語処理系を書いている。 Goでテトリスを書いてDeNAでLTをした。 初…

RubyistのためのGolangメタプログラミング

Goでは、reflectパッケージを使うとリフレクションを行うことができる。 そこで、以下のことを任意のstringによる動的な指定で行うことができるかを調べた。 send (関数, メソッド呼び出し) define_method (関数, メソッドの定義) const_get (任意の型のオブ…

RubyとGoの思想を比較して思うこと

僕は主にRubyとGoを書く。この2つを使っていると、「(Rubyに比べて)Go辛いなあ」と思うことがあるのだが、なんで辛いのかはよくわかってなかった。 最近仕事にGoを使い始めたRubyistが社内ブログでGoのPros/Consを書いていたんだけど、そのConsも自分が辛…

Railsでデバイスの判定をするのに便利なgemを作った

rack-user_agent を作った rack-user_agentという、User-Agentに応じていろいろな判定ができるメソッドを生やすRack::Request拡張を作った。 tagomorisさんのWootheeを使ってRack middlewareでUser-Agentをパースしておいて、 その結果に応じてrequestから簡…

ISUCON4本戦に「railsへの執着はもはや煩悩」というチームで参加しました

@cnosukeと@rkmathiと僕で学生枠で予選通っていたので、ISUCON4本戦出てきた。 予選で反省して直した点 悲惨な前回の記録 予選の時は常に精神的に余裕がなかった上にチームワークが全く成立していなかったので、@cnosukeに指揮をとってもらってお互いの作業…

ISUCON4予選に参加しました

去年ISUCON3予選に参加していた id:cnosuke と id:rkmathii のチームが一人欠けたので、 そこに初出場の僕が入り「railsへの執着はもはや煩悩の域であり、開発者一同は瞑想したほうがいいと思います。」というチーム名でISUCON4予選に出場しました。1日目の…

Rack applicationのプロファイリングにはrack-lineprofが便利

RubyKaigi 2014行った。良い発表がいろいろ聞けたんだけど、最近ISUCONに向けてwebアプリのチューニングに興味があったので特にfinal keynoteが興味深かった。 その中で紹介されていたtmm1/rblineprofが行ごとの実行時間を表示してくれるのでとても便利そう…

ConoHaのVPSの初期設定をChef Soloでやってみた

普段はさくらのVPSに普通に手でソフトウェアをインストールしてWebアプリを動かしていたんだけど、 さすがにそろそろサーバーの状態管理を自動化したくなったのと、単純に面白そうなのでChefによるサーバー管理に挑戦することにした。 それで、気軽に壊して…

ActiveRecordでN+1 countクエリを潰す方法、あるいはactiverecord-count_loaderの使い方

追記:activerecord-count_loaderはactiverecord-precountに変わりました。使い方はこちら。 ActiveRecordでassociationを読むためにN+1クエリが出てしまった場合、 includesなどのメソッドを利用することで発行されるクエリの数を減らすことができる。*1 と…

ISUCON夏期講習に参加してきた

ISUCON、自分が興味ある人たちが去年参加していて、面白そうだなと思っていた。 僕の大学の友達はweb系っぽい人がいなくて、チームが組めないので、去年は指を加えて眺めていたんだけど、出場メンバー募集もアリでISUCON夏期講習がやってたので、参加してき…

Vim scriptテクニックバイブルを買って生活が豊かになった話

Vim

Vim script テクニックバイブル ~Vim使いの魔法の杖 を買った。 vim scriptのネットのチュートリアルはいくつか読んだんだけど、なかなか完全な説明が一箇所にまとまっていることはなく、よくわからない部分がいろいろ残されている状態だった。 僕は基本的に…

Karabinerの設定を楽に書けるやつ作った

経緯 いろいろ思うところあってエディタを乗り換えようと思ったんだけど、キーバインドを異常にカスタマイズしているおかげで、みんなが使うはずの基本的なキーバインドが衝突して押せないという事態が発生し、Karabinerの設定を大きく変える必要が出てきた…

私のpeco活用事例

pecoというインタラクティブに入力をフィルタして出力するコマンドがあって、使い始めてからシェルの操作方法が大幅にかわり、だいぶライフチェンジングだった。 最近このへんが流行ってるのでやたら記事あるけど、せっかくなので僕も使い道を紹介しようと思…

Gifzoのアップロード先をTwitterにした

元ネタ: http://blog.kksg.net/posts/gyazo-twitter Twitterがgifアニメのアップロードに対応した。 もうこれはGifzoでTwitterにgifアニメをあげられるようにするしかないと思った。 @null http://t.co/OZ52pUcNg2— たのしい人生 (@k0kubun) 2014, 6月 20 や…

hikarie.goでLTをしてきました

発表で紹介したやつのリンク https://github.com/k0kubun/gosick https://github.com/k0kubun/thunderbolt https://github.com/k0kubun/tetris https://github.com/k0kubun/go-termios

GithubにSlimのシンタックスハイライトを入れました

以前、ふととあるRailsアプリをerbからhamlかslimに移行しようということになって、どっちにしようか検討していた。 そのとき、GitHubはhamlをシンタックスハイライトしてくれるけどslimはしてくれないというのに気がついた。 hamlよりslimのほうがパフォー…

デザインテンプレートをgem化してRailsで使う

WrapBootstrapというbootstarpベースの有料デザインテンプレートを配布してるところがあって、 それをrailsで使おうとしたらasset pipelineで割りとハマったのでそのメモ。 速習Asset Pipeline 本当はRails Guides読んだほうがいい アセットを参照するとき a…

GoでTwitterクライアント書いた

最近技術ネタをqiitaに放出しがちでブログ書いてなかったけどまた書き始めることにした。 成果物 https://github.com/k0kubun/thunderbolt なんで書いたの yorufukurouが使いづらい状況(お察しください)のとき、earthquakeを使っていた。 割りと頻繁にクラッ…