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

Amazon EC2インスタンスに簡単にSSHできるようになるツールec2sshを公開しました

みんなが大好きなクラウドホスティングサービスのAmazon EC2ですが、インスタンスをバンバン立てたり落としたりしていると、ホスト名の管理が面倒になってきますよね。たとえば「さっき立てたインスタンスにSSHしたい!」と思ったら、consoleをひらいて、「e…

query_trace: SQLが発行されたファイルと行番号を調べる

Railsで、ActiveRecordがSQLのログを吐いてくれるんですが、これだとどのクエリがどこから呼ばれたのか分からなくて、デバッグがしにくい。 Schedule Load (0.023687) SELECT * FROM schedules WHERE (schedules.id = 3) LIMIT 1 Resource Load (0.001076) S…

function hoge(){} と var hoge=function(){} の違い

javascriptはあまり得意ではなくて、この件について、定期的に忘れて同じ質問を人にしてしまっているので、ここに書いておく。 function hoge(){} と var hoge=function(){} に違いはあるのか? という問題について。結論から書くと、hogeのスコープが違う。…

自転車のコグを交換した

俺の自転車はピストと呼ばれるタイプで、変速機がついていないので、ギアを重くしたい場合にはコグというパーツを交換する必要がある。 自転車を買ってからこれで片道12kmくらいの距離を通勤しているので、だんだん慣れてきてもうちょっと重いギアにしたくな…

ブロック引数つきのObject#presenceというのを考えた

以下のような処理をしたい。name という名前のユーザを探し、その年齢を出力する。 def age(name) Persion.where(:name => name).age end 上のコードはまずいところが一箇所ある。 name というユーザがいなかった場合に、例外になるという点だ。 def age(nam…

RailsじゃなくてもActiveSupportの自動require機能を使う

Railsでは、 config/application.rb で config.autoload_paths << Rails.root.join("lib") と書いておくと、例えば $ cat lib/my_library.rb class MyLibrary : endみたいなファイルが置いてあれば、Railsアプリ内で MyLibrary クラスを特にrequireしなくて…

ruby-profとKCacheGrindでプロファイル野郎になる

速さが足りない!!!!! そんな時はプロファイリングの時間ですね。 Rubyには標準添付ライブラリとして profile というプロファイラがついてくる。でもこのライブラリはあまりに遅すぎて実用に耐えないから、多分誰も使っていない。ほとんどのRubyistは ru…

capistranoでbundle installする

Capfileで run "cd #{release_dir}; bundle install vendor/bundle --without test development --deployment" とか書いてたけど、bundlerの公式サイト見てたら、capistrano用のbundle installタスクが用意されてることに気づいた。 使い方 Capfileの中で re…

doppelkunを復活させた

doppelkun( http://twitter.com/doppelkun )というtwitter-botを運営しているのですが、このたびBASIC認証の廃止を受けて死んでいたので、OAuth対応させることで復活させました。 当時やっつけで書いたコードだったので、直すのに苦労しました。かと言って…

Imlib2でImageMagickより3倍高速かつ美しいサムネイル画像の生成

この記事の概要 Imlib2を使って画像のサムネイルを生成してみたところ、ImageMagickより3倍速かった。 また一般的には、Imlib2の方が画質が悪いとされているが、パラメータを調整することで、十分に美しいサムネイル画像を得ることができた。 はじめに Imlib…

Amazon S3のread/writeをベンチマークしてみた

aws

Amazon S3 は安価・容量無制限でとても便利ですが、高速性が売りではないので、速度には若干不安が残ります。また、まだ日本国内にサーバが無いので、日本からのアクセス速度が遅いです。というわけで、どのくらい遅いのか試してみました。 計測方法 ベンチ…

Amazon S3(ap-southeast)をRubyから使う

安価・容量無制限・高耐久性でおなじみの Amazon S3 (Simple Storage Service)をRubyから使ってみましょう。 AWS::S3 というgemを使えば、S3を簡単に扱えます。AWS::S3 - Ruby Library for Amazon Simple Storage Service (S3) インストール $ gem install s…

gem管理の新標準ツール"Bundler"のTips

Bundlerは、rubygemsのラッパーです。Rails3のgem管理に採用されています。 Bundlerを使うことで、 このgem、手元にはインストールされているのに、本番環境にインストールされてない! 開発環境にgemを入れまくったら、プロジェクトにどのgemが必要なのか分…

本を汚そう

iPadも出たことだし、電子書籍はどんどん盛り上がってますね。自炊とかしてる人もいると思います。 そんな時代の流れの中で、紙の本は 書き込める 曲げられる ちぎれる みたいな物理層の価値を見直すべきです。なのでためらわずにどんどん本を汚しましょう。…

8分21秒で分かるRubyとOAuthによるTwitterAPIの使い方(動画)

TwitterAPIのBASIC認証は近々廃止され、今後はOAuth/xAuthにシフトされます。 混乱している開発者も多いと思うので、今回はOAuth対応なTwitterBotを作ることを前提にして、その簡単なやり方を動画に撮ってみました。スクリーンキャストというやつです。 動画…

PosterousのCEO「Webはクソ。ブラウザはマジなんとかしろ」

俺も使ってるお手軽日記サービスのPosterous。そのCEO、Sachin Agarwalが書いていた記事がなんとなく面白かったので和訳しました。元の記事: The web sucks. Browsers need to innovate - Sachin's Space部分的にかなり意訳したり強調したりしてます。以下…

rvm: 複数のRubyを共存させる最新のやり方

http://favotter.net/status.php?id=13069973879 こんにちは、4月からついに職業Rubyエンジニアになったmirakuiです。 あまり認めたくありませんが、Rubyは事実上、いまだに1.8系から1.9系への移行期にあります。 現在の安定版である1.8.7と1.9.1を開発環境…

転職しました

2008年4月の入社以来2年間勤めてきたヤフー株式会社を本日退職いたしました。たった2年間で何が分かるのかと思われるかもしれませんが、この2年間は自分にとって大変に刺激的で、人生の中でもとても重要な体験をすることができた2年間でした。本来ならその経…

楽天カードのメルマガ購読解除フローがひどい件について

楽天カードというクレジットカードを持っているのですが、これを作ると楽天カードからメルマガがいっぱい来ます。僕の場合は大体1日3〜4通ほど受信しています。 残念ながらこれらのメルマガの中に、僕にとって重要な情報が含まれていることは無いので、購読…

机に伏せて寝る集中メソッドについて

誰かの伝記で読んだ勉強方法で「勉強の集中力を高めるには寝るのがいい。ただし布団で寝ると一晩寝てしまうので、机に伏せて寝るようにした。それなら3時間で目が覚めるので、また集中して勉強することができる」というのがあった。俺はなるほどと思ってそれ…

スピリチュアルエンジニアリング入門

LT

先日 hack05 というイベントで LT をしたので、そのときの資料をまとめておきます。 スピリチュアル エンジニアリングとは システム開発・運用にスピリチュアル要素を取り入れることでシステム安定化を目指します。 皆さんご存知の通り、人間の技術力には限…

ピストバイク(自転車)を買った

SURLYというメーカーのSteamrollerという自転車を買いました。いわゆるピストバイクと呼ばれる固定ギアの自転車です。 固定ギアというのはフリーギアの対義語で、簡単に言えば、ペダルを逆に回せばバックができる自転車のことです。ピストは固定ギアから生み…