読者です 読者をやめる 読者になる 読者になる

Develop with pleasure!

福岡でCloudとかBlockchainとか。

bitcoinjのmicropayment channelの実装

bitcoinjでは0.10からClient/Server形式のpayment channelをサポートしているみたいなので、どういったものなのか見てみる。 Working with micropayment channels Protocol overview ベースとなってるBitcoin wikiの記事 https://en.bitcoin.it/wiki/Contrac…

java.lang.OutOfMemoryError: GC overhead limit exceeded

Javaなエンジニアであればお馴染みのOutOfMemoryError。 こないだ単体テストを全件流してたら途中で java.lang.OutOfMemoryError: GC overhead limit exceeded が発生。お馴染みのOutOfMemoryErrorかと思ったけどメッセージに「GC overhead limit exceeded」…

JenkinsのPlugin開発環境構築

CIツールとしてJenkinsを使ってて、 テストの実行 カバレッジの計測 検証済みマージ ビルド成果物の作成 なところまでは自動化までできてるんだけど、今度はビルド成果物を検証環境へセットアップするとこまで自動化したいなーという思いと、JenkinsのPlugin…

リフレクションを使わずにMethodHandleを使って動的にメソッドを実行してみる。

Java7からJVM上で動作する動的言語のためにInvoke Dynamicという仕組みが導入された。Invoke Dynamicの導入前までは、動的言語の特性から静的に型が判断できない実行処理においては、各言語毎に処理系が必要で、その処理系に実行処理が委譲されていた。これ…

Javaでもirbしたい!

Rubyを使った開発だと、コンソール上ですぐにコードを実行し、その結果を確認できるirbって便利な機能がある。Javaでも、mainメソッドを持つクラス作って実行すれば良いんだけど、わざわざそのためだけのクラスを作る必要があるのと、コードを書き換えて実行…

Androidでライブラリプロジェクトを作成する際の考慮事項

Androidで通常のアプリケーションプロジェクトではなくライブラリプロジェクトを作成する際の考慮事項が、Dev Guideに記載されている。ざっくり意訳すると、ライブラリプロジェクトとそれに依存するアプリケーションを開発する際に、以下のことに注意する必…

JavaとRubyで暗号化/復号化

Rubyで暗号化したデータをJavaで復号化、またその逆を行ってみた。今回はAES128ビットの暗号化モードCBC、パディングはPKCS#5で実施。 まずRuby側のコード。 require 'openssl' require 'base64' class CryptUtil def self.encrypt(pass, value) enc = OpenS…

JExcelAPIでMaximum number of format records exceeded. Using default format.

JExcelApiを使用してExcel帳票を出力してると、途中で、 Maximum number of format records exceeded. Using default format.って警告のログが出力され、それ以降セルのフォーマットが適用されない帳票が出力される。この現象は、WritableCell#setCellFormat…

java.util.Objects

JDK 7: java.util.Objectsに欲しい、頻繁に書かれるユーティリティメソッドは?Java7から新たに導入される、java.util.Objects。 ・リフレクションを使い、オブジェクトのすべてのフィールドを書き出すtoString(arg) ・実用的な clone() メソッド JDK 7: java…

テラコッタ

【ハウツー】JVMレベルでクラスタリングを可能に - OpenTerracotta (1) JVMレベルのクラスタリングって何? | エンタープライズ | マイナビニュースへー、こんなのあったんだ。VMをまたいだスレッド間の同期もサポートしてると。アプリケーションをスケールす…

Tomcatの複数起動

Tomcatのstartup.shコマンドを叩くとTomcatが起動するが、デフォルトだとTomcatのインスタンスは1つしか起動しない。起動したTomcatのインスタンスは基本的に1つのVM上で起動していることになる。当然ながらTomcatに複数のWebアプリケーションをデプロイし…

mod_jkでTomcatのクラスタ化

mod_jkを使用してTomcatのクラスタ化環境を作ってみた。クラスタ化と言っても、セッションレプリケートはせず、sticky_sessionを有効にして処理を分散させるだけ。なので、セッションが有効な間のリクエストは同一サーバに割り振られる。必要な作業としては…

