2007年11月 Archives

« 2007年10月 2007年12月 »

Clickが重い

新聞やテレビと比較して、ユーザの動向が把握しやすいwebの場合、当然コンテンツホルダーはユーザの嗜好や動向に会わせてコンテンツをセレクトしているんだが、これが結果的には衆愚的な内容になりがちだと強く感る。


特にニュース系のコンテンツに関して。


ポータルサイトのニュース覧はかなりこの傾向が強く、サイトによってはかなり軟派(?)な内容になってしまってる。で、独自ミシュランをつけてみた。

←硬派        軟派→
excite > livedoor >= yahoo >= mixi >> infoseek 

かなり個人的な順位だけど一応つけてみる。
改めて見直すと実際infoseekはひどいけどexciteやlivedoorはがんばっているのかな?と思う。
あえて硬派、軟派の定義については触れないでおきたい。


コンテンツホルダーのニュース選択は内容の重要度より、トラフィックやアクセス数を優先させる事が往々にしてあると思う。村上龍の番組を見てそう思った。コンテンツのクオリティにユーザが多少なりとも影響を与えているなら、もう少しClickを慎重にしてみようかな、と思う。

ByteArray 超入門

POPFORGEを使いこなすためにも、やっぱりByteArrayに関する造詣を深めないとどうにもならないな~と思い、とりあえずどういうものなのか試してみる。とりあえず「Hello world」レベルで良いので、まずは「HelloByteArray」クラスを作ってみた。

package
{
 import flash.display.Sprite;
 import flash.utils.ByteArray;
 public class HelloByteArray extends Sprite
 {
  function HelloByteArray()
  {
  var byteArr:ByteArray = new ByteArray();
  var str:String = 'HelloByteArray';
  byteArr.writeUTF(str);
  var len:int = byteArr.length;
  for (var i:int=0; i<len; i++) {
   //16進数で表示してみる 
   trace('no_'+i+' : '+byteArr[i].toString(16));
   }
  //ポインタを先頭に移動
  byteArr.position = 0;
//UTF-8で表示する
  trace(byteArr.readUTF())
  }
 }
}

これを実行すると下記がトレースされる。
no_0 : 0
no_1 : e
no_2 : 48
no_3 : 65
no_4 : 6c
no_5 : 6c
no_6 : 6f
no_7 : 42
no_8 : 79
no_9 : 74
no_10 : 65
no_11 : 41
no_12 : 72
no_13 : 72
no_14 : 61
no_15 : 79
HelloByteArray

で、今度はテキストエディタで任意のファイルを作成して一行目に「HelloByteArray」と入力して保存、今度はバイナリエディターで開いてみる。すると上記トレース結果のno_2以降の数値とバイトコードが一致していることを確認できる。no_0,no_1はおそらくファイルの種類に関する変数だと思う。詳しいことはまだ分からない。
とりあえずまだ何の役にも立たないが、ちょっとだけメモしておこう。

Adobe MAX 2007雑感

先週のAdobeMAXはやっぱり面白かった。2daysのうち、二日目からしか参加できなかったけど十分楽しかった。個人的には以前書いたように中村勇吾氏と深津貴之氏のセッションがメインっていうかそれだけでも十分な感じだったので本当におなかいっぱい。

