星期三, 12月 21, 2011

Localized Folder Name on Mac OSX / 在Mac OSX 資料夾顯示自訂中文名稱

在Mac OSX 自訂 localized 資料夾(目錄)名稱的中文資料不多,以前的方法已經不能用,所以特地記錄下來。

假設我要開一個資料夾叫『Shared』,希望在Finder顯示中文叫『共享』,這種需求主要是在不同語系顯示不同文字,或是因為常使用命令列(Terminal、Console)切換目錄。

根據Localizing Pathnames,正確的做法應該是將資料夾命名為 『Shared.localized』,在其底下再開一個 『.localized 』的資料夾,裡頭放一個 『zh.strings 』的純文字檔案,編碼為UTF-8,內容為:
"Shared" = "共享";

但其實OSX有預設的多國語言化,所以我故意舉這個特別的例子,只要將目錄命名為『Shared』,裡面放一個 .localized 的空檔案,在Finder就會顯示『共享』,同樣地『Pictures』會顯示『圖片』、『Movies』會顯示『影片』、『Music』會顯示『音樂』等等。

星期一, 12月 12, 2011

地球不會因為你而停止轉動

以下故事全屬虛構,若有雷同純屬巧合。
====================================================

小林在一間500名員工的公司上班,由於產業別特性,該公司並不重視資訊部門。

早上小林向他的主管梅監綁說:『公司的電腦太過老舊,用的XP系統在新電腦很難裝,不少裝置都找不到驅動程式;建議全面汰換,改成Windows 7 64bit,並對目前使用的內部系統更新。』

星期二, 12月 06, 2011

2009年 13吋Macbook Pro 改裝SSD除去DVD

基本上參考 MacUknow這篇改裝,所以重覆的地方就不說了。
首先去網拍買需要的光碟機外接盒,關鍵字叫『硬碟轉接盒』、『光碟機外接盒』,這位賣家有標明Macbook與MacbookPro用,但我覺得應該沒差;他還附與MacUknow那篇相同的DVD轉HD的轉接盒,我就不重覆貼圖。剛才去找拍賣應該在800元以下一整組,別買貴了。


底盤不太好裝,也沒有螺絲固定,基本上就是卡住,自己要"喬"一下,光碟才能退片
後來有兩根螺絲柱的地方還是太高,我用斜口鉗剪到和邊緣齊才能完全壓下去


光華商場買的工具組,100元
美光Crucial M4花了6799元,在什麼都不奇怪買的,應該可以找到更便宜


裝好就是這樣,其實沒什麼好說的;可以看到我把青雲的保固貼紙貼上去
放入硬碟轉接盒時有個技巧:先將左側斜插進去,再輕輕將盒子壓下

原本開機要52秒,換成SSD只要16秒,呼!
因為我開機會自動啟動Alfred和Dropbox,再加上Spotlight所以會剛登入都要等一下才會順,原本要等將近一分鐘,現在只要10秒,SSD實在太強了!

Update:強烈建議安裝前全新SSD先取得原廠firmware,Crucial m4 firmware在此,裝好以後升級還得備份資料,太麻煩了。

由於TimeMachine不支援從容量較大的硬碟還原到容量較小的硬碟,所以我只能用USB開機碟重新安裝,再從TimeMachine將應用程式和設定、使用者資料還原。

還原後會發現大部份的應用程式還能用,但是gcc不見了,必須重新安裝XCode。還有Java會在第一次使用需要Java的應用程式時安裝。

重點來了!都是別人寫過的有什麼好寫?不是Apple出品的SSD,預設是不啟用TRIM。不懂的朋友可以看TRIM技術,白話說就是若不支援TRIM會愈用愈慢,最後必須重新低階格式化再將資料倒進去才可用。


啟用TRIM有兩種方法:命令列 或是用Trim Enabler。不過因為Apple在10.6和10.7有所不同,所以用命令列反而比較簡單。

啟動後就是這樣

另外根據Mobile01鄉民的說法,美光Crucial M4的韌體必須更新到0009版才會快,我這台只支援SATA 3G,不是SATA 6G

因為以前常用的AJA System Test在Lion有權限問題不能用,所以改用Blackmagic Disk Speed Test測速度,不過我沒讓它跑完。


這是原本的500GB硬碟

這是Crucial M4 SSD

若是想知道美光Crucial M4 SSD在SATA 6Gb的表現, 可以看T客邦的介紹,基本上這顆SSD比原本的硬碟表現在4倍以上,我已經很滿意,若是日後有效能低落,我也會在Blog上說明。

總結:用了SSD就回不去了!

補充說明:SSD升級firmware後,通常資料會全部消失,所以升級前一定要仔細看清楚,並做好全機備份。

Update:Crucial Firmare站台更新到000F版的韌體,Macbook Pro可由光碟開機更新,而且資料還在,可以正常使用!

星期一, 12月 05, 2011

jQuery UI 配合的 jQuery 版本有限制

認識我的朋友都知道,我不但是重灌狂人級,也是升級狂人,手邊的OS或軟體一定要升級到最新版才爽。

前年底做了個小系統,使用FullCalendar,一開始是jQuery 1.3.2,然後我就一直升級jQuery,也都沒什麼問題,直到這個月從jQuery 1.6.4升到jQuery 1.7.1時,問題出現了。

我一直以為jQuery UIjQuery是同一家出品,只要最新版本應該都相容,jQuery UI也只有寫jQuery 1.3.2+,沒想到jQuery UI的 drag and drop 出現問題,它只能用在jQuery 1.3.2~jQuery 1.6.4。

根據在下去看jQuery UI的source code,是因為它大量使用isNaN,jQuery 1.7把isNaN廢掉了。

結論:升級前請停、看、聽。

星期四, 11月 24, 2011

SONY VAIO VPCSE16FW/S 不專業開箱文

