〜2013年9月中旬〜
configureしてmakeでいけるかと思ったら、結構面倒だった。
git clone git://github.com/stedolan/jq.git して、
autoreconfしなきゃいけないけど、これが通らない。
どうもautomakeが新しすぎてバグにぶち当たるようで。
% autoreconf automake-1.14: error: global options already processed automake-1.14: Please contact <bug-automake@gnu.org>. at /usr/share/automake-1.14/Automake/Channels.pm line 662 Automake::Channels::msg('automake', '', 'global options already processed') called at /usr/share/automake-1.14/Automake/ChannelDefs.pm line 212 Automake::ChannelDefs::prog_error('global options already processed') called at /usr/share/automake-1.14/Automake/Options.pm line 421 Automake::Options::process_global_option_list('HASH(0x600924fb8)') called at /bin/automake-1.14 line 5331 Automake::scan_autoconf_traces('configure.ac') called at /bin/automake-1.14 line 5431 Automake::scan_autoconf_files() called at /bin/automake-1.14 line 8259 autoreconf-2.69: automake failed with exit status: 29
Cygwinでautomakeをインストールすると、
無駄に過去のバージョンまで一緒にインストールされるけど、
ひょっとしてこういう自体に対処するため?
というわけで1個前のバージョンを指定してみる。
% WANT_AUTOMAKE=1.13 autoreconf parallel-tests: error: required file 'config/test-driver' not found parallel-tests: 'automake --add-missing' can install 'test-driver' autoreconf-2.69: automake failed with exit status: 1 % WANT_AUTOMAKE=1.13 automake --add-missing parallel-tests: installing 'config/test-driver'
これでconfigureができあがった。
あといろんなgemを入れないとドキュメントができないらしいが、
jq自身だけできればいいならこれでok。
判子を作ったはいいが、あまりにも完璧すぎていけない。
一部かすれるとかないとらしくない。
convertでできるもんかな。
noip2はだめだなこりゃ。というわけでddclientを試す。
インストールはパッケージがあるので普通にaptitudeで。
serverはdynupdate.no-ip.comで、更新プロトコルはdyndns2で、
ネットワークインターフェイスはとりあえずeth0にしてそのまま続けて完了。
eth0だとプライベートアドレスになってしまうので、
/etc/ddclient.confを編集してuse=の行を
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
に変更。sudo ddclient -daemon=0 -debug -verbose -noquietして確認。
最後に
SUCCESS: updating XXXXXXX.no-ip.org: good: IP address set to XXX.XXX.XXX.XXX
と出てくればok。
noip2とかddclientを常駐させとくのもばからしいし、
curl一発cronで1日と16日に実行でいいかという結論に。
0 0 1,16 * * curl -sn "https://dynupdate.no-ip.com/nic/update?hostname=XXXXXXXX.no-ip.org&myip=`curl -s ifconfig.me`"
curlもftpみたいに~/.netrcに
machine dynupdate.no-ip.com login アカウント名 password パスワード
と書いておけば-nで読み込んでくれる。ifconfig.meはIPアドレスを返してくれるので便利。
User-Agentで判断してる。ifconfig.me/ipなら確実にIPアドレスを返す。
最後のカンマが許されないのでエラーになってしまう。
hashとか配列とかいじるときにコピペするとどうしえも残りがち。
しょうがないので
{ "foo": 1, "bar": 2, "ダミーの終わり": 0 }
みたいなことしてるけど、あまりかっこよくない。
Linuxでは/bin/openが存在するが、これはopenvtへのsymlinkらしい。
openvtなんてコマンドがあることすら知らなかったが実にもったいない名前ではある。
どこかのOSのように関連付けられたコマンドを起動するほうがよさげだ。
というわけでXfceだったらexo-open、その他だったらgnome-openを起動するようにした。
ついでに今さらopenでもないのでもうoにした。
#! /bin/sh open=gnome-open if [ "$GDMSESSION" = xfce ]; then open=exo-open fi exec "$open" "$@"
今まではXfceでもgnome-openを使っていたが、
フォルダを指定した時にGNOME上じゃないとやはり起動に時間がかかる。
exo-openならXfceのファイルマネージャーが開かれるので速い。
まあ、GNOMEはあまり使わないのでexo-openを直接使えばいいんだが。
わざわざ作らなくてもすでにxdg-openがあるとの情報をemasakaさんから得た。
というわけで、もうalias o=xdg-openだけでいいね。
cifsでmountするときは相手側がWindowsなので空白が含まれているときがある。
これを/etc/fstabで設定しようとしてはたと困った。
fstabでは空白は区切り文字なのでescapeしないといけない。
単にbackslashでquoteしてもだめ。""で全体をくくってみてもだめ。
man fstabしてもman mountしてもそのあたりの記述が見つからない。
そういえばcygwinのfstabでは8進数が使えたのでやっぱそうなのかと試すといけた。
//server/share/foo bar/hoge
のような場合は
//server/share/foo\040bar/hoge
とすればok。注意点としては\40では駄目。0も必要。\x20のような16進も使えない。
なかださんから以前指摘された件。@rubyciの大元はruby-cvs MLだけどGmaneのRSSを利用してる。
でなぜかたまに空白がなくなる。RSSの段階でなくなってるわけでなぜこんなことになってるのか。
たとえば
これはなぜかmakeSymbolとなってしまっている。
それはそれとしておめでとう!
まず API Keyを入手。アカウント名とパスワードは例によって~/.netrcにあらかじめ追加しておく。
machine secure.diigo.com login アカウント名 password パスワード
あとはURLエンコードするところを--data-urlencodeで指定する。titleとかdescriptionとか。
--trace-ascii -すると何を渡しているかもわかるのでデバッグ時に便利。
% curl --trace-ascii - -sn -d 'key=api_key&url=https://jarp.does.notwork.org/jarp/&shared=no' \ --data-urlencode 'title=テスト' https://secure.diigo.com/api/v2/bookmarks