[iOS][粉絲相簿更新v1.2] 主要是修復一些比較大的問題還有視覺icon調整

前言: 在07/23更新了粉絲相簿到v1.2版本,主要是修復不論是視覺界面的問題,還有操作上的一些問題. 主要修復: 美化icon解析度,修復視覺問題 修復使用者端資料庫會產生錯誤讀取的問題 修復許多操作上的問題 雜言: 這次更新的上架速度比我想像中的快了很多,大概一個禮拜就可以正式上架.果然更新跟第一次上架有天壤之別. 此外~自己來寫app真的很難做完全的測試.每次都是上架後,朋友才會來跟我講哪裡有問題,哪裡有錯誤. 這樣一直更新都讓自己覺得不好意思  XD   最近有人問我一些問題,在這裡寫一下幾個FAQ Q: 這個APP寫了多久? A:這個APP總共前前後後寫了一年多.從我買Macbook Air到現在 .前後貫穿了從我完全不會寫iOS到現在(也沒多懂@_@) Q:這個App有用到哪些技術呢? 這個問題比較複雜一點,裡面主要有用到幾個SDK: Facebook SDK 主要就是讀取粉絲相簿與資料,其中也包括了 Single-Sign-On Parse SDK 就是網路伺服器與資料庫管理的部分使用Parse,一個簡單使用並且在某些流量下是免費的PaaS. 可以讓我存取一些資料庫,還可以發送push notification. FGallery 主要負責的就是各位看到的相簿瀏覽的部分,我知道裡面有許多的問題.比如說:不能批次讀取,滑動會上下,不能暫存等等. 這些部分的加強就會擺在之後,當然也是我更熟悉後. Q:App的資料哪裡來? A:主要都是網友分享的,所以也希望又更多網友能夠分享你們喜歡的粉絲頁面給大家,讓這個更好用.      
繼續閱讀

[Golang][Heroku] 如何用Golang 做出簡單的 REST API Web Application

 網路上找了一下方法,其實方法相當的多.大家可以找自己適合的方式來做,反正我也在學,乾脆把每一種看到的都開始試試看: net/http 這篇文章談到如何用net/http 來做,其實也沒那麼難,不過問題都一樣.都得對於每個物件與方式座對應. 不僅僅是個別東西得自己寫出來,由於每一個都是走 url.values所以幾乎是無法辨別 albums/1 這樣的REST API,必須傳遞 ?albums=1  目前還沒有想到比較好的方式可以做出get/add/delete,繼續研究其他的. 參考: http://dougblack.io/words/a-restful-micro-framework-in-go.html gorilla/mux: 可以使用 gorilla/mux的方式來把 http.handle request 去route 到各個不同functions去. 這裡有詳細的方法,看不懂可以拿我寫好的code去參考.不過只有list all,如果要做出 albums/1 這種狀況似乎是沒有方法的. 跟net/http的問題是一樣的,也沒有熟悉到有想到解決方可以可以實作 item GET/PUT/POST/DELETE  (ex: album/1) 參考: http://www.gorillatoolkit.org/pkg/mux http://joshua.themarshians.com/hardcore-google-communicating-go.html go/martini martini算是相當適合拿來做REST(基本上內建已經支援了) m.Get(“/hello/:name”, func(params martini.Params) string { return “Hello “ + params[“name”] }) 這邊要注意的是: 內容是  :name 你可不能輸入 curl  -i  localhost.com:xxxx/hello/:name  而必須要輸入 name  params[“name”] 出來都是字串,要轉數字要注意error exception.   其實有個文件上沒有講清楚的就是針對 Get/PUT/POST 的function input,少寫是會找不到的 func getItem(params martini.Params) string {   //…. } func updateItem(w http.ResponseWriter, r *http.Request, params martini.Params) (int, string) {   //….. } func addItem(w http.ResponseWriter, r *http.Request) (int, string) {  //…. }  範例與實作的部分: 我在練習的時候主要是利用類似範例裡面的in-memory database 還有 martini 來完成REST.此外並沒有用到JSON的格式,主要是因為之後打算拿來練習其他的資料庫mongoDB. 實作的時候,我發現問題比較多的其實不外乎就是function的parameter 之外,再來就是client端要如何下指令去打成 GET/PUT/POST/DELETE 的指令,主要用的是CURL這裡簡單的列一下: GET:  curl -i  ”https://localhost:8001/albums” POST:  curl -i POST –data “band=Carcass&title=Heartwork&year=1994” “https://localhost:8001/albums.xml” PUT:  curl -i  PUT –data “band=Carcass&title=Heartwork&year=1993” “https://localhost:8001/albums/4” DELETE: curl -i DELETE “https://localhost:8001/albums/1” 參考: http://0value.com/build-a-restful-API-with-Martini https://github.com/go-martini/martini
