2009年6月アーカイブ

本日、勤務先のオフィスでレイアウト変更が行われました。

相変わらずの役立たずっぷりを存分に発揮した自分ですが、働き者の同僚達のおかげで大過なく作業を終える事が出来ました。作業完了の声を聞く事無く、定時になって帰ってしまいましたが、大丈夫だったんでしょうか?部屋についてから、ふと不安になりました。

所属する技術チームのシマは大移動。部屋の構造的に、熱がこもりやすい場所なのが難点。また、他のシマに比べて、なんだか密度が高すぎる気がします。図面段階では気に入ってたんですが…。自分以外の机が真っ黒なのも、影響しているかもしれません。

自分の机は、窓を背にして全メンバーを見渡せる、「ボスっぽい」位置にあります。別に、偉いわけでもないんですけど、なんだか面白いです。ただ、サービス単位の所属チームのメンバーと向かい合わせになってしまい、予想以上に疎外感があるかもしれません。目線があうのが恥ずかしくて集中するために、ディスプレイを壁にしているわけですが、それが距離を広げたようです。

一方、この配置のおかげで、別サービスのチーム同士が背中合わせになりました。サービス間でのコミュニケーションが今まで以上に活発になる事の方が大事なので、結果オーライです。後は、自分の心がけ次第でしょう。

机の配置の話から飛びますが、スペース的な不都合も生じてしまいました。勤務先では、タスク管理にホワイトボードと付箋を利用しています(BTS 併用)。技術チームは、更に 3 つのチームに分かれて活動しており、それぞれにホワイトボードを用意していました。それが、移動先のスペースでは、ぎりぎり 1 つのホワイトボードが置けるくらいで、かつ、それでは全員のタスク管理を行うには少々手狭なわけです。

そこで、都合良く空いている壁(?)があったので、タスク管理を壁で行う様にしました。折角なので、可能な限り広く使おうと思い、結局 2 m くらい(適当)になりました。おおよそ、今までの倍の広さです。これで、遠慮なく、沢山のタスクカードを貼ってもらう事が出来ます。

ホワイトボードはタスク管理だけでなく、色々なイベント告知や KPT の記録などにも使っていたので、その辺に関してはまだまだ工夫が必要だったりします。まあ、その辺は追々調整していくつもりです。さあ、週明けは全員で朝ミーティングです(ディレクタもあわせると十数名が参加)。

新しいレイアウトに必要な什器がまだ不足している関係で、技術チームのシマの一部が物置になってたりしますが、そこは心の広さを見せつけてやります。見せつけてやりますが、予想以上の圧迫感を後押ししているので、早くどかせられると嬉しいですね…。

えー、まあ、そんな感じで色々ありますが、工夫してなんとか快適に仕事ができる様にしていきたいと思っております。

さしあたっては、熱対策にデスクファンの購入、激しい映り込み対策にアンチグレアフィルムの購入、この 2 点の検討ですね。


デスクファンは、同僚が使っている YAMAZEN のが好評らしいのですが、同じもの持ち込んでいやがられたりしないか不安です。無印あたりのを買うべきでしょうか…。

AGフィルムは、iMac 20 インチ用が必要なので、高すぎるのが難点。価格以前に、奇麗にフィルムを貼る自信がありません。我慢できるなら、した方が良さそうです…。

fast_xs

Hpricot が Rails に勝手にロードされる不思議現象に遭遇し、今更知った fast_xs について。

  1. Rakefile で require 'tasks/rails'
  2. rails の tasks/rails で load 'tasks/misc.rake'
  3. misc.rake で require 'active_support'
  4. active_support で require 'active_support/core_ext'
  5. active_support/core_ext で require 'active_support/core_ext/string'
  6. active_support/core_ext/string で require 'active_support/core_ext/string/xchar'
  7. active_support/core_ext/string/xchar.rb で require 'fast_xs'
  8. なんか Hpricot がロードされとるよ…

環境は Rails 2.1.0, OSX10.5, MacPorts, RubyGems1.3 です。

fast_xs と Hpricot と RubyGems

$ find /opt/local/lib/ruby/gems/1.8/gems -type f -name "*fast_xs*"
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.161/ext/fast_xs/fast_xs.bundle
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.161/ext/fast_xs/fast_xs.c
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.161/ext/fast_xs/fast_xs.o
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.161/lib/universal-darwin9.0/fast_xs.bundle
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.164/ext/fast_xs/fast_xs.bundle
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.164/ext/fast_xs/fast_xs.c
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.164/ext/fast_xs/fast_xs.o
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.164/lib/universal-java1.6/fast_xs.bundle

確かに、Hpricot が fast_xs を同梱している様子。

$ ruby -rrubygems -e 'puts Gem.all_load_paths.select {|path| /hpricot/ =~ path }.join("\n")'
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6/lib/i686-linux
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6/lib
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.161/lib/universal-darwin9.0
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.161/lib
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.164/lib/universal-java1.6
/opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6.164/lib

プラットフォーム(universal-darwin9.0)用のディレクトリもロードパスに含まれるんですね。

$ ruby -rrubygems -e 'p Gem.loaded_specs.has_key?("hpricot"); require "fast_xs"; p Gem.loaded_specs.has_key?("hpricot")'
false
true

require 'fast_xs' すると、Hpricot 同梱の fast_xs がヒットしてロードされ、その spec 名(?)は Hpricot だと。

$ ruby -rrubygems -e 'puts Gem.searcher.find("fast_xs").name'
hpricot

