RubyでFizzBuzz問題を解いて上司に対抗しよう!

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。RubyでFizzBuzz問題を解いて上司に対抗しよう! : melborne.github.com - FizzBuzz問題は有名だから 少しプログラムをか…

irbから学ぶRubyの並列処理 ~ forkからWebSocketまで

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。irbから学ぶRubyの並列処理 ~ forkからWebSocketまで : melborne.github.com - 世の中は並列化花ざかりだよ 人間はシン…

僕はブログを書く ~ HateDa::Bookmarks の紹介

僕はブログを書く 名前も知らない誰かが そのテーマに惹かれて きっと読んでくれるから 僕はブログを書く 年齢も性別も知らない誰かが 僕と同じ関心を持って ブクマをしてくれるから 僕はブログを書く きっと生涯会うことのない誰かが その内容に共感して ス…

Ruby脳でCoffeeScriptのクラスを理解する

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。Ruby脳でCoffeeScriptのクラスを理解する : melborne.github.com - Rubyは最高の言語だから もっと普及していいと思う…

Rubyでもリスト内包表記したい?

PythonやHaskellやErlangにはリスト内包表記と呼ばれる リストの中で新たなリストを生成する構文があるよ例えばRubyでリストの要素の値を倍にしたい場合は Array#mapを使うよね l = [*1..10] l.map { |i| i*2 } # => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] …

Rubyで論理プログラミングしようよ!

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。Rubyで論理プログラミングしようよ! : melborne.github.com - 人生は選択の連続だよ 1つの選択が君の未来を変えるよ …

RubyのようなCoffeeScriptを使ってJavaのようなProcessingを書いてJavascriptで実行してWebでビジュアライジング・データを実現しようよ!

「ビジュアライジング・データ ―Processingによる情報視覚化手法」(Ben Fry著) という 情報視覚化の実践的テクニックを解説する素晴らしい本があります ビジュアライジング・データ ―Processingによる情報視覚化手法作者: Ben Fry,増井俊之(監訳),加藤慶彦出…

RubyでもErlangの[H|T]したいよ!

「プログラミングErlang」(Joe Armstrong著/榊原一矢訳) という本でちょっとErlangの世界を覗いているよ プログラミングErlang作者: Joe Armstrong,榊原一矢出版社/メーカー: オーム社発売日: 2008/02/23メディア: 単行本(ソフトカバー)購入: 8人 クリック…

+ (足す)から始めるRuby

数学の世界で + は演算子である 5歳の子供でもそれを知っている そして私やあなたが老いて死にゆくまで + は演算子であり そこに疑念の入る余地はない プログラミングの世界でもふつう + は演算子である CでもJavaでもPerlでも + は演算子であり それ以上で…

1から始めるRuby(その3)

1から始めるRuby(その2)の続きです クラスメソッド定義(続き) bonjourメソッド内でselfを使うことで このメソッドがそれぞれのクラスでの呼び出しに対し 適切に応答するようになった しかしできればbonjourメソッドは Fixnum専用のものにして 他のクラスで…

1から始めるRuby(その2)

1から始めるRubyの続きです クラス再び 「Rubyの1はFixnumというクラスに属している」 前回私はそう言った 疑い深いあなたは うさぎ本*1やキリン本*2を紐解いて その事実を確かめたかもしれない でもそれは回り道だ それも1に聞くのが確実で早い >> 1.class …

1から始めるRuby

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。1から始めるRuby : melborne.github.com - 数学の世界で1は数である 3歳の子供でもそれを知っている そして私やあなた…

RubyのメタプログラミングでInterpreterパターンを実装しよう!

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。RubyのメタプログラミングでInterpreterパターンを実装しよう! : melborne.github.com - 「Rubyによるデザインパター…

Ruby1.9でもEND HELLを解消したい!

RubyKaigi2011において 現行Rubyの構文上の欠点である END HELLを解消するEnd Rubyが あんどうやすし氏(id:technohippy)により提唱されました parse.yの歩き方 END HELLとは要するに以下のような 醜いendの連なりのことです module MyModule class MyClass d…

HerokuでSinatraでmemcachedしようよ!

「NoSQL データベースファーストガイド」(著:佐々木達也) という本を読んでるよ 各種NoSQLのひと通りの説明と それぞれにRubyを使ったサンプルがあって 僕のようなNoSQL知識ゼロ(NoKnowledge) の人にとってはとてもためになるよ 特にサンプルは各NoSQLの利…

