読者です 読者をやめる 読者になる 読者になる

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

掃除屋歴7年の俺がしつこい汚れの落し方を教えるよ

(2009/12/31 追記あり) 学生時代にホームクリーニングのバイトを7年間やっていたので、大抵の汚れなら落し方分かります。このあいだ #pandacleaning というハッシュタグで掃除の仕方を淡々とつぶやいていたら評判がよかったので、ここらでまとめておくよ。…

12/6(日)第九回文フリでつヤ部報vol.2を販売します

俺が編集したつヤ部報vol.2がいよいよ発売です。 表紙のデザインや組版などやりました。 新作の小説を1本と、インタビュー記事を2本書いてます。マトペのふぁぼったー話はなかなか読み応えありますよ。 前回のvol.1は、字ばかりだったので、今回は漫画やイラ…

MyISAMでテーブルが巨大すぎるとDELETEできなくなる件(MERGEテーブル解説)

MySQL4.1でMyISAMを使っていて、ふと気づいたら1つのテーブルに4千万件のレコードを挿入してしまいました。 MyISAMで4千万行のテーブルを作るとどうなるかというと、 INSERT -> やや重いけどいける UPDATE -> やや重いけどいける TRUNCATE/DROP -> 一瞬 DELE…

Binding+callerで作るデバッグ出力メソッド

Rubyで変数をデバッグ出力をするときに、 hoge = 100 puts "hoge = #{hoge}" とかやるとおもうんですが、いちいち "hoge = #{hoge}" って書くのは面倒ですよね。 なので、理想的には hoge = 100 debug hoge # => 'hoge = 100' (あくまで理想) となってくれ…

SnowLeopardにアップグレードして動かなくなったソフト

mac

Mac OS X 10.6 Snow Leopardが届いたのでさっそくMacBook (2008年秋モデル、Leopard)に入れてみました。 64bitモードを使うにはOS起動時に6と4を同時押しにするらしいですね。まだ試してません。さておき、いくつか動かなくなったソフトがあるのでここにメ…

RSpecでテストを書く

Rubyのテストでは、RSpecを使うと幸せになれます。 HelloWorld的な事は Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編) を順に試せばいいと思います。 インストール $ sudo gem install rspec --format-execut…

全文検索エンジンHyperEstraierの.NETバインディングをC#から使う方法

C#.NETでローカルファイルの全文検索ツールを作るとき、どのエンジンを使ったら楽なのかなーと思って色々調べてたら、最終的にはHyperEstraier(以下HE)が良さそうということになりました。 HEを選んだ理由としては、簡単に使えて、しかも配布性が高かった…

冷蔵庫と壁の隙間に自宅サーバを設置するのはやめましょう

みなさん自宅サーバの1台や2台は持ってると思うのですが、日本の住宅というのは狭いです。それに夏は暑い。自宅サーバを設置するには適さない条件が揃っているのが日本です。なのに何故あなたたちはサーバを設置するのですか? 狭い安アパートの中で、なんと…

EeePC901をヤフオクに出品した

