Java
昨日、同僚にH2のJDBC URLに「;MODE=MySQL」のようにオプションを付けることでH2の挙動をMySQL風、PostgreSQL風、Oracle風などのように切り替えることができるということを教えてもらいました。H2のドキュメントでは以下のあたりに書かれています。 http://w…
弊社の@seri_kさんの主催で月一回程度の頻度で開催されている #渋谷java という勉強会があるのですが、普段JavaやJavaEEのdisばかりしているので、今回は私のJavaEE力を見せつけるべくセッション枠で発表させていただきました。 そんなトランザクションマ…
Vert.xはJVM版のnode.jsとして紹介されることが多いのですが、実際はnode.jsよりもやや複雑なアーキテクチャになっています。 node.jsはシングルスレッド×ノンブロッキングI/Oで並列化を行います。そのためどこかの処理でブロックしてしまうとアプリケーショ…
弊社の@seri_kさんが主宰されている「渋谷Java」という勉強会があるのですが、5月31日(土)に開催される第六回ではワタクシも以前からどこかで話す機会はないものかと4年ほどずっと温め続けていたJTAネタを「そんなトランザクションマネージャで大丈夫か?」…
多言語に対応し、差分の測定も可能なStepCounterの新版3.0.3をリリースしました。 https://github.com/takezoe/stepcounter今回の修正点は以下の二点です。 シェルスクリプト(*.sh)に対応しました。 差分カウンタのバグを修正しました。 大した修正ではあ…
NetBeansやIntelliJはすでに昨年からJava 8対応のバージョンがリリースされていますし、EclipseでもようやくJava 8対応プラグインのRC版がリリースされました。が、やはり複雑なラムダ式の解析ができない場合があるなど各IDEのJava 8対応状況はまちまちのよ…
4月から株式会社ビズリーチに入社したわけですが、会社の先輩である@seri_kさんが自社で開催している渋谷Javaに社員特権で飛び入り参加させていただきました。 http://connpass.com/event/5482/個人的に特に面白かったのはKotlinとGWTの話ですねー。まさかこ…
GitBucket 1.12ではssh経由でのリポジトリアクセスをサポートしていますが、これに使用しているのがApache MINAのsshdです。 https://mina.apache.org/sshd-project/index.htmlApache MINAはNIOを使用したTCP/IP、UDP/IPベースのネットワークサーバアプリケ…
ExcelファイルをアノテーションでPOJOにマッピングするライブラリ、XLSBeans 1.2.3をリリースしました。 https://github.com/takezoe/xlsbeansこのバージョンでの修正点は以下の通りです。今回は以前から要望の多かった型変換のカスタマイズなど、久しぶりに…
最近仕事でExcel方眼紙を読んだり書いたりするプログラムばかり書いているのですが、そんなExcel方眼紙を支える最新のJava技術を紹介したいと思います。 なにはなくともPOI JavaでExcelと言えば外せないのがPOIです。以前はJExcel APIという対抗馬もあったの…
アプリケーションに組み込んで使えるJavaベースのドキュメント指向DBを探していたところ、stack overflowでOrientDBというものが紹介されていたので少し調べてみました。 OrientDBは2010年頃から開発されており、以前はGoogle Codeを使っていたようですが昨…
来週5月14日(火)に秋葉原で開催されるJavaDay Tokyo 2013で「Java IDEの最新トレンド」というセッションをやらせていただくことになりました。 https://oj-events.jp/public/application/add/64 IDEバトルというと数年前のJJUGのセミナーを思い出します。き…
ssh(scp)でdeployする際、リポジトリ上のディレクトリやファイルはデフォルトではdeployしたユーザのみ書き込み可能なパーミッションになります。今まで特に困っていなかったのですが、複数人で作業していてローカルからdeployを行うと、別の人がdeployで…
ライブラリの依存関係やスコープを管理できたり、様々なレポートを出力できたりと、なんだかんだいってもMavenは便利です。少しでも道から外れるとpom地獄が待っていますが、幸いにしてトラウマになるような事態に出会ったことはいまのところありませんw た…
Guava 10にOptionalというのが追加されたらしいので試してみました。 Optionalクラスは名前の通り、ScalaのOptionクラスやHaskellのMaybeモナドのようなもので、値をラップすることでnullを使わずに値が存在しないことを表現するというものです。これによっ…
QuartzはJBossなどにも組み込まれているJavaでは定番のジョブスケジューラですが、2.0にバージョンアップしてジョブの定義などを流れるインターフェースで行うようになっていました。これはびっくり。 ジョブはJobインターフェースを実装して作成したり、Job…
Google Chart APIを呼び出すためのURLを組み立てるためのcharts4jというJavaライブラリがあります。 http://code.google.com/p/charts4j/ 今年の1月に1.3にバージョンアップしてMaven対応したようです。pom.xmlに追加する依存関係はこんな感じ。 <dependency> <groupId>com.google</groupid></dependency>…
あちこちで書かれているように、iTextは5系にバージョンアップしてから日本語などを使う際に必要なiTextAsian.jarがそのままでは使えなくなってしまっています。 http://d.hatena.ne.jp/thunderhead/20100408/1270695544 http://abetuyo.net/blog/2009/12/it…
log4jやslff4jで有名なCeki Gulcuさんが開発したライブラリで、簡単に言うとタイプセーフなResourceBundleのようです。なにかものすごく今さら感がなくもないのですが、Webサイトの記述によると特徴はこんな感じ。 タイプセーフ 文字コードはなんでもいい、n…
OSCacheのクラスタリングは今までやったことがなかったのですが、わけあってやってみました。 まず、OSCacheのクラスタリング機能が提供してくれる機能についてですが、やってくれるのはflushの同期のみです。キャッシュエントリそのもののレプリケーション…
Maven2ではリポジトリへのアクセスにプロキシを通す必要がある場合、/.m2/settings.xmlで以下のような感じで設定します。 <settings> <proxies> <proxy> <active>true</active> <protocol>http</protocol> <host>proxy.somewhere.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>www.google.com|*.somewh…</nonproxyhosts></proxy></proxies></settings>
fastutilはTroveなどと類似の高速コレクションライブラリです。 http://fastutil.dsi.unimi.it/ 発想としてはプリミティブ型それぞれに最適化されたコレクションクラスの実装を提供するというもので、マップであればキーがintで値もintのマップ、キーがintで…
先日紹介したMockRunnerのJDBC Mockですが、実戦投入を前提にチームのメンバーに見てもらっているのですが、いろいろと機能があるようです。たとえば以下のような感じでSQLの期待値の比較方法を制御することができます。 // 大文字・小文字を無視 jdbcTestMo…
S2UnitはDBを使ったユニットテストの支援機能としてExcelファイルからDBにテスト用データを投入したり、ExcelファイルとDBの内容を比較したりすることができます。ただ、実際にやってみるとわかるのですがこのExcelファイルのメンテナンスコストが馬鹿になり…
jmemcachedにJava memcached clientでアクセスするとcasコマンドの実行時に必ず以下のような例外が発生してしまいます。 20:59:42.360 [New I/O server worker #1-1] ERROR c.t.j.p.t.MemcachedResponseEncoder - error java.lang.NumberFormatException: Fo…
jmemcachedはJavaベースのmemcachedサーバです。実用というよりも、Javaでmemcachdを使うようなアプリケーションを開発する際にローカル開発環境やCIなどテスト用途に使うのがよいと思います。 http://code.google.com/p/jmemcache-daemon/ Mavenを使う場合…
Javaのデバッガを叩くライブラリとかないかなーと思って探していたのですが、やはり世の中にはあるものです。 http://youdebug.kenai.com/ Hudsonの作者でもある川口さんの作とのこと。さすがにツボをついてますねー。日本語での解説は以下が参考になります…
オープンソースのJavaのキャッシュライブラリというとEhcacheとOSCacheが有名です。どちらも基本的な機能は似ていますが、いろいろと違いもあります。 単純に機能面で見るとEhcacheのほうがJMXでモニタリングが可能だったり、トランザクションに対応していた…
ehcache.xmlでのキャッシュ設定 Ehcacheではクラスパスルートのehcache.xmlというXMLファイルで設定を行います。設定項目はかなり多岐に渡りますが、中でも肝になるキャッシュの設定について調べてみました。もちろんここで書いている項目以外にもクラスタリ…
public class Example { private static <T> T hoge(Object obj){ return (T) obj; } public static <T> T hage(Object obj){ return hoge(obj); } } みたいな感じで書くとEclipseだとOKだけど、Maven(というかjavac)でコンパイルすると下のメソッドから上のメソ</t></t>…