Server 搬家,Lighttpd 初登場

還是自己架Server用起來比較方便,之前主要是家裡的頻寬太慢沒辦法架站,所以只好放在遙遠的 bluehost

這幾天家裡延宕已久的ADSL終於升級好了,從 9/8 線上升級到8M/640k,中間不知道打過多少通123,來了三個工程師終於搞定,給中華電信鼓鼓掌。

因為要用 Rails,所以 Web Server 我改用眾所推薦的 Lighttpd,不過第一次用調教了好久,主要是 Rails 的設定跟 wordpress 的 rewrite (跟 apache 格式不同)。

主要是 follow 著  lightyror.blogspot.com/ 來設定,本來想用同一個 domain,不同目錄的方法來跑 rails。一開始跑 fcgi 就出不來,try 了好久才知道沒裝 ruby-fcgi,用 gem install fcgi 也裝不起來,後來用 FreeBSD 的 /usr/ports/www/ruby-fcgi 很快就裝好了。

設好之後,因為多一層目錄的關係,還要改 routes.rb,這裡又try了好久不知道為什麼一直Recognition failed。成功跑起來之後,我發現 public 裡面的css跟圖片連結等還是不對。呼,還是用 domain 區分比較不惱人啊,回頭又把 DNS server 設好跑起來。

