2012-02-01から1ヶ月間の記事一覧

目から鱗が落ちた JavaScript の即時関数パターンの使い方

JavaScript でよくやるおまじないの1つに、即時関数パターンがあります。こんなの。 (function(){ // ... 何かする })(); 自分が書いたコードとライブラリの間で、名前が衝突するのを回避するときに使ってきました。で、ついこの間、enchant.js のソースコ…

rbenv と ruby-build を使って Ruby の環境を構築してみた

はじめに 先日 CentOS6 にソースコードから Ruby1.9.3 をインストールしたけど、将来 Ruby2.0 とか出たときに、複数のバージョンの Ruby を共存させたくなるはず。Ruby のバージョン管理ツールを使うべきだったな。やり直し。 Ruby のバージョン管理ツールは…

CentOS6 に Ruby1.9.3 をインストールする手順

CentOS6 には Ruby1.9 のパッケージが無いから、Ruby1.9 を使うためにはソースコードからコンパイルする必要がある。でも、yum でインストールできないとなると、更新や削除したいとき不便。パッケージ化してインストールしたい。そこで、checkinstall を使…

「週4時間」だけ働く。

id:gamella さんのブログを読んで興味をもったので購入。 圧巻の 600 ページ超。そこらへんの技術書よりもぶ厚いです。読み終わるまでに5日もかかりました。本書の主張をすごく簡単にいうと 売上の80パーセントを占めている、20パーセントの仕事を見つけよう…

Rails3 でタグ機能の実装

Rails を使った開発で、アプリにタグ機能を実装する場合、これまでは acts-as-taggable 系のプラグインが定番でした。acts-as-taggable とか acts-as-taggable-on とか、acts-as-taggable-on-steroid とか。まだあった気がする。で、今回 Rails3 で開発して…

jQuery Mobile と Knockout.js を組み合わせてみた

先日、Backbone.js と比較しながら Knockout.js を試してみました。 Backbone.js と比較しながら Knockout.js を試してみた - present Knockout.js よりも Backbone.js のほうが多機能だけど、コードの書きやすさは Knockout.js の方が上、というのが個人的…

アイデアのつくり方

これまでにアイデア作りに関する本を数冊読みましたが、それらの本に200ページほど使って書かれていたことが、本書ではたった100ページちょっとにまとまっていました。いや、本書の後半は翻訳者による解説だったから、実質60ページ程度。たったこれだけのペ…

.NET で WebSocket 使うなら WCF WebSockets で FA

C#

WCF WebSockets で WebSocket クライアントが提供されていることを今さら知りました。WebSocket サーバーが提供されていることは前から知っていたんですけどね。ここのところずっと Ruby や JavaScript でばかり遊んでいたので、.NET の情報にだいぶ疎くなっ…

.NET プロジェクトのリリース作業を Rake で自動化

.NET で開発しているプロジェクトのソースコードをチェックアウトして、ビルドして、出来あがったアセンブリを公開用リポジトリにコミット、という作業を MSBuild で自動化してました。でもいい加減、条件分岐とかループとか MSBuild でやるの面倒になったの…

Backbone.js と比較しながら Knockout.js を試してみた

Backbone.js を試したから Knockout.js にも挑戦 JavaScript のクライアント MVC フレームワークは Backbone.js でいこうと思っていたんですが、Knockout.js が Ver 2.0 でかなり機能追加されて、ちょっと心変わり。もともと Knockout.js のデータバインディ…

OmniAuth と Warden を WardenOmniAuth で連携してみた

Twitter の OAuth を使って認証するのに OmniAuth を使ってみたけど、Warden と組み合わせるのが定番みたいです。Warden と組み合わせると、ログイン成功後のユーザー情報をセッションにつめたり、ログアウトしたり、といった処理を Warden に任せられます。…

Rails3 レシピブック

まだ Rails2 が主流だったころ Rails を勉強していたんですが、Google App Engine が出たので、途中でやめて Python に移ってしまいました。それから去年までずっと Python。今年から Ruby に戻って、Rails3 に再挑戦しています。Python で Django や Kay と…

Ruby でベンチマーク計測

Java のサーブレットコンテナ、まぁ Jetty なんですけど、Jetty の HTTP サーバーとしての性能がどれくらいか分かる資料が無かったので、Ruby でベンチマークを計測するスクリプトを書いてみました。ついでにサーブレットも計測しています。benchmark モジュ…

Sequel でマイグレーション

Sequel にはマイグレーション機能があるので、Rails と同じようにテーブルの作成やスキーマ変更ができます。サンプル程度ならアプリケーションのファイルに create_table べた書きでいいけど、ちゃんとしたサービス作るときはマイグレーションを使ったほうが…

Sinatra + OmniAuth で Twitter の OAuth を試してみた

Sinatra アプリの認証に Warden を使おうとしてたけど、「ユーザー名とパスワードを自前で保存したくない」と思い直して、OAuth や OpenID を検討し始めました。Twitter や Facebook や GitHub など、いろんな OAuth に対応したいから、使うライブラリは Omn…

Sequel::Model でキャストできない値をセットしたら例外が発生するのを抑制してみる

例えば、Sequel::Model を使って次のようなクラスを定義したとします。 # coding: utf-8 require "sequel" DB = Sequel.sqlite("test.db") DB.create_table? :records do primary_key :id Date :date String :summary Float :kcal DateTime :created_at end …

Sinatra+Warden で作ったアプリを Rspec でテストする

先日、Test::Unit を使って、Sinatra+Warden で作られたサンプルのテストを書きました。でも、Ruby でテストを書くなら、Test::Unit よりも Rspec の方が人気だし、自分好みです。せっかくなんで、Rspec でも同様のテストを書いてみます。 # coding: utf-8 r…