July
30th,
2014
心得: 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)...
繼續閱讀
July
23rd,
2014
依照以下兩篇應該可以順利成功
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 還有一些資料庫應用….
繼續閱讀
July
23rd,
2014
六月底上架之後,雖然一開始是用收費的方式,主要還是發給一些親朋好友測試而已.
收集了各方意見我也增加了新的功能之後,在今天就要上架更新的版本.
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要另外的審核~看來又得等待了….
接下來下一次的更新應該會著重在穩定度跟網路讀取的改進,這邊也是我現在比較不了解的地方
繼續閱讀
July
19th,
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:...
繼續閱讀
July
17th,
2014
Android
https://code.google.com/p/spydroid-ipcamera/
可以讓你Android手機當IP cam streaming 到其他地方..
相關文章http://blog.csdn.net/xiaoliouc/article/details/8443195
https://github.com/yixia/VitamioBundle/tree/v3.0
Android 上面的多媒體播放SDK~是要收費的不過似乎很完整方案.
https://github.com/pocorall/scaloid
最近學了Scala就很好奇,Android上面能不能拿來開發.這裡是很好的專案.
http://arnab.ch/blog/2013/08/asynchronous-http-requests-in-android-using-volley/
一堆http 的toolset提供許多RESTful request的APIs
https://github.com/shakalaca/learning_gradle_android
關於gradle的一些tutorial與相關的教學
iOS
https://github.com/fullstackio/FlappySwift
想知道Swift 能多快開發~剛發表的隔天~ Flappy Bird on Swift 就開發出來….
https://github.com/TakoBear/ffmpeg-iOS-7-Install-Script-Xcode-5.1
想要找尋iOS上面如何使用ffmpeg? 這裡有最快的script 搭配著iOS7.0 與 xcode 5.1.成功的時候會從網路電台抓audio來解開播放….
https://github.com/lajos/iFrameExtractor
想要ffmpeg 在iPhone上面可以多一些範例? 這裡有個可以把影片解開一張張frame的範例….
https://github.com/coolthor/TainanSport
簡單的介面,show出附近可以提供運動活動的地點。 輔之以導航。特色的話,用一隻手就能完成所有動作。作為MapKit,還有利用NSString對字串的Parse的練習範例。 還有部分Sqlite 3的應用。
http://www.swifttoolbox.io/
許多關於swift的toolkit 列表,相信一定找的到好用的.
https://github.com/magicalpanda/MagicalRecord
Magical Record算是超級知名的tool kit 管理Core Data一定要使用,相當的容易使用.我好像也寫過一篇使用的文章.
https://github.com/constantineSafronov/SFAlbumApp
也是利用到UICollection View 的相簿軟體
https://github.com/Inferis/ViewDeck
類似FB上方的左右切換toolkit
https://github.com/ECSlidingViewController/ECSlidingViewController
類似ViewDeck不過有支援storyboard
Service:
https://www.uservoice.com/
可以幫你建立一個使用者回報的系統 (iOS/Android)的server.以下介紹來自 http://blog.xuite.net/coke750101/networkprogramming/56770815
Uservoice 是一個非常重要的服務,我們從開站以來,我們幾乎每天都會透過 Uservoice 收到來自我們訪客的建議與問題回報,Uservoice 透過簡單的介面讓訪客可以輕鬆的發信告訴我們他的想法。我們透過 Uservoic 來掌握使用者對於我們網站產品的看法,也藉此可以更加深入的了解我們社群。我們可以透過後台清楚的看到目前所有尚未回應的問題,或是誰已經回應了哪些問題,甚至可以建立罐頭訊息,還有積分的設計,客服人員每當回答了問題,就會得到額外的積分。(不過其實我們目前是共用帳號、共享積分XD)
繼續閱讀
July
11th,
2014
https://www.youtube.com/watch?v=kKQLhGZVN4A
每次剛學一個新的程式語言,自己的心裡總是會想著“這個新的語言特點是什麼?他究竟能夠為了產品或是你工作的事情上帶來哪些幫助?”
學習Golang的時候,我也是會這樣想.剛好找到了這一段影片,把它的一些內容做個整理,如下:
Juju - Ubuntu (Canonical)
語言轉換:
Python -> Golang
這是什麼?
Juju 是ubuntu上面管理軟體的一個工具,這裡有詳細的解釋.
Golang帶給Juju的好處:
Juju原本是使用Python來寫的,會換到Golang上面其實有相當多的理由,稍微整理一下:
Error Handle: 這大概是基本上Golang最強大的功能.
Concurrency: 這也是Golang被人喜愛的主要原因,目前我也還在努力地摸索.
他其實有更多沒有提到的,我稍微截個圖讓大家看一下
Heroku
語言轉換:
Ruby -> Golang
這是什麼?
Heroku 算是現在幾個知名的PaSS (Platform as a Service)之一,主要就是讓人host你的網路相關的service.
這裡有更詳細的解釋.
Golang帶給Heroku的好處:
Heroku 主要有一個Routing Table Service 來記錄超過 190萬個App的操作.這樣的service主要就是透過REST API然後與後方的PostgreSQL資料庫.原本是使用Ruby來撰寫一個部分的控制.詳細的流程圖我截取下來如下:
問題來了,bootstrapping new instance由於要產生一些資料所以是不夠快的,根據講者的說法,這跟Ruby產生initial JSON dump有關.
所以他們使用Golang在幾個小時內完成Streaming update部分的原型並且測試上線, 結果帶來以下的結果:
速度增加十倍以上(?)
產生新的資料在Golang上面再也不會成為整個流程的瓶頸,網路處理速度也變快.
目前他們也在思考把其他的部分開始改成Golang
StatHat
語言轉換:
一開始似乎就是用Go打造(99%)有部分也從RoR轉換到Go
這是什麼?
StatHat是一個記錄資料的服務,他提供多個語言的支援(接近15個).可以提供給其他網路服務公司做一些資料的追蹤, 可以顯示各種的圖形與方式.
Golang帶給StatHat的好處:
提了幾個優點
Fast:
速度比較上,Golang在網路處理上算是真的相當快速的.
Resource Friendly
他指的比較偏向社群資源多
Easy to deploy
Go binaries are self-contained
No shared libraries, no gem and dependency
Fun
這邊有他們Open Source出來跟他們產品有關的code,可以參考.
Iron.io
語言轉換:
Ruby -> Golang
這是什麼?
Iron.io 是一個網路服務提供商,主要分成以下幾個產品:
ironWorker 平行的工作平台,本來用RoR寫但是有點慢,用Go改寫後就變快很多.
ironMQ 訊息序列傳送廠商,是一個可以擴充的服務
Golang帶給Iron.io 的好處?
在ironWorker裡面很大一部份的工作是需要分配工作與平行處理架構,這是Golang主要能提升的部分,而他們會使用Golang的原因如下:
速度快
執行快而且編譯也快
Still reasonably express
Rich standard library
也就是因為build-in 標準函示庫是足夠使用的,所以容易散佈跟編譯.
Not tie to VM
指的是編譯好之後可以直接執行,不用綁太多環境.
Awesome
寫起來很開心(我目前也是感覺相當有趣…)
Q&A: (標記的公司為回答的代表)
[Heroku] 如何決定哪些產品要轉換到Golang?
[StatHat] 比起Go而言,Ruby 有著龐大的資源與社群那為什麼要轉換到Go呢?
要用Go重寫其實是不難的(指的是他們用到的部分)
[Heroku][Juju] 你最喜歡的Go library
不用懷疑~當然是Go fmt . (我也覺得Go fmt幾乎把所有功能都用到了~)
[StatHat][Juju] 你們覺得學習Golang 要多久呢?
[StatHat] 我們大概學了幾個禮拜
[Juju] 我認為我從來不曾停止學習,能上手是很快但是要能真正了解其中含義,就要不斷學習.(這讓我想到這篇文章)
[StatHat] 你有任何推薦的Go書籍嗎?
Golang.org? 其實我並沒有讀任何的Golang 的書籍.
其他關於Golang 與其他語言的比較
http://www.slideshare.net/weijr/coscup2013 [COSCUP2013] Python, F#, Golang and Friends
繼續閱讀