SimpleBoxes

MacBook Air が発表された

MacBook 使いとしてはやはり気になる新型ラップトップ、MacBook Air が発表されました。

[画像]MacBook Air © 2008 Apple Inc.

ご近所 (?) さんでは、あちらのお方が購入を決められたようです。なんですが、書いていいのか分からないので、保留。[2008.02.07 追記]公にされていたので修正。

数値だけではその薄さがまだ実感できないのですが、かなり薄いようです。……というか、薄く感じるようにデザインしている、という感じでしょうか。

重さは 1.36Kg。日本で売れているようなサブノートクラスの PC から見ると、驚くほどの重さではないかもしれません。

「フルサイズキーボード搭載」という時点で、サブノートクラスのサイズ・重さは厳しいと思います。日本市場だけをターゲットにしたマシンではないと思うので、サイズ・重さに関しては妥当なスペックだと個人的には感じています。

Apple からリリースされたラップトップという観点で見ると、1.36kg は文句なく最軽量です。そもそも 2.0 kgを切るものが、かなり久々で、私の記憶が確かならば、PowerBook 2400 以来となると思うので、9 年ぶりでしょうか。

シングルスピンドルマシンも PowerBook 2400 以来だと思います。SSD を使ったノンスピンドルマシンは Apple ラップトップとしては初。

日本では、以前から Apple からの軽量ラップトップが待望されている印象がありましたが、PowerBook 2400 の失敗があってから、これまでなかなか 2.0kg を切るようなラップトップマシンは出ることがありませんでした。

そんな中、世界的にもラップトップの方が売れるという状況になって、軽量ラップトップもいけるという流れになってきたと Apple が判断したのでしょうか。

Power Mac G4 Cube のような尖ったデザインのマシンだなという印象を受けました。ラップトップマシンとしてのまとめ方・見せ方は良くも悪くも Apple (というか、スティーブ・ジョブス、ジョナサン・アイブら Apple 首脳陣) らしい感じがします。

MacBook Airは10年ぶりに出た新時代のiMacだ!!という意見には、なんとなく同意なんですが、ひとつだけ気になったのが、その設定価格。

これが 20 万円を切っていて、MacBook の価格帯にかぶっていれば、印象ががらりと変わっていたんじゃないかと思います。価格という面で iMac とは、若干立ち位置が違うような印象を受けています。

光学式ドライブをばっさり削ったのは、賛否あるかと思うのですが、個人的には案外いけるんじゃないかと思っています。

実は、ここ半年ばかり所有していた MacBook の光学式ドライブが全く利用できず、図らずも光学式ドライブなしのラップトップを体感していました。

光学式ドライブがなくても、案外日常の作業はこなせました。意外と光学式ドライブないと辛いって状況は少ない。

MacBook Air は、無線 LAN などの周辺技術を利用して、光学式ドライブがないという部分をカバーしているようなので、その点で「光学式ドライブなし」は大きな欠点ではないと思います。

しかしながら「CD から iTunes に音楽を取り込みたい」とか「以前のバックアップデータを確認したい」とか、ちょっとしたことでストレスを感じたのは事実で、個人的にはやっぱり光学式ドライブあった方がいいなぁとは思っています。

ちなみに私個人としては、現状のラインナップで、MacBook と MacBook Air のどちらを選ぶというのであれば、MacBook になるでしょう。

  • MacBook をほぼ毎日持ち歩いているが、重くて難儀したという印象がない。
  • メモリ・ハードディスクドライブのアップデートが容易である。
  • なんと言っても安く、コストパフォーマンスが良い。

結局のところ「ちょっと高いなぁ」というのが一番感じてしまったところでしょうか。

もっとも実際 MacBook Air を目にして手にしたら、印象ががらりと変わってしまう可能性は否定できません。そのぐらい外観的なインパクトはあります。

スポンサーリンク

東京ディズニーリゾートに行ってきました

2008.01.08 から一泊二日で東京ディズニーリゾートに行ってきました。初日に東京ディズニーシー、二日目に東京ディズニーランド。

娘はちょっと前からディズニープリンセスに大はまりで、今回の日本滞在では、この東京ディズニーリゾート訪問が最大の目玉の一つになるかと思います。

私自身はこれまでに東京ディズニーランドに二、三度行っています。ただ、最後に行ったのは 10 年以上も前のことで、まだ東京ディズニーシーはありませんでした。

