2007-01-01から1年間の記事一覧

ノート用マウス

VX Nano Cordless Laser Mouse for Notebooks MX™ Revolution VX Revolution™ ノートPC用にLogicoolのマウスが欲しいと思っています。しかし、やっぱりLogicoolの物は高い。Microsoftのも悪くないと思うんですが、それでもやっぱりLogicoolの製品が欲しいで…

テストコードほぼ完成っと

hex

ドキュメントクラスのInsert/Delete/Replace関数それぞれのテストが完了。見つけたバグは3つほど。再帰を使ってパターンを列挙している。コードのイメージとしては次のような感じ。パターンを列挙しつつ、状態保存→Insert→比較→再帰呼び出し→返ってきたら状…

内部コード用Fuzzer書いた

hex

プロジェクトを止めたままにするのもよくないので、やっとこさテストコードを書き始めたところ。ドキュメントインターフェースクラス用のFuzzerをとりあえず作成。とりあえず全パターンの検査・・・っと思ったらNULLチェックが抜けていた。急いで修正。コー…

ドキュメントクラス作成中

hex

久しぶりにコードが書け、Undo/Redoの実装が「とりあえず」完了したので、次はユニットテスト。ついでなので、ドキュメントクラス用のFuzzerも作ってみたいところです。

CppUnit

第2回 C++アプリケーションの効率的なテスト手法(CppUnit編) (1/4):連載 C++開発者のための単体テスト入門 - @IT この記事を見て、じわじわとバイナリエディタのドキュメント用のテストクラスを実装中。案外、テストのために実行させる処理数が多くて大…

お手軽逆アセンブラを作り

objdumpとRubyでお手軽に自分用の逆アセンブラ・解析ツールを作ろう!って思ったのですが、世の中そう思い通りに事が運ぶわけもなく、肝心の逆アセンブルおよび解析でどう情報を収集していこうかと手間取っているところです。実装にまだ時間もかかります。か…

気分転換にWBかな

Will氏に触発され、私も気分転換に、Wizard Bibleの記事でも書いてみようかと思ってみたり。ネタというと、objdumpをスクリプト言語から利用する汎用逆アセンブラの作成なんていかがでしょう。Windows PE、Linux ELF対応はもちろんで、何か変わった機能を実…

エディタのUndo/Redoにスナップショットはないのか?

hex

バイナリエディタに実装するとは限らず、テキストエディタのUndo/Redoにスナップショットのような機能があったらいいなと思ったことがないでしょうか? Visual Studioでコードを書いて、数十回Undoしてコードを見直し、そしてRedoで最新の状態に戻そうとした…

「上書き保存」できないバイナリエディタに意味はあるか

「保存するとUndo/Redoがクリアされる」という仕様は、どう考えても使いにくい。普通のファイル編集について想像するから、この仕様だと使いづらいと思えるのかもしれない。 それなら逆に「普通に保存できないバイナリエディタ」について考えてみよう。「普…

PieceTableをUndo/Redoの関係

hex

ここ数日、ドキュメントクラスのファイル保存と、Undo/Redoの設計・実装について考え中。FileMappingとPieceTableを使ったファイルの読み込みとUndo/Redoの実装は簡単そう。Undo/Redoで扱うのは、削除か挿入か・位置・長さだけで済み、挿入・削除ごとにデー…

耐久プログラミング, PieceTable実装OK

hex

夏休みに入ったので、友人と一緒に「耐久プログラミング」というものをやっている。48時間プログラムを組んだり、何か作ったり好きなことをするというもの。ルールはかなり緩やかで、仮眠OK、飯・風呂等の理由で帰ってもよい。まぁ、とにかくまったりとコー…

COM系の書籍が手に入らない

Essential COMとInside COMが手に入らないので、とりあえず復刊ドットコムでリクエストしてみました。他にも、Effective インサイドCOM・COMは探しても確実に購入できるところがなさそう(少なそう)だ。Effective COMは確か今年の初め、Amazonで最後の一冊…

.vimrcに・・

vim

vimの設定ファイルである.vimrcの最終行に間違えて:qを追加し、見事にはまってしまいました。起動した瞬間に終了という、それなんて嫌がらせ?(設定ファイルをいじる嫌がらせは他にも多くあるはずだ!)。

作業内容を日記に書こう

netPlant開発者さんの日記(id:netPlant:20070323#1174661715)を見て、その日に何をした・どんなコードを書いたか、などの作業内容を日記に書こうと思い始めてきました。最近というか、昨年ごろから日記に書く内容が、情報収集したサイトのリンクばかりになっ…

最近の作業

hex

PieceTableクラスのGet,Deleteの実装してました。Get関数をテストすると、長さは正しいのに比較部分で失敗が。テストコードで、PieceTable::Getで取得したデータにNULL文字が含まれないにも関わらず、比較にstd::string::compareを使っていたのが問題でした…

目指せvim使い

vim

新しい情報と言うわけではありませんが、はてな技術発表会とは - はてなキーワードで、id:secondlifeさんのvimネタな動画を発見しました。はてなが動画こういう情報まで公開しているとは知りませんでした。

PieceTable実装の真っ只中

ここ一週間ほど、バイナリエディタで使える状態ではなく、汎用性のあるC++向け「テンプレートコンテナクラス」としてのPieceTableを実装中です。相変わらず忙しい&時間を無駄しすぎているせいで、ちょっとずつしか進んでおりませんが(苦笑)。 今日は単体…

というかPieceTable

hex

巨大なファイルの編集とパフォーマンスについてを前回書きましたが、この構造ってPieceTableでしたorz 詳しくは、INABAさんの日記の方をご覧ください。 http://www.kmonos.net/wlog/39.php http://www.kmonos.net/wlog/40.php

Boost::spirit

最近は言語処理の方にBoost::spiritを使って挑戦しています。セマンティックアクションでシンボルテーブルを作成していますが、パースの段階で定義済みのシンボル化チェックもしたいと思うとなかなか難しく・・・。 目的はコード生成なのですが、それに至る…

巨大なファイルの編集

hex

バイナリエディタ開発関連のお話です([hex]カテゴリ)。さて、今回はファイルの編集と、巨大なファイル編集時のことについて。 http://www.catch22.net/tuts/bigmem01.asp http://www.catch22.net/tuts/bigmem02.asp 読まなくてもわかるように簡単に説明し…

Let's vi

vim

最近Windowsでvimを使うのにはまってます。Visual Studioで作成したソリューションとプロジェクトは、vim側からバッチファイルを実行してビルド。バッチファイルの内容は、vcvars32.batをcallコマンドで実行してから、devenvを実行してソリューションをビル…

昨日のNTT東の回線ダウンについて

3秒で2000ルータがダウン、NTT東フレッツ障害の原因は − @IT 昨日のNTT東の回線障害について。ネットがつなげないということで、昨日は学校に泊まって作業しようと思ったものの、11時前に復旧したので結局帰ることに。

Nepenthes稼働

昨日、久しぶりにハニーポットのNepenthesの稼働を開始しました。二日程度で既に20以上捕獲しています。

はてな始めました

なかなかいいですねヽ(´ー`)丿

はてなダイアリーへようこそ!

このページはあなた専用の日記(ブログ)です。*1さっそく「日記を書く」をクリックして最初の記事を書いてみましょう。はてなダイアリーの一番簡単な使い方を知りたい方は、以下の動画をご覧ください。(再生ボタンをクリックすると、はてなダイアリーの使…