alias vs alias_method - BigBinary Blog というブログ記事で、alias と alias_method の違いが説明されています。書式の違い以上に個人的にひっかかったのは、self が異なりうる という指摘です。alias はキーワードであるため、レキシカルに決まります。以下のコードで (1) alias_method だった場合、(2) alias だった場合、それぞれ "Johnnie Walker" と "Geeky geek" のどちらが出力されると思いますか。答えと解説は元記事を読んでみて下さい。 class User def full_name puts "Johnnie Walker" end def self.add_rename # alias_method :name, :full_name (1) # alias name full
明後日にはiPadが発売されますね。みなさん、予約していますか?みなさんが予約しているかどうかなんて、私はこれっぽっちも興味がありません。それより、Mac使ってますか?Macのターミナル使ってますか?Macだといろいろなターミナルアプリが使えますが、私はデフォルトのターミナルしか興味がありません。これで十分です。 Web系のプログラミングは、すべてターミナル上のVimでやっています。よく使うターミナルだから、快適に使いたいですよね。そこで、ターミナルのオススメ設定を書いておきます。でも、好みは人それぞれなので、オススメじゃありません。ぜんぜんオススメじゃありません。 こんな感じになります。 それでは、設定。 デフォルトの見た目を選べますが、「Pro」を選びます。だって、プロですから。「Pro」を選ぶのが、プロ意識です。 フォントは、「M+2VM+IPAG circle」を使います。サイズは
こちらの記事を参考にJavascriptでサブドメインの異なるサイト間でクッキーの恭有してみました。http://d.hatena.ne.jp/dirablue/20090506/1241607961http://www1.example.com/setCookie.htmlsetCookie.html html> head> script type="text/javascript"> function setCookie(id, pass) { var s=setCookieSub("id",id); document.cookie = s; var t=setCookieSub("pass",pass); document.cookie = t; alert(s+"\n"+t); } function setCookieSub(key,val){ var str = escape(k
レンタルしているサーバがメモリ不足のため、gem installがうまくできない。 Bulk updating Gem source index for: http://gems.rubyforge.org のまま固まったまま。メモリとCPUを食い尽くして他のサービス影響が出た。調べてみるとgemをダウンロードして、そこからインストールができるみたい。gemはrubyforgeからダウンロード。http://gems.rubyforge.vm.bytemark.co.uk/gems/ sudo gem install mechanize --local のようにすればインストールができる。 ERROR: Error installing mechanize: mechanize requires hoe (>= 1.8.2) が出たら、必要なgemをダウンロードして、そちらを先にインストー
Intent intent = new Intent(this, SampleActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); FLAG_ACTIVITY_CLEAR_TOP:スタックをクリアしてからActivityを起動 FLAG_ACTIVITY_NEW_TASK:スタックに同じActivityがいても新しく起動 FLAG_ACTIVITY_CLEAR_TOPの正確な挙動はこちらの図が分かりやすい。スタックのActivityを全て削除するのではなく、呼びだそうとしているAcitivity以降に起動されたAcitivityを全削除する。要は一度呼び出しているAcitivityに飛ばないと意味がなさそ
rake タスクを定義するときに、既に同じ名前のタスクが存在する場合は、処理内容が「再定義(上書き)」されるのではなく、定義した順に処理が実行されます。 例えば、以下のように hello というタスクを 2 回定義しているとします。 # lib/tasks/hello.rake desc 'Hello1' task :hello do puts 'Hello1' end desc 'Hello2' task :hello do puts 'Hello2' end 「rake hello」で hello タスクを実行すると、タスクを定義した順に実行されることが分かります。 $ rake hello Hello1 Hello2 「rake -T hello」で hello タスクの情報を表示すると、定義した内容がそれぞれ実行されることが分かります(desc で指定した説明が '/' で区切られ
アルゴリズムアートにチャレンジしてみました。 こちらでご覧いただけます モンドリアンの有名な絵を描くというもの。以下はアルゴリズムで描いた1枚です。 毎秒1枚ずつ描くのを眺めていると、ときどきこうしたいい感じのが出てきます。 アルゴリズムの説明は割愛します。ソースコードを置いておきます。 Chiral’s gist コーディングにはProcessingという言語を使っています。この言語は、メディアアートに特化したJavaのサブセット言語のような感じのもので、言語仕様が簡単で色んな処理系が実装されています。Processing.jsはjavascriptによる処理系で、Webブラウザ上でProcessingのコードを動かす事が出来ます。 processing.js公式サイト アドファイブ社のホームページを作っていて、フリーの良い素材がないのでアルゴリズムアートで色々作ろうかと思い立って作って
Ruby の foo.map(&:bar) といったコードが、どういう仕組みで、どういうときに使えるのかを解説します。 使用例 Symbol#to_proc はワンコールブロック(処理が一行しかないブロック)を簡潔に書くのに使われています。 これが、 names = ['bob','bill','mike'] names.map {|name| name.capitalize} # => ["Bob", "Bill", "Mike"] 次のように、簡潔に書けます。 names = ['bob','bill','mike'] names.map(&:capitalize) # => ["Bob", "Bill", "Mike"] ひとことでいうと、「Symbol が Proc に変換され、Proc がブロックに変換されるから」上記のような記述が可能になります。 解説 Symbol には、to
AkkaのRemoteActorはとても便利で使い勝手がよさそうな予感がします。 まずRemoteActorを実行するためのサーバを用意します。 以下がそのコードです。 1行ですね。 def main(args: Array[String]) :Unit = { RemoteNode.start("0.0.0.0", 8889,Some(getClass().getClassLoader())) } 次に アクターをリモートサーバに登録し、リモートサーバにメッセージを送信し処理を実行します。 class a4 extends Actor{ var count=0L def receive ={ case x:Int => count+=x;println(count) case "RESET" => count=0 case "GET" => reply(count) } } def ma
小さな単位で RSpec でのテストを実行するのに、 rspec -l192 path/to/test_spec.rb と l オプションを使っていたのですが、以下のように「rspec テストファイルへのパス:行番号」でもうまくゆきました。v2.12.0 です。 rspec path/to/test_spec.rb:192
Rails 2.1からの機能です。modelと書きましたが、ActiveRecord派生クラスのオブジェクトということです。modelを更新する前に、どのカラムが変更されたか、変更前の値は何か知ることができます。 こんなメソッドが用意されています。 changed?変更されてるかどうか。 changed変更されているattribute名の配列。 changes変更されているattribute名前と値のハッシュ。値は変更前更後の値を配列で。 <attr>_changed?<attr>が変更されているかどうか。 <attr>_was<attr>の変更前の値。偏向されてなかったら元の値。 <attr>_change<attr>の変更前後の値の配列。変更されてなかったらnil。 <attr>_will_change!<attr>を変更することを明示。いつ使うかわからん。 <attr>は、例えばti
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く