August 2006Archives

あいかわらずマシンは立ち上がらないまま。
修理業者に簡単に問い合わせたところ、どうやらHDDの故障っぽい・・・。

さて話が変わって、自宅マシンの故障と並行して、会社のマシンを新しいのに移行してた。何すかコレは・・・。むちゃくちゃ早いじゃねーか・・・。以前の仕事マシンと比べると雲泥の差。スペック的には CPU 3GHz、メモリ 1.5GBと高スペックすぎるってことはないけど、以前の糞マシンのこともあってめちゃくちゃ早く感じる。

という驚愕の快適さに触れていると「いっそ自宅マシンを買い換えようかな」という誘惑が。
同僚の詳しい人に聞いたところ、Core 2 Duo を激しく薦められた。Intelのこれまでのシリーズを含めてかなり詳しく解説してくれたし。とりあへず「スゲーよ、イスラエルチーム。」ってことは理解。マジでスゲーよ。時代は効率性なんだよ!
とりあへず新マシンへの愛しさ。

というワケで、Core 2 Duo なDELLマシンを買おうかと思い悩んでる。黒のディスプレイが激しく気持ち悪いんだけど。あとは、壊れたマシンからのHDD復旧が心配・・・。新マシンへの切なさ。

DELL のクーポンが今月いっぱいとかだそうで。新マシンへの心強さ、みたいなゲロゲロ。

仕事していて、あるモノの「前後」を表す英単語を含む変数名で悩んだ。今日は英語のマメ知識が増えたのでメモ。

ボクの場合、「前」を表現する単語はすぐに思いついて。Flashでよくプリロードと言うように、"pre" ねコレは。ま、何でか理由はわからないけど。"pre" から始まる複合言はけっこうあるし。
でもこの逆、「後」がわからないということで悩んだ。

調べること15分(仕事しろよ!)、"suf" と "post" がそれにあたるよう。
検索した際は英辞郎でまず「接頭辞」と検索。そうしたら、"prefix" という単語が!なるほど~、だから "pre" なんか~。
今度は逆に「接尾辞」で検索。そしたら "suffix" と "postfix" だそうで。先ほどの "prefix" と比べるとどうも捜しているのは "suffix" っぽい(文法的にという文句が決め手)。
いやぁまた一つ知識が増えたなー。
この単語知識を生かしたコードはこんなカンジ、かな??
var msg:String = "Hello World!!";
var preMsg:String = "[ ";
var sufMsg:String = " ]";
trace(preMsg + msg + sufMsg); // 出力 "[ Hello World!! ]"
どっかのブログか何かで読んだ記憶があるんだけど、ペアにする場合は接頭辞的な変数名をつけた方がいいんだっけ(たしか)?
var minNumber:Number = 1;
var maxNumber:Number = 10;
ちなみに、ボクのプログラム仕事では変数名で悩むことがしばしば。アホだねアホ。変数名を決定するためだけに15分なんて割とザラ。「英語なんて多少読めればOK、話せたら負けかなと思っている」タイプの人なんで、基本的に英作文系は苦手なんですけど、うーん、自分の信念を通してきたから痛い目に遭っているなんて何て愚かなんだろう・・・。

[ 2006/08/31 追記 ]
PHPでSmartyの設定ファイルあれこれ見ていたんですが、そこで、
$prefix $suffix
などの変数をハケーン。というワケでガンガン使っていこーうと。

ピンチだ。

昨日自宅マシンであれこれいじってたら、急にフォントやグラフィックが崩れていることに気付く。何かあったのかなと思ってとりあへず再起動。、、、起動しねぇ。真っ黒な背景に白文字で

次のファイルが存在しないか、または壊れているため、Windowsを起動できませんでした:
<windows root>\system32\ntoskrnl.exe.
上記ファイルをインストールし直してください。

ホワット!?OSが立ち上がっていないのにインストールし直すって何すか!?
職業柄、ソフトの方は詳しい方なんですが、ハードの方はちんぷんかんぷん。泣きそうになりながらもGoogle先生に聞いてみる。

するとまず、[教えて!goo] ntoskrnl.exeが存在しないか壊れているがヒットして、