東京ディズニーシー

東京ディズニーシーへの訪問はこれが初めてです。

パーク内の雰囲気作り (建物やオブジェなど) はディズニーランドよりも凝っている印象がありました。

[写真]ディズニーシー入口。一歩入ると大きな地球儀がお出迎え。一気に「非日常」に引き込まれます

[写真]メディテレーニアンハーバーへ向かう。地中海沿岸の街並みの雰囲気はばっちり。

[写真]ヴェニスっぽい夜景?夜も雰囲気が出ています。

  • アリエルのグリーティンググロット (マーメイドラグーン)
  • マーメイドラグーンシアター (マーメイドラグーン)
  • マジックランプシアター (アラビアンコースト)
  • タワー・オブ・テラー (アメリカンウォーターフロント)
  • ディズニーシー・トランジットスチーマーライン (アメリカンウォーターフロント)

といったアトラクションに参加しました。エンターテイメントを見る方にやや重点を置いていたため、あまりアトラクションには参加していない感じ。

「アリエルのグリーティンググロット」は、リトルマーメイドの主人公アリエルと一緒に写真を撮るというものですが、うちの娘は少し会話もしたようです。曰く「英語っぽい日本語しゃべってた!

フリーフォール系のアトラクションは苦手なんですが、「タワー・オブ・テラー」がそうとは知らず乗ってしまいました。多分二度と乗ることはないでしょう。

「マジックランプシアター」は、楽しい演出で面白かったです。単なるマジックショーではなく、ディズニーらしいちょっとしたアクセントがあったのがよかった。

  • ミート&スマイル (メディテレーニアンハーバー)
  • レジェンド・オブ・ミシカ (メディテレーニアンハーバー)
  • オーバー・ザ・ウェイブ (アメリカンウォーターフロント)
  • ブラヴィッシーモ! (メディテレーニアンハーバー)

いくつかエンターテイメントも見ました。特に「レジェンド・オブ・ミシカ」と「ブラヴィッシーモ!」はかなり大掛かりなものです。

ただ、個人的にはこじんまりした「ミート&スマイル」が一番楽しめました。

[写真]ミート & スマイルでキャラクターがご挨拶。馴染みのキャラクターが近くで見れますし、親近感があります。

「オーバー・ザ・ウェイブ」は、夕方に見たのですが、野外での鑑賞はちょっと寒かった印象が強く、楽しめたかどうかは微妙。うちの娘は楽しんでいたようなので、よかったんですが。

1 月のこの時期は、新学期が始まってすぐということもあって、ディズニーのテーマパークとしてはかなりゆったりと回ることができました。入場者が少ないと、ファストパスも発行しないようです。ファストパスがなくてもどのアトラクションもほぼ待ち時間がない状態で参加できました。

一番待ったのは「アリエルのグリーティンググロット」です。これはアトラクションの性質上、仕方ないかもしれません。

閑散期なので、アトラクションのメンテナンスをしていることもありますが、それを考慮しても、この時期にディズニーリゾートに行くのはオススメと言えます。

東京ディズニーランド

実は、前日の 2008.01.08 に東京ディズニーランドでは、「パレード中にフロートの支柱が折れて落下する」という事故が発生していました。

ホテルに戻ってからもテレビなどを見ることもなく就寝したので、パレードの中止を知ったのは、東京ディズニーランドに入場してから。

パレードを楽しみにしていたうちの両親は、やや怒っていましたが、私自身は寒い中場所取りなどをする必要がなくなってややほっとしたり……。

[写真]ディズニーランドのシンボル的存在、シンデレラ城。ディズニーランドのトレードマーク。ちょっと遠くからの撮影でピンボケ気味

[写真]トゥーンタウンの一コマ。トゥーンタウンの建物はデフォルメされていて面白い

[写真]シンデレラ城の前でウェンディとピーターパンを発見。ウェンディとピーターパンがちょっとした寸劇をしてくれました

  • バズ・ライトイヤーのアストロブラスター (トゥモローランド)
  • スペース・マウンテン (トゥモローランド)
  • スター・ツアーズ (トゥモローランド)
  • ジョリートロリー (トゥーンタウン)
  • ロジャーラビットのカートゥーンスピン (トゥーンタウン)
  • 白雪姫と七人のこびと (ファンタジーランド)
  • プーさんのハニーハント (ファンタジーランド)
  • 空飛ぶダンボ (ファンタジーランド)
  • ジャングルクルーズ (アドベンチャーランド)
  • カリブの海賊 (アドベンチャーランド)

