2007-06-01から1ヶ月間の記事一覧

研究ネタが欲しい

僕は、課題を解くための創造性を与えられた代わりに、自分で課題を作る創造性が欠如しているらしい。プロコン時代もそうだった。競技部門以外にも課題部門や自由部門があったが、何も面白いテーマが見つからず、またテーマ探し自体が苦痛で仕方なかったから…

PyDotよりPyGraphviz

PyDotを使ったら、 digraph G { A [label="hoge"]; A -> B; }をparseして状態をリストしたら、['"A"', 'A', 'B']となった。ソースを見たら、バグではなくて意図的にしているらしいのだが、なぜ '"A"' になるのか判らない。 PyGraphvizを使うと、普通に ['A',…

.vimrc晒し

id:viverさんがvimmerなことが判ったので、便乗して.vimrc晒し。 環境によって違うんだけど、どの環境でもほぼ同じoptionは、Web上に置いてる。 知らないオプションがあったら直ぐに :help するべし。 syntax on filetype plugin indent on set showcmd set …

tmpfs

/var/tmp と /tmp をtmpfsにして、swapを大きめにとっておくと良い感じな希ガス。

Mercurial

日本語のコミットログを試したら、怒られた。と思ったら、HGENCODINGという環境変数でutf-8を指定したら行けた。 個人用途だと、ロケールから勝手に設定してくれた方が使い勝手良いけど、他人と共用するって事を考えたらデフォルトをasciiに限定する方が良い…

HDD系ツール

Ubuntu Desktop CD で最初からつかえるツールbadblocks : セクタのスキャン。HDDを買ったら破壊型(パターンを書いて読んで化けてないか)でフルスキャンを丸一日かけておけばOKshred : HDDの内容を、ランダムパターンとかいろいろを重ねがきして復元しにく…

screen with CJK

http://www.dekaino.net/screen/ CJKのあいまい幅文字に対応するpatchってあるのね。 puttyもUTF-8(CJK)にして、vimもset ambiwidth=doubleにしてあるけど、screenだけが対応してなかったので要チェック。本家に反映されないかな・・・。 あとは、Vimのキーバイ…

メモリを開放しないスタイル

デーモンのように動き続けるプログラムではなく、起動して、処理して、終了するだけのプログラムでは、メモリを開放しなくてもいい。 main()の最後や、シングルトンのデストラクタで律儀にメモリ開放するのは、引っ越したら取り壊す家を綺麗に掃除するのに似…

envコマンド

python等でプログラムを書くとき、よくshebangを使う。#!/usr/bin/python って感じに。でも、#!/usr/bin/env python とやっているスクリプトを見た。便利。 例えば、/usr/bin/python -> /usr/bin/python2.3 で、/usr/bin/python2.4はちゃんとインストールし…

初期化されないメモリ空間確保が必要

stream(ファイル、socket、他にももろもろな、stream型のi/o)からinputするときの受信バッファとして、「最大でN[byte]必要ってことはわかってるんだけど、実際にはNよりずっと少ないことが多い」という場面は良くある。 で、仮想メモリ空間の広さに比べて…

Vimで最後に改行をつけたくない

SuffixArray用のサンプルデータを弄るとき、Vimで保存したら勝手に終端に改行文字をつけやがる。 で、対策を探したら見つけた。 http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070214#p02 そうそう、:set binary して :set noendofline だ。 ちゃ…

音声バッファ

http://d.hatena.ne.jp/shotaro_tsuji/20070602/1180785883 出来る限りバッファのアドレスをセットするまでの時間を削ったけどもう無理だわ。操作中だけでも割り込み禁止に出来たらいいのに・・・ そんなにレイテンシ必要なしくみなんだろうか?http://d.hat…

自分のメンバ関数をtransform()とかに渡す

C++

方法を探していたら、cppllのML過去ログから発見! http://ml.tietew.jp/cppll/cppll/article/8913 ・・・2003年、「思兼」って俺だなぁ。こんなコメントした覚えあるなぁ。 とりあえずサンプル. #include <vector> #include <algorithm> #include <functional> struct Hoge { using namespace </functional></algorithm></vector>…

メモ:boost::progress_timer

C++

何かの時間を計るときに便利。2回時間を計って差分を表示という一連の手順を、コンストラクタとデストラクタでやってくれる。 http://www.boost.org/libs/timer/timer.htm

ReadyBoostもどき

使ってなくてランダムリード・ライトが高速なフラッシュメモリがある場合は、それをswapに割り当てるとReadyBoostもどきになる。 ただ、WindowsVistaのReadyBoostは、フラッシュメモリが壊れてもシステムが落ちないように設計されているらしいので、その点で…

pImplパターンとtemplateと

C++

pImpl作っててぶち当たった問題。ドキュメントをIteratorで渡すtemplateメソッドとしてコンストラクタを定義していたんだけど、pImpl使っちゃうとヘッダファイルにコンストラクタ置けないorz で、templateをソースファイルに書くと、templateの利用者がどん…

OOPと参照ベースの相性の良さ

C++

今週も、「SA作ってみよー」の流れで行ってる。 今はドキュメントを元にSAをメモリ上に構築して、そこから検索しているんだけど、もうそろそろSAを保存してあとから使いたい。 で、Javaならクラスメソッドで class Sa { public static Sa fromDocument(Input…

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。