誕生日というのは

誕生日に母親からメールが来た。それも、俺が生まれた時間に。
そろそろ還暦のくせに、30代も半ばを過ぎたおっさんに顔文字たっぷりのメールを寄越す、そんな親だ。


父親としての初めての誕生日はどうだとか、何か色々書いてあった。
そんなのを読んでたら、ちょっと目から汗が出ちゃってね。


誕生日って、一般的には、その日に生まれた人を祝う日だが、それだけで良いのだろうか。
むしろ、自分を産んでくれた人に感謝しなければならない日なんじゃなかろうか。


子供ができてちょっと分かったが、出産も、子育ても、大変だ。
この先、色んな脅威から子供を守らないといけないし、逞しく育てないといけない。
そして、大学までは入れてやりたいから、尋常じゃない金もかかるだろう。
順風満帆とは行かないかもしれない。


それでも、親は子供を、俺を、嫁を、育ててくれた。
何とも有難い話じゃないか。


万人が生まれたことを感謝するわけではないかもしれないが、
少しでも自分が生きていることに意味を見出しているなら、自分の生を感謝する日としようじゃないか。

古い日記発見

このブログを書く前に、ホームページというものをやっていた。
その時のファイルを読みたいと思っていたのだが、消してしまっていたので、もう永遠に見れないと思っていたのだが、
偶然バックアップを発見して読むことができた。
誕生日に発見するなんて、何かの縁だろうと、その時の日記を読んでみた。


日記の内容も、俺自身の生活も、目も当てられたものじゃないが、文章はなかなか面白かった。
「悪い意味で決断が早く、財布もゆるく、自分を納得させるのが大得意」と自分を称してたり、
病気で寝込んでいる6日間の経過のサブタイトルがイースの書になってたり、アホのセンスはさすがの俺流だ。


ここに載せてみたい衝動にも駆られたが、止めておこう。

ガンダムあげ第26話「地球それはエデン」

惚れた女に想いが通じたオブライトさんに死亡フラグが立ったかと思ったが、先に隊長がアセムを庇って死んでしまった。


それにしても、あっさり隊長の敵討ちができてしまったのは拍子抜けだな。
前半部まではデシルに歯が立たなかったのに、怒ったら圧倒しちゃうとか、安易過ぎ。
隊長の言葉を胸に、Xラウンダーを凌駕する程の腕を磨いてスーパーパイロットを目指す、
というプロセスを、もう少し丁寧に描いて欲しかったなぁ。
Xラウンダーになれない焦りと葛藤を25話で描いたのに、何この急展開。


やっぱ2クールで無理矢理に3世代描こうとするから、駆け足というか雑になるんだよ。

iPhoneの神アプリロボゲー

Destroy Gunners SP


デストロイド・アームズという武装ロボットを操り、ぶっ殺したりぶっ殺されたりするアクションゲーム。
様々なミッションをこなし、武器やパーツを手に入れて兵装を強化していく。
汎用機とか試作機とか、幾つかの機体に乗り換えていくことも可能だ。
汎用機に乗りながら、ボトムズのBGMでも流しながらプレイすると、尚良い。


iPhoneアクションに抵抗があった俺だが(やり辛いんだもの)、あまり精密な操作を求められないので、とっつき易かった。
有料だが、タイムアタック限定の無料版もあるので、気になったら触ってみると良いだろう。

基礎おさらい〜出力編

基本的なところをおさらい。
というか、俺が忘れないよう、メモりたいだけだけど。


まずは、変数の出力。
WebContextに設定した変数を出力する。

webContext.setVariable("message", "<b>message</b>");

変数の出力は、th:textを使う。親切にHTMLエスケープしてくれるので、されたくない場合は、th:utextを使う。
変数は${}で囲む。

<p th:text="${message}">message</p><!-- エスケープされる -->
<p th:utext="${message}">message</p><!-- エスケープされない -->


次は、プロパティファイルからの出力。
「テンプレート名_ロケール名.properties」という名前のプロパティをテンプレートと同じ場所に置いてやる。
(テンプレートがhello.htmlでロケールが日本なら、hello_ja.properties)

message.hello=こんにちわ!

プロパティの出力は、同様にth:text/th:utextを使う。
キー名を#{}で囲む。

<p th:utext="#{message.hello}">hello</p>


次回は、ifとかswitchとかの条件文の使い方をまとめよう。

可変な個数のテンプレートのインポート

正式なやり方かどうか知らないが、可変個数のインクルードができた。


昨日のソースをちょっと書き換えてやる。

    // WebContextを作成し、テンプレートの処理を実行
    WebContext ctx = new WebContext(request, request.getServletContext(), request.getLocale());
    List<Page> pages = new ArrayList<Page>();
    pages.add(new Page("content"));
    pages.add(new Page("content"));
    pages.add(new Page("content"));
    pages.add(new Page("content"));
    ctx.setVariable("pages", pages);
    String result = engine.process("layout", ctx);

テンプレート名を持つPageというビーンクラスを作ってリストに入れ、そのリストをWebコンテキストに入れてやる。


テンプレートはこんな感じ。

    <div th:each="page: ${pages}">
        <div th:include="${page.template} :: content"></div>
    </div>

th:eachでリストを回して、Pageクラスのテンプレート名をインクルード対象に指定する。


でけた!ヽ(´ ▽ ` )ノ

さりげなく文字化けも直しておいた(response.setCharacterEncoding("UTF-8")しただけだけど)


何か簡単に目的が達成できてしまったw
折角できたから、今の開発に適用できないかしら。