GoogleCodeJam2009 Round1B

Qualification Roundの次のRound1
ここくらいは突破したかったけど無理でした(笑

A,DecisionTree

SmallとLargeともにわりかし楽に通った。
言い訳なっちゃうけど、Round1Aのボーダーが1問完答だったから余裕こいでた。
たらたら書きすぎて@1h

B, TheNextNumber

順位見て焦っちゃった。冷静になれば。
桁数がintで溢れるのでたぶんLargeは点数高いんだな。
結局char配列使うんで両方いけるなあと組んでたけど時間切れorz

どうせRound2は日程的に無理だったけど、せめて1回戦はなぁー無念。

アンダースコア記法をキャメル記法に

テーブルのカラム名をEnumにして、関連づけを全部そこに任せていたんだけど、
ApacheCayenneはカラム名などをキャメル記法で渡す。う゛ぁーって感じ。
なので変換メソッドを作った。

	public static String camelize(String s){
		char[] c = s.toLowerCase().toCharArray();
		StringBuilder r = new StringBuilder(s.length());
		int diff = 'A' - 'a';
		for (int i = 0; i < c.length; i++) {
			if (c[i] == '_') {
				r.append((char)(c[++i] + diff));
			} else {
				r.append(c[i]);
			}
		}
		return r.toString();
	}

動作良好。

Perl本2冊目

今日はSRMがあったのに寝坊してしまった。
それも一日中疲労感疲労感で・・・。これから大丈夫かな・・・。

リャマ本を読み終わったので、次を買ってみた。

なるほど、代表的なCPANの紹介や高度なテクニックの紹介がずらり。
Perlをごりごり書きたい人にはいいのかも。
でも、オレみたいにコードよりひたすら実装実装のためにPerl書いている人には無縁かも。

やっぱアルパカ本買えば良かったかな。

EclipseでPerlの開発環境を作ったけれど。

昨日の投稿の続き。

EclipseでPerlの開発環境を作ろう
http://thleave.com/coding/98

自作のモジュールとかを使うときに警告が出ちゃうという話。
でるだけならいいんだけど、そこで文法チェックが終わっちゃうからタチがわるい。

でも、perl.exeの指定のところで、以下のようにすれば解決。

"C:\Perl\bin\perl.exe" -Mmodule=[workspaceの場所]

[2009/09/15 追記]
あ、これやるとデバック効かない・・・かも?

EclipseでPerlの開発環境を作ろう

前にも書いたようにPerlを使うことになったので、開発環境を探していました。
でも、ずっとJavaでEclipseを使って慣れていたので、Eclipseを使うことにしました。

Eclipse は現在3.5(Galileo)が最新です。
公式から落としてきます。
種類がありますが、Classicで十分です。
http://www.eclipse.org/

次にプラグインをいれます。
EclipseをPerlに対応させるものだと、今はEPICしか見あたらないようです。
http://www.epic-ide.org/

EPICをインストールするにはまずEclipseを起動して、
[Help]->[Install New Software]
で表示されるダイアログでURLを指定します。
公式にもありますが、以下のURLです。
http://e-p-i-c.sf.net/updates
後は流れに任せます。

次にPerlをインストールします。
XAMPPなどの統合環境を使っていても、とりあえず入れた方がいいです。
いろいろ方法はありますが、WIndowsユーザーならActivePerlが楽だと思います。
http://www.activestate.com/activeperl/
ダウンロードしてインストールします。

そしたら、EclipseからPerlが見えるように設定をします。
[Window]->[Preferences]
で設定画面が開きます。
[ Perl EPIC]という項目があるので、そこで”perl.exe”までのパスを設定します。
“perl.exe”はActivePerlのインストール先のbin以下にあるはずです。

ここらへんで再起動をして、インストールは一通り終わりです。
これで大体の補完とデバックが効きます。
ただ、「動的型付け言語であること」「EPICの更新があまりアクティブに行われていないこと」が原因だと思いますが、あまりキビキビとした補完はききません。
Javaユーザーの方は不満に思うかも。

あと、実際に使うのであれば、もうすこしプラグインが必要だと思います。

Perlには関係ありませんが、

  • SVN
    Eclipse3.4あたりから別途インストールが必要になってしまいました。
  • AptanaIDE
    重いんですが、スペックに余裕があれば。HTMLやJSのエディタが感動するほど素晴らしいです。
  • GotoFile Eclipse Plugin
    ファイル検索が秒速でできるようになります。キャメルサーチなどをEclipse上で実装。
  • Clay Database Modeling
    軽量で使いやすいDBモデリングソフトです。CREATE文の自動生成やリバースエンジニアリングなど。

などはいれておいて損がないと思います。

長くなりましたが参考になれば。

ApacheCayenneに関する備忘録

どんどん追加していこう。

  • CayenneModelerでモデリングするとカラムの順番が滅茶苦茶になる
    しっかり順番意識して作ってもpkカラムがテーブルの中央にきたりするありえなさ。
    なので、別のモデリングソフト使ってモデリングしてSQL発行してテーブル作ってます。
    ただ、auto_pk_support忘れがち。
  • DataObject <=> PK
    http://cayenne.apache.org/doc20/dataobjectutils.html
    DataObjectUtilsという便利なクラスがあって、それを使ってPKとDataObjectの相互変換が簡単にできる。

Apache Maven2を使ったApache WicketのQuick Start

ルー語みたいなタイトルになっちゃいました。

前にもやったことがあったのですが、
開発環境が変わりやり方も忘れてしまったので、
今度は忘れないように備忘録として。

Apache Mavenは現在v2が主流。
http://maven.apache.org/

  1. 落としてきて適当な場所に解凍する。
  2. ローカルリポジトリを設定する。
    最初にやっとかないと、デフォルトのディレクトリ(~/.m2/以下)にファイルが沢山ダウンロードされちゃう。

    [解凍先]/conf/settings.xml
    local_repositoryっぽい場所があるので、好きな場所に変更する。

  3. (コマンドプロンプトから実行するので)環境変数を設定する。
    PATH=[解凍先]/bin/
    JAVA_HOME=[JDKのディレクトリ]
  4. 試しに行してみる。
    $mvn –version
    など。返事が返ってくれば成功。
  5. プロジェクトを作成したいディレクトリに移動。
    カレントディレクトリにプロジェクトが作成されるので、
    EclipseのWorkspace内など、好きな場所へ。
  6. Apache Wicket Quick Start!
    http://wicket.apache.org/quickstart.html
    詳しくはリンク先を読んでください。
  7. 自動生成されたコマンドを実行する。
    EclipseなどIDEとの連携を考えている人は、
    上記リンク先の下の方もちゃんと読む!(必要なコマンドがあります)

以上でおわり。

さぁ、作業作業。

Eclipse galileo arrives in 3 weeks

Eclipse 3.5 通称Galileoが6/24にお目見えするとのこと。
新機能は楽しみだけど、言語毎にEclipse置いてるから入れ替えるのが面倒くさいなぁ。

http://www.eclipse.org/galileo/