繼續閱讀

[研討會訊息] Android Taipei - 2014/July

心得: Android Taipei 有好幾次的活動不是跟GTUG對衝,就是剛好遇到颱風.這次剛好有機會可以參加(其實是GTUG JavaFX不太懂 XD) 所以今天就去了,恰巧也有機會揪了以前的同事一起去(Nick,Veret). 以下簡單的記錄一下三個講者的內容跟心得: MonkeyRun: 這個東西主要是透過MonkeyRecorder 來錄下自動測試的腳本,搭配本身有的一些進階功能可以拍下截圖並且寄出錯誤資訊.講者有增近一些功能後OpenSource出來,挺值得一看. 會後有找講者討論了一下這個東西能導入的狀況與真正幫助到測試的範圍: 新版本出來以後,分成兩個部分.一部份還是QA來跑,另外交給自動測試.隨著QA測試錄下的腳本增加,需要真人的部分可以越來越少. 自動測試主要是跑一些比較簡單還有透過截圖的比較,測試流程的減少看來有20%左右(透過了解的估計) Chrome Cast (或者稱為 Google Cast) 主要講解整體架構,基本上就是App(Sender)透過通訊協定讓receiver 去播放網路上的資料(是網路上的而非手機上的) 也稍微有講解了一下可能遇到的問題,下面都有提到. 會後有跑去跟講者討論一下是否可能直接手機透過streaming 到server上後再cast 到receiver,看來是可以的只是造成的latency看來是很難突破.(IP-CAM?) Google IO 2014 分享 主要是講者分享一下GOOGLE IO 2014在當地參加的心得與內容,由於我有到臺北Google辦公室看過直播,所以還好. 之後講者有把這次有趣的玩具 Cardboard讓大家體驗一下,其實讓我相當驚訝的是,本來以為會像3D眼鏡,其實不然~是真的很像VR虛擬螢幕在前面.透過G-Sensor可以調整. 它提供的SDK就是可以切割兩個螢幕外,還用突透鏡羽還原的技巧來讓立體成像更為清楚.彷彿眼前有個大螢幕在前面,還可以上下擺動看到不同的東西. 速記:  GogoMonkeyRun MonkeyRunner  (gogolook) Auto testing Android Instrumentation test uiautomator monkey/monkey runner monkey runner — using python code to execute auto testing  Using python to click specific point. (x,y) Monkey runner 不足 Q:  How to determine x, y. A:  using “monkey recorder”, project cellphone to PC. 常出現問題: 不能截圖 不能取消動作 不能back 畫面被壓縮 拖曳無法知道起始點與終點 無法旋轉  gogolook 強化: github-> (gogomonkeyrun) 特點: 可選擇安裝apk 可以截圖 可以寄信給開發者 可以按back *修改App內容 *遠端控制 使用: 先用人工點一次,結束後可以產生相關動作的python code 如果要跑不同的機型,需要執行多次的monkey runner  跑的截圖可以做比較,來發現說是否有錯誤和異常. 可以用來catch exception  然後寄信給開發者  辛酸史: Monkey recorder 跑完馬上跑monkey runner 是會出現錯誤,device 被decoder 佔走 解決方法:  shell stop  Windows 到Mac 容易出現問題 Google 從2012年後就沒有更新 Feature works: 產生更豐富的資訊 Jenkins 結合 (other Android Emulator) 手機端看結果 參考: http://fecbob.pixnet.net/blog/post/35999435-android%E8%87%AA%E5%8B%95%E6%B8%AC%E8%A9%A6%E4%B9%8Bmonkeyrunner%E5%B7%A5%E5%85%B7 Chromecast SDK (google cast) (kkbox: Ascii) 基本概念: Sender:  手機 Receiver  電視 使用方法: 新增一個button 可以share 到電視 (MediaRoutingButton)...
繼續閱讀

[Go][Heroku] 第一個Hello world Golang Web App in Heroku

