〜2014年3月下旬〜
新たな環境になってからRD-H1のネットワーク設定は放置状態だったが、
まあ、192.168.0.0/24なのは変わりないし問題ないだろうと思ったら、
メールを受け取ってくれない。しかも時計がちょっとずれてる。
ということは全然外とつながってないわけで見直してみると、
今回新たに設置されたルータにはDNS機能がないということがわかった。
RD-H1はHTTPサーバが内蔵していてもろもろブラウザから設定できたりするので、
DHCPではなく固定IPアドレスで運用していたが、それが仇になった形。
面倒なので8.8.8.8にしようかと思ったが、最近あんなことがあっただけに、
DHCPが配ってるDNSにした。これでメールもNTPもok。
2015年でデジアナ変換は終了するらしいが、それ以降もまだまだ使えてしまうな。
先日zshのhistory fileのunmetafyについて書いた。
これで変換すれば修正できるが元に戻すにはmetafyする必要がある。
というわけでRubyで書いてみた。
% cat zsh_history-unmetafy
HISTSIZE=3
echo あいうえお
echo 今、咲き誇る花たちよ
% ruby -EASCII-8BIT -pe 'gsub(/[\0\x83-\x9d\xa0]/n){"\x83".b+($&.ord^32).chr}' zsh_history-unmetafy > zsh_history-metafy
% od -tx1z zsh_history-metafy
0000000 48 49 53 54 53 49 5a 45 3d 33 0a 65 63 68 6f 20 >HISTSIZE=3.echo <
0000020 e3 81 82 e3 81 83 a4 e3 81 83 a6 e3 81 83 a8 e3 >................<
0000040 81 83 aa 0a 65 63 68 6f 20 e4 bb 83 aa e3 80 81 >....echo .......<
0000060 e5 83 b2 b2 e3 81 83 ad e8 aa 83 a7 e3 82 83 ab >................<
0000100 e8 83 aa b1 e3 81 9f e3 81 a1 e3 82 83 a8 0a >...............<
0000117
[\0\x83-\x9d\xa0]という文字が来たら^32して\x83をprefixすればいい。
Perlなら
% perl -pe 's/[\0\x83-\x9d\xa0]/\x83@{[$&^" "]}/g' zsh_history-unmetafy > zsh_history-metafy
という感じ。文字列のxorができるのでそのあたりはすっきりする。
正月過ぎるともう平成何年だかよくわからなくなる。
2014年の14に12を足せばいいんだけど、
実はdateコマンドでもわかる。
% date +%EY 平成26年
Eをつければいろんなものが日本仕様に。
% for i in y c x X;date +%E$i 26 平成26年03月23日 22時50分35秒 平成26年03月23日 22時50分35秒
昭和とかもちゃんといける。
% date +%Ex -d 1926-12-24 大正15年12月24日 % date +%Ex -d 1926-12-25 昭和元年12月25日 % date +%Ex -d 1989-01-07 昭和64年01月07日 % date +%Ex -d 1989-01-08 平成元年01月08日
ちゃんと元年になるんだな。
libcのstrftime(3)が対応してるかどうかなので、gawkでもいける。
% gawk 'BEGIN{print strftime("%EY")}'
平成26年
Rubyのように自前でstrftimeを用意してたりすると使えない。
% ruby -e 'p Time.now.strftime("%EY")'
"2014"
決定ボタンを押すとかなりの確率で下ボタンになってしまう。
これは再生中は停止ボタンなわけで、
押してしまうとresume機能がないので元に戻れない。
しかたなく最初から100倍速で早送りする、
だいたい見ていたところにきたら決定ボタン押す、
一時停止になるので解除するために決定ボタンを押す、
残念停止ボタンでした、
ってのを3回ぐらい繰り返す。ちゃぶ台を引っくり返す。
という展開が繰り広げられる。
だからDLNA経由のPS3で見るわけだけど、
こっちも不安定でやたらエラー起こす。
まだPS3ならresume機能があるのでましだが、
でもエラー起こすと最初に戻ったりするし、
□ボタンで5分間隔でのジャンプも結構エラーになる。
いやー、困ったもんだよ実際。
もう見るんだったらノンストップで最後まで見る覚悟で再生しないと。
まじで学習リモコン考えないとだめかも。
そとからならtime script.shでいいわけだが、結構timeを忘れる。
スクリプトの中に入れたい。そこでpsコマンドだ。
% cat test.sh
#! /bin/sh
sleep 5
ps ho etime $$
% sh test.sh
00:05
スクリプトの最後に ps ho etime $$ を置けばいい。
hはheaderを表示しないという意味だが、BSDだと効かない。
そのあたりはsed 1dとかで。
テレビ王国では番組の検索ができて、しかもその結果をRSSで受け取れる。
ということはこれをIFTTTで連携すればメールで受け取ることが可能。
メールじゃなくてもtwitterへポストするとか好きなように通知できる。
このおかげで世界ネコ歩きも逃さず見ることができるわけだが、ここ重要。
今はkeyconfigじゃなくてkeysnailを使ってるが本質的には変わらない。
ここ半年ほど
この設定が動かなくなってる点を調べてみたら、
なんとgetShortcutOrURIが以前とは違う挙動になってしまっているとのこと。
getShortcutOrURI 内で非同期の getCharsetForURI が使われるようになりました。これにより getShortcutOrURI 関数が非同期の getShortcutOrURIAndPostData に置き換えられました。また urlbarBindings.xml 内の _canonizeURL 関数も併せて非同期に変更されています。
なんかさらっと書かれているが、これのおかげでgetShortcutOrURIが使えないらしい。
代わりにPlacesUtils.getURLAndPostDataForKeywordを使えばいい。
PlacesUtils.getURLAndPostDataForKeyword("keyword")[0]
keysnailだったら~/.keysnail.jsに
function getShortcutOrURI(k, d) {
return PlacesUtils.getURLAndPostDataForKeyword(k)[0];
}
を追加してしまえばいいのかも。
xml-coreutilsのxml-findを使うとこんな感じでできる。
% unzip -p Book1.xlsx xl/worksheets/sheet1.xml | tidy -qi -xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="x14ac"
xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">
<dimension ref="A1:A5" />
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0">
<selection activeCell="A6" sqref="A6" />
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="13.5" x14ac:dyDescent="0.15" />
<sheetData>
<row r="1" spans="1:1" x14ac:dyDescent="0.15">
<c r="A1">
<v>1</v>
</c>
</row>
<row r="2" spans="1:1" x14ac:dyDescent="0.15">
<c r="A2">
<v>10</v>
</c>
</row>
<row r="3" spans="1:1" x14ac:dyDescent="0.15">
<c r="A3">
<v>100</v>
</c>
</row>
<row r="4" spans="1:1" x14ac:dyDescent="0.15">
<c r="A4">
<v>1000</v>
</c>
</row>
<row r="5" spans="1:1" x14ac:dyDescent="0.15">
<c r="A5">
<v>-1</v>
</c>
</row>
</sheetData>
<phoneticPr fontId="1" />
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75"
header="0.3" footer="0.3" />
</worksheet>
% unzip -p Book1.xlsx xl/worksheets/sheet1.xml | xml-find -name 'row' -exec xml-printf '%s %s\n' '{-}' ://c@r ://v \;
A1 1
A2 10
A3 100
A4 1000
A5 -1
Ubuntuのcalは今日の日付だけ反転するが、むしろ土曜と日曜に色をつけたい。
% cal -h | sed '1!{s/\(..\)\(.\{16\}\)\(..\)\( \|$\)/\x1b[1;31m\1\x1b[m\2\x1b[1;34m\3\x1b[m\4/g}'
March 2014
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
とこんな感じでどうだろう。3ヶ月表示でもok。
% cal -h3 | sed '1!{s/\(..\)\(.\{16\}\)\(..\)\( \|$\)/\x1b[1;31m\1\x1b[m\2\x1b[1;34m\3\x1b[m\4/g}'
February 2014 March 2014 April 2014
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 1 2 3 4 5
2 3 4 5 6 7 8 2 3 4 5 6 7 8 6 7 8 9 10 11 12
9 10 11 12 13 14 15 9 10 11 12 13 14 15 13 14 15 16 17 18 19
16 17 18 19 20 21 22 16 17 18 19 20 21 22 20 21 22 23 24 25 26
23 24 25 26 27 28 23 24 25 26 27 28 29 27 28 29 30
30 31
また便乗ネタだけど、(N-/)をつけるという方法はなかなかナイスではあるが、
これを全ディレクトリに指定するのも面倒。
元々のpathに存在しないディレクトリがあった場合にも対処したい。
たとえばわざと存在しないディレクトリをpathに追加して
% path=(/not_exist $path /hoge) % echo $path /not_exist /home/eban/bin /home/eban/jarp/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /hoge
これに対して全要素に対して(N-/)を処理させたい。それには$^pathを使うとうまくいく。
% echo $^path(N-/) /home/eban/bin /home/eban/jarp/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin
$path(N-/)としてしまうと最後の1個だけにつくのでまずい。
% echo $path(N-/) /not_exist /home/eban/bin /home/eban/jarp/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin
というわけで
% path=($^path(N-/)) % echo $path /home/eban/bin /home/eban/jarp/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin
とすればpathには存在するディレクトリだけが残る。
なんかUSBケーブルつないでも追い付けないくらい、
やたらと電気食うのであまり使ってなかったんだが、
今日試したらそうでもない。
すぐ接続が切れちゃうのは変わらないが。
それはそれとして、変換待ちのままもう10日経つ番組があるんだけど、
なぜか変換終了しないと消せない仕様になっていて非常に困る。
もう全部予約はDRにしちゃったから今後は変換待ちにはならないが、
3つ番組が残ってしまった。いくら待っても変換されない。
もう見たので消したい。
ふとXvieリモートの録画リストを見てみるとこちらはグレーアウトされてない。
消してみるとなんと消えた。こんなとこに違いが。
ああ、あとこのXvieリモートのリモコン再生中だと現在の位置がわかるのでよろしい。
押し間違いもないし。接続が安定すればいうことないんだが。