發表文章

目前顯示的是 2012的文章

AS3 Class Enumeration

筆記筆記.. 一般在 AS3 要列舉 Object 的 properties 時,通常會用下面這種寫法: 不過在處理 VO (Value Object) 時則會出問題,因為它是 Class,後來在這篇 文章 找到解法:

讀書心得 半路叛逃

要在台灣看到遊戲開發的相關書籍其實不容易,其中獨立遊戲開發者的心路歷程更是少之又少。 難得最近書店上出現了一本程式出身的遊戲制作人 半路( 猴子靈藥 站長)大 的甘苦談,二話不說就買回家看了~ 從小就喜歡玩遊戲的我,一直認為遊戲制作人是一個很夢幻的工作,如果我會一直待在遊戲業的話,也希望未來能成為一位獨立遊戲開發者,做自己想做的遊戲! 獨立遊戲開發者 最近還蠻受注目的,尤其前陣子  Indie Game: The Movie 這部紀錄片的播出,真的令人熱血沸騰。 花了兩天中秋假期,把這本《 半路叛逃 App遊戲制作人的1000告白 》啃完,收獲良多,因此上來寫一篇簡單的書摘。 “1980年代前是經歷過經濟成長起飛的父母長輩,1980後是成長於物質與資訊不虞匱乏的我們” 上一代眼裡認為我們是早熟的一群,因為一切的成長來得太快,但其實隨著學歷要求提高,新鮮人起薪越來越低的情況,延後了我們踏入社會的時間,事實上心理狀態相對起來是晚熟的。 這點台灣跟日本很像,反觀大陸和韓國比較像前者,他們還在衝,還在拼,所以無論是政府還是我們真的都必須在加把勁努力。 其它像30歲焦慮症,工作責任制等...半路在書中也有一些見解。 “早期國產單機遊戲的輝煌年代不在,如今的遊戲業如同製造業工廠般,都在把寶貴的研發能量投注於尋求「 可複製的成功模式 」,將遊戲「 產線化 」”。 為什麼台灣做不出百萬銷量的遊戲呢? 只鎖定台灣市場 ,三國,武俠,博弈,這些都是用到不能再爛的老梗了,別白白浪費iOS,Android 平台為我們開發者鋪好的通路,全球超過一億台智慧裝置的使用者在等著你,“ 世界從來沒有離我們這麼近過! ” 只想複製別人的成功模式 ,緊盯著排行版前10名,然後致敬一款。 以為做App是低成本的事 ,魔鬼藏在細節,這裡有一句話我很喜歡,“會寫程式跟畫圖的人滿街都是, 真正能夠做到磨亮細節的才是人才 ”,學習了。 想以量取勝 ,因為現在的遊戲價格低廉,為了賺錢以數量取勝,亂槍打鳥而失去了品質,其中提到一個概念,「最小可行產品」,不過這在製作遊戲原型可行,用在市場會有問題。 只是大遊戲的濃縮版 ,應該回到最初玩遊戲的感動,而不是將大團隊的開發方式原封不動的搬過來。 工廠化思維 ,只想找低風險的遊戲做。 為什麼你不該離職創業搞App

COSCUP 2012

今年很幸運的有搶到入場資格,這也是小弟第一次參加 COSCUP ,趁現在剛結束滿腔熱血的狀態下來寫篇心得文。 今年 COSCUP 一共有兩天的行程,在中研院人文館舉辦,每個時段都有 3~4 場的分享,不過常常碰到某個時段三場都想聽,也常常碰到某個時段的題目都沒興趣...orz Day1 第一天忘了做筆記,只好憑記憶跟拿些圖來湊一湊 我的專屬識別證唷>.^ 早上第一場是微軟傳教士分享的 Windows Azure 感覺還不錯,而且有繁體中文的介面。 第二場我去聽了 Fred 的 Nodee.js OS,不過我覺得他自己改的 Linux 比較炫。 第三場請到 Penk 大大來 demo 他的平板 UI,印象深刻的一句話是 科技業是唯一比女行時尚還追求時尚的行業 我的解讀是幹這行每天都在學新技術 囧.. 第四場超讚,講者 demo 他用 javascript 寫的超任模擬器,眼淚都快飆出來了,而且老師很幽默: 目前國外有人正在研究如何用 javascript 寫出一個超任模擬器,如果他成功,那會是全世界第三個,因為前面兩個被我寫出來了XDDD 接下來的下午場雖然都有去聽,可是比較沒有什麼印象的點,只記得最後閃電秀的大大們XD,你們實在太讚了! Day2 難得有位置,明明很晚到... 第一場請到廣達的 Ted 先生,本來以為會很無聊,但從頭聽到尾,學到蠻多東西的: 研發的目的 1.不想被外界surprise 2.想給外界surprise   不相信外星人就無法創造飛行車   要把複雜的東西變簡單其實是最不簡單的   設計一個你最討厭的東西 試著把它做好 第二場去聽 Tool Objects in jQuery,主要重點: 用 Queue 取代巢狀 Callback Deferred 可以看做是 Call by future  $.when 可以用來管理複數非同步的結果  pipe 跟 when 的關係可以看作串聯與並聯 一些 Callback 常用的 function: add fire once memory unique stopOnFalse differed 第三場的場次是我最掙扎的,有Heroku,有Emacs,有Twitter Bootstrap,還有手

