Just another Ruby porter,

〜2014年2月上旬〜


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

2014-02-01 (Sat)

気象庁のアメダス観測データからRSS

気象庁アメダス観測データはtenki.jpとは違い、
毎正時の観測データが新しい順には並んでないので、
Y!Pipesで最新のデータへアクセスするにはどうすればいいのかわからなかったが、
気温に数値が含まれてるtableだけを取り出してtailすればいいと気づいた。
これならXPathとFilterとTailでできる。
作ってみたのがこれ。
Pipes: jma amedas
descriptionはimgタグだけにしてみたが、
なるほど確かにIFTTTのEntryImageUrlはこれを拾っているようだ。


2014-02-02 (Sun)

1月のspam

280通ほど。

オフラインGmail

chrome://appsするとオフラインGmailというアプリがあるので、
Gmail調子が悪いときに使ってるんだけど、
これが曲者で読んでアーカイブしてもなぜか未読のままだったりする。
今日何気なく確認してみたら700通の謎の未読があって
なにかと思ったらオフラインGmailで処理したものだった。
裏でやってくれるのはいいが、これじゃ使えないな。


2014-02-03 (Mon)

105円の時計

すでに2年経つわけだけど、アナログの時計の電池が久し振りに切れた。
充電してる間数時間ふと何回も動いてない時計を見てしまう。
結構依存してるんだなと思った。


2014-02-04 (Tue)

Y!Pipesで各itemにtitleを入れる

どういうことかというとXPath Fetch Pageはitemを返すので、
/html/head/titleで得たデータはそのままでは使えない。
別のモジュールにするしかないらしい。

具体的には気象庁のアメダスのページで年月日を抜き出して、
毎時のデータに突っ込みたいという話。
YQLを使えばいけそうな気もするが、どうもうまくいかない。


2014-02-05 (Wed)

動物界の限りなく真実に近い情報

なんのことかさっぱりわからない情報がfitbitからやってきた。
いっぱい歩いたよってことなんだろうな。抜群です!


2014-02-06 (Thu)

s3fsでさくらのBASE Storageをmount

s3fsはごにょごにょというわけでUbuntuのパッケージが存在しないので自分でmakeする。

% sudo aptitude install build-essential libfuse-dev libcurl4-openssl-dev libxml2-dev mime-support
% wget http://s3fs.googlecode.com/files/s3fs-1.74.tar.gz
% tar xf s3fs-1.74.tar.gz
% cd s3fs-1.74
% ./configure
% make all install

設定は/etc/fuse.confの最終行のuser_allow_otherを活かして、permissionを確認。
0640あたりなら0644にするとかsudo gpasswd -a fuse ebanとかしておく。
あとはアカウント名とアクセストークンを書き込む。

% echo 'username:access-token' > ~/.passwd-s3fs
% chmod 0600 ~/.passwd-s3fs

mountはs3fsコマンドで。

% mkdir ~/sakura
% s3fs eban0 ~/sakura -o url=http://b.storage.sakura.ad.jp -o allow_other,default_acl=public-read

umountはumount ~/sakuraなんだけど、これはroot権限が必要。
fusermount -u ~/sakuraなら一般ユーザーでもumountできる。


2014-02-07 (Fri)

jpegをgifへ変換するときの落とし穴

forを使うとかいろいろツールを組み合わせるとかあるけど、

% convert '*.jpg' -set filename:t '%t' -verbose '%[filename:t].gif'

でいいんじゃないかと思ったら思わぬ落とし穴が。
これだとアニメーションGIFになってしまう。