ちなみに中村勇吾氏はプレゼン慣れというか話慣れしてるな~という印象だったけど、自己評価は低いようです ( w ;。

一方、深津貴之氏はちょっと緊張気味だったけど頑張ってプレゼンをしておられました。「3Dとかがもてはやされるけど、AS3のパワーは違うところに使った方が本懐なんじゃないの?」というご意見に強く共感します。借り物のPCにハメられていたのもライブっぽくて良かったかも。


ところで基調講演(といっても二日目だけ)でまったくThermoの話題に触れられなかったけど、日本ではプレビューしなかったのかな?代わりにLiveCycleの話をガッツリされちゃったけど、いまいち心が躍らない。Thermoはどうなったんだろ??


それとちょっと期待しているのがFlashプレイヤーの縦書き機能。あまり多くは語られなかったけど、これってダイナミックテキストでサポートされるのかな?だとしたら新聞みたいにマルチカラム/縦書きのコンテンツを作ってみたいと思う(以前にトライしたけど断念した経緯もあって)。

Adobe MAX 2007雑感 2

AdobeMAXについて素朴に感じたことだけど、あまり言及されないのでちょっとメモを残しておこう。


今回のイベントの内容は完全にweb周辺の話題で、これっぽっちもPhotoShopやらIllustratorの話が出なかった。本当にまったくでなかった。(2日目しか参加してないけど、1日目にPhotoShop、Illustratorの話題が出たとは思えない)しかもweb全般、というよりはやっぱりFlash技術がメインで特にAIR関連に力が入っていた。それからGainerの紹介なんかもやはりFlash周辺技術だし、なんと言うか、メインディッシュから箸休めまで、Flashなんじゃないかと感じたくらいだ。(実際にはフォント技術やら少し毛並みの違う内容もあったけど)


とはいえ個人的にはそれで大満足だったので別に異論はないのだ。そもそも時期的に思いっきり偏向してもしょうがないと思う。AIRの成果如何でAdobeがただのソフト屋からプラットフォームベンダーになれるかが問われているわけだし。まだ始まったばかりの戦局だが、Adobe結構はリードしているんじゃないか?今のところマイクロソフトやGoogleに対して確実にアドバンテージを奪っていると思う。


そこで言及したいのがそうしたアドバンテージを獲得するために頑張っている技術がFlashやFlex、AIRであり、すべからく旧Macromediaのプロダクツだということ。Adobeのプロダクツは影が薄いどころかほとんど蚊帳の外という印象すら受ける。MAXにしてもそもそもはMaromediaのイベントだったし、現在でもMAXのロゴはMacromedia時代のままだ。AdobeLabsなんかもRSSはweblog.macromedia.comから配信されている。しかもweblog.macromedia.comは名前こそ「AdobeLabs」になっているがURLは依然として「Macromedia」の名を冠したまま堂々と日々更新されている。

しぶといぜ!Macromedia!!

MacromediaがAdobeと合併する際、色々便利になるのね、と期待した半面Macromediaが消えてしまうことに感傷的になった人は結構多いはずだ。FreeHandは? Fireworksは?? と焦った人も居たに違いない。(あえてGoLiveは書かない)あれから2年以上が経ったけれど、Macromediaは消えてなくったわけではなく連綿と息づいている。いや、それどころか実権を握っているのは実はMacromediaではないかとさえ思える。

近い将来、「AdobeといえばPhotoshop」ではなく「AdobeといえばFlash(AIR)」という時代がくるかもしれない。

asdocってコメントにhtml書けるのか

POPFORGEのasdoc(リポジトリとかに上がってないので自分で生成)と格闘していると、FurnaceFormatの説明文に表組みの文章があったのですごく驚いた。

Classファイルを確認するとソースのコメント部分に普通にhtmlソースが貼り付けてある。すごいよ、これ。asdocの仕様としては標準的なのかもしれないけど、ソースのコメントにhtmlを書くっていう発想がすごい。

やっぱり天才コーダーは開発だけじゃなくてここら辺の発想がかっとんでるのかな。

more.. "asdocってコメントにhtml書けるのか" »

ByteArray.readObject()はどんなオブジェクトでも返せるってわけじゃない

巷で話題のByteArrayも未熟な僕には少々荷が重いです。

ByteArray.writeObject()
ByteArray.readObject()
は任意のオブジェクトをバイナリデータに直列化(シリアライズ)して、それを復元(アンシリアライズ)したりできるらしいのですが、これって、Spriteなんかをバイナリー化してファイルとして保存できるんじゃないかと仮説を立ててみた。

そしたらhttp://noughts.jp/みたいにFlashのデータを補完したい場合、XML化したりDBに格納したりせず、オブジェクトの完全コピーを保存できるんじゃないかと。
(noughts.jpさんが実際にどうやってるのかは知らないけど)


で、ちょっとテストしたけど、そう簡単にはいかないみたい。というのも、

ByteArray.readObject()はどんなオブジェクトでも復元できるわけではない!

から。
おそらくByteArray.readObject()はバイナリーデータの中身を読み込んでそのつどオブジェクトをnewしている様子。実際にClassを作ってコンストラクタにtrace("foo")とか入れるとreadObject()のタイミングで帰ってくる。
そしてここからが重要! コンストラクタに引数を必須で渡さなければならない場合(function Foo(str:String)とか)に、「引数1個が必要ですが0個が指定されました」とエラーが帰ってくる!こりゃあまいった。なぜならreadObject()はバイナリーデータを走査し、オブジェクトをnewするが、、その際に引数を指定できないからだ。

Spriteの復元の場合、flash.geom.Transformで引っかかる。Transformクラスこそは第一引数にDisplayObjectが必須になるのでここで上記のエラーが出る。

これはどうしようもないな~
自分でSpriteByteArrayクラスを作ってreadObject()を実装する他ないのかな...


more.. "ByteArray.readObject()はどんなオブジェクトでも返せるってわけじゃない" »

Flex2とFlashCS3の違和感

ここんところFlexBuilder2ばっかり触っていたので、F11を叩く事が多くなった。そんなわけでFlashでコンパイルするときもF11を叩いてしまう。ライブラリパネルが開いて、また間違えたとか思いつつCtrl+Returnになれてきた頃にはFlexにもどってまたもや間違える。こんな事の繰り返し。

ここら辺のUIの統一はあんまり改善されない。

FlexBuilderがEclipse由来だからといっても、キーボードショートカットやコードフォーマットはFlashに統一させてもいいんじゃ無いかと強く思う。RIAが、とかユーザエクスペリエンスが、とか色々アピールする前にAdobeは自社製品のユーザエクスペリエンスにもう少し配慮してくれても良いんじゃないかしら。

FlashDevelopが凄くイイ。

そろそろFlexの試用期限も迫ってきたので、購入しようかと考えていたところに思わぬ伏兵が現れた。
FlashDevelop」がとてもイイ。今のトコBeta4だけど、ほぼ問題なく動作している。時折プロジェクトのロードに時間がかかっているけどそんなのは些細な事だ。

FlexBuilderもデザインモードとかほとんど使わないので、FlashIDE(CS3)とFlashDevelopがあれば当面の開発には事欠かないかも。

難点は日本語環境が無かったり、flex_sdkをインストールしたり、環境を用意するのが純正のFlashやFlexに比べて手間がかかるということだが、それも一時間ほどで整える事が出来る。コードカラーリングとかコードフォーマットのカスタマイズがまだ不明だけど(結構めんどくさいという噂がある)そのうち何とかなるだろ。

UIの見栄えもよくてFlexより美しい。でもって軽くて快適。少なくともFlex3がリリースされるまではFlashDevelopで行こうと思う。

*traceの出力をOutputパネルに表示させるやり方が初めわからんかったが、SWFの表示を「Documment」から「External」に変更してやればOKだった。
>Project >Properties >Output >TestMovie から。
忘れないようにメモ。

FlashDevelopのコードフォーマットをカスタマイズ

FlashCS3のアクションパネルより断然使いやすいくFlexBuilderより断然軽量なFlashDevelop。もうこれなしでASを書きたくない。とりあえずデフォルトのコードフォーマットが馴染めないのでカスタマイズしてみた。


サンプルXMLはこちら(xml内に申し訳程度にコメントを入れてます)
flashdevelop.zip
(ローカルではC:\Documents and Settings\userName\Local Settings\Application Data\FlashDevelop\以下に配置)

色々FlashDevelopを触った結果、「環境設定」とか「オプション」みたいにGUIで詳細設定を変更でき内容なので、直接コンフィグファイルに相当する部分を編集。CSSのコーディングをしているみたいな感覚でカスタマイズしてく。ちなみにまだBeta4なので最終リリースでどうなっているのかは不明。ひょっとするとリリース時には「環境設定」があるかもしれない(或いは既にあるけど見落としてるのかも)。

デザインパターンをちょびっとだけ囓ってみた

AS3がかなりまじめなOOP言語になったので、デザインパターンとか勉強したら凄く有益かもしれない!と変な誤解をしたままデザインパターンの本を読んでみた。

この本を選んだ理由は、ズバリ薄いから。実際にデザインパターンは23個しかないので、一日1パターンづつ読み進めても一月でコンプリートできるという計算で読んでみた。

これを読み終える頃には○×のフレームワークはイテレーターとコンポジットを混ぜて構築してるのか~なんて具合にソースの読解力が格段にレベルアップしていることを期待していざ読んでみた。

で、案の定AS3でコンテンツ作るのにこんなご大層な物はいらないんじゃ無いかという結論に達したけど、実際にJAVAなりASなりRubyなりで、明確に何かのデザインパターンをターゲットにしたプログラムとかフレームワークって存在するんだろうか。いや、当然この考え方はデザインパターンを語る上で陥りやすい誤解だというのは上記の書籍でも繰り返し述べられている事だけど、ケーススタディとして「googleの××はビルダパターンだ」とか「Amazonの○○はブリッジパターンだ」と言った具合でサンプルを知ればもう少し見方が変わる気がする。


もう一つ、副次的な効果だったけど、インターフェイスの概念や使い方について参考になった。でも広告系のFlashコンテンツでインターフェイスとか実装させる場合ってどれくらいあるんだろうか?Flexとかで大規模システムとか構築する場合は十分考えられるけど、そっちのニーズって今後本当に伸びて行くんだろうか。首尾良く成長を遂げたならもう一度デザインパターンをちゃんと勉強してみようと思う。

紙とWEB考

最近久しぶりに紙系のデザイナーさんとwebの仕事をして色々思うことがあったのでメモ。スタッフィングはもちろん紙系デザイナーさんがグラフィックデザインで自分はCSSとHTMLのコーディング。サイトは20ページ弱の個人商店の紹介サイト。

デザインはトップページが3カラム+ヘッダーでそれ以外は所謂逆L字レイアウトのオーソドックスなパターン。左にレイアウト、右にページボディが来る形だ。

で、上がってきたデザインは配色とか配置、バランスなんかが自分に無い物でやっぱり長年グラフィックやってる人はここが違うんだな、と素直に感心。ただ、どうもとコーディングがしづらいと感じる事があったので、ちょっと考えてみるとすぐに答えが出た。上記、右側ページボディの内容だが、この部分のレイアウトが結構頻繁に変わる。具体的な変更内容は「背景画像」や「インデント幅」、「行揃え」、などなど。結果的にバラエティに富んだレイアウトで、ポップな感じでまとまっている。たぶんクライアントの受けも良いはずだ。


ただ、どうにも腑に落ちないんだよ!


確かにデザインはとても良い。クライアントも納得だ。ただ、何となくweb的な"何か"とフィットしていない気がするんだ。この違和感が何であるかはなかなかデリケート。安易な事を言えば即座にバッシングされそうなので、ここは慎重に言葉を選ばねばならない。そして、少なくともコーディングがめんどくさいってだけの問題じゃないと願いたい。


ここで一つ仮説を立ててみた。レイアウトのバラエティがページ数の割に豊富すぎる点だが、これは「必ずそれぞれのページで異なった見せ方をしなければならない!」という脅迫観念にもにたテーゼが存在しているんじゃないかと思う。もちろん文章の字数が少なくて見栄えが悪いため、グラフィック的に解決する必要があったりもするんだが、それにしてもやはり過剰だと思う。それに更新性や反復性を阻害しているという事実がやっぱり大きい。

ここでもし自分だったらと考えてみると答えは明白で「更新性と反復性を阻害しない範囲で見栄えを整える」だと思う。言い方を変えると「規定のレイアウトの中でのみ出来ることにとどめる」だ。或いは「文章が増えるまで諦める」の以上二択だろう。つまり、自分にとって諸事情でページの見栄えが多少寂しくなっても「必ずそれぞれのページで異なった見せ方をしなければならない!」とは決して思わない。仮にもしクライアントから「ちょっと寂しいね」と言われても「更新性と反復性」を理由に大胆なレイアウトの変更はしないと思う。

これは「更新性・反復性」だけの問題だけではなく、そもそもは文章でクリアすべき問題をグラフィックによって体裁だけを整えても根本的解決になってないので間違ってはいないと思う。

たぶん紙系デザイナーさんも文章でクリアすべき問題を取り繕っているだけなのは重々承知だと思うが、この「更新性・反復性」、特に「反復性」についてどこまで注意を払えているかは厳しいと思う。

「必ずそれぞれのページで異なった見せ方をしなければならない!」は確かに見た目には楽しいかもしれないし、デザインスキルの向上にも一役買うだろう。更新性も運営側の努力で解決できる。ただ、反復性に関しては失われたまま帰ってこない。反復性はユーザーインターフェイスやユーザビリティと深い関連がある。webサイトはより使いやすく無ければならない。紙のデザインで使いやすく作ることはあるのだろうか?おそらくそれは使いやすくではなく、読みやすくじゃないかと思う。


ここにwebデザイナと紙デザイナの間にある深くて広い川を見た気がする。

Flashのtrace()をブラウザ上で表示させる方法

世の中にこんな便利が物があったとは!
Flashをネットワーク上でデバックする時って、今まで自作のデバッガーとかを作って対応していたけど、こんな便利な物をみつけてしまった。

FlashTracer

FireFoxのエキステンションだけど、これがあればFlashのtrace()関数からの出力を捕まえてくれるみたい。いや~便利だ。一年以上前にリリースされているので多くのFlasherは知ってるのかもしれないけど、こういう便利さって「どこからでも切れるレトルトパウチの袋」みたいでなんだか幸せにさせてくれると思う。

flaファイルの納品。

たまにmixiなんかでflaファイルの納品どうしてますか?という質問を目にするけど、最近の自分の傾向としては仕様書の明記の有無にかかわらず、「くれ!」と言われたら「あんまり嬉しくないけどまあいいよ」とあげている(というか提出)。念のため付け加えるとそこに別途見積もりやら予算は発生していない。

理由は3つほどあって、
1.オープンソース的(?)な理想
2.渡しても多分先方が適切に使用できない
3.2より著作権を侵害するような事態は発生しずらい

flaファイルの提出を渋る一番の理由は「ノウハウの流出と転用の危険性」だとおもうけど、実際のところ、クライアントにそれだけの技術はあんまりない。そもそもバージョンがMXでファイル自体が開けなかったり、フォントが存在していなかったり、win/macで文字組が崩れたりしてまともにコンパイルすら出来ない。更に単一のflaだけで完結している作品だったら良いけどこれからのAS3普及が順調に進めば膨大なクラスファイルが存在するだろうし、色々な汎用フレームワークで内部処理をしている場合、絶対に環境を再現できないと思う。たとえば3DエンジンにPapervision3Dを導入してコンテンツを制作した場合、当然だけどflaファイルだけで完結するはずがない。ここでクライアントに対してPapervision3Dの導入まで面倒を見てやることはないし、仮に導入となったら流石に予算が必要だ。

じゃあなんで「嬉しくないけどまあいいよ」という態度になってしまうのかというと、上記の諸々をクライアントが理解していない(まあ全然理解しなくて良いんだけど)点と、出費したんだからソースファイルもウチのもんでしょ?という誤解があるからだ。

まあ、技術的に理解していないのはしょうがないし、基本的にクライアントにそんな義務はない。ただ、理解してくれてたらこちらも嬉しいし気持ちよく仕事できる。問題はその次の誤解だ。現行の著作権法から言えばソースファイルは当然、アウトプットした物も著作権は制作者に帰属するわけで、「ソースファイルもウチのもんでしょ?」は根本的に誤解だ。では、それにも関わらずどうしてソースファイルを提出するのかというと、上記理由の1番かな、と思う。もちろんクライアントとの関係に波風を立てたくない気持ちを否定はしないが、最たる理由はオープン化によって誰かの役に立てばいいな、という願いだ。

と、言うわけでソース提出の主旨は「クライアントに諸々の権利をすべて差し出す」行為ではなくて「オープンソースとして閲覧、改変、再配布、の自由」を認める事にしよう思う。つまり「ソースファイルはクライアントが独占する物ではなく、公共のものだ」と言うことだ。

と、ここまで書いたところで、そもそも自分の権利関係の知識が乏しいことを今更ながらに実感した。もうちょっとGNUとかBSD、CreativeCommonsとかの勉強をしないと、、と強引にまとめる。

iKnow ! が結構楽しい

gotoAndStudy("english")なSNS、iKnow ! が結構楽しい。猫も杓子もSNSな感も否めないけど、実際にそれなりに英語学習の効果があるかもしれない。

プログラミングとか技術系の学習もそうだけど、いきなりがっぷりよっつで取り組むより、初めは軽く触ってみて徐々にのめり込んでいく方がスムーズに進むと思う。今のところ「軽く触ってみた」感じはいい。あとはこれが深みへと進んで行くにつれどう変化するかが問題。

何にせよ、仕事の話を英語でそこそこ出来るレベルにはしないとな。Flash系のBlogとかなら英語サイトでもなんとか追えるけど、理想としているレベルにはほど遠い。まあ、まだ「軽く触ってみる」段階だと言うことで地道にやるしかない。


それはそうと、9月頃にAS3の勉強と英語の勉強を同時にやってやろうと、名著と名高い「Making Things Move !」を買ってみた。

改めて読んでみると自分のプアすぎる英語力でも技術系の話題なら何とか租借できるんだと少し安心。分からない単語があっても辞書を引かず文章の流れやサンプルコードから類推する感じで何とか読み進めている。これは結構何とかなるかも、と思っていると先日和訳書が出た。

かなりモチベーションにダメージを食らってしまったが、原書の方が若干安いし、何よりも英語が勉強できるんだからこれでいいんだ!と強引に納得することにした。


ところでiKnow ! だけど夜12時をすぎるとかなり重くなる。

RSS + Contuct

  • rss
  • email

Credit

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