跳到主要內容

發表文章

目前顯示的是 6月, 2010的文章

關於架站機的兩三事

2006年由於 蔡依林的部落格 一文意外讓廖大紅了,沒想到今天發表的 總統府新網站 也讓T客邦發表一篇 介紹文 。 因為在下對敝公司的網站非常不滿意,所以之前評估過非常多的架站機,後來又因開發某專案的緣故,所以也對.Net的架站程式做過測試。 其實大家都在用架站機,重灌狂人、藍藍路等人也用Wordpress或Xoops、Drupal、Joomla等架站軟體,以方便維護。那問題出在哪兒呢?在價格。蔡依林的部落格號稱花500萬,實際上那種品質應該50萬都不到,但是 總統府網站 卻真的花了700萬去發包,所以被高手們用放大鏡檢視。700萬其實也不會有多好賺,公家機關的估價應該有一半是設備費,外加3年維護及保固;不過案子夠大,利潤保守估計也有100萬以上。(我真的很保守了) 先說一下這次的主角DotNetNuke好了,它是用Visual Basic所開發出來,最早是以微軟放出來的範例程式為藍本改寫出來的架站機,後來因為廣受好評,以功能上來說算是.Net架站機的翹楚,相當於Xoops在PHP架站機的地位,但問題也與Xoops相同。 早期的DotNetNuke有個令人討厭的缺點以至於敝公司開發專案不願意使用它,不是因為它用VB.Net不是C#,而是那時連到menu裏的每個項目都用名稱而不是id(正確地叫tabid)去連結,因此我們這種早期web開發者看到中文URL就吐血,決定放棄。當然還有這次本次令人髮指的XSS問題,這種架構性的缺點很難修改。 敝公司的網站用哪一套架站機呢?是一套商用軟體,所以並不多加介紹,但必須說明它是PHP+MySQL的架構。在我們買的當時以相同的硬體,執行 LAMP 與DotNetNuke比起來,速度真是天壤之別,只是要讓內容維護者使用而不自行加值,當然選擇後台功能強的架站機。那個廠商說他們有一套賣給種花電信某單位,由於流量很大,還客製化成為後台直接產生靜態頁面發布,在下覺得他們確實很了解狀況。 敝公司自己開發的專案使用Rainbow Portal,當時的選擇不夠多,事實也證明Rainbow Portal有點慢,但是開發模組很方便,也就硬著頭皮把案子做完,後來2005年之後它幾乎沒有再維護,所以在後續的案子也就不使用。用DotNetNuke開發 總統府網站 ,就必須小心地檢視它的先天性弱點,由於DotNetNuke是Open So...

使用PHP 4.1.2+Apache 1.3.42+mod_ssl

敝公司幾年前買了套很舊的架站機,它用Zend 編碼PHP,因此只能用PHP 4.1.2+Apache 1.3.X,我只能默默的更新。 這兩天開始會神奇的無回應,檢查error_log發現是達到MaxClients,看了access_log似乎是Sogou web spider有些問題,而我也不想去擋偉大的祖國蜘蛛(誰知道還會有哪隻呢?),所以檢查httpd.conf,發現TimeOut居然被設成1800(秒),原本預設值是300,所以我改成100,這樣httpd的數量就維持在50左右。 因為每天都有不少試漏洞的robots,所以更新是必要的,在此記錄如何編譯 Apache 1.3+ PHP 4.1.2+ mod_ssl 。

RT2870/RT3070在Linux的driver

由於舊的無線網卡故障,原本向朋友借了一支他不用的802.11b usb網卡;但實在收訊太差速度又慢,於是忍不住買了張便宜的EDIMAX EW-7711UMn USB無線網卡。由於什麼都不奇怪的網站上寫明支援Linux/Mac,所以才放心買下。 但是拿到手後在Windows沒問題,在Ubuntu和Mac使用內建的driver都抓不到,裏頭附的光碟有Linux及Mac的driver,但Linux版編譯不過,又到 雷凌 下載最新的driver,晶片組應該是RT3070,裏頭的Makefile有點小問題,而且修改安裝後仍然抓不到。 後來看到 這篇 才知道要disable RT2800 的module,仔細找找原來在Ubuntu 10.04已經內建 RT2800及更新版晶片的driver,所以不用像 這位大哥 或在下這麼費工,還不一定會成功。 重點:在 "/etc/modprobe.d/blacklist.conf" 加上 blacklist rt2800usb 就夠了。 還沒完咧,重開機後果然抓到driver,但是很怪異連不上WPA+WPA2 personal的新Wireless AP,只能連到WEP的舊AP,再google搜尋一下,發現這是Linux rt2800 driver的Bug,支援WPA2但 不支援WPA ,所以把AP設成WPA2 only就可以連線。 結論:Linux愈來愈好用,但因為driver的不完善,不想浪費時間的朋友還是選擇Mac/Windows比較方便;我想RT2870的問題在Ubuntu 10.10說不定就會解決,所以我還是會繼續用下去 ^_^ Update: 在Ubuntu 11.04上隨插即用!

神奇的Mac OS X

