2015年2月12日 星期四

2015-02-09-Create-Private-Pod

This document shows two samples which are made under cocoapods version 0.36.0.beta.1

We will go though * How to use private pod created by teammates * How to create private pod for existing universal library

2015-02-11-Qt-Animation

Qt Animation

利用QStateMachine 管理 QPropertyAnimation Sample可以參考Sample code 另外可以參考官方文件

2015年2月4日 星期三

2015-02-04-Markdown-Resume

如何利用git與markdown撰寫履歷

找工作的時候 因為公司的需求不同 常常會微調自己的履歷 以求增加專長被注意的機會 履歷一改再改 存了很多版本 如果面試的過程發現可以補上什麼或者微調版面 一一修改也非常麻煩 剛好最近用markdown很夯
(連柯P的市政白皮書都用gitbook寫了) 為什麼履歷不也用版本控管呢?

2013年12月12日 星期四

[非技術討論文] 工作心得:前進還是後退?

日前收到指示要把Google Analytics加入公司的網站,包含對外的連結也要追蹤。

基本站內的追蹤還算容易,就把Google提供的javascript給加入所有要追蹤網頁內就好。但是對外的連結就稍微麻煩一點,需要對所有連結註冊onclick事件的callback,呼叫Google提供的事件追蹤API即可。詳細就不介紹,有興趣的可以google "google analytics outbound links"這幾個關鍵字
Note:比較要注意的是Google Analytics有新舊版本的差別。找到舊的版本就複製貼上可是會GG的。

以上都還不是本文的重點。

2013年8月22日 星期四

Android上的WebKit多媒體影片播放架構

為了「攔截WebView播放影片」,看了一下Android的Source。
其實不是第一次看了,不過每次看都要重頭來,有點浪費時間。所以這邊備忘,順便分享一下簡化版的Class Diagram。歡迎指教、討論。

2012年12月20日 星期四

Automator 真方便

在Mac OS X上如果要執行週期性的動作實在很方便。
今天就以週期性地把原始碼同步到Bitbucket(Git/Mercurial Server)為例來灌灌水

2012年12月7日 星期五

我跟Android的Java不熟

因為不確定文中提到的Class在Android上的實作與其他平台是否相同,故本文討論的Class都以Android平台上為標的,也不再特別註明,特此聲明。

日前遇到在Java上Thread之間要傳遞資料的問題,於似乎就找到了PipedInputStreamPipedOutputStream。今天就讓我們來聊聊看似方便卻又有需要小心的地方的PipedInputStream與PipedOutputStream。

2012年7月15日 星期日

Spotlight and Android Source Code


Spotlight真是又快又好用!
Android Source Code真是又多又大!

2012年3月8日 星期四

Objective-C的Declared Properties

寫程式也有一段時間了(也有一段時間沒認真寫了 :P),也因此學了不少程式語言,一直都有一個“要寫好程式,最好把程式語言給搞懂”的體認。
今天就來寫寫一直以來想要搞懂部分 Objective-C的Declared Properties

2011年8月31日 星期三

工作就像男女交往一般的變幻莫測

在下班回家的途中剛好有此一聯想:工作就像交女(男)朋友一樣。(以下全是隱喻,腦婆大人別興師問罪,我愛你 <3)

2011年8月4日 星期四

來介紹幾個剛找到的iOS免費軟體

時間不多,所以廢話也不多說了。

JSON Designer By Cribster

可以幫忙你用圖形化界面設計JSON的結構產生出來的東西像這樣:









{
 "name" : null
 "Generator" : [
   {
     "currentEfficiency" : null,
     "efficiencyHistory" : [
       null
     ]
   }
 ]
}

2011年7月14日 星期四

StudioIrregular

繼"Razorcap Studios"後又一夥伴Michael Wang推出了他個人的StudioIrregular。(一段時間了 :P)

裡面分享了許多“個體戶”的一些想法與經驗,很值得去參觀或給與鼓勵甚至意見或建議,相信他會很開心的。

2011年5月6日 星期五

Git 遠端備份

不知道大家都使用哪種 source version control,我自己本身常用 git, 雖然 git 功能強大,但我卻發現要找一個簡單的遠端備份方案還真不容易。熟悉 git 的人一定會問我為什麼需要遠端備份,是這樣的...

Git 所謂的分散式是在多人開發的情況下,如果你的成員分佈幅員廣大,理論上你不用再做備份了,即使你 local 遭遇像日本東北大地震那樣可怕的災難,只要還有別的地區的 member 電腦完好如初,一個 (或幾個) 簡單的 'git pull' command 就可以幫你恢復完整的 file/log/...

但考慮以下狀況:

  1. 開發者只有我一個人.. (孤單的獨立工作室負責人!?)
  2. 開發者有粉多人,但都集中於同一個(地理)區域

以上情況我們還是需要把所有資料備份到遠端去以策安全。

但事情好像也不是簡單的把整個 folder TAR 起來丟上網就可以.. 這樣做可能有幾個問題:

  1. 要用這包 TAR 在新的機器上復原需要做些奇怪的事(主要是因為 git 內含 local 的資訊)
  2. 在你 TAR 的同時如果有人在 check-in code, 會有資料不完整的問題。
