2007年12月 Archives

« 2007年11月 2008年1月 »

del.icio.us Bookmarks1.5.44に出会ってしまった

del.icio.usを使い始めたのが今年の夏くらいだったので、偉そうな事は言えないが、「ネットワークに保管出来るのは便利だけど、操作性はブラウザのブックマークの方が全然いいだろ」と思っていました。そう、こいつに出会うまでは!


del.icio.us Bookmarks 1.5.44


以前はdel.icio.us 1.2を使っていたけど、これはあまり良くなかった。ブックマークの追加がdel.icio.usに飛ばなくても出来るってだけで、その先にあるブックマークの閲覧に関しては何も与えてくれなかったからだ。
で、結局tagごとにRSSをブックマークしたりしていたり(本当はもっといいやり方があったかもしれないけど見つけられなかった)操作性に関して疑問符が付いたまま使い続けた。


そして、漸く本命の登場!del.icio.us Bookmarks1.5.44がどれぐらいすばらしいかを一言で表すと「FireFoxのブックマークの様に使える」ということ。いや、ひょっとするとそれ以上かも。ブックマークの追加だけじゃなくて当然、閲覧も可能。更にそこからブックマークの削除、編集、tagの変更まで出来る。とにかく素晴らしい。そしてそして、tagのネストもサポートしてくれる。まあ詳しいことは下記にURLをどうぞ
http://japan.cnet.com/blog/arasuji/2007/04/07/firefoxdeliciou_0b95/


ところでdel.icio.us Bookmarksは2006年10月からリリースされているので、1年少々がすぎたところだ。ちなみに2007年に1.5がリリースされて今に至ってる。ベンダーはyahoo!、やるじゃんyahoo!!(まあyahoo傘下だし当たり前か)

del.icio.usが産まれて4年、yahooに組み込まれて2年、で今年あたりで漸くこなれたGUIがリリースされたけど、ここに至るまで結構時間がかかるんだと感じた。もう少し早い時期にブラウザとwebサービスを密接に関連づけるツールが登場しても良かったんじゃないのかな?del.icio.usは一般的な普及を果たしたとはまだ言い難い状況だが、今後普及していくならこれらのブラウザと密接に連携するツールは必須になると思う。

Bookmarkだけではなく、テキストデータにせよ、画像データにせよ、どんどんネットワーク上に保管する方向へと流れているが、この手のサービスにはもう少しこなれたGUIを提供して欲しい。この場合、二つの選択肢を考えるてみると「web上のGUIを進化させる」か「GUIはローカルに提供し処理をwebで行う」があると思う。前者はGoogleDOCS的なもので、後者はAdobeAIR的なもので場合によってはFirefoxアドオンなんかも含まれるかもしれない。両者一長一短だが、ユーザーが感じる安心感という点からは後者の方が優勢かと思う。後者の技術は客観的に見るとネットワーク上での処理がメインだが、主観的(ユーザサイド)に見るとローカルでの操作に感じられ、その恩恵として「安心感」を得られるんじゃないかと思う。

del.icio.usだけじゃなく、数多のwebサービスがスキルやリテラシーの低い層に対して普及するにはこの点を攻めるのが良いと思う。特にPCスキルやリテラシーの低い層には「安心感」は重要な要素になりそう。

more.. "del.icio.us Bookmarks1.5.44に出会ってしまった" »

FlashCS3がワークスペースを覚えてくれない件

バグってほどのことでもないかもしれないけど、FlashCS3をデュアルモニターで使っていると、再起動時にパネルの位置が前回終了時と違っていることが多い。

具体的にはサブモニターに配置していたパネルがメインモニター上に移動している。しかも妙なことにすべてのパネルでそうなるわけではなく、ライブラリパネルやプロパティパネル、タイムラインパネルでよく起こっている様子。不思議だ。

起動時にワケ分からん場所にパネルがあると誰かが散らかしていったみたいで無性にムッとする。やっぱバグだな。


