simplehtmldomを利用してCOOKPADのレシピを取得する

COOKPADのレシピを大量に取得する必要にせまられ簡単なスクリプトを組む。取得すべきレシピのIDがあらかじめ分かっていたために仕組みは非常に単純で、レシピ詳細ページのHTMLを丸ごと引っ張ってきて、該当の要素、ID、CLASS名を頼りにテキストを抽出するだけの内容。

当初、HTMLからの要素の抽出は正規表現の利用を考えていたのだけれど、予想に反して手間がかかりそうだったので「HTMLを扱うならjqueryのように出来ないかな」とスクリプトを探していたところPHP Simple HTML DOM Parserを見つけた。これはphpからHTMLをjqueryのように扱うためのライブラリで、書き方もjqueryに似ていてとても使いやすい。

“simplehtmldomを利用してCOOKPADのレシピを取得する”の続きを読む

Yahoo!プライムディスプレイの容量制限の緩和

Yahoo! JAPAN広告仕様書によると、この9月からプライムディスプレイMegaのミドルFlashの容量制限が緩和された模様。

24576 byte -> 51200 byte

今まで24Kbyteという制限の中で、画像置換やシンボルの使い回しなど一生懸命に工夫をして容量を削ってきたけれどもうそんな必要はないみたい。

ややもすれば、レギュラーサイズのFlashから僅かに画質を落とすだけでミドルFlashに対応できてしまいそうな勢いだからだいぶ楽になった。

ところが、一点だけ問題が発生した。いつもの通りにAbbeyツールにてチェックをかけたところ、容量エラーが発生してしまった。選択していたAbbeyNameはこちら。

463:300x250*30sec*mflash_ver8

パブリッシュ設定などを見直してみたけれども改善せず、問い合わせることに。回答によると、9月の容量改訂時にAbbeyNameの変更も行っているとのことで、新しいAbbeyNameを選択して欲しいとのこと。

旧:463:300x250*30sec*mflash_ver8
新:464:300x250*15sec*flash_ver8

AbbeyNameへの464の表示方法については、これまで通りに拡張子をmflashにしてから順に条件を狭めてもダメなので、拡張子を空にしてwidth、height、Animationのみを選択するか、AbbeyNameから直接選択する。

ちょっと面倒だったけれど、とにかく容量制限の緩和は嬉しいこと。特に制作者にとっては「ミドルFlashの画質が粗いんだけど」なんてどうにもできないことに文句を言われることも少なくなるだろうし。。。

のら3

三度、ねこの巣へ。今日は白ねこを発見。他の2匹と比べてとても警戒心が強いらしく、僕が少しでも近づくとさっと逃げる。で、ちょっと離れたところからジッっとこちらを見つめてた。

zfs/raidz1のディスクを交換する(2ヶ月でorz…)

購入したHDDが2ヶ月ほどでお亡くなりに。ディスク自体は保証期間内なので何とかするとして、せっかく組んだzfsで早くもディスク交換を実行することに。手順は次の通り。

  1. ディスクをofflineに変更
  2. シャットダウン後にディスクを取り替える
  3. ディスクをonlineに変更
  4. 同期

状況確認。ada0がREMOVE状態になっている。ソフトウェア上はオンラインだがハードウェア上では「ディスクが外された」状態ということか。

# zpool status
  pool: zpool0
 state: DEGRADED
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zpool0      DEGRADED     0     0     0
          raidz1    DEGRADED     0     0     0
            ada0    REMOVED      0     0     0
            ada1    ONLINE       0     0     0
            ada2    ONLINE       0     0     0
            ada3    ONLINE       0     0     0

errors: No known data errors

ディスクをofflineに変更。ソフトウェアにも「外したよ」と伝える。

# zpool offline zpool0 ada0
# zpool status
  pool: zpool0
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zpool0      DEGRADED     0     0     0
          raidz1    DEGRADED     0     0     0
            ada0    OFFLINE      0     0     0
            ada1    ONLINE       0     0     0
            ada2    ONLINE       0     0     0
            ada3    ONLINE       0     0     0

errors: No known data errors

シャットダウン後にディスクを取り替えて状況確認。

# zpool status
  pool: zpool0
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zpool0      DEGRADED     0     0     0
          raidz1    DEGRADED     0     0     0
            ada0    OFFLINE      0     0     0
            ada1    ONLINE       0     0     0
            ada2    ONLINE       0     0     0
            ada3    ONLINE       0     0     0

errors: No known data errors

ディスクをonlineに変更。onlineにすること自体は成功するが状況がUNAVAILとなる(これは正常)。

# zpool online zpool0 ada0
warning: device 'ada0' onlined, but remains in faulted state
use 'zpool replace' to replace devices that are no longer present

# zpool status
  pool: zpool0
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://www.sun.com/msg/ZFS-8000-4J
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zpool0      DEGRADED     0     0     0
          raidz1    DEGRADED     0     0     0
            ada0    UNAVAIL      0     0     0  corrupted data
            ada1    ONLINE       0     0     0
            ada2    ONLINE       0     0     0
            ada3    ONLINE       0     0     0

errors: No known data errors

データのリプレイス。

#zpool replace zpool0 ada0

リプレイスの途中経過。

# zpool status
  pool: zpool0
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 0h0m, 1.04% done, 1h25m to go
config:

        NAME            STATE     READ WRITE CKSUM
        zpool0          DEGRADED     0     0     0
          raidz1        DEGRADED     0     0     0
            replacing   DEGRADED     0     0     0
              ada0/old  UNAVAIL      0     0     0  cannot open
              ada0      ONLINE       0     0     0  1.28G resilvered
            ada1        ONLINE       0     0     0
            ada2        ONLINE       0     0     0
            ada3        ONLINE       0     0     0

errors: No known data errors

1時間21分でで完了です。

# zpool status
  pool: zpool0
 state: ONLINE
 scrub: resilver completed after 1h21m with 0 errors on Tue Nov  1 00:27:20 2011
config:

        NAME        STATE     READ WRITE CKSUM
        zpool0      ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ada0    ONLINE       0     0     0  123G resilvered
            ada1    ONLINE       0     0     0
            ada2    ONLINE       0     0     0
            ada3    ONLINE       0     0     0

errors: No known data errors