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

crontab 中の %

crontab (5) 中のコマンド部分の % 記号は特殊な意味を持つ.最初の % までのコマンドが実行され,2 個目以降の % は改行に変換されてから実行されたコマンドの標準入力に渡される.例: 0 7 * * * mail -s "Good Morning" mary%Mary,%%Good morning and I lo…

drupal を debian で始める

インストール # apt-get install drupal5 (Configure database for drupal5 with dbconfig-common? -> YES) (Database type to be used by drupal5: -> mysql) (Password of your database's administrative user: -> mysql の root のパスワード) (MySQL ap…

vim tips

v vim

:Explore でカレントバッファのファイル相対の file explorer が開く. :Sexplore で split する. :Explore は netrw のヘルプで説明されている(:help netrw-contenst) netrw でリモートファイルが編集できる. $ vi rsync://example.com/.bashrc

vim の project プラグイン

v vim

:Project で呼び出す. .vimprojects がデフォルトでは使用される. .vimprojects: Test=~/test CD=. in=enter.vim out=leave.vim filter="*" flags= { main.hs sub.hs } キー \r ディレクトリのファイルをプロジェクトファイルに挿入 \C エントリ作成ウィザ…

vim-addons コマンド

Debian では vim-addons コマンドで vim-scripts パッケージで用意されたプラグインを ~/.vim ディレクトリ以下にコピーしたり,~/.vim ディレクトリ以下から削除したりできる. $ vim-addons status $ vim-addons install bufexplorer $ vim-addons remove …

haskell の Data.IORef

IO モナド中で更新できる値を扱う. main = do ior <- newIORef 0 writeIORef ior 5 v <- readIORef ior print v -- => 5 modifyIORef ior (+ 1) v <- readIORef ior print v -- => 6

haskell で状態更新ループ

parsec で式のリストを作り,それを先頭から順に読んで状態を更新していくループを実装してみる.仕様: 空白を含む数字の列を1桁の数列とみなし,それを順に足しあげていく.加算の結果を状態とする.まず1桁の数字を読んで文字として返すパーザ: digit_ws…

trac のソース表示での TAB

trac のソース表示での TAB はデフォルトでは 8 spaces になっている. これを変更するには conf/trac.ini の [mimeviewer] セクションの tab_width を変更すればよい.

vim のシンタックスカラー調整

v vim

