跳到主要內容

文章

目前顯示的是 十月, 2008的文章

程式問題開始收費

鳥毅不過是個半吊子兩光肉腳網管,最近有許多的程式問題進來,因為在下程度很差,所以每個問題都要很久才能做出來。尤其是用ZedGraph畫統計圖,我也不過是玩過一次,怎麼好像變成ZedGraph開發者了?


最近狠下心把公司的桌機也裝Ubuntu,所以手邊沒有.Net的開發環境了,當然之後要維護舊系統還是得裝。

為了維護生活品質,即日起學楚狂人對於程式問題開始收費,一題2000元新台幣起,視難度而定。

如果不爽可以找高手問呀!網路上像大河馬、Qing、GSLin、HLB、Zonble、獨孤木、XDite...隨便找都幾十個高手,而且都是以Coding為業,保證技術一流的啦。

pfSense架設頻寬管理器的問題

最近除了試用舊硬公司的頻寬管理器外,也一直在校調pfSense的效能。

事實上,pfSense 1.2版的功能仍然不太夠,建議安裝1.2.1 Prerelease Snapshots版本,不但有QoS的Wizard(Traffic Shaper Wizard),還有更多的套件(Packages)可安裝。鳥毅就裝了bandwidthd、darkstat、snort等。

據說以前還有人寫HAVP的套件,不過後來沒維護了。HAVP的架設可以參考免費的企業防毒牆,可以在pfSense上自行安裝HAVP,但是transparent proxy那行指令就不能寫在pf.conf,而要自己寫成pfSense的rule,因為難度太高,我就沒去試,歡迎有成功的朋友告訴小弟一聲。

pfSense 1.3版主要增加了多IP的設定,可以在一張網卡設定不同subnet的IP,雖然同樣透過virtual ip,但介面上可以選擇。另一個特點是Dashboard的畫面對各種流量一目了然,頗有專業Firewall的樣子。可惜1.3版還有相當多問題,有些功能根本無法使用,所以不建議安裝。

鳥毅沒有在VPN採用pfSense最主要的原因,就是我不知道怎樣把企業VPN兩端設成transparent,又能使用NAT達成QoS,這點舊硬公司的代理商工程師確實很熟,稍微想一下就設定出來。(敝公司尚未正式採購,若有哪位仁兄能提供pfSense的設定方法,小弟自掏腰包請吃簡餐)

關於頻寬管理器

國內的頻寬管理器大都是某一間兩個中文字的公司所代工(他們沒付我廣告費,姑且稱之為"舊硬"吧),另一間廣為網咖所採用的公司請恕小弟沒測試到。

舊硬公司早期是純代工,所以友X公司相同型號的頻寬管理器或UTM,都是舊硬公司OEM。現在掛舊硬公司自己品牌的頻寬管理器,大約只要友X的2/3不到價格,所以敝公司當然直接買舊硬的產品。

順便提一下Fortigate,雖然號稱有QoS,但仔細看手冊才發現,許多功能都必須進入console操作,又是專屬OS,實在不好用,不建議拿來當做頻寬管理器。

舊硬公司的QoS,雖然說也是靠iptables,但是功能相當齊全,還有許多報表,鳥毅自己肯定做不來。其實pf的功能理論上比iptables先進,但這幾年iptables一直進步,功能上和pf不分高下(參考:pf vs iptables)。iptables的指令相當地精簡,對於用慣ipfw/ipf/pf的鳥毅而言是天書,所以架Firewall仍舊以pf為第一考量。

這次使用的地點在於VPN的兩端,因為企業VPN FTTB非常貴,2Mb每個月9000元,若升到4Mb每個月15000元,十分划不來。導入QoS後,只會讓使用者降速而不會斷線,同時整合原有的pfSense功能,只需要一台機器。

工程師的設定方法與鳥毅想像中不同,企業主站是wan1,wan2是原有adsl上網,分公司則是dmz,其中dmz設定為transparent,再把原有gateway設成wan1的IP。如此一來,user的使用習慣不變,但是所有的進出頻寬都受到這台機器管控。(不知道transparent用iptables是怎麼設定的?)

