argius note

プログラミング関連

Java

Java SE 8 (5) - プラットフォーム、セキュリティー、他

最後に、API改良の残りのセキュリティー関連と、プラットフォームの変更、etc、について、説明します。 (2014-03-21追記)APIドキュメントのリンクを差し替えました。 目次 モジュール化の準備 コンパクトプロファイル セキュリティー関連 Javadoc APIのjavax…

Java SE 8 (4) - 新しいAPIと改良されたAPI

このエントリーでは、これまでに紹介した機能以外の、新しいAPIと改良されたAPIについてまとめています。 (2014-03-21追記)APIドキュメントのリンクを差し替えました。 目次 ラムダに伴うコアライブラリーの拡張 内部イテレーターとIterable#forEach Compara…

Java SE 8 (3) - 新しい言語機能

このエントリーでは、(2)で触れた「ラムダ式」「メソッド参照」以外の新しい言語機能についてまとめています。「ラムダ式」「メソッド参照」については、(2)を参照してください。(2014-03-21追記)APIドキュメントのリンクを差し替えました。 目次 仮想拡張メ…

Java SE 8 (2) - ラムダ式、メソッド参照、ストリーム

このエントリーでは、Java8の新機能のうち、最も大きな変更であるラムダ式と、それに関連するメソッド参照、およびストリームについてまとめています。 目次 ラムダ式とメソッド参照 関数型インターフェイス ラムダ式の内部表現 ラムダ式のキャプチャー スト…

Java SE 8 (1) - 概要と一覧

このシリーズは、2014-03-18に正式リリースが予定されている、Java SE 8の新機能と拡張機能についてまとめたものです。 (2014-03-21追記)予定通り、2014-03-18(現地時間)にリリースされました。APIドキュメントも公開されたので、そちらに差し替えました。…

カスタムDocletでJavadoc情報をCSV出力

Javadocの情報を、リスト形式で取得したい、具体的には、CSVで出力して、スプレッドシートとして閲覧したいと思いました。 独自でパーサーを作って、ソースコード直接orHTML形式をパースする? さすがにそれより簡単なやり方があるでしょうと思って調べてみ…

Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい

この記事は、個人的なおさらいのための、Java Concurrency Utilitiesの一部を使ったサンプルとメモです。 目新しいものは特にありません。 記事内のサンプルとAPIドキュメント参照はJava7(Java SE 7)を基準にしていますが、Java Concurrency Utilities自体は…

JUnitでテスト後にディレクトリを自動削除する機能を使う(Rules)

比較的新しいJUnitでは、TemporaryFolder(org.junit.rules.TemporaryFolder)というRuleクラスが使用できます。 テストで使った一時ディレクトリを、テストが終わった後に自動で消すことができます。 Rulesの機能は、2009-08-04にリリースされたJUnit4.7で追…

Java 8 の現状をチェック - 2013年5月下旬 (b91)

前回(2013-02-19)から3か月ほど経過しましたが、また少し状況が変わったようです。 今回は、EarlyAccess版ビルドをインストールしてみました。

Java 8 の現状をチェック - 2013年2月時点

最近は、ここで扱っている情報をリアルタイムに収集することはほとんどなくなっています。 久しぶりにJava関連の情報を集めに行ってみると...どうやら今年の秋ごろにJava8がリリースされる見込みとか。 Java7ではまとめたことですし、今回もちょっとだけ追い…

internの話

元ネタはブクマ参照。 少なくとも、Java6でコンパイラしたものをJava7で動かしても同様なので、コンパイラの話ではないと思います。internのpool実装がJava7で変わったらしく、これまではPermGenだったのが、Java7では普通のheapに置くようになったとか。 で…

AssertionのAssertion(未公開)

こっち方面から離れ気味です。 最近はアンチパターンについて主にネットで調べておりました。 そして、下記リンクのページを見つけてインスパイアされたのが今回のネタです。 (2004年のエントリなので新鮮ではないです。) Martin Fowler's Bliki in Japane…

EPWINGを使って辞書操作

EPWINGという辞書フォーマットがあるんですね。 この辺の分野は疎いので知りませんでした。 辞書データはEPWINGフォーマットのものを適当に。ライブラリは、これを使いました。 EB4J (SF.jp) final String word = "..."; Book book = new Book("..."); // EP…

RhinoでJavaAPIを使う

