CoffeeScript は Ruby に似ているところがたくさんあり,Ruby プログラマにも比較的馴染みやすい言語だと思います.たとえば,変数を初期化するのに便利な Ruby の ||= に対して,CoffeeScript にも予想通り or= があります.しかし,CoffeeScript (という…
Ruby on Rails (以下,Rails)標準のテスティングフレームワークである Test::Unit は,一般にはフラットにテストメソッドを定義するものだと思われています(たとえば,Rubyist Magazine - 改めて学ぶ RSpec).しかし,Test::Unit にコンテキストを導入し…
このエントリでは,Ruby on Rails (以下 Rails)の ActiveRecord モデルテストについて,1) どこの何をテストすればよいか,2) どのようにテストを書けばよいか,のガイドラインを示します.このガイドラインは Rails 公式のものではなく,id:passingloop …
factory_girl は Ruby on Rails (以下 Rails)におけるフィクスチャリプレースメントの代表格で,採用している人も多いのではないでしょうか.「使い方」に関するブログ記事も多いです.しかし,採用を見送った人がその理由,「なぜ使わなかったのか」につ…
ActiveRecord のマイグレーションは,その中に up メソッドと down メソッドを書くことにより,データベースのスキーマを更新したり,変更を元に戻したりすることができ便利です.Rails 3.1 からは up, down を change メソッドにまとめて書くことができるよ…
ActiveRecord::Base を継承したモデルクラスで,テーブルに存在しないカラムに対して #update_attributes すると ActiveRecord::UnknownAttributeError 例外が発生します.たとえば,な foos テーブルに相当する class Foo < ActiveRecord::Base について,…
Rails アプリを開発していくと,プラグインやらエンジンやらで何やかんやと gem を作っていくことになります.このようにして作った gem は当然 Rails 向けなので,Rails アプリケーションの config で設定できるようにしたいところです.たとえば,passingl…
Project Tin Can は,SCORM 2004 の次の e-Learning を考える Rustici Software の研究プロジェクトです.Project Tin Can は ADL 公認のプロジェクトなので,実質的に SCORM 2004 の後継といってもいいでしょう.本エントリでは,この Project Tin Can の概…
最近,MacBook Pro にためてきた動画を iPhone でも見られるようにしたくなりました.しかし,iPhone で再生できるのは .m4v 形式なので,この形式に動画を変換する必要があります.幸い,Mac OS X に付属の QuickTime Player 7 を使えば iPhone 用 .m4v を…
数年前に話題になっていた 仮説思考 BCG流 問題発見・解決の発想法 という本を今更ながらに読みました.この本では問題解決の方法として仮説思考を推奨しています.仮説思考とは,情報が少ない段階から全体像と結論を考える思考スタイルだと書かれていて難し…
ある条件のもとでパスワードを守るには、ソルトもストレッチングも両方必要です.本当は怖いパスワードの話 (1/4):ハッシュとソルト、ストレッチングを正しく理解する - @IT がその理由の良い解説になっているのですが,4 ページに分かれていて長いので Q&…
7つの言語 7つの世界 第6章 Erlang のセルフスタディやってみました。私は Erlang 未経験者だったので最適解ではありませんが、私の解答例を書いておきます。 1日目 探してみよう Erlang のオフィシャルサイト Erlang Programming Language Erlang の関数…
7つの言語 7つの世界 の第5章 Scala の宿題をやってみました。私が Scala に触るのはこれが初めてです。 インストール id:passingloop は MacPorts から Homebrew にのりかえました % brew install scala 2.9.1 がイストールされました。 1日目 探してみよ…
Pow は 37signals 謹製の Rack サーバです。Rails 開発で愛用している人も多いのではないでしょうか。Pow をインストールすると、 (1) http://my_app_name.dev/ にアクセスすると (2) Pow が Rack アプリケーションを自動的に起動して (3) ~/.pow/my_app_nam…
オライリーは電子書籍と一緒に「安心」を売っている - ただのにっき(2011-09-16) を読んで考えたことをまとめてみます。オライリーは電子書籍という新しいメディアに対して旧態依然とした売り方をすることを選択しました。すなわち、「電子書籍も紙の本と同…
7つの言語 7つの世界 第4章 Prolog 1-3 日目のセルフスタディやってみました。Prolog を触るのは今回が初めてだったのですが、やっていて楽しかったです。もっとやりたいかと聞かれれば、もういいですと答えますけど。 Prolog のインストール 例によって、…
7つの言語 7つの世界 第4章 Prolog のセルフスタディをやろうとして、MacPorts で GNU Prolog 1.4.0 をインストールしてみました。 $ sport install gprolog (sport は sudo port への alias です。詳しくは、MacPorts 2.0.1 インストールメモ: PATH とフ…
Graffletopia で見つけたおすすめ OmniGraffle ステンシルを 4 つ紹介します. はじめに Mac OS X で定番のドローツールといえば OmniGraffle です*1.これを使うと,パワーポイントで描くよりも綺麗に速く図を仕上げることができるので重宝しています.Omni…
7つの言語 7つの世界 第3章 Io 言語を読んでいて最初に疑問に思ったのが, 制御構造が無い Io 言語がどのように Ruby の && 相当を実現しているか です.前のエントリに書いたように, Ruby で AND, OR の論理演算を行うための論理演算子には {&&,||} と {…
インストール →Mac OS X への Io のインストール - passingloopの日記 1日目 探してみよう Io のいくつかの問題点の例 名前を Google で検索しにくい コミュニティが小さく OS の最新バージョンでしかテストされていない→id:passingloop:20110908:p1 質問に…
本記事の Io とは Io 言語のことです.*1さて,本題に入ります.Mac OS X に Io をインストールするのなら,MacPorts が便利です. $ sudo port install Io するだけでインストールできます.しかし,MacPorts がインストールする Io には問題があります.そ…
MacPorts は 1万2000以上のソフトウェアを ports としてサポートしています*1.しかも,MacPorts の ports は sudo port selfupdate するだけで最新のものを入手できるので便利です.MacPorts の ports は種類も豊富で便利なので,普段は MacPorts の ports …
Ruby で AND, OR の論理演算を行うための論理演算子には {&&,||} と {&,|} の 2 種類あります。この 2 種類は似ていてまぎらわしいのですが、 {&&,||} は制御構造で、{&,|} はメソッド とだけ覚えておきえば区別できます。これだけ覚えておけば、 (1) {&,|} …
自分の開発環境だけでできてしまうようなファイルのために、プロジェクト内の.gitignore に設定追加してしまうと他の人に嫌がられますよね。そこで、自分用に追加でホームディレクトリの.gitignore ファイルを利用するようにします。 $ git config --global …
7つの言語 7つの世界 は Ruby Io Prolog Scala Erlang Clojure Haskell の 7 つの言語の言語の雰囲気を味わえる本です。7つの言語 7つの世界作者: Bruce A. Tate,まつもとゆきひろ,田和勝出版社/メーカー: オーム社発売日: 2011/07/23メディア: 単行本(…
某所で紹介されていたのが面白そうだったので,図書館で借りてきて読んでみました.全 236 ページで,30 分ほどで読めます.副題に「BCG 流問題発見・解決の発想法」とあるので読むのに身構えてしまいそうです.しかしなんのことはない,「何らかの問題解決…
Lion に対応した MacPorts 2.0 が先月リリースされました。続いて、今月 2 日には 2.0.1 がリリースされています。このバージョンは完成度が高く、目立った不具合も報告されていないようでした。「そろそろ大丈夫だろう」と考えて私もインストールしたところ…
Rails 開発者なのに「Rails3 レシピブック 190 の技」をまだ買っていない人はいませんか。万が一まだの人がいたら、すぐに買いにいきましょう。とはいえ、後で「騙された」と後ろ指をさされるのも嫌なので、このエントリを読んで納得してからにしてください…
スキルレベルを示すのに、よく初級・中級・上級といった表現が使われます。しかし、「どこまでが初級でどこからが上級なのか」、明確な定義が無いままに使われるのをよく目にします。そのままでは、自分が中級だと思っても実は初級だったり、あるいは、その…
Rails テストで便利であるにもかかわらず知名度の低い、かわいそうな 2 つのタスク: rake test:recent タスク rake test:uncommitted タスク を紹介します。この記事は執筆時点の Rails 3.1.0.rc5 を対象としています。 Rails 謹製のテストタスク: rake test…