差點忘了說價錢,這台PXHome賣69000,PXHome商店的筆X王賣63000,還不到一年的頻寬費,划得來。

將過大的mailbox移到收件匣

最近由於某些新進同仁都使用WebMail,但又不砍信,造成Mail Server繁忙,只好請他們自行砍信/移信。有些皮比較癢公務繁忙的同仁沒空處理,只好抽空寫支小程式處理。

由於Openwebmail的限制,不能用maildir,只能維持使用mailbox,這是系統loading高的主因。由於許多原因以及沒有功能更齊全的webmail前提下,只能暫時如此處理。本來要用比較熟悉的Java寫,但是搜尋之下並沒有功能完整的library,而Python內建就支援mailbox處理,在缺乏其他支援/資源的情況下也只能硬著頭皮寫。因為我比較懶,裏頭有用到一個date parser,使用前請先安裝。

這裏的環境針對FreeBSD + Postfix+Openwebmail,sendmail/qmail應該也適用,我在Ubuntu開發,所以在Linux"應該"也能正常執行。

完整程式如下:
#!/usr/bin/env python
# coding: utf-8

import datetime
import mailbox
import email.Errors
import os
from stat import ST_SIZE
#由於python沒有內建的Date Parser,所以找了一個dateutil parser, http://labix.org/python-dateutil
#FreeBSD ports裏在 /usr/ports/devel/py-dateutil
from dateutil.parser import parse

def mailbox_apart(inputfile, outputfile, splitdate):
inbox = mailbox.mbox(inputfile);
mboxNew = mailbox.mbox(outputfile);

for key, message in inbox.iteritems():
timex = parse(message['date']);
timex = datetime.date(timex.year, timex.month, timex.day);
if cmp(timex, splitdate) < 0…

快速開機的電腦

剛看到關於 快速開機電腦 的新聞,想到家中那台MOD開機實在有夠久。

雖然說MOD有搖控器可以關掉,但實際上並不是真正關掉電源,變壓器和機體本身都持續發熱,在能源不足的21世紀,並不是好做法;因此我都直接拔插頭。雖然MOD後頭有個電源開關,但若只關這個開關,變壓器還是很熱。

現在的Mac/Vista也都有"假的"快速開機,利用休眠狀態裝做是快速開機。Vista 30秒開機?新電腦開機3分鐘還差不多咧~

希望18個月後,真的能有30秒開機完成,可以快速反應的電腦。

CrossOver Chromium -- 在其他平台跑Chrome開放版

