前の月 / 次の月 / 最新

hiChangeLog / 2007-03

2007-03
SMTWTFS
123
45678910
11121314151617
18192021222324
25262728293031

2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12

2007-03-26 Mon

waveの比較演算子==は値を比較している [Igor Pro]

wave同士を比較演算子==で演算することができる。値が同一か異なるかのみを見ているようだ。即ち、別フォルダにコピーしたwaveと元waveの比較はtrueになる。

値が同一であってもwaveとしては異なると見做したい場合はどうすればよいか。フルパスで比較すればいいのかなと思った。

Function AreWavesSame(wv1, wv2)
	WAVE wv1, wv2
	return 0==cmpstr(GetWavesDataFolder(wv1, 2), GetWavesDataFolder(wv2, 2))
End

キーワード置換の機能を使う [subversion][TortoiseSVN]

subversionで、リビジョン番号やその日時なんかがファイルに反映されると便利である。そのための機能がsvn:keywordsである。svn propsetを通じたプロパティ設定で、特定のキーワードを置換したい旨subversionに知らせることができる。具体的にはSubversionによるバージョン管理よりsvn:keywordsの項を参照。

TortoiseSVNでは、右クリック=>TortoiseSVN=>Propertyとし、Property name: からドロップダウンでsvn:keywordsを選択し、Property value: にRevision、LastChangedDateなどを入れる。複数入れたい場合は空白区切りでOKだった。

さて日本語環境だとLastChangedDateなどの曜日の表記が日本語になってしまい、文字化けなどを引き起こす場合もある。これをお手軽に英語表記にする方法は今のところ無いようだ。現在のところの一番マシな解は

$LastChangedDate::                    $
とコロンを重ねてキーワード置換を固定長に制限する(subversionの機能)方法のようである。このようにして、そもそも曜日を表示させないようにする、という何とも強引な手段である。
Re: [Subversion-jp] $Date$の曜日?が化けてしまう件(再)

PDFの差分 [PDF][subversion]

PDFファイルの差分を見たいなと思った。
xdocdiffという、TortoiseSVNでWord, Excel, PowerPoint, pdfのdiffを見れるようにするツールがある。これをWinMerge用のプラグインとしてportしたものがあるが、これによって差分が見られるようになるようだ。

実際にやってみたら、うまく動いているようだった。

WinMergeは、TortoiseSVN的にも役立つソフトのようである。

hyperrefを使用した際、引数を2つとるrenewcommandまわりでトラブルが起きた [TeX]

hyperrefは便利だが、ちょっとやってみたら数式が文字化けしたのでムカツいて使用をやめた。だがこの原因についてちょっとまじめに考えることにした。

結論から言えば、hyperrefの不具合というよりは仕様によって起きるものであった。具体的には、私が設定した引数を2つとるrenewcommandの処理がうまくいっていないようであった。

用いたTeXファイルには、私は以下のマクロを加えていた。