搞了半天,我終於弄清楚要如何遠端備份 git 啦:

  1. 切到你的 git folder
  2. 'git bundle create BACKUP.BUNDLE --all'
那個 BACKUP.BUNDLE 可以隨你高興命名,把這個產生出來的檔案備份到遠端 (我自己習慣用google doc, 因為它本身也有版本控制的機制,萬一遠端檔案也有問題,至少還有舊版BACKUP.BUNDLE可用)

萬一你發生不幸的意外 (我是指你的電腦),重建步驟如下:

  1. 把你藏在遠端的備份檔案找出來放進新的電腦中
  2. 'git clone BACKUP.BUNDLE new-folder'
  3. 'cd new-folder'
  4. 'git fetch'
  5. 'git pull'
就這樣,你就可以 (在一片廢墟中) 繼續你的軟體開發工作啦 (假設還有供電的話:D)

2011年3月23日 星期三

Smell good? [釋疑篇]

Compose Method [Beck, SBPP]

You can't rapidly understand a method's logic.

Transform the logic into a small number of intention-revealing steps at the same level of detail

以下 by [Kerievsky, Refactoring to Patterns]

Motivation:
這個 pattern 看起來很簡單, 好像每個 programmer 都應該這樣寫 code, 但是如果你仔細檢視一下自己寫的 code, 你會發現, 應該大部份的 code 都沒有做到這個 pattern 的要求. Compose Method 簡單來說, 就是 method 裡面 compose 其他的東西, 都必須要在同個 detail 等級之下(Mechanics 第五點).

2011年3月20日 星期日

Smell good?

最近為了國人的生活品質與身體健康, 義無返顧的投入了清潔大隊, 在經歷了尖山火池, 天崩地裂, 毒氣瀰漫, 輻射籠罩的考驗中, 能活著回來真的是菩薩保佑, 祖上積福~ 在身體還未被恐怖的碘, 鈽的放射性同位素給侵蝕殆盡前, 趕快將所見所聞來跟大家分享~

在此先端出德高望重的貝克大師[Beck Kent]的武林秘笈心法:

扛布絲埋圾袋 [Compose Method]

2011年1月18日 星期二

Why Pi?

很高興的發現今年Knuth教授的聖誕節課程居然有網路轉播:
http://stanford-online.stanford.edu/seminars/knuth/101206-knuth-500.asx

與大家分享這篇絕不是炫耀文,因為我完全跟不上上課的內容... 但是,
Knuth的課程講的是數學,去聽的卻大多是computer science的學生,是那種畢業後進Google或Apple的工程師,了解一下這些傢伙都在想什麼還滿有意思的。

今年講的內容,90%用到的數學,居然都是我們在台灣的高中生就學過的:
  • 排列組合:Cnr=n!/r!(n-r)!
  • 機率: 擲兩顆骰子出現12點的機率!?
  • 簡單的幾何: 圓的面積=πR2
  • 二項式係數: (x+y)n展開後的係數
Knuth每年都會在耶誕節前夕講一堂跟樹狀結構(tree)有關的課程,今年講的是:如果給你n個節點,你可以排出幾種不同的tree?假設這個數字為C(n),舉幾個例子:
  • C(1)=1
  • C(2)=2
  • C(3)=5
其中C(3)=5如右圖所示

三百年前就有人解出C(n)是一個與π有關的方程式,但一直到2007年才有人提出合理的解釋,說明為什麼樹狀結構的排列組合數量,會和圓形的π有關。

網路真是神奇的東西,我居然可以聽到史丹佛大學最頂尖的教授的課!

PS: 某人上課的筆記 http://apetresc.wordpress.com/2010/12/28/knuths-why-pi-talk-at-stanford-part-1/

2011年1月9日 星期日

跟著我動動你的右腦(其實也會動到左腦,甚至會死很多腦細胞 XD)


最近左腦用過度,來寫一篇文章來平衡一下。順便灌一下水
之前在看到iOS跟Android 都有Gesture相關的API就一直很想來分析一下這兩個設計。

2010年8月31日 星期二

Tuning Applications

1. The Instruments Application
The Instruments application lets you gather a variety of application performance metrics, such as memory and network use.

2. The Shark Application
The Shark application lets you view system-level events, such as system calls, thread-scheduling decisions, interrupts, and virtual memory faults.


Note:
When performance problems in your code are more related to the interaction between your code, iOS, and the hardware architecture of the device, you can use Shark to get information about those interactions and find performance bottlenecks.

2010年5月27日 星期四

nil vs Nil vs Null vs NSNull null

nil: A null pointer to an Objective-C object.
(#define nil ((id)0))

Nil: A null pointer to an Objective-C class. 

Null: A null pointer to anything else.
(#define NULL ((void*)0))

NSNull: A class defines a singleton object used to represent null values in collection objects (which don’t allow nil values).

[NSNull null]: The singleton instance of NSNull.