2008年11月30日日曜日

Java Festa 2008 に行ってきた♪

Java Festa 2008 に行ってきた.寝坊して,セッションをふたつしか聞けなかったという,まじでダメ人間だったけどな.本当に,予約したのにこんなんで本当に申し訳ない.

さて,聞けたセッションについて,簡単に感想.

○「今が旬」GlassFish を召し上がれ

GlassFish ネタだった.名前は知ってるけど,触ったことないや〜ってかんじだったんで,興味津々で聞いた.実際,プレゼンも面白かったし,ねこび〜んの話とか織り交ぜてて,ナイスなプレゼンだった.

内容は,GlassFish を導入する利点とかがメインかな.インストールやら管理やらが簡単そうで良さげだった.といっても,全然 Java EE わかんないんだよねwwwDWRっていうがあることが知れたのが,発見だったw本筋と関係ないwwwJava EE のお勉強をそのうちしたいなと思っているので,機会があったら使ってみようと思う.

○Cloud Computing - Google App Engines
Google App Engines これは技術として,めちゃくちゃ面白いと思う.Google のインフラを使った(なんと,BigTable が使えるのだ!)Web アプリケーションが作れる.ハードウェアやらなんやらのインフラは完全に Google まかせで,準備された API を使って開発するだけってかんじ.現状の開発言語は Python.開発は,ローカルで開発して,専用のスクリプトでアップロードってかんじみたいだった.

質問タイムに,質問してくれた人には Google のTシャツあげるよって行ったから,Tシャツ欲しくてダメダメな質問を投げたwプレゼンしてる方が,Mac OS X 用のランチャーを使ってたので,「コマンドラインからのアップロードとかできないんですか?」って質問した.正直,できないってことが考えられないんだけどね.あの質問をした人がこの Blog を書いてる人間なのでよろしく.

で,貰ったよ〜.こんなTシャツ♪

サイズのとこに,150って書いてあって,すっげぇ小さいwとりあえず,部屋着になりそうだw

で,ゲットしたぜって顔で帰宅途中にもうちょっとましな質問を思いついてしまったorz気になるのが「現状では,プリミティブな API(といってもバックグラウンドで動いているインフラからしたら,十分に抽象化されているけどね.)だけを提供しているが,今後より開発が簡単になるようなフレームワークを Google として提供する予定はあるのか?」ということ.まあ,おそらくそれは,Google はそこまでしないと思うけどね.プレゼンの中で,Python のライブラリのほとんどをそこで使えるよって行っていたので,いまある財産を有効に使って,ユーザグループでの活性化を期待してるんだと思った.

有意義だったなぁ.Python の勉強もかねて,遊んでみるのもいいかもね.

2008年11月23日日曜日

MAMP のインストール方法

MAMP について.PHP の言語ネタをやろっかなぁとか思ってるので,その環境づくりのためにね♪

1. MAMP にアクセス.
2. Download Now をクリック.

3. 左側の MAMP のアイコンをクリックしてダウンロード.

4. ダウンロードした MAMP_1.7.2.dmg をダブルクリック.
5. Agree をクリック.

6. MAMP フォルダをアプリケーションフォルダにドラッグアンドドロップしてコピー.

7. アプリケーション>MAMP>MAMP を起動する.

こんなかんじ.基本的にデフォルトのままでいこうと思う.次のエントリから,PHP 言語入門というかんじで,いわゆるこうやったら動く系の話ではなくて,プログラミング言語としての基本的な話をしていく予定.

追記(2008年11月22日):
XHTML と共存させるためにちょっと設定を変更.アプリケーション>MAMP>conf>php5>php.ini をテキストエディットなどのテキストエディタで開いて,76行目の
short_open_tag = On


short_open_tag = Off

に変更しよう.こうすることで,<?xmlの部分でエラーが発生することを防げる.

覚えておかなくてもいいが,PHP では,<?phpという風にして,ここから PHP のスクリプトの記述ですよということを示す.その代替として,<?でもいいようになっている.しかし,XHTML では,<?xmlから始まる XML 宣言を先頭につけるので,PHP のスクリプトを処理するプログラムが,そこが PHP のスクリプトであると勘違いしてエラーを出してしまうのだ.それを防ぐために,この設定をしたわけ.

ついでに,エラーを表示するために,277行目の
display_errors = Off


display_errors = On

に変更しよう.PHP の勉強をするときには,この設定をしておいたほうが,エラーが画面に表示されるのでわかりやすいと思う.ただし,実際に運用する環境ではエラーが画面に表示されないようにすること.セキュリティの問題があるからね.

設定を変更したら,MAMP を再起動しよう.

2008年11月15日土曜日

