タグ

ブックマーク / blog1.mammb.com (6)

  • テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum

    テキストエディタのデータ構造 Gap method Piece Table method Piece Table の構造 Piece Table の実装 Piece Table のメソッド まとめ テキストエディタのデータ構造 テキストエディタで採用されているデータ構造にはいろいろあります。 こちらの論文 Data Structures for Text Sequences では各種データ構造について比較検討されています。 多くは、Gap method や Piece table method をベースにしたものが多いのではないでしょうか(図で言う最下部の中心の丸印に当たります)。最近では Rope なども有名ですね。 Gap method Gap method では、現在のカーソル位置で、テキストバッファを2つに分割し Gap を間に挟み、カーソル位置に対する編集(テキスト追加/削除)を

    テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum
  • Java スレッドダンプとの戯れ方 - A Memorandum

    プロセスIDの取得 スレッドダンプの取得 Windowsでプロセスをサービス起動している場合 スレッドダンプを読む プロセスIDの取得 まずは Java のプロセスIDを取得するところから始める。jps で取得できる。 $ <JAVA_HOME>/bin/jps -l 主要なオプションは以下の通り(SunVM)。 オプション 説明 -m main メソッドに渡される引数を出力 -l アプリケーションの主要なクラスのフルパッケージ名、またはアプリケーションの JAR ファイルへのフルパス名を出力 -v JVM に渡される引数を出力 JDK7 からは JRockit と統合されたため jcmd が使えるので以下でもプロセスIDを取得できる。 $ <JAVA_HOME>/bin/jcmd または、単に ps コマンドで取得するでもよい。 $ ps -ef | grep -v 'grep' | g

    Java スレッドダンプとの戯れ方 - A Memorandum
  • 単体テストを簡単に Unitils 〜アサーションユーティリティ〜 - A Memorandum

    前回の blog1.mammb.com では、Unitils の導入とユーティリティである assertReflectionEquals について見てきました。今回はもうすこし詳しくUnitils のユーティリティについて見ていきます。 並び順を許容する LENIENT_ORDER オプション assertReflectionEquals ではオプションを指定することにより、ゆるいテストを行うことができます。ゆるい条件でテストを記述しておくことで、テストケースの保守を容易にすることができます。 コレクションなどに含まれる要素を比較したいが、その並び順については考慮する必要が無い場合には、比較モードとして LENIENT_ORDER を指定することでゆるい比較が実現できます。 List<Integer> list = Arrays.asList(3, 2, 1); assertReflect

    単体テストを簡単に Unitils 〜アサーションユーティリティ〜 - A Memorandum
  • 単体テストを簡単に Unitils 〜データベーステスティング 1 〜 - A Memorandum

    前回の blog1.mammb.com では、Unitils アサーションユーティリティについて見てきました。今回は Unitils のデータベーステストのサポートについて見ていきます。 Unitils のDBサポート環境構築 Spring + Hibernate の環境で、Unitils のDBサポートを見ていきます。まずは、環境構築から行います。前回までは Unitils 2.4 を使用していましたが、ここから3.0を使用していきます(特に理由はありません)。 前回までと同様 Maven にてプロジェクト作成します。以下のように指定し、その他はデフォルトを選択します。 > mvn archetype:generate Define value for groupId: : etc9 Define value for artifactId: : unitils-db 続いて作成された p

    単体テストを簡単に Unitils 〜データベーステスティング 1 〜 - A Memorandum
  • JUnit4.7 の新機能 Rules とは〜その2 - A Memorandum

    先日は、@Ruleの使い方として、VerifierとTemporaryFolderについて見てきました。日はその他のRuleについて見ていきます。 Timeoutルール org.junit.rules.Timeout は、全てのテストメソッドに、同じタイムアウト時間を設定します。コンストラクタにてミリセカンドでタイムアウトを設定します。 @Rule public MethodRule globalTimeout= new Timeout(20); @Test public void testInfiniteLoop() { for (;;) { ・・・ } TestNameルール org.junit.rules.TestNameルールは、テストメソッドの名前を取得可能にするルールです。以下の例では、testA というテストメソッド名が評価されています。まあ、何に使うの?という所はあります

    JUnit4.7 の新機能 Rules とは〜その2 - A Memorandum
  • Scalaのパッケージ管理システム sbazとは - A Memorandum

    Scala Bazaar Systemとは Scala Bazaar System、略してsbazはScalaの提供するパッケージ管理システム。新しいプログラムのインストールやアップグレードを自動化でき、パッケージの配布を容易にする。CPANやaptみたいな感じ Scalaのインストール 念のため、Scalaのインストールから順を追って、、 http://www.scala-lang.org/からDownload Scalaのリンクを辿り、実行ファイルダウンロード&解凍 ここでは解凍したファイルを C:\Program Files\scala に配置 PATH環境変数の追加 binディレクトリのフルパスをPATH環境変数に追加する。一時的であれば、コマンドプロンプト立ち上げて、 set path=%path%;C:\Program Files\scala\bin または、[システムのプロパ

    Scalaのパッケージ管理システム sbazとは - A Memorandum
    dann
    dann 2009/09/24
    おぉ、よさそう
  • 1