分散脳への入り口 – 書評「Googleを支える技術」

5月 28th, 2008 admin

感想

「Googleって何が凄いの?」
と聞かれた時に
「えー、ページランクでしょ、安価なPCで組んだスケーラブルなシステムでしょ・・・あとなんといっても無料の食堂」
というような回答しかできない僕にぴったりの本でした。

Googleが公開しているGoogleの初期の情報をもとにしているので現在のシステムとは違うところがあるかもしれませんが、それでも多くの人にとっては十分に未来のシステムに感じられるのではないでしょうか。

僕が印象に残ったのは分散ストレージのChubbyの項目です。Chubbyは有名なGFS(Google File System)の子分のような存在で、GFSが何百GBというデータを扱うのに対して1kb程度の設定ファイルのようなファイルを扱うためのシステムです。

Chubbyが扱うデータは重要なものが多いため5台のマシンにコピーを作り1台がマスタとして動作するのですが、このマスタは誰かが決めて設定するわけではなく5台のマシンがお互いに投票しあって決めるそうなんです。
1KBのファイルを扱うChubbyが5人でグループを作っていて働いている。マスターが倒れると、残ったChubbyが悲しむ暇も無く新たなマスタを決め活動を続ける。なんだかChubby可愛いです。(名前の響きだけですね)

他に僕が知らなかったのは電力の問題。Googleのマシンは2007年で50万台と言われており、電力の確保が大変なんだそうです(Googleの電気代のせいで潰れたデータセンターがあるという話も載っていました)。

Googleの技術が面白いのはもちろんですが、それをこれだけ分かりやすく書いた著者も凄いと思う。
これは読まなきゃ損だったなと思える1冊でした。とても面白かったです。

VMware+Ubuntuの導入が最速すぎる

5月 20th, 2008 admin

ubuntu.gif

どれぐらい早いか

なんせVMware用のUbuntuイメージが用意されているので、VMwarePlayerのインストールさえ終わっていれば、やることはUbuntuでのユーザ作成だけなので5分以内でデスクトップ環境が手に入る。

なんかもうオープンソースで得したというよりは「まじで儲かった」というぐらいの衝撃を感じました。早いとこ使うばかりでなく提供する側になりたいもんですね。ほんとすばらしいです。

ダウンロード

VMwarePlayer
http://www.vmware.com/jp/download/player/

VMware用ubuntu
http://www.ubuntulinux.jp/products/JA-Localized/vmware

RubyKaigi2008発表者のサイト一覧

5月 20th, 2008 admin

RubyKaigi2008を100%楽しむためにメインセッションの発表者さんについて下調べをしたメモです。大変失礼なことに私がRubyコミュニティについて詳しくないために、人によっては紹介文が書けなかったりサイトのURLを示せなかったりして情報が偏ってしまっています。もし発表者についてご存知のことがあればコメントやメールにてご連絡いただけるととてもうれしいです。

現在の、そしてこれからのRubyVM開発 – ささだこういち

Ruby処理系であるYARVの開発者。Ruby1.9で採用された。
URL:http://www.atdot.net/

(仮)JRuby – Charles Nutter / Thomas Enebo

JVM上で動くRubyであるJRubyの開発者
Charles Nutter:http://headius.blogspot.com/
Thomas Enebo:http://www.bloglines.com/blog/ThomasEEnebo

The Magic of Rubinius – Evan Phoenix

Ruby処理系であるRubiniusの開発者
URL:http://blog.fallingsnow.net/
Rubyiniusについて(Ruby勉強会@札幌):http://www.nicovideo.jp/watch/sm3153177

基調講演 – まつもとゆきひろ

Rubyの開発者。最新の著書はビューティフルコード
URL:http://www.rubyist.net/~matz/
Rubyist Magazine:http://jp.rubyist.net/magazine/?0001-Hotlinks

Ruby M17N – 成瀬ゆい / Martin J. Dürst

すみません、両名とも情報募集です。追記しました。

成瀬ゆい: モノを浮かせる力を持つ女子高生・成瀬唯、ではないRubyコミッタ。RubyのM17Nを頑張ってる人。
URL:http://d.hatena.ne.jp/nurse/

Martin J. Dürst: 青山学院大学理工学部准教授。W3Cで国際化プロジェクトなどの議長を務める。RubyのM17Nに貢献している。
URL:http://www.sw.it.aoyama.ac.jp/

Ruby《を》教えてるんじゃない、Ruby《で》Ruby《を》教えてるんじゃない、Ruby《で》教えてるんだってば – 増原英彦

