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

鼻から悪魔

久しぶりに鼻から悪魔なバグに遭遇してしまった.鼻から悪魔(nasal demons)に関しては以下のURLが詳しい. http://catb.org/~esr/jargon/html/N/nasal-demons.html http://www.st.rim.or.jp/~phinloda/cqa/cqa7.html引用すると When the compiler encounters…

ffmpeg で連番画像から 動画を作成

/tmp/out000001.ppm,/tmp/out000002.ppm と続く連番画像列から,動画を作成する方法 ffmpeg -i /tmp/out%06d.ppm -aspect 4:3 -f avi -vcodec mpeg4 -vb 5000k -r 10 test.avi"-r" でフレームレートを指定できる.上記例だと 秒10コマの動画が出来上がる.

Linus たのしそう

linux v2.6.15-rc5 の changelog より引用 commit 436b0f76f2cee6617f27a649637766628909dd5d Author: Linus Torvalds Date: Sat Dec 3 21:10:42 2005 -0800 Linux v2.6.15-rc5 Hey, for no other reason than the fact that I'll be off-line for a week. O…

elisp の構文

catch throw elispは関数型言語だけど,やっぱり手続き的な書き方もできるみたい. (catch 'loop (throw 'loop 返り値) ) save-excursion 最初に point とか mark を保存して, progn と同様にシーケンシャルに処理をおこなう.処理終了後は保存して…

emacs の Wanderlust で ssh ポートフォワードを使う.

mew だと,デフォルトで ssh のポートフォワードに対応できているが, wanderlust は対応していないっぽい.むむ.というわけで elisp の勉強がてら,mewの実装を参考に wanderlust 用のものを 作ってみた.まずmewのソースを読む. mew のsshによるポートフ…

lftp で ftp のミラーリング

lftp にて mirror コマンドを使うとミラーリングができる. open ftpサーバ名 cd サーバ側のコピー元ディレクトリ lcd クライアント側のコピー先ディレクトリ mirror -e"-e" オプションを付けると サーバ側で消されたファイルは,クライアント側でも消される…

svn にて "svn: Can't recode string" というエラーがでる.

"svn: Can't recode string" というエラーはファイル名の文字コードを変換する際に発生するエラーらしい.要は,リポジトリ上のファイル名が日本語とかになっているため,ローカルの環境に同名のファイルを作成できないということ.回避するには $ export LA…

svnserve をinetd経由で起動する方法.

svnのサーバを立ち上げる方法.svnserve を inetd 経由で起動するのが簡単らしい. svn stream tcp nowait username /usr/sbin/tcpd /usr/bin/svnserve -i -r /path/to/reposこの設定で username 権限で /path/to/repos 以下のリポジトリを ポート3690番経由…

iMac G5が当たったらlinux入れてHDDレコーダーにします.

アップルのiMac G5欲しい!っす.はてなにて”アップルのiMac G5欲しい!”キャンペーンが行われているらしい.忙しくて,チェックする暇が無かったのだが,どうも12月7日までに日記に”アップルのiMac G5欲しい!”と書き、さらに”iMac G5が当たったら、○○○に使…

distcc と ccache を混ぜる

distcc と ccache を使えるように設定しておいて,あとは export CCACHE_PREFIX=/usr/bin/distccとするだけ.

distcc を ssh経由で使う.

distcc を ssh 経由で利用する方法.distccd が ssh 経由で起動されるため,わざわざデーモンを起動する必要がない. $ export DISTCC_HOSTS="localhost @pc01 @pc02 @pc03" $ export DISTCC_DIR="/tmp/.distcc_dir"あとは CC や CXX を distcc に変えるだけ…

svn で$Id:$などを展開

http://developer.momonga-linux.org/~zaki/svnfaq-mo.html $ svn propset svn:keywords Id hoge.c

gnuplot で 3次元ベクトル場を描画

set arrow from x1,y1,z1 to x2,y2,z2というファイルを用意し load コマンドで読み込んだ状態で splot を実行するとベクトル場が描画できる.

linux で 動画を変換

input.mpg を test.avi に変換する場合. $ ffmpeg -i input.mpg -s 640x480 -b 1200 -aspect 4:3 -ac 2 -f avi -vcodec mpeg4 -acodec ac3 -ab 192 testこの例だと,変換先の動画ファイルは,映像はmpeg4,音声はac3 で保存される.ffmpeg がどの形式をサポ…

emacs でコメント行を整列