支援php+fastcgi照著lighttpd的文件做就可以了(先裝 php4-cgi 再裝 php4-extensions),麻煩在 wordpress 的 permalinks,原本用 apache 有寫好的 .htaccess 檔,換 lighttpd 之後就得自己來設定 rewrite了,找了 google 好像沒有也直接可以套用的… :(

溫伯格 你想通了嗎?

 蠻有意思的一本書,討論”解決問題”這件事情。沒有複雜的理論,可以很輕鬆的看一些故事,提供了一些不錯的思維切入點。

問題是什麼?

  • 在開始解決問題前,先釐清這個問題 : “誰有問題?”
  • 問題往往來自期望和感受之間出現了落差
  • 不要嘗試幫一個沒有幽默感的人解決問題,因為那簡直是自找麻煩。 (註:因為思考需要天馬行空一下,解法也可以很有創意)

這是什麼問題?

  • 不要把別人解決問題的方法,當成問題的定義。尤其是當解決方案是你自己提出的時候
  • 如果你很輕易就解決了別人的問題,那麼他們將不會相信你解決了他們真正的問題。 閱讀全文〈溫伯格 你想通了嗎?〉

學習 Programming 的歷程

thegiive提到他的學習歷程,覺得蠻有趣的。

我自己接觸的順序是

(2001) C++ -> Pascal -> (2002) PHP,SQL,Javascript -> (2003) Assembly、C、Java、Scheme、Prolog、C# -> Perl -> (2004) UML、Design Pattern -> (2005) CSS、XHTML -> (2006) Ruby、unobtrusive Javascript

第一次認真學的程式語言就是C++,啃的是侯捷翻譯的 Essential C++ 中文版,記得當時還唸了兩遍,滿滿的註記,看到了 procedural,generic (STL),object-oriented 等不同面向的精隨。C++不只是物件導向的C而已,而是更好的C,要我建議,我還是認為可以直接學C++,不一定要照先學 C 再學 C++ 的順序。

Pascal 是清大資工的大一程式設計課,不過最近他們開始改上C了,Pascal 是個古董嚕。PHP,SQL,Javascript 是要打工才學的,也開始接觸 web programming,學到很多經驗,一直用到現在。Assembly,C,Java,Scheme,Prolog,C# 都是課堂上學的,並沒有學的很深入,僅只是交作業程度,不過也讓我的廣度增加不少。Perl 是去學校計中打工學的,認真看了駱馬書,看到了一個非常有意思 hacker 語言。接觸了 UML,Design Pattern,才真正了解物件導向的威力與應用。碰到網頁標準興起,才又認真學好CSS。今年則開始認真學Ruby跟RoR,也打算把 Javascript 重新學過(當代的Javascript跟幾年前又有很大的本質差異了)。

老實說,學什麼語言要照什麼順序嗎? 還在學校的話,就學學C++或C吧,因為不論新出了什麼語言,C/C++是會存在到世界末日的那一天的。要做 Web Programming 的話,認真學好網頁標準(至少CSS跟XHTML)吧,只要還用瀏覽器看網站,這都是不變的基礎。至於要學什麼語言來安身立命,我覺得也是看機緣、主流、喜好跟自己的判斷了吧。

話說回來,拿 Ruby 當你的第一個程式語言也是不錯呢,可以看看Learn to Program,超入門的。

大前研一 我的發想術

大前研一最近的書,內容不多也很通俗簡單念,所以花了幾個鐘頭功夫就念完了。雖然沒什麼大學問,倒也可以幫助你思考一些事情啦。另外書印的不錯漂亮,不過其實在書店翻一翻我想就差不多了…:p

大前研一的發想技術(how to create)共有六招 :

1.懷疑成見

不要以為現有的想法都有道理,換個角度思考,可能發現既定的觀念很不合理,而且有其他種解決方法。

例一 : “少子化使大學進入寒冬?”,要打破成見把社會人士找回研究所,利用遠距教學。例二 : “人口減少沒有速效藥?”,推動移民政策。例三 : “人口減少將使國內市場規模萎縮?”,可以把亞洲全境(尤其中國)當作第二個國內市場來思考。

2.從網路思考

在延伸新點子之前,一定要先考慮分析網路,要如何建立網路。廣義的說就是思考現在某樣商品透過什麼途徑送到消費者手中,還可能有哪些其他路徑。作者舉例電視頻道利用衛星電波才打破地面電波的限制。

中立網路比帶有色彩的網路更有優勢,因為消費者喜歡選擇,喜歡比較各家產品。所以入口網站資訊垂直整合是大忌,應該要做全方位外交。從用戶來看,中立是最好的,業者如果優先播放自己的內容,反而不能確實反應觀眾喜好。因此作者認為掘江貴文收購日本放送公司不是真心想融合廣播與IT,
而只是想海撈一票而已,做個greenmailer(為了讓對方買回公司而收購公司股票的人)。另一個失敗例子是AOL美國線上與時代華納的合併。

網路本身的架構也能創造成功事業,像是美國的TCI併購小的地方電視台來整併成長,或是西南航空先建立中型城市的直飛航班。我認為就像是地方包圍中央的策略,不直接與最大的競爭對手火拼。

總之,你要挑最有利的網路,如果現有的網路隊消費者不利,那你就有機會。假使你不能架構網路,也可以利用網路特性,傳達內容(請參考下一招)。 閱讀全文〈大前研一 我的發想術〉

SitePoint 的 2006 Web Development 報告

SitePoint 跟 Ektron,Inc. 的這份 State of Web Development 2006 調查了他們社群中的五千名網站開發者所做出的報告,統計目前開發工具跟使用的技術以及未來的趨勢。非常有意思。這五千名的開發者,有四成是freelancer(SOHO),有二成五是公司的網站管理員,一成二在設計公司,顯然是專業人士居多的樣子。

報告中顯示,已經有六成八的開發者,會用CSS來做排版。五成三會驗證markup但小錯不管,二成五會完全通過,二成一不驗證。

在談到開發方法方面,有五成會用OOP,但只有一成八會用MVC,有三成四會用 Unit Testing,一成四會生成文件。開發工具方面,有四成會用 Dreamweaver 開發,三成用文字編輯器,微軟的 Visual Studio只有一成。

關於程式語言的使用,PHP以六成八遙遙領先,微軟陣營則有三成二。Ruby只有5%,只贏過 Python… (笑)

Source: :2006 6State eof fWeb bDevelopment, ,SitePoint tPty yLtd. .and dEktron, ,Inc., ,August t2006

不過Ruby別氣餒,下個問題是一年內計畫會使用跟學習的語言統計。Ruby搬回一城,以二成四居次,微軟陣營居冠。

Source: :2006 6State eof fWeb bDevelopment, ,SitePoint tPty yLtd. .and dEktron, ,Inc., ,August t2006

另外一個非常有意思的統計是目前的專案有四成會用到Flash,三成用AJAX,但是未來一年內有四成五計畫會用AJAX,Flash降到二成七。 另外 Blog,Podcasts,Wiki,Syndication,Microformats 都有成長的趨勢。