Macでメモリ解放を行う方法
ターミナルで以下のコマンドを実行する。
$ purge
Mountain LionのSafari iCloud Tabが消えない
今週末、やっとMountain Lionをインストールすることができました。
アップデートではなく、クリーンインストールしたいタイプなので、一度Mountai Lionにアップデートして、クリーンインストールしました。
すると、一度目のインストール時にSafariで開いたページが、再インストールした後に別のMacとしてiClould Tabに残ったままになってしまっています。
どうやっても消せそうにないので、検索してみるとどうやら7日間で自動的に削除されるみたいです。 SafariのiCloudタブについて
安心しました。
SQLによるFizzBuzz
FizzBuzzとは3の倍数のとき"Fizz",5の倍数の時"Buzz",3と5の倍数の時"FizzBuzz"と言う英語圏での遊びです. よくFizzBuzzがプログラムの問題として出されたりします.
たとえばJavaで書くと以下のようになります.
[code language="java"] public class FizzBuzz { public static void main(String[] args){ for (int i = 1 ; i <= 100 ; i++){ if (i % 15 = 0){ System.out.println("fizzbuzz"); } else if (i % 3 ==0){ System.out.println("fizz"); } else if (i % 5 == 0){ System.out.println("buzz"); } else { System.out.println(i); } } } } [/code]
実行すると以下のようになります.
1 2 fizz 4 buzz fizz 7 8 fizz buzz ............ 97 98 fizz buzz
そこで今回,データベースに問い合わせるための言語であるSQLを利用してFizzBuzzが書けるか試してみました. 以下の条件を元に考えてみました.
- データの読み書きは発生しない
- テーブルを利用しない
- 表示する数はだいたい100~200くらいまで
- なるべく短く一文で書く(サブクエリー可)
- MySQL5.1で動く
- たぶん他のRDBMSでも動く
以上の条件で考えたSQLは以下のようになりました. [code language="sql"] SELECT i, IF(i%15=0, 'fizzbuzz', IF(i%3=0, 'fizz', IF(i%5=0, 'buzz', i) ) ) fizzbuzz FROM ( SELECT (a+b+c+d+1) i FROM (SELECT 0 a UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) aa CROSS JOIN (SELECT 0 b UNION SELECT 4 UNION SELECT 8 UNION SELECT 12) bb CROSS JOIN (SELECT 0 c UNION SELECT 16 UNION SELECT 32 UNION SELECT 48) cc CROSS JOIN (SELECT 0 d UNION SELECT 64 UNION SELECT 128 UNION SELECT 192) dd ) e;
[/code]
実行すると以下のようになります.
+-----+----------+ | i | fizzbuzz | +-----+----------+ | 1 | 1 | | 2 | 2 | | 3 | fizz | | 4 | 4 | | 5 | buzz | | 6 | fizz | | 7 | 7 | | 8 | 8 | | 9 | fizz | | 10 | buzz | | 11 | 11 | | 12 | fizz | | 13 | 13 | | 14 | 14 | | 15 | fizzbuzz | ............... | 240 | fizzbuzz | | 241 | 241 | | 242 | 242 | | 243 | fizz | | 244 | 244 | | 245 | buzz | | 246 | fizz | | 247 | 247 | | 248 | 248 | | 249 | fizz | | 250 | buzz | | 251 | 251 | | 252 | fizz | | 253 | 253 | | 254 | 254 | | 255 | fizzbuzz | | 256 | 256 | +-----+----------+
ポイントはクロスジョインを使って1~256を生成したことです. もっと簡単な方法を知っている方は教えてください.
Hudson + Mavenでのビルドエラー
Hudson上で以下のようなエラーがでてビルドを失敗していた. しかも,毎回でなく5回に4回くらい..
[text] Internal error in the plugin manager executing goal 'org.apache.maven.plugins:maven-surefire-plugin:2.4.3:test': Test reports were found but none of them are new. Did tests run? [/text]
どうやら,レポートファイルの更新日時がおかしいのが原因みたい. 私の環境ではビルドしているワークスペースがNFSでマウントされている場所であって,HudsonとNFSのサーバの時間がずれていたためエラーになっていたっぽい.
HudsonとNFSのサーバの時間を合わせたら,ちゃんとビルドできました.