コメント文の先頭カラムを揃える方法 C-x ; でカラムを指定し,M-; で整列する.

makefile で basename, dirname を使いたい

つぎのように書けば良い. $(@D) dirname($@) $(@F) basename($@)

makefile の自動変数

makeで使える自動変数のメモ. $@ The file name of the target $ The name of the first prerequisite libhoge.a: hoge.o huga.o ar curs $@ $<は libhoge.a: hoge.o huga.o ar curs libhoge.a hoge.o huga.oと展開される.

デバッグ情報付きで debian のパッケージを作る.

行儀が良いパッケージなら環境変数 DEB_BUILD_OPTIONS で nostrip を指定して dpkg-buildpackge すれば良いみたい. $ export DEB_BUILD_OPTIONS="nostrip" $ dpkg-buildpackge -us -uc -rfakeroot

トランザクション

「トランザクションとは,不可分な一連の操作をまとめた単位」トランザクションって何?と聞かれたら,ここまでは,さくっと答えられないとエンジニアとして問題あり.で,さらに「トランザクションは, ACID性と呼ばれる四つの性質を満たす必要がある.」な…

スピンロックから始めるLinuxカーネル入門

http://hira.main.jp/wiki/pukiwiki.php?%A4%E8%A4%A6%A4%B3%A4%BD

C でバックトレース表示

普通のやつらの下を行け: C でバックトレース表示 - bkブログより glibc に含まれる backtrace() と backtrace_symbols_fd() を使うと実行中の C プログラムのバックトレースを表示できます とのこと.デバッグ用マクロとかで使うと便利そう.ちなみに,シグ…

samba 3.0 系で日本語ファイル名を使う.

smbの3.0系で,クライアント側に表示する文字列はSJIS(cp932),サーバ側のファイルシステム上のファイル名はEUC(eucjp-ms)にする場合の設定 dos charset = cp932 display charset = cp932 unix charset = eucjp-ms

X windowで"windowsキー"を使う方法

X windowsでwindowsキーを使う方法.現在xorg 6.8.2を使っているが,デフォルトではwindowsキーが使えない.たとえば rdesktop でwindowsキーを押下すると, WARNING: No translation for (keysym 0x0, NoSymbol)という警告が出まくる.ためしに,xevでwindo…

debian で /tmp 以下を定期的に掃除する.

redhat系のディストリビューションでは tmpwatch というサービスが定期的に/tmp以下を掃除してくれる.debianでは tmpwatch というパッケージは無く,代わりに tmpreaper というパッケージを使う.インストールは以下の2step $ sudo apt-get install tmpreap…

debian で /tmp 以下を起動時に削除しない

debianではシステム起動時に /etc/init.d/bootclean.sh が実行され,/tmp 以下のファイルを削除してくれる.redhat系のディストリビューションになれている人に取っては全くもって大きなお世話的な仕様だ.googleで調べた結果,どうもデビアン的には /tmp は…

icc の最適化を部分的にoff

iccの最適化のバグを見つけてしまった.boost/random.hpp を使った乱数生成処理を"-O2"とか"-O3"を付けてコンパイルすると,乱数の値が常にゼロになってしまう."-O0"ならば正しく乱数が生成できるので,最適化のバグであることは間違いない.iccのバージョ…

Test-And-Set操作について

test and set 操作について復習をしたのでメモ.test and set (TAS)操作では,次のような処理をアトミックに行う. int test_and_set(int *mem){ old = *mem; if (0 == *mem){ *mem = 1; }else{ /* do nothing */ } return old; }例えば 2.6系のlinux (i386)…

コンパイラを切り替える方法.

コンパイラを切り替える方法には色々あるが,以下のような設定ファイルを作って source で読み込むのが一番便利そう. source /opt/intel/idb/9.0/bin/idbvars.sh source /opt/intel/cc/9.0/bin/iccvars.sh source /opt/intel/fc/9.0/bin/ifortvars.sh expor…

debian で intel compiler を使う(その2)

intelコンパイラのiccやifcをデビアンで使う方法.debian で intel compiler (icc) - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -の続編.iccやifcは頻繁にバージョンが上がるので,パッケージを変換するスクリプトと,インストール後設定ファイ…

grub-install でエラーがでる。

パーティション構成を変更する際 grub-installを行うと"The file /boot/grub/stage1 not read correctly."とエラーがでる場合の対処方法。このエラーは /etc/mtab と パーティションの内容に不一致がある場合に生じる。面倒だったら /etc/mstab を一度消して…