ところで最近はワイドモニターが当たり前に使われるようになってきてるので、デュアルモニターはあんまり使われていないのかな?

パラダイム・シフト

認知科学やユーザインターフェイスの権威、D・A・ノーマンのインタビューを読んでちょっとびっくりした。

長年の間、わたしは「われわれが技術に適応するのではなく、技術がわれわれに適応するべきだ」と言ってきました。しかし、今ではこれは間違いだと思っています。


え、ここ↓↓↓であんなに言ってたことは!?

と思ったけど、よく読むとそんなにラディカルな言及ではない様子。とりあえずこの年齢になって自分の言説を少なからず否定出来るのは謙虚な姿勢なのかな。

FlashDevelopと[グローバルセキュリティ設定]

FlashDevelopでswfからネットワークに接続するコーディング作業をしているとき、
「Error #2044: ハンドルされていない securityError : text=Error #2048: セキュリティサンドボックス侵害 」が発生したので、その対処をメモ。

[グローバルセキュリティ設定]

ここで、任意のフォルダを許可する。
FlashIDEでムービープレビュ(ctrl+Enter)をした場合はこの設定なしでもエラーは発生しない。パブリッシュの場合はエラーが発生するが、上記リンクへと案内してくれる。初歩的な話だけど、OSリインストしたり作業環境を再構築するときに見落としがちだからメモ。

AS3でByteArrayをPHPに渡して保存するメモ

ここでも紹介されているけど、AS3でバイナリーデータをサーバに保存する方法を極力単純化してメモ。


AS3の抜粋。
req.contentType = 'application/octet-stream';
が大切

private function sendObjectPHP():void{
  var obj:Object ={val1:123,val2:"test"}
  var byteArr:ByteArray = new ByteArray
 byteArr.writeObject(obj)
 byteArr.position = 0;
 var req:URLRequest = new URLRequest();
 var loader:URLLoader = new URLLoader();
 req.url = 'saveBinary.php';
 req.contentType = 'application/octet-stream';
 req.method = URLRequestMethod.POST;
 req.data = byteArr;
 loader.addEventListener(Event.COMPLETE,loadComplete)
 loader.load(req)
 function loadComplete(e:Event):void{
trace("complete")
  }
}


phpソース
$bin = file_get_contents("php://input");
$path = dirname(__FILE__);
$tmpfname = tempnam($path,'dat_');
unlink($tmpfname);
$tmpfname = $tmpfname . '.bin';
$fp = fopen($tmpfname, 'wb');
fwrite($fp, $bin);
fclose($fp);


これで「dat_hogehoge.bin」ファイルが生成。バイナリエディタで見ると
val1:123
val2:"test"
が確認できる。

zipファイルはコチラhttp://memo.kappa-lab.com/samples/sendBinaryToPHP.zip

FlashDevelop Beta5 !

ActionScriptを書くならこれなしじゃあ無理との誉れ高いFlashDevelopのBeta5がリリースされている!

ここ

とりあえずインストールしてみると、あんまり見た目には変化がないものの、AIRがサポートされていたり、Flex3でプロジェクトが作れたり、プロジェクトのオープンが早くなっていたり、色々と更新が見て取れる。そろそろ正式版のリリースも近いのかもしれない。

ちなみにBeta4からUpdateしたら、コードフォーマットやらカスタマイズ情報が完全に上書きされてデフォルトに戻ってしまった。前のエントリーにコンフィグファイルを掲載していたので何とか復元できた。焦るよ。

more.. "FlashDevelop Beta5 !" »

Flashのfps(フレームレート)パフォーマンスアップ

ど忘れして無駄にハマッてしまったので、自戒の念も込めてメモ。

Flashオーサリング中にムービープレビューをすると、もちろんスタンドアロンSWFプレイヤーが動作して、ムービーが再生される。順調に制作が進行して、終盤でhtmlを含めたファイルを「パブリッシュ」する。するとどういうわけだかスタンドアロンの時よりパフォーマンスが低下していて狼狽。目に見えて動作が遅いので、かなり焦る。目の前真っ暗。

