ボロノイ図

fitcでのマリオ・クリンゲマンさん(Quasimondo)のセッションで、


「そうそう、こういうことがやりたくて
 こっちの世界に移ってきたんだよ!」


とものすごく刺激を受けてきました。




よし、この感動を忘れないよう、
マリオさんについていろいろ調べてまとめるかー
と思ってみたものの、まだ日本語での記事はあまりなく、
http://pingmag.jp/J/2007/07/23/fitc-flashy-islands/


本家のブログをがんばって読んでみるかー
と思った見たものの、びっしり書かれた英語にひるみ、
http://www.quasimondo.com/


とりあえずいろいろ使いまわせそうな「ボロノイ図
http://ja.wikipedia.org/wiki/ボロノイ図
のサンプルでも作ろう、というところに落ち着きました。




で、こちらの記事のアルゴリズムの解説がわかりやすかったです。
http://d.hatena.ne.jp/rsakane/20090331/voronoi_diagram

  • 適当な位置に点を置く(配列に全ての点の座標x,yを保持しておく)
  • あるピクセルに注目して、そのピクセルと上で打った点の中で一番近いのを探す。
  • その一番近い点の位置にある色を取得して、注目したピクセルに代入する。
  • あとは、他の全ピクセルに同じように処理させるだけ。


ボロノイ図って必ずしも「不規則な形で領域分割するための方法」てわけじゃないんですね
 (最初に打つ点の位置関係によっては規則的な領域分割にもなりうる)




で、wonderfulにソースコードもありました。
http://wonderfl.net/code/870ff8531447e24f8bae52ace1bbda4c92b16049


こちらのソースでは、

  • 100個の点を置く。各点は座標と速度を個別に保持。初期座標と速度は乱数で決定。
  • 各点の座標を速度に応じて動かす
  • 境界線の視点座標と終点座標を求める処理(ちゃんと解読してないけど、たぶん2点を結ぶ線分の二等分線の式を求めて、交点を求めたり云々してる)
  • 境界線を描画


つまり、このクラスは「ボロノイで領域の境界線を引く」
というもののようです。


自分は「ビットマップをボロノイで領域分割」という使い方をしたいので、
コアな処理は自分で書く必要がありそう。


ちょっと今からつくってみようと思います。




 

iPhoneアプリからTwitterAPIを利用する方法

開発中のアプリでコンテンツをサーバから取得する機能が必要なのですが、
サーバ側の開発が進んでいないようなので、
とりあえずTwitterAPIで練習しておこうと思います。


まず、手元にある本の、ネットワーク関連の解説を調べてみました。

  • 『基礎からのiPhoneSDK』UIWebViewを用いたブラウジングの解説
  • 『iPhoneSDKアプリケーション開発ガイド』(オライリーのやつね)CFNetworkを用いたネットワークプログラミング。主にソケットの話。UIWebViewのページではGoogle検索ユーティリティのサンプルも。
  • 『iPhoneSDK Programming Manual』XML解析の解説とサンプルあり。
  • 『ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド』GoogleMapsを利用したアプリ、RSSリーダーアプリのサンプルあり。
  • 『iPhoneSDK3プログラミング大全』UIWebViewの解説。NSXMLParserクラスは簡単な紹介のみ。
  • iPhoneデベロッパーズクックブック』XML解析の解説あり。


というわけで、XML解析の解説とサンプルがある
『iPhoneSDK Programming Manual』
『ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド』
iPhoneデベロッパーズクックブック』
を参考に進めていこうと思います。

大まかな流れ

さらっと読んだ感じだと、
NSXMLParserオブジェクトのinitWithContentURLメソッドに
NSURLオブジェクト使ってURL渡してやるだけでXML取得もやってくれるっぽい。
(つまり、AS3みたいにLoaderとか不要)


簡単そう。
でも、FITCが始まってるので、
帰ってきて体力あったら続きやります。




 

活動記録(10/24〜11/7)

自分がどれぐらいの時間をかけて何を生み出し、
どれだけ成長したのかをきちんと把握するために、
web関連での活動履歴を記録していこうと思います。

10/24(土)

  • 銀座アップルストアにてiPhoneイベント。赤松さんとこの生徒さんのiPhoneアプリ制作報告会みたいな感じ。デザイナーをされている方のphotoshopレイヤーデータの多重具合が一番印象に残っている

10/25(日)

  • いきなり風邪を引いて発熱。会社辞めて得た時間で寝込むのはバカらしいので全力で療養する。
  • 夜にはほぼ回復し、iPhoneアプリ開発に着手。Tabの各ビューにTableViewを実装し、各セルに画像とテキストを入れ込むところまで。

