Chromium OS (Chrome OS) をビルド

 

違う、我々が欲しいのは電源をONにした瞬間起動するマシンだ。
(2007年08月17日)

あれから、2年の歳月が流れて、、、

Chromium OS をビルドして、VirtualBox 3.0.12 で動かしてみました。 ビルドに使用した環境は、Ubuntu 9.10 (64-bit) です。

すでに、参考になるサイトが揃っています:

Chromium OS の起動には成功しましたが、作業中に少し引っ掛かったところがあるので、 メモを残しておきます。

並列処理 - Google Go

 

並列処理 - フィボナッチ数を7個同時に計算(Erlang)を Go に移植してみました。

Ubuntu Desktop 9.10 (64-bit) へ移行しました

 

メインOSを移行しました。 Fedora 11 (32-bit) から、 Ubuntu Desktop 9.10 (64-bit) への移行です。

マシンに搭載されている CPU は Core 2 Duo です。 32-bit と 64-bit のどちらで動かすか悩んだのですが、 どうせなら CPU が持っている機能を活かしてみたいと思ったので、 64-bit を選択しました。

ダウンロードしたファイル「ubuntu-9.10-desktop-amd64.iso」を (CD-Rではなく)DVD-Rに焼いてブートすると、 サクサクとインストールが進んで、何も悩むことなく完了しました。

ログインしてすぐに視覚効果を設定しましたが、 このタイミングで NVIDIA のドライバが自動的にインストールされて、 本当に手間がかからなくて助かりました。

続いて、追加でインストールしたアプリケーションと、 気になったことなどを書いておきます。

OSSのクラウド基盤ソフトウェア

 

クラウド大全 <サービス詳細から基盤技術まで> をパラパラめくっています。

Amazon EC2, Google App Engine, Force.com, Windows Azure を中心に解説していますが、 気になったのが「ベンダーロックインの危険はないのか」(p.143)で触れている2つのOSS、 Eucalyptus と AppScale です。

クラウド基盤ソフトウェア前提とするするソフトウェア備考
Eucalyptus日本語情報Xen, KVM Amazon EC2 クローン
AppScale Amazon EC2, Eucalyptus,
Xen, KVM
Google App Engine クローン

自前でクラウドを構築しようとすると、短絡的に VMware vSphere を思い浮かべてしまうのですが、OSSという選択肢もあるのだ、ということを思い起こしました。

Internet Explorer (IE) を使用する理由は何ですか?

 

livedoor のネットリサーチを使用して作成したアンケートです。

2009-10-06、投票の受付を終了しました。 ご協力くださった皆様、どうも有難うございました。

Ruby本、三冊

 
  • Ruby逆引きハンドブック
    Rubyの価値をも高めてしまう一冊。 イディオム(慣用句)や定番の書き方が分るので重宝する。 得られる知識についても大いに満足できる。 場合によっては、逆引きせずに頭から読んでいくのも有りではないか。 索引が強化されれば更に良い。
  • Rubyによるデザイン・パターン
    GoFをRuby色に染めるのが楽しい。 柔らかい口調と簡潔なコードに引き込まれる。 覚える気のしないRubyの機能であっても、この本を通すと面白さに気付いて試したくなる。 GoF(14パターン)に +αとして、DSL、メタプログラミング、CoC(設定より規約)が追加されているのも良い。
  • まつもとゆきひろ コードの世界
    Rubyの世界観を知ることができる。 本書自体はRuby本ではないのだろうが、必然的にコードの多くはRuby(期待通り)。 「この宇宙はなんでこんな風になっているのだろう?」の計算機バージョン。 序盤の似たような話が整理されれば更に良い。

まとめ

上記以外にも Rubyでつくる検索エンジン なんてのも出版されたばかりで、Ruby本のバリエーションが広がってきている。 こういった素晴らしい本が売れて、今後の出版に弾みがつくことを願う。 もちろん、楽しみたいから。

ハッシュのキーをプロパティに変換

 

JavaScript の場合は、次のように何もする必要がありません。

$ js
js> x = { 'foo': 123, 'bar': 456 } 
js> x.foo
123
js> x.bar
456

Ruby の場合は ostruct を使うのが簡単です。 ostruct については、 LukeSilvia さんが はてブコメントで教えてくれました。 どうも、ありがとうございます。

$ irb --prompt simple
>> require 'ostruct'
>> x = OpenStruct.new({ 'foo' => 123, 'bar' => 456 })
>> x.foo
=> 123
>> x.bar
=> 456

最初に書いたメタプログラミング版は、もはや使うことは有りませんが、 興味深いので残しておきます。

Google Analytics Data Export API

 

Google Analytics Data Export API が登場する前に書いた記事 「Google Analytics → POP3 → 独自レポート生成」 はメールベースだったこともあって、動いているのが不思議な状況でした。 早いところ API ベースに移行してスッキリしたいところです。

Client Libraries & Sample Code には GarbGattica という2つの Ruby ライブラリが紹介されています。 この2つの使い方を見比べてみて、エイヤッで後者の Gattica を試すことにしました。

内容は、2009年4月における「ブラウザ」と「OS」のシェアを報告するというものです。

Amazon Product Advertising API (認証対応)

 

Amazon Product Advertising APIの認証の件(zorioの日記)に、 シグネチャを計算するコードが載っていたので、 これを参考にしつつ本物のキーを使用してリクエストを発行してみました。

内容は、1回のリクエストで10個の ISBN-13 を送信して、 それぞれの書名を取得するというものです。

Googleの検索結果に「はてブ」を表示(サーチウィキ対応)

 

はてなブックマーク Firefox 拡張 1.2.0 (はてなブックマーク日記)
“本日 Google / Yahoo! の検索結果に、はてなブックマークの情報を表示する機能を追加したはてなブックマーク Firefox 拡張 1.2.0 をリリースしました。”

2009-07-23


SearchWiki の日本語版がスタートするとともに、検索結果に「はてブ」を表示する Greasemonkey が動かなくなってしまいました。

Japanese Popular SBM Count With Google の利用者は、 これで解決できそうです(試していません)。

それでは、G+?B(いぬビーム) の利用者はいますか? なぜか私は G+?B を使っているので、こちらを修正して使うことにしました。

インストール

関数型 - パターンマッチ

 
パターンマッチのシナリオ:
  • 加減算を行うインタプリタ eval を実装する。
  • インタプリタは、手入力された抽象構文木(AST)を評価する。(5 + (7 - 9))
  • 手入力で AST を作成するメリットは、数式の字句解析と構文解析を省略できる点にある。
  • これにより、実装対象をインタプリタ(僅か10行ほど)に絞り込むことができる。
  • このインタプリタはパターンマッチの簡潔なサンプルとして優れている。
  • パターンマッチを使用すると、リストの分解など他にも面白いことができるが、今回のシナリオには含まれない。

Scala チュートリアル集

 
Scala のシンボル

Twitter のバックエンドとして知られるハイブリッド言語、 Scala のチュートリアルを集めました。

2009-11-07、1 件追加しました。
2009-09-16、1 件追加しました。
合計で 17 件あります。

関数型 - Yコンビネータ

 
Yコンビネータのシナリオ:
  • Yコンビネータ(こんな感じのやつ → Y(F) = F(Y(F)) )を無心に写経する。
  • サンプルとして fact(10) を計算する。
  • 変数名としても関数名としても、fact の名を冠するものは登場しない。