六月 18, 2012

周蟒--中文Python程式語言部落
zhpy
is about »
» Blockly Maze迷宮中文版


中文化一下maze迷宮。透過程式積木來控制Google地圖小人在迷宮地圖上行走。

http://www.gasolin.idv.tw/public/blockly/demos/mazetw/index.html

附上最直觀的解法。

六月 12, 2012

周蟒--中文Python程式語言部落
zhpy
is about »
» 周蟒積木版


周蟒積木版 集各種不實用編程(中文編程+視覺化編程)於一身 XD
透過拖拉積木的方式編程,結果可輸出為Python, Javascript等語言,並可在網頁上執行即時查看結果。


http://www.gasolin.idv.tw/public/blockly/demos/codetw/index.html

這個版本是基於google blockly製作的, 

http://code.google.com/p/google-blockly/

為了支援中文編程,我協助 blockly 的 developer : 
* 將messaging抽出,方便i18n化
* 支援non ASCII變量名
* 加入在網頁上直接執行(透過javascript)功能

這些改進都已經commit進Blockly svn裡了。

周蟒積木版跟周蟒的關係主要體現在
* 目標都是中文編程
* 盡量使用和周蟒一致的變量名
* 一樣可輸出Python

有興趣的朋友可以試玩看看


與周蟒相比,周蟒積木版免去了打程式碼的功夫、
能透過web使用,並提供更多種語言輸出(javascript,python)
也許會對教小朋友學編程更有幫助?

六月 9, 2012

周蟒--中文Python程式語言部落
zhpy
is about »
» 加入'輸入'積木


周蟒積木版在「字串」分類中加上「輸入」積木,現在可以做文字互動遊戲啦。

但因為目前generator的限制, 現在只能用變量來接兩個語句,不能嵌套著用。



畫面右側也多加入了儲存/載入按鈕,但目前只有在Chrome瀏覽器上測試過。

十二月 7, 2009

周蟒--中文Python程式語言部落
zhpy
is about »
» 周蟒的新動態

最近終於又可以抽出時間,來好好改進一下周蟒。
接下來預計的改動如下:

1. 轉換到使用 Mercurial 分散式版本控制系統
2. 使用 Contribute 來取代 SetupTools (Contribute 可以支援 Python 3)

等轉換完之後,會開始試著完成使用 pyparsing3 來支援 python3 的工作。

Update: Contribute 在 Ubuntu 上因為會試圖取代 easy_install 命令,所以安裝時會失效
改來試 pip 看看好了。

八月 16, 2009

周蟒--中文Python程式語言部落
zhpy
is about »
» 1.7.3 展望:Android 上跑周蟒

開發中的 1.7.3 版本初步已可以在 Android Scripting Environment (ASE) 上跑, 如圖所示



目前可以在 android 上啟動 interpreter, 但該環境或介面還無法輸入或顯示中文.
而且要直接在 Android 上跑 ooo.twpy/xxx.cnpy 還有些 encoding 問題,

但可以透過 svn 中的 android.py (自行撰寫的 ASE android 函式庫 mockup)來在桌面端調試(example/droid/android.py),
直接在桌面端調試好後,用 "zhpy -p" 命令將周蟒程式轉換成 python 檔,再放到 Android 手機上去跑。

上週在 Coscup 09 上也做了一些演示 Demo

八月 12, 2008

周蟒--中文Python程式語言部落
zhpy
is about »
» 文摘

» 周蟒 1.5 之路

最近 weijr 寫了幾篇很有意思的文章:



weijr 提出了透過利用 python 會在程式檔開頭讀取編碼設定 (encoding) 的方法,來使用 python interpreter 直接執行如周蟒等程式,並且提出了基於周蟒 1.4 修改後的實做,其中許多修改很值得參考。

Python MagicCodec 0.1 裡有個大量修改過的周蟒 1.4 版本。

看到 weijr 願意修改 zhpy 並發佈一個自己的版本我還蠻開心的,這表示周蟒開始值得其他人花心力來修改了,也是種肯定。
但同時警覺到: 讓人寧願自己修改而不是發個 patch 給我們,也表示周蟒還有不足之處。

因為周蟒是採取測試驅動開發,而且目標是相容多個 python 版本與平台,
因此在周蟒實做中,我會避免使用 python 2.5 的語法或 python 2.6/3.0 時即將淘汰的語法,
而且代碼需要通過全部測試,從而保證釋出版本的質量,使用者才能放心地採用或自由修改。

周蟒本來就是一個採取測試驅動開發,集合大家創意的中文(python)程式語言,許許多多的功能都是由不同人貢獻出來(可以看 ChangeLog),才有今天的周蟒。

周蟒 1.5 將繼續重構,並同時加入一些更進階的關鍵字,也許會在這版本或下個版本加入透過 encoding 來使用 python 直接執行周蟒的方法。(如果 weijr 肯發個 patch 過來就更快啦 :D)