まず TERM を xterm-256color にする. putty の Cursor Color を 128 128 128 (or 255 135 0) にする. vim で :colorscheme desert256 とする(desert256.vim は vim.org からとってくる). 見やすい色設定 ctermfg=117 [desert256 の Comment; うすい水…

terminal における 256 色

環境変数 TERM=xterm-256color Putty の設定「xterm 256 色モードで使うことを許可する」 vim screen [参考] cl.pocari.org - PuTTY + screen の表示を 256 色にする方法 frexx.de

sshfs

FUSEを利用したssh経由でのリモートディレクトリのマウント. % sshfs host.example.com: dir % fusermount -u dir

Linux で SHOUTCAST などを聞くためのブラウザ(プレーヤー)

streamtuner

perl の YAML.pm と Unicode

YAML::DumpFile で utf8 フラグが立った文字列をダンプすると 'Wide character ...' と警告が出る(どうやって防ぐ?) use utf8; use YAML; $a = '漢字'; YAML::DumpFile('a.yaml', $a); 上のコードで a.yaml は utf-8 で出力される.次に読み込んでみる. …

python でのスクリプトファイルのインクルード

f = open('../../../pylib/common.py') if (f): exec(f) f.close() う〜む...あった. execfile('../../../pylib/common.py')

SCons Tips

builder method で,ソースファイルの共通のディレクトリを指定できる. env.Program('hello', ['foo.c', 'bar.c'], srcdir = 'src') このことはドキュメントには書かれていない.man scons を参照せよ.

SCons での裸の builder method

SConstruct で Environment オブジェクトのメソッドでない builder method を記述できる. Program('hello', ['hello.c']) このとき scons を起動するマシンに最適化されたデフォルトの Environment オブジェクトに対して builder method が呼び出される.こ…

はみ出し銀行マンの投資戦略―初めて明かすオレ流資産運用術

はみ出し銀行マンの投資戦略―初めて明かすオレ流資産運用術作者: 横田濱夫出版社/メーカー: カンゼン発売日: 2007/04/22メディア: 単行本(ソフトカバー) クリック: 4回この商品を含むブログ (5件) を見る 分散ポートフォリオを一気に完成させようとしては…

SCons における Options

scons コマンドのコマンドラインで指定する VAR=val 形式のビルドオプションは ARGUMENTS という辞書に入れられるので利用できる. if (int(ARGUMENTS.get('debug', 0))): env.Append(CCFLAGS = '-g') これでは面倒なので Options というクラスが用意してあ…

SCons と環境変数

SCons がツールを呼び出すときの環境は scons コマンドを呼び出したときの環境とは関係が無く,$ENV という Construction Variable に格納されている辞書から構成される新しい環境である. 特に,PATH 環境変数もユーザが .bashrc などで設定したものでなく…

SCons における Construction Variable

Construction Variable はビルドツールの呼び出し方法を制御する. Construction Variable の集合が Environment である. Environment とは Construction Variable=Value pair の集合 + Builder Methods 作成: env = Environtment(VAR1 = 'val1', VAR2 = '…

debian でのフォント構成の更新

# dpkg-reconfigure fontconfig-config # dpkg-reconfigure fontconfig

SCons でのコンパイルオプション

ops = Option('config.py') ops.Add('CONFIG_SUPPORT_HTML', '(help string)', 0) env = Environtment(options = ops, CPPDEFINES = { 'CONFIG_SUPPORT_HTML' : '${CONFIG_SUPPORT_HTML}' }) env.Program('hello.c') config.py が無い場合 -D CONFIG_SUPPORT…

perl における例外の基礎

croak と eval を使用. use Carp; sub f { ... if (something is bad) { croak "fail"; } ... return something_good; } ... my $r = eval { f(); }; if ($@) { croak "f() fails."; } ... 参照 「Perlベストプラクティス」13章 エラー処理

perl の LWP でのタイムアウト

$ua->request() でタイムアウトすると,'500 read timeout' のエラーを持つ response が返される. $ua->request() で接続できないときには,'500 Can\'t connect to' のエラーを持つ response が返される.

perl で euc-jp の端末に出力

perl で euc-jp の端末に出力する. binmode STDOUT, ':encoding(euc-jp)';

SCons 疑問

次がうまく動作しない. $ ls SConstruct src/ $ ls src SConscript hello.c $ cat SConstruct SConscript('src/SConscript', build_dir = '../build') $ cat src/SConscript Program('hello', ['hello.c']) $ scons -Q scons: `.' is up to date. 以下のよ…

SCons 最初の一歩

Makefile ファイルにあたるのは SConstruct ファイル.中身は python のプログラム. 参照 SCons User Guide 0.97, Simple Builds hello world SConstruct: Program('hello', 'hello.c') そして, $ sconsとすると,Linux では hello ができ,Windows では h…

vim で新しい filetype 判定を追加する

vim

~/.vim/filetype.vim を作成する. if exists("did_load_filetypes") finish endif augroup filetypedetect au! BufNewFile,BufRead SConstruct setfiletype python augroup END 参考 vim で :help new-filetype

CppUnit

CppUnit の使い方 #include <cppunit/extensions/HelperMacros.h> #include <cppunit/ui/text/TestRunner.h> class TestSimple : public CPPUNIT_NS::TestFixture { CPPUNIT_TEST_SUITE(TestSimple); CPPUNIT_TEST(testTest); CPPUNIT_TEST_SUITE_END(); public: void testTest(); }; void TestSimple::testTest() { CPPUNIT_AS…</cppunit/ui/text/testrunner.h></cppunit/extensions/helpermacros.h>

CUnit

CUnit の使い方 #include <CUnit/CUnit.h> #include <CUnit/Basic.h> void test_sample(void) { CU_ASSERT_EQUAL(1, 1); } static CU_TestInfo g_test_suite[] = { { "test_sample", test_sample }, CU_TEST_INFO_NULL, }; static CU_SuiteInfo g_suite[] = { { "test_suite", 0, 0, g_test</cunit/basic.h></cunit/cunit.h>…