依照以下兩篇應該可以順利成功 http://mmcgrana.github.io/2012/09/getting-started-with-go-on-heroku.html http://yinghau76.github.io/2013/12/15/go-on-heroku/ 不過我真的太不熟所有有些地方一直搞混,這裡記錄一下我發生的問題: 千萬記得把你的Go的程式碼放在$GOPATH/src 下,根據這一篇建議,可以考慮放在 $GOPATCH/src/github.com/YOUR_GITHUB_ACCOUNT/ 下面 記得 Procfile 裡面要寫的是你的目錄(也就是編譯好執行檔)名稱  ,不確定的可以用 which 去double confirm 其他參考文章: Go MongoDB and MongoHQ http://blog.joshsoftware.com/2014/02/28/a-simple-go-web-app-on-heroku-with-mongodb-on-mongohq/ Build test using wrecker with go http://blog.wercker.com/2013/07/10/deploying-golang-to-heroku.html 接下來會努力 RESTful 還有一些資料庫應用….
繼續閱讀

[iOS] 粉絲相簿更新到 1.1 支援網友分享與評分

六月底上架之後,雖然一開始是用收費的方式,主要還是發給一些親朋好友測試而已. 收集了各方意見我也增加了新的功能之後,在今天就要上架更新的版本. https://itunes.apple.com/tw/app/fen-si-xiang-bu/id839324997?l=zh&mt=8   1.1 版本的新內容 新增了網友推薦的功能,你可以分享其他網友 新增評分功能,可以表示你喜歡這個粉絲頁面 新增訊息通知,可以讓你知道更多受人喜愛的粉絲頁面 有任何問題,請到這邊去反映:  https://github.com/kkdai/iOS-APP-FBAlbums 以下是是比較技術方面的更新心得與筆記: 把網路資料從Google Doc改到Parse,並且支援push message 支援網友上傳喜愛的粉絲頁面到主機上面讓大家去看並且評分(目前只支援”加分”) iAD 增加並且把售價將到免費,之後再考慮有沒有付費機制(AIP 其實不好搞) CoreData 的migration 也搞了很久~其實有考慮要不要拿掉CoreData~ 上架之後,想不到iAD要另外的審核~看來又得等待了…. 接下來下一次的更新應該會著重在穩定度跟網路讀取的改進,這邊也是我現在比較不了解的地方
繼續閱讀

[COSCUP2014]開源人年會2014心得與速記

前言: 十秒就搶完的票,號稱工程師界的秒殺票卷.當天其實是來不及搶到票.感謝Patrick 願意把他搶到的票讓我去看. 整個會場看到一堆年輕人,真的讓我非常的開心.也很替現在的年輕人開心, 你們不是沒機會~我們以前社團要搞這些活動的時候資源少到不行又沒人願意參加.  現在技術種類又多又有趣,年輕人個個有出頭的機會. 台灣又有這麼多做OpenSource的前輩在前面幫你們開路~ 年輕人別再抱怨房價跟薪水了,認真學習好好跟這些前輩效法才是未來真正的出路~~    一些令人覺得經驗的亮點: 有人搬卓機來研討會 https://twitter.com/superbil/status/490319430434312192/photo/1 思源黑體和小叮噹會幫我完成所有的願望 https://twitter.com/zhusee2/status/490429614951387136 g0v 政府對政府關係   https://twitter.com/ijliao/status/490437005575061506 愛因斯坦說過如果要花一個小時要解決問題,必須要花五十五分鐘好好思考問題是什麼,然後花五分鐘來解決它. https://twitter.com/onReflect/status/490413297812783105 HackFolder http://hackfoldr.org/coscup2014/ 09:10 - 10:00[R0]全場地聯播Maker 《自造世代》 潛水機器人採取開源的方式並且要求[CC](要使用的人也得開源) 等待專利時間永遠跟不上創新的速度 不怕抄襲- 抄襲的人永遠跟不上創新的發明 Real-time Streaming Classification with Storm – The Pinball system 心得: 利用steaming classification( 不斷的分類與判別)來判斷yahoo買家並且給予最好的購買建議與推薦. 類似於Hadoop Map-Reduce Job 但是屬於streaming ( Hadoop 是 batch processing) 購買欲望 (Buy Intention) 與 PageView 有關.瀏覽頁面越多,購買欲望越高. 速記: Challenges Batch processing can react latest update data. Solution: Pinball Pinball 使用者透過不斷的classification來判別preference Real-time classifier using Storm on apache Storm -> is potential buyer ? -> promotion Hadoop map-reduce job is batch processing but storm is streaming. Buy intention 同一購買類別瀏覽次數越多,購買欲望越高 How to combine Storm and Buy Intention Navigation Spout  Buy:  User buy history -> learning bolt -> classifier (record page view) View:  User history bolt -> classifier -> Qualifier Match -> promotion Batch processing is source of truth, realtime processing using it as reference. Lambda Architecture Batch Layer Pig Hadoop Spark Summingbird (scala) Life Lessons From the Cloud:...
繼續閱讀