タグ

ブックマーク / 0xcc.net (14)

  • Migemo: ローマ字のまま日本語をインクリメンタル検索

    Migemo とは? Migemo はローマ字のまま日語をインクリメンタル検索するため のツールです。かな漢字変換をすることなく日語のインクリメン タル検索を快適に行うことができます。 新着情報 2004-06-28: 関連リンク集に fub と XUL/Migemoプロジェクト を追加しました。 2004-01-28: yoshi223氏による MigemizeExplorer が公開されました。 Windows の「エクスプローラーにおいてローマ字入力のみで日語 ファイルをインクリメンタルに検索/選択することを可能にする」 ツールです。 2003-05-29: Migemo 0.40 を公開 連文節の検索に対応しました。 C/Migemoに対応しました。 Emacs側でのキャッシュに対応しました。 (白井秀行さんによる改良) Ruby 1.8 でも動くようにしました。 その他、細

    toton
    toton 2010/04/20
  • Python の unicodedata モジュール - bkブログ

    Python の unicodedata モジュール Unicode のちょっとしたテキスト処理をしようと思い、 Python の unicodedata モジュールを使ってみました。これは非常に便利です。 unicodedata は Python に標準で付属するため、別途のインストールは不要です。次のようなことができます。 文字の名前を取得する 文字の名前を取得することができます。Unicode の文字にはすべて一意の名前がつけられています。ソースコード内で Unicode のコードポイントを使うときは U+20AC (EURO SIGN) などとコメントをつけておくと便利でしょう。 >>> unicodedata.name(u'A') 'LATIN CAPITAL LETTER A' >>> unicodedata.name(u'あ') 'HIRAGANA LETTER A' 文字の

    toton
    toton 2010/04/09
    Unicode テキスト処理
  • UNIX上で電子辞書を活用しよう

    稿は Software Design誌 1999年9月号に掲載された記事を加筆修正したものです。 内容はかなり古くなっていると思います。 目次 はじめに SDIC 辞書データの入手 インストール 使い方 NDTPD インストール ndtpd.confの準備 ndtpd.confの設定 - ndtpd全 般の設定 ndtpd.confの設定 - 辞書 に関する設定 その他の設定 ndtpdの起動 コラム: 電子ブック と EPWING BookView インストール セットアップ 使い方 コラム: UNIXで百科事典を利用するには 辞書を軽量化しよう squeeze ebzip CSRD インストール ハードディスクに格納する 便利な使い方 Lookup インストール セットアップ 使い方 おわりに コラム: 電子辞書メーリングリスト 参考文献 注釈 はじめに 「そこで辞書だ。凡人には辞書

    toton
    toton 2010/03/01
    EPWING
  • bkブログ

    bkブログ プログラミングやバッドノウハウについてのブログ 2004-2011年に書いていたブログのアーカイブです。 机の上のもののワイヤレス化 - Microsoft Arc Keyboard の導入 iPodは何を変えたのか? 人が問題にぶち当たったときには、どうするか? ソフトウエアの肥大化について、の続き ソフトウェアの肥大化について ある程度の年齢を迎えたプログラマが抱える悩み Unicode の雪だるま 設定ファイルの整理 - Emacs 編 設定ファイルの整理 - zsh 編 パターン、Wiki、XP ~時を超えた創造の原則 マッキントッシュ物語 - 僕らを変えたコンピュータ GNU diff の地味だけど便利な機能 C++ の string と vector の reserve() の挙動 暗号化 - プライバシーを救った反乱者たち Best Software Writin

    toton
    toton 2010/02/23
    高林哲
  • いやなブログ: 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す

    普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセスにちょっかいを出す方法を取り上げたいと思います。 ptrace とは デバッガの理論と実装 に次のような記述があります。 Unix の ptrace() は物のデバッガ API (アプリケーションプログラムインターフェイス) の一例であり、商品に相応しい品質を持ったデバッガをサポートするために設計された、最初の専用 API の1つである。 ptrace はデバッガ用に作られた API のようで

  • objcopy で実行ファイルにデータを埋め込む

    普通のやつらの下を行け: objcopy で実行ファイルにデータを埋め込む プログラムの実行に不可欠なデータをファイルから読み込んで利用することがあります。この方法を用いると、データの更新が手軽にできるという利点がある一方で、単体の実行ファイルで実行できない、データファイルが紛失してしまう、といった問題もあります。 普通のやつらの下を行けの第5回として、今回は objcopy を用いて実行ファイルにデータを埋め込む方法を取り上げたいと思います。 データの埋め込み 小さなデータをソースコードに埋め込むのは簡単です。ソースコード中に埋め込まれている "hello, world" などのメッセージはソースコードに埋め込まれたデータといえます。 一方、画像や辞書などの巨大なデータをソースコードに埋め込むのはそう簡単ではありません。まず、データを文字列などに変換する必要がある上に、変換後の巨大なソー

  • gdb tips - bkブログ

    gdb tips gdb を使う上で便利な tips を紹介します。基的な使い方をマスターしている人向けです。 .gdbinit の設定 ホームディレクトリに .gdbinit を置いておくと、gdb の起動の際に読み込まれます。私の場合は次のような設定をしています。 set history save on set history size 10000 set history filename ~/.gdb_history set print pretty on set print static-members off set charset ASCII set history から始まる最初の 3行は履歴に関する設定です。それぞれ、 gdb のコマンドラインの履歴をファイルに保存する、保存する行は最大 10000 行、ファイル名は ~/.gdb_history 、という意味になります。

  • Text Escaping and Unescaping in JavaScript(Unicode の文字列をエスケープする JavaScript)

    Notes No data is sent to the server (i.e. everything is done in JavaScript). Conversion from Unicode to other encodings such as Shift_JIS can be slow first time as it needs to initialize internal conversion tables. Surrogate pairs in UTF-16 are supported. Try inserting \uD840\uDC0B in the second form. Three-byte characters in EUC-JP are not supported. Links JavaScript Unicode Charts Try GNU Libidn

    toton
    toton 2008/01/27
    JavaScript でいろいろエスケープ・アンエスケープ Unicode UTF-16 UTF-8 Base64 Quoted-printable 数値文字参照 URLエスケープ MIME
  • http://0xcc.net/diary/20040601.html

    toton
    toton 2007/05/09
    UTF-8対応 nkfに、入力の文字コードを推測して表示する -g, --guess というオプションを追加するパッチを送って、取り込んでいただいた。
  • Jockey で Linux のプログラムの実行を記録・再生する - bkブログ

    Jockey で Linux のプログラムの実行を記録・再生する Jockey は Linux のプログラムの実行を記録・再生するツールです。システムコールと一部の CPU命令をフックして実行時の入出力をログに記録することによってプログラムの再生を実現しています。主にデバッグ用途に使います。 インストール Jockey は Debian パッケージになっていないため、ソースコードからビルド・インストールしました。事前に ruby, boost, zlib などをインストールしておく必要があります。 記事を執筆している時点で Jockey の最新版は 0.8.1 です。手元の Debian GNU/Linux の環境ではこのようなパッチを当てる必要がありました。ビルド・インストールは普通に ./configure && make && sudo make install を実行すれば OK

  • statifier で動的リンクの実行ファイルを擬似的に静的リンクにする - bkブログ

    statifier で動的リンクの実行ファイルを擬似的に静的リンクにする statifierは動的リンクされた実行ファイルと共有ライブラリを1つのファイルにまとめるための Linux 用のツールです。動的リンクされた実行ファイルを別のホストにコピーして実行したい、というときなどに使えます。 statifier は現在のところ Debian パッケージになっていないようなので、ソースコードから make && make install します。 % tar zxf statifier-1.6.7.tar.gz % cd statifier-1.6.7 % make % sudo make install 使い方は簡単です。ターゲットの実行ファイルと新しいファイル名をコマンドオプションで指定して statifier を実行するだけで OK です。たとえば /usr/bin/php と共有ライブ

  • 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

    普通のやつらの下を行け: C でバックトレース表示 普通のやつらの下を行けの第2回として、今回は glibc の関数を使って C でバックトレース (スタックトレース) の表示を行ってみます。 バックトレースとは バックトレースとは、大ざっぱに言うと、現在の関数に至るまでの道筋です。たとえば、次の Ruby プログラムを実行すると、 1 / 0 の行で例外が発生して、バックトレースの表示とともにプログラムは異常終了します。 def foo 1 / 0 end def main foo end main この例では main から foo を呼び foo の中の 1 / 0 の部分で例外が発生しています。 % ruby divide-by-zero.rb divide-by-zero.rb:2:in `/': divided by 0 (ZeroDivisionError) from div

  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • いやなブログ: JavaScript でインクリメンタル grep 検索

    JavaScript でインクリメンタル grep 検索 JavaScriptで grep 検索をしようと思い、次のようなコードを書いた。 function grep (pattern) { try { var regex = new RegExp(pattern, "i"); var spans = document.getElementsByTagName('span'); var length = spans.length; for (var i = 0; i < length; i++) { var e = spans[i]; if (e.className == "line") { if (e.innerHTML.match(regex)) { e.style.display = "inline"; } else { e.style.display = "none"; } } }

    toton
    toton 2005/02/26
  • 1