argius note

プログラミング関連

Javaで1行ずつテキストデータを読み込むイディオムの変遷

テキストデータを読み込む場合、言語にかかわらず1行ずつ読み込んで処理します。ここではこのイディオムを"read-lines"と呼ぶことにします。


スクリプト言語なんかだと大抵、最初からforeachで済んでしまっていたりしますが、初期のJavaではちょっと面倒な手順が必要でした。
新しいバージョンではだいぶ簡単簡潔に書けるようになりましたが、今度はたくさんありすぎて、どれがなんなのかが良くわからなくなっています(大袈裟)。


そこで今回は、"read-lines"の変遷についてまとめてみました。
最近Javaを始めた方がバージョンが古い時に書かれたソースコードを読むときに役に立つ...かも知れません。

続きを読む

Potaufeu 1.0.0 beta3

argius/potaufeu - GitHub

概要については、beta1の記事をご覧ください。


今回は主に下記の対応を行いました。それ以外は内部的な修正です。詳しくはREADMEを参照。

  • 標準入力からのファイルリストを扱えるようにした
  • dirオプションの実装
  • テキストファイル判定の実装(試験的機能)

Apache POIでExcelの図形の(拡張?)書式設定を変更する

Apache POIを使ってExcelの図形(シェイプ)を作って 図形の書式設定を変えることは、一部の書式は変更することはできますが、それ以外の書式設定を変えるにはどうすれば良いのか、ちょっと調べてみました。

今回の結論はリフレクションを使ったものになります。正規の方法では無いと思いますので、ご利用の際にはご注意ください。

追記(2015-06-06): XSSFバージョン(Excel2007以降のファイルフォーマット、*.xlsxの形式)を最後に追記しました。こちらはリフレクション無しです。

続きを読む

MozBackupでFirefoxとThunderbirdのらくらく引っ越し

PCの交換があったので、FirefoxThunderBirdの引っ越しをしたいけど、以前の引っ越しでは標準のプロファイル移動だけでやってみたところ、面倒な上に設定を完全にはコピーできないのでちょっと不満でした。


他に方法が無いか探してみたら、見つかりました。
MozBackupというツールです。

続きを読む

Potaufeu 1.0.0 beta2

argius/potaufeu - GitHub

詳しくは前回の記事をご覧ください。


今回は下記の対応を行いました。

Potaufeu 1.0.0 beta1

argius/potaufeu - GitHub

findコマンド的なユーティリティーです。

以前作ったものをJava8で書き直したものです。
ただし互換性はほとんどありません。


読みは「ポトフ」です。煮込み料理つながりということで。

特徴?

主要な機能は、Java7で追加されたNIO.2、Java8で追加されたラムダ式、ストリームを使って実現しています。
また、以下のライブラリーを使っています。


あと、まだまだ未完成ですが、結果をキャッシュして操作できるようにしています。


コマンド名はpotf


以下のコマンドは、Javaファイルのサイズが大きい順に10件をPOSIX風リスト表示します。

$ potf --list-posix --heads --sort _size .java

おわりに

本当はJava8正式リリース直後の1年前に作っておきたかったのですが、やる気が出なくて...


まあでもこれで一旦区切りがついたので、これからもっと本格的な何かを作るのに取り組みたいと思います。

Concurrency Utilitiesの「再」まとめ - Java8対応版

以前、このような記事を書きました。

前回の内容は、Concurrency UtilitiesだけでなくJavaのマルチスレッドの話も一部含んでいましたが、今回は、Concurrency Utilitiesだけにフォーカスして、全体が分かるように整理してまとめ直しました。


目次

  • 概要
  • 準備
  • タスク・フレームワーク (Executor)
  • 同期キュー
  • シンクロナイザー
  • 並行処理コレクション
  • 時間単位
  • アトミック値型とアトミック操作
  • ロック・フレームワーク
続きを読む