很久沒有貼開箱文了,今天收到人生首次購買的VAIO,興奮程度不亞於首次買Mac。

這次買的是 SONY VAIO VPCSE16FW/S 銀色,是15吋 Full HD的筆記型電腦;由於24小時購物缺貨,我是在什麼都不奇怪購物買的,後來才知道原來Sony購物網也是相同價格,還比較快(我遜了...)。

星期三, 11月 23, 2011

網路瞬斷原因

最近公司的光纖升級後,防火牆時常送出網路斷線的通知信給我,大概幾秒鐘後就會再送一封網路連線的通知信;多的時間一天7、8次,有時候又沒有。

星期一, 11月 14, 2011

我看閃光與銀光

由於此篇無立論根據,就當做閒聊好了。

最近發生一件大事,在老賈掛點後不久,阿逗比宣布終止行動閃光開發英文),國外也有人預測閃光桌上版也活不久。在下敝人小弟我覺得銀光也是有相同的命運,雖然是好技術、好東西,但是就像OS2一樣...

不知道還有人記得Java Applet這玩意兒嗎?現在除了很少數的證卷看盤網頁,很少人在用了...為什麼呢?因為太肥太慢,所以後來Macromedia 推出Flash趁虛而入一炮而紅。

其實Flash有個更大的問題,就是更新!三天兩頭傳出安全性問題,以企業角度來看,若要讓使用者都能更新,要給管理員權限嗎?(現在的版本我不確定沒有管理員權限是否能更新,至少早期版本5、6、7都無法安裝)。敝公司幾年前常有同仁為了網頁的flash看不到而報修,讓維修人員疲於奔命。

同樣的問題也發生在SilverLight身上。從二十世紀末到二十一世紀初,隨著木馬及流氓軟體的流行,人們的使用習慣漸漸從按『是』變成按『否』,在用戶端安裝ActiveX/Plugin愈來愈困難。少數有支援SilverLight的新X證卷,除了SilverLight下單,也不敢不提供下單AP。雖然說SilverLight可以用WSUS/SMS,但是也無法確保用戶100%有更新(除了有使用端點防護軟體嚴格規定沒更新就不能上網者)。若MIS用SilverLight寫內網Web AP(非少數使用者),絕對會哀號遍野,讓維修人員(嗶)聲連連。

大家還記得RMVB嗎?現在漸漸都被Mpeg 4取代。在下認為,閃光會淡出市場(不是真正掛點)如同Java Applet,銀光也是。尤其在Windows 8 開發者預覽的地鐵(Metro)模式不能跑Flash也不能跑SilverLight的同時,更加證實在下的看法...

星期四, 10月 13, 2011

升級到iOS5

今天早上得知iOS 5已經正式開放更新,連忙趕著下載。更新的必要條件是iPhone 3GS、iPhone 4、iPad、iPad2或iPod 3代以上機型,電腦必須搭載iTunes 10.5,在iDevice的頁面上點選「檢查更新項目」,讓它自己裝就可以了。