で何が原因かと言うと、下記赤線部の設定。

publish.gif

「ウィンドウモード」の設定がデフォルトでは「標準」になっているが、ここを「不透明表示」にしてやらないとかなりのパフォーマンス低下、20%前後の低下を被る。はっきり言って納品できない。

まあ、解決策は「不透明表示」にすれば良いだけで至って簡単な話だけど、どうしてまた、「標準」がデフォルトに収まっているのかがナゾ。ナゾというか、迷惑。
不透明表示にしたらしたで、マウスホイールを拾えなかったり日本語入力に問題あったりするので根治療法にはならない

あ、ちなみにウィンドウのスキンがヘンテコなのは、これを使ってるからです。

more.. "Flashのfps(フレームレート)パフォーマンスアップ" »

AS3でカスタムコンポーネント制作メモ

AS3でカスタムコンポーネントを作って、SWC書き出しする際のメモ3点。

1.SWCを格納するディレクトリ(winXPの場合)
C:\Documents and Settings\user\Local Settings\Application Data\Adobe\Flash CS3\ja\Configuration\Components

2.ビルトインコンポーネントのソースファイル(勉強になる)
C:\Program Files\Adobe\Adobe Flash CS3\ja\Configuration\Component Source\ActionScript 3.0\User Interface

3.コンポーネントインスペクタで変数を扱えるようにするには(これを書きたかった)
追加したいプロパティのsetterメソッドの上にメタタグを入れる。
[Inspectable(defaultValue=1)]
これで有効化。この場合はデフォルトが1になる。


ちなみにコンストラクタにtrace()を入れるとFlashIDEでステージに追加したときにメッセージが出る。ひょっとして、ENTER_FRAMEも出力されるのかと、試してみると一回だけ実行された。ちょっと焦るなあ。

AppleがFlashにそっぽを向いてる

ここに書かれているように、iPhone 上で Flash は動作しない。将来的にプラグインが提供される可能性はあるけど、多分かなり先になるだろうという観測だ。他にもアナリストやらMacウォッチャーが同様に、iPhoneでFlashが動くようになるとしてもかなり先になるだろうと言ってる。
更にAppleのwebサイトは Flash でつくっても良いような部分まで非Flash で構築されている。この状況から、JobsがFlashを遠ざける戦略を取っていると考えてもそんなに不自然ではない。

今後のiPhone の普及拡大は安泰だろうし、iPod も同様だ。そlこで重要なインターフェイス部分にFlashを組み込んだ場合、Adobe への依存度が極端に高くなるわけで、Jobs がその状況を喜ぶはずは無いと思う。


1999年前後、初めてiMacを手に入れたときは、AppleとAdobeは今よりもっと親密な関係に見えた。Apple、そしてMac と言えばPhotoshopを走らせるためのマシンだと認識していたくらいに。一方、Macromedia と言えばFlashやDremwaever とともにFireworksやFreeHandなどPhotoshop、illustratorと同様のグラフィックツールをリリースしながらもwindowsとの親和性が高いように見え、少なくともApple一辺倒、という体制では無かったと思う。ひょっとして Jobs がFlashを許さない原因がこのころにあったりして(多分ないけど)。


なんにせよ、Flash/FlexコミュニティとしてはiPhone向けのコンテンツが制作出来ないわけで、これは今後、重大な足かせになるんじゃないかと思う。ただでさえモバイル向けのFlashコンテンツって何となく腰が重くなるのに、唯一魅力的なデバイス/プラットフォームであるiPhoneにそっぽを向かれてはモチベーションが上がるはずがない。


GoogleのAndroidが先月リリースされて、iPhone用のSDKは来年2月にリリースされるらしい。FlashLiteもFlashLite2の普及が微妙なままもうFlashLite3になる。今度はモバイルプラットフォームが乱立するのか。
"Write once, run anywhere"なんて結局やってこないのだ。

AMD vs Intel してみた


