«前の日(11-10) 最新 次の日(11-12)» 追記

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2002-11-11 古い日記からの変換データ

_ 写真

RPG研究会の写真置き場の HTML を修正.そろそろレイアウトとデータを分離したくなってきたが,次に写真を撮る機会があったら,そのときにまとめてやることにして,現状は放置しておく.

_ 日記

文字コードの都合で,データをシェルに渡したときにgrep に失敗する問題があった.検索に,内部的に grep を用いていた部分を,素直に ruby 上で処理するように修正.

_ Eclipse

Windows の .(period) で始まるファイル名を作らせてくれない仕様のせいで,せっかく作った設定の何割かを失ってやる気も失う. :-)

こんなどうでもいい仕様に引っかかるなんて…….


2004-11-11 古い日記からの変換データ

_ [hyCalendar]Todo管理

Todo管理用チェックボックスリスト(TListView)が,アイテムの名前編集中にもアイテムの位置入れ替えが有効になっていることが判明.

アイテム位置入れ替えが作動しても編集相手は場所で選ばれているので,本来編集するはずではなかったアイテムが編集できてしまう.かなり危険.

FOSEから戻ってきたら直したいところ.


2005-11-11

_ [Java][ツール] プリミティブ型を格納するコレクションライブラリ

各種調べてみたので少し整理.Javaでは,autoboxing はパフォーマンス上のオーバーヘッドが大きいので,たくさん要素を処理する場合はこれらのコレクションが有効(なはず).

  • GNU Trove for Java: http://trove4j.sourceforge.net/
  • int や boolean など,各プリミティブに対する List, Set, Map, Iterator を提供するパッケージ.

    コレクションの各要素に対して手続きを呼び出す foreach が利用可能.また,任意の型から int への Map については,int→int変換をかけて別の Map に変換する transformValues というメソッドもある.

    Java Collections API との互換性を保つための Decorator も提供(ただし効率は悪い).ライセンスはLGPL.

  • Primitive Collections for Java: http://pcj.sourceforge.net/
  • Troveと同様,各プリミティブに対するList,Set,Map,Iteratorを提供するが,それに加えてSortedSet,範囲型(Range)なども提供.

    ハッシュの実装を Chained (ハッシュ結果が Linked Listになっているもの)と Open (ハッシュ結果のエントリが埋まっていたら他にさらに移動するもの)から選択する必要があり,選べて嬉しいともいえるし,いちいち選択するのは面倒ともいえる.

    Java Collections API との互換性を保つための Adapter も提供.ライセンスはLGPL.

    Trove4Jと比べた場合,こちらだけが提供するSortedSetなどを使いたいか,それとも Trove4J だけが持つ foreach などが使いたいか,によってどちらを選ぶかが決まりそう.

  • The Colt Distribution: Open Source Libraries for High Performance Scientific and Technical Computing in Java: http://hoschek.home.cern.ch/hoschek/colt/index.htm
  • 主に int と double に関する配列・行列処理用クラス群.事前条件をチェックしない setQuick などの高速処理用メソッドを持つ.

    その他,複素数,行列演算,様々な分布の乱数生成などのパッケージもくっついている.

    ライセンスはパッケージごとに異なっており,ほとんどは非商用なら利用可能.一部 Mutex などを提供するパッケージのみ GPL になっている様子.

  • Type-Specific Collections Library: http://www.sosnoski.com/opensrc/tclib/
  • array, queue, stack, set, map をサポート.array は,主に配列との相互変換を重視している.

    short や long などはサポートしていないコレクションもあり,また全体的にメソッド数も少ない(add と get での利用が基本のよう).

    機能が少ないぶんシンプル(目的のものを探すのが容易)なパッケージだと思われる.ライセンスは独自で,基本的には自由にしてくれというもの.