Friday, July 15, 2011

重構投影片


評價還不錯 XD

Saturday, June 25, 2011

誇張的 Java Code Conventions 文件錯誤

看看這頁倒數第二欄 Variables 那項,開頭完全不通

9 - Naming Conventions

後來查到這個

http://stackoverflow.com/questions/2711186/how-is-this-statement-making-sense-suns-naming-convention-for-java-variables

才知道還有人報過 bug,但 Sun 不知道在搞什麼,文件完全不更新

Wednesday, June 22, 2011

Firefox 5

可能是發現 Firefox 4 的嚴重 memory leak 問題在哪了

5 竟然現在就出了.... 感覺好了很多....

Tuesday, June 21, 2011

井底之蛙之所以是井底之蛙

在書上看到一段話:

康乃爾大學社會心理學家賈斯丁‧克魯格(Justin Kruger)和大衛‧鄧寧(David Dunning)大約十年前做了一項破天荒的研究,證明人們如果欠缺成功執行任務所必備的知識,也會不知道自己有缺陷、哪裡有缺陷。比方說,文法與邏輯的測驗分數落在十二百分位數的人(就是一百人當中贏過十一人,排名八十八),會以為自己位於六十二百分位數(一百人當中贏過六十一人,排名三十九),他們不僅會高估自己的成績,也無從評估自己的答案正不正確、哪裡答錯,也就無法準確看出別人比自己厲害。
覺得這大概就是井底之蛙之所以是井底之蛙的原因

因為太差了,反而不知道自己差,還自我感覺良好到以為自己和厲害很多的人差不多

也許也可以解釋我之前遇到的另一家公司的合作夥伴,很多雖然都是台灣頂尖大學的碩士,還不吝誇張地直接叫我神

正因為這些人頂尖,所以可以看出我比他們強一點點的地方,然後也不吝給別人讚美

反觀另一些.... 我就不多說了

Saturday, June 4, 2011

Jenkins 自動 deploy 到 WebLogic

Jenkins (原 Hudson) 似乎還找不到可以直接 deploy 到 WebLogic 的 plugin

還好 WebLogic 提供了 Maven 的 plugin

我就利用 WebLogic 的 Maven plugin 和 Jenkins 的 Post build task plugin (寫個簡單的呼叫 maven 的 script 給這個 plugin 呼叫),完成了 build 成功自動部署到測試機上

WebLogicMaven plugin 使用可以參考這篇文章

Weblogic deployment using the Oracle weblogic maven plugin

以及官方文件

Friday, June 3, 2011

教育應該不一樣

教育應該不一樣

嚴長壽的新書,談台灣教育,裡面對台灣教育的批評,看一些評價似乎大家都很有同感

只是台灣的教育制度已經是環環相扣的死結,要怎麼解都很難

書中幾乎批評了所有環中的成員,但我覺得獨獨少了一環---企業

嚴長壽本身只有高中畢業,所幸遇到能以實力和表現用人,而不拘泥於學歷文憑的企業,才會今天的成就

台灣不也需要更多這種企業,才能從每個環節一起使力,解開教育的死結

Wednesday, May 25, 2011

台灣連網路書店都雞腸鳥肚

國外阿罵爽是 wishlist 無限開,台灣某家網路書店是只有一個下次再買還限制放的數量

而且還越限越小,外加還限制放的時間

然後說這樣要給客戶最好的.... 好你老木個鳥

看看阿罵爽

http://www.amazon.com/gp/help/customer/display.html?nodeId=501088&#createmany
There's no limit to the number of Wish Lists you can create.
台灣的廠商還是多學著點吧....

愚蠢到不會利用適當時機提醒客戶 wish list 有相關東西,已經夠蠢了

還去限制數量,是你們雇的工程師都是垃圾,寫不出夠快的好程式嗎

Thursday, May 12, 2011

Struts Menu 和 Spring Security