「ミクロアドベンチャー!」「イッツ・ア・スモールワールド」は、残念ながらメンテナンスのため参加できませんでした。

この日もいつもの東京ディズニーランドに比べれば、ゆったりしていたと思うのですが、メンテナンス中のアトラクションが多め、パレードが中止になってしまった、などの要因もあって前日の東京ディズニーシーと比べると待ち時間がありました。

「スペース・マウンテン」は、私が記憶していたよりもスピード感があってちょっと驚きました。調べてみたら、一度リニューアルしていた模様。その影響かもしれません。娘にはスピードありすぎるかな?と思ったのですが「楽しかった!」と言っていました。

暇つぶしに行こうかと私が持ちかけた「スター・ツアーズ」は娘からも嫁さんからも大不評。す、すまん。

ディズニープリンセスが出てくる数少ないアトラクション「白雪姫と七人のこびと」は、お化け屋敷のような雰囲気だと思うのですが、娘は気に入ったようで 2 回乗りました。

個人的に一番楽しみにしていた「プーさんのハニーハント」は、さすがの人気で、これだけはファストパスを取得して参加しました。

「プーさんのハニーハント」は、評判どおりよくできているなぁと感心することしきり。

[写真]絵本の中に入り込むような錯覚。絵本に入り込む雰囲気。待っている間も楽しい

乗ったハニーポッドが決められたコースを回る仕組みなのですが、レールがなくあたかもポッドが勝手に動いてるよう。レールがないおかげで、他のライドものアトラクションのように場内を暗くする必要がなく、場内が明るくてかなり新鮮でした。

「決められた」と言ってもいくつかコースが設定されているようで、そのうちどれを通るかは乗ってみるまで分からないそうです。

パレードが中止になったため、挨拶回り?のちょっとした行進がありました。

[写真]パレード代わりの挨拶行進。パレードの代わりにバンドを引き連れて挨拶回り

パレードでは無理であろう、キャラクタとの握手ができたりしたので、個人的にはこれで十分という気も……。

スポンサーリンク

年始の挨拶?

ニュージーランドに戻ってきました。遅くなりましたが、今年もよろしくお願いします。

寒い日本から……特に戻ってくる当日は朝から雪が降っていました……暑いニュージーランドへ。

この夏は、ここ二、三年で一番暑いような気がします。季節ぼけと時差ぼけで、なかなか頭も身体も切り替わってくれない感じです。

このひと月で、色々書き留めておきたいことが溜まっています。とりあえず、これから触れようと思っている「ネタ」について、本当に後日触れられるかどうかは分かりませんが、箇条書きで残しておきます。

帰省前に修理に出した MacBook は、無事戻ってきました。

日本滞在中に購入したメモリとハードディスクドライブを早速インストールして、セットアップ作業にいそしんでいます。……いつ終わるかな。

スポンサーリンク

英語力と海外生活 - 「留学で人生を棒に振る日本人」を読んで

留学で人生を棒に振る日本人―“英語コンプレックス”が生み出す悲劇

留学で人生を棒に振る日本人 (著・栄陽子、扶桑社新書) を読了しました。

読みやすい文体で、さほど厚くもないため、半日もかからずにさっくり読めました。

主にアメリカへの留学に関して重点を置かれて記述されています。ニュージーランドは市場が狭いせいでしょう、この本では名前こそ挙げられてはいますが、ほぼ触れられていませんでした。

とは言え、(学校のシステムは異なっても) 根本的な思想という部分では、基本的に一緒だと思いますので、ニュージーランドへの留学に関しても通じる部分があると思います。

私も詳しいわけではありませんが、ニュージーランドの学校のシステムはアメリカよりもイギリスやオーストラリアに近いと思います。イギリスやオーストラリアについては、この本でも多少触れられています。

とりあえず、ニュージーランドで生活している身から見た「留学エージェント」の姿は、大体こんなものだろうと思いました (もっとひどいぐらいに考えていてもいいかもしれません)。

この本は「留学」と銘打っていますが、留学という点に拘らず、「英語」という「道具」に対する姿勢について、頷ける点が多くあります。

