google-code-prettify

2008-03-28

NetBSDでBluetoothを使う

結構手こずってしまった。

基本的には、
http://www.netbsd.net/docs/guide/en/chap-bluetooth.html
http://wiki.netbsd.se/index.php/Bluetooth
に書いてある通りにした。

BDアドレスに名前を付けるには、
/etc/bluetooth/hosts
に、
XX:XX:XX:XX:XX:XX myphone
のように書けば良い。

BDアドレスを知るには、
$ btconfig ubt inq

ペアリングするには、
$ sudo btpin -p 1234 -a myphone
のようにする。
btpinを実行すると、一定時間、ペアリングができるようになる。
この間に、携帯等から接続したり、その逆を行えば良い。

私使っているBTドングルは、
ubt0 at uhub0 port 2 configuration 1 interface 0
ubt0: Cambridge Silicon Radio Bluetooth USB Adapter, rev 1.10/5.25, addr 2

という物。
/etc/rc.confは、以下のようにした。
btconfig_args="up -iscan pscan auth encrypt switch -hold -sniff -park class 0x02010c ptype 0x0018"
このへんをうまく設定してやらないと、通信ができない。
(これらの値の意味はよくわかっていないけど)

これでやっと、obexftpを使って携帯から画像を取り出せるようになった。

関数名は、「その関数を呼ぶ事で何をしたいか」ではなく「その関数が何をするか」を表すべき

tech@netbsdに、関数名の付け方の話でおもしろい話が出ていた。

=====

関数名は、
「その関数を呼ぶ事で何をしたいか」
ではなく
「その関数が何をするか」
を表した名前をつけるべき。

例えば、lockのリファレンスカウントを増やす関数を作る時は、
lock_retainやlock_holdという名前は適さない。

なぜなら、これらの関数名は、
「リファレンスカウントを増やす事で、呼び出し側がlockをretainしたい」
という、呼び出し側の立場で名前が付けられているから。

「その関数が何をするか」
という立場で名前を付けるなら、lock_increfのような名前にするのが良い。

=====

まあ、関数名には慣習もあったりするので、
ここまで厳密にルールを適用する必要は無いかもしれないが、
心に留めておこう。

2008-03-26

Nokia 705NKで撮影した画像をBluetoothでLinuxへ転送する

Nokia 705NKで撮影した画像をBluetoothでLinuxへ転送する

携帯内のC:/Data/Images/とE:/Images/以下の全ての画像をPCに転送するスクリプト。

本当はこのスクリプトを、
「携帯が近付いたときに、自動で実行する」
としたいのだけど、どうすればよいのだろう?

2008-03-21

xtermなどのタイトルバーに、svnのリポジトリのURLを表示する

いろいろなリポジトリをcheckoutしていると、今作業しているディレクトリが
何のリポジトリの物なのかがわからなくなる事がある。
わからないだけなら良いが、勘違いしてしまうと大変困る。

そこで、カレントディレクトリのリポジトリのパスをタイトルバーに表示する方法。

export PROMPT_COMMAND="svn info 2>/dev/null | python -c 'import sys;d=sys.stdin.readlines(); a = len(d)>2 and d[1].strip() or \"URL:\";sys.stdout.write(\"\033]2;\"+a+\"\007\")'"

bash3.0とsvn1.4.4とrxvt 2.7.10の組み合わせで動作している。

参考:
http://www.linux.or.jp/JF/JFdocs/Xterm-Title.txt