Development Tools

圖片
不知不覺,這個月的文章還沒想好要寫什麼, 七月就過了... 這一篇我打算分享一些最近在關注的玩意兒。 Trello Trello 是 Joel 團隊開發,一個專案管理的工具,當然,他是雲端網頁,所以在任何地方都可以掌握團隊的專案進度。 Trello 可以使用 Google 的帳號登入,登入後可以根據專案的開發流程自訂專屬的 Board ,每個 Board 內可以貼上各個項目的 Card,並且可以和專案成員即時協作。 自己本身大概用過兩三套這種PMS的產品,Trello 簡單易用,一個人獨立開發使用也很方便,算是敏捷式開發上不可或缺的好工具。 影片介紹: 另外,Trello 也有提供 iPhone 的版本: Sublime Sublime 是一個很棒的程式碼編輯器,前一陣子在這篇  Which is the Best Code Editor? 得到很高的分數。 我用過之後也是愛不釋手,漂亮的配色,安裝容易的眾多外掛,不錯的開啟速度,總而言之,大力推薦!! 一些必不可少的Sublime Text 2插件 Sublime Text 2 实用快捷键 Cloud9 IDE C9 也是一個寫程式的好工具,可是跟 Sublime 不同的地方,它是雲端網頁版的編輯器。 C9 支援的語言也不少,甚至可以直接跑 Node.js ,並且也支援 Github 的 Repository clone。 不過這幾天用下來發現速度不理想,常常會進入 Offline 狀態。 Heroku Heroku 是一個雲端應用的 host 平台,支援的語言有  PHP Ruby Python Node.js。 Heroku 和 Facebook 合作,讓開發者開發 Facebook 應用程式的時候可以直接連結 Heroku 的空間,並且支援 Git ,目前初步試用下來感覺很不錯。 Travis CI Travis CI,顧名思義,是提供持續整合(Continuous Integration)和每日建構的服務。 不過目前還沒機會使用,所以還不是很清楚它的詳細內容。 Travis CI 可以結合 Github,讓你隨時知道專案的測試狀況。

讀書心得 約耳趣談軟體

圖片
以下是節錄一些這本書覺得還不錯的點 激勵是有害的, 主要是說考績制度對程式設計師是不通的 工作切換有害無益, 讓程式設計師只專注一件事情 絕對不能把程式碼重寫(這裡不是指重構) 冰山一角理論, 冰山有90%是在水面下, 大部分的軟體, 那些漂亮的使用者介面通常只占10%的工作, 而背後90%的程式設是看不到的, 如果再考慮一半時間都在抓蟲, 那使用者介面就只剩5%, 如果只計算介面中的視覺部分, 那客戶真正看到的, 只有1%......, 這並不是秘密, 真正的秘密是非程式人員根本不知道這件事...... 約耳測試: 你有使用原始碼控制系統嗎?  SVN, CVS, Git, Mercurial... 你能用一個步驟建出所有結果嗎? 準備一個Script擋, 只要執行這個腳本, 就能一次搞定從最新原始碼快照到自動建立釋出產品的過程 你有進行每日編譯嗎? 提交原始碼到版本控制系統前, 一定要編譯並且沒有出現錯誤, 因為別人也想下班 你有沒有問題資料庫? 記錄已知的Bug清單, 每筆Bug需記錄: 1.重現問題的完整步驟 2.應該看到的結果 3.實際看到的結果 4.被指派的負責人 你會先把問題都修好之後,才寫新的程式嗎? 愈晚修正問題, 之後付出的代價成本愈高 你有一份最新的時程表嗎? 程式設計師討厭排時程, 但牽扯到業務人員的決策規劃, 擁有時程可以強迫自己決定要作哪些功能, 並剔除不重要的功能, 以避免過度膨脹 1.使用一些PMS工具 2.時程表簡單就好 3.每個功能應該包含多項任務(Task) 4.只有實際要寫該程式的程式設計人員,才能排出該項目的時程 5.要把任務分的很細(以小時為單位) 6.紀錄最初和目前的估計 7.每天更新已消耗時間 8.把休假時間算進去 9.把除錯時間算進去 10.把整合時間算進去 11.把緩衝時間算進去 12.絕對不讓經理縮短估計時間 你有寫規格嗎? 例如: GDD TDD 又是一件程式設計師討厭的事情, 設計初期的階段還看不出來, 愈後期程式碼一多修正的代價就愈高, 應貫徹沒有規格就不寫程式的原則 程式設計人員有沒有安靜的工作環境? 需要讓程式設計師進入沈浸狀態(in the zone), 因為這時候是最能全神貫注, 生產力最高的狀態, 所以, 要有安靜的環境!!! 你有沒有用市面上最好的工

