2011-08-01から1ヶ月間の記事一覧

シーザー暗号をRubyのメタプロとカリー化で実装してみる

シーザー暗号をRubyで実装する。 "Hello World!".caesar => "Khoor Zruog!" となるような、String#caesarを定義する。RSpecを書くと、 require './caesar.rb' describe String do before(:all) do String.define_ceasar(3) end describe "caesar" do it "ret…

典型的なMacPortsのある朝

RailsプラグインのPaperclipに1行パッチを書きたい ↓ git pull ↓ パッチ受付ガイドラインを読む ↓ Paperclip全体を眺める ↓ bundle && bundle exex rake ↓ テストで落ちまくる ↓ 奇妙なエラーでやる気をなくす…… ↓ 気を取り直してググる ↓ 実はImageMagickが…

On Lispとか読んでRubyとLispの違いをちょっと考えた

全400ページのうち3/4がマクロの説明に当てられている、Paul Grahamの「On Lisp」を8割ほど読んだ。冒頭のCommon Lisp入門で紹介されている標準関数やユーティリティ関数のネーミングのひどさ(やたらと数字でサフィックス付けるとか、rplacaとかってどうよ…

自明なコード

青木峰郎さんの「正しいRubyコードの書き方講座」の本を、いまさらのように買って読んでいる。勉強になるのだけど、以下に引用した添削のbefore / afterにびっくりした。Wikiの*を個数に応じてh1、h2などのタグに開くコードだけど、最終的に4行にしてしまっ…

class_evalでDRYにしてみたかったけど

Railsアプリで書いたビューのためのヘルパークラスをしつこくリファクタリング。以下の2つのクラスがDRYじゃない。今後、LinkedInも足すかもしれないし。 class TwitterPhotoUrl < PhotoUrl def path case @options[:size] when :small add_suffix_to_path(@…

オイラープロジェクトをRSpecを使ったテスト駆動っぽく

オイラープロジェクト17問目。1〜1000までの数字について、「345 -> three hundred and forty-five」のように文字に開いたとき、使われているアルファベットの文字数の合計を求めよという問題。RSpecでやってみた。イテレーションが短いのが好きなので、最初…

stringオブジェクトがクラス名となるクラスを生成する

FacebookやTwitterで異なる写真のURLを一元的に取り扱うために、PhotoUrlクラスを定義して、それをFacebookPhotoUrlやTwitterPhotoUrlに継承するようにしたのはいいけど、結局、ケースごとにインスタンス化するクラスを分けるコードが残って、なんか違うだろ…

sqliteの読み方

c

ソースコードを読め。読むなら例えば……、というときに必ず例に挙がるのがsqlite3。で、GNU Globalでタグを付けて読み始めた。btree.hがまずキモかなと思いつつ眺める。にしても、迷子感が強いので、思わず「sqlite 読み方」とググッてしまった。出てくるわ出…

デカい条件分岐のリファクタリング

FacebookやTwitterのCDN上にあるアイコン、Paperclipでローカルに置いたユーザーアイコンのimgタグをビューから呼び出して生成するために、Railsのヘルパーメソッドで以下のように書いた。 require 'uri' module ApplicationHelper ICON_SIZE = {small:"24x2…