こちらですね。「起動と終了」で”起動時に ntoskrnl.exe や hal.dll が見つからないと言われます”を参照してください。
http://winfaq.jp/wxp/

だそうで。なので、そこのページ起動時に ntoskrnl.exe や hal.dll が見つからないと言われますにいくと、


これは実際に ntoskrnl.exe や hal.dll が破損している場合よりも、boot.ini の記述が実際の情報と食い違っている場合に発生するため、「Boot.ini の内容 (ARC名) について教えてください」を参照して、boot.ini ファイルの記述を見直してください。

とかなんとか。
そのboot.iniというファイルがよくわかならないので、リンクを辿っていくボク。Boot.ini の内容 (ARC パス名) について教えてください

・・・。ダメだ・・・。このページのことはまったくわからない。。。うぅ。わからないけど修理に出してみようかなぁ。HDに想い出ふっとつなんでリカバリだけは避けたいなぁ。
とりあへず明日会社の同僚に相談してみようかなと。

今月号の『Web Designing』の特集記事として、"Webの常識 統一試験"やってた。
かなりツボを突く企画と休日が重なったので、本気でやってみたよ。たかだか雑誌の特集に対して30分も時間をかけてびっちりやった。目指すは「優勝」の2文字で(そんなんないけど)、受験生の気持ちになって頑張ってた!
以下、ボクの結果っす。

・歴史問題: 7点 / 10点、得点率 70%
・時事問題: 3点 / 10点、得点率 30%
・技術問題: 54点 / 60点、得点率 90%
・雑学問題: 8点 / 20点、得点率 40%
・総得点: 72点 / 100点

う~ん、時事問題と雑学問題が難しかったです・・・。
この72点というスコアは、「Good!」といことで、81点以上の「Very Good!」まであとちょっと。く、悔しいぃ!!で、この「Good!」レベルの人へのコメントはこんな感じです。

あなたの知識レベルは、Webクリエイターとしては及第点レベルです。自分の専門分野だけを追及するのではなく、より幅広い知識を身に付けていくことを心がけましょう。

そっか、ボクに足りないのは、専門分野に限らない知識なんか・・・。
たしかに雑学問題にあった、グーグルの話とかビルゲイツの話とかほとんどカンだったな。っつーかそういう知識はどこで覚えたらいんだろ?

ちなみにMozillaのイラスト問題は色や形はいいカンジでかなり自信あったんだけど、本物と左右が逆ということで×にしといた・・・。

次回は頑張って優勝する!!

お盆休みが無事に取れたんで、実家でゆるーりと過ごてきた。
14日のアドビの東京イベントがすっげー気になったんだけど、今年は交通事故のことやそもそも正月に帰れなかったことがあったんで、実家でゆっくりさせてもらうことにした。

ボクの実家というのは不思議なところで、インターネット接続以前にパソコンが存在してない。職業柄、考えられない・・・。というか、パソコンどころかエアコンすらがない。扇風機で過ごす夏2006。あぁ、決して住まいが田舎ってこともなくて、かなり都会な方なんすよマジで。
というワケで、ボクの周囲のネット人口は一等親・二等親レベルでほぼゼロ。Web2.0とかRSSとかそういうレベルじゃない。

家族は家族だけど、友人は友人。ちゃんとウェブやってたりしてる。さすが松坂世代広末世代。
でも、やっぱり人それぞれという感じかな。仕事上パソコンを触らない人はぜんぜんウェブやらないし、大学でマシンさわってたヤツは少しウェブに詳しかったり。RSSを使っている人なんて0.5人くらい(使ってはいるけど有効的ではない)。

これが、一般的なインターネット使用状況なのかなぁ、と。
日ごろ毎日毎日時間を忘れてウェブばっかりいじって、RSS収集にハマったり、APIいじるの楽しんだりしてると、いかに自分がオタクな人間が痛感させられた。なんか、ダメ人間にも思えてきたり・・・。

そんなこんなで帰省後にチェックしたこの記事に妙な納得感が。はぁ~。
Japan.internet.com デイリーリサーチ - 「お気に入り」からサイトチェック9割以上、RSS リーダー派は0.6%