10/26(月)

  • フラワースクールFlash案件の修正。png画像の透過はFlashにインポートすると無効になることがわかった。(ということはFlash素材はベクターデータでもらう以外の方法はないのかなぁ・・・?)
  • メールフォームPHP案件でサーバー情報の連絡がやっとくる
  • ついでにケータイ位置情報を使ったFlash案件の話も出る。もちろん二つ返事で受ける。ただケータイFlashGPS情報を取得する方法がよくわからない・・・(11/7現在、まだわかりません)
  • で、そのもらったサーバー情報がまた間違っていてFTP接続不可。再度問い合わせ
  • マスメディアン紹介企業の面接。恵比寿のオシャレなオフィス。代表の方は丁寧でいい感じ。でも案件単位で仕事をもらうには実績がないと無理そう

10/27(火)

  • フラワースクールFlash案件の修正。この日やっとtweenerで"easeIn"や"easeInOut"という設定名は存在しないことに気づく
  • 同じくフラワースクールの資料請求フォームPHPを作成。初めてCSSもやってみる(タグや数字で見た目を調整する作業はあんま楽しくないなー)
  • メールフォーム案件のサーバー情報連絡が来る。今度は接続OK。動作確認して納品
  • マスメディアン紹介企業の面接第2弾。クリエイターとしてのレベルは高そうで、一緒に仕事できたら勉強になるだろうなぁとは感じた。ただやっぱり正社員になる気は今のところないし、案件単位での仕事をもらうには実績が足りない。ここでやっと、中途半端な就職活動はやめて、今はまず実績づくり(制作)に黙々と励むべきだと気づく
  • 天気オルゴール制作。何をやったかまでは失念

10/28(水)

  • フラワースクール資料請求フォームの積み残し部分(都道府県のリスト化、入力チェック)の実装完了
  • クスール経由で紹介してもらった制作会社の方から、Flash案件の話がくる。内容が全く不明だけど速攻でOKの返事を送る。が、先方からの応答なし(11/7現在、未だに音沙汰なし)
  • マスメディアン紹介企業の面接第3弾。技術の質問は、各言語を使ってみてどこに不便や違いを感じたかとか、Lispはやったことあるか、とか。他にわりと聞かれたのはプロジェクト管理の方法と考え方について。やはり正社員になるつもりはなく、案件単位での仕事が欲しいという打診もしなかった

10/29(木)

  • 仕事とコンテスト応募作品のための時間が足りず、前職の人と会う予定を平謝りでドタキャン
  • 天気オルゴール制作。雪のときの音色を延々とネットで探したり、soundboothでエフェクトかけたり(いまの僕のやり方だと、音楽生成とかのコアな部分よりも、素材探しや素材の補正に一番時間がかかる)

10/30(金)

  • フラワースクールの依頼主と、認識ずれを感じたので電話で打ち合わせ。いつの間にか僕がカレンダー予約ページまで作る話になっている。結果、流用で済みそうなので受けることにする。
  • で、カレンダー予約ページの作成。ボタンクリックでphpに文字列をpost
  • 天気オルゴール制作。処理量やメモリ消費量を少しでも減らすために、今後の拡張性のために用意していたしくみをすべて取っ払う(それでも結局ネットブックではまともに動かず)

10/31(土)

  • 天気オルゴールを応募
  • クスールより補助講師の依頼
  • フラワースクールよりカレンダーの罫線を入れてくれという依頼。ただその罫線は既に入れていて、僕の環境ではどのブラウザで確認してもちゃんと見えている
  • f-siteセミナー。ASの有名な人たちはこれぐらいやってる、というのがわかって有意義だった。実際案件こなしつつああいうものを作ってるのはすごい。飲みにいきたかったけど、仕事優先のため帰る

11/1(日)

  • iPhoneアプリ開発。動画再生に成功。実機テストの準備を開始。
  • フラワースクール案件、ボタンがカレンダーの各セルにあるのはいやだということで、cosaicさんにお聞きしたjavascriptのsubmitメソッドを使う方法で対応
  • CS4インストール

11/2(月)

  • iphoneアプリの実機動作確認に成功!
  • カヤックを受けたときに作成した99の企画リストを再精査。わずか3ヶ月前なのに、発想力がかなり進化していることを実感する(もっと進化すると、逆に何も思いつかなくなる気がする。実現可能性や方法やコストが見えすぎてしまう、という意味で)

11/3(火)

  • 企画リスト精査の続き
  • とある写真加工アルゴリズムを思いつき、AS3で実装してみる。2時間ほどでコアなところは完成

