“2009/11”な記事

開発・運用環境を更新しました。link

 見た目これっぽっちも変わりませんけども、動いている環境が替わりまして、Python 2.6.4とDjango 1.1.1という組み合わせで公開しております。
 自宅の方にも同じ環境をやっとこさ作ったので、これからまたちまちまぼちぼち弄るかもなぁ、盆栽盆栽。

 今回以前作った環境の事をきれいさっぱり忘れていたので、別にディレクトリを切ったりとかもろもろして新しく環境を作っていきました。何かトラブルでもあればネタにできるなぁと思っていたのだけども、特に何も起こる事もなく普通に構築完了。
 Dreamhostは今日も元気です。まぁ、たまに落ちますけど。たまに落ちてから復帰するまでかなり時間がかかったりしますけど。

 久しぶりにWeb的な事をやったら思いのほか楽しかったよ。昔はこんな事を一日中やっていたのだよなぁ。

WOComponentのDefault encodingはUTF-8になった。link

 [#WOL-322] Default enconding in WOComponent template file (*.woo) - ObjectStyle.org Issue Tracker

 いやまぁ、実際に変更されたのは随分と前なのですけど、私自身が確認したのはつい先日なのでこのタイミングであります。

 新規に作成した任意のWOComponentの.wooファイルの中をのぞいてみますれば、以下のように記述されています。

{
    "WebObjects Release" = "WebObjects 5.0";
    encoding = "UTF-8";
}

 やー、なんかやった感が出たなぁ、実際に変更してもらえると。

 そらそうと、新システムになってUTF-8とか普通に書くようになったのね。全然問題ない、というか素晴らしい。これからも張り切って邁進するんだぞ、WOLipsの人たち!

CakePHPとsymfonyでちょっと遊んでみたよ。link

 cakephp symfony 比較 - Google 検索

 ちゃんと比較を行っている記事はたくさんあるのでそちらの方を読んでいただきたいのですけど、個人的な感想としてsymfonyさんの方が性に合っていると思ったりしました。
 別にどこかの機能が足りないとかそういうのじゃなくて、純粋に好みの問題ですよ。だってそんなに深く触ってないから詳細なんてわからないし、そもそもそんなに違いなんてないんでしょ、知らんけど。

 ざーっくり無理矢理説明すると、PHPの配列を愛しているかどうかで決まると思います。私自身PHPの配列は好きでよく利用しますけど、それはお手軽だからだったりさっくり実現したいからだったりして、愛してはいないんです。それなのに、それなのに、されなのにCakePHPさんときたら配列です、何から何まで配列です。あれもこれもそれも何だって配列です。設定するのも配列だし、引数を渡すのも配列の配列のだし、RDBMSから返ってくるのだって配列です。
 いや、別にそれは悪い事でもないのですよね、便利と言えば便利です、わかりやすいと言えばわかりやすいです、潔いと言えば潔い。でも、array( array( array( array( と書き連ねるのはしんどいし見にくいしうんざりするんです。$var['key']と[]と’を乱発するのも苦手なんです。その点、symfonyさんは設定ファイルをYAMLで書くし、オブジェクトを渡すし、オブジェクトが返ってくるし、これだけでも随分と好み。そして、私的には慣れたやり方でわかりやすい、素直に書ける。良い事良い事。

 しかし、そんなsymfonyさんにも嫌なところがあるのです。それはディレクトリ構成の深さとか複雑さ。上の方をすっきりわかりやすくとすればするほど、深く深く複雑になってしまいます。その上、各種設定ファイルが多くて散在しているので、させたりできるのであっちこっちと忙しい。その点、CakePHPさんはわりとフラットですっきりしてますよね。
 あと、日本内的なイメージとか雰囲気とか認知度とか流行度とかもCakePHPさんのがオサレ感ありますね、何となくですけど。日本語での情報もたくさん集まりそう。

 とかまぁ、相変わらずわけのわからない事であれこれ言っておりますが、どちらも好きだしどちらも素敵だしどちらも面白いと思うよ。もちろんPHPだって好きだ、全然嫌いじゃない。たまにまぁ、あれだけど、それは何にだってあるさ、あるに決まっているさ、むしろない方がおかしいさ。やりやすい方で、好みの方で選択すればいいと思う。楽しもう、いろいろ。

人生いろいろ。link

 人生いろいろ。人生いろいろあるさ、あるよ、あるにきまってる。むしろない方がないよね、ない方がおかしい。自分でいろいろする事もあれば、周りとか他人からいろいろされる事もある。良い事ばかりならいいけど、理不尽だったり許せない事もある。どうにかなる事もあればどうにもならない事もある。
 いろんな事が起こる度、それらを受け入れて納得し、立ち向かったり受け流したり何とか折り合いをつけてやり過ごさないといけない。時には困難でできそうになくってやってられなかったりするけど、起こった事は変わらないから。私の場合には時にはじゃなくてすべからく挫けて心が折れていたりして、お前の心は何本あるんだ的でありますが。

 「人生いろいろ」っていう一言で片付けられてもたまったものじゃないけど、「人生いろいろ」っていう一言で片付けられる事なんだなって思えば、少しは軽くなるのかも知れないなぁ、知らんけど。知らんのか。

憧れのNSR。link

 '90と'94は真剣に欲しかったなぁ、貧乏すぎて買えるはずもなかったですけど。

 今でこそめっきり人口が減ってしまったバイク乗りですけども、80年代には空前のバイクブーム、レースブームというのが沸き起こっていて、ちなみにそれに一役買っちゃってたのが、かのハチロクを豆腐運びマシンとしてリバイバルさせてしまったしげの秀一さんが描いていたバリバリ伝説だったのですけど、それを受けてレーサーのテクノロジーを街乗りにフィードバックというレプリカマシンが各メーカーが発売され、レプリカブームも巻き起こってかなりのモデルがそろっていました。そもそもはワンメイクレース用のベース車として市販されていたのだけど。
 その中でも最強最速のカテゴリにあった250ccの2サイクルマシン、そのホンダ車がこれ。まぁ、それ以前は2st500ccのバイクも市販されていたのだけど(他メーカーですが)、バイクの免許制度が変更されて400cc以上のバイクが……という流れもあります。あと、メーカーの自主規制とかもね。

 その頃の様子が垣間見えるかの様な動画を以下に。

 もう二度とこんなバイクは市販されない……。

Google Quick Search Boxからスニペットを呼び出すプラグイン、“QuickSnippets”。link

 cap'n webb » QuickSnippets(Google Quick Search Box用プラグイン)を公開しました

 内容は件名で全てでありますが、そういうGoogle Quick Search Box向けのプラグインが公開されております。ソースコードもGithubにて公開中。
 QSBから登録も可能ですので、定型文などをよく使う方には便利なのではないでしょうか。

 Google Quick Search Boxをご愛用の方々にはぜひお試しいただいて、フィードバックなぞをして頂けると凄く凄く喜ばれるんじゃないかな。えと、ボクは使っていないので、Google Quick Search Box。一応これは試してるよ!

受け入れると変わる。link

 スポーツジムのトレーナーから(他の人が)言われたひとこと - 頭ん中

 現実を受け入れないと何も変わらない。

 そうだなぁと思う。でも、難しいんだよね。受け入れていると思っていたのに、実は受け入れる事ができてなくてぶり返す事もしばしば。

 どうやら私は「甘えられなくて頼れなくて信じられない」という人間らしい。「そんな事はない、甘ったれている事がコンプレックスだったし、自分では何もできないので頼って信じるしかない」と思っていたが、確かに「甘えてて頼っていて信じている」自分というのはかなり不快で、できればそうありたくない。できるかぎりそうならないように振る舞ってきた気はする。
 「甘えてて頼っていて信じている」自分を許し、それでいいと受け入れる様にすれば、今のこのきつさから解放されるのではないか。って先生がゆってた。あはははは

 皆そんなに甘えられる、頼れる、信じられる人が周りにいるのかなって思うのだけども、居るんだろうなぁ、多分。

WebObjectsのHello WorldをScalaで。link

 WebObjects with Scala - WebObjects - Confluence
 Scala IDE for Eclipse | The Scala Programming Language

 「ScalaだったらWebObjectsでも使えるよね」とか某人と言っていたら、EclipseのScalaプラグインを導入するとお手軽だという公式の記事があったのでちょっとだけやってみました。サンプルコードもあったしねー。
 WebObjectsとEclipse、WOLipsはインストール済みだと思うので、とあえて書いてみて、Scala IDE for Eclipseをインストールしてゴーです。その他のEclipseプラグインと同様の方法でインストールできます。

 適当な名前でWebObjects Applicationを新規作成します。作成したらそのプロジェクトを選択して右クリック -> Scala -> Add Scala Natureを実行しておきます。これでScalaプログラムを書いても平気。
 ではさっそくScalaなファイルを放り込むべく、Main.javaをMain.scalaへ置き換えます。Sourceseフォルダのyour.app.componentsパッケージ内にMain.javaがあるのでそれを削除し、同じところへMain.scalaという名前でファイルを新規作成、そして元のMain.javaにあったソースをScalaで書き直します。

package your.app.components

import com.webobjects.appserver.{WOComponent, WOContext}

class Main(context:WOContext) extends WOComponent(context:WOContext) {
}

 元が単純なのでこれだけ。
 次に、your.appパッケージ内にあるDirectAction.javaを同じようにScalaで書き直します。

package your.app

import com.webobjects.appserver.{WOActionResults, WORequest, WODirectAction}

class DirectAction(request:WORequest) extends WODirectAction(request:WORequest) {
override def defaultAction: WOActionResults = {
pageWithName("Main")
}
}

 こちらも元が単純なのでこれだけ。単にsuper()を呼ぶだけのコンストラクタはextendsに引数を渡してしまえるのがScala流。

 一度クリーニングを実行して、your.app.Application.javaを右クリック -> Run As -> WOApplicationで実行すると、ブラウザが立ち上がってHello Worldと表示されます! 素晴らしい、お手軽だ、嘘みたい!

 これだけではなんなので、文字列の変数を拵えてそれを表示してみる。Main.scalaを編集して、

...

class Main(context:WOContext) extends WOComponent(context:WOContext) {
var aString: String = "こんにちは、世界"
}

 と指定しておいて、Components -> Main WOを以下のように編集。この辺の手順は、2009-11-09 - トーフサロンを参照してください。

 で、またクリーニングして同じようにRun Asするとー。

 とか表示されるといいですね、表示されますけど。

 Scalaは最終的に普通にJavaのバイトコードになりますから、この辺の連携はお手の物ですね。Eclipse + プラグインの環境ならほぼ手間入らずで勝手にやってくれますし。ただ、頻繁にクリーニングをしなければならなかったり、上手くコンパイルしてくれないのかクラスとして認識してくれなかったりして、何が悪いのかよくわからない。そのうち使っていけばわかるようになるかな、ぶっちゃけScala本も持っているけど読んでいないのでScala自体もよくわかってないけど。
 WebObjectsをScalaで書く事の意味は、そのままJavaをScalaで書く事の意味くらいだと思うけれど、Scalaのお勉強もかねて取り組んでみるのもいいかも知れないね。