Java

InheritableThreadLocal の使い方で、ハマったのでメモ。

Oracle Technology Network for Java Developers | Oracle Technology Network | OracleJavaでセッションの情報などを、ThreadLocalに保存しておいて後から参照するのは良くある使い方だと思います。しかし、今回では1セッション中にスレッドを作って処理を…

Linuxへ JDK6u18をインストールしてみました。

今日もgcjにやられたので、改めてRedhat系のLinuxへのSUN*1 JDKのインストール方法をメモしておきます。 最近のRed Hat Enterprise Linux Server(RHES)では、alternativesコマンドにより javaの実装を切り替えられるようになっているようです。デフォルトで…

対戦ブロックス のメンテナンスを行いました。

対戦ブロックス久しぶりに自分で遊んでみようと思ったら、「サーバが起動しない」し、「ローカルモードも動かない」状態になってしまっていたのでメンテナンスしました>< 今まで訪れていただいた方には申し訳ないことをしてしまいました。 しばらくサーバ…

色々な言語を実行可能なEditor

http://d.hatena.ne.jp/Horiuchi_H/20090613/1244875956:昨日のが思いがけずアクセスが増えていたので、自分の環境で動かせるのが perl,ruby,pythonとあったのでその3つを実行できるようにしてみました。昨日のソースではblogに書きやすく1ファイルに全部書…

Perlを編集しながら評価できるEditor

http://twitter.com/monjudoh/status/2038844182 この発言に触発されて、あると便利だよなぁと作ってみました。とりあえずなので、上のペインで Ctrl+Enterを押すと書いてあるコードが Perlでevalされて下のペインに表示されます。選択している場合には選択…

ORM比較(6) - iBATIS

iBATISは、XMLにSQLを記述しJavaのBeanに対して自動的に値を設定するORマッピングになっています。どんなSQLになるかは分かりやすいですが、XMLとJavaとの同期を取る方法は特には用意されていないので、管理が必要になります。また、このプロジェクトもApach…

ORM比較(5) - S2JDBC

S2JDBCは、SeasarプロジェクトのS2Containerにextensionとして標準で付属してるORマッピングです。DIコンテナにSeasar2を使う場合には、ORマッピングとして一番最初に使用候補に挙がることになると思います。ただし、JPAのアノテーションにはほぼ対応してい…

ORM比較(4) - OpenJPA

このOpenJPAは、名前の通りJPA準拠のJacartaプロジェクト産ORMです。JPA対応なので、使い方は前々回(ORM比較(2) - Hibernate - しがないプログラマ の日記) のJPA版と同じになります。 公式ページは http://openjpa.apache.org/ になります。動かすために必…

ORM比較(3) - EclipseLink

ちょっと前にJPA2.0の参照実装に決まった、EclipseLink(元『TopLink Essentials』)です。名前の通り、Eclipseプロジェクトのサブプロジェクトになっています。これから有名になりそうなライブラリですね。 プロジェクトの公式ページは http://www.eclipse.or…

ORM比較(2) - Hibernate

JavaのORMと言えば、Hibernateと言われるくらい有名なライブラリです。HibernateはJ2EEの標準APIであるJPAに対応しているので、Hibernateをそのまま使う場合とJPA互換の使い方と2通りのデータ取得方法で書いてみます。 公式ページは https://www.hibernate.o…

ORM比較(1) - ActiveObjects

ActiveObjectsは、Ruby on Railsの ActiveRecordの考え方を元にしていて、XMLを使わずに全てJavaで記述できるORMです。CoCを重視するので、テーブル構造などは基本的に ActiveRecordと同じようにキー項目は id固定で、ORMのユーザ側からは操作しない前提にな…

ORマッピングの比較

JavaのORMライブラリの使い勝手の比較をしてみました。と言っても、とりあえずSelectとInsertするだけのものです。導入を考えた時の最初の設定がどの程度違うのかを比較するためのものです。 比較対象は、以下の5つになっています。 ActiveObjects Hibernat…

Javaで ラムダ計算機を実装してみました。

ラムダ計算入門 この PDFを参考に、Javaでのラムダ計算を実装してみました。ついでに JavaCCを使って以下のような文を解釈できるようにしました。 (λx.x(y z)); λs.λz.s(s(sz));実際には、以下のようなコードで入力の解析と簡約化を行います。 import static…

Lisp vs. Java???

via http://www.kmonos.net/alang/d/2.0/lisp-java-d.html なんだか、LispがJava や C++ より優れた結果を残しているようなので、自分も挑戦してみました。 とりあえず問題を見て入力をみたり出力を確認したりしながら、1時間半ほどで以下のコードが書けまし…

TopCoderのレーティング

前回の Marathon Matche 36の結果も反映されたようで、「Marathon Matches Rating: 1291」になってました。この際だから URLで公開しておきます。 http://www.topcoder.com/tc?module=MemberProfile&cr=22725594&tab=longまだ、MM に3回参加しただけなので、…