SpringBatch2.0

Spring Batchの2.0がリリースされたみたい。ジョブの分割とアノテーションによる設定に対応したSpring Batch 2.0新機能としては、 Java 5への対応 非順次実行 拡張性 アノテーションによる設定 Java5の対応とか、まだだったのね…。 個人的に、条件付き実行、…

Seasar2のコンポーネント自動登録の際の順序

現在動作中のSeasar2+TeedaのWebアプリケーションを別のサーバへ移し変えたところ、WARファイルの中身は全く替えていないのに、TeedaのLayout機能を利用して呼ばれるはずの、あるPageクラスのinitializeメソッドが呼ばれないという現象にハマッた。全くアプ…

Java Store

JavaOneで詳細を発表:Sun、Javaアプリのオンラインストア「Java Store」発表 - ITmedia ニュースSunがJavaおよびJavaFXで開発したアプリケーションを販売するオンラインストアを公開する計画があるらしい。AppleのAppleStoreやGoogleのAndroidMarketとか、…

ActiveObjects

JavaにもRailsのActiveRecordと同様のOSSフレームワークがあったねの。「ActiveObjects」 https://activeobjects.dev.java.net/ActiveRecordに触発されて作られた軽量Java O/Rマッパ「ActiveObjects」|gihyo.jp … 技術評論社1つのJarだけで設定ファイルレ…

Sun買収ですかっ。

オラクル、サンの買収で最終合意 - CNET JapanIBMの買収が失敗したと思ってたら、Oracleが買収成功ですか!BEAに続き、Sunまでも。Oracle金持ってるなー。でも、IBMの買収に関する情報がかなり漏れてたのに比べ、今回は事前に情報があまり流れていなかったよ…

Google App Engine for Java

いよいよ登場で、色んなBlogで取り上げられてる。JRuby動かしたり色んなフレームワーク動かしたりとPythonだけだったAppEngineのスタートの頃よりも、盛り上がりを感じる。JRubyとかもちゃんと動くのかぁ。ちなみに Google App Engine、サーバはJetty | 開発…

JSR277 ModuleSystem

あら、Java7から導入予定とか言われてた、JSR277のJavaModuleSystemって見送りになってたのね。JSR294のJava Language Modularity Support with Superpackageの方は予定通り導入されるみたいだけど。JSR277では、JAR形式のアーカイブにモジュール名とバージ…

JSR299

JSR299の名称がWebBeansから「Java Contexts and Dependency Injection」と改名されたらしい。In Relation To... Revised Public Draft of JSR-299: Java Contexts and Dependency InjectionPublic Review DraftのPDFファイルも名称が改名されてる。Draftに…

Deployment Toolkit

Java技術最前線 - 「Java SE 6完全攻略」番外編 Java SE 6u10の新機能 その2:ITpro Java6u10から利用可能になったDeployment Toolkitネタ。Deployment ToolkitというJavaScriptのライブラリで、ターゲットはAppletとJavaWebStart。今までブラウザやバージョ…

Mysaifu JVM

携帯上のJavaVMと言えばJavaMEだが、携帯上でJavaSEをサポートするVM「Mysaifu JVM」が存在する。こちら↓ Windows Mobile用Java SE対応JVM「Mysaifu JVM」の開発者に聞く - SourceForge.JP Magazine : オープンソースの話題満載まだSunがJDKがオープンソース…

型推論