Spring Security 有把 user 和 role 塞到 request.isUserInRole() 可以取到的地方

所以 Struts Menu 的 rolesAdapter 本身就直接吃得到

連 Spring Security 的 tag 都不需要用

Saturday, April 30, 2011

回到未來男主角的新書 - A Funny Thing Happened on the Way to the Future



中文翻譯書名「青春就是要跌跤:這樣才能學會一生受用的道理」還有介紹,讓我覺得想看這本書

但因為我實體書已經太多了,所以選擇買 Kindle 版

看完之後覺得還好,沒有太多讓我驚豔的地方

可能因為我本身也不是一個跟大家走同樣的路的人,書裡很多東西我自己也有體會

不過作者講到他面對帕金森氏症的心境轉變歷程,滿讓人動容

他的心態調整過程,應該也能參考應用在面對各種困境的情況

Thursday, April 28, 2011

Safari Library

Safari Books Online 最近開始提供個人訂戶一種神奇的訂閱方式
原本的2種,一個月最多分別能看5本和10本書
現在這個 Safari Library 則是一個月差不多一本原文書的錢,就可以隨意看任何書,完全沒有限制 
真的像擁有一個圖書館,隨時要查任何技術都很方便 :P

Saturday, April 9, 2011

瘋狂的 Firefox 4

因為我分頁都開很多,Firefox 4 記憶體竟然吃更兇,讓我很受不了

裝了 TooManyTabs 想說看看會不會吃少一點,結果也更慘

Firefox 放一整天,記憶體狂吃到 2G, 3G 爆掉

忍不住把 browser.cache.memory.enable 設定成 false (這個設定聽說是影響上一頁下一頁的 cache)

好像不會爆了,不過記憶體看起來還是越吃越多,好像回到 3.x 版時好幾天還是要重開的情況

有點想把 Firefox 廢掉不用了.... 反正還有 Chrome, Safari, IE 可以用

2011.4.30 update: 4.0.1 好像好多了

Tuesday, February 22, 2011

工作與音樂

記得在 Peopleware 裡看到說,比較一般的工作,聽音樂和處在安靜環境的表現差不多

但如果是需要創意與靈感去發掘問題中的關鍵處,不聽音樂表現會比較好

2011年2月號 Cheers雜誌的一篇 創意力、企劃力、思考力,全面UP!拯救上班族腦力大作戰

提到日本腦科學家茂木健一郎書裡的內容說

五官的體驗會存到大腦的兩側額葉中,需要發揮創意時,前額葉會向兩側額葉取得相關經驗,進行編輯與重組

進行創意時,最好減少感覺輸入,讓兩側額葉不用忙於儲存新資訊,而能專注於提供經驗給前額葉

我想這就是 Peopleware 提的那個實驗背後的科學原理

Wednesday, February 9, 2011

The Myth of Multitasking

The Myth of Multitasking: How "Doing It All" Gets Nothing Done

講的東西其實很簡單,但感覺很多人還是有「以同時做很多事情為豪」的迷思

人的大腦就只是一台單 CPU 而且是單核的電腦而已

要同時做不同的事一定要花費 context switch 的功夫與時間

要說能同時做兩件費腦力的事,也只能盡量讓兩件事都有自己完整而且大塊的時間

密集切換只會造成浪費在 context switch 的時間多於做正事的時間而已

書裡有個有趣的小測試,應該能讓人充分了解密集切換的缺點(測試內容我就不寫出來了,畢竟是別人的智慧,有興趣請自己翻書,這本書英文超級簡單)


我也因此想到,有些真空管(我自己是想用這詞來表示那些不切實際的主管)常常會叫大家邊做 A 就邊做 B

大概是覺得做一次 B 的時間很少,邊做最後就不需要花一次做全部 B 加總的時間

但他們完全不會想到 A B 切換可能是要 context switch 的,邊做 A 邊做 B,最後可能是最重要的 A 沒辦法準時做完