言葉とは不思議なもので、母国語の力以上に外国語は伸びない、という特性があります。

留学で人生を棒に振る日本人 pp.52

私よりはるかに英語が堪能な嫁さんも常々同じことを言っています。

これは私にも当てはまっていて、私の日本語力は学歴 (大学院卒業) に相応しているかというと、首を傾げざるを得ません。

英語に限らず、日本語の使い方についてもよく嫁さんに指摘されます。私の場合、英語力が低いというより、言語力そのものが基本的に低いと感じています。

この本でも触れられていますが、英語 (外国語) の学習時期についても参考になると思います。個人差が大きくあるので、断言はできかねますが、英語 (外国語) を学び始めるのは早ければ早いほど良いというのは、正しいとは思えません。

「英語を学びたい」「英語がしゃべれるようになりたい」と一度も考えたことのない日本人は、たぶんいないのではないのではないでしょうか。

留学で人生を棒に振る日本人 pp.171

私の場合、考えたことがないという言うとおそらく嘘になってしまうような気がします。

そういう気持ちが全くなかった訳ではありませんが、先にも言ったとおり「学びたい」よりも「できれば避けたい」でしたし、「しゃべれるようになりたい」よりも「しゃべれる人がうらやましい」でした。

うらやましいというか、恨めしいって感じでしょうか。「うらやましいから自分も」とはならずに、「自分にはちょっと無理」とか「元より才能がない」というような諦めに近い意識があったような気がします。

実のところ、英語を勉強したときに得られる達成感は、数学や物理を勉強したときに得られる達成感よりも私にとってはるかに低いものだったという面も大きかったのではないかと思います。「英語ができないと」という切迫感もなかったので、優先度が低かったのだと……。

ところが「英語力は武器になる」と考える人達は、どうも英語力がありさえすればステップ・アップが叶うと信じているようですが

留学で人生を棒に振る日本人 pp.172

英語力がありさえすればステップ・アップ」というは、実感としてほとんどないと言って差し支えないような気がします。

もっとも、相応レベルの英語力は「あって当然」という雰囲気を感じたことは多くあります。

海外では「英語力のレベルよりも、あなたは何ができるのか」が問われます。

留学で人生を棒に振る日本人 pp.172

だと思います。実際、私が勤めている会社では、英語力よりも技術力のほうを優先的に評価されます。

英語力に関して、ネイティブスピーカーより明らかに劣る私が、その他大勢のネイティブスピーカーに混じってやっていけているのは、そうした面を評価してもらっているからだと思います。

「英語は大事、けれども一番ではない」と英語圏で生活してきて実感しています。

実のところ、英語が堪能というだけでは、他人と英語で対話することはできないと思います。

例えば、子どもの話題をするにしても日頃から子どもと接していないとそもそも子どもの話題をすることができません。逆に話題に対して大きく関心があれば、英語が少々できなくても十分に対話することができるという場面は多くあると思います。

まだ海外生活に関してはひよっこな私ですが、そんなことをちょっと感じました。

スポンサーリンク

日本へ

明日より日本に帰省します。

一年半ぶりの日本になります。当初思っていたよりもやや速いペースの訪日になるのですが、これは貯めたマイレージの有効期限が迫ってきたのが最大の要因です。

今回、この帰省にあわせて MacBook を修理に出すことにしました。

  • DVD ドライブが動作しない。
  • iSight が動作しない。
  • 液晶画面が時おりチカチカする。
  • パームレストが黄ばんできた。

これらの症状を直してもらおうと思っています。

明日早朝には出発なので、すでに手元には MacBook がありません。

この記事は、iPod touch で書いています。文章全体を見渡せないのがちょっとつらいです。

毎日 MacBook を持ち歩いていたので、手元にないのがやや不安ですが、なれるでしょうか......。

ともあれ、行ってきます。皆様、良いお年を。

[2008/12/24 追記] 昨日、日本に無事到着しました。ここに追記として補足しておきます。

スポンサーリンク

ニュージーランドに住むということ

よぉく聞かれる質問のひとつに「どうしてニュージーランドに移住しようと思ったのですか」というのがあります。

直接は関係ないのですが、「好きを貫く」よりも、もっと気分よく生きる方法を始めたとした一連の「好きを貫くということ」をつらつらと眺めていて、ふと思い出したことでもあります。

