SimpleBoxes

リノベーションは楽じゃない 総集編 - リビング・ダイニング

昨年末から今年始めにかけて行なったリノベーション (改築)。

見所 (?) を数回に分けてお送りしています。

今回は、改築の目玉でもあるリビングルームとダイニングルーム。

ほぼ同一地点から撮ったショットです。

[写真] リビングルーム・リノベーション前後

これはダイングルーム側 (改築前はダイニングとして利用していたサンルーム側) からリビングルームを撮ったショットです。

リビングルームの散らかり具合は無視するとして、改築前後の開放感の違いが分かっていただけると思います。

これを反対に、リビングルーム側から撮影すると……

[写真] ダイニングルーム・リノベーション前後

ダイニングとして利用している面積自体は、改築前後であまり変わっていない、むしろ若干狭くなっているぐらいなんですが、壁がないので、狭苦しさは全く感じません。

キッチンはダイニングの隣に移動 (というか新設) されました。大中小の 3 つの部屋をひとつの大きな LDK にしたことになります。

以前は家の両端に位置してキッチンとダイニングが分断された状態でしたが、ダイニングとキッチンがあるべき位置に収まってぐっと生活の質が向上しています。

床はフローリングの板を貼付けたようなものではなく、マジものの木です。"リム"と呼ばれる非常に固い木を使っています。現在、この「リムの木」は伐採が制限されているので、うちのような古い家にしか使われていないようです。

床下には断熱材などなくむき出し状態でしたが、先日床下に潜り込んで、嫁さんと半日がかりで断熱材を貼付けました。

これまでの関連記事

スポンサーリンク

Serene Bach テストコード

Serene Bach 3 の開発に当たり、ごく簡単なテストコードを作成して、公開前に簡易な動作チェックを行なっています。

lib/ ディレクトリ内にある test/ ディレクトリにテストコードがあります。

先ほど公開した Serene Bach 3.00 beta023 で有効なテストコードは

  • test_initparser.pl
  • test_loadall.pl
  • test_netaws.pl
  • test_netping.pl
  • test_plugins.pl

こられのテストコードをまとめて実行する「_testcases.pl」というスクリプトも用意されています。

これらのテストスクリプトは、lib/test/ をカレントディレクトリとして実行することを想定しています。

これらのテストコードは、テストを実行するためのモジュール sb::Test を使っています。

テストコードのメインルーチンは、非常にシンプルです。

  my $testcase = sb::Test->new();
  $testcase->add('plugins',\&_test,\&_check);
  $testcase->run();

add メソッドでテストケースを追加して、run メソッドで実行します。

add メソッドは、

  1. テスト名
  2. テスト用実行サブルーチン
  3. 期待値チェック

という引数を渡します。

テスト用実行サブルーチンは、関数をリファレンスを指定します。テスト用実行関数は何らかの出力を返して、その返り値を「期待値チェック」でチェックします。

期待値チェックは、期待する値そのものを指定するか、テスト用実行関数をチェックするためのサブルーチンのリファレンスを指定します。

サブルーチンのリファレンスが指定された場合、その期待値チェックサブルーチンには、テスト用実行関数の出力結果が引数として渡されます。

関連記事

スポンサーリンク

リノベーションは楽じゃない 総集編 - バスルーム

昨年末から今年始めにかけて行なったリノベーション (改築)。

見所 (?) を数回に分けてお送りしています。

今回は、大幅にグレードアップされたバスルーム。

[写真] バスルーム・リノベーション前後

改築前の状態がふたつありますが、下の方が改築後とほぼ同一地点からのショットになります。

以前は小さな部屋に小分けされていて、無駄なスペースが多かったバスルーム周りをひとつの部屋にすることですっきりさせました。

床は全面タイル敷きで、壁も 2m 弱の高さまでタイル張りです。シャワー部分には仕切りなどがなく、いわゆる日本式なお風呂場のような使い方もできるようになっています。

改築前・上写真の手前左側に見える壁がシャワールームで、若干圧迫感のある個室のような形になっていました。

トイレ・洗面台だけでなくランドリーも詰め込んだので、若干狭くなるかなとは思いましたが、仕切りがないので、想像以上にゆとりのある感じに仕上がりました。

これまでの関連記事

スポンサーリンク

お小遣い

ログを見直していたら、結婚した折に「お小遣い制」になったと書いてありました。

お小遣い!

おぉ、なんか懐かしい。そう言えば、もらっていました、お小遣い。

ニュージーランドに来てからなんか自然消滅的にもらわなくなった気がするんですが、どうだったかな。

[追記 : 2009.04.18]

