2007/11/10 土曜日

太郎でも次郎でもない

カテゴリー: おぼえ書き — ryu @ 17:57:50

そっちかー。

Javascriptの「this」は日本語の「僕」みたいなものだ、と言ってみるテスト

ianimeの興味より this ポインタの方が気になられてるらしい。
Javaやってたら結構有る話で傍観モードだったけどコメントしてみるテスト(w。

Javascriptだと直感的でない事の本質は下記2点だと。
1.function()によってコンテキストが変わっている事に気がつきにくい
2.無名ブロックのコンテキストはGlobalオブジェクトに成るのは仕様

比較のためにJavaで書いてみる。


public class Test {
  public void hello(){
    final Test test = this;
    Thread th = new Thread(){
        public void run(){
          System.out.println( this.toString() );
          System.out.println( test.toString() );
          System.out.println( Test.this.toString() );
        }
      };
    th.start();
  }
  public static void main( String argv[] ){
    Test test = new Test();
    System.out.println( test.toString() );
    System.out.println( "-- " );
    test.hello();
  }
}
Test@41d683
--
Thread[Thread-0,5,main]
Test@41d683
Test@41d683

thisが別クラス内であれば別のオブジェクトに成るのは自然な流れ。
なので、1.の解説終わり。

Javaだとself使うにしてもfinalを要求される。
評価時にselfの内容が変わっている可能性を避けるためだけど、
こういう保護機能がない所がさすがjavascriptだ。

で、Javaだと Test.this という書き方も出来る。
これはまさに「太郎が僕に」という表現だろう。
個人的にはこの書き方が好き。
一つ前のでも動くけど、finalとはいえローカルスコープの変数を、
クロージャーでアクセスするのが気色悪いから。

また、Javaだと無名クラスでもそれなりに名前が付く。
なので「太郎が僕に」と言う事も可能だけど、
Javascriptだと無名にすると、Gobalオブジェクトのプロパティになる。
これは仕様。らしい。

なので太郎がとか次郎がとか言う訳では無く、
「神様が」
という事に成ってるのが本当は適当かもしれない。

2007/11/8 木曜日

ianime.js使ってみた

カテゴリー: ipod touch — ryu @ 1:39:44

中島さんのBlogのコメント欄に書いてたけど長く成ったので、
trackbackすることにする。

元記事はこの辺。
ianime.js、iPhone/iPod touch 用アニメーション・ライブラリ
ianime.jsの高速化

普段あんまりインタラクティブな物作ってないので、
的外れかも知れないものの、ちょっと試してみた感じ、

  • pause(true)/pause(false)したときにワープする
  • stopが無い

のが気になる。例えばアニメ中に着弾した後消せない。アニメの間隔を短くすれば消せると思う物の短くすればするほどライブラリ使う意味が無く成ってしまうような。

折角公開されているので*1何か作ろうと思って、それこそインベーダーでもと思ったものの、ふと郷愁に*2かられPC-98時代のBIO100%のゲーム移植?と思い立ちNeko II落として来て蟹味噌とかSuperDepthとか動きを確認しつつ遊んで・・・。ついでに10年以上前、新卒就職活動の売り込みネタ*3に作った自作ゲーム(当時C++でソース添付というorz)も動かしたりして時間食った(w。もう手元に何にも無いけど雑誌載ったりしてたからVectorに上がってて助かった(w

なんて時間過ごしながらもなんかiPhoneらしくないっていうか、
折角ならiPhoneならではの物と方向転換。

で、onorientationchange 使いつつ玉を転がして穴に入れるような?のを作ろうと思ったものの玉が転がってる間に方向を変えられないという事に気がつき中断。自分でライブラリ機能追加という話も有る物の今日はここまで。

*1 公開して反応無いと寂しい限りだったりする(ハズ)
*2 前後してこの辺観てたからかも
http://www.slideshare.net/takesako/gif89a-oldtype
# Javascript遅い・・というあたり
*3 役に立たなかった古き時代・・

(続きを読む…)

2007/11/2 金曜日

CheckPod r0

カテゴリー: ipod touch — ryu @ 0:17:42

CheckPod取りあえず公開。

iPhone/iTouch(iPod touch)用の勝手(3rd party)アプリ。
階層型ToDoというか単にチェックリスト。

Installer.appにも対応しているので、
[Sources]->[Edit]->[Add]
で、 http://nyanyan.to/touch/ を追加すると、
[Install]->[Productivity]
に出てくるはず。

.appのscpの方がいい人は↓から
http://nyanyan.to/touch/zips/CheckPod-r0.zip

操作にはswipe使ってるので、行選択した上で左右に指を滑らすべし。

ソースも公開したい物の・・・

2007/11/1 木曜日

訃報 – itojunさん

カテゴリー: 未分類 — ryu @ 2:16:20

Rest in Peace Itojun-san.

(続きを読む…)

CheckPodをちくちくと

カテゴリー: ipod touch — ryu @ 1:30:56

checkpod insertcheckpod delete

取りあえず。挿入/更新と削除を実装。
見た目なんか好感が持てるUIだよねぇ。動いてるともっといい感じ。
そのうち動画も撮って晒そう。

UIAlertSheetでキーボード表示するには
[sheet presentSheetFromAboveView:self];
じゃなく、
[sheet popupAlertAnimated:YES];
を使う。

必要な操作としては、
・チェックボックス反転
・行移動(入れ替え)
・挿入/編集
・削除
・階層変更(レベルアップ/レベルダウン)
が有るけど今の所階層変更未実装でボタン類使い切ってるから、
操作方法を追加しないと・・・

いまは折角のswipe(画面上で指滑らせるジェスチャー)で削除にしてるけど、
レベルアップ/ダウンをswipeにした方が良いか。

じゃぁ削除出来なくなるから、Editを削除「X」にして、
変更はmobileSafariのURL風に選択行を変えられるようにする・・・。

UINavigationBarにUITextFieldつっこむサンプルを探さないと。

ここまで作っておいてアイコンがプロジェクトデフォルトの?のままなのはそろそろ寂しいかも。
q

アイコン制作用のPSのファイルも付いてるけどセンス無いからなぁ(w

あ、そうそうUIKitのサンプルは、iPhoneDevDocs の Forum
Code Samples
が、結構色々有っていい感じ。

微妙に toolchain 0.20と0.30の違いに悩まされるものの。

Skype関連のネタが無いだけにこれはこれで良いのだ(w

と、思ったらまたグラフが暴れてるorz

31 queries. HTML convert time: 0.258 sec. Powered by WordPress 2.8