11/4(水)

  • 妻の誕生日なので制作はお休み

11/5(木)

  • 例の写真加工アルゴリズムをアプリとしての体裁を整えて 1click award に応募。正午締め切りだけど、URL応募なのでその後もちょこちょこ変更を加える
  • でも、趣旨が全然違う(僕の作品におけるインタラクションはただの操作であって、そこに新しさがない)ことに気づく
  • 京都時代に一緒にバンドやってた人が新宿でライブするというので見に行く。ライブはとても良かったし、ひさびさに会えて嬉しかった、、、けど、16時には家を出て、帰ったのが24時ぐらい。時間の使い方をもうちょっと精査しよう・・・

11/6(金)

  • iPhone依頼元の会社で打ち合わせ。まだモックと呼べる状態でもなかったので、進みが遅いとか苦言を呈されないか不安だったが、そういうのは一切なかった。今後の予定、進め方など。ちゃんとデザイナーがついて素材を提供していただけるとのこと。iphoneアプリ関連書籍を2冊借りて帰る
  • フラワースクールに赴いて問題のPCで修正。chrome入れて確認したら問題なかったのでie6のせいだと断定。trのところで指定してるborder指定が効いておらず、tdのほうは効いているようなので、指定をtdの方に移し替えたらうまくいった。trに対してborder指定するのはダメなの?
  • クリックしてもページ遷移しない問題は、a href="javascsript:void(0);"としていたところを、a href="#" としたら動くようになった
  • 作成したフォームをページに組み込むところまで僕がやることになった。

11/7(土)

  • 京都時代の友人が東京に来ていたので新宿で会う。その友人の会社が運営しているサイト用のアンケートFlashの超ざっくり版をその場で作成する
  • 家に帰ってからは制作やらず。


やばい、これすごい時間かかるなー




でもこうして振り返ることで、
いかにちょっとした用事の積み重ねで
制作時間が削り取られていくか、よく把握できました。


もっともっと時間の使い方を研ぎ澄まさないと。


明日(11/8)はクスールに行って授業のお手伝いをやるのですが、
移動だけで片道1時間半かかるので、
11時半ぐらいに家を出て、帰ると21時になります。
これはもう、ちゃんと自分のPC持ってって開発やりながらじゃないと・・・




 

Mashup Awards 5 と 天気予報API活用アプリコンテストに応募しました

天気予報APIを使ってるので、
ひとつの作品でふたつのアワードに応募できました。


(作品概要)
天気予報APIを使用して取得した週間天気予報より、
オルゴールのように美しいメロディを生成します。


(作品URL)
http://223.sitemix.jp/wp-content/uploads/2009/10/weathermusic.html


※1 わりと繊細な音なので、ヘッドホンなどで聴いていただけると嬉しいです
※2 処理が重いです。最適化は相当がんばったのですが・・・




11/4までは修正できると思うので、
こうした方がいいよ、とかバグ発見!とか
ぜひアドバイスいただければと思います。




 

独立日記 1日目

今日は初の「非」出社日!


いきなり風邪引いて調子悪いです・・・



今日やること

以前書いた人材紹介会社の紹介で、
とあるWeb制作会社の面接を受けにいきます。
Flashデベロッパー枠)




で、今悩んでいるのが、
「どんなスタンスで面接に臨めばいいのか?」
ということ。




その会社はファッション系に強いようで、
制作実績を見ると非常に洗練されていて、
おしゃれでかっこいいものが多いのですが、


僕は、
・アイデアとしておもしろいもの
・技術的におもしろいもの
をやりたいんであって、
ファッション系にはあまり興味がないわけです。


とはいってもデザインは重要だと思っているので、
そういった視点や技術はぜひとも学びたい。




・・・ごちゃごちゃ書きましたが、諸々考慮すると、


「入社の意志は今のところないですが、
 案件単位でのお付き合いができると嬉しいです」


このスタンスで "前向きに" アピールして、
現場でやってきた方の生きたアドバイスをもらう、


これを今日の目標にすることにします。


(入社しないと人材紹介会社にはお金が入らないので、
 実際に案件まわしてもらうのは無理そうだけど)







 

制作会社とひとくちに言っても・・・

ほんとにいろいろありますね。


今日いろんな求人案件をみて、
僕の中で次のように分類しました。


角が立つとよろしくないので
くわしくは書きませんが、


「いま持ってるワクワク感や創造意欲を
 絡めとられないようにしないとなぁ」


と考えさせられることがいろいろありました。




意味不明ですいません。