トップ «前の日(07-22) 最新 次の日(07-24)» 追記

2004-07-23

_ 安眠はどこにある

うるささと暑さを両方いっぺんに解決する方法として耳栓をして窓を開けて寝るという方法を昨日試し、「うまくいった」と喜んでいたのだが、昨日うまくいったのは偶然だったようだ。今日はやはり午前3時に轟音で目が覚めた。なぜなら、

耳栓が取れていたから。

昨日はたまたま寝返り方で耳栓が取れなかったが、朝まで耳栓をしているとは限らないのが現実のようだ。こりゃ安眠ソリューションとして失格か。

Tags: 日々

_ トトロで泣いた

@金曜ロードショー

カンタのばあちゃんがドーラの声に似ているような感じがして調べたら全然違った。

しかし、トトロで泣けるとは。年を取るのも悪くないかもしんない。

Tags: 日々 TV

2005-07-23

_ カントリーサイン10コげと。

先週末に3泊4日で北海道をドライブした。すっかりどうでしょうバカの称号を得るレベルに達した私は当然のようにカントリーサインの撮影を行った。とは言えカントリーサインを見つけたら停車するってなことはしてないので撮れたものは見つけたものの一部に過ぎない。撮影に成功したのは以下のカントリーサイン。

あえてすべてノートリミングでどうぞ。全部自分で撮影したわけじゃないけど。

中富良野町中富良野町カントリーサイン
芽室町芽室町カントリーサイン
帯広市帯広市カントリーサイン
池田町池田町カントリーサイン
本別町本別町カントリーサイン
足寄町足寄町カントリーサイン
阿寒町阿寒町カントリーサイン
美幌町美幌町カントリーサイン
標茶町標茶町カントリーサイン
釧路町釧路町カントリーサイン
Tags: Photo 日々

2007-07-23

_ javascript.el は googlecode にあった

mewde - Google Code

あちこちで紹介されている割に本家が存在しなくなっていたような感じの javascript.el は googlecode にありました。

これで一安心だなー。いつまでもリンク先が 404 や 410 を返してたものはさすがに使いたくないもの。


2008-07-23

_ 今さらながら Hpricot は便利

Hpricot, a fast and delightful HTML parser

なんと言っても

HTML でも XHTML でもそれなりに同じように動く

っていうさじ加減が絶妙すぎる。

XML を対象にした便利なツールは実は結構たくさんある。でも世界の Web 上になんとかソースは存在しているが欲しい形にはなってなくて不便、という類いの情報って実は圧倒的に XHTML でないことが多い。だから XML を対象にした便利ツールの大半は使いものにならない。

ブラウザ上では早くから HTML でも XHTML でも DOM 操作は可能だったし、今は XPath も CSS セレクタも使える、といった具合でどんどん便利になっている。でもサーバ側というか非ブラウザ環境ではゴリゴリ正規表現書いたり、なんだか不便な状況が続いていたように思う。特に PHP は C の wrapper なので XML 関数は充実しているんだけど全然使えないという悲しい状況だった。*1

これがあーた。何この Hpricot の楽さ。これに open-uri を組み合わせればまるで remote include 可能な PHP のように作業を始められる。

require 'open-uri'
require 'kconv'
require 'rubygems'
require 'hpricot'

Hpricot( open( URL ).read.toutf8 )

また Hpricot::Elem オブジェクトは inspect を書き換えているので、単に p しただけでどのような要素が取得できているのかチェックできて楽ちん。

気が利くなぁ。気が利くよ。さすが why だよ。抜けるところは手を抜くところもさすがだよ。Syck の to_yaml() も個人的にはすげー困るけど、しょうがないかなぁという気もしてきちゃうよ。

Tags: Ruby Web

*1 だから個人的には Pear の XML_HTMLSax3 を wrap して stack を用意することで階層構造のチェックが可能なものを使っている。結果を serialize して cache しちゃえばそれなりの速度で動いてくれる。


2016-07-23

_ RSpec 3に移行するのそんなに大変じゃないかも

以前作った Rails アプリの一部を分離したアプリに Pact を利用して API を実装しようとしたんだけど、昨日 RSpec 2 では動かないということが発覚したので RSpec 3 への移行作業。

ひじょーに気が重くて避けられるなら避けたかったので無駄に Pact の内部のコードを追いかけてしまったが、結論から言うと自分の使い方では RSpec 3 への移行コストは割と杞憂だったようだ。

以下、やったことをざざっとメモ。なお、アップグレード対象バージョンは 2.99 → 3.5.1

  • spec_helper.rb を退避して rails g から spec_helper.rb, rails_helper.rb を上書きインストール
  • rspec-rails は spec_helper ではなく rails_helper を呼べということでエディタの力でエイヤ
    • rails_helper.rb の中だけ手で書き戻す
  • subject, should の部分は特に直す必要がなかった(たぶん事前の情報で最小限で済むように準備しておいたのだろう)
  • be_true, be_false はエディタの力でエイヤ。
  • 時間が掛かったのは RR
Tags: Ruby RSpec

_ RRはRSpec 3には対応していない。でも…。

最近はそうでもないんだけど、以前は RSpec の test double の記法がどうしても納得いかなくて RR というライブラリを一部のテストに採用している。今回この RR を採用しているプロジェクトの RSpec を 2 から 3 に上げて動かなくなったのでその対処について。

結論から言うと RR 自体は RSpec 3 には対応していない。

rr/rr: RR is a test double framework that features a rich selection of double techniques and a terse syntax.

as well as the following test frameworks:

Support for Rspec 3 · Issue #65 · rr/rr

There is no plan to support RSpec 3.
If we support RSpec 3, we'll create rspec-rr gem instead of implementing RSpec 3 support into rr itself.

アッハイ。

でも実際には

stub(Klass).method {}

RR.stub(Klass).method {}

に書き換えれば動く。

本来 RSpec 3 は stub, mock を double の alias に使わないとかグローバル汚染させないモードもあるらしいので、共存することもできるんじゃないかという気がしたんだけど、なんか割と小さい変更で動くようになってしまったのでどうでもよくなってしまった。

少なくとも RR で書いていたものをすべて RSpec や Minitest の double の書き方に合わせ直す方がはるかに面倒だし、この程度で済めば御の字だろう。

[2016-07-27 追記]

after { RR.reset }

がないとあちこち変な動きをするみたい。

Tags: Ruby RSpec