如果有用過Umbrella備份SHSH的朋友,記得要在Windows的 C:\Windows\System32\drivers\etc\hosts 或Mac的 /etc/hosts 檔案裏,刪除 gs.apple.com 這條(在第一行加上#也行啦)。另外有些使用Windows 7/Vista的朋友升級時也有錯誤訊息,可能按滑鼠右鍵得「以系統管理員身份執行」才能順利升級。

星期三, 10月 05, 2011

How to make your view in FullCalendar: the hack way 如何硬改FullCalendar做出自己的View

因為FullCalendar的變數命名空間及呼叫方式,要在不動原始.js檔情況下建立自己的View很困難,因此先用「硬改」fullcalendar.js 的方式。

It's difficult to make a new view without modifying the source code of "fullcalendar.js", thus I chose the easy way.

星期一, 10月 03, 2011

擴充jQuery Plugin

因為之前都去硬改FullCalendar,它一直改版我老是跟不上,今天終於下定決心好好的看看怎麼擴充別人寫好的jQuery Plugin,關鍵字是extend jQuery plugin。



在查到這篇之前,我以為是利用prototype,但是jQuery內建extend這個方法,所以只要寫成:

var dummyClass = {
            myMethod1: function () {
                return alert('方法1有效');
            }    };
    $.extend(true, $.fn.fullCalendar,dummyClass ); 
或者更簡化成:

$.extend(true, $.fn.fullCalendar, { myMethod1: function () {
return alert('方法1有效');
} }); 


因為FullCalendar得相當Ugly有些變數的可視性僅限於內部,用這種寫法其實還有很多問題,如果有改成功就會有下篇 @@ ,目前試出來能夠增加View,但是options仍然只能在初始化時設定,不算成功。

星期四, 9月 22, 2011

在Xen FreeBSD guest安裝Xen tools

我在XenServer上安裝FreeBSD amd64的guest VM,先編譯HVM kernel再重開機。
~/> su -
# cd /usr/src
/usr/src# make buildkernel KERNCONF=XENHVM
/usr/src# make installkernel KERNCONF=XENHVM
/usr/src# reboot
重開機後會發現網路卡變成xn0,別忘了到 /etc/rc.conf 設定網路,還有硬碟會由ada變成ad,所以請記得改 /etc/fstab 用 Label mount,參考FreeBSD在fstab使用Label名稱mount磁碟

星期三, 9月 21, 2011

FreeBSD 8.2 i386 hangs on Xen

在XenServer安裝FreeBSD 8.2 release i386沒有問題,但是安裝客制化的Xen kernel重開機後整個VM卡住,用Xen Center或下指令都無法reboot或shutdown。

發現國外也有相同的問題,在這裏有新的patch,Amd64版本則無此問題。

根據FreeBSD/Xen,i386是半虛擬(para-virtualized,PV),amd64只能全虛擬(hardware virtualized,HVM)但可用 PV drivers;在FreeBSD 9.0後對Amazon EC2的相容性比較好,因為EC2即是使用Xen,相信在FreeBSD 9.0之後對Xen的相容性會更佳。

星期三, 9月 07, 2011

Ubuntu 更新錯誤

這幾天更新Ubuntu都偶爾出現bzip2錯誤,原來以為是站台在維護,但是更換Server還是一樣,才驚覺不對勁。

想了想,最近換上去的防火牆有開啟HTTP掃毒,果然關掉後就正常,看來是遇到bzip2封包解太久,造成錯誤。(它是用ClamAV,效能更差)

因為並非常見問題,特此誌之。

星期四, 8月 18, 2011

修正8 bit header在Openwebmail顯示亂碼問題

上一次 解決了 Roundcube的主旨亂碼問題,這次再試著解決Openwebmail的Big5/GBK顯示亂碼。註:此處修正2.53版,自從2009年以來都沒有更新,3.0 beta要釋出得要一段時間。

簡單地說,若在email的header沒有指定Content-Type charset,未編碼的8 bit header在預設UTF-8 的Openwebmail看到主旨、寄件人等名字就是一團糟。

因為敝公司仍未正式轉換到Roundcube,加上VB超人說他比較喜歡Openwebmail的介面,所以夾卵蛋拼小命也要試著做出來,至少在List畫面要正常吧!

星期二, 8月 16, 2011

修正8 bit header在Roundcube顯示亂碼問題

之前寫過很多次,一直找到能接替Openwebmail的下一代webmail,最後採用Roundcube

RFC裏明明規定email header必須用7bit,但是早期的email client如Outlook Express、Becky等都有允許8bit的功能,因此亞洲不少國家流通的email都還有人在用8bit header。會出現允許八位元標頭是因為早期Unix上pine/elm等client軟體沒有編碼/解碼功能,為了讓收件人在elm上能看得到主旨才這麼做。現在新的email client都沒有允許八位元標頭的選項。

Openwebmail若指定預設語系Big5編碼,在收到Big5碼 8bit header郵件時完全正常,但若指定為UTF-8預設語系,則在Big5碼 8bit主旨會亂碼。

Roundcube內定即是UTF-8編碼,大部份的email轉碼都很正常,但是Big5、GB2312等8bit 標頭則會變成亂碼;我在求助無門的情況下只好自力救濟。

Update: Roundcube會對其他編碼處理,但是限於在header有指定Content-Type, charset才行。

星期一, 8月 08, 2011

完美簡繁轉換

因為之前一直用ConvertZ轉影片字幕檔,但是我在家用Mac居多,加上聽完HITCON 2011後在公司也不太想用Windows了(大誤),而且ConvertZ必須自己指定檔案的編碼,對於多檔轉換時很麻煩(找的字幕檔編碼不一定是某種編碼),希望能有更方便的解決方案。原本想要用開放中文轉換opencc,但是在WIndows編譯上遇到困難,後來又看到convert2utf8,本以為它會自動轉換編碼,用了才發現不會,再找了Universal Encoding Detector,自己加上自動編碼偵測,並在轉換檔加上BOM

星期四, 7月 28, 2011

初探 XenServer 免費版

主管指示要開始朝虛擬化前進,原本是想採用 Hyper-V Server ,安裝及設定參考蘇老的文章,用起來也很不錯。沒想到Hyper-V Server 2008 R2 SP1對Linux的相容性比以前還糟,我愛用的TrueImage開機光碟完全不能用。

接下來只好準備換跑道,看到保哥在噗浪上寫 KVM 效能遠勝過 Hyper-V Server ,於是在我的Ubuntu桌機設定 KVM,跑起來感覺並沒有很快。接著我再換 Xen 核心,跑起來其實和 KVM差不多。其實在這裏我犯了嚴重的錯誤,企業級虛擬化與個人用虛擬化不同,應該要使用"乾淨"的測試環境才準。關於Xen的安裝及原理可以參考鳥哥的利用 Xen 設計虛擬機器。至於市場龍頭VMWare 免費Server ESXi很挑硬體,我手上沒有SCSI硬碟,所以就算了。(而且聽說它的管理工具要錢,這...)

其實KVMXen很類似,都是建立在修改Linux Kernel之上(但是KVM算是Linux Kernel內建功能),也都利用QEMU做為虛擬機執行平台,較新的Linux Kernel都內建支援XenKVM。現在Virt管理工具也做的不錯,但我暫時選擇XenServer。原因為何?Xen已經非常成熟,在多篇效能比較裏,它的CPU使用率都很低,I/O效能也好,加上商用軟體整合性好;我需要有良好UI管理工具,並且要易於安裝,用KVM有不少東西得手動來。

XenServer還有個特點,就是免費版也具有動態搬移VM的功能(Live Motion,在Hyper-V叫Live Migration,在 Hyper-V Server 2008 R2之後具備),可以參考這篇

安裝主機很簡單,步驟可以參考,硬體需求就是CPU要有支援Intel VT或AMD-V,詳情看XenServer 安裝指南。裝好後,找台支援.Net framework 2.0的Windows安裝管理介面Xen Center,隨附在安裝ISO檔裏。

接下來當我在XenServer上安裝VM時,第一個想法就是:「真是麻煩呀!」。它不像Hyper-V Server能夠直接丟ISO檔過去,而是必須讓它mount遠端的網路磁碟。所以我後來幾乎都是利用TrueImage將線上的Server備份,直接在上面還原。

不過裝好以後,效能表現確實令人讚賞呀!請看在下的使用狀況:

註:這台主機是一台商用PC,接了1TB硬碟,16GB RAM,CPU是Core i5-2500

XenServer的guest支援工具(XenServer  Tools)支援Windows及Linux kernel 2.6以上,所以可以看到那台Linux VM(WWW)顯示未安裝支援工具,看不到記憶體使用量,但仍然使用非常低的CPU,若是WIndows主機沒安裝支援工具則會使用較多記憶體。

當然我初期會虛擬化一定是選擇使用率較低的Server,但XenServer的效能實在太令我驚訝!某一台原本是Q6600 4GB RAM的Windows 2003 Server,虛擬化之後居然比實機更快!我不清楚是因為I/O變快還是Xen造成,但是快到使用者點選網頁都有感覺反應變快,不虛擬化的藉口完全消失。

說完優點得說一下缺點:Xen Center免費版能夠調整的很有限,硬體的規格也完全不能改(例如:SATA、IDE、SCSI、模擬網卡類型等等);也不能用Virt連上XenServer,要自己編譯libvirt裝上XenServer也幾乎不可能(不知道為何,但是搜尋到的結果是如此)。也就是說,對我這種技術控來說,這樣的黑箱作業用起來有點毛毛的..

要建立不停機備援得建立Server Pool,XenServer要求兩台完全一樣規格的硬體,因此請期待下集...

參考資料:
  1. XenServer管理指南
  2. Citrix XenServer x86虛擬化解決方案
  3. 詳解Citrix思傑XenServer虛擬化
  4. 射手科技的 XenServer/XenDesktop 虛擬化應用方案
  5. 射手的 XenServer 虛擬化瑣事
  6. Hyper-V vs. ESXi vs. XenServer (有點舊)
  7. KVM(Kernel-based Virtual Machine) + KQEMU
  8. Xen Server Book

星期一, 7月 25, 2011

製作FreeBSD可開機USB

雖然用UNetbootin 在各種平台都可利用開機iso/Disk image做出可開機USB,但因為它獨特的boot loader,FreeBSD或某些Linux Distribution會有問題。

以往FreeBSD的安裝媒體只有出ISO image,現在已經有memstick.img可選擇,例如:FreeBSD-8.2-RELEASE-i386-memstick.img。以前的方法(thinker)真的太麻煩了 :(

星期六, 7月 23, 2011

FreeBSD在fstab使用標籤 Label 名稱 mount 磁碟

因為敝公司的Mail Server是從FreeBSD 4.x一路升級至今,昨天我在聽HITCON 2011時居然主機故障,因為一直被call,聽完連忙趕回公司,非常地不爽。

Update:
更新到FreeBSD 9.0之後,新的安裝程式設定Label是用GPT分割(GUID Partition Table)的Label,所以設定好後,會出現 /dev/gpt/root 之類的Label,同樣可以用 glabel status查看。若已改用GPT分割,無法使用 /dev/ufs 或傳統BSD Label的方式, 只能用 GPTLlabel。

星期一, 7月 18, 2011

舊Linux上編譯Xen guest kernel

由於最近希望把一台舊Linux伺服器虛擬化,原本嘗試用Hyper-V Server,無奈對於Linux相容性太差,連新版的TrueImage boot cd都不能用,於是我改用XenServer。因為我希望有好用的管理工具,所以我是直接下載Citrix的XenServer免費版,需要每年手動更新一次授權。

在虛擬的Windows XP安裝Xen Tools後發現記憶體使用量變小,IO也很快。所以再把Linux丟上去後,發現不能在Kernel 2.4跑Xen Tools。於是我先升級Linux核心 2.4->2.6,確定沒問題後,再照著XenSource的官方文件。注意若原本是kernel 2.4,千萬要先升級為module-init-tools,否則重開機就掛了。

要編譯支援Xen的kernel,首先當然是取得Linux kernel source,早期的Linux需要另外下載xen patch,現在新的kernel都內建,所以我下載2.6.39.3,是目前最新的Stable。接下來要編譯:
$su -
#cd /usr/src
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.3.tar.bz2
#tar xjf linux-2.6.39.3.tar.bz2
#make menuconfig
  1. 根據官方文件,在32bit kernel必須啟用PAE(Processor type and features -> High Memory Support -> PAE (Physical Address Extension) Support->64GB),並且要設定CONFIG_HIGHPTE=n(Processor type and features -> High Resolution Timer Support->不要勾),否則會crash(應該就是kernel panic吧?),若編成64bit kernl就不用管這兩點。
  2. 再來要注意,一定要啟用ACPI support,否則就看不到Dom0。 Power Management and ACPI options ->  ACPI Support。
  3. 接著是重點: Processor type and features -> Paravirtualized guest support  -> Xen guest support
  4. 最後在 Device Drivers ->  Xen driver support 底下,我是有關的全選啦 XD
最後是
#make bzImage modules modules_install install
沒問題的話,重開機就OK了。
參考資料:外行人編譯GCC外行人升級Linux核心 2.4->2.6

星期二, 7月 12, 2011

白話【社交工程】

前幾天知道居然有資訊部門主管不知道何謂社交工程,讓在下敝人小弟我十分驚訝。我這個非本科系的人20年前就知道的名詞居然有資訊人不懂,所以在這裏用白話介紹一下。

先看一下維基百科的解釋好了:Social Engineering
什麼?不懂英文?沒關係,來看看 教育部的解釋ZDNet的解釋趨勢科技的解釋資安網站的說法

以上都不懂的也沒關係,用鳥毅的說法就是:假裝是你的朋友,其實是要騙你。不管是利用MSN、Email或是某個安全性更新;甚至於詐騙集團假裝檢察官,都叫做社交工程。看到這裏應該懂了吧?看一下這部電影:
神鬼交鋒
神鬼交鋒(Catch Me If You Can)就是社交工程的極致,也就是台灣常見的詐騙。
得到一個MSN帳號密碼,再騙此帳號的朋友去買點數卡,大家不是很熟嗎?

幾位高手曾經留言說好的制度比資安產品更有效,在下完全同意。假設的情境:某公司的工程師想知道他暗戀的同事是否有交往對象,於是就和同事說:『我幫妳寫了支程式,但需要遠端更新,所以開個分享給我』。接著就把自己加入同事電腦的本機管理員,再把網域管理員(domain administrator)的權限移除,他自己就透過分享看到同事的email,完全不用寫木馬程式。

要避免被社交工程欺騙,只能自己多加留意,用台語說就是【龜毛】一點,凡事多用心,不要人云亦云。還有一點,看到別人轉寄的email千萬別亂寄,搞不好裏頭有新型的木馬/後門程式,又淪為社交工程的幫兇。

星期二, 7月 05, 2011

Excel 2003 開啟網路磁碟上的檔案很慢

同事說Excel 2003 開啟網路磁碟上的檔案很慢,我怎麼都搜不到,幸好蘇老提供了這個討論串,至少有點頭緒。應該是這支安全性更新造成的:
Microsoft Excel 2003 安全性更新 (KB2541025)
Date last published: 2011/6/14
在 Microsoft Office Excel 2003 中開啟遭到惡意竄改的檔案時,
可能會出現允許執行任意程式碼的安全性弱點。此更新可以解決這項弱點。
我處理了5台電腦,包括我自己的有2台有效,3台仍舊很慢,
目前只能移除重裝Orz...

更新:
根據匿名朋友的回報,微軟知道問題了,後來新出的Patch仍然造成同一問題。請看Excel 2003 Office File Validation (OFV) opens workbooks slower across the network ,安裝 MicrosoftFixit50741.msi 或是直接修機碼。
將以下內容存成機碼檔,e.g. fixit.reg ,點兩下匯入即可。
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\FileValidation]
"EnableOnLoad"=dword:00000000
或是 【開始】->【執行】
REG add "HKCU\Software\Microsoft\Office\11.0\Excel\Security\FileValidation" /v EnableOnLoad /t REG_DWORD /d 0 /f

Lion 10.7 GM 使用心得

昨天把Mac OSX 10.7 Lion Gold Master裝起來(也有人叫Golden Master,不過以往是用Gold Master沒錯),整體流暢度有比較順,只是稍有改變。
先說不習慣(不喜歡)的部份:
  1. Expose用得好好的,沒事改名叫Mission Control也沒有比較酷。
  2. 已經把開機光碟做出來,還是得要install到硬碟再跑一次安裝程式是怎樣?為了符合官方說法的要先安裝Snow Leopard? 還是因為要學Windows 7?(大誤)
  3. 鍵盤背光關不掉<- 這應該是Bug
  4. 把afp通訊協定的 DHCAST128 關掉了,造成許多市售NAS都不能用,參考:OS X LION connection error with AFP and workaround
    雖然Synology上星期有新版firmware釋出,但仍然不能當TimeMachine使用。
  5. 預設的滑鼠滾動方向與以往相反,要到 系統偏好設定->滑鼠 裏去修改:
再說它的優點:
  1. 最明顯的部份就是速度快了不少,之前不知為何,每次登入都要等一會兒才有反應,現在時間快了許多;開啟程式也比較快。
  2. 按鈕快框比較方:我覺得比較好看,也比較好按。
  3. Launchpad找程式時真的比較方便,有些很少用的程式,忘了名字要找時真的很方便。
  4. 跳出式的視窗:有些人討厭,我還滿喜歡的 :D

星期二, 6月 28, 2011

Open Source的抓畫面軟體GreenShot

雖然說Windows 7內建 剪取工具,但是功能仍然算陽春,以往在Windows XP我都一直用 MWSnap ,現在有更好的選擇:Greenshot

剪取工具 類似,內建一個簡單的圖片編輯軟體

還有OCR功能,不過應該僅限英文,我還沒試。

如果是下載安裝檔,別忘了 繁中語系,我是到 這裏 找NO Installer的zip壓縮檔,加上繁中語系就成為綠色軟體。

星期三, 6月 15, 2011

Postfix mailbox quota check

因為敝公司近幾年來新人都用WebMail,又因為OpenWebMail只能用mailbox,因此偶爾會發生用戶mailbox爆掉的情形。
搜尋後並沒找到Postfix內建有警告功能,網路上只有Postfix Checking Maildir Disk Usage,是駱駝文寫的,我不會改 =.=

最後決定自己動手做,雖然不會大蟒蛇還是勉強寫出個小程式,用Crontab排程每天檢查一次,再自動通知用戶。

#!/usr/bin/env python
#coding: utf-8
import os
import smtplib
from email.mime.text import MIMEText

def sendWarnMail(account, name):
    fromaddr="Email系統 <postmaster@example.com.tw>";
    toaddrs=name +" "+ "<"+account+"@example.com.tw>";
    msg =  MIMEText(name +" 您好:\n\t您的email容量即使用完畢, 請將伺服器上的郵件搬移一部份至其他郵件匣,以免無法收信,謝謝。", 'plain','utf-8');
    msg['Subject'] = "Email容量不足通知";
    msg['From'] = fromaddr;
    msg['To'] = toaddrs;
    server = smtplib.SMTP('localhost');
    #server.set_debuglevel(1);
    server.sendmail(fromaddr, toaddrs, msg.as_string());
    server.quit();
    return;
    
def getPostfixMailBoxLimit(config):
    f=open(config,'r');
    limit = 0;
    for line in f:
        line=line.lstrip();
        if line.startswith("mailbox_size_limit"):
            arrs = line.split('=');
            limit = int(arrs[1]);
            break;
    f.close()
    return limit;

#主程式
postfixconfig = "/usr/local/etc/postfix/main.cf";
mailboxdir = "/var/mail";
postfixlimit = getPostfixMailBoxLimit(postfixconfig);
#設定提醒上限減100MB
sizelimit = postfixlimit-100000000;
f = open('/etc/passwd', 'r');
for line in f:
    arrs = line.split(':');
    if not arrs[0].startswith('#'):
        mailbox = mailboxdir+"/"+arrs[0];
        if os.path.exists(mailbox):
            filesize = os.path.getsize(mailbox);
            if(filesize > sizelimit):
                sendWarnMail(arrs[0], arrs[4]);
f.close();

星期二, 6月 14, 2011

神奇的Chkdsk

剛才忽然覺得電腦變很頓,打開工作管理員一看,才發現居然是...

我也只不過是打開一個chkdsk /r檢查隨身硬碟的壞軌,有必要吃到10GB RAM嗎?XD

星期二, 6月 07, 2011

Windows 7 x64 SP1 無法安裝Windows Server 2003分享的印表機 0x0000007e

最近敝公司新裝的Windows 7 x64 SP1都無法安裝Windows Server 2003分享的印表機,出現 0x0000007e的錯誤訊息;原本以為是安全性問題,試了網路上所有的方法都無效。
剛才忽然想到會不會是driver太舊?看了一下HP Universal Printer的版本是2010年10月,也不會很舊呀?再上HP官網發現最新的版本是2011年2月,更新Driver後居然就可以正常安裝了@_@

因為這問題都沒有別人發生過,特此誌之。

Update:同場加映 0x000000bcb 的解決之道
才剛更新HP driver,結果又有同事在別台Windows 7 x64發生 0x000000bcb 錯誤,後來終於找到 這篇,文章內沒寫清楚,也是只會發生在Windows 7 x64身上,在Printer Server上刪除機碼 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\印表機名稱\CopyFiles\BIDI",再重新啟動Print Spooler服務即可。

星期二, 5月 31, 2011

簡單設定GIT http server (for Windows and Unix),Git Http Server for Dummies

在Windows上設定

原本在Windows上因為中文檔名一直有問題,不敢使用Git,看到Git Source Control Provider再試中文檔名仍然不行;後來雨蒼告知有對岸的高手tinyfish對msysgit做patch,並放在Googlecode上utf8-git-on-windows,事情才有轉機。

原本也有考慮Mercurial,Windows上中文檔名雖然也有問題但是有方法修復,未採用的原因是Windows平台沒有Visual Studio provider。而且Xcode己經內建Git整合,為了自己方便當然採用Git才是明智之舉。(個人覺得Google Code採用水銀有點是基於對Python的偏執,
難保爾後不會有Git支援XD
。Update: 2011/07 Google Code支援Git了!)。關於Google的看法,詳見Analysis of Git and Mercurial

首先當然是要安裝 patch過的git和TortoiseGit,接著下載Apache for Windows,我是下載 httpd-2.2.19-win32-x86-openssl-0.9.8r.msi安裝。
使用網路上最常見的這篇教學仍然失敗,加上REMOTE_USER設定還是不行,只要是用到git-http-backend.exe的檔案都出現403 Forbidden,例如HEAD、info\refs等,檔案權限已經設成everyone full access仍然有問題;後來回頭用舊方法WebDAV才搞定。

除了原本需要的alias_module、auth_basic_module、authn_file_module,還要啟用dav_module、dav_fs_module、dav_lock_module。我是沿用原來的http.conf,另外加上 extra/git.conf,在原來的http.conf最後加上
Include conf/extra/git.conf
如果要Include conf/extra/httpd-dav.conf的方式啟用WebDAV要注意httpd-dav.conf裏的DavLockDB必須要寫入權限的檔案,所以預設的目錄通常不是不存在就是無法寫入。還有預設的upload目錄AuthType等等,要看是否有啟用。所以我並沒有Include,而是簡單地加入一行
DavLockDB "C:/TEMP/DavLock.txt"

git.conf的內容如下:
<directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</directory>
ALIAS /git "C:/GitRepository"
<Location /git>
AuthType Basic
Dav on
AuthName "GIT Repository"
AuthUserFile "C:/Apache2.2/權限檔"
Require valid-user
</Location>

在Linux上設定

若是在Ubuntu則是WebDAV與cgi方式都可正常執行。
Ubuntu在 /etc/apache2/sites-available/加上 git.conf ,同樣在預設的
/etc/apache2/sites-enabled 做link
/etc/apache2/sites-enabled$ sudo ln -s /etc/apache2/sites-available/git.conf .
git.conf內容如下:
Alias /git /var/cache/git

<Directory "/var/cache/git">
Allow from all
</Directory>

<LocationMatch "/git">
Dav on
AuthType Basic
AuthName "Git"
AuthUserFile "/etc/apache2/權限檔"
Require valid-user
</LocationMatch>
別忘了 htpasswd -c 權限檔 帳號

Server端
cd C:\GitRepository 或 cd /var/cache/git
git --bare init project.git
cd project.git
git update-server-info

Client端
git config --global user.name "你的名字"
git config --global user.email "你的email"
git config --global color.ui true
git config --global http.sslVerify off
git config --global core.autocrlf false

cd "要放的目錄"
git clone http://你的帳號@你的伺服器/git/project.git/
cd project #Git很聰明,會自己忽略.git
#加上你的程式檔
git add
#我是加上 git add 嬑堃.txt
git commit -m "註解" #我是 git commit "堃嬑" ,此時就看得出patch過版本和Unix版本git同樣方便
#此時只有在local端加入
#接下來要傳回Server
git push -u origin master
#會出現兩次問passwd,這是用WebDAV的缺點,個人覺得還好
#之後要上傳只要打git push

備註:
話雖如此,我在將Subversion的Repository倒入Git Repository時,Windows版發生不明錯誤掛點,但是Unix版(FreeBSD/Linux)都沒事,所以請盡可能使用Unix版架Git Server,若覺得以上都太麻煩或是遇到奇怪的錯誤,就用github或是bitbucket吧!

參考資料: GIT官方網站Git 初學筆記 ihower介紹GIT的幾篇文章

星期二, 5月 24, 2011

msn-pecan無法登入,nexus stream error

由於Blogger太遜,這篇在修復後消失,我找不到原來的內容了,只好憑印象亂寫 Orz

簡單地說,Pidgin內建有msn協定,但是很久沒更新,原作者跳出來自己寫,就我試著用內建的msn協定可以登入,但是沒有大頭貼等新功能,猜想是WLM協定有更新。找了一下發現是Ubuntu內建的msn-pecan/WLM協定比較舊,會造成無法登入,必須要自己去下載最新版安裝,我是裝msn-pecan-0.1.2.tar.bz2,自行編譯如下:

~/> tar xjf msn-pecan-0.1.2.tar.bz2
~/> cd msn-pecan-0.1.2
~/> ./configure --prefix=/usr
~/> make
~/> sudo make install

裝好後重開Pidgin,就可以正常使用WLM登入。

星期三, 5月 18, 2011

Blogger Sucks!

Blogger早在 2008年8月就在系統維護後,造成敝小格亂碼,過了一個月自己修好了

到2011年5月又發生一次,目前從5/11到5/15中間的資料都不見,雖然我不是量產型的部落客,但仍然非常地不爽,有心要靠Blog賺錢的人還是投靠Dark Killer/gslin去用pixnet吧 (angry)

星期一, 4月 25, 2011

Cannot copy %filename%, network name no longer available under NAT / 在NAT複製檔案環境發生無法複製%filename%, 指定的網路名稱無法使用

最近因故把外單位的網路由直接連接VPN專線改成NAT連線,在網路磁碟(網路上的芳鄰) 複製檔案時發生 『無法複製[檔案名稱], 指定的網路名稱無法使用』的錯誤訊息,而且小檔案會過,複製大檔時才當,完全摸不著頭緒。

查了非常久,中文都沒有相同的問題,後來半猜半找,才發現 Cannot copy %filename%, network name no longer available.您不能將多個用戶端連線透過 NAT 裝置You cannot make more than one client connection over a NAT device

根據 Bhupinderk 的回答,造成問題是有第二個人連進來,NAT IP上前一個client的session就斷了。解法就是必須強制使用139 port連線,解法如下:
  1. 打開regedit.exe
  2. 編輯HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters
  3. 增加一個DWORD值,名稱為 SmbDeviceEnabled ,值設為 0
You can establish no more than one direct hosting client connection across a NAT device. If you must have more than one simultaneous SMB session, disable either direct hosting on the Windows 2000 Server or Windows Server 2003 file server, on all clients behind the NAT device, or block TCP port 445 on the NAT device or firewall.

停用伺服器上的445 port:

  1. 啟動 「 登錄編輯程式 」。
  2. 找出並按一下下列登錄機碼:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters
  3. 新增下列登錄值:
    值名稱: SmbDeviceEnabled
  4. 型別: REG_DWORD
    數值資料: 0


預設值為 1 (啟用)

To disable direct hosting on the server:
  1. Start Registry Editor.
  2. Locate and then click the following registry key:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters
  3. Add the following registry value:
    Value Name : SmbDeviceEnabled
  4. Type : REG_DWORD
    Value Data : 0
The default setting is 1 (enabled)

微軟英文版有較多的說明: Note To permit multiple connections over the NAT device, Microsoft recommends that you use SMB2 or Web Distributed Authoring and Versioning (WebDAV). With these technologies, you can perform standard file operations on a remote share. SMB2 is a new protocol that was introduced in Windows Vista. Only systems running Windows Vista and later can use the SMB2 protocol.

看到我標紅字的部份了沒?直接block 445 port似乎是最快的解決方法呀,中文版又沒有寫 Orz

整個事件可以說成:NT 4.0的SMB用戶端可以在NAT環境正常運作,只需要139 port;到Win2K加入445 port提高安全性,卻不能在NAT環境下正常運作;到了Vista/2008之後再引進SMB2才能在NAT環境下正常運作。

Update: 只在Firewall擋445 port仍然不行,Server上仍然要設定SmbDeviceEnabled

Reference: 您不能將多個用戶端連線透過 NAT 裝置
You cannot make more than one client connection over a NAT device
What’s Port 445 in W2K/XP/2003? – SMB Over TCP

星期四, 4月 21, 2011

程式更新與房屋漏水

敝公司有個買來的系統,非常的不好用,又沒有與MIS系統完全整合,要命的是大量使用ActiveX與舊時代的DHTML,時常出現問題。

主管一直認為能不要換就別換,其實這問題就好像房屋漏水。怎麼說呢?
真實案例:某部門主管買了間國宅,位於頂樓,要搬進去才發現屋頂漏水,平時也不會漏,但是只要下大雨就漏水,所以說嚴重也不能說太嚴重,說不嚴重也蠻嚴重的。

屋頂解決方法很簡單:如果能抓漏修好,就可以天下太平;若一直修不好,也只能把整屋頂的防水打掉重做。

程式若實在太複雜或架構太爛沒法子重構或修復時,重寫是唯一的解決之道。

星期六, 3月 26, 2011

偽臺灣泥水工DIY除壁癌

因為住在天龍國外圍的老舊公寓(猜想可能有40年),雖然十年前請人重漆過,現在有幾面牆出現輕微的壁癌。現在泥水師父人工太貴,所以決定自己DIY除壁癌,當個臨時臺灣泥水工。

(圖後補)

壁癌發生原因各位可以自行上網找,簡單地說就是水氣(水份)跑到水泥牆裏,因為水泥是鹼性,和空氣中的酸性成份形成碳酸鹽/硫酸鹽結晶。會出現壁癌表示牆壁有漏水或是太潮濕,所以要除壁癌必須先判斷是什麼原因造成,若是漏水則要先修好再施工才有用,潮溼則要 靠通風或除溼。順便告訴各位一個觀念:一般的泥水工在施工為了施工度,調配的水泥砂漿都太稀。水泥砂漿有一定的水灰比,水太多時坍度低不但強度不足,牆面容易有氣孔及裂縫,除非自己當監工,不然隔間牆很難避免出現裂縫(我這種窮人,家裏完全沒有裝潢)。當兵時連上施工時我有告訴排長混凝土太稀不信我,後來氣孔太多被指揮官罵,連上又得去補水泥砂漿。(原來我是從當兵黑到現在)

瞭解壁癌發生的原因後,就可以對症下藥,修好後開始施工復原牆面。需要的工具有:刮刀、封閉液、補土、油漆刷子、底漆、水泥漆(建議買乳膠漆比較不容易長壁癌)、砂紙、口罩、護目鏡。

先用刮刀把壁癌刮乾淨,有些小塊不好刮的部份可以用粗砂紙或鋼刷,此時飛灰很多,請戴上護目鏡和口罩。裸露的牆面若仍有潮溼則不能施工,必須在晴天等48小時以上或牆面完全乾燥。比較快的方法是利用噴燈,若牆裏有電線請勿使用噴燈,別說我沒有提醒。因為我這種宅男沒有噴燈這種重裝備,所以是趁上星期連續5個晴天後才施工。光刮除壁癌就花了一個小時,雖然看起來是乾的,我仍然等第二晚再進行下一步驟。建議戴棉布手套施工,我忘了買棉布手套,刮了兩天後手指都長繭了。

在乾牆面塗上一層封閉液,等待2小時以上全乾後再上第二層,由於我都是趁下班吃完晚餐再動工,所以漆好第二道封閉液都23:00了。

第三個步驟是上底漆,不要上太厚。理論上只要上一道,我比較龜毛上了二層,而且每一層隔一夜。

第四步要用補土將牆面整平,建議不要一次使用太多補土,不但浪費而且不平,也會比較不容易乾。補土使用的量超出我預期,而且因為壁癌嚴重處無法一次整平,等待乾燥的時間我又把其他房間的裂縫用補土整平,效果非常好。補土乾燥的時間也超過我預期,所以等到第二天我才能把整個牆面整平,第三天才能上水泥漆。

最後就是要上水泥漆,上漆前用砂紙將補土磨平(若你的技術非常好,可能完全沒需要),再用抹布擦乾淨再能施工。秘訣是漆薄一點,至少要2小時再漆第二道。

完工後現在就有非常漂亮的牆面,可以向朋友炫耀了!

工具成本在3000元以內,但人工以我的時薪200元計算,大概也花3000元;找工人做一天連工帶料我猜應該將近一萬元。材料是在某間著名DIY材料連鎖店買的(網站是jaceju做的那間啦),我覺得砂紙比我想像中貴,漆太大罐了點,踢腳所需的油漆我在住家附近油漆行買最小罐就夠了。

因為施工連續一星期每天都凌晨一點才睡,荷包夠厚的朋友還是找好的泥水師父施工吧!

星期二, 1月 11, 2011

iPhone上的小遊戲:Wing Era: The Golden Flight

Wing Era是鳥毅的朋友開發的一款小遊戲,這次改版大放送回饋本部落格讀者,特別情商作者提供五組Promotion Code,此處輸入Promotion Code教學
意者請留連絡資訊,將不會公開。


已全數送出,下次請早。

星期五, 1月 07, 2011

Windows Live Messenger一直斷線的解決方法

自從升級到Live Messenger 2011後,每隔幾分鐘就斷線一次,最近有同仁反映根本連不上,我用Adium也得透過http才能正常使用,否則狀態都是離線。

因為昨天處理PPTP的NAT設定,忽然想到會不會是NAT上要設定什麼呢?結果發現MSN的通訊用了非常多的port,需要UPnP才能正常執行?

這麼多年來都能正常執行是為什麼?反正結果就是在pfSense開啟UPnP,就可以正常執行Live Messenger。

P.S. 朋友的公司環境有監控MSN也發生無法連線的問題,和MSN的版本有關,但Live Messenger 2011特別容易斷線。

Update: NOD 32從2011/3月中開始HTTP掃毒的功能會讓MSN無法連線,必須將MSN設在排除名單。

參考資料:
MSN Help
打造家用防火牆的需求 by pfSense (六) 小功能大實用篇

星期四, 1月 06, 2011

Backup Exec 11d安裝

又一篇個人紀錄。
  1. Backup Exec 11d用它自己的driver比較不會用問題,沒事別升級到原廠driver。
  2. Backup Exec 11d可以用10d的agent,但會有警告,事件是黃色。
  3. 若Agent無法從Backup Server安裝(說無法判斷32bit或64bit)時,手動安裝Setup.exe只會移除舊版driver,不會真正安裝;必須執行setupaofo.cmd才能正常安裝上。(setupaa.cmd只有安裝agent而沒有advanced open file option)
  4. 裝好Backup Exec服務後若電腦改名會無法執行服務,除非完全移除,因此最好確定電腦名稱再安裝。
同場加映Windows installer錯誤時修復方式:
先 msiexec /unregister 再下載 Windows Installer 安裝,裝完後 msiexec /regserver

星期一, 1月 03, 2011

Linux上的遠端桌面管理: RDPDesk

Update: RDPDesk會常當掉,現在我推薦Remmina

在Mac上我用Cord兩年多,去年看到保哥介紹RDCMan,在Windows上也有解,唯有Linux平台沒找到適合的工具。

今天趁著重灌Ubuntu時,找到RDPDesk這個好東西,可惜沒找到Ubuntu可用的deb套件.
所以我下載 rdpdesk-3.1.tar.gz,再自己build。