タグ

ブックマーク / nyaruru.hatenablog.com (4)

  • Windows の IME を変換エンジンとして使う - NyaRuRuが地球にいたころ

    プロセス分離型の IME の開発に携わった以上,一度は試してみたいと思っていた奴,の基礎実証実験っぽいのをやってみた.Windows向け IME を (とくに個人規模で) 作っている人にはもしかしたら役に立つかも. テーマ メインテーマは,Windows で IME を実装するとして,バックグラウンドで別 IME を有効化し,その IME に対してクエリを投げ,返ってきた結果を利用するための技術的な枠組みについて.ここではプロセスモデル的に Windows で可能かどうかという点のみを考える. 大まかな流れ 今回試した手法では,Windows 8 で TSF に追加された ITfFnSearchCandidateProvider という仕組みを活用する.このインターフェイスは,複雑なことはできない反面,1) 文字列を投げて文字列のリストが返ってくるというシンプルな仕組みである,2) ステー

    Windows の IME を変換エンジンとして使う - NyaRuRuが地球にいたころ
  • write barrier - NyaRuRuが地球にいたころ

    9 Generational GC (中略) さて、Schemeにおいて、ユーザプログラムがconsやvectorのみを用いる限り、旧→新のポインタは決して生まれない。 Set-car!などの破壊的代入を行なって初めて生じるものである。コンパイラが、破壊的代入の際に必ずGCに知らせる(書き換えられるオブジェクトを GCに教える)ようにすれば、GCが旧→新のポインタ全てを手早く見つけることができる。このように、メモリオブジェクトへの書き込みの際に特別な処理を行なう機構をwrite barrierという(注)。 (中略) 10 Incremental GC (中略) Generational GCと同様に、write barrierが必要になる (ここではmark and sweepを仮定する)。 Write barrierがないと破綻する例を図8に示す。マークフェイズの途中でaが黒になった時

    write barrier - NyaRuRuが地球にいたころ
  • SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ

    Windows 7 以降の OS では,SSD 上のボリュームに対してデフラグがスケジューリングされません.これと同様に,ドライブ特性に応じた動作戦略の変更をアプリケーションでも行いたいこともあるでしょう.そのような場合にアプリケーションに組み込めるように,簡単なサンプルコードを書いてみます. 元ネタは, Windows 7 Disk Defragmenter User Interface Overview - The Storage Team at Microsoft - File Cabinet Blog - Site Home - TechNet Blogs で解説されているアルゴリズムです. 以下,物理ドライブ "\\.\PhysicalDrive0" について,"no seek penalty" かどうかと,"nominal media rotation rate" かどうかの取

    SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
  • 日記の登録ボタンを押してみたら,はてなが長時間のメンテナンス中だったときするべきこと - NyaRuRuの日記

    ……いま登録ボタンを押した記事,バックアップ取ってないんだが. 注意:ここで普段なら「戻る」で問題ないのだが,メンテナンス中は色々な URL へのアクセスが軒並みエラーページを返すせいか,戻っても画面が真っ白になってしまったのだ.予告メンテナンスなら書き込みフォームにも一工夫欲しいように思う. アレの出番 タスクマネージャを起動 タスクマネージャから iexplorer.exe を選び,右クリック→「ダンプ ファイルの作成」 バイナリエディタでダンプファイルを開く バイナリエディタは Shift-JIS, EUC-JP, UTF-8, UCS2 あたりのエンコーディングでの文字列検索をサポートしているものがおすすめ. 今回は DANDP Binary Editor を使わせていただきました.感謝. 執筆中のデータらしきものを探す 投稿内容に含まれていた特徴的な文字列で検索する. エンコーデ

    日記の登録ボタンを押してみたら,はてなが長時間のメンテナンス中だったときするべきこと - NyaRuRuの日記
  • 1