App Center Tutorial

本篇翻譯自 Facebook 開發者頁面  的 App Center Tutorial Facebook App Center 是一個大型的社交應用程式中心。App Center 是協助你的  Facebook Apps 、 手機 apps 和使用 Facebook Login 的網站  的管道。Facebook 鼓勵所有開發人員在這個 App Center 建立您的 app 細節內容頁面。 這篇文章將引導開發者配置 apps 的過程: 建立一個 App 細節頁面 上傳圖片 網站和手機網頁的特別注意事項 提交您的 app 到 App Center 如果你還沒有在 Facebook 平台上建立一個應用程序,你應該參考 Apps on Facebook , Facebook Mobile 或 Facebook for Websites 開發指南。 本篇假定您已經熟悉 Facebook App Dashboard 的操作及基本設置,並且已閱讀 App Center Guidelines 。以確保 App Center 審查上市後,用戶在使用上有一個良好的體驗。

How to list the properties of a javascript object

筆記 本篇參考 stackoverflow 的 How to list the properties of a javascript object 要如何知道Javascript物件擁有哪些proerty? ex: var dog = { name : ' Lucky' , age : 3 , breeds : 'Shiba Inu' }; 上面是一個小狗的物件,裡面有一些自訂的屬性'name','age','breeds' 等等... 那要怎麼在程式中知道這些屬性呢? 比較新的瀏覽器(IE9, FireFox, Chrome...)可直接使用 Object.keys 這個方法 var keys = Object . keys ( dog ); 或者自己寫 var getKeys = function ( obj ){     var keys = [];     for ( var key in obj ){       keys . push ( key );     }     return keys ; } var keys = getKeys ( dog ); 這樣 keys 就會是一個有所有屬性的陣列 keys = [ "name" , "age" , "breeds" ]; 參考文章: How to list the properties of a javascript object

Javascript and this

筆記一個 javascript 的特性。 通常在使用一些 method 的時候參數都帶有 Callback Function, ex: click(callbackFunction) 如果在這個 Callback Function 裡面直接使用 this 是沒有辦法的, ex: callbackFunction = function() {   this.doSomethiing(); // undefined } 必須先在在外層定義 this 為一個變數才可以, ex: var self = this; callbackFunction = function() {    self.doSomethiing(); // OK!! } 參考文章 : Javascript - 淺談this與Closure

Use getPixelRatio for HTML5 on retina

如果用 HTML5 配 WebView 來作 App 的話, 在 iPhone4 跟一些 Android 手機會碰到的解析度問題 , iPhone4 的 Retina 是 960 x 640, 但是在 WebView 底下會以 480 x 320 來顯示, 所以須要利用到 javascript 的 getPixelRatio() 來作調整, /** * Return current device resolution pixel ratio, Default is 1. * @return {number} */ function getDevicePixelRatio() { if (window.devicePixelRatio === undefined) { return 1; } return window.devicePixelRatio; } 這裡寫一支 function 來取得裝置的 PixelRatio,一般通常都 return 1, 解析度較大的手機才會回傳其他數值,例如 iPhone4 則回傳 2, 最後寫一支 initDeviceViewport 的 function 來塞值給 viewport metadata tag, 例如這裡 iPhone4 會將 viewport 的 scale 全部縮放為 0.5 倍。 /** * Initialize device viewport meta tag to full screen size. * @author http://jsway.se/?p=150 */ function initDeviceViewport() { var scale = 1; var ratio = getDevicePixelRatio(); if (ratio !== 1) { scale = 1 / ratio; scale = scale.toFixed(1); } var viewport = document.getElementById("viewport");

Javascript message on Facebook post feed

之前在使用Facebook API的時候碰到的問題,,筆記一下。 如果在 沒有登入Facebook 的情況下開啟 Feed Dialog 發佈訊息, 會被導到一個莫名其妙的頁面,上面只有一串 javascript 如下 <script type="text/javascript"> window.location.href="fbconnect:\/\/success? post_id=XXXXXX; </script> 這個問題我碰到兩次, 一次是在網頁版直接使用  Graph API call  的方式開啟 Feed Dialog, 一次是在 iOS Facebook SDK 中使用 Feed Dialog, iOS好像是在4.0以下才會發生,不太確定, 解決方法: 找到呼叫 Graph API 的地方 ( iOS SDK 應該在 Dialog 相關的檔案裡) 將 https:// m .facebbok.com/dialog/feed?xxxxxx 的  m  改成  www 還是不行的話就把 https 改成 http 試試,應該可以解決~ 參考: Javascript message on Facebook Connect post to feed in iPhone/iPad app undefined