% convert '*.jpg' -set filename:t '%t' -verbose '%[filename:t].gif'
011.jpg=>011.gif[0] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 1.11MB 0.090u 0:00.089
% identify 011.gif 
011.gif[0] GIF 1081x714 1081x714+0+0 8-bit PseudoClass 256c 1.113MB 0.000u 0:00.000
011.gif[1] GIF 1081x714 1081x714+0+0 8-bit PseudoClass 256c 1.113MB 0.000u 0:00.000
011.gif[2] GIF 1081x714 1081x714+0+0 8-bit PseudoClass 256c 1.113MB 0.000u 0:00.000
011.gif[3] GIF 1081x714 1081x714+0+0 8-bit PseudoClass 256c 1.113MB 0.000u 0:00.000
011.gif[4] GIF 1081x714 1081x714+0+0 8-bit PseudoClass 256c 1.113MB 0.000u 0:00.000

pngへ変換なら1個ずつ別々に処理される。

% convert '*.jpg' -set filename:t '%t' -verbose '%[filename:t].png'
011.jpg=>011.png[0] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 238KB 0.220u 0:00.220
012.jpg=>012.png[1] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 209KB 0.370u 0:00.369
013.jpg=>013.png[2] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 201KB 0.520u 0:00.529
014.jpg=>014.png[3] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 233KB 0.690u 0:00.690
015.jpg=>015.png[4] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 209KB 0.860u 0:00.849

では、アニメーションGIFへの変換をやめさせるにはどうすればいいのか?
+adjoinで個別に処理される。

% convert '*.jpg' -set filename:t '%t' +adjoin -verbose '%[filename:t].gif'
011.jpg=>011.gif[0] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 238KB 0.060u 0:00.059
012.jpg=>012.gif[1] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 213KB 0.050u 0:00.050
013.jpg=>013.gif[2] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 205KB 0.060u 0:00.050
014.jpg=>014.gif[3] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 238KB 0.060u 0:00.050
015.jpg=>015.gif[4] JPEG 1081x714 1081x714+0+0 8-bit PseudoClass 256c 213KB 0.060u 0:00.050

2014-02-08 (Sat)

大雪

16年とか20年振りの大雪ということで20cm以上積った。
気象情報で埼玉の積雪は熊谷ばかり出てくるのはなぜかと思ったら、
そもそも積雪深観測は熊谷と秩父しかやってない。
気象庁 | アメダス(表形式)を見て納得した。
tenki.jpのさいたまのアメダス実況の積雪深も無意味というわけか。
まあ、みんな同じフォーマットにすればそうなるよね。


2014-02-09 (Sun)

sqlite3でregexp

Ubuntuだとsqlite3-pcreパッケージをインストールして、

.load /usr/lib/sqlite3/pcre.so

とすれば使えるようになる。

sqlite> .load /usr/lib/sqlite3/pcre.so
sqlite> select artist,title from music where title like '%恋%';
AKB48|恋するフォーチュンクッキー
湘南乃風|純恋歌
AAA|恋音と雨空
ベイビーレイズ|恋はパニック
マキシマム ザ ホルモン|恋のメガラバ
May'n|今日に恋色
山崎あおい|恋の予感
sqlite> select artist,title from music where title regexp '恋';
AKB48|恋するフォーチュンクッキー
湘南乃風|純恋歌
AAA|恋音と雨空
ベイビーレイズ|恋はパニック
マキシマム ザ ホルモン|恋のメガラバ
May'n|今日に恋色
山崎あおい|恋の予感
sqlite> select artist,title from music where title regexp '^恋';
AKB48|恋するフォーチュンクッキー
AAA|恋音と雨空
ベイビーレイズ|恋はパニック
マキシマム ザ ホルモン|恋のメガラバ
山崎あおい|恋の予感

いけてるようだけど、.とか使うとなんか変だ。

sqlite> select artist,title from music where title like '_恋%';
湘南乃風|純恋歌
sqlite> select artist,title from music where title regexp '^.恋';
sqlite> 

なぜかヒットしない。まさかmultibyte対応してない?

sqlite> select artist,title from music where title regexp "^...恋";
湘南乃風|純恋歌

そういうことか。UTF-8だから3バイトってわけで。なんか懐しい挙動だ。
likeかglobを駆使したほうがよさげだな。


<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!