複数の要因があって、

  • 「ニュージーランドという国」が気に入った
  • 「日本という枠に囚われることなく生活するスキル」を身につけたいという意識
  • 「日本から抜け出したい」という当時のややネガティブな心理状況
  • 「他人とは少し違うことをする」のが格好いいと思う自己陶酔的な意識

などが挙げられるでしょうか。

「自分のスキルが海外でどの程度通用するか」という興味もなくはありませんでしたが、上述の理由に比べれば微々たる意識だったように思います。

「ニュージーランドという国」には、「自然が豊か」「治安が比較的良い」「地政学的にホットな場所ではない」など地理的・政治的な面での魅力があります。それと共に個人的に強く感じたのは、ライフスタイル (ワークスタイル) のあり方でした。

家族や個人に対しての考え方というか、システム的な違いを感じることがあります。

例えば、うちの会社では、年次有休以外に「病欠」が別枠であり、有休とは別に利用できます。

この「病欠」は個人の風邪や怪我はもちろん、家族の風邪や怪我に対しても利用できます。つまり「うちの嫁さんが風邪引いてしまったので、病欠します」というのが、普通に理解されます。それが「当たり前」だと皆が思っています。

考えてみるまでもなく、パートナーが家族内での役割 (例えば、家事など) をこなしてくれるからこそ、私が会社に来れるわけです。このシステムは理にかなっていると思いますし、私や嫁さんの感覚にもぴったりと合います。

Re: 仕事は7.5時間で終わらせる」で触れた通り、忙しくなってくると、休出する場合もありますが、基本的には日頃の残業もほぼなく、自分のペースで仕事をします。また、それで回るようにスケジュールを調整します。

結果、家族や個人に利用できる時間が増えます。ニュージーランドに来ることなく日本で働いていたら、sb/Serene Bach は生まれなかった可能性が高いような気がします。

もちろん、日本にいた頃もできるだけ家族や個人の時間を取れるような体勢を意識的に作ってはいました。

お昼休みに自宅に戻って、娘を沐浴させたり、家族で一緒に食事したり……。フレックス制度を利用して早めに出勤し、その分他の人よりも早く帰宅するようにもしていました。休出は (上司が私に依頼するのを躊躇する程) できるだけしないようにもしていました。

お昼休みに帰宅して昼食を取れるぐらい近所に住んでいたので、「何かあったらいつでも呼んで下さい」と言ってはいました。

日本では、意識的に実践しないとなかなかできず、それでも不十分でしたが、ニュージーランドでは、自然と実践できるような感じです。

ニュージーランドは移民国家と言って差し支えないでしょう。自然、多種多様な人たちとの触れ合う機会が増えます。

うちの娘の小学校のクラスは、19 名の生徒がいますが、出身地 (厳密には親の出身地・国籍) は見事にばらばらで、実に 15 もの異なる国の混合クラスになっています。

純粋なニュージーランド人と呼べる子供は、一割に満たないみたいです。

このような環境がどのように影響していくかは、正直なところ、まだ未知数です。ただ、これからの社会を生きていく上で、大切な経験になるのではないかと思っています。

無論、良いことばかりではありません。特に私の場合、最大のネックになるのが「英語」です。

何度も言っている気がしますが、私自身は英語が大の苦手です。

ニュージーランドに来てから 4 年以上経ちますが、英語の苦手意識、ぶっちゃけて言うと「可能ならば英語を避けたいという意識」がまだあります。こちらで生活・仕事していく以上、英語は切り離せないものなので、その意味で心理的負担はそれなりにあります。

ニュージーランドに来た時は、仕事もなく、英語も実用に堪えるとは言い難い状況でした。英語がネックとなって断られた会社も多くあります。

ニュージーランドには「好き」で来たわけですが、それを貫くために、自分の「嫌い」なものも同時に選択しています。

単に「好きを貫く」と、一言では言えないなぁと思いました。

とは言え、私の場合「日本という枠に囚われることなく生活するスキルを身につけたい」という希望は、何らかの形で外国語を選択しなくちゃいけないので、どのみち私にとっては茨の道なんですが……。

スポンサーリンク

Serene Bach 3.0 公開に寄せて

Serene Bach 3.0 β版をようやく公開しました。昨年 7 月に開発始めているので、ここまで 17 ヶ月かかっています。

