M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

Java

PygmentsのRegexLexerをJavaで写経(?)してみた

このかんPythonの復習やらコードリーディングなんかを試みていて、その過程でもともとJavaであこれやってきた字句解析/構文解析についての関心も手伝って、構文強調ライブラリであるPygmentsのコードやリファレンスを目にする機会があった。そのリファレンス…

EclipsepediaのとおりにしてもJFaceはうごかない

引き続きSWT周辺をしらべていて今度はJFaceである。SWTは非常に基本的なUIコンポーネントを提供するものだけど、このSWTを基盤としてJFaceはよりリッチなUIコンポーネント──ようするにEclipseの画面を構成する部品を提供するものらしい。直近の関心は「Eclip…

Eclipse SWTのdisposeメソッドについて

例によってJava関連であれこれ調べる中で、Eclipseで使用されていGUIツールキットStandard Widget Toolkit(SWT)のdisposeメソッドが気になった。 SWT: Standard Widget ToolkitSwingとは異なり、SWTでは各種ウィジェットでプラットフォーム固有の機能を利…

SVNKitのSVNURLオブジェクトまわりがちょっと不思議

ちょっとしたツールを作成したくてSVNKitについて調べていたら、SVNURLオブジェクトで不思議なものを見つけた。そもそもの発端は SVNURL . parseURIDecoded (String) メソッドが“Deprecated”と指定されているのに、Javadocにはその代替APIについて何も記載が…

SVG編集のためのJavaライブラリをつくりかけている

SVG形式データを作成・編集するためのライブラリSvn-utilをJavaで書き始めた。 ▲サンプルプログラムで描画したSVG理由はもちろんSVG画像編集をJavaコードから行いたい事情があったから。当初、ApacheのBatikで大方のことはできると考えていたのだけれど、こ…

BufferedInputStreamの威力を実験してみる

ずいぶん以前の記事になるけれどJavaのパフォーマンス最適化に関する論文を読んでいたところ、BufferedInputStream(およびBufferedOutputStream)を使用することでI/Oのパフォーマンスが非常に良くなるという記述があったので実際に試してみた。使用してい…

シンプルなクエリ処理ライブラリを作ってみた

自作中のツールで使うことを意図してシンプルなクエリ処理ライブラリMinqueを作ってみた。比較演算子と論理演算子からなるクエリをパースして、任意の要素型のコレクションを対象に検索処理を実行できる。その他、クエリAPIの概要やクエリで使用できる構文な…

JP1/AJS2ユニット定義情報パーサ・ライブラリ

(2016/02/26追記 パーサ・ライブラリのリポジトリを移動しました。新しいリポジトリはこちらです。)日立ソリューションズのJP1/AJS2のユニット定義情報にJavaからアクセスしたい! という欲求に応えるため、パーサ・ライブラリUsertools.jp1ajs2.unitdefを…

Spring XMLでScalaビーン定義する方法、関数指向なビーン定義の方法、ほか

とくに直近どうこうしようというわけでもないのですが、Spring Scalaについて調べたので翻訳を載せておきます。 訳出したのはSpring ScalaのGitHubに掲載されていたWikiドキュメントです。 プロジェクトの製品同様Apache 2.0 ライセンスなのかなー、そういう…

JekyllをJavaに載せ替えてみた

ここ1周間ほどかけて,ブログちっくなコンテンツを静的ファイルとして生成する一種のCMS、JekyllをがんばってJava化してみました。……というほどにもものは出来上がっておらず、実際には動作確認すらまともに行っていないのですが。 Jekyllってなに? とりあ…

ミランダ・メソッドの災禍はいまも・・・

もう3年近く前になりますが、ProGuardについて調べる過程で、ミランダ・メソッド(Miranda Method)というものについて知る機会がありました。これは古いJVMに存在した継承チェーン上のクラス・メンバー検索機能に関するバグに対する「カウンター・バグ」の…

Doxygenで呼び出し関係図を含むドキュメントを生成する

保守対象のC#のソースコードを都度々々一から解析してAstahのコミュニティ・エディションでこつこつUML化するのにはいい加減飽きてきたので、既存リソースからドキュメント生成するツールを探していました。 結果、DoxygenというJavaやC#やその他いろいろに…

Jetty の ProxyServlet でプロキシサーバを実現する(HTTPS対応)

JettyでHTTPプロキシを実現する方法は、Web上で検索すれば日本語でもいくつかの記事がある様子。しかし中継するHTTP/HTTPSリクエストに何らかの操作を加える方法については日本語の記事が見つからなかった。今後のため、今回調べてわかった内容をメモしてお…

Apache Ant の DirectoryScannerの動作を見てみる

前回の投稿でも紹介したとおり、DirectoryScanner (org.apache.tools.ant. DirectoryScanner)はApache Antが提供しているAPIです。このAPIを使用することで、ワイルドカードを含むパターンを使用したファイル/ディレクトリの検索が可能になります。今回は…

Apache Ant の DirectoryScanner について