RubyでHaskellの数列リストを真似てみよう!

HaskellのリストはRubyの配列と同じように 要素をカンマ区切りのカッコで区切って生成できるんだ Hugs> [1, 2, 3] [1,2,3] Hugs> ['a', 'b', 'c'] "abc" Hugs> ["one", "two", "three"] ["one","two","three"] だけどHaskellのリストは Rubyの配列よりもその…

Rubyのrepeat関数でフィボナッチ、トリボナッチ、テトラナッチ!

1または複数の初期値に任意の関数を繰り返し適用して その結果のリストを返す汎用関数repeatを定義しよう def repeat(f, *args) Enumerator.new { |y| loop { y << (*args = f[*args]) } } end repeatは関数f*1とfの初期値となるargsを引数に取り Enuerator…

Enumerable#thread_withでRubyのスレッドを簡単に使おう!

前回の投稿ではsleep sortと それに対抗したrunning sortを紹介したよ sleep sortに対抗してrunning sortだ!(失敗に終わる編) それらのアルゴリズムではRubyのThreadを使ったけど Threadってなんか毎回書き方を忘れるよ 引数の受け渡し方とかjoinとか も…

sleep sortに対抗してrunning sortだ!(Ruby版|失敗に終わる編)

少し前にsleep sortという ソートアルゴリズムが発見されたよね 常識を覆すソートアルゴリズム!その名も"sleep sort"! これをRubyのThreadを使って実現すると だいたい次のようになるんだよ class Array def sleep_sort mem = [] map do |i| Thread.new(i)…

Rubyのpでメソッドチェーンを覗き見よう!

Rubyでメソッドチェーンの途中経過を覗き見るには Kernel#tapが便利だよね (1..10).tap{ |x| puts x.inspect } .to_a.tap{ |x| puts x.inspect } .select { |x| x % 2 == 0 }.tap{ |x| puts x.inspect } .map { |x| x * x }.tap{ |x| puts x.inspect } # >> …

知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。知って得する21のRubyのトリビアな記法: melborne.github.com - ちょっとトリビアだけど 知っていると意外と便利なRuby…

内部DSLを使って、RubyのWebフレームワークを書こう!

Sinatraのようなベース言語の構文を使って実現するDSLを 内部DSLといいます 前回僕が書いたChinatraは一見内部DSLにみえるけど ベース言語とは異なる構文を使った外部DSLです でも時代の風は内部DSLに向いています the 0.8 true language 言語ワークベンチ …

Sinatraに別構文があってもいいじゃないか!

前の投稿でSinatraはRubyそのものでDSLじゃないと言いました SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! 確かに内部DSLというのはそういうものなのかもしれません でも言語といったら独自の構文くらいはもっていたい それで コ…

SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ!

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! : melborne.github.com - Sinatraのサイトを…

HTML5+CSS3でWebの未来を開こうよ!

GoogleがHTML5+CSS3に本気のようです Chrome ウェブストア日本版スタート! はてブディレクターがGoogleに聞いてみた - はてなブックマークニュース Googleが本気ならWebの未来はそちらにあるのでしょう ここはひとつ バスに乗り遅れないようにしたいですね…

ABCでもマリオを奏でたいよ!

一年ほど前に_whyのbloopsaphoneを使って マリオを再生できるBloopSongというRubyのDSLを書きました bloopsaphoneでは RTTTL(Ring Tone Text Transfer Language)という 携帯電話の電子音に使われる記譜法で書かれた音符を再生します Rubyでマリオを奏でよう…

jQuery UIでCanvasアニメーションを操作しようよ

HTML5 Canvasがマイブームです でも慣れないJavaScriptに悪戦苦闘しています なかなかキレイにコードが書けません... http://crayovas.heroku.com/ http://aclock.heroku.com/に続き デモを作ったので公開します jQuery UIのスライダーを使って ボールの速度…

CanvasアニメーションをHerokuで公開しようよ!

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。CanvasアニメーションをHerokuで公開しようよ! : melborne.github.com - もしあなたが暇で暇でしようがなくて 一日中…

Crayovasで塗り絵しようよ!

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。Crayovasで塗り絵しようよ! : melborne.github.com - 前の投稿でHTML5のCanvasを使った Crayovasというデモサイト作っ…

Ruby製クレヨンでお絵描きしようよ!

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。Ruby製クレヨンでお絵描きしようよ! : melborne.github.com - 米国にCrayolaというクレヨンの老舗メーカーがあります*…