http://sigmundtzeng.blogspot.tw/2013/08/ios-app.html
"真有必要時仍可包裝成app上架到app store"
在開發時的彈性和所增加的效率,我想已遠超過原生的app開發流程了
那…哪來的網路空間可用呢?
http://qops.blogspot.tw/2013/05/google-drive.html
原來google drive就可以拿來用了!!
剩下要考慮的就是工作流程的整合了吧…
2013年8月23日
2012年7月19日
Google Cloud SQL發佈,拋開??的DataStore!
這標題下得有點毒,所以打個馬賽克XD。請見 http://blog.finalevil.com/2011/10/google-cloud-sql.html
申請方式見 http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?p=32404 or http://sls.weco.net/node/16344 & http://fromtw.blogspot.tw/2011/12/google-cloud-sql.html or http://pro.ctlok.com/2011/10/google-cloud-sql.html
再加上ec2一旦超額馬上扣款的預設動作,感覺上先導型計劃還是用GAE比較安全啊…
申請方式見 http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?p=32404 or http://sls.weco.net/node/16344 & http://fromtw.blogspot.tw/2011/12/google-cloud-sql.html or http://pro.ctlok.com/2011/10/google-cloud-sql.html
再加上ec2一旦超額馬上扣款的預設動作,感覺上先導型計劃還是用GAE比較安全啊…
Mobile web apps 開發跨平台的行動裝置應用程式
關於Mobile web apps的定義可參考以下連結
http://ayu1114.blogspot.tw/2012/05/mobile-web-app.html
但是,更簡明的定義,是"為行動裝置而最佳化的網站",見"Building iPhone Apps with HTML, CSS, and JavaScript"。基本上就是利用HTML5 + CSS3 + Javascript 來進行網站應用程式開發。視需求可以將應用程式包裝為獨立的、無需聯網的app,甚至可以放到網路商店上販售,目前有jqtouch, phonegap, Appcelerator titanium mobile, sencha touch, jquery mobile等套件可供選擇。apple陣營還多了一個nimblekit可以使用,可產生原生iOS呼叫。
debug的部分,javascript可以使用alert(),但是html5可能需要weinre來作遠端除錯。
這幾天又出現了新的架構發佈 http://enyojs.com/ 精彩可期啊~~
判斷裝置的畫面大小,以決定所載入的js,可以參考 http://blog.wu-boy.com/2012/07/develop-iphone-moblie-web-app-tip/ ,但是希望enyo.js可以一勞永逸地解決這個問題
臉書在iPhone上有自己的原生app,這個app在載入外部的網頁/應用程式時的行為,是否是受webkit一樣的限制呢?或是在外部網頁利用open graph登入的話,就是受到所用的瀏覽器(如safari)的限制呢?這個問題一旦解決,在跨平台應用的開發上,就可以對可能發生的行為更為了解。 http://cire.pixnet.net/blog/post/36704474-%E6%9C%89%E8%B6%A3%E7%9A%84-mobile-web-app-%E5%AF%A6%E8%B8%90---audiovroom 值得好好的研究一下。
http://ayu1114.blogspot.tw/2012/05/mobile-web-app.html
但是,更簡明的定義,是"為行動裝置而最佳化的網站",見"Building iPhone Apps with HTML, CSS, and JavaScript"。基本上就是利用HTML5 + CSS3 + Javascript 來進行網站應用程式開發。視需求可以將應用程式包裝為獨立的、無需聯網的app,甚至可以放到網路商店上販售,目前有jqtouch, phonegap, Appcelerator titanium mobile, sencha touch, jquery mobile等套件可供選擇。apple陣營還多了一個nimblekit可以使用,可產生原生iOS呼叫。
debug的部分,javascript可以使用alert(),但是html5可能需要weinre來作遠端除錯。
這幾天又出現了新的架構發佈 http://enyojs.com/ 精彩可期啊~~
判斷裝置的畫面大小,以決定所載入的js,可以參考 http://blog.wu-boy.com/2012/07/develop-iphone-moblie-web-app-tip/ ,但是希望enyo.js可以一勞永逸地解決這個問題
臉書在iPhone上有自己的原生app,這個app在載入外部的網頁/應用程式時的行為,是否是受webkit一樣的限制呢?或是在外部網頁利用open graph登入的話,就是受到所用的瀏覽器(如safari)的限制呢?這個問題一旦解決,在跨平台應用的開發上,就可以對可能發生的行為更為了解。 http://cire.pixnet.net/blog/post/36704474-%E6%9C%89%E8%B6%A3%E7%9A%84-mobile-web-app-%E5%AF%A6%E8%B8%90---audiovroom 值得好好的研究一下。
github上的fb官方範本
位置在 https://github.com/fbsamples
以下由於熱門度差異很大,挑些有代表性的介紹
(opengrape: 這看來是一個配合node.js及ruby的Heroku雲端架構的js函式庫,不過沒有實際用法,只能留給ruby大師們享用了…)
platform-samples: 一些平台相關的範例,主要是行動裝置,如iphone, android;其下有四個子目錄
(CriticalMass: 這是3/12/12在GDC使用的範例)
(android-integration-sdk-phonegap: 這則看來很少人關心…)
wishlist-mobile-sample: 是iOS的app範本(吧?沒仔細看)
Social Cafe sample app: 是利用open graph api將動態發佈到塗鴨牆的範例;有些自訂的動態,例如按下某個icon,會引發後續一連串的事件;就像按了"讚"以後,可能會把這個事件傳到後台,然後在塗鴨牆上發佈一條相關的消息之類的。
runwithfriends: 以python撰寫,發佈到app engine的範例
insights-api-sample: 以PHP撰寫,使用Facebook Insights API
以下由於熱門度差異很大,挑些有代表性的介紹
(opengrape: 這看來是一個配合node.js及ruby的Heroku雲端架構的js函式庫,不過沒有實際用法,只能留給ruby大師們享用了…)
platform-samples: 一些平台相關的範例,主要是行動裝置,如iphone, android;其下有四個子目錄
- hacks: 包含一個小型專案mobile-web-icebreaker
- mobile-web-hackbook: 一個比較大型的專案 hackbook。mobile web在此應指mobile web app
- mobile-web-hello-world: 更小的專案
- social-plugins-winefriends: 說明很不清楚,不過規模跟上面那個差不多
(CriticalMass: 這是3/12/12在GDC使用的範例)
(android-integration-sdk-phonegap: 這則看來很少人關心…)
wishlist-mobile-sample: 是iOS的app範本(吧?沒仔細看)
Social Cafe sample app: 是利用open graph api將動態發佈到塗鴨牆的範例;有些自訂的動態,例如按下某個icon,會引發後續一連串的事件;就像按了"讚"以後,可能會把這個事件傳到後台,然後在塗鴨牆上發佈一條相關的消息之類的。
runwithfriends: 以python撰寫,發佈到app engine的範例
insights-api-sample: 以PHP撰寫,使用Facebook Insights API
2011年2月2日
用Javascript/python發資訊到FB個人塗鴉牆的範例
其實背後主要都是用javascript來達到所要的功能
1 http://greenchiou.blogspot.com/2010/12/javascript-facebook-sdk-width-graphic.html
2 http://www.moke.tw/wordpress/computer/advanced/141 使用對話盒式的介面
3 http://zh-tw.facebook.com/topic.php?uid=10150113505190500&topic=13654 新版的JavaScript SDK 發送stream.publish
使用python的sdk的話,以下連結有使用put_wall_post方法的程式碼片斷,注意 self.put_wall_post 附近
1 https://gist.github.com/633809
上面這個程式碼片段主要延伸了官方的sdk,示範了使用方法,可以單純的貼一行文、連結。由於它是由命令列所發動的,因此還需要登入、授權等的動作
2 http://tvd-fb.googlecode.com/svn-history/r9/trunk/facebook_interface.py
這個專案相對而言比較龐大,可惜內容文字很多西班牙(還是葡萄牙?)文,降低了可讀性,不過還是很有參考價值
1 http://greenchiou.blogspot.com/2010/12/javascript-facebook-sdk-width-graphic.html
2 http://www.moke.tw/wordpress/computer/advanced/141 使用對話盒式的介面
3 http://zh-tw.facebook.com/topic.php?uid=10150113505190500&topic=13654 新版的JavaScript SDK 發送stream.publish
使用python的sdk的話,以下連結有使用put_wall_post方法的程式碼片斷,注意 self.put_wall_post 附近
1 https://gist.github.com/633809
上面這個程式碼片段主要延伸了官方的sdk,示範了使用方法,可以單純的貼一行文、連結。由於它是由命令列所發動的,因此還需要登入、授權等的動作
2 http://tvd-fb.googlecode.com/svn-history/r9/trunk/facebook_interface.py
這個專案相對而言比較龐大,可惜內容文字很多西班牙(還是葡萄牙?)文,降低了可讀性,不過還是很有參考價值
2011年1月29日
檢查行動動置上網頁的運行體驗
據說safari 5有設定方式可模擬iphone/ipod
http://stackoverflow.com/questions/3882233/iphone-browser-simulator-for-windows
不過會問這個問題通常是因為網頁中使用了javascript,那麼可用的模擬器有人討論過了
http://stackoverflow.com/questions/464089/simulators-emulators-for-mobile-browser-testing
如果使用比較簡單的javascript而不用extjs/jquery的話,在行動裝置上可正常運行的機率會比較高些,以下幾個網站的範例滿值得參考的
http://www.webanddesigners.com/33-jquery-tutorials-to-create-navigation-menu
http://www.noupe.com/jquery/50-amazing-jquery-examples-part1.html
http://www.1stwebdesigner.com/css/38-jquery-and-css-drop-down-multi-level-menu-solutions/
不過到最後我還是沒有踹出來,所以…放棄了XD
http://stackoverflow.com/questions/3882233/iphone-browser-simulator-for-windows
不過會問這個問題通常是因為網頁中使用了javascript,那麼可用的模擬器有人討論過了
http://stackoverflow.com/questions/464089/simulators-emulators-for-mobile-browser-testing
如果使用比較簡單的javascript而不用extjs/jquery的話,在行動裝置上可正常運行的機率會比較高些,以下幾個網站的範例滿值得參考的
http://www.webanddesigners.com/33-jquery-tutorials-to-create-navigation-menu
http://www.noupe.com/jquery/50-amazing-jquery-examples-part1.html
http://www.1stwebdesigner.com/css/38-jquery-and-css-drop-down-multi-level-menu-solutions/
不過到最後我還是沒有踹出來,所以…放棄了XD
2011年1月27日
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (IX) 多國語言化 i18n
根據不少資料顯示,這不是一個簡單的工作。事實上是非常的麻煩,而且我並沒有成功,但是為了留下記錄,我還是寫下我所進行的步驟。一個可行的行動方案如下
http://blog.yjl.im/2009/02/using-django-i18n-in-google-app-engine.html
不過有一步不成功,是使用 make-messages.py 這步。不要緊,直接把 C:\Program Files\Google\google_appengine\lib\django\django 整個目錄複製到工作目錄下吧。這或許是個overkill,等有時間再回來看看是不是只需要其中某些檔案就好…當然之前按該連結所寫的settings.py就要放到所複製過來的django/conf目錄下
這還沒完,請到 http://sourceforge.net/projects/gettext/ 下載相關的檔 gettext-runtime-0.13.1.bin.woe32.zip , gettext-tools-0.13.1.bin.woe32.zip , libiconv-1.9.1.bin.woe32.zip ,解壓後把所有的bin目錄中的檔案放在工作目錄中
http://blog.yjl.im/2009/02/using-django-i18n-in-google-app-engine.html
不過有一步不成功,是使用 make-messages.py 這步。不要緊,直接把 C:\Program Files\Google\google_appengine\lib\django\django 整個目錄複製到工作目錄下吧。這或許是個overkill,等有時間再回來看看是不是只需要其中某些檔案就好…當然之前按該連結所寫的settings.py就要放到所複製過來的django/conf目錄下
這還沒完,請到 http://sourceforge.net/projects/gettext/ 下載相關的檔 gettext-runtime-0.13.1.bin.woe32.zip , gettext-tools-0.13.1.bin.woe32.zip , libiconv-1.9.1.bin.woe32.zip ,解壓後把所有的bin目錄中的檔案放在工作目錄中
2011年1月22日
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (VIII) 大量資料庫上傳
appcfg.py upload_data,相當於ms-sql的bulk insert,不過…相當麻煩
http://code.google.com/intl/zh-TW/appengine/docs/python/tools/uploadingdata.html
照著上面的文件說明,會踹一次就成功的,只能說是神人了…經過無數次試誤,歸納出以下步驟;以下所提到的"腳本目錄"就是app.yaml等原始碼所在的目錄
(本地端環境寫入)
2."編輯您的 app.yaml,並在 handlers: 區段新增下列幾行程式碼:"。這句話對windows使用者而言是有點輕描淡寫了,如果上一步沒作好,會debug到天荒地老;script所在位置放絕對路徑是不work的!!在handlers:的下一行新增以下幾行
- url: /remote_api
script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
login: admin
3.為了方便起見,先進入腳本目錄,然後在本地端起動伺服器。沒起動的話,會在執行appcfg.py upload_data時得到無法建立連線之類的錯誤訊息。若要清空資料,加參數 --clear_datastore
python "C:\Program Files\Google\google_appengine\dev_appserver.py" --port=8080 .
4."建立載入器類別",這步大概照做
5."準備您的資料",這步大概照做,所撰寫的程式要放在前述的PYTHONPATH底下;為了方便起見,先進入腳本目錄,然後將新腳本放在此目錄下
6."將資料載入開發伺服器",執行下列指令,登入就打admin,密碼沒有,如app.yaml所指定;若出現10061錯誤,加上--num_threads=4;為了方便偵錯,把錯誤訊息重導到到error.txt的話,可以在下列指令最後再加上 >errors.txt 2>&1
python "C:\Program Files\Google\google_appengine\appcfg.py" upload_data --config_file=XXX.py --filename=YYY.csv --kind=ZZZ --url=http://localhost:8080/remote_api --num_threads=4 .
p.s.像ms sql analyzer那樣的工具 http://localhost:8080/_ah/admin/datastore
p.s2.跳出一堆error,似乎和utf-8有關...字串型態需設為 lambda x: unicode(x, 'utf-8') ,參考 http://code.google.com/p/googleappengine/issues/detail?id=157#c18 ;文字中的雙引號"也要改為兩個""作為escape
http://code.google.com/intl/zh-TW/appengine/docs/python/tools/uploadingdata.html
照著上面的文件說明,會踹一次就成功的,只能說是神人了…經過無數次試誤,歸納出以下步驟;以下所提到的"腳本目錄"就是app.yaml等原始碼所在的目錄
(本地端環境寫入)
1.如果先前沒有設定PYTHONPATH的話,要記得設定,不然它會找不到你的.py檔;PYTHON_LIB則是要處理windows和linux/unix系統間的不一致,尤其是路徑的表示法
set PYTHONPATH=...放model的目錄;為了方便起見,就用腳本目錄吧
set PYTHON_LIB="C:/Program Files/Google/google_appengine"
- url: /remote_api
script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
login: admin
python "C:\Program Files\Google\google_appengine\dev_appserver.py" --port=8080 .
4."建立載入器類別",這步大概照做
5."準備您的資料",這步大概照做,所撰寫的程式要放在前述的PYTHONPATH底下;為了方便起見,先進入腳本目錄,然後將新腳本放在此目錄下
6."將資料載入開發伺服器",執行下列指令,登入就打admin,密碼沒有,如app.yaml所指定;若出現10061錯誤,加上--num_threads=4;為了方便偵錯,把錯誤訊息重導到到error.txt的話,可以在下列指令最後再加上 >errors.txt 2>&1
python "C:\Program Files\Google\google_appengine\appcfg.py" upload_data --config_file=XXX.py --filename=YYY.csv --kind=ZZZ --url=http://localhost:8080/remote_api --num_threads=4 .
p.s.像ms sql analyzer那樣的工具 http://localhost:8080/_ah/admin/datastore
p.s2.跳出一堆error,似乎和utf-8有關...字串型態需設為 lambda x: unicode(x, 'utf-8') ,參考 http://code.google.com/p/googleappengine/issues/detail?id=157#c18 ;文字中的雙引號"也要改為兩個""作為escape
2011年1月18日
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (VII) 總而言之…
這篇文章所用的流程是我所見過最快的
http://pythoughts.com/facebook-apps-with-google-app-engine
不過要每個環節都不出錯,才能一次ok,我認為還是需要相當的經驗
關於各版本的演進、優缺點等,可以參考以下這個網站
http://blog.wahahajk.com/search/label/Google%20App%20Engine?max-results=5
相當於ms sql的bulk insert,在一開始要倒資料時相當有用的
http://code.google.com/intl/zh-TW/appengine/docs/python/tools/uploadingdata.html
處理中文時有些地方要注意,同時可以將命令寫成批次檔
http://roy2006tw.blogspot.com/2010/10/google-app.html
有用過RoR的話,GAEO是一個類似的工具,利用scaffold來產生骨架
http://blog.kengao.tw/2008/12/project-google-app-engine_22.html
若您要開發伺服器在啟動之前刪除其資料存放區,請於啟動伺服器時,使用 --clear_datastore 選項:
dev_appserver.py --clear_datastore helloworld/
可參考原文 http://code.google.com/intl/zh-TW/appengine/docs/python/gettingstarted/usingdatastore.html
否則的話會花很久時間,刪一筆要一秒(!!),其中根據我在本機上的測試,all()不需要花時間,fetch()花了0.8秒,delete()花了0.2秒
http://efreedom.com/Question/1-3129391/Google-App-Engine-Devserver-Hideously-Slow
選擇性刪除時,請參考 http://stackoverflow.com/questions/4448123/do-a-mass-db-delete-on-app-engine-without-eating-cpu
真的要大量刪除時,要用cursor
http://stackoverflow.com/questions/3034327/google-app-engine-delete-until-count-0
http://pythoughts.com/facebook-apps-with-google-app-engine
不過要每個環節都不出錯,才能一次ok,我認為還是需要相當的經驗
關於各版本的演進、優缺點等,可以參考以下這個網站
http://blog.wahahajk.com/search/label/Google%20App%20Engine?max-results=5
相當於ms sql的bulk insert,在一開始要倒資料時相當有用的
http://code.google.com/intl/zh-TW/appengine/docs/python/tools/uploadingdata.html
處理中文時有些地方要注意,同時可以將命令寫成批次檔
http://roy2006tw.blogspot.com/2010/10/google-app.html
有用過RoR的話,GAEO是一個類似的工具,利用scaffold來產生骨架
http://blog.kengao.tw/2008/12/project-google-app-engine_22.html
若您要開發伺服器在啟動之前刪除其資料存放區,請於啟動伺服器時,使用 --clear_datastore 選項:
dev_appserver.py --clear_datastore helloworld/
可參考原文 http://code.google.com/intl/zh-TW/appengine/docs/python/gettingstarted/usingdatastore.html
否則的話會花很久時間,刪一筆要一秒(!!),其中根據我在本機上的測試,all()不需要花時間,fetch()花了0.8秒,delete()花了0.2秒
http://efreedom.com/Question/1-3129391/Google-App-Engine-Devserver-Hideously-Slow
選擇性刪除時,請參考 http://stackoverflow.com/questions/4448123/do-a-mass-db-delete-on-app-engine-without-eating-cpu
真的要大量刪除時,要用cursor
http://stackoverflow.com/questions/3034327/google-app-engine-delete-until-count-0
q = Location.all(keys_only=True)
results = q.fetch(500)
while results:
db.delete(results)
q = Location.all(keys_only=True).with_cursor(q.cursor())
results = q.fetch(500)
2011年1月16日
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (VI) 我的第一個fb on gae程式--雲端執行
要上傳程式的話,首先要在 https://appengine.google.com/ 先申請一個app,並且把所申請的 id 填到app.yaml的 application 欄位。觀察了launcher的log,應該是在本地的應用程式目錄下達這樣的指令
python "C:\Program Files\Google\google_appengine\appcfg.py" --no_cookies --email=你的帳號@gmail.com --passin update .
這個--passin 參數的目的是可以由檔案抓密碼,這樣就不用再打一次…懶啊~~
http://www.mail-archive.com/google-appengine@googlegroups.com/msg29550.html
由訊息中會發現會發現一個警告(不是錯誤),還需要安裝一個ssl模組 (我咧…淦…什麼…現在才講),但不裝是不影響上傳的,而且在windows平台上裝這個很麻煩(http://pypi.python.org/pypi/ssl) ,中間會問你的密碼,輸入後過一會就ok了
上傳完後,到 https://appengine.google.com/ 看看,版本號遞增了,再去fb改對應之前指到本機的設定,到 https://appengine.google.com/settings 中所指定的位置,然後就可以看到跟剛才在本地端執行時一樣的結果
GAE上傳的詳情也可參考
http://code.google.com/intl/zh-TW/appengine/docs/python/gettingstarted/uploading.html
更fancy的facebook應用程式範例可以參考官方網站
http://developers.facebook.com/docs/samples/canvas
開發時的一些問題,如為何使用chrome在本地端運行時經常沒有回應,如何使用dict型態的資料欄位,在中文網頁中似乎只有這個地方找得到:
http://www.keakon.net/category/Google%20App%20Engine
python "C:\Program Files\Google\google_appengine\appcfg.py" --no_cookies --email=你的帳號@gmail.com --passin update .
這個--passin 參數的目的是可以由檔案抓密碼,這樣就不用再打一次…懶啊~~
http://www.mail-archive.com/google-appengine@googlegroups.com/msg29550.html
由訊息中會發現會發現一個警告(不是錯誤),還需要安裝一個ssl模組 (我咧…淦…什麼…現在才講),但不裝是不影響上傳的,而且在windows平台上裝這個很麻煩(http://pypi.python.org/pypi/ssl) ,中間會問你的密碼,輸入後過一會就ok了
上傳完後,到 https://appengine.google.com/ 看看,版本號遞增了,再去fb改對應之前指到本機的設定,到 https://appengine.google.com/settings 中所指定的位置,然後就可以看到跟剛才在本地端執行時一樣的結果
GAE上傳的詳情也可參考
http://code.google.com/intl/zh-TW/appengine/docs/python/gettingstarted/uploading.html
更fancy的facebook應用程式範例可以參考官方網站
http://developers.facebook.com/docs/samples/canvas
開發時的一些問題,如為何使用chrome在本地端運行時經常沒有回應,如何使用dict型態的資料欄位,在中文網頁中似乎只有這個地方找得到:
http://www.keakon.net/category/Google%20App%20Engine
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (V) 我的第一個fb on gae程式--本地端執行
一般來說一開始都會先在本機上測試一下
請再次複習fb上有關canvas url的設定,將其中的CANVAS URL(以及SITE URL)改為GAE測試時的本機位置,例如 http://localhost:8081/
請服用:
1. http://clay0529.blogspot.com/2009/09/facebook-apps-developer-tutorial-1.html & http://clay0529.blogspot.com/2009/09/facebook-apps-developer-tutorial-2.html & optional http://clay0529.blogspot.com/2009/10/facebook-apps-developer-tutorial-gae.html
或
2. http://ithelp.ithome.com.tw/question/10052284
當然你可能會發現一些錯誤訊息,如 PIL沒有安裝之類的,那麼請參考
http://code.google.com/intl/zh-TW/appengine/docs/python/images/installingPIL.html
此外,在瀏覽器打 http://localhost:8081/ 是可以運行沒錯,但搬到FB上卻不見了。這是因為FB使用的是post,而範例只有實作了get;解決的辦法就是…對很聰明,就把get的程式碼複製變成post就好了
基本上就是這樣
請再次複習fb上有關canvas url的設定,將其中的CANVAS URL(以及SITE URL)改為GAE測試時的本機位置,例如 http://localhost:8081/
請服用:
1. http://clay0529.blogspot.com/2009/09/facebook-apps-developer-tutorial-1.html & http://clay0529.blogspot.com/2009/09/facebook-apps-developer-tutorial-2.html & optional http://clay0529.blogspot.com/2009/10/facebook-apps-developer-tutorial-gae.html
或
2. http://ithelp.ithome.com.tw/question/10052284
或
如果您用的是之前的HELLO WORLD,那麼還沒引入FACEBOOK代碼,一切都還單純。
當然,如果用的是GAE+FB,那就要把上述教學網頁中對應的PHP程式置換為PYTHON。
例如,如果你抓了 facebook-python-sdk 回來,可以試著執行它所附帶的 examples\appengine 範例,其中的 FACEBOOK_APP_ID = "..." & FACEBOOK_APP_SECRET = "..."請代換為申請FB應用程式所得到的值。把src目錄下的facebook.py複製到範例目錄中,執行
c:\facebook-python-sdk-322930c\examples\appengine>python "C:\Program Files\Google\google_appengine\dev_appserver.py" --port=8081 .
當然你可能會發現一些錯誤訊息,如 PIL沒有安裝之類的,那麼請參考
http://code.google.com/intl/zh-TW/appengine/docs/python/images/installingPIL.html
此外,在瀏覽器打 http://localhost:8081/ 是可以運行沒錯,但搬到FB上卻不見了。這是因為FB使用的是post,而範例只有實作了get;解決的辦法就是…對很聰明,就把get的程式碼複製變成post就好了
基本上就是這樣
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (IV) facebook/python-sdk 安裝
之前說到去 https://github.com/facebook/python-sdk/ 抓了facebook-python-sdk以後,這個module還是有點不給力啊…安裝的動作要先作一下,還好就像perl一樣,有作者寫好的腳本,請運行
python.exe setup.py install
當然如果你像我一樣沒有設預設路徑給python,那就還要打出它的位置,比如
c:\Python25\python.exe setup.py install
更詳盡的解說可以參考 http://docs.python.org/install/index.html
不過根據下面這串討論,還是把要import的程式放進專案中最保險
http://groups.google.com/group/google-appengine-python/browse_thread/thread/a3f1644015b09a6b
放進來以後就像這樣
python.exe setup.py install
當然如果你像我一樣沒有設預設路徑給python,那就還要打出它的位置,比如
c:\Python25\python.exe setup.py install
更詳盡的解說可以參考 http://docs.python.org/install/index.html
不過根據下面這串討論,還是把要import的程式放進專案中最保險
http://groups.google.com/group/google-appengine-python/browse_thread/thread/a3f1644015b09a6b
放進來以後就像這樣
Example structure:
my-app/
app.yaml
...
libs/
facebook/
facebook.py
other-lib/
....
app.yaml
...
libs/
facebook/
facebook.py
other-lib/
....
2011年1月15日
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (III) Facebook Python SDK
如何從臉書知道使用者的資訊,甚至記得使用者的資訊呢?這裏面一定要有一些資訊的交流吧…
那要和GAE整合的話呢?
根據小道消息指出,fb是用php寫的,所以參考一下php的寫法
剩下的,大概就是常態的web application開發工作了。祝好運!!
2011年1月9日
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (II) GAE初探
GAE安裝完成後,來個hello world吧
http://code.google.com/intl/zh-TW/appengine/docs/python/gettingstarted/helloworld.html
最後一步要"測試應用程式",執行dev_appserver.py時,很奇怪的沒有成功
但是使用"Google App Engine Launcher"的話,感覺更順手耶,參考以下連結
http://give.pixnet.net/blog/post/30024215
或
http://www.scribd.com/doc/35546742/%E9%9B%B2%E7%AB%AF%E9%81%8B%E7%AE%97-Google-App-Engine-GAE-%E7%A8%8B%E5%BC%8F%E9%96%8B%E7%99%BC%E5%85%A5%E9%96%80
當然執行後可以看看log,然後會發現,官網上執行的指令是有問題的;log內容是:
Running command: "['C:\\Python25\\pythonw.exe', 'C:\\Program Files\\Google\\google_appengine\\dev_appserver.py', '--admin_console_server=', '--port=8080', 'C:\\helloworld']"
所以執行的指令應該要像
C:\helloworld>python "C:\Program Files\Google\google_appengine\dev_appserver.py" --port=8080 .
或是
python "C:\Program Files\Google\google_appengine\dev_appserver.py" --port=8080 C:\helloworld
下回試試把facebook的應用程式指來本機或GAE看看
to be continued...
http://code.google.com/intl/zh-TW/appengine/docs/python/gettingstarted/helloworld.html
最後一步要"測試應用程式",執行dev_appserver.py時,很奇怪的沒有成功
但是使用"Google App Engine Launcher"的話,感覺更順手耶,參考以下連結
http://give.pixnet.net/blog/post/30024215
或
http://www.scribd.com/doc/35546742/%E9%9B%B2%E7%AB%AF%E9%81%8B%E7%AE%97-Google-App-Engine-GAE-%E7%A8%8B%E5%BC%8F%E9%96%8B%E7%99%BC%E5%85%A5%E9%96%80
當然執行後可以看看log,然後會發現,官網上執行的指令是有問題的;log內容是:
Running command: "['C:\\Python25\\pythonw.exe', 'C:\\Program Files\\Google\\google_appengine\\dev_appserver.py', '--admin_console_server=', '--port=8080', 'C:\\helloworld']"
所以執行的指令應該要像
C:\helloworld>python "C:\Program Files\Google\google_appengine\dev_appserver.py" --port=8080 .
或是
python "C:\Program Files\Google\google_appengine\dev_appserver.py" --port=8080 C:\helloworld
下回試試把facebook的應用程式指來本機或GAE看看
to be continued...
2011年1月8日
使用 Google 應用服務引擎 ( GAE = Google App Engine ) 建立 Facebook 應用程式 (I)
請依以下步驟服用
0.安裝 python 2.5.4 http://www.python.org/download/releases/2.5.4/
1.建立GAE開發環境 http://zh-tw.facebook.com/note.php?note_id=216355946942
2.建立新的Facebook應用程式 http://clay0529.blogspot.com/2009/09/facebook-apps-developer-tutorial-1.html
3.使用GAE開發Facebook應用程式 http://clay0529.blogspot.com/2009/10/facebook-apps-developer-tutorial-gae.html
0.安裝 python 2.5.4 http://www.python.org/download/releases/2.5.4/
1.建立GAE開發環境 http://zh-tw.facebook.com/note.php?note_id=216355946942
2.建立新的Facebook應用程式 http://clay0529.blogspot.com/2009/09/facebook-apps-developer-tutorial-1.html
3.使用GAE開發Facebook應用程式 http://clay0529.blogspot.com/2009/10/facebook-apps-developer-tutorial-gae.html
2010年7月29日
實體機器安裝OSX[2]
在各個OSX的iAtkos安裝版本上,有一些安裝時的選項可以選擇。在第一次安裝完成後,可以試著再安裝一次,修改這些項目,以使得網卡、鍵盤、cpu等得到更完整的直援。www.insanelymac.com 網站上也經常有針對各個品牌的電腦安裝osx的經驗,可以減少嘗試錯誤的時間
2010年7月25日
[轉]Mac OSX + WIN 7 圖型選單多重開機教學
http://www.ptr.idv.tw/viewthread.php?tid=131323
1.變色龍開機管理程式USB版製作 (轉自MacNuts)
建議有安裝 OSx86 的朋友都應該要製作一支以備不時之需。
什麼情況之下會用到?
# 在同一顆硬碟上新增安裝其他的作業系統(如:磁區 1: OSx86, 磁區 2: Win 7...)
# 多個作業系統安裝在不同的硬碟上(如:硬碟 1: OSx86, 硬碟 2: Win 7...)
Chameleon 2.0 可以辨識多顆硬碟上不同磁區的作業系統,進行選擇開機。最常碰到的情況是,當新增安裝了一個作業系統時,原本的作業系統就無法順利開機。這時,Chameleon 2.0 的 USB 開機隨身碟就可以派上用場了。
製作步驟如下:
開機進入OSX環境
下載並解開 Chameleon 2.0RC1 r431 Binaries 下載連結
1. 開啟終端機鍵入下列指令
* sudo -s (輸入密碼)
* diskutil list (確認 USB 的磁碟代號,如 /dev/diskX)
2. 開啟磁碟工具程式,在 USB 隨身碟中建立一個 MBR (主開機記錄)的磁區
3. 於終端機內鍵入下列指令
* diskutil eraseVolume 「HFS+」 「USB」 /dev/diskXs1
* 接著變更目錄至解開位置下 Chameleon/i386 後鍵入 (看你要裝在哪)
* ./fdisk -f boot0 -u -y /dev/rdiskX
* dd if=boot1h of=/dev/rdiskXs1
* cp boot /Volumes/USB
* mkdir /Volumes/USB/Extra
* 將 Chameleon/Extra 的內容複製到 /Volumes/USB/Extra 中
完成
2.變色龍開機USB隨身碟如何使用
簡單說就是救援的開機選單,當選單因為灌新的作業系統而消失時可以依照以下作法
*開機
*於 BIOS 內將 USB 隨身碟設定為第一開機選擇
*如果一切順利的話,硬碟上的開機磁區將會重新出現
*選擇進入OSX系統
下載 Chameleon 2.0RC1 r431 Installer Package 下載連結
安裝
開機選單就又會回來了
1.變色龍開機管理程式USB版製作 (轉自MacNuts)
建議有安裝 OSx86 的朋友都應該要製作一支以備不時之需。
什麼情況之下會用到?
# 在同一顆硬碟上新增安裝其他的作業系統(如:磁區 1: OSx86, 磁區 2: Win 7...)
# 多個作業系統安裝在不同的硬碟上(如:硬碟 1: OSx86, 硬碟 2: Win 7...)
Chameleon 2.0 可以辨識多顆硬碟上不同磁區的作業系統,進行選擇開機。最常碰到的情況是,當新增安裝了一個作業系統時,原本的作業系統就無法順利開機。這時,Chameleon 2.0 的 USB 開機隨身碟就可以派上用場了。
製作步驟如下:
開機進入OSX環境
下載並解開 Chameleon 2.0RC1 r431 Binaries 下載連結
1. 開啟終端機鍵入下列指令
* sudo -s (輸入密碼)
* diskutil list (確認 USB 的磁碟代號,如 /dev/diskX)
2. 開啟磁碟工具程式,在 USB 隨身碟中建立一個 MBR (主開機記錄)的磁區
3. 於終端機內鍵入下列指令
* diskutil eraseVolume 「HFS+」 「USB」 /dev/diskXs1
* 接著變更目錄至解開位置下 Chameleon/i386 後鍵入 (看你要裝在哪)
* ./fdisk -f boot0 -u -y /dev/rdiskX
* dd if=boot1h of=/dev/rdiskXs1
* cp boot /Volumes/USB
* mkdir /Volumes/USB/Extra
* 將 Chameleon/Extra 的內容複製到 /Volumes/USB/Extra 中
完成
2.變色龍開機USB隨身碟如何使用
簡單說就是救援的開機選單,當選單因為灌新的作業系統而消失時可以依照以下作法
*開機
*於 BIOS 內將 USB 隨身碟設定為第一開機選擇
*如果一切順利的話,硬碟上的開機磁區將會重新出現
*選擇進入OSX系統
下載 Chameleon 2.0RC1 r431 Installer Package 下載連結
安裝
開機選單就又會回來了
2010年7月14日
關於 IPhone 程式設計的書或網頁(I)Programming in Objective-C 2.0 (2nd Edition)
這本書從書名乍看之下只講語言本身,實際上它仍然觸及了類似MFC的架構及IPhone SDK的部份。建議VC/GNU職人們直接由第3章看起,再看7 ~11章,剩下的就跳著看。看著看著其實會發現,某些語法元素怎麼和Delphi/Object Pascal那麼像呢?(驚!!)
以下節錄其內容
Programming in Objective-C 2.0 (2nd Edition)
Table of Contents
1 Introduction
Part I: The Objective-C 2.0 Language
2 Programming in Objective-C
3 Classes, Objects, and Methods
4 Data Types and Expressions
5 Program Looping
6 Making Decisions
7 More on Classes
8 Inheritance
9 Polymorphism, Dynamic Typing, and Dynamic Binding
10 More on Variables and Data Types
11 Categories and Protocols
12 The Preprocessor
13 Underlying C Language Features
Part II: The Foundation Framework
14 Introduction to the Foundation Framework
15 Numbers, Strings, and Collections
16 Working with Files
17 Memory Management
18 Copying Objects
19 Archiving
Part III: Cocoa and the iPhone SDK
20 Introduction to Cocoa
21 Writing iPhone Applications
Part IV: Appendixes
A Glossary
B Objective-C 2.0 Language Summary
C Address Book Source Code
D Resources
以下節錄其內容
Programming in Objective-C 2.0 (2nd Edition)
Table of Contents
1 Introduction
Part I: The Objective-C 2.0 Language
2 Programming in Objective-C
3 Classes, Objects, and Methods
4 Data Types and Expressions
5 Program Looping
6 Making Decisions
7 More on Classes
8 Inheritance
9 Polymorphism, Dynamic Typing, and Dynamic Binding
10 More on Variables and Data Types
11 Categories and Protocols
12 The Preprocessor
13 Underlying C Language Features
Part II: The Foundation Framework
14 Introduction to the Foundation Framework
15 Numbers, Strings, and Collections
16 Working with Files
17 Memory Management
18 Copying Objects
19 Archiving
Part III: Cocoa and the iPhone SDK
20 Introduction to Cocoa
21 Writing iPhone Applications
Part IV: Appendixes
A Glossary
B Objective-C 2.0 Language Summary
C Address Book Source Code
D Resources
2010年7月13日
[轉] 蘋果好易用筆記: [大分享] iPhone app 開發經驗
http://ecmacblog.blogspot.com/2009/05/blog-post.html
[I. iPhone Developer Program 申請]
[II. 第一次交 iPhone app]
[III. 提交 app 審核和秘技]
[IV. app 上架後]
[I. iPhone Developer Program 申請]
[II. 第一次交 iPhone app]
[III. 提交 app 審核和秘技]
[IV. app 上架後]
訂閱:
文章 (Atom)