Serene Bach 2.* は、およそ半年だったので、およそ三倍。途中開発していない期間もありますから、単純比較できませんが。

それはさておき。

Serene Bach 3.0 (主に管理画面)の作り込みで少し苦労した部分をまとめてみました。

CodePressの導入

Serene Bach 3.0 では標準のエディタとして、CodePress を導入しました。

CodePress は HTML のタグなどのハイライトをサポートする JavaScript ライブラリです。

Movable Type 4.0 のテンプレート編集にも採用されているので、目にした方もいらっしゃるのではないでしょうか。

そのままだと Safari 上では動かないので、いくつか独自の修正を入れています。詳細については、すでに述べているので、ここでは割愛します。

また、Serene Bach 3.0 ではエディタ部分が独立したモジュールになっているので、後からの差し替えが以前のバージョンよりも遥かに容易になっていると思います。

リキッドデザインの適用

Serene Bach 3.0 では、管理画面をリキッドデザインに変更しました。管理画面の幅は、ブラウザのウィンドウサイズに追従して変動します。

最小幅と最大幅を設定して、ウィンドウ幅を極端に変更した場合のレイアウト崩れが起きないようにしています(ただし、一部の対応ブラウザのみ)。

sb/Serene Bach 2.* では、700px の固定幅を使っていましたが、手狭に感じる場面があったので、思い切って変更しました。

リキッドデザインに変更すること自体は、それほど難しくありませんでした。やや苦労したのは、管理画面で多用されているテーブルのスタイル指定です。

Serene Bach の管理画面では、一覧性を重視するような場面においてテーブルを利用しています。

そのため、sb/Srene Bach のデザイン上のポリシーとして、「テーブル内の各項の高さは、できるだけ統一させる」というのがあります。

従来の管理画面ですと、テーブル幅を固定していたので、各項に収められる文字数に対して、大体あたりを付けられます。長い文字列を表示させるような場合は、規定の長さにクリップして出力していました。

ところが、リキッドデザインになると、どの程度の長さを許容できるかは分かりません。ですので、長い文字列もすべて出力しています。

もちろん、そのままだと文字列に応じて、各項の高さがばらばらになってしまい、一覧性が著しく欠けてしまう可能性があります。そこで以下のような CSS を適用します。

table td.elem {
  text-align: left;
/* except MacIE \*/
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
/* end for MacIE */
}

このスタイル指定により、class 属性に "elem" が指定された td 要素は、折り返し表示されなくなります。

Internet Explorer for Mac 向けのハックを使って、Internet Explorer for Mac には適用されないようにしています。したがって Internet Explorer for Mac では、折り返して表示されます。これは Internet Explorer for Mac では overflow: hidden; がうまく効いてくれないための対応です。

text-overflow: ellipsis; は、Safari / Internet Explorer for Windows / CSS3 で利用できるプロパティで、クリップされる場合に「...」という省略記号を表示してくれるようになります。

基本的なスタイルはこれでいいのですが、そのままだと各項の幅が、ブラウザによって、うまく指定できないという問題が生じました。

そこで colgroup 要素と col 要素を追加し、テーブルの各列の幅を指定します。こうすることでレンダリングエンジン間の差異が少なくなる印象です。

例えば、以下のようなテーブルがあったとして、

<table>
<tr><th>ID</th><th>タイトル</th><th>日付</th></tr>
<tr><td>ID1</td><td>これはサンプルです</td><td>2007.12.04</td></tr>
</table>

これを以下のように記述します。

<table>
<colgroup><col class="id" /><col class="title" /><col class="date" /></colgroup>
<tr><th>ID</th><th>タイトル</th><th>日付</th></tr>
<tr><td>ID1</td><td>これはサンプルです</td><td>2007.12.04</td></tr>
</table>

その上で、col 要素に対して幅を指定するスタイルを設定します。

table col.id {
  width: 4em;
}
table col.date {
  width: 9em;
}

MySQL/SQLite の AUTO_INCREMENT オプション

MySQL/SQLite では、フィールドの属性として「AUTO_INCREMENT」を指定することができます。

これは id など、データ毎に独立して重複しない値を設定したいときに有効なオプションです。当然ながら Serene Bach 3.0 でも利用しています。

ところが、これを指定すると、最初の id が 1 になってしまいます。0 から始まらない。