\renewcommand{\ss}[2]{\ensuremath{#1_{\mathrm{#2}}}}
"s"はsubscriptから来ているのだろうが、何故2つ重ねたのかは忘れた。で、newcommandでなくrenewcommandにしているのは、\ssとはもともとエスツェットを出力する命令だからである。大雑把には、この命令がhyperrefで処理される段階で\ssと中括弧"{"の間にスペースが挿入されてしまい、\ssがエスツェットとして解釈されてしまっているために起きているようであった。

安直に以下のようにしたら問題は解決したようであった。
\newcommand{\sss}[2]{\ensuremath{#1_{\mathrm{#2}}}}

2007-03-25 Sun

Linuxにおけるライブラリ [Linux]

雰囲気はわかるがきちんと理解してるわけではない。理解にあたっては結局実行ファイルのフォーマットあたりまで遡る必要があるのか。
以下有用そうな文書
- Program Library HOWTO
- Why LD_LIBRARY_PATH is bad
- When should I set LD_LIBRARY_PATH?

2007-03-24 Sat

onmouseoverは面白そう [HTML]

Ajaxが世に広まった。
昔「テキストブラウザで事足りるWebページこそが良いページ」と思っていたが、昨今ダイナミックな機能の便利さを感じることが多くなり、考えが変わりつつある。もちろん、技術の活用は適材適所が肝なのだけれども。

例えばサンハヤト株式会社の製品情報。アンカー上にマウスポインタが重なるとチップスがポップアップする。あると便利だが無くても何とかなる機能というわけで、導入にあたって障害もないだろう。onmouseoverなるHTMLの属性によって実現しているようだ。javascriptの関数をコールすることもできるし、必ずしもスクリプトが必要というわけでもない。時間ができた時にいじりたい。

2007-03-18 Sun

Illustrator CSで作成した斜線柄スウォッチを含むPDFをAcrobat 7.0.9 Standardで拡大表示させるとAcrobatがクラッシュする場合があった [PDF][Illustrator]

タイトルの通り。Illustratorが悪いのかAcrobatが悪いのかはわからないが、AcrobatがクラッシュするようなPDF中の斜線柄のスウォッチをただの色に変えると現象が生じなくなったので、スウォッチがクラッシュに一役買っていることは間違いないだろう。なんでそうなる場合とそうならない場合があるのだろう?今時間がないのでこれ以上のトラックはやめておく。

Windowsのショートカットのファイルフォーマットはどうなっているのか? [Windowsプログラミング]

プログラムからショートカットを作成する方法について以前メモしたが、Linuxで処理する時などに備えファイルフォーマットそのものを知りたいと思った。

だが道のりはそれほど簡単ではないようで、「公式なドキュメントは無いようだ」との見解を見つけた。
xe-kodo(2006-08-29)

参考になるのは以下あたりか。
(rc*) ロミテチオ・ログ: .lnk ファイル解析
http://www.i2s-lab.com/Papers/The_Windows_Shortcut_File_Format.pdf

ダメ文字とは2バイト目がASCIIのバックスラッシュである文字

Shift-JISで2バイト目がASCIIのバックスラッシュと同じものを俗にダメ文字(だめ文字、駄目文字)と呼ぶ。2バイト文字が考慮されてないプログラムなどではエスケープシーケンスと勘違いされて処理がおかしくなることがある。「ソ」「表」など、結構頻繁に使用する漢字も含まれる。

http://ja.wikipedia.org/wiki/Shift_JIS#2.E3.83.90.E3.82.A4.E3.83.88.E7.9B.AE.E3.81.8C0x5C.E7.AD.89.E3.81.AB.E6.88.90.E3.82.8A.E3.81.86.E3.82.8B.E3.81.93.E3.81.A8.E3.81.AB.E3.82.88.E3.82.8B.E5.95.8F.E9.A1.8C

2007-03-14 Wed

lsで日本語ファイル名を表示するには--show-control-chars [コマンド]

MSYS + コマンドプロンプトの組合せを気に入って使っている。

lsで日本語ファイルがうまく表示されなかったが、catにパイプしたりファイルにリダイレクトする限りではきちんと表示されていた。これは何故か?

hiroitoh@YEBO6 /C/hiroitoh/del
$ ls
japanese.txt  ???{??.txt

hiroitoh@YEBO6 /C/hiroitoh/del
$ ls | cat
japanese.txt
日本語.txt



端末に出力する際にlsが気を効かせて色々やっているが、これが裏目に出ているそうだ。--show-control-charsオプションでこれを無効にできるそうだ。
hiroitoh@YEBO6 /C/hiroitoh/del
$ ls --show-control-chars
japanese.txt  日本語.txt

clientがver.22になって改善したか [Emacs]

既に起動中のemacsにファイルを開かせたりするにはgnuclientやらemacsclientやらが有効。
詳しく調べてないので不正確なことを言ってるかもしれないが、NTEmacs21で導入したgnuclientwでは日本語ファイル名がうまく渡っていない一方、NTEmacs22のemacsclientwを用いると、日本語ファイルがうまく渡せているようであった。

2007-03-09 Fri

正規表現モジュールとしてはpcreやboostなどがある [C/C++]

タイトルの通り。今使うわけじゃないがメモする
http://www.pcre.org/
http://www.kmonos.net/alang/boost/classes/regex.html

2007-03-05 Mon

カレントシェルとサブシェル [シェル]

カレントシェルとは要は「現在の」シェルである。サブシェルとは、カレントシェルの子プロセスとして走るシェルである。

シェルスクリプトの実行はサブシェルで行われる。ただし「ドットで実行される」ものはカレントシェルで実行される。サブシェルでは、カレントシェルで設定したシェル変数MYNAMEの値が反映されないことがわかる。ただし、exportした変数の値はサブシェルにも引き継がれる。

bash-2.05b$ MYNAME=foo
bash-2.05b$ echo $MYNAME
foo
bash-2.05b$ cat hello.sh
echo "hello, $MYNAME"
bash-2.05b$ bash hello.sh
hello,
bash-2.05b$ . hello.sh
hello, foo

参考:Bourne Shell自習テキスト

bashでリダイレクト [シェル]

bashで

$ ls >log
とかすることで、画面へ出力されるlsの結果をファイルへの書き出しに変更できる。この入出力切り替えの仕組みをリダイレクトと言う。大量のメッセージが画面に出力される場合なんかには、それらをファイルに出力させておいて後からゆっくり見る、といった使用法が便利。

上の記法は実は次の省略形である:
$ ls 1>log
「1」とは「標準出力」を表すディスクリプタの番号である。即ち上記は「標準出力をファイルにリダイレクトせよ」という意味。なので、上記だけではエラーメッセージなどが出力される「標準エラー出力」に関してはファイルにリダイレクトされない。これを扱うには以下のようにする:
$ my_command 1>stdout_log 2>error_log
ディスクリプタが2である標準エラー出力の内容は、error_logファイルに書き出される。

ディスクリプタの出力は他に振り替えることができる。
$ my_command 1>log 2>&1
とすれば、標準出力の内容も標準エラー出力の内容もlogファイルに書き出される。2>&1とは「ディスクリプタ2の出力をディスクリプタ1に振り替えよ」の意。ここで、このリダイレクトは右から評価されることが大事。上記は「エラー出力を標準出力に振り替えよ。んで、標準出力の内容はlogに書き出せ」という意味。つまり次のようにするとうまくいかない:
$ my_command 2>&1 1>log
これは「標準出力の内容をlogに書き出せ。んで、エラー出力は標準出力へ」となるので、結局エラー出力は画面にされてしまうわけである。

bash-2.05b$ ls
bash-2.05b$ touch hoge
bash-2.05b$ ls hoge fuga
ls: fuga: No such file or directory
hoge
bash-2.05b$ ls hoge fuga >log
ls: fuga: No such file or directory
bash-2.05b$ cat log
hoge
bash-2.05b$ ls hoge fuga >log 2>&1
bash-2.05b$ cat log
ls: fuga: No such file or directory
hoge
bash-2.05b$ ls hoge fuga 2>&1 >log
ls: fuga: No such file or directory
bash-2.05b$ cat log
hoge

2007-03-03 Sat

zshをWindowsで使うにはcygwinが必須 [シェル]

zshは言わずと知れた高機能シェルで人気も高い。

これをWindowsで使うにはcygwinを導入する必要がある。ftp://ftp.blarg.net/users/amol/zsh/ でcygwin不要の移植版が公開されていたようだが、現在はアクセスできない。

クリップボードとのやりとりはPutScrapTextやGetScrapText、DoIgorMenuで行う [Igor Pro]

これは題名の通り。Scrapだなんて思いつきにくい。いつも「アレ、クリップボード関連の関数ってどんな名前だっけ」となる。

DoIgorMenu "Edit", "Copy"
とかでも良いだろう。

2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2010-03-08 22:21