仕事で使うツールを作成する過程で、ワイルド・カードを含むファイル・パスをパースして、ファイルを取得する手段が必要になりました。あれこれ検索をしたものの、結局AntのAPIを使用する方法がいちばん簡単なようでした(あまりスマートな方法でないかもし…

TSVファイルのパースとTSVデータ操作のためのAPI

構想中のツールを開発するための土台として、TSVファイルのパースとTSVデータ操作のためのAPIを作ってみた。一応JUnitのテストケースも作っているけどかなり適当。 TsvUtilsオブジェクト TSVファイルのパースとTSVデータの新規作成を行うためのユーティリテ…

Reference counting、Mark and Sweep、そしてCopying

2年前になるけれど、Vala言語のGCメカニズムについての記事の翻訳転載をしたことがある。そのときに、記事のしょっぱなに「Valaは、ガベージコレクションのかわりに自動参照カウント方式を、メモリー管理の基礎としています」という断りがあり、おや? と思…

チェック例外は「悪夢」なのか?

私にとって、Java プログラミングで「その当時は名案だと思えた」一番の機能が、チェック例外と、例外に対する認識をブロードキャスト (および強制) できる機能です。けれども実際に使ってみると、コンテキストから切り離された不必要な例外処理 (および誤っ…

Martin Fowler『1つの言語』感想

エンタープライズ・ソフトウェア界の流行はここ10年の間ずっと、ソフトウェア開発努力のための1つの標準言語に集中することだった。 多くの開発組織が、すべての作業をJava(とかC#/VB)でこなそうとしている。これの理論的根拠は、開発者が1つより多くの言語…

ニール・フォード『Java.next: Java.next 言語』感想

“developerWorks: Java.next: Java.next 言語”は、GroovyにくらべてScalaやClojureのコードサンプルがまったく紹介されていないのは何故なのだろうか、納得いかない。・・・というのが正直なところではあるけど、次の指摘はもっともであると思う。 Scala …

MyBatis-Guiceではじめよう

なんといっても簡単にできそうなので、近々MyBatis・Guice・Derbyの組み合わせでコードを動かしてみようと思っています。 一応準備(?)として例によってMyBatis-Guiceの入門テキストを読んでみました。原典は、“MyBatis - MyBatis Guice | Getting started…

"Upgrade for Java SE 7 Programmer"試験をパスして・・・

徹底攻略 Upgrade to Java SE7 Programmer 問題集 [1Z0-805]対応 (ITプロ/ITエンジニアのための徹底攻略)作者: 志賀澄人,米山学,株式会社デンソー山田隆太,株式会社ソキウス・ジャパン出版社/メーカー: インプレスジャパン発売日: 2013/02/22メディア: 単行…

クラス RecursiveTask<V>

こういうコードブロックを見ると混乱してしまう自分は、並列分散処理にも関数型言語にも苦手意識を持つ。それにしてもこのコードブロック、『徹底攻略 Upgrade to Java SE7 Programmer 問題集[1Z0-805]対応』にそのまま転載されているんだけれど、これって…

SQLExceptionのサブクラスたち

"Upgrade to Java SE7 Programmer"試験の参考書を読んでいて説明不足感のあったSQLExceptionのサブクラスたちについて、Oracleの公開している“Java™ Platform, Standard Edition 7 API Specification”を読んでみた。以下、翻訳結果。 * * * SQLException …

『Sun SJC-P認定ガイド Java5/6編』を再読中

Sun SJC-P認定ガイド Java5/6編 310-055&310-065対応作者: キャシー・シエラ,バート・ベイツ,トップスタジオ出版社/メーカー: 日経BP社発売日: 2010/01/21メディア: 単行本(ソフトカバー)購入: 16人 クリック: 359回この商品を含むブログ (8件) を見る"Upg…

Derby初心者のための自習チュートリアル(抜粋)

Apache Derby公式サイトで公開されているチュートリアルについて、とくに組み込み用途に関係する部分を抜粋して翻訳してみました。Java言語初心者でも分かるように説明されているのはちょっとやりすぎのような気もしますが、ともあれ自作プログラムに組み込…

Apache Derbyを組み込みDBとして使う

Apache Derbyは、Javaで実装されたサーバ/クライアント型でも組み込み型でも使用できるデータベース。今回は公式のマニュアルを参考に、以下の処理を行うプログラムを作ってみた。 まあようするに何の役にも立たないお勉強用プログラム・・・。 データベースが…

Sun SJC-P認定ガイド Java5/6編 310-055&310-065対応

Sun SJC-P認定ガイド Java5/6編 310-055&310-065対応作者: キャシー・シエラ,バート・ベイツ,トップスタジオ出版社/メーカー: 日経BP社発売日: 2010/01/21メディア: 単行本(ソフトカバー)購入: 16人 クリック: 359回この商品を含むブログ (8件) を見る他の…

Spring Security 3.1 リファレンス - テクニカル・サマリ (2)

Spring Security 3.1 リファレンスマニュアルの“Technical Overview”のチャプターを訳出しています。今回は後半部分。前半部分はこちら。原典は、“6. Technical Overview”(Spring Security Reference Documentation)で、Ben Alex氏とLuke Taylor氏によるも…

Spring Security 3.1 リファレンス - テクニカル・サマリ (1)

先日、Spring Securityについての拙い翻訳を掲載したのに続いて、今回はその記事でも言及されていたリファレンスマニュアルの“Technical Overview”のチャプターを訳出してみます。いずれにしてもちょっと長いので、まずは前半のみ。(後半はこちら。)原典は…