Serene Bach では、いくつか id = 0 のオブジェクトを特定して利用している場面があるので、このままでは大幅なコード変更が必要になってしまいます。

とりあえず、SQLite では直接 id を指定したデータを insert する分には問題ない様子。

MySQL では、以下のオプションがありました。これを接続時に設定することで最初の番号として 0 を利用できるようになります。

SQL_MODE='NO_AUTO_VALUE_ON_ZERO'

スポンサーリンク

Re: 仕事は7.5時間で終わらせる

りもじろうさんによる「住みたいところに住める俺」というウェブログを嫁さんから教えてもらいました。

私も「某大手電機メーカー勤務を経て、海外(ニュージーランド)移住後、ソフトウェアエンジニアをやっている」という似たような(?)境遇ですので、色々と共感できる部分も……。

今回は「仕事は7.5時間で終わらせる」より、私の職場との違いなどを簡単に触れてみようかと思います。

  • 基本的には定例会議はない。
  • ミーティングは30分単位が基本。

うちの会社は 5〜6 人一組のチームがいくつかある構成になっています。

うちのチームは、チームリーダーの方針により、メンバーの進捗報告を兼ねた Weekly Meeting があります。

この Weekly Meeting が大体 30 分。30 分以内に終わることも、ままあります。

チームリーダーが出張した時など、私が進行役をやる時もあるんですが、5 分程度で終わってしまった時も……。

ちなみに、日本で働いていたとき、昼過ぎから 10 時間以上かけた会議に参加したことがあります。10 時間かけて何も決まらなかったという……。その間自分の仕事は何も進まないし、悪夢のような時間でした……。

  • 重要かつ急ぎのプロジェクトの場合、毎朝進捗確認はやるが、15分程度。立っておこなう。
  • 2-3人での、ちょっとした相談や、決断は担当者のキューブへ押しかけて行う。

プロジェクト進捗確認は、プロジェクトリーダーの裁量に任されています。

うちの会社では、バグトラッキングシステムを利用して、仕事の割当量や進捗状況などが目に見える形で管理されています。

「重要かつ急ぎの用件」に関しては、確かにリーダーが担当者に直接確認行くことが多い感じがします。会議室などは使いません。その場でさっくり確認という感じ。

2, 3 人でのちょっとした相談は、担当者のワークエリアでやるのは一緒です。

  • Wikiなどでドキュメント化して情報共有に努める。

情報の共有化に関しては、wiki などの他に、前述のバグトラッキングシステム、svn などのリビジョン管理ツールなどのツールも利用しています。

また、コードレビューも情報の共有化という面(さらにソフトウェアの品質向上)において欠かせない手法です。

コードレビューは、一種のペアプログラミングになると思うのですが、自身が作成したコードを svn などでコミットするとき、必ず他の人にコードレビューしてもらう必要があります。

コードレビューの際には、自身の書いたコードをどのような意図で作成したのか、またどのように動作するのか(すべきなのか)などを説明する必要があります。

  • ただしマイルストーンになるドキュメントだけはしっかりつくる。それがないと次に進めない。
  • 責任者ははっきりしている。
  • なので関係ない人は巻き込まない。(メールも入れない)

ここら辺は同じ印象です。

自分がメールで確認したいことがある時なども「関係者として誰にメールを送るべきか」という点について、気を使っています。

休出とか、考えたこともなさそう。

休出はあります。もっとも頻繁ではなく、年に数回。

プロジェクトのデッドラインが近づいてくると、上司から「出て来れる人いる?」って聞かれることがありましたし、実際に休出したこともあります。

休出した分は必ず代休取れますし、休出した時には、ほぼもれなく昼食がついてきます。その時には上司が注文を聞きに来ます。初めて休出した時はびっくりしました。

うちの会社の場合、効率の良さを追求しているかどうかはちょっと微妙なところもありますが、日本で働いていた時よりも遥かに、個人を尊重した仕事の仕方ができる印象を持っています。

スポンサーリンク

オークランド動物園(Auckland Zoo)に行ってきました

ここしばらく雨続きだったオークランドですが、週末はカラッと晴れ上がり、絶好のお出かけ日和。久々にオークランド動物園 (Auckland Zoo) に行ってきました。

オークランド動物園の周辺は、緑が溢れていて雰囲気がとても良く、お気に入りのお出かけ場所のひとつです。