こらこらこら、お小遣いなくて生きていけるんかい(汗汗

by がん / コメント欄より

想像していたよりも困ってないです。

そもそもニュージーランドでは現金を持ち歩かないというのも大きいかも。

今はたまたま 10 ドル程度手元にありますが、普段はお札どころか小銭もほとんど持ち歩きません。

たまに嫁さんに「今小銭ある?」って聞かれる時もあるんですが、大抵役に立たない>自分。

お小遣いとしてはもらっていませんが、間食用のお菓子とかはその都度必要に応じて適当に買ったりしています。

スポンサーリンク

Serene Bach テンプレートの互換性問題

Serene Bach 2 のテンプレートでは、入れ子になった独自ブロックを擬似的に扱っています。

一方、Serene Bach 3 のテンプレートでは、入れ子になった独自ブロックをきちんと階層的に扱うように変更されました。

例えば、

_main-1
******
<!-- BEGIN test1 -->
test1-1
<!-- BEGIN test2 -->
test2
<!-- END test2 -->
test1-2
******
<!-- END test1 -->
_main-2

のような構成のテンプレートがあったとして、

  • 独自ブロック test1 を 2 回繰り返す
  • 独自ブロック test2 を 1 回繰り返す

という場合、

_main-1
******
test1-1
test2
test1-2
******
test1-1
test2
test1-2
******
_main-2

のようになるのが自然だと思いますが、Serene Bach 2 ではそのように出力することができませんでした。

Serene Bach 3 では、このような入れ子構成を維持したまま、テンプレート処理を行なうので、期待通りに出力されます。

しかしながら、その代償として「同じ名前の独自ブロックが離れて置かれた」ようなテンプレートに対して、Serene Bach 2 と同じように出力されないという互換性の問題がありました。

例えば、

_main-1
<!-- BEGIN test1 -->
<!-- BEGIN test3 -->
test3-1
<!-- END test3 -->
test1-1
test1-2
<!-- BEGIN test3 -->
test3-2
<!-- END test3 -->
<!-- END test1 -->
_main-2

のような構成のテンプレートがあった場合、独自ブロック test3 が離れた場所に二カ所あります。

これまでの Serene Bach 3 では、このようなテンプレートを Serene Bach 2 と同じように出力することができなかったので、テンプレートの修正が必要になっていました。

この互換性の問題は、Serene Bach 3 の次のβ版リリースで解消されます。これによりテンプレートに関して Serene Bach 2 との互換性がかなり向上しています。

スポンサーリンク

今日の進捗 2009.04.14

問題
与えられた配列の n 番目の要素 (先頭の要素は 0 番目とする) に対して、同じ値を持つ要素が、配列のその要素の前にいくつあるかを返す関数を作成して下さい。

例えば、以下のような配列

A,B,B,B,C,D,E,F,G,G,G,G,H,I,J,J,J,J,J,J,J,J,J,J,K,L

があった場合、

  • n = 0 の時は 0 (値が A である要素はひとつしかない)
  • n = 1 の時は 0 (値が B である最初の要素)
  • n = 2 の時は 1 (値が B である二番目の要素なので 1 を返す)
  • n = 3 の時は 2 (値が B である三番目の要素なので 2 を返す)
  • n = 4 の時は 0 (値が C である要素はひとつしかない)
  • ……以下、続く

のようになります。

とりあえずの解答 (perl のコード) は「続き」に。

続きを読む

スポンサーリンク

リノベーションは楽じゃない 総集編 - 廊下

昨年末から今年始めにかけて行なったリノベーション (改築)。

見所 (?) を数回に分けてお送りしています。

今回は、唯一の増築部分ながら見栄え的にはやや地味な廊下。

ほぼ同一地点から撮ったショットです。

[写真] 廊下・リノベーション前後

増築された箇所が分かるでしょうか。

正面に見える玄関の位置が改築前後で変わっています。

改築後で白いマットが敷いてある辺りが改築前の玄関の位置でした。

「増築部分」はもともと壁に囲まれていた部分でしたので、増築というより「外になっていた部分を内に取り込んだ」といった方が良いかもしれません。

改築前後で照明の位置を変えていないため、広がった奥の部分は若干暗めになっています。

例によって、壁・天井・床の下地・仕上げは、嫁さんとの共同作業です。

床はフローリングになって、ニスのようなものをペイントして仕上げました。

床が乾くまでには数時間かかるので、寝る直前に塗るなど、できるだけ生活に支障が出ないように配慮して、寝室からトイレへの経路も

[写真] 廊下・床ペイント注意

のように確保しました。

これまでの関連記事

スポンサーリンク

Serene Bach 多言語への対応

Serene Bach では、多言語対応を行なうライブラリとして sb::Language というモジュールが用意されています。

sb::Language の主な役割は二つ。

  • 定型文字列の多言語対応
  • 文字コードの変換

Serene Bach 3 になって仕組みは若干変わりましたが、基本的な内容はほぼ一緒です。

定型文字列の取得

例えば、

my $error = sb::Language->get->string('No article.');

のようにすると $error に「No article.」に対応した文字列がセットされます。

比較的よく利用されるインタフェースなので、Serene Bach 3 では

my $error = sb->string('No article.');

という形式のショートカットも用意されています。

言語リソースは特定ディレクトリ内にテキストファイルとして置かれています。

  • リソースディレクトリ (例 : /lib/resource/)
    • ja.txt : 日本語リソース
    • en.txt : 英語リソース

Serene Bach 2 では、基本的な言語リソースはモジュール内に記述されていましたが、Serene Bach 3 では上述のリソースファイルに移っています。

文字コード変換

文字コードの変換処理は sb::Language モジュールにあるインタフェースを利用します。

my $output = sb::Language->get->convert($input,'sjis');

現在のところ、あまり高度で複雑な処理などは想定されてなく、単に Jcode.pm のラッパーとして機能しています。

将来的には標準モジュールである Encode を利用するように変更したいところです。

Serene Bach のコンストラクタ

sb::Language は Singleton オブジェクトなので、どこで取得しても同一なオブジェクトが取得できることが保証されています。

Serene Bach では、new 以外に get がコンストラクタとして利用できます。

sb::Language->get->string('No article.');

のように、より自然な形で利用できるようにしています。

get コンストラクタは、sb::Object を継承した全てのクラスで利用できます。

関連記事

スポンサーリンク

mixi アプリを開発するのに携帯電話のメールアドレスが必須な件

「mixi アプリ」オープンβ版公開ということで、やはり一開発者としては気になるじゃないですか。

アプリ作成手順を見ると、まず開発者登録が必要らしいので、登録してみようと……

け、携帯電話のメールアドレスが必要なんですね、これ。……海外在住なので受け取れません。

そこで mixi 運営事務局にお問い合わせしてみました。頂いた返信メールにて

携帯電話をお持ちではない場合や、対応機種外の携帯をご利用の場合には、申し訳ございませんが、デベロッパー登録を行っていただくことはできかねます。

とのこと。

そう言えば、mixi に参加すること自体、携帯電話のメールアドレスが必須になったんでしたっけ。

携帯からの認証をおこなっていただかない限り、PCからの操作のみでは新規登録はできません。

(中略)

ユーザーの皆様にとってさらに安心感のあるコミュニティとしてmixi をご利用いただくために実施するもので、利用規約で禁止している迷惑行為等の被害を最小限にしていくための、安全性強化に関する取組みのひとつ

[mixi] ヘルプ > 登録 > 携帯がないと登録できないのですか?

ふむふむ。なるほど。

実際のところ、携帯電話のメールアドレスが必須になってから、当然ながら迷惑行為が減ったとして、どの程度の効果がこれまであったのか、一利用者としては気になるところです。

ちなみにインプレスが始めたサービス「GANREF」でもクラブメンバーになるのに mixi 同様「携帯電話のメールアドレスによる認証」が取り入れられています。

でも、mixi と決定的に違うのは、携帯電話がなくても登録する方法が用意されていることです (2009.04.11 現在)。

GANREF では、携帯電話がない場合、住所を記述して認証コードを郵送してもらうことで本人確認を行なっています。

[写真] GANREF から届いた認証メール

実際、私は海外から登録して、携帯電話のメールアドレスなしで GANREF のクラブメンバーになることができました。

ただし、私の場合認証コードの送付先は日本の住所を指定しました (海外の住所を受け付けているかどうかまでは確認していません)。

スポンサーリンク

リノベーションは楽じゃない 総集編 - ゲストルーム

昨年末から今年始めにかけて行なったリノベーション (改築)。

見所 (?) を数回に分けてお送りしています。

今回は、リビングと離れていてアクセスが今ひとつだったキッチンから、生まれ変わったゲストルーム。

ほぼ同一地点から撮ったショットです。

[写真] ゲストルーム・リノベーション前後

キッチンの取り外しはビルダーの方にやってもらいましたが、ペイントと床は嫁さんとの共同作業。

床はビニール敷きなのですが、最初は接着剤の適量が分からず塗りすぎて苦戦した覚えがあります。

ゲストルームは、オンスイート (Ensuite) になっていて、シャワー・トイレ・洗面台がついています。

[写真] ゲストルーム・オンスイート

ゲストルームは南側に位置するのですが、三面に渡って窓があるので、採光は十分です。

ニュージーランドは南半球にあるので、基本的には北側が日当りの良い面になります。

黄ばんでいた壁もすっきりと塗り直したので、明るい部屋になって印象はがらりと変わりました。

これまでの関連記事

スポンサーリンク

9/25