張阿駕那看到的,CrossOver推出免費的CrossOver Chromium,讓Intel平台的OS X和Linux可以使用Chromium(OpenSource版的Chrome

在Ubuntu上安裝最簡單,下載後點兩下就裝好了,但保證中文有問題。因為對應的字型沒安裝,只要把Windows裏的mingliu.ttc和kaiu.ttf複製到 /opt/cxchromium/share/wine/fonts ,就可以看到中文。不過最好還是到 "選項"->"偏好設定"->"變更字型及語言",把字型設定為"新細明體"或"細明體"比較保險。

不知為何,跑起來不覺得很快,在VirtualBox裏跑個XP,再用seamless模式跑可能還比較快。

沒有同工同酬這種事

由於技術不再進步,開始往職場心得開始寫,以前的奇異果系列也將歸於此類。

前幾天看到私立學校老師抗議退休金不公平 ,心中的OS就是 別鬧了好嗎?

電視新聞的報導比較清楚,這群老師要求同工同酬,表示學校有公私立之分,教育沒有公私立之分。拜託,能考進公立學校,不是考試比較強就是背景比較硬,你的立足點相同嗎?

像鳥毅這種在私人企業上班的人,能要求和公務員相同待遇嗎?比當老師累的行業比比皆是,這世界沒有同工同酬這種事;腦袋要清醒點,想多賺點錢就去創業吧!

我看Chrome

最近jedi發表了一篇再看 Google Chrome,我有些不同的看法。

基本上他寫的都沒錯,我有一台四年前P4M 1.8Ghz的筆記型電腦,同樣裝768MB 的記憶體,跑起Chrome速度也不快。但是用Core 2 Due + 2GB RAM的電腦呢?快得像飛一樣!

所以我和jedi或xdite等人不同,我公司的桌機早在Chrome推出第一天就改設Chrome為預設瀏覽器,沒有ADBlock也不要緊,因為速度快得可以忽略廣告造成的延遲。

事實上,以四年多前時脈低於2.0Ghz的機種而言,用Firefox 3也不快,只有Opera很快!但小弟功力不足,Opera的畫面怎麼調都看不順眼,所以只是偶爾拿來測試。Chrome預設字型改為新細明體後,網頁看起來和IE幾乎一樣,當然MSDN除外:P

我個人的感覺是:Google 抓對方向了!Chrome的行為大部份學自Safari/Firefox,不需要複雜的設定讓一般大眾快速上手,對於希望成為市場霸主的公司,這才是正確的目標呀!

Fortigate手冊錯誤

拿到申請Hinet資安艦隊2.0的贈品 Fortigate 60B,要設定多組IP,出現錯誤訊息:IP addresses cannot be part of the same subnet. 意思是說多組IP不能在同一個網段。

找了最新版3.0 MR7的管理手冊寫必須用CLI command啟用同網段多IP功能:#config system global
(global)# set allow-interface-subnet-overlap enable
(global)#end但是卻一直出現Command fail. Return code -61
找到3.0 MR7的CLI手冊才知道,這個指令已經廢了,改成:#config system settings
(settings)#set allow-subnet-overlap enable
(settings)#end
Fortinet得多加油,官方管理手冊這樣就遜掉了呀...

對狹長的景色不滿

最近因為測試裝了狹長的景色,鳥毅實在很懷念插屁作業系統。若不是最近太忙,又需要64bit OS測試VM,早就把這個電腦速度殺手請出去。

昨天被流力博士找去,問我為什麼他的VAIO吃了1.6GB,把所有的程式都關掉,記憶體居然不會釋放!重新開機後,終於回到850MB。這....印象中作業系統只是程式的載體呀?忽然懷念起DOS,真怪XD

近況報告

最近超沒力寫Blog,上星期很忙,沒想到這兩天更忙!目前已如鳥毅預料,三個月完全沒寫code了,以後就是專職的網管:D

朋友建議我把pfSense進階設定另外架個Blog,名字叫「免費企業多功能UTM/防火牆/頻寬控制器」。但是最近實在沒空仔細研究pfSense的細部功能(pfSense 1.3幾乎有鳥毅要的所有功能,可惜還有不少Bug,真要用得跳下去修code)。今天還找了一間公司借測新軟的頻寬管理器。不是替新軟廣告,只是查了資料發現新軟是自行研發Embedded Linux,而且不少廠牌的頻寬管理器都找新軟OEM,借測心得改天再寫。

下午不知是哪位同仁向CEO放炮,害美女經理被要求survey視訊會議可行性,找廠商的重責大任自然又落到鳥毅的肩上。很難得部門秘書看不下去(電動打到膩了?還是股票漲心情好?),跳出來幫鳥毅約了三家廠商(我自己也約了一家),所以明天行程全滿Orz

希望下次有空寫pfSense QoS測試報告時能把申請HiNet資安艦隊2.0送的FortiGate 60B測試結果順便寫出來。(為什麼這次沒有其他贈品可選呢?殘念)

Mono 2.0 has been Released

剛看到 http://freesf.tw/modules/news/article.php?storyid=3606 ,果然有微軟在幫忙進展很快呀!
Mono 2.0 Release Notes裏提到:Microsoft Compatible APIs
ADO.NET 2.0 API for accessing databases.
ASP.NET 2.0 API for developing Web-based applications.
Windows.Forms 2.0 API to create desktop applications.
System.XML 2.0: An API to manipulate XML documents.
System.Core: Provides support for the Language Integrated Query (LINQ).
System.Xml.Linq: Provides a LINQ provider for XML.
System.Drawing 2.0 API: A portable graphics rendering API.
專屬的部份就不管了:P

可以直接用System.Windows.Forms 執行程式,這對Java UI確實會造成很大的殺傷力,畢竟Java Swing設計得太複雜,雖然有NetBeans的加持仍然不是初學者能快速上手的環境。

另外對於asp.net 2.0與ado.net 2.0的完成,C# 3.0與 VB 8的compiler都是具有代表性的里程碑。不知道是否能把Asp.net 2.0搬到FreeBSD/Linux上呢?看來今天有不少東西可以玩了呀!

年紀漸大 找工作不易

看到石頭成老大 生活記事::我因為CMMI的事,而被公司解雇了,頓時想到早上看到超過35歲找工作難銀行開始裁員

雖然說法令規定雇主不得對求職者或員工有年齡歧視,事實上正常的老板不可能想找成本比較高的員工,除非是找替死鬼。看來石頭成老大也是有話直說的好漢,若要比黑,大概沒人比鳥毅黑,想到這鳥毅不禁替自己的飯碗捏把冷汗;最近才想希望明年能存夠錢買台車代步,又遇到經濟不景氣...

昨天某視新聞有提到,中高齡轉業要放低身段,待遇不要想比照從前。就算鳥毅願意和剛畢業一樣領3萬多,可能還是沒人想用。希望鳥毅被裁員時,不用像石頭成老大大家搶著要,只要有人願意用就好呀!

你的程式N-Tier了嗎?

鳥毅退伍後,找的第一間公司是負責銀行端末系統的公司,有點類似獨孤木以前做的,但規模比較小。當時年少無知,以為企業內部的程式都應該長得像那樣,分層控制流程,也就是N-Tier設計。

由於有位朋友待在國內某間頗具規模的入口網站,當時向鳥毅招手,半年後鳥毅就投身到portal混了年餘,與N-Tier說拜拜,致力於高流量下還能動的web開發(因為寫得爛,能動就不錯了)。此時最大的好處,就是身邊的同事都是高手(我最爛),而且熟FreeBSD/Linux的人很多,不像現在有問題都找不到人問。

由於coding程度太差,又不耐操,後來受不了跑到目前的公司當個小網管。這間公司都用微軟的Solution,所以當然傾向於用Visual Studio拖拉。微軟的IDE特點就是快,不但跑起來快,開發時程還真是短;用VS2005/2008配合SQLServer,拉一拉一個MIS程式就做出來,這是以前沒接觸過FoxPro/PowerBuilder的鳥毅未知的世界。

此時問題就來了:一間100人以上的公司,不可能只有一個MIS寫程式。每個人寫程式都直接存取Database對嗎?其實這間傳產公司的IT主管也不是IT出身,在鳥毅來之前連套Database都沒有,後來才買套SQLServer 2000供MIS使用。到美麗的MIS小姐加入本公司後,她和原先MIS先生的風格迥異,兩個人的code也沒有共用(原因別問我),而且都是直接存取Database,造成兩個人的程式功能大幅重複,而且時常為了資料交換而有爭執。Client/Server更大的問題在,不過這不在討論之列。

要問我是誰的錯嗎?嗯....是微軟的錯:P VisualStudio一開始的設計就是Quick & Dirty,到現在Enterprise Library的架構都一直在變,也沒有類似JavaEE的Solution(應該沒有吧...我不熟:P,只有找到);所以造成MIS必須自己設計N-Tier的架構。(這一段是寫給MIS看的,微軟別怪我)

微軟的N-Tier似乎和LINQ畫上等號(),雖然在下不怎麼認同,但至少是個好的開始。現在又多了ASP.Net MVC,不知未來如何?

總之,若你是公司的IT主管,請注意元件的共用與源碼的共用,N-Tier是建構在Business Logic上而不是資料流上,不要用Database去思考程式。

唉,…

FreeBSD 6.X升級到7.0的錯誤訊息

有一台電腦從FreeBSD 6.X升級到7.0,結果每次登入登出都會出現:login: in openpam_dispatch(): pam_nologin.so: no pam_sm_authenticate()查了以後發現是/etc/pam.d裏的檔案不會因為mergemaster或make installworld更新。
解決方法:#cd /usr/src/etc/pam.d
#make install