ついに、私の使っているほぼすべての環境がJava1.6以上を使えるようになりました。 それと合わせて、Java SE 6で導入された"JSR-223 Scripting for the Java Platform"の機能を使う機会があったので、少しまとめてみました。

JavaでUUIDを生成する

主キーの話に関連して、UUIDについても――実際は初めてのことばかりでしたが――おさらいをしてみました。

非同期でイテレーションを可能にするリスト

リストの生成を行うスレッドAと、リストのイテレーションを行うスレッドBがあって、リストListはそれぞれのスレッドの処理が始まる前にスレッドAからスレッドBに渡しておかなければなりません。 スレッドBは、Listが並列処理かどうかを知らないものとします…

JavaFX版Stew?

JavaFX2はGUIライブラリになったとの話を耳にしたので、ちょっと試してみました。

OracleJDBCのsetObjectでDATE型にjava.sql.Timestampを設定

そういえば、以前のエントリで11gではmapDateToTimestampというプロパティがデフォルトtrueで、DATE型の列がTimestampで取得できるという話がありました。 これは実際に11gで確認できました。すなわち、DATE型の列において、getObjectでjava.sql.Timestampが…

JavaでJVM言語を作ってみる - 目次

断片的な知識と想像に任せて、行き当たりばったりでプログラミング言語の作り方に挑戦しています。(2012-02-11〜2011-02-27) JavaでJVM言語を作ってみる(1) - 環境を準備する JavaでJVM言語を作ってみる(2) - バイトコード解析 JavaでJVM言語を作ってみる(…

JavaでJVM言語を作ってみる(6) - 処理系の実装

これまでの実験のまとめとして、最後に処理系を作ってみました。

JavaでJVM言語を作ってみる(5) - JavaCCとJJTreeの導入

今回は解析器ジェネレータについて見ていきます。

JavaでJVM言語を作ってみる(4) - 四則演算式をコンパイル

前回までは、JVMのコード生成について実験してきました。 今回は、ちょっとだけ解析器の方へ進んでみます。

JavaでJVM言語を作ってみる(3) - BCELでclassファイルを作る

今回は、javacを使わずにclassファイルを作ってみます。

JavaでJVM言語を作ってみる(2) - バイトコード解析

前回の続きです。 足し算プログラム"Adder"を、直接バイトコードを出力して作ります。 その前に、JVMの機械語について少し触れてみたいと思います。

JavaでJVM言語を作ってみる(1) - 環境を準備する

これまでも極簡単な処理系を作ってみたことはありますが、いずれもインタプリタで実用的ではないものでした。 今回も、本格的なものを作る気は今のところはありません。 ですので、題名は正確には、JVM言語を作る環境を準備する、と言ったところでしょうか。…

Cayenne(3.0.2)で任意のSELECT文+SQLを外部ファイルにする

※使用しているCayenneのバージョンは3.0.2ですが、バージョン3以上なら使えると思います。 Cayenneでは、CayenneModelerで"Query"というマッピングを作ることができ、SQLTemplateとして利用できます。この機能は、Adapter(DBMSのインターフェイスみたいなも…

Wicketで真のステートレスページ

Wicketはステートフルが基本。 それでも、ステートレスなページをWicketで実現したい、実現できるなら多少制限があってもかまわない、という場合の、真のステートレス(と言い切っていいものかどうか)を実現する方法を模索してみました。

雑感:Wicket&Cayenneをお堅いアプリに採用する場合のハードル

年明け早々、予定していたバタバタと予定外の(ある程度は覚悟していたものの、予想を上回ってしまった)バタバタとしておりまして、書きたいことがまとめられないので、雑感ってことで。

"EMBEDDED JETTY SERVER"でWicket+Cayenneテスト環境が完結している

先に結論から。 Wicket-QuickStartでソースフォルダー"src/test/java"の下に作られる"Start.java"をEclipseなどからデバッガで実行すれば、軽快なテスト用アプリケーションサーバが起動します。JNDIの設定もjndi.propertiesだけでOK。 さらに、「Cayenne(3.0…

JUnitテストで使う即席のJNDIデータソースを用意する

Cayenneの接続設定でJNDIDataSourceFactoryを使っている場合、JNDIサーバが参照できない環境で設定を切り替えずに単体テストをするにはどうしたら良いのか...と考えたらこうなりました。