今まで仕事でRSSやAPIまわりの提案ってしにくかったんですけど、コレ読んでさらに萎えてるなー。逆にインターネットヘビーユーザーにターゲットを絞るなどの提案もイケそうかもしれないけど。

今日はPHPのコードでハマった。マルチバイト系。忘れないようにメモ。

mb_strlen とか mb_substr とか mb_strpos とか、マルチバイトを扱う組み込み関数は基本的に、最後の引数でエンコーディングを指定可能(しかもオプション)。オプションなんでこれを省略していたら痛い目に遭あった・・・。

エンコーディングを指定しない場合、マルチバイトで扱うエンコーディングはPHPの内部エンコーディングとなる。今回のサーバーは内部エンコーディングが EUC-JP でも UTF8 でもなかったようで、おかげで凄い動作をしてやがった。
例えば、
$text = "あaいiうuえeおo";
print(mb_strpos("a"));
として、文字 "a" が何文字目を出力してみると、こちらが期待するのは「2」なのに、なんと「3」に。明らかに「あ」を2とカウントするという有様。「あ」を1文字としてではなく2バイトと認識しているよう。ぜんぜんマルチバイト扱ってねーし!!

ようやく内部エンコーディングに辿りついて、サーバーの設定が原因まで気づくのに時間がかかった・・・。要は、
$text = "あaいiうuえeおo";
print(mb_strpos("a"), 0, "EUC-JP");
と最後の引数でエンコーディングを指定すればOK。相変わらず何っつー言語なんだPHPはっYO!!

この他にも設定ファイルさわったり .htaccess とかで内部エンコーディング自体をいじる方法があるんだろうけど、サーバーに左右されないどこにでも置けるようなプログラムを考えると、そこはナシかなと。

ちなみに今日開発していたのは、マルチバイト文字のワードラップ関数とか、サイト内検索の該当文字列抜粋ロジックあたりでした。
うーん、忘れないようにメモしているつもりだけど、3日もしたら忘れてるんだろうなぁ。

今日は、Flash 8 INSPIRATION SCENE Summer Jam @大阪府商工会館に行ってきた。う~ん、よかった!
あいかわらず鬼メモしてきたけど、どうせサイトの方にレポは出ると思うし、個人的な感想を。

前半は INSPIRATION SCENE の作品の説明。
タナカさんは scene3 の担当、アルファつきFLVの連動の話、トザキさんは scene5 の担当で、連続体力学をベースにした場のシミュレートの解説されました。個人的にプログラマ的な人間なんでトザキさんの話の方がタメになったかなと。今度自分で計算エンジンとか作ってみようかな。。


後半はそれぞれの仕事の解説に。
タナカさんは、JRAアイブラブ夏ケイバの話を。制作とプレゼンの大切さの話をされました。プレゼン途中に「今までのはウソで・・・」の展開は素敵すぎ!
トザキさんは主にドコモの Web Exhibition(公開終了) の開発話をPIPのことについてアレコレ教えて下さりました。披露されたPIPのノウハウは、個人的にPIPは一度も経験ないものの、非常に参考となりそうな予感。Flashの描画負荷などは特に。また、Flash8 販売前からアルファビデオコンテンツの開発をしていた話には「東京ってスゲぇ」と改めて実感。

で、2時間を越す本編の後、頑張って名刺交換をお願いに!
タナカさんが京都にある小さなウチのことを知っていてビックリ。タナカさんとお会いするのは4月末の.flaのイベント以来で、当然ボクのことを覚えているワケもなく、その話で盛り上がったり。実はあのイベントでは他の著者4人の名刺はゲットできたんだけど、時間の都合上タナカさんのだけゲットできず。だけど、今回ゲットできて全員そろいました!この狭い京都で.flaの著者5人全員分持っているのはボクだけだろう。ふっふっふっ。
それと、人生史上初のアドビ名刺をゲット~。

いやぁ、とにかく素敵な一日っした。またこういうイベントが大阪であるといいんだけどね。東京はいっぱいイベントがあってスゲェっすね。でも、個人的には東京に出たら負けかなと思ってんで・・・。

発表から1ヶ月以上もたって、ようやくFlashPlayer9をインストール。

