2009-12-14
scriptタグの罠メモ
script タグで外部Javascriptファイルを読み込むときは、charset 属性で外部ファイルの文字コードを指定出来る。
指定しておかないと、読み込み元と文字コードが異なるときに日本語が化けてしまう。
charset="utf8" と適当に書いても、firefoxではきちんと動くのだが、 IEだと、文字化けしてしまう。正しくは charset="utf-8" らしい。
2009-12-11
appengine-jrubyでハマったメモ
GoogleAppEngine + JRubyでクリスマスまでに彼女をつくる方法 : tech.kayac.com - KAYAC engineers' blog
や、
appengine-jrubyで簡単GAE/JRuby開発 - しばそんノート
などをみて、appengine-jruby楽しそうだなーと思って使い始めたのだが2点はまった。
1点目
準備として google-appengine という名前の gem を sudo インストールする。
sudo gem install google-appengine
こんな感じ。だが、何故かインストールされるライブラリの権限が 700 などになっていて一般ユーザーでからは使えない。
su権限でならちゃんと使えるのだがいろいろ気持ち悪いので、
$ /usr/lib/ruby/gems/1.8/gems/appengine-*/lib/*
以下の権限を 644 とかに変えるといい感じに動く。
2点目
appengine-jruby の開発用サーバーが、
$ dev_appserver.rb .
で、port 8080 で起動するのだが、 localhost からしか繋がらない仕様らしい。なので vmware server などで起動しているとホストOSのブラウザから接続できない。なので、sshのポートフォワードなどで対応すると良い。
$ dev_appserver.rb --adress=0.0.0.0 .
として起動すると、どこからでも入れるっぽい。 adress の値はマスクかな・・・
このハマリポイントの原因が OS依存のものかと思って、centos 5.2 とか ubuntuとかいろいろ試してしまったが、とりあえず手元の CentOS 5.2 でうまく動いている。
2009-11-21
EeePC 901-16Gにchronium osを入れてみた。
7秒で起動できるという噂のchroniumだが本当なのか検証してみた。
前のエントリーで紹介した方法で、EeePCにインストール。起動する動画がこちら。
7秒でログイン画面まで何とか行ってるかな。というところ。ブラウザにgmailがでるまで20-30秒はかかっているだろう。まあ、マシンもちょっと古めだし十分及第点だとおもうけれども。
じっさいにはてなブックマークなどを表示してみたのがこちら
window切り替え機能などもあるんだけれど、けっきょく切り替わるwindowもブラウザという仕様。未来っぽいといえば未来っぽいのかもしれない。
Chronium osは本当にブラウザしかないLinuxという感じで、ブラウザ以外のことは何もできない。一応ターミナルに入る事はできるけれど一般ユーザーを考えての事ではないだろう。
ログインからしてgmailのアカウントを使うなどネットワークにつながっていることが前提なのに、EeePC 901ではWifiが標準ではつかえない。なので有線で実験している。無線の暮らしになれているのでこれはかなり苦痛。逆に無線が使えればかなりよいセカンドマシンになりそうな気もするので、どうにかカーネル等をいじってみようかなとも思う。
ブラウザですべてをまかなうというプランは、古くはSunのJava applet、最近だとMicrosoft .Netの最初の頃のイメージがあってうまくいかなかったものだが、Googleはそこも乗り越えて行くのだろうか。いまほど無線の高速ネットワークが発達している時代は今まで無かったわけだし、サーバー側の計算資源も今ほど大きくなっている時代は無いだろう。そういう意味では期待できると思うし、自分もなにかチャンスをつかみたいと思う。
が一方で、X Window端末が大型機にぶら下がっていた時代に戻るようにも見えるわけでまた、逆の方向、クライアントが強力になる方向にいつかより戻されるのではないかという気もしている。
chrome OSが公開されたので buildしてみる
gdgtというサイトに、イメージがあるんだけど、セキュリティ的によろしくないじゃない?と先輩に言われたのでビルドしてみる事にする。なぜ、セキュリティ的によろしくないのかはまだよく分からない。
といことで、昨日から一晩かけて chronium osのbuildとEeePCへのインストールをしてみた。
結論から言うと、VM Ware上でビルドするのは大変(処理速度的な意味で)。EeePC 901の上でも動くが、Wifiが今のところ使えない。
ブラウザの速度的には普通に快適だった。
以下、ビルドしてみたい人の参考にはなると思う。
参考ページ
Getting and Building a Chromium-Based OS (The Chromium Projects)
必要なことは、全部ここに書いてあるので、まあそんなに難しくは無いと思われる。
Chromium osをコンパイルしてみる - 崩壊現実-全てはvirtualに収束する-
先にビルドに成功している方。やり方が簡潔にまとまっているので、手順を参考にするならこちらの方がよいかも。
ビルド環境
Ubuntu 9.10 がビルド環境にお勧めお勧めされている。つい先日発表になった最新版である。手元に9.04の環境ならあったのでそれで大丈夫だろー。とか思ったら、 gprefのバージョンが合わなくてアップグレードすることになった。アップグレードは大変なのでこれからビルド環境をつくるなら素直に9.10をクリーンインストールするべきだろう。
ビルド準備
ここに、必要なパッケージとバージョンが書いてあるので一応それを確かめよう。Ubuntu 9.10なら全部大丈夫だろう。な。まさか。
下にあげたパッケージはubuntuをインストールするだけでは入らないので、apt-get install hoge でインストールする。
- g++
- g++-multilib
- bison
- flex
- gpref
- libnss3-dev
- libasound2-dev
- libgconf2-dev
- libgtk2.0-dev
- msttcorefonts
- freetype-dev
ソースを手に入れる
tarballでも良いのだけれど、せっかくなので俺は赤いGitを選ぶぜ。
と思ったら、depot-toolsがいるらしい。
Install the depot_tools (The Chromium Projects)
svnでインストールするので、svnもインストール。そして、depot-toolsも。
$ sudo apt-gte install subversion $ svn co http://src.chromium.org/svn/trunk/tools/depot_tools $ export PATH=`pwd`/depot_tools:"$PATH"
で、git に戻る。
$ mkdir [chromiumos] $ cd [chromiumos] $ gclient config http://src.chromium.org/git/chromiumos.git $ gclient sync
これでソースが手元に。遅い・・・・。
chromium(ブラウザの方)のソースも必要なようだ。また時間がかかりそうだなあ・・・。と思ったら無くても良いらしい。最新版で組みたい人は、落とせとのことらしい。
buildするぜ。
ln -s src/chromiumos/chromiumos.git chromiumos
これはやらなくても良いのだが、マニュアルにディレクトリを合わせる。
$ cd chromiumos/src/scripts/ $ ./make_local_repo.sh
localのリポジトリが作られる。ずいぶん時間がかかる・・・。
chromeos はchroot環境にしか作れないらしいので、chroot環境を作る処理を始めるやってることはいわゆるdebootstrapのように見える。
$ ./make_chroot.sh
続いて、ブラウザの方のchromeを組み込むためにバイナリを用意する。自分でコンパイルしても良いのだが、ソースを用意するのがけっこう手間そうだったので用意されているバイナリを利用することにする。と思ったのだが、解説ページのバイナリへのリンクは403になっているのであきらめて、自分でビルドすることにする。
chromeの準備
ソースをゲット
cd ~/src mkdir chromium cd chromium gclient config http://src.chromium.org/svn/trunk/src gclient sync
trunkは時々バギーな状態になっているので、チェックすべきらしい。
http://build.chromium.org/buildbot/waterfall/
を見て一番上のステータスがOPENになっていたら、問題なし。closeになっていたら問題があるので直るまでまつか、問題ないリビジョンでチェックアウトする。
chrome のビルド
./build_chrome.sh --chrome_dir ~/chromium
ここでうまくいかなくて、悩んでいたら、先のバイナリが手に入るようになったので、そっちを使うことに変更。
$ cd ~/src $ wget http://build.chromium.org/buildbot/archives/chromium-chromiumos-r32516/chrome-linux.zip $ mkdir -p ~/chromiumos/src/build/x86/local_assets $ cp chrome-linux.zip ~/chromiumos/src/build/x86/local_assets
いよいよビルド
$ cd ~/chromiumos/src/scripts $ ./enter_chroot.sh #chroot環境へ入る (chroot)$ cd ../platform/pam_google && ./enable_localaccount.sh USERNAME (chroot)$ ./set_shared_user_password.sh (chroot)$ ./build_platform_packages.sh (chroot)$ ./build_kernel.sh (chroot)$ ./build_image.sh
cd ../platform/pam_google && ./enable_localaccount.sh USERNAME
この行は本来非推奨なのだけれど、USERNAMEで chromium osにログインできるようにするため処理。
これをしておかないと、chromium osはgmailアカウントでログインするため、ネットワークにつながらないときにログインできない。後述する、EeePCなどの実機に入れるところで必要になる
set_shared_user_password は root パスワードのようなものを設定するものと思っていてよさそう。
なので、これが勝手に設定されているgdgt とかの野良パッケージは危ないのでは?とかいわれてるんだろうなー。
これでビルド完了。~/chromiumos/src/build/image/SUBDIR にイメージができあがる。
vmware 用のイメージに変換するときは
./image_to_vmware.sh --from=~/chromiumos/src/build/images/SUBDIR
さらに、インストール用USBメモリも作ることにした。4GB以上のUSBメモリが必要だ。
./image_to_usb.sh --from=~/chromiumos/src/build/images/SUBDIR --to=/dev/USBKEYDEV
USBKEYDEVは普通はsdb になる。USBメモリがどのブロックデバイスとして認識されたかは、mount df などコマンドで確認すればよい。USBKEYDEVはsdb1などのパーティションではなく、デバイス全体を与えるので sdb と与えればよい。
usbブートは何度も痛い目にあってるから正直心配なのだが、うまくいくかな。
ばっちり usbブートに成功。
起動に成功する EeePC 901-16G
つづいて、本体のSSDにインストール
- Ctrl+Alt+T でTerminalを立ち上げて
- /usr/sbin/chromeos-install
これで、本体のSSDから起動できるようになる。
はまりポイント
- shared user パスワードは設定しておくこと。でないと sudo できない。
- gmail以外のアカウントでもログインできるようにしておくこと。ネットワークにつなげられなくても動作確認はできる。
2009-09-17
サマーウォーズ風スクリーンセーバー Mac版
id:haiji505 さんからリクエストがあったのに今まで気づきませんでした。すいません><。
Mac版も用意しましたのでどうぞご利用ください。
- 例によって無保証です
- ウィルスチェックについても、無保証です。
- 圧縮されていますので解凍したうえで、実行してください。
- インストーラ形式になっています。