東京大学の助教授(研究内容はこちら
URL:http://www.graco.c.u-tokyo.ac.jp/%7Emasuhara/

成功するRuby教育のプラクティス – 吉田裕美

ソフトウェア教育・ソフトウェア開発の会社の経営者
URL:http://d.hatena.ne.jp/yuum3/

RSpecによるRailsアプリケーションBDD事例 – Yugui

Ruby開発用BTS整備担当者。Rubyコミッタ。まもなく出る『初めてのRuby』の著者

URL:http://idm.s9.xrea.com/ratio/

(仮)Ruby技術者認定試験 模擬問題解説 – 松田慎弥

CTCテクノロジーの人

拡張ライブラリの書き方講座 – arton

ActiveScriptRubyの開発者。10日でおぼえる Ruby on Rails入門教室をはじめとして著書多数
URL:http://arton.no-ip.info/diary/
Rubyist Magazin:http://jp.rubyist.net/magazine/?0015-Hotlinks

さらに仕事に使うRuby – 後藤 謙太郎(ごとけん)

株式会社シングラムの取締役。今回のまるごと Ruby! Vol.1にも参加
URL:http://d.hatena.ne.jp/g5n/
Rubyist Magazine:http://jp.rubyist.net/magazine/?0011-Hotlinks

erbを偲んで – 関将俊

eRubyやdRubyの開発者。幸せの王子本の著者。関さんの雰囲気は大好き。
URL:http://www2a.biglobe.ne.jp/~seki/ruby/index.html
Blog:http://d.hatena.ne.jp/m_seki/
Rubyist Magazine:http://jp.rubyist.net/magazine/?0013-Hotlinks

matzを説得する方法 – 田中哲

Rubyist Magazin:http://jp.rubyist.net/magazine/?0008-Hotlinks

ブログ http://cvs.m17n.org/~akr/diary/

日本Rubyのリファレンスマニュアル2008・初夏 – 青木峰郎

Rubyのリファレンスマニュアル管理者の代表。著書はRubyソースコード完全解説ふつうのLinuxプログラミングCSNAGOYA勉強会でも使わせていただいているふつうのHaskellプログラミングなど多数。青木さんの本はとても読みやすい。
URL:http://i.loveruby.net/
Rubyist Magazine:http://jp.rubyist.net/magazine/?0017-Hotlinks

The future of Ruby in Mac OS X – Laurent Sansonetti

Apple社のMacRubyプロジェクトの人
URL:http://chopine.be/lrz/

REST信者から見たRuby on Rails 2.0 – 山本陽平

RESTful Webサービスの著者
URL:http://yohei-y.blogspot.com/

Real-World Enterprise Ruby – 大場光一郎・高井直人

大場光一郎さんはJrubyやMeadowの開発者の一人。両名ともCTCの人
大場光一郎:http://ko.meadowy.net/~koichiro/diary/
高井直人:http://recompile.net/

大場光一郎: まるごと Ruby! Vol.1にも参加。「Ruby on Rails 逆引きクイックリファレンス Rails 2.0対応」の著者の一人。嫁が小槌の人(http://everyleaf.com/)
高井直人: WEB+DB PRESSにJavaの記事を連載していた(現在終了)。まるごと まるごと Ruby! Vol.1にも参加。GlassFishコミッタ。Akasaka.rb主催(http://akasakarb.org/)

Developing and scaling iKnow! – Zev Blut

発表内容からしてiKnowの人、TLUGにも所属しているっぽい

Inside Tabelog’s Backend – 京和崇行

発表内容からしてkakaku.comの人

ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile – しだらようじ

Ruby札幌の人。Jpmobileの開発者
URL:http://d.hatena.ne.jp/darashi/

Using Ruby to Build a Scalable Startup – Alex Kane, Tunecore.com

URL:http://www.alexkane.net

Rails症候群の研究 – 前田修吾

NaClの人。RailsによるアジャイルWebアプリケーション開発 第2版の翻訳など。
URL:http://shugo.net/
Rubyist Magazine:http://jp.rubyist.net/magazine/?0002-Hotlinks

2008.05.22 情報を追加

Yuguiさん有難うございました。

2008.06.23 情報を追加

Alex KaneさんのWeb siteが間違っていたので修正しました。

2008.06.26 情報を追加

かずひこさん有難うございました。

2008.06.30 情報を追加

koichiroさん有難うございました。

発振回路できたよ 第五回「CPUの創りかた」読書会

5月 19th, 2008 admin

未知の分野だろうがなんだろうが勉強会をでっちあげ、集まった人の中で一番詳しい人に解説をさせるという参加者駆動型の勉強会「カジュアルスタディ名古屋」が今回でなんと開催50回目を迎えました。これも賢い参加者様のおかげです。本当に有難うございます。

発振回路を作りました

「CPUの創りかた」シリーズもいよいよ実習に入ります。まずは発振回路、リセット回路から作ることになりました。
発振回路というのはONとOFFを一定時間で繰り返す回路のことで、CPUのクロックパルスとして使用します。
最近のCPUだと2GHz(1秒間に20億回)とかいう凄いスピードなのですが、我々は素人なので1Hzの回路からスタート・・・。なんと最近のCPUの20億分の1の性能です。
ミニ四駆とF1でも20億の差はないと思います。僕とクリスティアーノロナウドを比べてもサッカーの腕前に20億倍の差はありません。これがコンピューター業界か!と勝手に感動してしまうのは私だけでしょうか?そうですよね。

とにかく、まずはブレッドボード上で組み立てることにしました。
20080518183958.jpg
中国製のブレッドボードを使用した参加者の方が予想不可能なボード裏の配線パターンによって30分ほど苦しみます。恐るべし!中国製。ですが回路の端っこから動作チェックを行ったりして色々勉強になりました。ありがとう!中国の工場!

そしてできた回路がこれ
20080518184034.jpg
なんだか結構単純ですね。線がもりもりなのが素人臭さをうそ臭いぐらいにアピールしてきますね。通常の電子工作では水晶発振子などを使いますが、「CPUの創りかた」ではコンデンサを使って発振回路を作っています。今制作しているTD4というCPUのキラーアプリはタイマーなのに発振回路に精度が無いと言う大変な設計です。

まとめと今後

今回は発振回路をブレッドボード上で組み、1Hzと10Hzでの動作をLEDの点滅で確認しました。また基盤への部品配置なども始めました。次回は発振回路の完成とメモリの作成に取り掛かれればなぁと思っています。

デザイナーのためのCakePHP1.1メモ

5月 18th, 2008 admin

デザイナーのためのCakePHP入門」というエントリを書いていたのですが、さしあたって1.1の説明が必要になったのでデザイナーさん向けのメモ。主にビューでのHTMLヘルパーの説明になります。

どこを編集すればいいのか?

/app/views

テンプレートファイルがあります

/app/webroot

Stylesheet、Javascript、画像、そのほかのファイルなどはこちらにおきます。css,js,imgというディレクトリがあらかじめ用意されています。大変申し訳ないのですがディレクトリ名はこのまま使ってください。(変えたい場合はプログラマに相談してください)

テンプレートの構造

ここからは/app/views以下の話になります。
まずレイアウトが/layout以下にあり、layoutファイルの中の

<?php echo $content_for_layout ?>

という記述のところに中身が差し込まれます。

<?php echo $this->renderElement('なんとか'); ?>

という記述を見つけたら、それは「/views/element/なんとか」ってファイルを取り込んでいますので、そちらを見てください(layoutファイル以外でも使われます)

各種タグなど

各種外部ファイルの読み込み

PHP:
  1. <?php echo $html->css('import'); ?> //スタイルシートを読み込む
  2. <?php echo $javascript->link('prototype');?> //Javascriptを読み込む

拡張子は省略できます。それぞれ/app/webroot/css,/app/webroot/jsに入れておいてください。

画像を表示

PHP:
  1. <?php echo $html->image("logo.gif") ?>

これで/app/webroot/imgにあるlogo.gifを表示します。

PHP:
  1. $html->image('logo.gif',array("id"=>"logo","alt"=>"会社ロゴ"));

第2引数にハッシュを渡してやることでimgタグにid="logo",alt="会社ロゴ"が追加されます。

リンク

PHP:
  1. <?php echo $html->link("トップ" , "/top"); ?>

とやると、/topへのトップというリンクを表示します。

PHP:
  1. <?php echo $html->link("トップ" , "/top",array("target"=>"_blank")); ?>

このタグもハッシュで属性を追加できます。この場合はtarget="_blank"が追加されます。

画像でのリンク

PHP:
  1. <?php echo $html->link($html->image("/logo.gif",array("id"=>"logo")),"/top",false,false,false)?>

画像でのリンクは画像とリンクのタグを組み合わせるとできます。後半にfalseが3つも並んでいて無駄に見えますがこれは必要なので書くようにしてください。

まとめ

この他にもフォームを書くときなども専用のコードを書く必要があります。面倒くさいですね・・・