真該讓這些主管都去做那個 multitasking 測試,看看他們到底多會邊做 A 邊做 B,效率又如何

Monday, February 7, 2011

王者天下 Kingdom of Heaven

王者天下 - Kingdom of Heaven

純就電影情節來說,讓我思索的一點是,貝里昂沒有接受快死的耶路撒冷王的提議(讓他接掌軍隊,娶西碧拉,處死蓋伊和其他不服從的聖殿騎士)

貝里昂是說不希望他們因他而死,但是整個軍隊還是因為蓋伊的愚蠢,和薩拉丁的軍隊交戰而死

那是不是接受耶路撒冷王的提議反而死得少一點呢?

只是這也沒辦法有如果,唯一不變的是:任何組織一旦讓廢材掌權,絕對是整個團體的不幸

Monday, January 24, 2011

神奇的 Mac OS X 10.6 Snow Leopard

要把 Mac OS X 10.6 Snow Leopard 光碟做成 ISO

結果隨便用 UltraISO 做出來的是失敗的,ISO 檔只有 700 多 MB

後來照這篇用 ImgBurn 而且把速度調成 1x 才成功轉出 7GB 多的檔案

How to Create ISO from Mac Installation DVD – Rip Mac DVD in Windows

Wednesday, January 19, 2011

終於知道 Acer 主機硬碟插槽怎麼裝硬碟


如上圖,要把硬碟螺絲孔卡進硬碟插槽前端的突出金屬上

說明書上完全沒提到,連客服的工程師都不知道的樣子,Acer 也真天才

而且要關機再裝,不然插上去 Win 7 馬上藍色畫面

Monday, January 17, 2011

成功使用 Mac VPS 完成 iPhone app 放進實機測試過程

iPhone UDID 可以從 iTunes 取到

Provisioning Profile 也可以拉進 iTunes 放進 iPhone

app 可以 Build and Archive 起來,然後產生 .ipa 檔案拉進 iTunes

所以整個開發與實機測試過程都可以在不接觸 Mac 實體機的情況下完成

只是直接將 iPhone 連上 Mac 還是有好處,像是可以用 Xcode 做 profiling

所以還在考慮之後要怎麼做

Sunday, January 16, 2011

從 iTunes 取得 iPhone UDID

參考這裡

在 iTunes 上點到 iPhone,然後在序號上點一下,序號就會變成 UDID

直接按功能表的 編輯 -> 複製 就會複製到 UDID

Monday, January 3, 2011

最常見的 Java 計算日期差方法是有問題的

最常見的 Java 計算日期差方法,就是取毫秒相減除以一天的毫秒數,但這方法其實有問題

之前在做日期相關的東西時,剛好看到這篇

Java - calculate the difference between two dates

他指出當2個日期包含日光節約時間的起始時,算出來的天數會少一天

他的範例程式用的是倫敦時區,不過 台灣也實施過日光節約時間

程式稍微改一下,就會發現台灣時區也有同樣問題

TimeZone.setDefault(TimeZone.getTimeZone("Asia/Taipei"));

Date d3 = new Date("03/31/1974 12:00:00");
Date d4 = new Date("04/01/1974 12:00:00");

結果:

133934400000
134017200000
82800000
Manual - Days between: 31-三月-1974 and 01-四月-1974 is: 0
Calendar - Days between: 31-三月-1974 and 01-四月-1974 is: 1


避免這個問題的方法
  1. Java 7 似乎會提供 JSR 310 裡面應該會有可計算日期差的 API
  2. 使用 Joda-Time library
 使用 Joda-Time 範例如下:

DateTime d1 = new DateTime(1974, 3, 31, 12, 0, 0, 0);
DateTime d2 = new DateTime(1974, 4, 1, 12, 0, 0, 0);
Days d = Days.daysBetween(d1, d2);
System.out.println(d.getDays());