我之前寫了這篇WebFaction不止是虛擬主機的介紹,介紹關於WebFaction雖然是虛擬主機,但是他能做得比虛擬主機多太多了,價格實惠,功能強大,有人問WebFaction能不能跑自己的C/C++語言寫的Server,答案是當然可以,這點有明確地列在他們開出來的規格裡,為了示範如何做以及證明的確可以,我把我之前修網路程式設計寫的無聊Server丟上去編譯並執行給大家看
Archive for 七月, 2009
WebFaction能不能跑自己的C/C++語言Server?
七月 30th, 2009wxPython自製Control : 用Matplotlib畫圖表的FigurePanel
七月 22nd, 2009最近可能會接到一個需要GUI上畫不少圖表的案子,於是就來研究了一下wxPython + matplotlib,前陣子買了wxPython in action,雖然一本1500元大洋讓我心有點淌血,不過這本書真的寫得很棒,讓我對wxPython有更深入的瞭解,如果案子接下來買n本都可以,我個人認為買書來讀是一種投資,所以基本上看上眼的書買起來也不會手軟,接著因為除了畫圖形,也需要用到不少GUI,我把wxPython官方的demo抓下來,裡面每個範例都跑了一次,對於wxPython能做到什麼地步有了更深入的瞭解,越來越覺得wxPython真是酷斃了,很好玩的GUI framework
在這之後,雖然案子還在歸劃的初期,不過我不是很喜歡空等而沒有程式可以寫的感覺,其實在接洽的這段期間就能先完成一些將會用到的東西,像是widget之類的,或寫寫原形來驗證確實可行之類的都很好,所以我就寫了一個用Matplotlib畫圖表的Control : FigurePanel,因為往後在寫GUI都會用到,如果每次都要特地寫來處理這些我會發瘋,當然最好的方法就是包成Control,如此一來所有圖表都可以直接使用,加上可以有統一的行為,例如另存新檔、列印等等,相當方便
什麼是Matplotlib? Matplotlib是一套強大的Python畫圖表用的函式庫,如果不知道他到底可以畫到什麼地步,就可以看他們官網的畫廊,相信看完後就知道它有多強大,幾乎你想得到的圖、想不到的圖,沒看過的圖,他都可以畫,當然,如果裡面沒有你要的圖,或著你要自創圖,當然也可以自己擴增,有了這套函式庫,原本我可能得先花個一個星期還多少時間來建構一套畫圖表的基礎,如今這些時間完全省了下來,這就是使用Open source的好處,沒有這些東西真的不知道要寫到民國幾年
切入正題,我們來看一下FigurePanel的原始碼
WebFaction價目表中文版,再一次推薦WebFaction
七月 19th, 2009最近因為要向客戶報價,使用的空間當然也要讓客戶知道,客戶原本案主要用的空間是貴到暴炸的國內空間,每年要價一萬多元,流量和空間更是小得可憐,拿國內和國外比當然是不能比,為了讓客戶瞭解差別在哪裡,所以就翻譯了一份WebFaction的Plans
下列資訊以原網頁內容為主,價錢單位為美金
夢想線上聊天室的新成員 腦殘NPC: Dragon
七月 18th, 2009因為Client需要重構要花一些時間,在這期間想說如果都沒變化還挺無趣的,但Client又還不能動,就在伺服器端加了一個無腦亂跑和亂說話的NPC: Dragon
話說這幾天下來還蠻多人進來的,大多是外國人,果然全球的市場就是不一樣,才放上去沒多久下載次數已經是之前程式的幾倍,不過安裝率反而比較低,大概是因為太揚春和有些問題,玩家大多都打英文,來自各個時區,不同年齡,目前看到最小的是一個外國小女孩13歲拿著G1在玩,真是有錢 囧
玩家的反應兩極,有人一進來就說』This is suck』, 『I’m out』就跑了,不然就說』This is gay!』, 『You look gay』, 『every one in this game looks gay』,也有人覺得很有趣,說』This is an awsome idea』, 『This is interesting』, 『I can’t wait this game to be improved』,或許因為兩極反應拿到3.5顆星
整體看起來Android上的mmorpg或是像這樣的線上聊天室還是有搞頭的,單以台灣市場可能太小,但全球的話就應該夠大足以稱起這遊戲,不過還有很長的路要走,首要的工作就是改進client
夢想線上聊天室Beta
七月 15th, 2009終於,第一個可運行的版本出來了,本來這種程式應該要慢慢寫才對,但是臨時決定要衝比賽,玩家端包含伺服器端寫了我三天的程式,程式寫得很髒很亂,有不少小bug,但大至上的運作都是正常的,日後維護可辛苦了,不過至少即時趕出來了
遊戲截圖
進入主畫面後點擊地圖的八個方向就可以移動
未來的目標是做成手機上的MMORPG,不過可能還要很久的時間
下載
透過下載連結或是qrcode:
卡卡獸的移動
七月 14th, 2009簡單的Android地圖引擎
七月 12th, 2009Android遊戲設計初體驗
七月 12th, 2009今天玩了一下在Android寫game,託以前經驗的福,很容易就上手了,和一般的Game沒有太大的差別,但因為Android所謂的main-thread和main-loop都是用來回應UI用的,因此要更新遊戲的邏輯、畫面,需要另外的Thread,參考Android裡的遊戲範例,很快地就隨便寫出一個還稱不上是Game的小程式來玩,只是簡單地移動貼圖,在模擬器跑慢到暴炸,FPS只有1初頭,根本沒辦法進行debug,而在我的HTC Magic下跑FPS可以到30~40左右,所以要在Android開發遊戲似乎實體的手機是必需的,模擬器平時跑一般的程式都可以慢成誇張的地步了,更何況是不停更新的Game,所以非手機或其它硬體支援不可,除非哪天模擬器效能大改進
雖然這小程式沒什麼大問題,但是有件事情讓我很困擾,就是每隔一點段時間就會發生delay,週期性且不斷地發生,這樣的delay會讓玩家感到不爽,難以進行遊戲,糾~竟~是為什麼會有這週期性的delay,我們…繼續看下去
Delay的兇手
找了一些資料,終於讓我發現這週期性delay的兇手,就是來自於garbage collection的週期性回收垃圾,請看VCR
在Android寫一個簡單的貼圖移動程式,發現會有週期性的delay,原因出在於垃圾回收機制不停地週期性地運作,請看背後LogCat的GC發生的一瞬間,程式的畫面就會delay
而亂丟垃圾的兇手就是….
我,沒有什麼寫Java經驗的我,new一個物件似乎很輕鬆平常,反正Java有垃圾回收機制,一般寫程式再怎麼丟都有人幫你撿,但是寫Game就是另一回事了,對於寫Game而言,垃圾回收機制是delay的來源,所以在遊戲迴圈內不能有用完即丟的new物件產生,任何物件在遊戲都應該被reference或是重覆利用,不停丟垃圾的下場就是你的遊戲會因為有人一直停下來幫你撿垃圾所以不停的delay
當我移除所有new之後…
我發現delay似乎還是會發生,想了一想,想到了在這背後還有隱含的new會發生,也就是Java的字串其實骨子裡就是new,只是方便的寫法所以不用特別寫出來,在移除了所有使用到暫時字串的地方後,果然圖片的移動就相當順暢
接著
我想寫一個簡單的地圖引擎實作來看看Android的2D貼圖效能如何,如果不幸的很不夠力,可能就得用OpenGL下去畫2D了
第一隻Android程式: 電力座標定位
七月 9th, 2009在拿到HTC Magic後,就開始試著寫程式,我有很多點子,不過在一開始對Java不熟還有Android也不熟不是那麼容易實作,就挑了一個簡單一點的題目來做,就是電力座標定位程式,那什麼是電力座標呢? 電力座標其實是台電公司標在電器設備上用來表示座標位置的一種表示法,你可以在住家週圍的電線桿上找到,例如像這樣的電線桿
它的詳細一點的介紹可以在這裡找到
要手動計算電力座標雖然不難,但也很煩,而且還有座標轉換的問題,為此我就寫了這樣一個程式,只要輸入座標就可以自動換算在地圖上標示出來,這程式說起來簡單,不過就代公式而已,但是對於我來說卻一個頭兩個大
麻煩的公式
不止是公式麻煩,在找到公式前,還得瞭解一大堆背景知識,關於地理、地圖的相關知識,對於讀資工的阿宅我來說,那些資料真的很不好找,讀起來也很痛苦,經過辛苦地在google上打滾,還有好心人的幫助下終於知道怎麼做,其實要把電力座標轉換成TWD67很簡單,只要一些簡單的式子,接著把TWD67轉換成TWD97也不難,最麻煩的就在於把TWD97轉成經緯度,它的式子非常之復雜,這之後另外再寫一篇來介紹
截圖
目前程式非常地陽春,我還沒有加任何額外的東西進去,目前就只有輸入和定位如此而已,較細節上的功能會慢慢更新
—— 更新 ——
2009/7/9
更新了介面,還有操作方式,讓使用更人性化
修正了座標第六七個字元限制設錯的bug,請下載最新版,否則遇到有E之後的字元都沒辦法輸入
免費下載
只要在Android Market搜尋電力就可以找到程式,或是如果從android上瀏覽此文章可以點擊此連結前往Android market下載頁面,又或著用你的barcode scanner掃描以下連結
(我都忘了還有QR barcode可以用= =)