mixiのリンクからIntelのキャンペーンサイトでベンチマークバトルが出来るので、30戦ほど戦ってみた。ちなみに僕の制作環境は AMD 64X2 4000+ DDR800x2GB と言う感じで当然だけど最新のCore2DUOやらCentrinoとかに勝てるはずが無く、他のユーザにしか勝てない。まあ当たり前だ。

ところで、ユーザ名を「AMD」と入れようとしたら、「この名前は登録出来ません!」と出たので「A M D」とスペースをかませることにしたら、あらら、いけちゃった。禁止にする意図は分かるけど、脇が甘いんじゃないのか?

AS3でFPSメータのコンポーネント

前々回の続きで、AS3用FPSメータのコンポーネントを作ってみました。何故FPSメーター(FPSモニターと呼ぶべきかな?)かというと、それは前々々回を読んでもらえたら分かるかな。最近、精力的にエントリしまくっている。


とりあえず今のところベータって事でこちらにUP。

http://memo.kappa-lab.com/samples/ASTachoMeter.zip

コンポーネントインスペクタで

1.interval :: 何フレームごとに集計結果を表示するか
2.digit :: フレームレートの小数点以下の表示桁数

の2つの変数が変更できます。
1.の値を小さくすればするほど、リアルタイム集計になっていくが、その分だけマシンの負担も増える。
FPSを計測するという主旨は、ちょっとしたベンチマーク的な意味合いもあるので、FPSメータ自身がパフォーマンスに影響を与えてしまうと本末転倒なのだ。今のところ、interval=20でCPU使用率は2,3%に抑えられているので合格圏内だと思う。

ようやくAIRを触ってみた

漸くAIRで「Hallo World」をしてみた。Flexではなく、Flashからの書き出がしたかったので、Flash周りの環境を整えてみたが、以前のバージョンのアンインストールやら、なんやかんやでやや煩雑な作業だった。

リソースはここら辺を参照にしました。

環境さえ整えればあっさり「Hallo World」は出来る。フツーにAS3を書けば良いだけ。

var hw_txt:TextField = new TextField();
addChild(hw_txt)
hw_txt.text = "hello world"

で、commandメニューから「AIR - Create AIR File」すると、証明書の生成を問われるので、SSLの自己証明みたいな感じでテキトーに入力、そしてインストーラが書き出される。拡張子は「.air」 こいつをダブルクリックして任意のディレクトリにインストール、そして同名のexeファイルを叩けば「HalloWorld」完了。文章に起こしてみるとタスクが多い気がするけど、実際は簡単(多分文章が下手なせいだな)。


で、AIRでなにをしようかな、という話ですが、凄く地味なアプリを作ろうと思っている。

ずばり「受注・請求アプリ」。

webでなければweb2.0でもない、かなり地味なアプリ。「弥○会計」とか「■生販売管理」みたいなやつだ。何故、今”それ”なのかと言うと、もうMSAccessの受注テンプレートとはおさらばしたいから。これに尽きる。基本的にDBの設計やら運営がメインの作業になると思われるので、脱DB素人も達成したい。まあ、来年の肥やしになるかもしれないので頑張ろうと思う。できあがっても自分以外誰も喜ばないと思うけど。

とりあえずAIRのSQLite周りを租借

AdobeAIRのSQLite関連APIは"flash.data"パッケージ以下にSQLCnnectionやら、SQLResult等々15個くらいのクラスからなっている様子で、ともあれDBを生成してテーブル作ってデータの流し込みをそこら辺で公開されているチュートリアルを見ながらやってみることにした。

と、そうすると流石beta版だけあって微妙にメソッド名が変わっていたりする。もちろんそのままでは動かない。たとえば、DBへのパスを指定する
File.desktopDirectory.resolve("hoge.db");
*AIR beta1で使用

が、
File.desktopDirectory.resolvePath("hoge.db");
*AIR beta2.beta3で使用

に変わっていたり。

流石のFlashDevelopもbeta版のコードアシストは完全ではないみたいで、FlashIDEのアクションパネルに戻ったような感じで書かねばならない。まぁ先物買いしてる以上は文句言えない部分だ。