AppleScript 入門 林檎なスクリプト言語♪

結構前から,AppleScript の言語ガイドを読んでたんだけど,いまいちしっくりこないんだよね〜.やっぱり,英語圏の人にわかりやすいようなシンタックスだからなのかなぁ.そして,いつも書いてる階乗と FizzBuzz を書いてみたんだけど,あまり AppleScript らしくないんだよね.ちゃんと理解していないけど,オブジェクトとかもあるみたいだし,もうちょっと遊んでみようと思う.

階乗のプログラムはこんなかんじ.
--
-- factorial.applescript
--
on factorial(n)
if n ≤ 0 then
return 1
else
return factorial(n - 1) * n
end if
end factorial

factorial(10)

FizzBuzz はこう.(イベントログに出力してる.)
--
-- fizzbuzz.applescript
--
repeat with i from 1 to 100
if i mod 3 = 0 and i mod 5 = 0 then
log "FizzBuzz"
else if i mod 3 = 0 then
log "Fizz"
else if i mod 5 = 0 then
log "Buzz"
else
log i
end if
end repeat

なんとなくわかるかなw≤は,alt+<で入力できるよ.<=で代替もできるけど,スクリプトエディタで実行すると自動的にそれに書き換えられるねぇ.

参考文献:
AppleScript Language Guide

2008年11月10日月曜日

OpenMP 入門 #4

林檎生活100: OpenMP 入門 #3の続き.今回は,sections ディレクティブについて.

sections ディレクティブは,かなり単純.A という処理と B という処理があって,それぞれ独立しているときには両方同時にやっちゃっていいよねってことだ.

使い方は,次のようなかんじになる.

#include <omp.h>

#define N 1000

int main(void)
{
int i;
float a[N];
float b[N];
float c[N];
float d[N];

for (i = 0; i < N; i++) {
a[i] = i * 1.5;
b[i] = i + 22.35;
}

#pragma omp parallel shared(a, b, c, d) private(i)
{
#pragma omp sections nowait
{
#pragma omp section
for (i = 0; i < N; i++)
c[i] = a[i] + b[i];
#pragma omp section
for (i = 0; i < N; i++)
d[i] = a[i] * b[i];
}
}

return 0;
}


結構便利そうだが,この場合は当然セクションの計算量の多いほうに足を引っ張られるので,計算量のバランスは重要だと思う.まあ,セクションの数(今回は2つだが,独立なセクションがあれば3つでも4つでも OK.)を増やせば,あるていど均されるんだろうけど.

参考文献:
OpenMP Tutorial

2008年11月6日木曜日

MD5, SHA-1 チェックサムの確認方法

Mac OS X で,チェックサム(ハッシュ,ダイジェストとかっても呼ばれるね.)を確認する方法.たぶん,あんまり使う機会がないとは思うんだけどねw僕は,MacPorts で無理矢理インストールするために,チェックサムをいじった記憶がある.(本当は,よくないんだけどさw)

MD5 は,直感的なコマンドで OK なんだよねw
$ md5 ファイル名

SHA-1 が問題.実は,openssl というプログラムを使って,こんな風にやる.(たぶん,どの環境でもインストールされてるはず.じゃないと,ほかのソフトウェアが困るはずだから.)
$ openssl sha1 ファイル名

ちなみに,openssl でほかの規格のチェックサムも調べられる.(man openssl からの抜粋なので,詳しくは,そっちを読んでね.)
       md2       MD2 Digest
md5 MD5 Digest
mdc2 MDC2 Digest
rmd160 RMD-160 Digest
sha SHA Digest
sha1 SHA-1 Digest
sha224 SHA-224 Digest
sha256 SHA-256 Digest
sha384 SHA-384 Digest
sha512 SHA-512 Digest

base64 とかのエンコード系も調べられるみたい.DES などの暗号系も.すげぇなwちなみに,Mac OS X としての正しい使用方法は,参考文献のページに書いてるので,そっちを参考にしてね♪

参考文献:
Mac OS X: SHA-1 ダイジェストを確認する方法

2008年11月2日日曜日

iCal に祝日を追加する

最近は,iCal を使うようになった.ふと考えてみると,iCal には祝日が表示されないのだ.うーん,だれかこの情報を追加するプログラムとか作ってないかなぁとか思ったら,Apple がちゃんと準備してくれてたw

Apple のカレンダーライブラリに行って,祝祭日の中の日本をクリックするだけだね.めんどくさい人は,次のリンクをクリックすれば,iCal が自動的に開いて追加できる.

webcal://ical.mac.com/ical/Japanese32Holidays.ics

僕は,一応自動更新を「毎日」に,色を休みの日らしく「レッド」に設定したよ♪