TopCoder Marathon Match 36 用のライブラリ関数

もうあと1日しか残ってないけれど MM36が始まったので、前回(http://d.hatena.ne.jp/Horiuchi_H/20080612/1213242021)にさらに引き続き起動用の関数を、と思ったのですが今回は visualizerを使わない問題なのでそれはなくなりました。代わりに、パスワードの…

昨日の補足

http://d.hatena.ne.jp/Horiuchi_H/20080619/1213855066 昨日のEntryに以下の用なコメントをいただきました。 koichikkoichik 2008/06/19 20:30 > UpdateTime等のカラムを getdate()関数の値で UpdateやInsertそれはトリガでやるのが定番のような. あまりDB…

S2JDBC をちょっといじってみました。

S2JDBCを調査していていて、以下の1点だけできないことがあったので自分で実装してみました。 「できないこと」とは、テーブルのUpdateTime等のカラムを getdate()関数の値で UpdateやInsertを実行することが SQLの自動生成ではできないことです。多少わが…

TopCoder Marathon Match 35 用の起動関数

前回(http://d.hatena.ne.jp/Horiuchi_H/20080503/1209830474)に引き続き、MM35が始まったので Java用の visualizer用コードを下の方に張っておきます。 さて、今回の問題はゾンビがいっぱい居る部屋の中を脱出するというものです。10回までは触られても大丈…

TopCoder Marathon Match 34 用の起動関数

ちょっと前にTopCoder(http://www.topcoder.com/) に登録して、SRMの過去問題を解いたりしてたのですが、Marathon Match が始まったので参加してみました。問題はこちら http://www.topcoder.com/longcontest/?module=ViewProblemStatement&compid=7695&rd=1…

キー操作について

前Entry にて、キーボード入力で操作をしようと思いどのキーがどう動くか調査した際に、いくつかの特殊な操作キーが存在したので、メモしておくことに。他に知っている方がいらしたら、教えてください。 キー 動作 Home Homeボタン押下に相当 F4 Homeボタン…

○×ゲーム をAndroidのバージョンアップに対応

○×ゲーム を作ってみました。 - しがないプログラマ の日記 で作ったものを、Androidのバージョンアップに対応しました。それに伴い以下の問題点が発生したため、改良を加えました。 ViewでのOnClickListenerが反応しなくなった。対応方法は今のところ不明な…

SDKのバージョンアップ

Androidのバージョンが上がり、それに伴いSDKもバージョンアップされました。バージョンがM3からM5に変わったので、色々と改変があったようです。 詳しくは Download Android Studio and SDK tools | Android Developersを見てください。SDKのDownloadは Dow…

SchemeのVMを作るのが流行っているようなので*1

自分でもJavaでSchemeもどきの処理系を書いてみました。まだほとんど関数が実装されていませんが(consとか)、一旦公開します。随時更新しているので、現在ないものもいつの間にか実装されるかもしれません。ソースは、http://taoe.jpn.ch:8080/svn/trunk/Sch…

○×ゲーム を作ってみました。

http://taoe.jpn.ch:8080/svn/trunk/AndroidNoughtsAndCrosses/ にてsvnで公開しています。 見たままですが、一応遊び方を。 置きたい場所をクリックした後に、OKボタンを押すと次へ進みます。Passボタンを押すとCOMが良い感じの場所*1に置きます。Resetボタ…

曜日を計算する関数2

曜日を計算する関数 - しがないプログラマ の日記 の修正版です。 ツェラーの公式 - Wikipedia via http://ja.doukaku.org/comment/5058/ より、既に公式が存在していました。そんな訳でWikipediaのソースを元にJavaに移植しました。返す値は前回と同じにす…

SMSのデータをServiceで受信

SMSのデータをServiceに渡す - しがないプログラマ の日記 の続きSMSのデータを直接 Serviceで受信できないかと思い実装してみたら、できちゃいました。こちらの方がわざわざIntentに詰め直して投げるより素直なので方針変更です。ソースは更新済みです。

SMSのデータをServiceに渡す

昨日のEntry では、Serviceにデータを渡すのを諦めてしまいましたが、改めて別の方法で作ってみました。 http://taoe.jpn.ch:8080/svn/trunk/AndroidSmsReceiveService/ にて公開しています。 ※方針変更につき、後述のEntryを追加 SMSのデータを受信時に、Se…

Androidで、SMSの受信データを画面に表示

SMSの受信データをIntentReceiverで受け取るところまでは分かっていたので、そのデータを画面に表示してみました。 現状のソースは、http://taoe.jpn.ch:8080/svn/trunk/AndroidSmsDataFramework/ にあります。

曜日を計算する関数

さて、年月日がわかっていれば、曜日は確定できる。つまり、カレンダのことだ。ならば、a年b月c日の曜日として、月曜日なら1、火曜日なら2……、土曜日なら6、日曜日なら7が計算できる式が、a, b, cを使って書けるはずである。その式に3つの数字を代入すれば、…