AIR からのtrace()を捕まえる

ものすっごい初歩的なエントリだけど、メモ。


FlashIDE(もちろんFlashCS3)でAIRの制作をしている場合の"trace()"からの出力は「ムービープレビュー(ctrl+Enter)」ではなく「ムービーのデバック(ctrl+shift+Enter)」でなければ表示できない!

ついついctrl+Enterしがちで、AIR初心者としては「trace()が出ないけどそういう仕様なんだろうな」と勝手に諦めているとそんなわけだった。ちゃんとココ(zipファイル)の23pageに記載されてある。


ほんとに初歩的な話だけど、このいブログがそもそも初歩的な話を更に不十分に殴り書きしているわけで、今更何誰に恥じる事もないかと、居直るエントリ。こういうtipsとも呼べないtipsを今後とも誰かに届けたい。(←だれに?)

Acid2Test合格ならず(Firefox3beta2)

FireFox3beta2がリリースされたってことで、とりあえずサブノートにインストールしてみた。

それで早速Acid2をテストしてみる。

そして、結果!


acid2_ff3beta2.gif
うーん、あと一歩ってトコロか、目の周りでスクロールバーが出ている。
wikipediaを見ると既にFirefox3はクリアしてると書いていてあるが、実際どうなんだろう。今回のリリースにマージが間に合わなかったんだろうか。


いずれにせよFirefox2のレンダリングよりは遙かに向上したみたいで、凄く嬉しい。
acid2_ff2.gif

あとはIEだよな。まったく。

アンチSNSのテーゼを考えてみる

EnemyBookはSNSにとってのカウンターカルチャーでは、多分、ない。たしかに今はもう慣れちゃったけどSNSの表層的な友人関係は最初は気味悪かったしうざかった。だから、そういった表層的なコミュニケーションへの、つまり偽りの友情へのアンチテーゼとして、EnemyBookとかのアンチSNSサイトが産まれてきたのはよく分かるし、理解できる。
ここで採用されているアンチSNSの主題は、友達ではなく敵を作る事だ。これはSNSへのアンチテーゼを立ち上げようとした場合、真っ先に考えつきそうな主題だけど、実は間違っているんじゃ無いかと思う。


つまり、SNSの本質は友達を作るってところにはないのだ。


いや、確かに友達を作る事も重要な機能だが、
本当にSNSがSNSたる所以は、友達を作る事が


ほぼ無限に、しかもあったこともない相手と友達になれるということだ。


これは現実世界では実現できない機能だ。だからこそ、SNSは面白く、こんなにまで普及したといえる。そして同時にこんなにも偽りの友達を増やしてしまったのだ。

アンチSNSを掲げるなら、その主題は「敵を作ること」ではなく、「偽りの友情を駆逐」していくことじゃあないかと思う。SNSの友情が偽りであるならあるほど、EnemyBookの敵もまた偽りである。それではSNSとやっていることはあまり変わらない。実際に敵を作ったところで、本当にその相手と争っていては身が持たないので、話半分、冗談半分の敵なのだ。EnemyBookはSNSの補助ツールにこそなれてもアンチテーゼとは呼べないのではないか。


SNSのアンチテーゼを掲げるなら、その無限のオープン性にこそ制限を設けるのが正当だと思う。つまり、友達の数を制限することだ。mixiで言うなら、マイミクの上限を設けると言うことだ。仮に制限が100だとするなら、100人以上のマイミクは持てない。そしてここからが重要だ。
仮に上限いっぱいに友人が居るところに、つい最近mixiに参加してきた友人からマイミク申請された場合どうなるのか。しかも幼少期からの無二の親友だとしたら。
彼をなんとかマイミクにしたいがいかんせん上限をオーバーしてしまう。この場合どうすれば良いのか?答えは至ってシンプルだ。


自分のマイミクを一人減らせばいい、ということだ。


