2014/11/26

真的不應該依賴software stack嗎?

在這篇文章中The full stack developer is dead, long live the un-stack developer,提出了un-stack developer的理念

不過現在的開發環境與應用平台,以及software reuse的概念下
不用software stack,什麼都自己動手做,在講求效率的今天,已經是接近天方夜譚了

也有許多開發者並沒有身處於start from zero的機會
不過開發者應該知道,一位好的開發者
必須要有從零開始的能力,必須要有設計架構的能力
並且努力為自己培養這樣的能力
因為有這樣的能力,才能讓自己有start-up的技能、觀念與胸懷

2014/11/17

Activity與Fragment間的轉場效果(transition animation)

為了要做Activity與Fragment間的轉場效果(transition animation),找了些資料來瞭解,覺得這些資料挺寶貴的,所以在這裡留下來。

贴一个定义android animation的应用实例
這一篇是簡體中文,針對四種特效(Alpha, Scale, Translate, Rotate)及相關參數有蠻詳細的說明

Various effect of interpolator in Android Animation
透過影片解釋不同的interpolator對於數量變化的影響

Android Animations Tutorial 5: More on Interpolators
用詳細的公式與圖表解釋不同的interpolator對於數量變化的影響

切換 ACTIVITY 的簡單轉場動畫
利用overridePendingTransition來進行activities間的轉場

android學習筆記之Fragment
用setCustomAnimations來達到fragments間的轉場

2014/11/12

ListView自我更新多次

剛剛開發一個有ListView的Activity,從SQLite資料庫取出資料,透過adapter將資料顯示在ListView上
資料庫中的測試資料總共有20筆
當畫面進入到這個Activity時,發現得花超過三四秒,才能將這些items顯示出來 (ASUS Nexus 7)

一開始以為是SQLite的效能太差,所以要花這麼長的時間,可是才20筆資料就花這麼多時間,效能也未免太差了
(select * from XXX order by YYY desc)
進入debug模式,發現其實從資料庫撈資料的速度很快,顯然不是SQLite的問題

經過一番追蹤,發現adapter裡的getView被呼叫了80次
才20筆資料,getView被叫了80次,也就是做了4次refresh
為什麼?

經過一番折騰與閱讀,總算知道主要原因是那個ListView的height設定為wrap_content,Android為了要將高度調整能wrap content,可能就必須不斷做載入與調整,也因此才會refresh了多次。
當把height改成match_parent時,果然這個現象就不會發生了。

2014/11/03

有時,工程師做的事是一種ART!

今天一整天,就只改了一行程式。

對,就只有一行!

我很偷懶嗎?才不,今天可是超級「精實」。
那為什麼只改一行而已?改一行要那麼久嗎?
如果你是主管,你會怎麼評斷這位工程師?

如果你是位注重量化,把「人月」、「line of code」「function point」掛在嘴上,透過一些指標,這位工程師的一天簡直是災難吧!

先聽聽我今天做了什麼事
一早被指派這個工作後,先瞭解問題是什麼,可能的因素又有那些,接著就開始設計如何測試來確定是什麼原因造成的。等確定成因,大概就過了半天。半天,真的很快了。

接下來,就是修正這個錯誤。對,就是改那一行!真的不是我偷懶,有問題的就只有那一行,所以也只能改那一行。(我也很盡責的加上註解喔)。這大概花了幾分鐘。

這樣不就解決了嗎?你還有半天可以做別的事呀。這半天被你摸掉了喔。

才不是啦。公司的機器有十幾種models,而這個程式會被用在所有的models中,所以,除了出錯的那個機種外,我還必須一個一個機種去做regression test,以確定這樣的改法在別的機種上也可以正確運作。等這些機種都測完,一天也結束了。

所以,別再用那些奇怪的指標來衡量工程師了。有時,工程師做的事是一種ART!
就好像,你不該跟梵谷計較,在那幅星空中應該多畫幾顆星星才比較有價值!

2014/11/02

大法官


大法官,看這片名,一開始以為是部精采的法律攻防片。不過,如果是被這樣題材吸引進入戲院,恐怕會失望了。這部片片中沒有著墨於太多的法律攻防,而是滿滿的父子間之關愛與衝突。在這裡就不破梗,有興趣可以看看火行者精采的影評

在片中,法律,對於擔任法官的父親,是正義;對於擔任律師的兒子,是工具。

兩位演員勞勃杜瓦(Robert Duvall)與小勞勃道尼(Robert Downey Jr.),真的演活了劇中的角色。另外,韋娜法米加(Vera Farmiga)在劇中很有戲的眼神,讓薩曼莎一角的浪漫不羈都活了起來,真的擄獲了我的心。
還有,Carla與Lauren都有咬頭髮習慣的動作與神情,真的是有趣的梗。

好了,談談我的感受,對於大部份的人子,父親,從小就像是大樹、就像是無所不能的超人。但隨著日子飛逝,人子逐漸長成大人,而人父也逐漸衰老。電影中最觸動我一幕是,法官父親在浴室狼狽的那一幕。
如果,你曾經看過父親年邁而脆弱的那一刻,你一定會警醒,那棵從小就庇護著你的大樹,已不再如你想像的巨大與堅強。那種警醒,會讓人很心痛,也會在你的心中烙下一個印痕,提醒著你有個時間終將到來,當那一刻到來,你不再有人可以依靠,可以幫你,可以再庇廕你。那種感覺,應該是為人子女的你我在心中會隱隱作痛的疤。

而在電影的最後一幕,律師走進父親的法庭,走上法官席,觸摸著父親坐了數十年的座椅,看著座椅旋轉。當座椅停下來,面對著他停下來時,我覺得在人子的心中,應該萌生出了一個決定!