ただ、あいかわらず、8よりも以前のバージョンのPlayerが気になるので、Keebee Plugin Switcherというソフトをインストール。おー、FlashPlayerのバージョンを切り替える~。試してみたけどいいカンジ。

今までPlayerごとのチェックは、スタンドアローンのPlayerを各バージョンごと空で立ち上げて、そこにドラッグ&ドロップでswfを再生してて、んー面倒くさかった・・・。だけど、このソフトを使うと、ブラウザ内部でのPlayerを切り替えることが可能に。もうスタンドアローンとか無視できそう。さらにIE用・ネスケ用(Firefox用)それぞれ切り替えることができるよう。
ん~、これ、いいね~。今後はガンガン仕事で使えそうな勢いですホント。

あえて問題を挙げれば、ブラウザの再起動が必要だってことと、英語ばっかりで少し使い方に悩むところ。まだ困ってはいないけど、万が一の時に少し心配、かも。

先週の公開からゲド戦記がひどいらしいとはウワサには聞いていたけど、まさかこれほどとは。あっ、まだ見てないっすよ。ネットでの評判のことね。
Yahoo!ムービー - ゲド戦記

ちょっと評判を見るつもりが、気が付いたらボーと見入ってた。書く人書く人みんな酷評。コレ、逆に見たくなる。なんというか、納涼を味わいにというか、怖いもの見たさというか。1800円をドブに捨てる楽しみというか。

ヤフーの平均点が星2つくらいなんだけど、ところどころ星5つつけるサクラユーザーがいてて、でも多くの人が星1つ。で、個人的におもしろいのは、高校のとき数学で習った「収束」を体感できる素敵な現象だということ。いくらサクラが星5つつけてもそれよりも圧倒的な一般ユーザーの方が多くて、サクラは誤差の許容範囲みたいで、じょじょに平均が星1つに近づいているみたいな。昨日は星2.8くらいだったように記憶してますが、1日経過しただけで星2.3くらいまで下がってるし(ただ、サクラのバイトが土日休みだから、とか?)。
いろいろなメディアを巻き込んで多くの宣伝を行っている分、見にいく人は圧倒的に多いワケだし、サクラをいくら投入しても防ぎきれないんだろうなぁ。

なんか、こうゆう統計解析として触りたくなるデータが、リアルタイムでヤフーにたまっていくの、APIとかで出してくれないかな?データの可視化としてかなりおもしろいテーマな気が・・・、します。母集団の数・サクラ投稿・評価・コメント・時系列、これらのデータの状態でできうる表現。おもしろそう。例えば、評価でできるゲド戦記のアニメのコマとか、ね(わかりにくいか)。

今から1年くらい前にウイルスバスターを更新して2006に。んが、それからずっと不満の日々・・・。それもようやく解決!!

ブラウザを開いて、ページにアクセスするたびに必ずCPU使用率が100%喰われて、もう遅い遅い。ウチはADSLなんだけど、ダイヤル接続か?ってくらいの体感速度。

タスクマネージャーで調べると、ページ遷移時にCPUを喰うのは、 "TmPfw.exe" というプログラム。ネットで検索してみると、ウイルスバスターのファイアウォールとのこと(Tmはトレンドマイクロ、Pは謎のまま)。
そこで、ファイアウォールを常時オフに設定してみたんですが、ぜんぜん無意味。あいかわらず、ページ移動するたんびにCPUが100%に。なんじゃコラ!

ネットを検索しまくったり同僚にアレコレ聞いてみたりでも結局何もわからず。。。
で、今日設定をもう一度見直してみたんですが解決法がわかったYO!!
スパイウェアの監視をオンにしていたんですがそれをオフに設定すると、激早の速度が復活!一年ぶりのブロードバンド!うひょー!!さようなら"TmPfw"の日々。

っつーか、スパイウェアの監視をオンにしたのって自分かな?自滅?_| ̄|○

先日のIEとFlashとJavaScriptと「カチッ」って音とExternalInterfaceクラスととで、IEでJavaScriptを呼び出すと「カチッ」音がでるというエントリーだったけど、7月参加したプロジェクト(フルFlash構築)で他社のアクセス解析をFlashと連携させる必要があったので、アクセス解析に接続するためのクラスを作ってみた。これを流用すればGoogleAnalytics用にも使えるはず(まだ試してないけど)。