Java7から本格的にサポートされる型推論。(C#では既にC#3.0からサポートされてるみたいだけど。)InfoQにも記事が掲載されている。 Type Inference(型推論)は、Java 7にとって良いアイデアか?まだ、書き方自体は決まってないようで2通りの案が挙がっている…

G1GC

Java7から導入予定だったGarbage-Firstネタ。Java6にも組み込まれたみたい。 Java SE 6 Update 14のEarly Access公開、G1ガーベージコレクタが利用可能に | 開発・SE | マイナビニュース特徴としては、ヒープ領域が分割され、その領域単位でのメモリ開放を行…

NetKernel

NetKernelでJavaの並行性を越える (1/6):CodeZineこちらの記事で初めて耳にした「NetKernel」。(MicroKernelとかはDIコンテナをベースに組み込んだGeronimoのアーキテクチャ等、良く耳にすることはあるけれど。)あまりググっても日本語記事はヒットしな…

Android開発環境

iPhoneに引き続き、Androidの開発環境も構築してみる。こちらはiPhoneと違い、Windowsで開発が可能。iPhoneの場合はObjective-Cでの開発になるが、Androidの場合はJavaベースなので、個人的にAndroidの方がとっつきやすい。最初にこちらから、AndroidのSDKを…

Pluggable Annotation Processing API

Java5からアノテーションが採用されたけど、Java6ではそれを扱うための仕組みとしてJSR269として定義されていたPluggable Annotation Processing APIというのが組み込まれている。8. その他の機能 | TECHSCORE(テックスコア)アノテーションを処理するための…

Servlet3.0の行方

InfoQより Servlet 3.0に関するパブリック・レビューが物議をかもすアノテーションを用いたServletのPOJO化仕様は消滅?まぁ、直にServletを触る機会はそうそう無いんだけれど、RESTなサービスを公開するのにPOJOなServletを利用するってのも面白いかなーと…

SpringOneの発表

InfoQにSpringOneの記事が掲載されてた。 SpringOneにて新生Tomcat Server、VMware社とのパートナー契約、ActionScriptの提供が発表される 大きな発表としては、 SpringSource tcServer VMWare社とのパートナーシップ Adebeとの連携によるFlexサポート Sprin…

JDKのモジュール化

JDKのモジュール化ネタ。巨大でモノリシックな JDK はモジュール化されるべきか確かに、Hello World!!を標準出力するのに、300以上のクラスのロード、初期化が発生するというのはちょっと…と思う。巨大化したJREの軽減策として、Java KernelやQuickstarterを…

クロージャの導入

Java7で導入がささやかれていたクロージャがどうも見送りになるっぽい…。Java 7で登場する新機能一覧、クロージャは残念な状況 | 開発・SE | マイナビニュース

Effective Java

Effective Java第2版の日本語訳が出てたので早速アマゾンでGet!第1版から7年ぶりのリリース。Java1.5で追加された言語仕様をカバーしており、ジェネリックス、enum、アノテーションの章が追加されている。スレッド周りも並列性というタイトルで結構変わっ…

BTrace

カーネルの動作をトレースするDTraceは知ってたけど、Javaでもバイトコードの動作をトレースできるBTraceというのがあるのね。 BTrace is a safe, dynamic tracing tool for the Java platform. BTrace can be used to dynamically trace a running Java pro…

スレッドセーフなWebアプリ

Java の理論と実践: ステートフルな Web アプリケーションはすべて壊れているのか基本的なWebアプリケーションは、 ブラウザがリクエストを発行 サーバサイドで処理を実行し、レスポンスを生成 ブラウザがレスポンスを受け取る といった基本的な流れで、処理…

Java SE 6 Update 10

新版で追加された主な機能は次のとおり。 Java Quick Starter: Javaアプリケーションやアプレットの起動時間を大幅に短縮するコンポーネント Javaカーネル: 最小のJRE(Java Runtime Environment)コンポーネント群によって構成されたカーネル。Javaの起動・実…

EJB2.x→EJB3.1

最近のJavaEE事情 ~Java EE 6の向かう先~ (1/2):CodeZine EJB2.1のときは、EntityBeanもパフォーマンス面の課題などがあり、MessageDriveBeanも存在はしていたが実際に使用って事例を身近で聞いたことは無い。結局、主に使用されていたのはSessionBean…

MapReduce

Googleが採用している分散処理アルゴリズムMapReduce。何年か前に丸山先生がとりあげてた気がする。Javaで分散処理というと、ビジネスロジックを独立して公開し、リモートアクセスを行うEJBの実装(まぁ、RMI実装か)を考えるけどMapReduceのアルゴリズムを…

Flash with JavaME

「Sony Ericsson、Java MEとFlash Liteを連携する"Project Capuchin SDK"発表」 Sony Ericsson、Java MEとFlash Liteを連携する"Project Capuchin SDK"発表 | 開発・SE | マイナビニュースおぉ、これは携帯アプリ開発者にとっては朗報では?携帯アプリでアニ…

Intellij IDEA7.0.4リリース

メンテナンスリリースが出たみたい。 http://blogs.jetbrains.com/idea/2008/08/intellij-idea-704-takes-off/これでIDEA7でもSubversion1.5に対応したみたい。

Intellij IDEA8 M1リリース

いつの間にかM1がリリースされてたのね。 http://d.hatena.ne.jp/masanobuimai/20080810#1218338519 http://www.jetbrains.com/idea/nextversion/JavaScript Debbugerもリリースされたみたい。Flashのデモが公開されてるが、見ると普通のJavaのDebuggerと同…

MOM

JMSとWebServiceと非同期でログ出力する際に、ベースでとちらを使用するか? JAX-WSを初め最近はWebServiceの方が勢いは良い。が、WebServiceはベースがHTTPなので、メッセージの配信の保証という視点では信頼性が低い。信頼性の高いメッセージングとなるとM…

Restlet

JavaからRalsのサーバに対して、リクエストをPOSTする機能が必要で、HttpClientでも使って実装しよっかなーって思ってたが、やはりここは時代に乗ってREST。てことでJavaでRESTなフレームワーク探してみた。Railsは2.0からActiveResourceでRESTサポートをし…

SimpleDateFormatで日付の妥当性チェック

SimpleDateFormatで日付の妥当性チェックをしようと SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); format.parse("20080132"); とするが、日付が英字だったりするとParseExceptionが発生するが、実在しない日付を設定してもParseExceptionは…