ちょうど一年前の今日購入した EeePC 901 ですが、Ubuntu を入れたりして各種設定を施し、いつでも使用できるようにスタンバってはいましたが、結局ほとんど使っていないので手放すことにしてしまいました。Yahoo!オークション以下、最後の勇姿です。 (被写…

ActiveRecordをRails抜きの単品で使う

知らない人もいるかもしれませんが、 Rails で使われている ORマッパーである ActiveRecord は、Rails からでなくても単品で動きます。 ActiveRecord はとても簡単で便利なので、 Rails 使うまでもないちょっとした日常のスクリプトでもどんどん使いましょう…

各言語におけるtrue/falseまとめ

たとえば PHP で、 if ($hoge) { ... } とか書いてあったら、 $hoge がどんな値のときに if の中身が実行されるのか即答できますか。 こういう書き方は多くの言語で可能ですが、言語によって何が真で何が偽になるのかが異なるので、それぞれまとめてみました…

RedmineでMercurialを使う方法

Redmine+Mercurial連携でちょっとハマったのでメモ。 1. config/environment.rb に python のパスを記述 ENV['PYTHONPATH'] ||= '/usr/local/bin/python' 2. mercurial_adapter.rb に hg のパスを記述 +++ lib/redmine/scm/adapters/mercurial_adapter.rb @@…

vimをruby用にビルドしなおしてvim-rubyを使う

CentOSとMacOSXで動作確認。 vimがruby用にビルドされているか確認 以下のコマンド。 $ vim --version | grep ruby +printer -profile -python +quickfix +reltime -rightleft -ruby +scrollbindはい、ここで「-ruby」となっていたら残念です。vimをリビルド…

RubyでGmailからIMAP経由で未読メールを取得する

twitterのフォロー通知メールとか、Amazonの発送通知メールとか、そういうメールを受け取ったらその内容に応じていろいろ処理したい時ってありますよね。 でもまあ、今時個人でメールサーバ立てるのなんて流行らないですし、自由にprocmailを仕込むわけにも…

iPhoneアプリ開発合宿in伊東

みなさん、iPhoneアプリというのはお金になります。 コツコツSEOを頑張ってアフィリエイトで小遣い稼ぎを頑張るよりは、iPhoneアプリで一発当てた方が爆発力がでかいし、ドリーミングです。 なので、ウォーターサーバーも無いような会社などは定時に切り上げ…

パクチーハウス東京でパクチー三昧してきた

経堂(きょうどう)の農大通りにある、「パクチーハウス東京」に行ってきた。ここの料理はほぼ全てパクチーが入ってる。嫌いな人には地獄だけど、好きな人には天国のような場所。そのニッチさが受けているのか、一週間前くらいから予約しないと入れないほど…

一眼レフ(Nikon D90)買った

みなさん、不景気です。IT業界も例外無く不景気ですので、エンジニアの皆さんは、給料が下がったり、ウォーターサーバーが無くなったりしていると思います。こんな暗い時代は、カメラでも買わなければやってられませんので、 Nikon D90 を買いました。 [raku…

PHPでレスポンスを出力した後に処理を続ける方法

php

確かこんな感じ。

SyntaxHighlighter.JSがIE7でおかしい件の対処

ソースコードを強調表示するライブラリにSyntaxHighlighterというのがあるんだけど、IE7で表示したときに一部が白く欠ける現象が起こることがある。 こんな感じ。 ウィンドウをスクロールしたり、マウスで範囲選択して色を反転させたりすると表示が不安定な…

買った本

ひさびさに本買った。実践ハイパフォーマンスMySQL作者: ジェレミ・D.ザウドニ,デレク・J.ベリング,Jeremy D. Zawodny,Derek J. Balling,林秀幸出版社/メーカー: オライリージャパン発売日: 2004/10メディア: 単行本購入: 9人 クリック: 212回この商品を含む…

町田康「告白」を読むのに10ヶ月かかった

告白 (中公文庫)作者: 町田康出版社/メーカー: 中央公論新社発売日: 2008/02メディア: 文庫購入: 11人 クリック: 177回この商品を含むブログ (123件) を見る 2008年4月、入社式があった日に買い、ちょっとずつ読み進めていたら、読み終わる頃には年が明けて…

doppelkunをアップデートした

doppelkunというtwitter-botを飼っているのですが、このたび、機能追加を行いました。 追加したのは以下の要素です。 誰かに取り憑いたとき、その人に対してダイレクトメッセージで「今日はあなたに決めた」と教えます。 @doppelkun 宛にリプライがあったら…

スパイスからカレー作るよ

エンジニアのみなさん、カレー作ってますか。俺はジャワカレー(中辛)を愛しています。ジャワカレーは最高にうまい、素晴らしいものです。日本の宝です。ですが出来合いのカレールーを使ってるようではまだまだカレーを作ったとは言えないので、スパイスで…

そろそろ2008年についてひとこと言っておくか

という長文の記事を書いていたんだけど、操作間違えて吹っ飛んで、とても落ち込んでいるので、サマリだけ書く。 名古屋の某大学院を卒業 いろいろ腐っていた時期もあったけど卒業させてもらえてよかったです。 上京 生まれ育った愛知を離れて杉並区で一人暮…

EeePC901にUbuntu8.10をインストールする方法まとめ

MacBookを買ったためにしばらく放置していたEeePC901に、Ubuntu8.10をインストールした。 これまでUbuntu8.04のalternative版を入れていたけど、いろいろ調子が悪かったので、潔くクリーンインストールした。 このEeePCを買った半年前に比べて、今はとても l…

めちゃくちゃうまい醤油ラーメン鍋のレシピ

土曜日に、俺の部屋に人を沢山呼んで鍋をやりました。 ust していたので見ていた方もいらっしゃるかもですが。 来てくれた人たち: id:umezo id:yokochie id:makimoto id:No6 id:mkataigi id:tohae ここで作った鍋は、 mirakui の実家でよく食べたレシピの再…

doppelkunというドッペルゲンガー系Twitter Botを作った

本日、「 @doppelkun 」という Twitter-Bot をリリースしました。 http://twitter.com/doppelkunアイディアは id:pha さんのもので、すでに id:pha さんがエントリを書かれてます。 ドッペルゲンガー系Twitter Bot「doppelkun」ができました - phaのニート日…

誰もいないトイレでしか用が足せない人

学生時代、「誰もいないトイレでないと用が足せない」という友人がいた。 彼は、学校のトイレに入ったとき、既に誰かが一人でも用を足しているのを見ると、すぐに出て行った。大小問わずである。 俺の会社はトイレがいつも混んでいるので、一人きりになるこ…

favotter503というTwitter-Botを作った

みんな大好き id:ono_matope 様によるWebサービス、ふぁぼったー(favotter)。コンテンツはすごく面白いけど、ちょっとサーバが不安定なのが、かわいいよね!というわけで、「ふぁぼったー」が落ちてたら教えてくれるBotを作ってみたよ。これでふぁぼったー…

Smiley Hackathon#3 、ギークハウス、Rails勉強会@東京#34

土曜日は、 id:acotie さんの Smiley Hackathon #3 に参加。ドワンゴの会議室。みんながもくもくと開発したり仕事したり勉強したり。ハッカソンというよりはもくもく会といった雰囲気だった。ここ数日、 Twitter の統計サービスを作ろうとしていて、そのため…

すごいiPhoneアプリ(の説明文)見つけた

たぶんGoogle翻訳

「MIRAI:ネットとガジェットの融合」に行ったらXactiが欲しくなったし名刺交換したし

会社を定時に脱出、九段下へ。 MIRAIはこんなイベント。 「MIRAI:ネットとガジェットの融合」は、ガジェットやウェブサービスの未来について、利用者と企業の方が「こういうのを作ってほしいな」とか「こんなのがあったらいいんじゃない?」といったことを…

Windows歴12年の俺がMacBookを買ってみた

10月15日の新型MacBook発売日に、銀座Appleストアに行って買ってきた。 仕事帰り、同期数名でぞろぞろと銀座へ。 中はすごく混んでる。みんなMacBookに群がっている。さすが発売日。 写真じゃわからないけど、 Pro の方は比較的手薄だった。手頃な MacBook …

Ruby+MechanizeでTwitterのfollowingをスクレイピングしてみる

WWW::Mechanize を使って、Twitter の following ユーザを取得してみる。ソースコードは以下の通り。 require 'rubygems' require 'mechanize' require 'logger' cookie_path = '/tmp/twitter_client.cookie.yaml' target = 'mirakui' agent = WWW::Mechaniz…