小松鼠嚇了一跳,有了魔法眼鏡後,這世界看起來完全不一樣了

2012年6月29日 星期五

iOS 版的 Google Chrome

聽到 iOS 的 Google Chrome 出來了,馬上拿起 ipad2 下載。一開始可能是太新,搜尋不到,後來先找到 google search,然後再查看同為 google 出品的產品才找到。 馬上拿來跑上星期寫的超任模擬器,看看 ipad2 的 CPU 和 xoom 的差異。 結果 javascript 速度很慢,跟 iOS Safari 一樣。 這只是個假 Chrome,沒有 V8, 唯一的好處大概只是帳號 sync 而已。
我還是用 Google Search App 就好了。

2012年6月22日 星期五

Javascript SNES Emulator WIP


這是一個可以在瀏覽器裡面跑的超任模擬器。
基本上是把修改過的超任模擬器 SNEM 經由 emscripten 轉換,所得到的 javascript SNES 模擬器。
以前的 jsnes 只是 NES 紅白機的模擬器,不是超任模擬器。這個大概是第一個。
目前算是半成本,還沒有聲音,效能還有待加強。但如果你的電腦還算新,那大概能在上面玩玩 Super Mario World。
桌機上的 Chrome,Firefox,Opera,Safari 都能跑。
我的 Xoom 上的 Firefox 及 Chrome 也都能跑,手機上的 firefox 也能跑,只是速度極慢,而且可能需要實體鍵盤才能控制。
ipad 2 上測試是無法玩,還要看看原因。

比較成熟以後,將會釋出原始碼和編譯過程。
下面先提供兩個暫時的連結,供測試。

http://www.b81.org/~tjw/smw
Super Mario Wrold,開始時會讀取一個 512K 的檔案,所以先稍待數十秒。

http://www.b81.org/~tjw/xnes
可以跑一些 public domain  的 rom。開始時會有一個 10M 的檔案下載,請耐心等候 1 分鐘。

操作方式為 方向鍵,C,D(start, select) S,X,A,Z(ABXY 按鈕)


2012/6/27 更新:
ipad2 上的 safari 可以跑了,雖然非常慢。其實只是因為有個沒用到的 Float64Array Heap,而 iOS Safari 不支援 Float64Array,很快的 sed 一下修掉就可以跑了。Android 4.0 的內建瀏覽器也能跑了。
速度上來說, xoom 上的 firefox beta(能在 tablet 上跑的舊版),Android 4.0 內建瀏覽器及 ipad2 上的 Safari 速度不相上下,都被 Xoom 上的 Google Chrome 海放。 Opera Mobile 還是無法正常執行。

2012/9/1 更新:
新網址
http://tjwei.github.com/xnes/

2012年6月11日 星期一

關於 Pycontw 2012 的抽獎程式 pylottery

這次 pycontw 2012 的抽獎效果似乎還不錯,這邊簡介一下背後的故事。 一開始是 yyc 借鏡 Eric Floehr 在 PyOhio 的經驗。然後 Peter Wolf Wang 爭取了 Wingware IDE Professional 兩個 license,並且提出貪吃蛇抽獎程式的構想。這大約是五月底的事情。
6/2 日, Peter 用 Pygame 實做這個程式的第一版。這個是他第一次用 Pygame 。
但是 6/3 他就因水痘住進隔離病房,註定無法參加 pycon。這時程式的雛型已經差不多,I am so ready 及 爆破音效也都有了,只是蛇是由綠色的圈圈組成。
6/7 我接手修改程式。我對 pygame 也沒什麼經驗。

 我修改的部份只有:
  • 把蛇改成 pycontw logo。
  • 蛇碰到自己尾巴會有待避動作。
  • 蛇的長度改成有限,但是吃到球之後會增長(也就是真正的貪吃蛇 style)。
至於最為大家津津樂道,優秀的蛇去追球的 logic,完全原汁原味沒有更動。

這個程式的結構其實不好,開獎時完全不吃 event。我後來修改的動畫,效率非常糟糕。而且還有不少 bug(剛發現我的 16:9 螢幕全螢幕時會有問題。)。

但還是 open source,以昭公信 https://bitbucket.org/yungyuc/pylottery。只是千萬不要拿來當成寫 pygame 程式的範例,除非是拿來當錯誤示範。

如果這個程式一開始是我做的,我相信程式的結構和邏輯應該會比較正常一點,但這個程式絕對會失去靈魂。怎麼說呢?因為這個樂透程式之所以有趣就在於他的不合邏輯。
為什麼要用貪吃蛇?蛇跑來跑去跟號碼有什麼關係?
如果是我構想,應該會用鬼腳圖(阿彌陀籤)的方式,然後讓蛇沿著鬼腳跑。因為這樣才有邏輯上的關聯。

這種點子是我一輩子都想不出來的。

當我跑了 Peter 的程式後,我楞了幾秒,才感受到 Pylottery 會達到的效果以及潛力。所以我樂意接手修改這個程式。我的修改主要就是強化凸顯這些特質。

這個抽獎方式很蠢,完全沒必要,完全沒道理,但 pycontw 這類活動一樣很蠢。工作人員義務出力,還要自掏腰包買票參加。 250  個參加者,只因為喜愛 python,就願意給沒什麼戰績的主辦單位機會,掏錢買票。很蠢,完全沒必要,完全沒道理。
也正是如此,我知道這個抽獎方式會得到共鳴, 也理解跨海而來的日本朋友為什麼會對這隻 "stupid snake" 笑得那麼開心。

2012年6月9日 星期六

在 pycontw 2012 的 PySX 投影片和影片

在 pycontw 的閃電秀。