年末年始
(乂∀・)ウィッシュ
« November 2008 | Main | January 2009 »
(乂∀・)ウィッシュ
Perl のフレームワークとして有名な Catalyst のオフィシャルサイトでは Advent Calendar と称して毎年12/1から12/24まで Catalyst の Tips が毎日公開されます。
Catalyst Advent Calendar (2007, 2006, 2005 もあります。)
そして、最近では perl-users.jp でも Perl 界隈で名前の通った方々がバトン形式で Perl の Tips を紹介されています。
すぐに試せる気の利いた Tips がありますので興味のある方はご参考にされてはいかがでしょうか?
ZIGOROu さんやえーじさんが中心となって、OpenID や OAuth、OpenSocial などオープンな規格から、Yahoo!、microsoft、Facebook などのサービスなど事例に触れながら、最終的には日本発の何かが作りたいね、というようなグループができました。
私も何かできることがあれば協力していきたいと思っています
OpenWebFoundation の日本版的なところかなーと思いつつ、やっぱりデベロッパー・ドリブンで形にしながら何かしたいですね。
まずは発足おめでとうございます
seealso:
先日エントリでお知らせしました通り、MacBook のメモリを 2G しました。
体感的には
あたりがあげられます。MacBook の起動そのものはあまり向上した感じがしませんが、その他普段使いのアプリが速くなったのでとても快適です。
512MB のときのアクティビティモニターの状態を取り忘れましたが、それにしても上記の画像でも分かりますようにすでに 450MB 近くは使用状態だったわけですから、512MB じゃ足りないわけですよねー。
メモリの増設に関しては Apple が提供しているドキュメントがもっとも親切です。説明に従えばできると思います。
それからネタフルさんのところで結構重要な一文がありました。
またパーツを戻す際に、メモリを抑えるウレタン樹脂のようなものがついているのですが、これはマイナスのドライバーではめ込みながらネジ止めすると良い具合です
開いたときには気づかなかったのですが、このウレタン樹脂みたいなのが結構収まりが悪いです。うまくやらないとネジをしめるときに L 字型ブラケットが浮いちゃう。最初にどうやって収まっていたか確認しながら開くのが吉です。
それから折角なので Xbench を使って計測してみました。変更点はメモリを 512MB (256MB x 2) から 2GB (1GB x 2) に変更したというところです。かなり向上したのが分かると思います。
メモリ 512M の Xbench 結果
Results 69.72
System Info
Xbench Version 1.3
System Version 10.4.11 (8S2167)
Physical RAM 512 MB
Model MacBook1,1
Drive Type TOSHIBA MK6034GSX
CPU Test 67.37
GCD Loop 232.44 12.25 Mops/sec
Floating Point Basic 83.13 1.98 Gflop/sec
vecLib FFT 37.67 1.24 Gflop/sec
Floating Point Library 60.63 10.56 Mops/sec
Thread Test 178.04
Computation 161.30 3.27 Mops/sec, 4 threads
Lock Contention 198.64 8.55 Mlocks/sec, 4 threads
Memory Test 103.48
System 97.95
Allocate 99.41 365.08 Kalloc/sec
Fill 98.47 4787.79 MB/sec
Copy 96.02 1983.19 MB/sec
Stream 109.68
Copy 106.24 2194.32 MB/sec
Scale 106.59 2202.20 MB/sec
Add 114.15 2431.74 MB/sec
Triad 112.18 2399.74 MB/sec
Quartz Graphics Test 89.34
Line 91.97 6.12 Klines/sec [50% alpha]
Rectangle 96.75 28.89 Krects/sec [50% alpha]
Circle 95.00 7.74 Kcircles/sec [50% alpha]
Bezier 102.28 2.58 Kbeziers/sec [50% alpha]
Text 69.18 4.33 Kchars/sec
OpenGL Graphics Test 207.01
Spinning Squares 207.01 262.60 frames/sec
User Interface Test 142.09
Elements 142.09 652.13 refresh/sec
Disk Test 21.18
Sequential 31.79
Uncached Write 39.48 24.24 MB/sec [4K blocks]
Uncached Write 31.27 17.69 MB/sec [256K blocks]
Uncached Read 23.83 6.97 MB/sec [4K blocks]
Uncached Read 37.65 18.92 MB/sec [256K blocks]
Random 15.88
Uncached Write 5.77 0.61 MB/sec [4K blocks]
Uncached Write 39.04 12.50 MB/sec [256K blocks]
Uncached Read 32.33 0.23 MB/sec [4K blocks]
Uncached Read 45.48 8.44 MB/sec [256K blocks]
メモリ 2G の Xbench 結果
Results 101.97
System Info
Xbench Version 1.3
System Version 10.4.11 (8S2167)
Physical RAM 2048 MB
Model MacBook1,1
Drive Type TOSHIBA MK6034GSX
CPU Test 68.84
GCD Loop 238.81 12.59 Mops/sec
Floating Point Basic 83.10 1.97 Gflop/sec
vecLib FFT 38.67 1.28 Gflop/sec
Floating Point Library 62.41 10.87 Mops/sec
Thread Test 177.40
Computation 160.98 3.26 Mops/sec, 4 threads
Lock Contention 197.56 8.50 Mlocks/sec, 4 threads
Memory Test 108.01
System 98.83
Allocate 96.06 352.77 Kalloc/sec
Fill 98.26 4777.80 MB/sec
Copy 102.36 2114.20 MB/sec
Stream 119.08
Copy 112.10 2315.30 MB/sec
Scale 114.54 2366.36 MB/sec
Add 126.35 2691.50 MB/sec
Triad 124.61 2665.80 MB/sec
Quartz Graphics Test 88.97
Line 92.15 6.13 Klines/sec [50% alpha]
Rectangle 94.89 28.33 Krects/sec [50% alpha]
Circle 93.68 7.64 Kcircles/sec [50% alpha]
Bezier 102.28 2.58 Kbeziers/sec [50% alpha]
Text 69.67 4.36 Kchars/sec
OpenGL Graphics Test 206.59
Spinning Squares 206.59 262.07 frames/sec
User Interface Test 192.45
Elements 192.45 883.24 refresh/sec
Disk Test 31.48
Sequential 47.60
Uncached Write 66.63 40.91 MB/sec [4K blocks]
Uncached Write 57.82 32.72 MB/sec [256K blocks]
Uncached Read 27.95 8.18 MB/sec [4K blocks]
Uncached Read 62.67 31.50 MB/sec [256K blocks]
Random 23.52
Uncached Write 8.23 0.87 MB/sec [4K blocks]
Uncached Write 61.28 19.62 MB/sec [256K blocks]
Uncached Read 56.42 0.40 MB/sec [4K blocks]
Uncached Read 68.54 12.72 MB/sec [256K blocks]
メモリの価格が破壊的に安い今、皆さんもご自分の MacBook のメモリを見直してみてはいかがでしょうか。
seealso:
ワタクシごとで恐縮ですが、キーワード「TypePad Connect」で Google 検索した結果、このブログが 1 位になっていました
うれしく
なってブラウザでキャプチャ
をとってしまいました。社内では goodpic の中の人の順位に注目していたのですが、よく見てみると私が 1 位でした。これでアルファブロガーの仲間入りですかね
最初に知ったときからだいぶ時間があいてしまったのですが、やっと試す時間が作れました。今日は Google App Engine についてメモです。
Google App Engine は Python 2.5 以上が必要なのですね。Google App Engine のインストール時に Python 2.5 以上がないと警告が出ましてインストールは途中で終了します。。。
Python はこちらからダウンロードできるようです。
さて、ここからやっと Google App Engine を使う準備が整ったことになりますね。
私の環境は Mac OS X (10.4.11、つまり Tiger) を使っています。
Google App Engine は /usr/local/google_appengine/ にインストールされました。
# find /usr/local/google_appengine/ -type f
としてみると Django が。へー。
さてインストールが完了したら早速触ってみます。まずは日本語版のスタートガイドを最初から順番においかけてみます。こういうときは写経です。
* 概要
* 開発環境
* Hello, World!
* webapp フレームワークの使用
* ユーザー サービスの使用
* webapp を使ったフォームの操作
* データストアの使用
* テンプレートの使用
* 静的ファイルの使用
* アプリケーションのアップロード
このスタートガイドでは最初は文字列 helloworld だけを表示するアプリをゲストブックアプリに成長させていくストーリーになっています。早速、「webapp フレームワークの使用」から「コンテンツを次のように置き換えます。」とどんどん上書きしていく形をとっています。(もし自分の心が写経モードだったときには章単位で新しいファイルを用意して、コピペではなくてちゃんとタイプしていくというのがいいですね。今回私はそのやり方にしました。)
とても簡単にアプリの開発ができる感じですね。Rails や Catalyst のように開発用のミニサーバで小さく作っていくスタイルはモチベーションが高まっていきますね。
Google App Engine はなかなか良さげです。早速自作アプリを作成しようと今コードを書いています。まだ Python をはじめて間もない、というか Google App Engine に触れるまでは Python のコードを書いたことがなかったので、これから一般的に使われるモジュールなどを知りたいな。おそらく Google App Engine で使えるモジュールと使えないモジュールがあると想像しているので、その辺りの違いなんかもこれから勉強したいです。
Python も結構面白いよ。
最後にいくつか特記しておきます。
データストアの使用
ここで以下のエラーで詰まりました。
Traceback (most recent call last):
File "/usr/local/google_appengine/google/appengine/ext/webapp/__init__.py", line 484, in __call__
handler.get(*groups)
File "/Users/takatsugu/GAE/helloworld/helloworld5.py", line 17, in get
greetings = db.GqlQuery("SELECT * FROM Greeting ORDER BY date DESC LIMIT 10")
File "/usr/local/google_appengine/google/appengine/ext/db/__init__.py", line 1496, in __init__
from google.appengine.ext import gql
SystemError: Parent module 'google.appengine.ext.db' not loaded
よく調べてみると、/usr/local/google_appengine/demos/guestbook にこの章と似たようなサンプルがありました。コードを見比べても特に大きな違いは見られなかったので、試しにその demos/guestbook を起動しましたら、期待された動作が出来ました。「やっぱり何か違うのかなー」と思って、dev_appserver.py helloworld/ としたら、今度は上記のエラーを出力せずに起動しました。もしかして db,Model はサーバ起動時に生成されるのかな?これまで、 Hello, World!、 webapp フレームワークの使用、 ユーザー サービスの使用、 webapp を使ったフォームの操作、とずっと dev_appserver.py を Ctrl + C で終了させずにきたのでした。。。
とりあえずこのエラーが出たときには dev_appserver.py が起動していたら Ctrl + C で一旦停止した後、再び dev_appserver.py 起動するというのが対処法っぽいですね。(将来的にはgoogle_appengine か dev_appserver.py などのフレームワーク関係のコードを見てみてることにします。とりあえずは「開発用 Web サーバ」の章が参考になります。)
テンプレートの使用
ここでは以下のようなエラーが出ました。
Traceback (most recent call last):
File "/usr/local/google_appengine/google/appengine/ext/webapp/__init__.py", line 484, in __call__
handler.get(*groups)
File "/Users/takatsugu/GAE/helloworld/helloworld6.py", line 34, in get
self.response.out.write(template.render(path, template_values))
File "/usr/local/google_appengine/google/appengine/ext/webapp/template.py", line 80, in render
t = load(template_path, debug)
File "/usr/local/google_appengine/google/appengine/ext/webapp/template.py", line 125, in load
template = django.template.loader.get_template(file_name)
File "/usr/local/google_appengine/lib/django/django/template/loader.py", line 79, in get_template
source, origin = find_template_source(template_name)
File "/usr/local/google_appengine/lib/django/django/template/loader.py", line 54, in find_template_source
mod = __import__(module, globals(), locals(), [attr])
SystemError: Parent module 'django.template' not loaded
ここでもデータストアの使用のときと同様に dev_appserver.pl を再起動したところエラーが解消されました。テンプレートエンジンには Django テンプレート エンジン を使っているんですねぇ。本家サイトでは記法が詳しく書かれています。
MacBook で色々やっていたら空きメモリが 5 MB とかひどい
ことになっていたので、搭載されているメモリを見たら 512 MBでした
デフォルトのままだった
同僚に話したら「最大まで引き上げるべし」と言われたので、ネットでメモリを調べてみました。私の MacBook (MA254J/A) は最大で 2G まで搭載可能ということなので、1G x 2 を探しました
1G で 税込 1,380 円 のメモリを発見しましたので、2 つ購入し、送料を加えて、2,970 円 (12/6 18:00 追記: 配送の関係から送料が増えて 3,159 円でした。) で 2G のメモリを購入しました!安いすね!
到着するのが楽しみです。
こちらを購入しました。
[送料¥210〜]【永久保証・相性保証付】トランセンド ノートパソコン用メモリ:Transcend SODIMM DDR2 PC2-5300 1GB (JM) [メ1]
社内では空前のもずくブームです。
お戻し方:
水に10~15分位浸けておき、その後軽く水でほぐして下さい。
太さ、歯ごたえ共に元に戻ります。あまったもずくはフリーザーパックなどに入れ冷蔵庫で保管して下さい。
味はないので後付けしないとだめだそうです
と同僚の人が言っていました。
seealso:
沖縄もずくでエコ | 沖縄県もずく養殖業振興協議会