Just another Ruby porter,

〜2014年1月下旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2014-01-21 (Tue)

日付は現在じゃなくてHTMLから

またダブる件が発生したので HTMLから取ってくるようにしてみた。
Regexを間に挟んでそこでdayというelementを作りtd.0を入れて"日"を消す。
これで後段のRegexで${day}で参照できる。


2014-01-22 (Wed)

svnでrepositoryの位置を変える

最近はsvn switchじゃなくてsvn relocateらしい。

% cd /tmp
% svn co http://svn.ruby-lang.org/repos/ruby/trunk/cygwin
A    cygwin/GNUmakefile.in
リビジョン 44681 をチェックアウトしました。
% cd cygwin
% svn info | grep URL:
URL: http://svn.ruby-lang.org/repos/ruby/trunk/cygwin
% svn relocate svn+ssh://svn@svn.ruby-lang.org/ruby/trunk/cygwin
% svn info | grep URL:
URL: svn+ssh://svn@svn.ruby-lang.org/ruby/trunk/cygwin

元がなにかは気にする必要はなく、新repositoryを指定すればいい。


2014-01-23 (Thu)

Fill Alternating Layers

これって対応するカッコとか考える必要はなく空白以外が出てきたら切り替えればいい。

#!ruby -p
gsub(/\S *\S/){$&.tr' ','*'}

ここで2個目の\Sは.で代用可能。


2014-01-24 (Fri)

PS3の電源を切る

今まではPS3の電源を切るときは律儀にtorneを終了させていたが、
これって一旦XMBに戻ってくるのを待たないといけない。
結構時間がかかる。
3年も経って気づくのも遅いが、torneを終了させるときのXMBで電源を切ればよかったんだな。
消去のときに電源切るなというメッセージの意味を初めて理解した。
コンセントから抜くなと思っていた。


2014-01-25 (Sat)

awkの引数で変数代入はいつ行なわれるのか

引数のファイルの前での代入ならファイルを読む前に変数を設定できるが、
これって実はBEGINの後なのでBEGINでその変数を使いたいときに困る。
そういう場合は-vオプションを使う。

% awk 'BEGIN{print foo}' foo=1

% awk -v foo=1 'BEGIN{print foo}'
1

-vはBEGINより前というかプログラムより前という意味になる。
-vはオプションなので位置に注意。
まあ、この順番で書かないとエラーになるのでわかりやすいともいえる。


2014-01-26 (Sun)

sedで[,|,]を置き換える

sedで[,|,]を\でquoteとしようとして悩んだ。最初は

% echo '[|]' | sed 's/[\[\|\]]/\\&/g'
[\|]

としてみたが、なぜか|だけがマッチするようで。
info sedしてみたら、なんとchar classでは\はquoteの意味を持たないとある。

`[LIST]'
`[^LIST]'
     Matches any single character in LIST: for example, `[aeiou]'
     matches all vowels.  A list may include sequences like
     `CHAR1-CHAR2', which matches any character between (inclusive)
     CHAR1 and CHAR2.

     A leading `^' reverses the meaning of LIST, so that it matches any
     single character _not_ in LIST.  To include `]' in the list, make
     it the first character (after the `^' if needed), to include `-'
     in the list, make it the first or last; to include `^' put it
     after the first character.

     The characters `$', `*', `.', `[', and `\' are normally not
     special within LIST.  For example, `[\*]' matches either `\' or
     `*', because the `\' is not special here.  However, strings like
     `[.ch.]', `[=a=]', and `[:space:]' are special within LIST and
     represent collating symbols, equivalence classes, and character
     classes, respectively, and `[' is therefore special within LIST
     when it is followed by `.', `=', or `:'.  Also, when not in
     `POSIXLY_CORRECT' mode, special escapes like `\n' and `\t' are
     recognized within LIST.  *Note Escapes::.

知らなかった。]を指定するには最初に置くしかない。[も意味を持たない。
ということはこうだな。

% echo '[|]' | sed 's/[]|[]/\\&/g'
\[\|\]

2014-01-27 (Mon)

awkで[,|,]を置き換える

気になったのでawkでもやってみた。結構いろんなのがある。
gawk, mawk, busybox awk, bwkで:

% (setopt SH_WORD_SPLIT;
  for awk in gawk mawk busybox\ awk bwk; do
    printf "%12s: " "$awk";
    echo '[|] [|]' | $awk 'gsub(/[]|[]/,"\\\\&", $1)gsub(/[\[\|\]]/,"\\\\&", $2)';
  done)

        gawk: \[\|\] \[\|\]
        mawk: \[\|\] \[\|\]
 busybox awk: \[\|\] [\|]
         bwk: \[\|\] \[\|\]

sedと同じ形式である/[]|[]/は全部okだが、
\でquoteする形式である/[\[\|\]]/はbusyboxのawkでは使えないようだ。


2014-01-28 (Tue)

IFTTTが止まった

というわけで、rubyciとかアメダスのbotとかが止まってる。
アナウンスがないのでどういう状況なのかよくわからんねえ。
ああ、そうか。この日記もIFTTTで通知してたんだった。
さて、復帰したら拾ってくれるんだろうか。


2014-01-29 (Wed)

大文字のタグ

HTMLのタグって小文字が多いけど、もちろん大文字で書いてもいい。
そのことをすっかり忘れて小文字限定でtitleタグを抜き出す処理を書いたはいいが、
これが失敗するのに2ヶ月ほどかかった。
まあ、それほどまでに大文字で書かれたHTMLタグって稀なんだな。

title=$(curl -sL "$1" | awk -F'<title[^>]*>[\n \t]*|[\n \t]*</title>' '$0=$2' RS= | nkf --numchar-input)

ってな処理にしたもんだからtolower()が使えず、gawk限定のIGNORECASE=1することでごまかした。
ついでにgawkならということで\sで。

title=$(curl -sL "$1" | gawk -F'<title[^>]*>\\s*|\\s*</title>' '$0=$2' IGNORECASE=1 RS= | nkf --numchar-input)

ちょっと面倒だが、文字列から正規表現に変換するときにquoteが必要になるので、\\sとしないといけない。


2014-01-30 (Thu)

オフラインGmailでも重くなる

redmineからなんかいっぱい来てたので、
わざわざオフラインGmailに切り替えてからアーカイブしたんだけど、
裏でいっぱい処理してるらしく結局オフラインでも重くなるのであった。

なんか最近Gmailの調子悪いからオンラインでエラー多発してるんだよね。


2014-01-31 (Fri)

IFTTTのEntryImageUrl

これってRSSのどこに相当するのかよくわからんのでぐぐってみたら、
IFTTT / New feed item trigger on the Feed channelにヒット。

URL for the first image in the entry. If the entry doesn't have an image will point to a placeholder image.

と言われてもよくわからないが、
https://twitter.com/bartjeb/status/232118200161169410によると
contentとかdescriptionの中にimgタグを埋め込んでおけという意味のようで。
だったらYahoo Pipesでもなんとかなりそうなので、アメダスbotでやってみよう。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!