インタラクティブな絵本『Cinderella』

iPad insightで紹介されていた絵本『シンデレラ』 http://ipadinsight.com/ipad-app-reviews/ipad-books-for-kids-cinderella-by-nosy-crow 絵のカワイさに半ば一目惚れ。この記事見た瞬間から早く触ってみたくて仕方がなかった。 値段は$7.99で、日本のiTun…

Lion MacPortsでncursesのインストールに失敗した。

LionでMacPortsでphpMyAdminをインストールしたらncursesのインストールで失敗した。 こんなログがでる。 > Building ncurses Error: Target org.macports.build returned: shell command failed (see log for details) Error: Failed to install ncurses Lo…

モックフレームワークJMockitで実行時にクラスを差し替える

テストをしたいのに連携システムが起動していなくて単体でのテストができませんでした。テストをしにくいという設計上の問題点はおいといて、他システムと連携する部分をモックで差し替えて動かせないものかと、Javaのモックフレームワークを調べると、EasyM…

インスタンス初期化子と2重ブレースによる初期化

開発者のためのプログラミングQ&Aサイト stackoverflow の Hidden Features of Java というエントリに「Double Brace Initialization」という機能が載ってました。知らなかったので調べたことをまとめます。Double Brace Initialization はインスタンス初期…

コロプラ 序盤講座

「コロプラ」は携帯でできるGPSを使ったゲームです。正式名称を「コロニーな生活☆PLUS」と言います。iPhone対応されたので始めました。やってみるとわかりますがなぜか序盤が辛いゲームです。 序盤に必要な知識と攻略法を私なりにまとめます。 ■ターンがいつ…

任意の Kind の Entity を全て削除する

Kind の Entity を削除したい時に、Dashboard からだとチマチマしか削除できないので全件削除する Servlet を書いた。 DataStoreCleaner が DataStore にアクセスして Entity の削除を行うクラス。 DataStoreCleanServlet が Servlet。 TaskQueue を使って E…

定数フィールドへの参照はコンパイル時にバイナリに展開される

最近知ったこと。 いや、『Java魂』(O'REILLY)を読んだから知ってるはずだけど忘れていた事実。 public static final String HOGE = "hoge";のような定数への参照は、コンパイル時にバイナリファイルにインライン展開される。 (HOGE を参照している箇所は…

プログラミング&セキュリティキャンプ・キャラバン2009(東京)

参加してきました。勉強会初参加。いや〜、刺激になりました〜。業務でWebアプリの開発してるけど、閉じられたネットワークで動いてるシステムなんで、セキュリティ詳しくありません。一番考えさせられたのが、クラウドとか Web API を使ったサービスを提供…

Objectに定義されているメソッドの実装を強制する

Object#hashCode(), Object#equals() などのメソッドは抽象クラスの抽象メソッドとして定義できる。 public abstract class MyAbstractClass { public abstract int hashCode(); public abstract boolean equals(Object obj); }上記のクラスを継承したら、ha…

RSS2.0 の pubDate フォーマットの日付時刻を SimpleDateFormat で解析する。

RSS2.0 の pubDate はこんな感じ。 <pubDate>Tue, 22 Sep 2009 19:24:08 +0900</pubDate> 曜日と月は US ロケールの文字列。 "+0900" は RFC820フォーマットのタイムゾーン解析文字 Z で解析する。 import java.text.DateFormat; import java.text.ParseException; import java.…

csh で "<>" は否定演算子!?

打ち合わせで見た csh のコード if ( 1 <> $status ) thenそれは SQL の not equal でんがな。よくよく聞いてみるとこのコードは動いたらしい。マジっすか!?mac で動かしてみた。 if ( 1 <> $1 ) then echo 'true' else echo 'false' endif動く。シンタッ…

標準出力を JTextArea に出力する

System.setOut(PrintStream out) で標準出力の出力先を変更できる。 JTextArea に転送するような PrintStream を作れば、JTextArea がコンソール代わりに。 JTextArea に出力する際は、Swing のイベントディスパッチスレッドにのせる必要がある。 import jav…

親クラスのコンストラクタを呼ぶ前に

super() はコンストラクタの1行目で記述しなければならないが、 親クラスのコンストラクタを呼ぶ際に複雑な処理を行いたい場合は static のヘルパメソッドを使う。 public class Derived extends Thread { public Derived() { super(createString()); // 親…

instanceof の null チェック

instanceof で null が渡された場合は false になることが言語仕様で保証されている。 if (obj instanceof String) { // ここでは obj は null ではない。 }

ジェネリクス(総称型)を使ったメソッド。

ジェネリクス(総称型)を使ったメソッド。リストの最後の要素を返す。 public static E last(List list) { return list.get(list.size() - 1); }戻り値の前の がポイント。