そうすれば、彼を受け入れる事が出来る。除外されてしまったユーザは気の毒だが、こうして常にマイミクにふるいをかけておけばクオリティを保つことが出来、偽りの友情化は防げるかもしれない。これこそがアンチSNSの骨子だと思う。


もちろん、村八分を助長するようなこんな排他的なシステムは絶対に容認できるわけがないけど、そろそろSNSのオープン至上主義みたいな物にカウンターが発生しても良いかと思う。客観的に見てSNSでのコミュニケーションは質より量を優先している。ポストSNSは量より質を指向するんじゃないだろうか。たぶんそのときはもうSNSとは呼ばれないだろうけど。

最後に一応断っておくと、僕のmixiの友人は一応リアルの友人が96%なので、偽りの友情ではありません。たぶん。

Post-Office Platform

今年、sshでのみアクセスを行うサーバを使ってサイト制作をしていたら、クライアントからftpにできないの?みたいな質問が出た。個人情報やら重要な情報があるので、ftpは止めましょう、と説明するとすんなり納得してくれたものの、そっからFileZillaがクライアントのマシンにのるまで一週間がかかった。
なんでもアプリケーションをインストールするには管理者に申請を出して管理者によってインストールしてもらわねばならないらしい。


どこでもそうだけど、これが企業のIT管理の現状というか弊害。


そんなわけで、よっぽどずさんな企業か規模の小さな企業以外、スタッフの勝手な判断でインストールはできない。もちろんマシンは会社のものだから、スタッフの好きなようにいじくっていい道理はないわけだが、これにFlashPlayerのアップデートも含まれていたりする。うっかり担当者のマシンがvr6だったりするとサイトを確認するまでに上記の工程が必要になる。


そう、企業はやすやすとインストールをさせてくれないのだ。下手するとインストールするくらいなら新しいマシン買え!ってくらい、こっちから見ているとインストール過敏症な管理をしている。(インストールだけじゃなくて閲覧できるwebとかもやたらに制限されてたりする)


で、この企業のインストール過敏症を見ているとAIRとかFlash技術って、今後のポストoffice製品に参入するときにかなりの障壁になるんじゃないかと感じた。ポストofficeと書いたのは、現在のMicrosoftに牛耳られているoffice製品が、その束縛から解放された状態をそう呼びたい、という願望で、そう遠くないうちにそれは現実のものになるだろうと個人的には思っている。これに異論を唱える人はそんなに多くないはずだ。GoogleDocsは言うに及ばず、AdobeもBuzzword等がんばっている。


googleとadobeはポストoffice世代を牽引する有力株で、前者はAjax,後者はFlashと言う陣営。現状ではgoogleがダントツだけど、基本的にインストールやシステムの変更が不要なAjaxに対して、Adobeがインストールと言うハンデを背負い続ける以上、苦戦は必至かと思う。Adobeが管理者や権限に縛られない家庭内マシンのシェアだけで満足なら、このままでいいかもしれないが、企業内でのシェアを獲得するためにはこのインストールという障壁を何とかしないといけないんじゃないかな?


FlashDevelopでAIRのコードアシストできる

FlashDevelop Beta4+FlashIDE環境でAIR開発しているとき、コードアシスト出来ないのかと思っていたら、実は可能だって事に気がついた。とりあえずflash.data.*はちゃんと補完してくれるぜ。さっすが。

以下やり方
Project > Properties > Compiler Option >SWC Libraries

C:\Program Files\Adobe\Adobe Flash CS3\ja\Configuration\ActionScript 3.0 AIR 1.0\Classes\playerglobal.swc
を追加するとOK。

Flexつかっているとこんな回りくどいやり方しなくてもアシストされるのかもしれないけど、ちょっとFlex買うのを躊躇ってるもんで。あんまりきちっと調べていないから、ひょっとしてバイナリ(swc)だけじゃなくてソースコードも何処かに格納されているかもしれないけどとりあえず動くしいいだろう。

RSS + Contuct

  • rss
  • email

Credit

Copyright (C) 2007 kappa-lab.com.
All Rights Reserved.