「Javaの鉱脈」でFlatBuffersの記事を書きました

WEB+DB PRESSのVol.86で、オブジェクトシリアライゼーションの記事を書いたので是非読んでくださし。2015/4/23発売ですので、既に購入頂いてる方も多いと思います。電子書籍版もありますので物理的な媒体に興味がない方はPDFを買って下さい。https://gihyo.jp/dp/ebook/2015/978-4-7741-7350-4今回の記事における対象読者についてJavaプログラマとしてそれなりに技術力が付いてくると気

>>...

Guiceで簡易的なプラグインシステムを構築するには

Java界隈にはOSGiといういかついダイナミックモジュールシステムがあるのですけども、これは解決しようとしている問題の量が非常に多いのでちょっとしたものを作るために使おうとすると非常に辛い。そもそも、アプリケーションのブートストラップ部分から全部OSGiベースで作りこまないと良い感じに動いてくれません。そこで、OSGiを前提としたアーキテクチャ設計が必要になるのですけども、ちょっと便利なツール作りたいだけなのに膨大な時間をかけてOSG

>>...

「Javaにおけるnull。これまでとこれから」という発表をしてきた

JJUG CCC 2015 Spring(4月11日開催) で発表をしてきました。一コマ目であり、エントランスから一番近い入り易い場所だったせいもあるとは思いますが立ち見が出る程の盛況ぶりでした。発表を聞いて下さった皆様、本当にありがとうございます。発表資料はこちらです。Past & Future of null in Java発表者がどういう風に考えてコンテンツを作り、どういう準備をしているのか、というのは余り共有されていない

>>...

Meta-Annotations について

このエントリは、アイディアや情報の提供を呼びかけるためのものです。結局何がしたいのか自前のAnnotationProcessorでMeta-Annotation的な機能をサポートしたい。で、そもそもMeta-Annotationってこんなんで良いんだっけ?というエントリです。解決したい問題同じアノテーションの組合せを沢山のクラスに設定したくないアノテーションの合成こういう二つのアノテーションがあったとしてpublic @interfac

>>...

エクスプローラからGOPATHを設定した状態でコマンドプロンプトを起動する

go言語において各種コマンドを実行する際には、GOPATHという環境変数が設定されている事が望ましい訳です。絶賛WindowsユーザですのでCUIは余り好まないのですけども、全てをGUIで操作出来る訳でもない状況でありますので、Windows標準のファイラーであるところのエクスプローラをレジストリを弄って拡張します。まずはGOPATHを設定するシェルスクリプトを記述します。runwithgo.cmdというファイル名で好きなディレクトリに

>>...

go言語におけるtrailing comma(ケツカンマ)問題について

僕は、javascriptにおけるIE対応で辛い思い出が沢山あるのでカンマの位置には神経質なのですけども皆様は如何でしょうか?まずは、go言語のリテラルに関する仕様とレキサーの仕様を確認しておいて下さい。Composite literalsLexical elements - Semicolonsカンマをつけるべきか、つけざるべきかで、仕様書には特にケツカンマについて特筆されていないのですよね。普通の配列リテラルを宣言するとこうなります

>>...

AdobeのBracketsで拡張を書く話

少し前にGitHubのAtomがβテストを開始しましたが、Windowsユーザなのでアプリを利用できなくて哀しい思いをしましたが、僕は元気です。WebKitベースのブラウザをGUIアプリケーションのシェルとして利用してUIの大部分をjavascriptやCoffeeScriptで記述するというアーキテクチャのアプリケーションとしては、AdobeのBracketsもあります。こちらはWindowsで動きますので、今回は現在のBracket

>>...

GitHub Issuesの検索を強化する方法

GitHub Issuesはgithub.com/[ユーザ名]/[プロジェクト名]/issues になっているのでinurl:を使った検索クエリをGoogle先生に尋ねるとよい。但し、ClosedなIssueも検索されてしまう。例:inurl:github.com/jruby/jruby/issues ArrayIndexOutOfBoundsExceptioninurl:github.com/joyent/node/issues wi

>>...

JavaのTimSortがバグってる件について

Pythonで実装され、その後Javaにも移植されたソートアルゴリズムであるTimSortが盛大にバグっていることが発見されました。このバグがどのようにして発生するのかについては、以下のドキュメントを精査して下さい。TimSort fails with ArrayIndexOutOfBoundsException on worst case long arraysOpenJDK’s java.utils.Collection.sort(

>>...