There's an echo in my head

日々のメモ。

2013-04-01から1ヶ月間の記事一覧

RubyでSchemeの処理系を書いてみた

つくって学ぶプログラミング言語 RubyによるScheme処理系の実装を4章まで読んで、実際に実装してみた。 a2ikm/scheme_r 文字列どうするんだろうとか、REPLしょぼいなーとか、一つのクラスにほとんど処理ツッコんでるなーとか、さらに5章ではこの処理系で自分…

Rubyの正規表現で対応する括弧を考慮していい具合にマッチさせる

1.9以降に搭載された正規表現エンジン(oniguruma, onigumo)では (?<name>式)によってマッチした式部分に名前(ここではname)を付けることができ、 それにマッチした内容を後方参照\k<name>で参照でき、 また\g<name>でその式を再帰的に呼び出すことができる これを使えば、</name></name></name>…

森見登美彦「ペンギン・ハイウェイ」を読み終えた

(あとで書く)

ActiveRecordのserializeはYAML以外の読み書きにも使える

serialize-rails gemでJSONをDBに格納するという記事を書いたけど、わざわざgemを使わなくても第2引数に渡すオブジェクトがloadとdumpを実装していれば十分だった。ちなみにActiveRecord 3.2で確認。 たとえばURLをURIのオブジェクトとして扱いたい場合。 # …

MySQL 5.5から使えるようになったRANGE COLUMNSによるパーティショニング

それまでDATEやDATETIMEによるパーティショニングではTO_DAYS()関数を使って数値に変換する必要があったけど、MySQL 5.5からはRANGE COLUMNSを使うことによって日付や時刻をそのまま書けるようになった。 DATETIMEだとこんな感じ。DATEも同様。 /* パーティ…

sortと<=>

2列ソートをやろうとしたんだけど、ここらへんのことをすっかり覚えてなかったので復習。 a <=> bはa > bなら1を、a < bなら-1を返す。一致すれば0。bに対してaが大きいかどうかを返してて、aが主人公っぽいイメージ(レシーバだから当然か)。 p 1 <=> 2 #=…

Unicodeブロック/スクリプトを使うと日本語の正規表現に便利

Oniguruma(CRuby 1.9系組み込み)とOnigumo(CRuby 2.0系組み込み)で利用できるUnicodeブロックおよびUnicodeスクリプトを使うと、日本語(というか多バイトの文字列)に対する正規表現が手軽に書ける。 例えば\p{N}は全角半角にかかわらずアラビア数字に…

スマートフォンでの絵文字のコードマッピングはこんな感じ?

はてなブログでテーブルが書けなくてqiitaに移した

Lua/Corona SDKのAPIで調べたこと

配列っぽいテーブルに要素を追加する local t = {} table.insert(t, 1) table.insert(t, "a") http://lua-users.org/wiki/TablesTutorial ファイルを読み込んで1行ずつ処理する local path = system.pathForFile("foo.txt") local f = io.open(path, "r") fo…

RSpecのbeforeブロックで現在テスト中のexampleのソースを取得する

describe "foo" do before do puts example.description end it "bar" do # some test end end specのファイルパスと行番号が表示される。 example at .spec/foo_spec.rb:5 Getting the full RSpec test name from within a before(:each) blockを見ると、Ex…

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。