RubyGems の仕組みを追いかけきるのも一苦労なので、この辺で。

fast_xs

RubyForge から wget でダウンロードしたわけですが、異常に時間がかかりました。たまたまのトラブルでしょうか?
RubyForge: fast_xs: Project Info

以下、v0.7 の内容物。

  • fast_xs-0.7/
  • fast_xs-0.7/lib/
  • fast_xs-0.7/lib/fast_xs_monkey_patcher.rb
  • fast_xs-0.7/test/
  • fast_xs-0.7/test/test_cgi_class_overrides.rb
  • fast_xs-0.7/test/test_xml_escaping.rb
  • fast_xs-0.7/test/test_erb_util_module_overrides.rb
  • fast_xs-0.7/ext/
  • fast_xs-0.7/ext/fast_xs/
  • fast_xs-0.7/ext/fast_xs/extconf.rb
  • fast_xs-0.7/ext/fast_xs/fast_xs.c
  • fast_xs-0.7/ext/fast_xs/gcc.h
  • fast_xs-0.7/ext/fast_xs/ruby_1_9_compat.h
  • fast_xs-0.7/ext/fast_xs/fast_xs_type.h
  • fast_xs-0.7/ext/fast_xs_extra/
  • fast_xs-0.7/ext/fast_xs_extra/extconf.rb
  • fast_xs-0.7/ext/fast_xs_extra/fast_xs_extra.c
  • fast_xs-0.7/.gitignore
  • fast_xs-0.7/README
  • fast_xs-0.7/COPYING
  • fast_xs-0.7/Rakefile

以下、README の引用。

= fast_xs, a fast C extension for cleaning XML

== Overview

  The original fast_xs method is based on the xchar code by Sam Ruby:

    http://intertwingly.net/stories/2005/09/28/xchar.rb
    http://intertwingly.net/blog/2005/09/28/XML-Cleansing

  _why also packages an older version with Hpricot (patch in progress).
  It should be compatible with the latest version of this code.

  This is an almost exact translation (to the best of my knowledge :) of
  Sam's original implementation, but it does escape """.
  XML::Builder as packaged in Rails 2.0 will be automatically use
  fast_xs if available.

というわけで。

$ cd fast_xs-0.7
$ rake gem
$ sudo gem install pkg/fast_xs-0.7.19700101.090000.gem
$ ruby -rrubygems -e 'puts Gem.searcher.find("fast_xs").name'
fast_xs

fast_xs を hpricot としてアクティベーションさせたくなければ、fast_xs を fast_xs としてインストールしないと駄目ということですね。

まとめ

fast_xs としてインストールしておけば、Hpricot が勝手にアクティベートされて、バージョン縛りできない問題も解決。

Xbox 360

買ってみた。

自宅の 3 面ディスプレイをやめて 2 面ディスプレイに戻したので、余った 1 枚の使い道を考えてのこと。

最初は、テレビにしようと思ったんですが、アナログだと QVGA が限界っぽく、24 インチのディスプレイにはもったいないのかと思って敬遠。普通に奇麗にみれたりするんですかね?で、だったら、地デジか、と思いチューナーとアンテナを買ってみたものの、自宅では受信できない環境らしく、断念。アンテナが悪いのかと 2 つも買ってしまいました…。

頭にきたので、(滅多にやらないけど)ゲームでも買うか、と。DVD とかみたらいいじゃないか、と安いホームシアターシステムも買っておきました。ひどく散財してますね。

ゲームは Lost Odyssey を購入。FF 派の自分にとってはなじみやすいゲームかな、と。まあ、他に面白そうなのが分からなかったので、分かりやすいのを選んだだけです。FF でスラムダンクでバガボンドで。

しかし、うるさい。ディスクがアホの様にぶんぶん回っている模様。インストールできるって聞いてたんですが、メニューがさっぱり見当たりません。仕方ないので、ホームシアターのテストがてら小一時間ほどゲームを楽しみました。その間、ネットで調べてみると、ネットワークに繋いでシステムをアップデートしないと駄目だとか。…、最初から最新状態のハードであってほしかった…。

なんとか、インストール方法が分かったので、インストール中。


まさか、ディスクが足りなかったりしないだろうな…?

ログをみると、アンマウントされたというよりは、OS がリブートされたらしい。

どうやら、リブートの日時あたりで障害があったとのこと。まったくスルーしてました。
Amazon の『EC2』が落雷により一部で機能停止 - japan.internet.com Webテクノロジー
上記記事に、太平洋時間(PST)の 6/10 19:33 に障害が発生して、6/11 01:20 に復旧完了と書かれているので、JST の 6/11 12:33 から 18:20 の間の出来事なはず。

ログに記録されていたブートの日時は JST で 6/11 14:15:51。多分、この障害に該当しますよね。

件の EC2 インスタンスでは、EBS ボリュームのアタッチ/マウント/アンマウント/デタッチといった操作を、ブートとシャットダウン(起動スクリプト)で行う様にしています。このスクリプトが、正常終了しなかった場合に上手く動かないことが、問題の原因だったようです。

/dev/ 以下をみて、アタッチ予定のデバイスがあれば、マウントだけするといった方法でいいんでしょうかね。

運用始める前で良かった…。


やっぱ、普通に日本の VPS を使った方が簡単なのかな…。

プロフィール

このアーカイブについて

このページには、2009年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年5月です。

次のアーカイブは2009年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。