Selenium RCをインストール

PHPUnitをインストール

PHPUnit_Seleniumをインストール。

% pear install phpunit/PHPUnit_Selenium

testを書く(ファイル名はクラスと同じCamelCase)

test/integrations/LoginTest.php

<?php
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class LoginTest extends PHPUnit_Extensions_SeleniumTestCase
{
    protected function setUp()
    {
        $this->setBrowser('*firefox');
        $this->setBrowserUrl('http://foo/');
    }

    public function testTitle()
    {
        $this->open('/sign_in');
        $this->assertTitle('Sign In');
        $this->type('account', 'foo');
        $this->type('password', 'password');
        $this->submitAndWait('user_form');
        $this->assertTitle('Dashboard');
    }
}
?>

実行。対象ディレクトリ以下のなんとかTest.phpを全部実行する。

$ phpunit test/integrations
# config/deploy.rb:
set :default_stage, "staging"

こう書くとcap deployでデフォルトstagingに行くようになる。

何がLinuxデスクトップを殺したか(What Killed the Linux Desktop 日本語訳)

要約すると、(a) 第一の要因:物事があまりに早く変化し、オープンソースも独占ソフトウェアも同じように壊れる。(b) Linux ディストリビューション間の非互換性。

これがデスクトップ分野で Linux をターゲットとしようとするサードパーティの開発者のエコシステムを殺した。一度は挑戦して、「トップ」ディストロや寛容な人なら「トップ3」ディストロをサポートするのに最善を尽くすだろう。それで知ることになるのは、6ヵ月後にはそのソフトウェアがもう動かないということだけ。

何か覚えのある感覚。僕(ら)はサーバー用OSとしてDebianを選ぶのにも同じような考えをしているなと思いました。

Linuxはサーバー分野では成功して、沢山のサードパーティー開発者(僕も)に使われている。サーバー分野でサードパーティー開発者が作るプロプライエタリなソフトといえばWebアプリだ。サーバー分野では上記の様な問題があまり無いからだ。

僕らにとってVistaがコケたことに対応する出来事はRedhatがフリー版の提供を辞めた事だった。事実上の標準だったRedhatが使えなくなるというのでみんなパニックになった。Fedoraに行った人は暫くして立ち上がったCentOSを使い始めた。または僕も含め、多くの人がそれを機会にDebianに移った。確かSergeが出るちょっと前ぐらいだったように記憶しているけど、プロプライエタリなWebアプリを作るサードパーティー開発者(僕だ)にとってDebianは楽園だった。安定版は一度セットアップすれば殆ど手がかからなかったし、APIの変更で自分たちのアプリにも変更が必要ということはまず無かった。OSのメジャーアップデートは再起動無しに出来た。

2012年の現在でも楽園は健在だ。現在の安定版Squeezeはやはり安定していて、丁度昨日も一つセットアップしてきたところだ。レガシーのPHPアプリケーションをSqueezeに持ってきたところ、すっかり動作した。Debian万歳。

サーバー用途でもGUIを重視する必要があるWindowsやMac OS Xに比べて、GUIを切り捨ててサーバー用途の安定性を重視した為、比較的少ない対象に開発リソースを集中できていることがその原因だろう。その代償としてのGUI周りの不安定さならば僕は受け入れてしまうだろう・・・。

PCを新しいケースに入れ替えてからどうも家に帰ってきてつけてからWindowsが立ち上がるまで遅くなってる気がする。

起動画面を見ているとPXEの文字が。

(PXEって確かネットワークブートの規格だよなあ?)

ネットワークブートしようとしてDHCPを探しに行ってる間、待ってる時間分遅くなってるようでした。

BIOSのBoot Sequenceの設定を見てみると何故かEthernetが1stになっている。戻してやったら治りました。

日本語ファイル名の問題

svnで日本語ファイル名を使ってるとMAC-UTF8では違うファイル名ってことになるのでcheckoutしてきただけで変更扱いになる。

% brew install subversion --unicode-path

--unicode-pathを付けてbrewからインストールすればOK。

svn1.6系から1.7系へのアップグレード

1.7から.svnディレクトリはgitのようにトップディレクトリにしか作られなくなる(!)

1.6系以前のworking copyは変換が必要。

% svn upgrade

サーバー側のsvnが1.6系であっても下位互換があるので安心。

cakephp1.3系(+svn)のプロジェクトのテコ入れ的な仕事をやることになったのですが、php浦島状態です。下記、もしわかれば教えていただけるとありがたいです!

  • エンドツーエンドテストがしたい。(selenium rc+simpletestなのかな?)
  • CIしたい。(jenkins + selenium rc+simpletest or phpunitとかでできるのかな?)
  • migrationしたい。(若干あきらめ気味)
  • deployはどうやるんだろう?
  • stagingとproductionを簡単に切り替えるdeployがしたい(贅沢?)

識者の方、なにとぞ、なにとぞ・・・ m(_ _)m

追記:

@yandoさんに教えてもらった情報。

migration = migration plugin

deploy =cap-cake (capistrano)

あとはエンドツーエンドテストが気になります。(個人的にbehatはやり過ぎ感)

デフォルトでデスクトップじゃなくてPicturesに入って欲しいだろう。常識的に考えて。

% defaults write com.apple.screencapture location ~/Pictures
% killall SystemUIServer

u2plusにグッズのサイトができたので買いました。

ゆううつグッズ部公式サイト

あとは神の薬、サインバルタのTシャツが欲しいです。

先日、業務時間内に弊社インターンシップ中の@hrysdさんに対して不適切な発言がございましたのでここにお詫び申し上げます。

@hrysd「今作ろうとしてるgemでTwitterのgemみたいに設定出来るようにしたいんですけど、ココってどういう意味ですか?」

俺「どれ?」

@hrysd「ここのconfigurableの中のやつです。」

俺「どれどれ・・・?」

Twitter.configure do |config|
  config.consumer_key       = YOUR_CONSUMER_KEY
  config.consumer_secret    = YOUR_CONSUMER_SECRET
  config.oauth_token        = YOUR_OAUTH_TOKEN
  config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end

module Twitter
  module Configurable
    attr_writer :consumer_key, :consumer_secret, :oauth_token, :oauth_token_secret

(...)

  # Convenience method to allow configuration options to be set in a block
  def configure
    yield self
    self
  end

(...)

end

@hrysd「このyieldってのが、」

俺「色気付きやがって・・・」

@hrysd「え?」

俺「こんな小洒落た設定方法・・・」

@hrysd「え?」

俺「チンカスの分際でblockで設定したいなんて早いんだよ!」

@hrysd「え~」

俺「アクセサを使え!アクセサを!」

誤)チンカス

正)人間(Human being)

大変申し訳ございませんでした。

[mixi] 引継ぎ

3月一杯で退職だったので業務の引継ぎをやってました。

@milkcocoaさんには特に引き継ぐ事が無かったのでその場で考えた一発ギャグを引き継ごうとしたら断られました。

4月1日から毎日フィヨルド生活になりました。

スパムきっかけで久しぶりにmixiをみたら2010年の日記。全然覚えてないけどどんな一発ギャグだったんだろうなあ。