[写真]Auckland Zoo 01オークランド動物園の眺め

[写真]Auckland Zoo 02ライオン夫婦。この後、雄ライオンが……(続く)

[写真]Auckland Zoo 03象の周りも緑に溢れています

[写真]Auckland Zoo 04立ち上がって様子を伺っています

[写真]Auckland Zoo 05もう夏バテ気味のレッサーパンダ

[写真]Auckland Zoo 06二歳になったオラウータン。誕生日パーティ(?)していました。

[写真]Auckland Zoo 07「こっち見んな」

[写真]Auckland Zoo 08凛々しいエミュ。かなり近寄れますが、正直怖いっす。

[写真]Auckland Zoo 09迫力ある虎の餌やり。

続きを読む

スポンサーリンク

[javascript]文字の実体参照化

Javascript で文字の実体参照化を行う関数が phpspot開発日誌 にて、紹介されています

引用元なんでしょうか、Tudástár - Prog.Hu というサイトにリンクが張られていましたが、当方の環境からではオリジナルのコードを見つけられませんでした。

function htmlspecialchars(ch) {
  ch = ch.replace(/&/g,"&amp;") ;
  ch = ch.replace(/"/g,"&quot;") ;
  ch = ch.replace(/'/g,"&#039;") ;
  ch = ch.replace(/</g,"&lt;") ;
  ch = ch.replace(/>/g,"&gt;") ;
  return ch ;
}

ここでは replace を使って正規表現による文字置換によって実装されています。

Javascript で HTMLエスケープを行うPHP関数、htmlspecialchars を実装」でも触れられている通り、文字クラスの prototype による実装も可能で、その場合には、以下のようなコードになるでしょう。

String.prototype.htmlspecialchars = function() {
  ch = this + "";
  ch = ch.replace(/&/g,"&amp;") ;
  ch = ch.replace(/"/g,"&quot;") ;
  ch = ch.replace(/'/g,"&#039;") ;
  ch = ch.replace(/</g,"&lt;") ;
  ch = ch.replace(/>/g,"&gt;") ;
  return ch ;
}

ただ、この場合、htmlspecialchars なんて名前だと長くて分かりにくい気もするので、prototype.js のように escapeHTML のような名前にしておくのが無難かもしれません。

個人的には「実体参照化」という意味を込めて「entitize」という英単語をでっち上げちゃいますが。

さて、ここで紹介したスクリプトは replace を使っていますが、使わなくても実装できます。

String.prototype.entitize = function()
{
  var str = "" + this;
  str = str.split("&").join("&amp;");
  str = str.split("<").join("&lt;");
  str = str.split(">").join("&gt;");
  str = str.split('"').join("&quot;");
  str = str.split("{").join("&#123;");
  str = str.split("}").join("&#125;");
  str = str.split("'").join("&#039;");
  return str;
}

splitjoin を使います。

perl だと正規表現を使った置換よりも組み込み関数 splitjoin を駆使した後者の方が実行速度が速そうです。

javascript だとどうなんだろう?と思って、簡単なスクリプトを組んで実験してみてみました

Firefox 2.0.0.8 と Safari 2.0.4 と Opera 9.23 (いずれも Mac OS X 版)を使ってテストしたところ、

  • Firefox : split の方が速い (2 〜 3 倍)
  • Safari / Opera : replace の方が速い (1.5 〜 3.5倍)

という結果になりました。ブラウザによって変わってくるので、どっちがいいかはこれだけでは判断できない感じでしょうか。

ちなみに実体参照化の逆変換を行うスクリプトは以下のようになります(split による実装ですが、replace による実装もほぼ同様です)。

String.prototype.detitize = function()
{
  var str = "" + this;
  str = str.split("&#039;").join("'");
  str = str.split('&#123;').join("{");
  str = str.split('&#125;').join("}");
  str = str.split("&quot;").join('"');
  str = str.split("&gt;").join(">");
  str = str.split("&lt;").join("<");
  str = str.split("&amp;").join("&");
  return str;
}

実体参照化の場合は、& の変換を一番先に行う必要があり、逆実体参照化の場合は、&amp; の変換を一番最後に行う必要があります。

ちなみに entitize , detitize は共に造語です。英語圏で通用するかは全く分かりません。

続きを読む

スポンサーリンク

17/25