maeshimaの日記

メモ書きです

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

メモリとディスクの速度差

なんとなく1000倍くらいだと思ってたけど違うみたい メモリでの探索はディスクの10万倍~100万倍以上高速 メモリ〜CPU間のバス 7.5GB/秒 HDD〜CPU間のバス 58MB/秒 参考 [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/イン…

M-:

作成した関数を呼び出して、その戻り値を知りたいときに使う。 (hoge) のようにS式で実行する

if

想像してたのと少し挙動が違ったのでメモ。式がnil以外で合った場合にform1、nilでない場合にはform2〜formnを全て評価する。ifの値は最後に評価したformの値になる。 (if 式 form1 form2 form3 ... formn)

match-beginning, match-end

re-search-forward等の検索関数を使った後に、マッチしたポイントに移動するときに使う。 (match-beginning グループ番号) (match-end グループ番号) グループ番号には、\(\)でくくった何個目かという数値を指定する。 マッチするモノがない場合は nil 0 を…

Rails3でオブジェクトをキャッシュする

Nathan Humbert's Blog: Easy data caching in Rails 3を見て。Rails3では下記のようにすることでキャッシュを保存/取得できるみたい。便利かも # "hoge" の key でキャッシュに保存されていなければ "hogehoge" がキャッシュにセットされて返る Rails.cach…

re-search-forward

バッファ内の文字列を正規表現を使って検索する関数 (re-search-forward 正規表現 &optional 限界 エラー回避 回数) 限界は、指定しない場合はバッファの終わりまで エラー回避にtを与えると、正規表現にマッチしなかったときにエラーを出さずにnilを返すよ…

make-keymap

下記のようなシンボルとベクタのリストを返す関数だそうな。 (keymap [nil nil ... nil]) ベクタは一次元の配列のこと。

S式の実行方法その2

S式の実行方法 - maeshimaの日記に追加。ファイルのS式を実行する方法。 M-x load-file バッファを開いて M-x eval-current-buffer

今週のRailsCasts - Notifications in Rails 3

Rails 3 から追加された AcriveSupport::Notifications を使って、通知を実装する話。Railscasts - Notifications in Rails 3 Notifications in Rails 3 Module: ActiveSupport::Notifications 使い方 config/initializers 配下にファイルを作って定義する。…

末尾再帰最適化

名前だけ知ってて、実際どういうものか知らなかったけど、下記エントリを読んで大体理解できたと思う。再帰は再帰なんかじゃない!末尾再帰こそが真の再帰なんだ! - hp12c Rubyの末尾再帰最適化を理解する - hp12c 末尾再帰とは 再帰的に実行するメソッドの…

S式の実行方法

超初歩の復習。 C-j 直前のS式を実行してバッファ中に結果を表示 C-x C-e カーソル直前の括弧で囲まれたS式を評価してミニバッファに結果を表示 C-M-x カーソル位置か、それ以前にある行頭で始まるS式を評価して、ミニバッファに結果を表示 C-x C-eはあんま…

GTDメモ

Amazon.co.jp: はじめてのGTD ストレスフリーの整理術: デビッド・アレン, 田口 元: 本を読んで気になったところのメモ。 気になった部分 処理は原則的に上から一つずつ。緊急性とかは考慮しない。考慮してしまうとinboxに残るタスクが出てきてしまう。 行…

はじめる!Cucumber第4章

気になったところメモ i18n_scaffold i18n_generator いれると下記のgenerateコマンドが使えるようになる。 script/generate i18n_scaffold 通常のscaffoldに加えて、attributesの翻訳結果をlocaleファイルに追加してくれるみたいだけど、実際やってみたらな…

Arrayその5

Array#transpose 二次元配列に対して使うメソッド。行と列を転置する。 a = [[1,2],[3,4],[5,6]] a.transpose # => [[1, 3, 5], [2, 4, 6]] 似たようなものに Enumerable#zip がある。これは配列の引数とって足してから行と列を転置するメソッド。 b = [1,2]…

rinariコードリーディング rinari-rake

一年弱ぶりに再開。interactiveの引数"P"が気になったので調べた。 (defun rinari-rake (&optional task edit-cmd-args) "Tab completion selection of a rake task to execute with the output dumped to a compilation buffer allowing jumping between er…

Arrayその4

こうやって調べてみると知らないことやあやふやな理解だったところがたくさんあるなー Array#product 配列の要素と引数の要素の組み合わせを作り、配列の配列を作って返す。本よりも下記のページの方がわかりやすい。 product (Array) - Rubyリファレンス Ar…

今週のRailsCasts - Offline Apps Part 2

前回に引き続き、動的ページをオフラインで表示するにはどうするのかという問題。Railscasts - Offline Apps Part 2 ASCIIcasts - “Episode 248 - Offline Apps Part 2” 方法1 manifestのハッシュ値をアクセス毎に変更する この方法だとキャッシュしておきた…

compilationバッファ

M-x compileしたときなどに開かれるバッファらしい。

defgroupとdefcustom

GNU Emacs Lispリファレンスマニュアル: カスタマイズ定義の書き方「M-x customize とかでカスタマイズできる値を、defcustomで定義して、複数のdefcustomをdefgroupでまとめる」という理解をした。

Array その3

Array#count 引数を渡さなかった場合は要素の個数を返す。引数を渡した場合は、引数と等しい要素の個数を返す [1,2,2,3,3,3].count(2) #=> 2 またはブロックを評価した結果が真になる要素の個数を返す。 [1,2,2,3,3,3].count do |obj| obj > 2; end #=> 3 ど…

rvm.el

M-x rvm-use で、emacsで使うrubyのバージョンとgemsetを切り替えられる。デフォルトのgemsetは"global"で、空白にするとうまく切り替わらない。

xmpfilterをemacsで使う

gem install rcodetools でrcodetoolsいれる。gemに入ってるrcodetools.elをemacsのload-path上に配置。 (require 'rcodetools) とすると M-x xmp が使えるようになり、下記のようにRubyのコード上で実行すると # => としたところに実行結果が挿入されるよう…

Arrayのメソッドその2

Array.try_convert 1.9から。引数のオブジェクトをto_aryメソッドを使って配列に変換しようとする。変更できない場合は nil を返す。 Array#* 整数なら配列を整数個連結して返す String(またはto_strを持つメソッド)ならjoin(str)と等価 重複削除系 とか & …

sudo-ext.el

Emacsの中でsudoする方法 〜これでrootによる操作も楽々〜 - (rubikitch loves (Emacs Ruby CUI Books)) をみて導入してみる→なぜか動かない→数ヶ月放置→sudo-ext.elが依存しているっぽいsudoeditコマンドが、macに入っていないことに気づく sudo port insta…

Array.new

第一引数に要素の数を指定できる。第二引数にオブジェクトを指定すると、そのオブジェクトが第一引数の数格納された配列を返す。この場合、配列の全部の要素が同じオブジェクトを指すので、別々にしたい場合はブロックを使う。 a = Array.new(2, {}) #=> [{}…

はじめる!Cucumber第3章

気になったとこだけメモ シナリオの部分実行 下記のように、FEATURES=(ファイル名):(行番号)というオプションを渡すと、指定したシナリオのみを実行できる。 rake cucumber FEATURE=features/messages.feature:14 headerメソッド webratのメソッド。リクエス…

emacs-clientで起動したバッファを終了するには

C-x #

入門Gitメモ chapter 5

git

push, pull, merge 本来git pushには「どのリポジトリに」「どのブランチを」転送するかを指示しないとならないが、git clone で作ったリポジトリでは、デフォルトで、cloneしてきた元のリポジトリに対して、双方のリポジトリで共有しているブランチを全て転…

今週のRailsCasts - Offline Apps Part 1

HTML5 の cache manifest を使って、オフライン時でもコンテンツを表示させる話。Railscasts - Offline Apps Part 1 ASCIIcasts - “Episode 247 - Offline Apps Part 1”rack-offline gemを入れると、 public 配下のファイルを見てmanifestファイルを自動で作…

Emacs用のIMEのon/offの切り替え

C-\でEmacs用のIMEのon/offを切り替えられる。何かの拍子でC-\して挙動がおかしくなって???となったのでメモwin版Emacs23でも一応IMEインライン入力できる:プログラミングのメモ日記