先聲明,我不是瘋狂的Apple Fans,也不是反微軟教派,但是這次真的讓我對OS X佩服得五體投地。 午休結束後,負責維修的同仁向主管報告遇到某幾個pdf印不出來,於是乎主管又叫我幫忙處理。一問之下,這幾個檔案是某政府單位做的pdf,乍看之下是用PowerPoint 2007直接另存成的,裏頭有90%都是精美的圖...(誰要去政府機關教高橋流簡報呀?花到不行的簡報誰知道重點在哪?)圖多並不是問題,這幾個檔最大的也不過五十幾Mega Bytes,還不到60頁;但真正的問題在於每印一頁都慢到不行,而且印到一半Adobe Reader就會當掉卡住,另存或是用Adobe Acrobat去修也沒用。 由於當時距離大老闆要的期限只剩2小時,我就不加思索拿出我的Macbook Pro,打開一試...有點慢,但是可以另存,表示可以印!於是用我的Mac印到Windows分享的印表機,但由於印表機太慢,要連別台印表機同步列印時居然因為機型太舊找不到Snow Leopard的driver! 當時我的確傻眼,沒想到台灣Xerox租借的DocuCentre-II 3005居然是過時的產品,沒有出新版Mac driver;後來看到官網寫可以用PS相容模式列印,於是用Generic postscript driver,就直接丟到DocuCentre-II 3005印出檔案,問題也就解決。 在下猜想,那幾個pdf檔不知是什麼原因造成格式錯誤,剛好Adobe使用的API會卡住(我用Foxit Reader測過,也印不出來);但Mac OS X的Preview(預覽程式) 就是沒問題,只能說好樣的Mac OS X,你真神! Update:因為許多朋友猜測是driver等問題,後來又以Ubuntu 10.04測試,結果仍然是Adobe Reader在列印時會當掉,用xpdf則有 破碎字 問題且亦無法列印。後來發現那幾個pdf檔是以"DocuCom PDF Driver 6.03 for NT"製作,應是該轉檔程式之bug。

Visual Studio Express 切換語言

如同大家所知, 下載 Visual Studio 2010 Express 的中英文版並且都安裝後,就可以切換介面顯示的語言(語系),但我卻找不到 =.= 原來是從Visual Studio Express和要錢的Visual Studio不同,預設不會顯示所有的設定,必須要勾選 "顯示所有設定" 才能在 "環境"->"國際設定" 的 "語言" 裏去修改。 改完這裏後,在方案總管裏,right click aspx也出現 "瀏覽方式..." 的選項,就不用擔心更改預設瀏覽器而不能直接啟動 IE debug。

比沒錢又贏了

午休時和朋友msn聊天,再一次的又沒人能贏我。以下採用藍藍路的msn式對話: ============================================= 接受 說 (下午 01:00): 我想買Wii但是我身上前好少 [鳥毅] 說 (下午 01:01):  你錢少?  有沒有搞錯 接受 說 (下午 01:01):  對阿 [鳥毅] 說 (下午 01:01): 工作十年,我戶頭剩不到60萬 接受 說 (下午 01:01):  什麼 [鳥毅] 說 (下午 01:01):  也沒股票等不動產 接受 說 (下午 01:01):  好吧 我輸了 [鳥毅] 說 (下午 01:01):  嗯,知道就好,哈 接受 說 (下午 01:01):  哈 =====================================================

改版型了

其實早就想改版型,但因為沒有好的工具一直懶得改。 上個月被Google AD停權就一肚子鳥氣,今天剛好遇到Blogger提供Template工具,就直接按套用,也不放廣告了。

WinForm裏ToolBar/ToolStrip不會先Focus的Bug

同事遇到一個奇怪的Bug,她說用 DateTimePicker 手動改變時間,在儲存時卻不會生效。原本我以為是 DateTimePicker 的Bug,仔細一查卻發現是她用的 ToolBar 的Bug,這情形在較新的 ToolStrip 元件也會發生。 因為在下很久沒有寫WinForm,所以昨天特地下載Visual C# 2010 Express測試。先拉一個 DateTimePicker 元件、 Button 及 ToolStrip 元件,接著在ToolStrip增加一個Button,雙擊之,再加入兩行。 MessageBox.Show(dateTimePicker1.Text); MessageBox.Show(dateTimePicker1.Text); 執行後去改dateTimePicker1的值,在日期仍反日時馬上按toolStripButton1,會發現第一次是今天的值,第二次才會更新;但若用button1則不會有這問題。 因此解決就是在toolStripButton1_Click() 加上 toolStrip1.Focus(); 此處Focus在dateTimePicker1以外任何其他元件均可。 完整測試程式如下: using System; using System.Windows.Forms; namespace TestDateTimePicker { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void MessageTwice() { MessageBox.Show(dateTimePicker1.Text); MessageBox.Show(dateTimePicker1.Text); } private void toolStripButton1_Click(object sender, EventArgs e) { toolStrip1.Focus...

硬碟的容量,決定宅的力量

俗話說:『硬碟的容量,決定宅的力量』,最近 "影片"存量 VM過大,所以在下敝人小弟我就去買了一顆最便宜的eSATA外接式 1.5 TB 硬碟;這樣在公司的電腦裝Ubuntu也不會有罪惡感。 聽說有了這顆硬碟後,VM帶回家就可以繼續工作!(啥?是把和同事交換的謎片帶回家吧?) 因為也有USB,如果想要拿來當MacBook Pro的Time Machine也可以;不要亂搞的話,裝3~4個OS多重開機加上資料可攜是沒問題的。 差點忘了提價格,我在什麼都不奇怪的購物中心買,隔天早上送到花了NTD $4299,聽說有賣NTD$3999,懶得去找了。送到才發現沒有附eSATA的線,所以安裝Ubuntu得等我再去買eSATA線,下回待續...