読者です 読者をやめる 読者になる 読者になる

Hatena Blogに引っ越しました

SAKURAのVPSからGoogle Compute Platformに移動ついでに、ブログをHatena Blogに引っ越しました。

 

もう数年書いてないですが、一応過去の記事もインポートしてみました。結構簡単にできるんですね、引っ越し。ただ、wordpressにあげていた写真がそのままなので、それを上げ直してました。

 

どのくらいブログを書くかはわからないですが、よろしくお願いします。

Macでメモリ解放を行う方法

ターミナルで以下のコマンドを実行する。

$ purge

macportsをほかのmacからrsyncする方法

macportsをほかのmacからrsyncする方法は以下の通り。

[bash] $ sudo rsync -Haxv user@other-mac.local:/opt/ /opt/ [/bash]

Mountain LionのSafari iCloud Tabが消えない

今週末、やっとMountain Lionをインストールすることができました。

アップデートではなく、クリーンインストールしたいタイプなので、一度Mountai Lionにアップデートして、クリーンインストールしました。

すると、一度目のインストール時にSafariで開いたページが、再インストールした後に別のMacとしてiClould Tabに残ったままになってしまっています。

http://hatotaka.com/blog/wp-content/uploads/2012/08/Screen-Shot-2012-08-04-at-23.40.05-.jpg

どうやっても消せそうにないので、検索してみるとどうやら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が書けるか試してみました. 以下の条件を元に考えてみました.

  1. データの読み書きは発生しない
  2. テーブルを利用しない
  3. 表示する数はだいたい100~200くらいまで
  4. なるべく短く一文で書く(サブクエリー可)
  5. MySQL5.1で動く
  6. たぶん他の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のサーバの時間を合わせたら,ちゃんとビルドできました.

MacOSXでRAMDISKを作成する方法

[bash] hdid -nomount ram://52428800 newfs_hfs /dev/disk1 mount -t hfs /dev/disk1 /path/to/mount_point [/bash]