JRuby本

JRuby本頂きました。あまりお手伝いできてなかったのでちょっと心苦しい…。 JRuby 徹底入門作者: 株式会社イーシー・ワン出版社/メーカー: ソーテック社発売日: 2008/07/19メディア: 単行本購入: 4人 クリック: 184回この商品を含むブログ (16件) を見るRuby…

SpringModulesでBeanValidator

Hibernateとか独自にBeanValidatorの実装を持ってるフレームワークはあるけど、Springには無いなーと思っていたら、SpringFrameworkにアドオンするツールセットとしてSpringModulesというコンポーネントが公開されている。 https://springmodules.dev.java.n…

バリデーション

Struts2で入力値にバリデーションをかける。基本的な仕組みはStruts Classicの頃と変わっていない。変わったのは、 バリデーションの設定ファイルは、Actionと同じ階層で「action名-validation.xml」という命名規則でAction単位に作成する。 エラーメッセー…

Apache Cocoon

最近2.2系がリリースされてたんだ。2.2からSpringベースになったみたい。 http://cocoon.apache.org/ Cocoon2が採用してるアーキテクチャ自体はちょっと面白いなって思う。Pipelineというコンポーネントの中でリクエストを受け取り、パイプ中にコンポーネン…

Springで単体テスト

SpringFrameworkをベースに開発をしてるということは、テスト時も必要な個所は(DataSourceのインジェクションや、ORM使ってたらiBATISの場合は、SqlMapClientのインジェクション)ApplicationContextの設定を引き継いだ状態でテストをしたい。Springでは予…

OAS10g R3でWebService開発

OASは10gR3からJSR-181のWeb Services Metadata for the Java Platformに対応している。そのため、Webサービスの定義をJavaコードの中にアノテーションとして記述できる。ただし、OASの10gR3は完全にJAX-WSをサポートしている訳ではなく、ベースはあくまでJA…

Sitemesh+Freemarker

Tiles+FreeMarkerの構成だと、FreeMarker内でTilesのtaglibを使用することとなり、Servletコンテナを必要とし、FreeMarkerのローカルリソースを参照する機能が有効にならない。そのため、これを機にレイアウトエンジンをTiles→Sitemeshに変更してみた。 以…