發表文章

回過頭來看C++

寫C#或Java也好幾年了,打從我研究所畢業以後就沒再碰過C,就這麼一腳踏入Java和.NET的世界。 幾年過去,重新燃起再學一次C++的想法,才發現Java這類的語言幫你把一堆事情都做完了,搞到最後其實自己已經不知道什麼事該做,或是有哪些小地方其實是程式設計師需要在意的。 重新再去思考C++的哲學,可以在很多很多方面重新把這段缺乏的知識補上。也許真實工作上沒有什麼太大的幫助,但是對自身的程式語言修養我相信一定會變好的。 喔,對了!其實對工作上還是有幫助的,起碼我發現當我在寫C#的時候變得好輕鬆,C#這麼簡單的程式語言可以讓我更關注在其他問題上。哈哈~

COSCUP 2015 小心得

如果參加每一個研討會都有一個目的,那這次的COSCUP就是讓我重拾對寫程式的熱情吧! 寫code本來是一件很有趣的事,但是變成工作以後這種熱情就會漸漸消失,當我發現世界上還有那麼多人抱持著熱情在寫程式,就讓我自己的熱情也跟著燃燒起來。 嗯,今天開啟久久沒動的Ubuntu了 XD

使用Mac的Preview來合併兩張圖片

圖片
很多人習慣用Windows的小畫家一定在Mac上有遇過這個問題:到底在不花錢的狀態下合併兩張圖片? 嗯,這需要一點點數學 XD 開啟兩張圖你要合併的圖,以下簡稱A, B 透過 Tools -> Adjust size 看到A和B的大小 我選的兩張圖大小都是1024x768,然後我打算把這兩張並排成一張圖 選A,按下command + a (⌘ - a) 全選,並且command + c (⌘ - c) 複製,並且更改寬度成1024+1024=2048,記得把鎖頭打開 這時候這A會被拉扯成這樣: 然後再把剛剛複製的那張原圖貼回去 然後再把B全選,貼到A,記得自己對齊好 存檔,結束 其實不難 XD

突然有感

每次遇到一個問題,我都會不自覺得問自己「can I do this?」,為了保持我的動力,我都會回答好幾次,「I can do it!」 每每都會讓我想起Steve Jobs那個驚人的演說,和最後的結語 -- Stay hungry, stay foolish. Stay hungry, stay foolish.

DuckDuckGo試用幾天後的心得

DuckDuckGo 是一個號稱不會log你的搜尋記錄的搜尋引擎,強調不會記錄你的搜尋內容。Google雖然強大,但是常常我在Google上搜尋過的東西會出現在Facebook的廣告中,讓我非常不開心。於是最近決定暫時和Google分開一段時間,看我能撐多久。 想不到結果出乎意料的好!基本上剛開始會有一種「找不到我要的東西,這東西可能不夠可靠」的感覺,這可能是心理問題,因為同樣的事發生在Google上的話,會讓人覺得「啊!東西真的找不到啊...」。 在DuckDuckGo身上,我找到第一次使用Google的感覺,頁面清爽、沒有廣告。而且不管是誰、在哪裡,下的關鍵字一樣,搜尋出來的結果就一樣。 但是有幾個地方還是美中不足,主要的地方是關鍵字必須下得比較精確,才可以找到相對應的東西。比方說:「mule sleep n seconds」,這幾個關鍵字,Google會知道我要的,大致會把這幾個關鍵字翻譯成:「mule esb delay n seconds」,但是DuckDuckGo就沒那麼聰明,我要確實的下「mule esb delay n seconds」才能在DuckDuckGo上找到我要的東西。 話說回來,Google應該真的看了我不少資料才知道我要找的是Mule ESB還是騾子吧 XD 這就是條件交換囉,隱私和便利之間總要有取捨。 此外,DuckDuckGo有提供非常貼心的功能,就是當你輸入 !g! 作為開頭,他就會自動幫你把這些關鍵字帶去Google搜尋,如果是 !yt! 開頭,就幫你帶去youtube搜尋影片,這樣多多少少保持一點彈性,還可以繼續使用Google的一些功能,比方說匯率換算 ex. !g! 200 JPY = ? NTD 這類的。 試試看吧,看我能撐多久不去用Google,我已經把iPhone, iPad和所有我用的到的PC、Mac預設搜尋引擎都改成DuckDuckGo了。

Git的強大,其他SVC怎麼辦?

這兩天花了很多時間研究這幾年來非常流行的Git。 總而言之,Git就是一個source version control的工具,一開始我真的不以為意。有什麼功能是其他家沒有的?大家都是source version control啊,有什麼特別了不起的?SVN流行很久,Perforce也是很多大企業在用,大家都可以check-out/check-in/branch/merge/revert ... Git不過就是另外一套而已啊~我錯了。 Git在兩點先天上就比全部市面上看得到的source control工具強大太多: 分散式架構 強大的branch管理機制 先講為什麼會吸引我,敝公司官方使用的是Perforce,他跟微軟很古老的那套Visual SourceSafe一樣,client必須跟server保持連線才有辦法做事,簡單說,沒連上線你連check-out都不行,所以只要網路一斷,基本上就是收工了。做任何事client必須跟server隨時保持互動,這非常麻煩討厭,基本上光是維持連線就會讓我的生產力下降。 而Git完全沒有這個限制,每個client本身也具備傳統source version control server可以做的事,平常工作只需要跟自己溝通,server的工作基本上講白了只需要保存你的code的內容和狀態(所以稱之為Repository比較正確),其他的操作都是在client上完成,當需要存放到repository保存時才需要push內容到Git repository。這樣client可以在任何環境任何狀態下工作,在家裡寫code,回到公司再push到Git repository;在咖啡廳寫code也一樣,甚至你要到擎天岡去寫code,沒有網路照樣讓你可以工作(某方面來說好像也不是好事 XD)。用了Git,從此你不再需要時時刻刻和SVC server保持連線。 再來,更屌的一點,完爆其他source version control工具的地方就是超級強大的branch-merge功能。我們在軟體開發上最痛苦的不外乎,一邊寫新功能,另外一邊改舊bug。當一個系統已經上線,並且開始著手開發新功能的同時,如果測出上線的系統有bug,大部分只有兩個方法: 比較土炮的是把新寫的功能全部comment掉,然後回去改舊bu...

我的天空是天花板

時常在公司需要點想法的時候,抬頭看到的天空是天花板,日光燈是我的陽光,偶爾想要接觸外面的世界,只能轉頭望向窗外。 還好大多數時候窗外的天氣不是很好 XD