このクラスの名前は、「アクセス解析」に「接続」なので、「AnalyticsConnector」とした。
まず、Flash内部ではこんなカンジで記述。
var myAC:AnalyticsConnector = AnalyticsConnector.getInstance();
a_mc.onRelease = function(){
    myAC.track("pageID");
}
このクラスはプロジェクトに対して1つという関係が前提というのが多いので、インスタンスを複数作らせないために Singleton パターンで構築してみた。よくわからない人はデザインパターンを夜露死苦。
また、アクセス解析を行う track() というメソッドは、対象のアクセス解析によってクラス自体を修正して下さい。今回の使用したアクセス解析では好きなページIDを使うことができたので、このようにしてみた。

続いて、クラスのソースはこんなカンジ。ただし対象は、Player8 から。ExternalInterface使ってるからっす。
import flash.external.*;

class AnalyticsConnector{
	
	private static var instance:AnalyticsConnector;
	static var isIntefaceAvailable:Boolean;
	
	private function AnalyticsConnector(){
		if(System.capabilities.os != "MacOS"){
			isIntefaceAvailable = ExternalInterface.available;
		}else{
			isIntefaceAvailable = false;
		}
	}

	static function getInstance():AnalyticsConnector{
		if(!AnalyticsConnector.instance){
			AnalyticsConnector.instance = new AnalyticsConnector();
		}
		return AnalyticsConnector.instance;
	}
	
	
	
	function track(pageID:String){

		if(isIntefaceAvailable){
			ExternalInterface.call("testJS", pageID);
		}else{
			var js:String = "javascript: testJS('" + pageID + "');";
			getURL(js);
		}
		
	}
	
}
上述してますが、 track() で連動するJSはアクセス解析によって変更してもらえれば。なお、このサンプルではJSの testJS() という関数を呼び出してる。

さて、注意してほしいのは、最初に Flash8 から加わった ExternalInterface クラスを import するため、FlashPlayer のバージョンが8よりも低い場合は使用することができないということ。
あくまでも「カチッ」という音を消しつつJSを呼び出すことがメインなので、Player のバージョンが7以前であれば、普通に getURL だけのクラスを作るなりして対応をたのんます。

また、最初に MacOS で分岐しているのは、MacIEの挙動が怪しかったからです。今回は音がメインで、MacではIEだろうとSafariだろうと音がでないので、ExternalInterface じゃなくて gertURL を使うことに。

いやぁ今回は、デザパタ使ってみたりブラウザの挙動と戦ってみたりと、いろいろ勉強になったなぁ~

26

今日で26。マジであっという間。何か、交通事故に遭ったのが先週のような気がする。何だコレ?どこ行ったんだ俺の時間間隔!?

1980年生まれ。松坂世代。記念に最近閃いたどうでもいい計算式の紹介。この公式使うと、松坂世代の人は西暦から自分の年齢が分かる。どうでもいいこと繰り返すけど、コレ使えるの、松坂世代の人だけ。

えと、該当の西暦(4桁の数字)を、上の2桁と、下の2桁と2つの数字に分ける。分けた2つの数字が80年生まれの人の年齢になります。

2006年でいえば、20 + 6 = 26。未来的にはボクは2063年に83歳になるワケで・・・。って、くっだんねー。
ちなみにカンのいい人はわかってると思うけど、2000年以前の西暦だとこの公式破綻します。1999年なら118歳、なワケないです。式自体が80年生まれが20年後に2000年となる(桁が上がる)ことからきているんで、そりゃそうだ。

しかしコレで、松坂大輔とか広末涼子とか眞鍋かをりとか、松坂世代の人の年齢をすぐにいつ何時も言い当てることが可能に!!

そして最後に、このどうでもいい計算式をASで書くとこんなカンジに。
var year:Number = 2063;
var answer:Number = Math.floor(year / 100) + year % 100;
trace(answer); // 83

26になりましたがよろしくお願いします。

About this archive