マンションのネットがJ:COMに統一されるということで工事の人が来た。マンションの大家としてはTV・ネット・電話が一括して一つの業者になることで手間が省け、インターネットが無料で使えるマンションという謳い文句も使えるようになるので一石二鳥といったところ。

しかし住民にとっては強制でJ:COMというのは厳しい。表向きは「大家が一部料金を負担するのでお得ですよ」だが、実質ネットの新規契約になるので手続きは面倒だし、今日日のネット新規契約には大量のキャッシュバックや特典がついてくるので大して魅力的ではない。自動的にもらえる固定電話番号も使わない。

ネット業者の移行と工事

今まではNTTフレッツ光とSo-netで月に約5000円かかっていたのをJ:COMのJ:COM NET ウルトラ160Mコースに変更した。基本は5250円だが、大家の負担で3840円で利用できる。

ケーブルTV設置とネット回線設置の工事のため2日間立ち会った。その際に強制的にJ:COMのセットトップボックスと上がり速度を安定させるという謎のブースターやACアダプタが設置された。邪魔だ。

邪魔なセットトップボックス。

謎のブースター。

回線速度

フレッツ光とJCOM: NET ウルトラ160Mコースとで回線速度を測ってみた。(BNR スピードテスト 回線速度/通信速度 測定

フレッツ光:

------ BNRスピードテスト (ダウンロード速度) ------
測定サイト: http://www.musen-lan.com/speed/ Ver5.3003
測定日時: 2012/09/09 11:30:06
回線/ISP/地域: 
--------------------------------------------------
1.NTTPC(WebARENA)1: 53.10Mbps (6.64MB/sec)
2.NTTPC(WebARENA)2: 57.40Mbps (7.17MB/sec)
推定転送速度: 57.40Mbps (7.17MB/sec)

JCOM: NET ウルトラ160Mコース:

------ BNRスピードテスト (ダウンロード速度) ------
測定サイト: http://www.musen-lan.com/speed/ Ver5.3003
測定日時: 2012/09/09 11:47:00
回線/ISP/地域: 
--------------------------------------------------
1.NTTPC(WebARENA)1: 76.79Mbps (9.60MB/sec)
2.NTTPC(WebARENA)2: 3.52Mbps (439.76KB/sec)
推定転送速度: 76.79Mbps (9.60MB/sec)

ちょっと速くなっている。

感想

ケーブルTVなど見ないのでセットトップボックスは非常に邪魔だ。しかし、全く期待してなかった下り速度が上がったのは少し嬉しい。ニコ動で体感できる程であればなお嬉しい。

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)

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