如果對周蟒原始碼有興趣,可以透過
svn co http://zhpy.googlecode.com/svn/trunk/
來取得原始碼

周蟒原始碼總是維持隨時都是可工作的。

» 周蟒近期動態 (5~8月)

數學表示法與周蟒

Mr. Monkey 寫了篇 zhpy 的另類用法

利用周蟒 可以用 ini 擴充詞庫的特性,加入數學符號對應,使得程式中可以直接寫出諸如

print sin(π/4) ≠ √(2)/2

這樣的語法,將收錄在下一版的周蟒範例中 (example/realmath)。

文字 RPG 與周蟒

文字 RPG 是使用 console 遊玩,沒有圖片,遊戲裡面的互動與戰鬥都是以文字來表示的一種古早遊戲方式。基於一個德國人寫的 textrpg 模組, 我也寫了篇
給我五分鐘,教你用中文腳本寫一個 RPG (使用 TextRPG)

Crunchy 與周蟒


Crunchy 是一個網頁介面的系統,可以在教學文章中的 python 語言區塊後端直接附上一個互動式 shell,讓讀者可以直接在同個頁面試驗。目前支援 python 2.4 以上環境。

因為 Crunchy 也是基於 utf-8 編碼,因此要讓 Crunchy 支援周蟒相當容易, 只要在原始碼中加上兩行敘述:

crunchy/src/interpreter.py

class InteractiveInterpreter(object):
....
def runsource(self, source, filename="User's code", symbol="single"):
....
try:
from zhpy import convertor
source = convertor(source)
code = self.compile(source, filename, symbol)

如此即可在 crunchy 的網頁介面中輸入周蟒程式碼。

五月 6, 2008

周蟒--中文Python程式語言部落
zhpy
is about »
» 周蟒 1.7 開發進度,interpreter 自動完成

昨天用 rlcompleter 讓周蟒 interpreter 支援自動完成(打單字自動補全關鍵詞,打英出中),
例如任意打出 '印'、'print'、'pri'、'prin' 後,按下 tab 鍵, shell 中就自動換成 '印出' 一詞。

以一段簡單的用迴圈印出資訊的程式碼為例:

>>> for i in range(10):
... print i
要達到等同於這段 python 程式碼的目的,在 zhpy interpreter 中,原本得輸入:
>>> 取 i 自 範圍(10):
... 印出 i
現在可以輸入
>>> for[tab] i in[tab] ran[tab](10):
... pri[tab] i
每次按下 tab 鍵,interpreter 就會自動將 "for"、"in"、"range"、"print" 等關鍵字轉換成 "取"、"自"、"範圍"、"印出"等周蟒關鍵詞,大幅簡化輸入的次數。

期待簡中開發者加入,協助增加利用拼音方式的自動完成。

五月 31, 2007
» 新玩意一直來

這兩天好多有意思的新東西冒出來,一個一個寫blog太麻煩了,所以就集中在一篇一次解決 XD

Microsoft: Surface
Microsoft號稱秘密研發了五年的東西,看起來真的很炫。但可能是我看了太多類似的ubicomp和HCI prototype demo,所以沒有對這個idea覺得”Wow!”。但話說回來,Microsoft如果真的能在年底把它做成真正能實用且便宜的產品(呃,至少要在藍色畫面上標示該用手指畫出甚麼樣的軌跡才能重開機吧),那就能期待一場新革命到來了..。
相關文章: Surface:這就是創新 真正令人Wow的Surface

Apple: iTunes U
Apple在iTunes上推出了一個叫iTunes U的program,可以透過iTunes收聽/收看許多知名大學的課程,包括Stanford, MIT, UC Berkeley都在其中。平常我都會在一些片段又不方便看書的空閒時間聽一些英文教學的podcast,聽久了其實也有點無聊XD 剛好看到這個不錯的program,可以拿來填補一些零碎時間。

Google: Google Gears, Google Mashup Editor, Google Mapplets
上面三個新東西都是從Official Google Blog看來的。 今天是Google Developer Day,剛好也有很多新東西被推出來。其中Google Mashup Editor還沒完全開放,只能看到簡單的介紹。但看起來不像Yahoo Pipes那麼炫,還得自己手動寫code,是個有著濃厚geek風格的東西。
Google Gears就很有趣了,它建立起一個framework讓一般的AJAX web app能夠offline使用。也就是說,即使今天用Google Calendar到一半網路斷了,也還是能在離線時繼續使用,等到有網路後再把資料sync起來。而在斷線的時候,資料的存取全部都會被重導到local端的假server和假database上。有良好測試習慣的programmer應該都知道,這其實就是寫網路程式時很常用的測試方法。所以有了這東西後,以後開發web app就方便多了,不必隨時都得掛在有網路的真實環境下寫程式。
Google Mapplets是Google Maps上的新功能,可以讓人mashup一些東西後,再顯示在地圖上。這東西看起來也很好玩,之後試玩過後可能會再寫專文介紹..。 (其實是我想睡了….. XD)

biggo.com.tw

A Django site.