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

Croudのスタックを2本に拡張

クラウド・コンピューティング時代のオレ様プログラミング言語「Croud」にはスタックが1本しかなかった。これでは制限がきつすぎるし、かといってヒープとかじゃつまらないと思い、もう1本、裏スタックを加えようと思って、次のようにStackクラスを作ること…

さらにn本のスタックに拡張

クラウド・コンピューティングの本質は、好きなタイミングでスケールアウトできるスケーラビリティにある。というわけで、Croudでもスタックの数を2本に限定するのではなく、起動時にn本にまで自由に設定できる拡張を考えてみた。 class NStack def initiali…

クラウド・コンピューティング時代のプログラミング言語

時代はクラウド・コンピューティングらしい。というわけで『Rubyで作る奇妙なプログラミング言語』の演習として、以下のようなスタック型マシンのプログラミング言語「Croud」を作ってみたいと思った。ソースコードの記述に使うのは、以下の4つのモコモコ。 …

エソテリックな方面

「Rubyで作る奇妙なプログラミング言語」(原悠:amazon:4839927847)がおもしろい。brainf*ck系の奇妙な言語の総覧が楽しい上に、悪ノリした語り口調が、ともかく読んでいて笑える。それでいてRubyの基本お作法の解説になっていつつ、処理系入門、ラムダ計…

かすかにRails

「Webなんて勉強するほどのもんじゃないよ」と、偉い先生が言ったのだけど、Webのほうがアウトプットの楽しみがあるんじゃないかと思って、少しRailsを触ってみることにした。とりあえずgemで最新版のRails 2.2.2を入れて、scaffoldを作ってブラウザからつつ…

みんなどのぐらいTwitterでフォローしてるの?

Twitterの続き。自分がフォローしている76人のユーザーが、それぞれどのぐらいの数のユーザーをフォローしているか調べてみた。APIを叩いて戻ってきたXMLデータの「/user/followers_count」だけ拾って計算。多い人は1万とか2万、割に多いのは100〜200ぐらい…

グラフのライブラリ「RGL」

The Ruby Wayを見ていて、グラフがおもしろそうだなと思った。自分でグラフ構造を実装しなくてもRuby用ライブラリって、すでに豊富にあるようだ。矢印と箱で示した画像が出力できるようなものもあって、このへんのツールに対してTwitterのつながり関係を突っ…

ページをどんどん繰る再起

昨日のTwitterの続き。フォローしている人のリストはAPIを叩けばXMLで持ってこれるけど、1度に戻ってくるのは100人単位。100人以上をフォローしている人を対象とする場合、「user?page=2」とかやって次々とページを繰っていかないといけない。それで、次のよ…

Twitterをnet/httpから

Twitter.comのAPIをいじって見ようと思って、net/httpを使ってみた。気の利いたライブラリもあるのかもしれないけど、Twitter APIってそんなの不要なほどシンプルな気がする。とはいえ、ただHTTPで叩いた結果から一部を表示するだけのことでも、XMLをパーズ…

クラウドとかgitとか

ぜんぜんRubyとは関係ないけど、Amazon EC2+EBSでUbuntuを10個起動して遊んでみたり、Github.comにアカウントを取ってコードをアップロードしてみたりした。どっちもなんかおもしろいなと思う。Ruby学習法として、いろいろ読むと、まずGithubにアカウントを…

13日金曜日再び、パイプ処理的な

1902年から2037年までの各年に、13日の金曜日が何日あるかを数え上げるスクリプトを書き換えてみた。集計のためのハッシュを用意する代わりに、Array#productを使って生成した配列をごにょごにょっといじる間に答えが出るようにしてみた。 years = (1902..20…

13日の金曜日

年末年始はすっかりPCから離れてしまった。少しリハビリ。13日の金曜日が存在しない年はない。じゃあ1年に何回あるのよというのをチェックするプログラムを考える。普通に二重ループにすれば済む話だけど、何となくinjectを使ってみたかった。で、使ってみた…

Classクラスとreification

檜山さんが書いた「いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ」というエントリを読んだ。実は以前にも見たのだけど、読む気すら起きなかったし、なんだか分からない世界だなぁと思っていた。ところが、去年「Ruby Hacking Guide」…

Array#product

arikui1911さんに教えていただいたArray#productを使ってみた。Ruby 1.9系もしくはRuby 1.8.7以降で追加されたメソッドらしい。productって積ってことだから、集合の積だよね、まさにこれは求めていたものという気がする。 [1,2,3].product([4,5]) # => [[1,…