歡迎來到小豬圈!
2008-01-21
2008-01-16
InstallShield Error code: -6006
- 這次重灌中安裝驅動程式時遇到的問題,詳細原因並不清楚,只知道跟 Windows Installer 有關。我的情況是在 Windows Installer 設為 Manual 的狀態下,沒有自動啟動,手動打開就好了。
2008-01-12
關於國內大學要求微軟調降權利金相關新聞
- 若沒有表現出一副“沒有也沒關係,用別的也可以”的樣子,反而露出一臉“我就是只要買你的東西,你給我便宜點”的傻樣,怎麼跟人談殺價,這個不是菜市場阿婆都會的道理嗎。(囧)
- 我最後一次使用的微軟 Office 系列的經驗,大概是 OfficeXP 剛推出的版本,之後就開始改用 OpenOffice.org,不過,我覺得相形之下, OpenOffice.org 實在稱不上“好用”。
- 目前我個人主要使用的編輯器是 Notepad++ ,文件格式是 HTML 與文字檔,OpenOffice.org 常用的就僅有試算表,偶而用 Writer 和 Impress 開啟一些(大都是微軟 Office 格式的)文件而已。
- 使用 HTML 格式的好處之一是編輯與瀏覽的環境需求很低,只需要文字編輯器和瀏覽器而已(可說是僅次純文字)。字元編碼在支援 Unicode/UTF8 越來越完善的今日,也逐漸不成問題了。
- 似乎講偏了…
2008-01-10
從登錄檔修改服務啟動的類型
- 以下內容的測試環境是 WindowsXP SP3RC1(在 VirtualPC 2007 所建構的 VM 之中),提到的“服務”指的是 Windows 內建的 service,一種在背景執行的特殊程式。“登錄”指的是 Windows Registry,而“登錄檔”指的是副檔名為 reg 的文件。
- 一般情況下,透過執行 services.msc 這項管理工具來修改服務的啟動類型即可,編輯成登錄檔的形式僅便於重灌或大量套用。更動登錄有其風險,不建議冒然修改。
- 文末附上個人設定僅供參考,若需套用,請務必檢視、修改以符合實際需求,勿直接匯入。用 Notepad 存檔時編碼要選 Unicode (Notepad++ 即 UCS-2 little Endian),並將副檔名設為 reg。
- Start (DWORD) 一值即為設定啟動類型的項目,可用值如下:
- 0: Boot
- 1: System
- 2: Automatic
- 3: Manual
- 4: Disable
- 服務的詳細機碼內容,可執行 regedit.exe ,到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 中查看。
- 依更新進度不同,每個作業系統有的服務項目會有所增減,因為有些服務是在 Service Pack 才加入的。(像 Bluetooth Support Service, Extensible Authentication Protocol Service, Health Key and Certificate Management Service, Network Access Protection Agent, Network Provisioning Service, Wired AutoConfig …等)
- 目前測試結果(測試方法是先將所有服務設為 Manual,再逐項啟動),只有“Plug and Play”與“Remote Procedure Call (RPC)”兩項較有設為自動啟動的必要(否則大部份的服務無法正常的手動啟動)。
- 而在所有服務都停用的情況下,Windows 依然可以正常開機、登入,但不只工作列無法顯示,還有大部份的 MMC 管理頁面也都無法正常運作。此時只能用 Ctrl+Alt+Del 叫出工作管理員來執行程式。前述情況是在 VM 環境內測試的結果,實機測試有些出入(工作列有出現)。
- 有些服務從名稱、說明或依存性,都看不出有什麼大不了的,但實際上卻很重要。像是使用 PPPoE (台灣常見的 ADSL 撥接) 時, Telephony 服務是必要的(還有 Network Connections、Remote Access Connection Manager 兩項),但從說明看來卻像是 VoIP 之類的服務。
- 有些服務如 Print Spooler、Smart Card、UPS … 等,則應依個人設備需設定。
- Windows service - Wikipedia, the free encyclopedia
- Windows Registry - Wikipedia, the free encyclopedia
- CurrentControlSet\Services Subkey Entries Microsoft Help and Support
Windows Registry Editor Version 5.00 #Start (DWORD): 0x0 - Boot; 0x1 - System; 0x2 - Automatic; 0x3 - Manual; 0x4 - Disabled. #@See http://support.microsoft.com/kb/103000/en-us #Alerter [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Alerter] "Start"=dword:00000004 #Application Layer Gateway Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ALG] "Start"=dword:00000004 #Application Management [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AppMgmt] "Start"=dword:00000003 #Automatic Updates [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv] "Start"=dword:00000003 #Background Intelligent Transfer Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS] "Start"=dword:00000003 #Bluetooth Support Service #ClipBook [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClipSrv] "Start"=dword:00000004 #COM+ Event System [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventSystem] "Start"=dword:00000002 #COM+ System Application [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\COMSysApp] "Start"=dword:00000003 #Computer Browser [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser] "Start"=dword:00000004 #Cryptographic Services #@See http://www.binbin.net/messages/qa_win_xp/0037.htm [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CryptSvc] "Start"=dword:00000003 #DCOM Server Process Launcher #Windows Firewall Network Connections service and the COM+ Event System service #@See http://support.microsoft.com/kb/892504/en-us [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DcomLaunch] "Start"=dword:00000003 #DHCP Client [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dhcp] "Start"=dword:00000004 #Distributed Link Tracking Client [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TrkWks] "Start"=dword:00000004 #Distributed Transaction Coordinator [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC] "Start"=dword:00000004 #DNS Client [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache] "Start"=dword:00000002 #Error Reporting Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ERSvc] "Start"=dword:00000004 #Event Log [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog] "Start"=dword:00000002 #Extensible Authentication Protocol Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EapHost] "Start"=dword:00000004 #Fast User Switching Compatibility [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FastUserSwitchingCompatibility] "Start"=dword:00000004 #Health Key and Certificate Management Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hkmsvc] "Start"=dword:00000004 #Help and Support [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\helpsvc] "Start"=dword:00000004 #HID Input Service, Human Interface Device Access [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidServ] "Start"=dword:00000004 #HTTP SSL [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTPFilter] "Start"=dword:00000003 #IMAPI CD-Burning COM Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImapiService] "Start"=dword:00000004 #Indexing Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CiSvc] "Start"=dword:00000004 #IPSEC Services [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent] "Start"=dword:00000004 #Logical Disk Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmserver] "Start"=dword:00000003 #Logical Disk Manager Administrative Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmadmin] "Start"=dword:00000003 #Messenger [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Messenger] "Start"=dword:00000004 #MS Software Shadow Copy Provider [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SwPrv] "Start"=dword:00000004 #Net Logon [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon] "Start"=dword:00000004 #NetMeeting Remote Desktop Sharing [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mnmsrvc] "Start"=dword:00000004 #Network Access Protection Agent [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\napagent] "Start"=dword:00000004 #Network Connections [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netman] "Start"=dword:00000002 #Network DDE [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetDDE] "Start"=dword:00000004 #Network DDE DSDM [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetDDEdsdm] "Start"=dword:00000004 #Network Location Awareness (NLA) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Nla] "Start"=dword:00000004 #Network Provisioning Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\xmlprov] "Start"=dword:00000004 #NT LM Security Support Provider [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtLmSsp] "Start"=dword:00000004 #Performance Logs and Alerts [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysmonLog] "Start"=dword:00000004 #Plug and Play [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PlugPlay] "Start"=dword:00000002 #Portable Media Serial Number Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WmdmPmSN] "Start"=dword:00000004 #Print Spooler [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler] "Start"=dword:00000003 #Protected Storage [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ProtectedStorage] "Start"=dword:00000004 #QoS RSVP [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RSVP] "Start"=dword:00000004 #Remote Access Auto Connection Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasAuto] "Start"=dword:00000004 #Remote Access Connection Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan] "Start"=dword:00000003 #Remote Desktop Help Session Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RDSessMgr] "Start"=dword:00000004 #Remote Procedure Call (RPC) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs] "Start"=dword:00000002 #Remote Procedure Call (RPC) Locator [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcLocator] "Start"=dword:00000004 #Remote Registry [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteRegistry] "Start"=dword:00000004 #Removable Storage [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtmsSvc] "Start"=dword:00000003 #Routing and Remote Access [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess] "Start"=dword:00000004 #Secondary Logon [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\seclogon] "Start"=dword:00000004 #Security Accounts Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SamSs] "Start"=dword:00000003 #Security Center [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wscsvc] "Start"=dword:00000004 #Server [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver] "Start"=dword:00000004 #Shell Hardware Detection [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ShellHWDetection] "Start"=dword:00000004 #Smart Card [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr] "Start"=dword:00000004 #SSDP Discovery Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SSDPSRV] "Start"=dword:00000004 #System Event Notification [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SENS] "Start"=dword:00000004 #System Restore Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\srservice] "Start"=dword:00000004 #Task Scheduler [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule] "Start"=dword:00000004 #TCP/IP NetBIOS Helper [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LmHosts] "Start"=dword:00000004 #Telephony [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TapiSrv] "Start"=dword:00000003 #Telnet [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TlntSvr] "Start"=dword:00000004 #Terminal Services [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService] "Start"=dword:00000004 #Themes [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Themes] "Start"=dword:00000004 #Uninterruptible Power Supply [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UPS] "Start"=dword:00000004 #Universal Plug and Play Device Host [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\upnphost] "Start"=dword:00000004 #Volume Shadow Copy [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS] "Start"=dword:00000004 #Web Client [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient] "Start"=dword:00000004 #Windows Audio [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AudioSrv] "Start"=dword:00000002 #Windows Firewall/Internet Connection Sharing (ICS) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess] "Start"=dword:00000004 #Windows Image Acquisition (WIA) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stisvc] "Start"=dword:00000004 #Windows Installer [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSIServer] "Start"=dword:00000003 #Windows Management Instrumentation [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\winmgmt] "Start"=dword:00000003 #Windows Management Instrumentation Driver Extensions [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wmi] "Start"=dword:00000004 #Wired AutoConfig [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dot3svc] "Start"=dword:00000004 #Windows Time [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time] "Start"=dword:00000004 #Windows User Mode Driver Framework [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UMWdf] "Start"=dword:00000004 #Wireless Zero Configuration [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WZCSVC] "Start"=dword:00000004 #WMI Performance Adapter [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WmiApSrv] "Start"=dword:00000004 #Workstation [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation] "Start"=dword:00000004
2008-01-07
原來 UNIX-like 的目錄結構有 FHS 這項標準啊
- 從以前剛接觸 linux 開始,就一直對目錄結構有很多的疑問,今天無意間找到 Filesystem Hierarchy Standard 這份文件著實解決了我不少疑惑。
- “user » usr”在那年代,省這一個字真的這麼開心嗎!?
2008-01-05
2008-01-02
關於 Virtual PC 2007
- 2008-01-15 更新:
- Virtual PC 2007 有預先配置硬碟空間的選項,不過不在“New Virtual Machine Wizard”裡,而是要在“Virtual Disk Wizard”中選擇“Fixed size”。
- 使用預先配置的硬碟空間後,明顯有加快作業系統的安裝速度,大約是從 30 進步到 25 分鐘,不過還是比 VMware Server 稍慢(前述兩者的時間差並沒有精確比較,僅記錄、不值參考)。
- 嘗試安裝 Linux 失敗 (試過 CentOS-5.1-i386-bin-DVD.iso 與 ubuntu-7.10-desktop-i386.iso 的 live-cd 模式),不過這也是在預料之中的事。一個意外的事是安裝 Linux 失敗後的 Virtual Disk ,拿去安裝別的作業系統會當機?
- 試用的環境與安裝的作業系統都是 Windows XP SP2 up to date。
- 半年前曾試用過 VMware Server 1.0.2-39867,比起來,Virtual PC 2007 安裝作業系統所需時間較久。
這應該與沒有預先配製硬碟空間有關(Virtual PC 沒有這項設定)。 - 在安裝 Guest OS 的過程中沒有提示讓滑鼠游標脫離 VM 的方法(按 Right Alt 鍵),而VMware Server 會在狀態列提示。
- 內建分享資料夾的功能,設定相當簡單。
- 切換全螢幕模式時會同時切換解析度,而且反應速度相當快。
- 在 Guest OS 運行時更改 VM 設定,會暫停所有 Guest OS (即使只更動其中之一)。
- 可以更動 VM 硬體設備與選項太少,像是最多只能有三個硬碟、一台光碟機和一台軟碟機,也不能新增清單上沒有的設備。
- Microsoft Virtual PC 2007官方網站,下載頁面 在此
2007-12-30
關於 php_curl (二)
- 以下的 $ch 指的是 php curl_init() 傳回的 resource(cURL handle) ,同等於 libcurl 的 easy-handle,$mh 以此類推。
- $ch 在加入 $mh 之後就不能重覆使用(意指僅用 curl_setopt() 重設 URL)了,得關掉後重新初始化再來。
- $ch 在加入 $mh 之後 curl_errno() 會失效(總是傳回 int(0),原因不明),而 curl_error() 則是有些錯誤抓不到(已知 CURLE_COULDNT_RESOLVE_HOST(6) 不行)。
- 承上, 改用 curl_multi_info_read() 替代。傳回值如下:
<?php $curlmsg = curl_multi_info_read($mh); var_dump( $curlmsg ); // 當沒有訊息時傳回 boolean(false) // 反之則傳回 array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(9) of type (curl) } ?> - $curlmsg["msg"] 目前只有定義 CURLMSG_DONE(1) 一值,暫時可以不用理它。
- $curlmsg["result"] 值為 CURLE_* 之一。
- $curlmsg["handle"] 訊息來源的 $ch。
- curl_multi_info_read() 較為明確的呼叫時機,是當執行 curl_multi_exec($mh, $rh) 之後, $rh 變動(減少)的時候。
- curl_multi_select() 並非必要的,呼叫的主要目地是為了先檢查開啟的 sockets 有無資料,再做對應的動作,以減少佔用的 CPU 資源。以下為 Unix Socket FAQ 摘錄:
2.9. What are the pros/cons of select(), non-blocking I/O and SIGIO? Using non-blocking I/O means that you have to poll sockets to see if there is data to be read from them. Polling should usually be avoided since it uses more CPU time than other techniques. Using SIGIO allows your application to do what it does and have the operating system tell it (with a signal) that there is data waiting for it on a socket. The only drawback to this soltion is that it can be confusing, and if you are dealing with multiple sockets you will have to do a select() anyway to find out which one(s) is ready to be read. Using select() is great if your application has to accept data from more than one socket at a time since it will block until any one of a number of sockets is ready with data. One other advantage to select() is that you can set a time-out value after which control will be returned to you whether any of the sockets have data for you or not.
- [comp.unix.programmer] Unix-socket-faq for network programming
2007-12-27
廣告插播? - HiNet 線上通知服務同意書
-
- 最近撥接上 HiNet 的連線,會遇到開啟的網頁被重導到“HiNet 通知服務同意書”一頁,一開始還以為是電腦中毒了咧。
- 這感覺就像被第四台插播廣告似的,ISP 做這種難到就沒有違法嗎?
- PCDVD數位科技討論區 - HiNet線上通知服務同意書 ?
2007-12-26
2007-12-25
關於 php_curl
- 最近開發 Stylet Reader 時,為了要抓取 feed 用上了 php_curl,但文件實在有夠少的。雖然 libcurl 官網有一份 C API 的文件,但命名有些出入,所以我自製了一份對照表(見文末,僅供參考)。
- 從原始碼看來 curl_multi_select() 僅是代為呼叫 curl_multi_fdset() 與 select() ,後者可參考socket_select()。
- 依照文字說明, curl_multi_info_read() 的第二個參數($msgs_in_queue)應該是 passing by reference 吧!?怎麼會是 passing by value 呢?真詭異。
- 承上,雖然可以手動傳址 curl_multi_info_read( $mh, &$msgs_in_queue),但得打開 allow_call_time_pass_reference = On (不建議)。
- select Function (Windows) MSDN。
| php_curl | libcurl |
|---|---|
| curl_close | curl_easy_cleanup |
| curl_copy_handle | curl_easy_duphandle |
| curl_errno | |
| curl_error | curl_easy_strerror |
| curl_exec | curl_easy_perform |
| curl_getinfo | curl_easy_getinfo |
| curl_init | curl_easy_init |
| curl_multi_add_handle | curl_multi_add_handle |
| curl_multi_close | curl_multi_cleanup |
| curl_multi_exec | curl_multi_perform |
| curl_multi_getcontent | |
| curl_multi_info_read | curl_multi_info_read |
| curl_multi_init | curl_multi_init |
| curl_multi_remove_handle | curl_multi_remove_handle |
| curl_multi_select | curl_multi_fdset + select |
| curl_setopt_array | |
| curl_setopt | curl_easy_setopt |
| curl_version | curl_version |
2007-12-21
關於 meeya
- 在 XDite 那看到關於 meeya 的“JS問題”,才知道有 meeya 這站(還在封測)。
- 抄襲 js 和 css 要被發現還真不容易咧(故意的?),我覺得最扯的是:至少關鍵字(facebook)要取代掉啊(囧)。
- 趕時間也不是這樣子趕的啊,出了這事除了砍掉重練,還能怎麼著?如果真的砍掉重練,那原本省下來的時間跟死掉的腦細胞,不就煙消雲散了嗎?
- 官方回應文末呼的那口號,Go 那幾家 N*U(國立開頭、大學結尾)學校是指他們的目標核心客戶嗎?很難理解咧。
- Blog.XDite.net » 網站目標相等,所以 JS 也相等?
- Blog.XDite.net » 不只是 JS 抄襲的問題
- meeya | 校園 社群 人脈
- meeya開發日記: 測試版後第二天,小米想跟大家說些心裡的話!
- Conscious Choices: meeya 在 JS 問題上,到底做錯了什麼?
監獄兔 ウサビッチ|USAVICH.TV
- 超好笑!尤其是老大往生的時候,一整個是笑到停不下來。
- ウサビッチ|USAVICH.TV 官方網站
- 爆笑の監獄兔 (ウサビッチ) @ Shih-Hsien's BLOG
關於 PHP Constants (常數)
- 關於 PHP 的常數:
- 在宣告時其值必需為已知、固定的值。
- 常數名稱在“慣例”上都是大寫,並且字詞間以底線分開。如:
define('FOO_BAR', 'something'); - 宣告該常數以後,在執行期間其值不能被改變。
- 不管在哪宣告,全域都能存取。
- 使用常數的目的之一是要決解“魔術數字”的問題,即程式碼中沒有註解或命名的數字,容易造成程式碼不易維護。
- 使用常數時,效能不該是考量的要素之一,因為在 PHP 使用常數“並沒有”比用變數快!(這倒是出乎我的預料)剛試了一下,用常數反而慢一點點(差距很小,不曉得是不是我測試方式的關係)。
- 以下為我測試的程式碼,註解的地方為可選的比較方式:
<pre> <?php define('VAR1' , 'a long long long long long long long long long long long long long text'); define('VAR2' , 'a long long long long long long long long long long long long long text'); $var1 = 'a long long long long long long long long long long long long long text'; $var2 = 'a long long long long long long long long long long long long long text'; $start = 0; $end = 0; for($i =0; $i < 20; $i++){ $tmp = null; $start = microtime(true); for($j =0; $j < 5000; $j++){ $tmp .= $var1; //$tmp = "Something here" . $var1; //$tmp = "Something here{$var1} Nothing here{$var2}"; //$tmp = "Something here{$GLOBALS['var1']} Nothing here{$GLOBALS['var2']}"; } $end = microtime(true); echo 'V: ' . ($end - $start); echo "\t"; $tmp = null; $start = microtime(true); for($j =0; $j < 5000; $j++){ $tmp .= VAR1; //$tmp = "Something here" . VAR1; //$tmp = 'Something here' . VAR1 . ' Nothing here' . VAR2 ; } $end = microtime(true); echo 'C: ' . ($end - $start); echo "\n"; } ?> </pre> - 自行定義的常數值,在宣告時必需為固定的值,如:
但一個實用的例外(來自 wordpress 的 wp-config-sample.php),是用 magic constants 來取得路徑:define('TEST_TXT', 'some string here');define('ABSPATH', dirname(__FILE__)); - PHP: Constants - Manual
- Magic number (programming) - Wikipedia, the free encyclopedia
2007-12-20
Yahoo UI 是好物
- 真的是易學易用,不過速度似乎有點慢…。
- 事件綁定時要去掉“on”(不知是否我眼挫,這件事我在文件上沒找到?),如:
window.onload = doSomething; // 上述改用 YUI 如下 YAHOO.util.Event.addListener(window, 'load', doSomething);
- YAHOO.util.Event.addListener 會自動附加(而不是覆蓋)綁定,以前要自已做到這功能的話得如下:
function addListener(newListener) { var oldListener = window.onload; if (typeof window.onload != 'function') { window.onload = newListener; } else { window.onload = function() { oldListener(); newListener(); } } } - 範例不錯,但文件不夠完備。像 API Doc 的部份,如果能每個 Method 附上簡短範例會更好(像 PHP Manual 那樣)。
2007-12-17
安裝 VMware 與 CentOS
- 就為了 PHP: flush - Manual 這一句:
Several servers, especially on Win32, will still buffer the output from your script until it terminates before transmitting the results to the browser.
- 看了鳥哥的 Linux 私房菜後決定安裝 CentOS,目前版本是最近才更新的 CentOS 5.1。
- 初次用文字模式,安裝過程相當順利。第一個遇到的問題是 shutdown 與 Run-level (一裝完就想關機了… 囧)。輸入
shutdown now的話只會切換到 Run-level 1,要關機的話是要輸入shutdown -h now才切換到 Run-level 0 ,意即關機。 - Linux Run-level 的 7 種模式
- 0: 關機
- 1: 單一使用者模式
- 2: 單一使用者模式附帶網路功能
- 3: 啟動於文字模式下的多使用者模式
- 4: 未定義
- 5: 啟動於 X Windows 模式下的多使用者模式
- 6: 重開機
- BTW,我覺得 Linux 令人難已接近的原因之一就是那堆難以聯想的縮寫(指令、檔名、目錄名都是)…。
- 鳥哥的 Linux 私房菜 -- 伺服器架設篇目錄
- www.centos.org - The Community ENTerprise Operating System
- Runlevel - Wikipedia, the free encyclopedia
2007-12-15
(X)HTML content-type 的選擇
- 這裡說的 Content-type 和 Media type 基本上是一樣的東西,源自於MIME type。其常見的內容項目有:text/html 、 image/gif 、 application/octet-stream … 等。
- 在 HTTP 協定中會送出 Content-Type 的 header 來指明接下來要傳送的資料類型。如:
Content-Type: text/html
- 在 XHTML Media Types - Summary 該文總結中指出: HTML 應該使用 text/html , 而 XHTML 應該使用 application/xhtml+xml,但在考量與 HTML 相容的情況下也可以使用 text/html 。
- IANA | MIME Media Types
2007-12-14
2007-12-13
MySQL Index 長度限制為 1000 “bytes”
- 由於 MySQL Index 長度限制為 1000 bytes,這裡指的是二進位的資料,而字串類型的欄位需考量到字元集的設定,像在 utf8 欄位時,每個字元索引需要 3 bytes,所以實際上索引長度最長為 333。
CREATE INDEX index_name ON table_name (col_name(333) );- 而超過長度時的錯誤訊息如:
1071: Specified key was too long; max key length is 1000 bytes - 順帶一提的是,MySQL 5.0.3 以後的版本,VARCHAR、VARBINARY 最大長度改為 65,532。
- MySQL AB :: MySQL 5.1 Reference Manual :: 11.1.7 CREATE INDEX Syntax
- MySQL AB :: MySQL 5.1 Reference Manual :: 9.5 Data Type Storage Requirements
2007-12-12
2007-12-10
2007-12-09
初試 Google Code - Project Hosting 提供 svn 服務
- 聽說國內工程師沒有使用版本控制工具的習慣。個人認為,主因應該是版本控制工具的入門門檻太高了,跟複製一個目錄比起來的話(囧)。
- 用 Subversion 跟 Google Code 作版本控制 (一) at ericsk's blog
- 用 Subversion 跟 Google Code 作版本控制 (二) at ericsk's blog
- 石頭閒語:在 GoogleCode 建立軟體專案的第一步 - 樂多日誌
- 以下為步驟簡述:
- 首先到 Google Code » Project Hosting » 建立新的專案。目前在 Google Code 建立專案上的限制:一個帳號只能建立10個專案,還有就是一個專案只能用到100MB。
- 因為要做為域名(如:
http://your-project-name.googlecode.com/svn/),所以連帶著對專案名稱限制較多(小寫、不能有空白…等)。 - 可選擇的授權條款如下:
- Apache 2.0
- Artistic/GPLv2
- GPLv2
- GPLv3
- LGPL
- MIT
- MPL1.1
- New BSD
- 授權條款的選擇可參考 OSSF::自由軟體鑄造場 提供的 授權精靈 V3.2。
- 下載 Subversion 的 Clients and plugins,我用的是TortoiseSVN。
- 在本機建立新的目錄後先checkout一次(按右鍵選 SVN Checkout...),會取回 .svn 目錄,不用動它。
- Repository(URL):
https://your-project-name.googlecode.com/svn/trunk/ - 帳號是 Gmail,而密碼是由系統產生,在 Google Code » setting 裡可以查到。
- 再將原始碼放入剛新建的目錄後commit(按右鍵選 SVN Commit...),就可開始使用了!
2007-12-07
Charset (字元集)的選擇:UTF-8!
- Just UTF-8!這該算是資訊界難得的共識吧。
- UTF-8 是一種不固定長度的編碼方式,原定義在 ASCII (128 以下) 佔用 1byte,而其它語言的字元則佔 2、3或4個 bytes。
- 漢字在 UTF-8 中佔 3 bytes ,相較於用 Big5(字元固定 2 bytes)編碼的文件,其所佔用的空間較多。
- 時至今日,大多的編輯器都能正確支援 UTF-8。唯一要注意的是:不要寫入 BOM,像是 Windows 內建的 Notepad 在轉存 UTF-8 格式時會自動在檔案頭開插入 EF BB BF ,雖然在支援 UTF-8 編輯器不會顯示出來,但這會造成一些問題(如驗証 HTML 時會出錯)。
- Byte-order mark - Wikipedia, the free encyclopedia
- 在 HTML 中使用 UTF-8
- 在<head> 中插入:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>標題</title>
- 使用 UTF-8 的網頁在 IE 中有可能會出現一片空白的情況,所以要將字元集的宣告放在 <title> 之前。
- :::zonble's promptbook » 一片空白的UTF-8網頁:::
- 在<head> 中插入:
- 在 XML/XHTML 中使用 UTF-8
- 在文件開頭插入 XML 宣告:
<?xml version="1.0" encoding="UTF-8"?>
- 上述的 XML 宣告在 XML 文件中並不是必要的,但建議使用。
- Extensible Markup Language (XML) 1.0 (Fourth Edition) 2.8 Prolog and Document Type Declaration
- 在文件開頭插入 XML 宣告:
- 在 Apache 中使用 UTF-8
- 在 http.conf 文件中插入:
AddDefaultCharset utf-8
- AddDefaultCharset Directive - core - Apache HTTP Server
- 在 http.conf 文件中插入:
DTD 的選擇:Strict!
- DTD Document Type Definition 也就是一般網頁原始碼上
<!DOCTYPE開頭的東西。個人推薦的是 XHTML 1.0 Strict 或 HTML 4.01 Strict - 無論是選擇 XHTML 或 HTML,都要 Strict!Strict 可不僅僅是宣告,在撰寫時也要避免依賴瀏覽器容錯的能力。
- 選擇 HTML 4.01 Strict 如 Yahoo! UI Library 在 Grids CSS 所推薦的:
We use and recommend this !DOCTYPE to trigger Standards Mode in browsers with multiple rendering modes:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> - 選擇 XHTML 1.0 Strict 則是在程式處理上比較方便:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- HTML 4.01 Specification
- XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition)
2007-12-06
2007-12-05
關於 Hinet 與 Xuite 信箱設定
- 要使用 Xuite 信箱 POP3 的功能,得先下面鏈結處申請才行。不然會看到 [AUTH] Authentication failed. 的錯誤訊息。
- 而 Hinet 信箱 會遇到在 Webmail 看是有信的,但收信軟體收不到信的情況。這要到“個人設定 » 進階 » 登出時(強制)移回信件”設定。
- 申請開放 POP3 服務 - HiNet 會員中心
- HiNet webmail -常見問題
關於 MagpieRSS
- 目前最新的版本是 magpierss-0.72 (November 5, 2005),已經是兩年前的東西啦…。
- 文件不夠詳細。
- Snoopy.class.inc 需要 socket 的功能,如 fsockopen(),但很多免費空間都不允許。
- fetch_rss() 函式只能從 URL 載入 Feed。
- 從檔案載入 Feed 的寫法:
require_once(MAGPIE_DIR . "rss_fetch.inc"); // 一般用法 $rss = fetch_rss($url); // 用 CURL 替代 $ch = curl_init($url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $xml_string = curl_exec($ch); curl_close($ch); // 或從檔案讀入 $xml_string = file_get_contents("feed.xml"); // 載入預設值(原本是設計在裡 fetch_rss() 呼叫的) init(); $rss = new MagpieRSS( $xml_string, MAGPIE_OUTPUT_ENCODING, MAGPIE_INPUT_ENCODING, MAGPIE_DETECT_ENCODING ); - Magpie RSS - PHP RSS Parser
2007-12-04
2007-12-03
關於 MySQL 的 TIMESTAMP 格式
- 雖然 TIMESTAMP 跟 DATETIME 一樣是用來表示日期、時間,但其主要用途是做來記錄資料異動的時間點, 即該列的最後更新日期 (Last modified date)。
- 其它類型欄位的預設值不能是函數(包括 NOW()、CURRENT_DATE)或運算式,必須是常數,但 TIMESTAMP 可以在 CREATE/ALTER TABLE 時訂為 DEFAULT CURRENT_TIMESTAMP。
- TIMESTAMP 還提供自動更新的功能 ON UPDATE CURRENT_TIMESTAMP。
- TIMESTAMP 佔用 4 bytes,資料範圍 1970-01-01 00:00:01 至 2037-12-31 23:59:59。
- DATETIME 佔用 8 bytes,資料範圍 1000-01-01 00:00:00 至 9999-12-31 23:59:59。
- MySQL AB :: MySQL 5.1 Reference Manual :: 10.3.1.1 TIMESTAMP Properties
- Tsung's Blog | MySQL Timestamp 型態 的 屬性(新增/修改 自動更新 Timestamp 型態 的 欄位)
2007-12-01
RSS 與 ATOM 各版本比對
- 下面的表格是列出各種 feed 的格式、版本、根元素與命名空間。
- RSS - Wikipedia, the free encyclopedia
- Atom (standard) - Wikipedia, the free encyclopedia
| Name | Version | Full name | root | Namespace |
| RSS | 0.90 | RDF Site Summary | rdf:RDF | http://my.netscape.com/rdf/simple/0.9/ |
| RSS | 0.91 | Rich Site Summary | rss | |
| RSS | 1 | RDF Site Summary | rdf:RDF | http://purl.org/rss/1.0/ |
| RSS | 2 | Really Simple Syndication | rss | |
| ATOM | 0.3 | feed | http://purl.org/atom/ns | |
| ATOM | 1 | feed | http://www.w3.org/2005/Atom |
2007-11-30
用 CURL 替代 allow_url_fopen 的限制
- allow_url_fopen 是用來設定 fopen 是否能開啟 URL,預設值是開啟的,但有資安的問題,建議關閉。
- 一個替代方案是用 CURL 取代:
<?php $ch = curl_init('http://example.com/'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $file_contents = curl_exec($ch); curl_close($ch); echo htmlspecialchars($file_contents); ?>
關於 Accessibility 與 Usability
- 簡單來說 Accessibility 是指“可不可用”,而 Usability 是指“好不好用”。
- Accessibility 的“可不可用”通常是針對身心障礙者,但廣義的也包括使用比較差的電腦、網路等不同環境的使用者。
- 網頁親和力 - Wikipedia
- 優使性筆記本 (Max's usability notes):何謂優使性(Usability)? - yam天空部落
- Xexex's Java 和其他二三事 網頁應用程式 Usability 筆記
Unobtrusive Javascript
- Unobtrusive JavaScript (也有用 Unobstructive 的) 之前看到的一個詞,個人暫譯“無妨礙的 Javascript”。
- 並不是個新東西,意指在設計時考量到沒有 script 的環境下也能正常(或折衷)執行,而不是讓使用者對著 script error 大眼瞪小眼。
- 兩個面向,一是瀏覽者完全沒有或關閉 script 的功能;二是使用者部份載入(網路問題、NoScript)、或因瀏覽器特性…等原因,script 沒有正確執行。
- 一個常見的範例:
<a href="..script..">link</a> <a href="..url.." onclick="..script..">link</a>
- 另一個範例:
<input type="button" onclick="doSubmit()" /> <input type="submit" onclick="doSubmit()" />
- Unobtrusive JavaScript - Wikipedia, the free encyclopedia
2007-11-29
HostWQ.net
- 下午申請了 HostWQ.net 的支援 PHP 與 MySQL免費空間,規格看起來還不錯。要注意申請第一格是 Site's Name,使用者 ID 是系統產生的。
- 有提供六個免費的 Sub-domains,不過是從 *.HostWQ.net (三級域名)開始?
- 我在 blog.jano.hostwq.net 用 Fantastico type installer 安裝 Wordpress ,很快,但有檔案權限的問題(後來改用另一個 jano.hostwq.net 就沒這個問題)。
- Control Panel 有些地方網址的 Domain 是錯的?指到 byetcluster.com 去了。
- FTP 超慢!我用 FireFTP 傳 wordpress 上去,一直都沒有超過 2KB/s,而且中途還掉了127個檔…(Code:450)。還好 FireFTP 有一項比較本地與遠端目錄的差別,並針對檔案有無、大小來上下傳的功能,還不錯用,不過第二次還是掉了25個檔…。(怒)
- 後來改用 FileZilla 傳到自然斷,用 FireFTP 一比,還是缺了一堆!(翻桌)
- 再試一陣子看看吧…
2007-11-24
URL 的長度限制
- URL 的長度實際上並沒有規定,2083個字元只是 IE 在實做上的限制。不過,在決定欄位大小時,是個不錯參考值。
- Maximum URL length is 2,083 characters in Internet Explorer
2007-11-22
我用過的作業系統
- 曾使用(個人/家用)的作業系統如下:
- MS-DOS 6.22,國中在校第一次接觸的作業系統。
- Windows 3.1,安裝在自家第一臺電腦上,也是從國中開始。
- Windows 95,開始撥接上網!
- Windows 98,僅次於 XP 之後,我用最久的一套。
- Windows XP Professional 目前主要的作業系統。
- 還真是一脈相承啊…。(茶)
- 其實我也用過 Linux 一陣子,包括 Red Hat 和 Fedora,以及 Mandrake 與 Mandriva Linux (兩者在改名前後各試用過一次),不過最後都還是逃回來了…,最近 Ubuntu 似乎很紅,找個時間來用一下好了。
2007-11-09
2007-11-07
Firefox 調校
- 在網址列輸入 about:config,並視情況修改。
- 修改 browser.cache.disk.enable
- 修改 browser.cache.disk.capacity
- 增加 String 參數 browser.cache.disk.parent_directory 值為 R:\ (指定快取存放的目錄)
- 修改 browser.cache.memory.enable
- 增加 browser.cache.memory.capacity
- Knowledge Base - MozillaZine Knowledge Base
2007-11-06
Wordpress 試用心得
- 安裝的是目前最新版本 Wordpress 2.3.1。
- 安裝步驟真的是簡單到我都不知道該講什麼!
- 新 Blog 的網址是 stylet.no-ip.org (暫訂)。
- 目前還是以 Blogger 為主,Wordpress 以(手動)同步文章測試中。
2007-11-02
Google Photos Screensaver
- 再次安裝 Google Photos Screensaver 。
- 台灣版的Google Pack沒有包含 Google Photos Screensaver,似乎只有英文語系的國家才有。
- Pan and Zoom 的效果很棒!
2007-11-01
Canon PIXMA MX700
- 2009-11-28 更新!
- 網路連接不是用 Standard TCP/IP port ,而是 Canon 自家的 Canon BJNP Port ,這點真的很麻煩。
- 有提供 Windows 7 / Vista 與 x64 的驅動。
- 在 Windows 7 上遇到了無法安裝的情況,後來查出是在搜尋網路連接的印表機的階段,“無預警”的被內建防火牆阻擋的關係。
- 2007-11-05 更新!
- 安裝的問題在動用到 Wireshark 後總算查出來了,原來是我擋了所有 UDP Port 的關係。
- 第一份文件印的是 YUI 2.3 Cheat Sheats ,速度還好(標準-彩色列印)。
- 從前紙匣列印要勾選“自最未頁列印”,不然出來順序會相反。
- 2007-11-01 敗入!
- LCD 感覺有點小。
- 只有簡體中文而沒有繁體中文,可惜。
- 因為不知道我賤手關了什麼服務或設定,(以網路連接的方法)安裝上並不順利,最後並沒有查出什麼原因(以重灌解決),只知道網路連接埠的部份並不是用 Standard TCP/IP Port ,而是 Canon 自已的協定(Canon BJ Network Port)與軟體(Canon IJ Network Tool)。
2007-10-30
分割 Apache log 檔
-
CustomLog "|bin/rotatelogs.exe -l C:/Apache2/logs/access%Y%m%d%H%M%S.log 86400 1M" common # 每86400秒(一天) 或 超過1MB時分割一次 檔名如:access20071030101930.log
- Apache生成日誌的技巧 - Cody's blog
- rotatelogs - Piped logging program to rotate Apache logs - Apache HTTP Server
2007-10-28
Checklist for Securing PHP Configuration | Ayman Hourieh's Blog
allow_url_fopen = Offregister_globals = Offopen_basedir = /var/www/htdocs/filessafe_mode = Offsafe_mode_gid = Onsafe_mode_exec_dir = /var/www/binariessafe_mode_allowed_env_vars = PHP_max_execution_time = 30 ; Max script execution timemax_input_time = 60 ; Max time spent parsing inputmemory_limit = 16M ; Max memory used by one scriptupload_max_filesize = 2M ; Max upload file sizepost_max_size = 8M ; Max post sizedisplay_errors = Offlog_errors = Onexpose_php = Off在某些地方顯示執行 PHP 的資訊 (例:在 HTTP Header 裡加上一行 X-Powered-By: PHP/5.2.4 及 Server: Apache/2.0.59 (Win32) PHP/5.2.4 )。
-
<FilesMatch "\.(inc|.*sql|.*~)$"> Order allow,deny Deny from all </FilesMatch>
2007-10-26
詭異的登錄檔機碼 HKEY_CURRENT_USER\S\P\
HKEY_CURRENT_USER\S\P\xxxxxxxxxx- 結果是跟 MSN Messenger 有關,xxxxxxxxxx 是指 MSN Messenger 的帳號(數字),在 %AppData%\Microsoft\MSN Messenger 下可以看到。
- 資料來源:Registry problem
2007-10-24
存儲密碼
- 絕對不要用明文儲存密碼!
- 一個常見儲存密碼的方式,是用雜湊函數(如 MD5、SHA1) 計算出的雜湊值,來取代儲存密碼明文在資料庫裡。使用時(如使用者登入)只比對雜湊值而不直接取用密碼原文,可以避免被有心人士取得密碼表後直接拿去利用。
- 但是,若只是直接單純使用 MD5 算出來的值,有可能利用 Rainbow Tables (預先運算的值所建立資料表)快速推算出原值(或 collision)。
- 對欲計算雜湊值的字串“加料”,是一個對程式變動較少的解決方法。類似的方法不少,但簡單來說就是用兩個步驟以上處理密碼。
- Blog.XDite.net » 淺談 BBS 資料的安全性
- 石頭閒語:在 C 程式中使用 MD5 library 及其應用 - 樂多日誌
- Rainbow Hash Table 與密碼破解 | 資安之眼
- 對於一般的使用者:
- 可以的話,使用最少 8 字元以上的密碼。
- 可以的話,在密碼中加入特殊字元,即除了英文字母與數字[^A-Za-z0-9]以外的的字元(如!@#$%^&*)。
- 避免使用單字、常見詞彙或其組合,來做為密碼。
- 在不同的地方(網站或應用程式等)使用不同的帳號、密碼。
2007-10-23
停用 Dr. Watson
- 備份下列機碼後將 AeDebug 刪除。
-
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug] "Auto"="1" "Debugger"="drwtsn32 -p %ld -e %ld -g" "UserDebuggerHotKey"=dword:00000000
- Dr. Watson for Windows (Drwtsn32.exe) 工具的說明
- 如何停用 Dr . Watson for Windows
關閉特定 Ports
- 查詢目前的網路連線
netstat.exe -an。 - 關閉 123(ntp) port ,停用 Windows Time Service。
- 關閉 135(epmap) port ,目前還沒試成,替代方案是用 IP Security Policies 阻擋。
- Control Panel
- Administrative Tools
- Local Security Policy
- Right Click IP Security Policies on Local Computer
- Create IP Security Policy...
- Un-select Activate the default response rule
- 關閉 445(microsoft-ds) port ,修改 registry (如下)後重開機。
-
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters] "SMBDeviceEnabled"=dword:00000000
- Port Assignments for Well-Known Ports
2007-10-22
UnRegister Windows XP DLLs
regsvr32 /u shmedia.dll regsvr32 /u shimgvw.dll regsvr32 /u zipfldr.dll
- 取消預覽 avi 檔的功能,預覽 avi 檔這個功能有時會造成 avi 檔無法刪除的問題。
- 取消圖片預覽(Windows Picture and Fax Viewer)
- 取消內建 Zip folder 的功能。
2007-10-21
2007-10-16
2007-10-15
用 RegExp 抓圖
- 昨天為抓漫畫(謎),寫了小一段PHP,因為它用亂數檔名但沒有擋圖片外連,所以把所有網頁抓下來,用 Regular Expressions 把目錄裡所有網頁裡的圖片連結抓出來。
- Regular Expressions 真的是說難不難;說簡單是一點都不簡單。
-
<?php $dir = 'tmp'; $files = scandir($dir); array_shift($files); //移掉 . (本目錄) array_shift($files); //移掉 .. (上層目錄) foreach ($files as $i => $v) { $s = file_get_contents($dir. '/' . $v); $x = preg_replace('/[\S\s]+img src=(\S+) border=1[\S\s]+/i', '${1}', $s); echo "<a href=$x>$v</a><br>"; } ?>
2007-10-13
text-overflow 自動截斷過長文字並補上省略符號
- IE 6 以上版本及 Opera (最早支援的版本未知,我目前用 9.23 是支援的) 支援
-
.ellipsis{ overflow:hidden; white-space:nowrap; text-overflow:ellipsis; /* for IE, O */ -o-text-overflow:ellipsis; /* for Opera priv */ width:10em; }<p class="ellipsis">這是一段沒什麼意義,但是很長、很長、很長、很長、很長、很長的文字。</p>
- 同時需設定 width(相對要設定display:block;) 、 overflow:hidden; 、 white-space:nowrap; 等屬性。
- MSDN textOverflow Property (defaults, A, ABBR, ...)
- jide.fr » Emulate text-overflow:ellipsis in Firefox with CSS
- 上一個鏈結提供的方式,我試用時得將(第12行)
html>body .ellipsis span:after {改成html>body .ellipsis:after {才能運作。
不得不駭(CSS) IE7
- 因為 IE7 增加/修正了一些對 CSS 標準的支援,其中支援 !important 應該是對(有用這項 CSS Hack 的)網站開發人員最麻煩的一項。
- 這也是不建議使用 CSS Hacks 的原因之一,某項 hack 有可能會遇到跨瀏覽器、跨版本支援等非預期的情況。
- CSS Hack « 就是愛程式
2007-10-09
2007-10-04
conime.exe
- 網路上說法太多了,無法確認。其中一種說法是亞洲語系的 Windows 系統有 conime.exe 是正常的,但我用的是英文版的…。
- 僅刪除 %SystemRoot%\system32\conime.exe 的話, winlogon.exe 會立即將其從%SystemRoot%\system32\dllcache\conime.exe 寫回。
taso.exe
- 網路上找到的資料以韓文為主,沒輒。TASO.EXE, Prevx
- 在我 msconfig - Stratup 裡 taso 是寫在 temp\taso.exe ,但我的 temp 是放在 ramdisk 裡的(一關機就清掉了),所以目前死無對証…。
kavo.exe
- 曬月亮的魚 這隻木馬還真麻煩-Kavo.exe-這篇裡有詳述。感恩啊~。
- 病徵之一是無法改變“顯示系統隱藏檔”的選項。
- 病徵之二是 msconfig - Startup 裡多了 kavo 一項。
- 用
attrib改變各分割區根目錄下的 autorun.inf 、 ntdelect.com ,以及 %systemroot%\system32\kavo*.* 的檔案屬性後予以刪除。 - 注意 NTDETECT.COM 為系統檔案,勿誤刪。
- 通常 kavo0.dll 處於已執行狀態,掛於 explorer.exe 下。
2007-09-29
Lost 第一季
- 最討厭的角色是 Charlie,比起來 Sawyer 還沒那麼討人厭。
- Hurley 真的是個敏捷的胖子。
- 第24集 Exodus, Part 2 裡,我以為 Arzt 只是單純想搶戲的人,事後查了一下,沒想到硝化甘油(硝酸甘油)還真的是很不穩定的東西。zh.Wikipedia.org:
…硝酸甘油由桌面高度掉落地面即可引爆…
2007-09-27
Nikon D50 試用心得
- 跟 Benson 君借D50,算是第一次較完整的試用DSRL,配備如下:
- Nikon D50
- Nikkor AF 50mm f1.8D
- Tamron SP AF Di 90mm f2.8 MACRO 1:1
- Nikon Speedlight SB-800 + SD-800
- 光圈超過 f4 以上的景深比我想像中淺太多了,一顆貓頭(的厚度)都拍不清楚。到 f1.8 時對眼睛拍,鼻頭就糊掉了。使用大光圈時,正確的對焦落點變的更加重要。
- 用外閃打跳燈拍出來的效果,比機頂閃燈好太多了。
- DSLR 續航力真是出乎意料的強,拍了約五百張後竟只掉一格。
IE 寬度解譯與建議標準不同的問題
- IE解析寬度(width)是內容寬度加上padding及border寬度。
- 而建議標準的寬度僅指內容寬度,不包括margin、padding與border的寬度。
- Cascading Style Sheets, level 1 Formatting model.
- 其中一個方法是個人不喜歡用的 CSS hack。
- 解決方法之一是用兩層block(如div),並避免在對同一層同時定義width與padding跟border-width。像用內層的margin取代外層的padding等。
2007-09-19
匯入 CSS 用 link 與 import 的差別
- 外部引用CSS中 link與@import的區別
link定義於HTML且有其它功能,@import 定義於CSS2。link載入順序較 @import 高。
2007-09-17
2007-09-15
同時安裝多個版本 Firefox
- 下載 PortableApps.com 出的可攜版本。
- 各版本的下載頁面:SourceForge.net: Mozilla Firefox, Portable Edition
移除 Adobe CS3 的 mDNSResponder.exe
- Adobe Creative Suite 3 and Creative Suite 3 components install Bonjour (Windows)
- 從 Windows Services 中移除該服務
"C:\Program Files\Bonjour\mDNSResponder.exe" -remove - 重新命名 mdnsNSP.dll
- 重開機後移除
C:\Program Files\Bonjour目錄
- 從 Windows Services 中移除該服務
2007-09-14
安裝多重版本IE
- Internet Explorer 7 running side by side with IE6. (standalone) | TredoSoft
- 下載並解開
IE7-WindowsXP-x86-enu.exe /x - 執行其中的 update/xmllitesetup.exe
- 下載並解開IE7S.zip
- 把IE7s.exe放在同目錄執行
- 下載並解開
- Install multiple versions of IE on your PC | TredoSoft
2007-09-10
Dungeon Siege 2
- 打一開始就用區域連線的合作模式過關,感覺還滿棒的。因為連線時會搶對話、同伴,所至我覺得最好還是先玩一遍單機(至少玩到Eva加入)。
- 中文語音聽起來實在很奇怪。
- 視角無法往上。
- 第二章初期才有戰鬥法師的同伴加入。
- 改字型大小,用 Dungeon Siege II Tool Kit 裡的 Tank Viewer 2 開 language.ds2res 找 global_settings.gas 改內容,再用TankCreator2 封成(任意檔名.ds2res)丟回Dungeon Siege 2\Resources。14點以上的字,段落結尾常看不到。
- 用 ATI 顯卡,字型看起來模糊的話,改像素中心設定。
2007-09-06
2007-09-05
2007-09-04
2007-09-03
2007-08-15
Ghost Recon Advanced Warfighter 2
在剛玩過R6V後才玩這款遊戲,讓我頓時難以適應,連Easy級的第一關都過不了。看了網路上的討論後,試 著用主角一個人過關看看,這才體會到,同伴是用來擋人海的,其它情況根本派不上用場!
我覺得這遊戲還是以單人為主,策劃只是(很微小的)輔助。必竟你人身在前線,根本也沒什麼時間看地圖啊。
- 第一次玩戰役的情況下,要重新部署第一關的話,得要把個人設訂檔刪掉才行!?
- 這裡面最先進的,我覺得非 ZEUS-MPAR 莫屬,不但可以射後不理(自動追蹤),而且具有一發幹掉直升機、裝甲車甚至坦克的威力。
- 手榴彈很難丟準,煙霧彈沒什麼效,M32(榴彈)很難瞄。
- 敵人九成是用G36K,其餘的九成是用RPG,剩下的則是定點的重機槍。
- 該帶 ZEUS-MPAR 就乖乖帶上吧,雖然一些場景有RPG可以撿,但用RPG很難打中啊。
- 沒有熱顯像模式。
- 同伴中彈時語音很吵,而且一點也沒有專業戰士的感覺。沒有命令可以執行時,同伴會一直傳語音來,彷彿怕被遺忘似的,煩。
- 有時語音通訊會停倬,但按一下滑鼠就可以恢愎。
- 敵人在在近距離碰到你時命中率很低,但中遠距離又準的要命。
- 每場戰役簡報時預設的人員、武器配置有參考的必要。像加裝GL表示會有一大票敵人,有 ZEUS-MPAR 表示要轟掉些什麼。
- 快速存檔會自動輪流使用三個存檔。這設計還不錯,不會有滿地存檔的情況,想後悔還可以退回三次存檔前。
- 個人愛用MGS90加MP5SD。M99 Sniper 雖然帥(手動退彈、準心旁有距離標示、威力又大)但彈藥太少。
- 可視距離太短!這裡指的是3D遊戲中呈現3D物件的距離,遊戲中也沒有提供設定選項。這項設定不但影嚮效能也影嚮遊戲性。
- 承上,我在 Codename Farallon 這關一開始就遇到這個問題,敵人在可以看的到範圍外就開始攻擊。
- 空照圖(戰術地圖)範圍太小,甚至小於可視距離,在指定同伴攻擊直升擊或轟炸時很不方便。很多時候都是得自已先到前方,再用戰術地圖指定同伴行動。
- 戰術地圖為什麼不和綜覽圖(Overview)合在一起?
- Drone 和 Mule 太少出場啦。
- Texture quality 有選項但卻無法自訂。
- 遊戲開始的影片都可以單鍵跳過,讚。可是破關畫面不能,太可惜了。
- 戰役模式難度頗高(我玩Normal),中後期不帶同伴都不行。
- 同伴AI和強度都不高。有看到同伴對一個敵人發射榴彈的情況,而狙擊手時常兩、三發才放倒一個。沒有指定同伴攻擊載具的話,就算背著 ZEUS-MPAR ,他還是會給你用槍慢慢打的。指定地點的途中有路障或需要繞路的話,就很容易卡住。
- 遊戲配樂都不是很搭啊,尤其是破台後工作人員介紹的片段。
- 似乎有帶同伴並全部存活的話,就會得到A的評價。
- 不帶同伴一定會得到Leader成就(同伴沒有受傷)。
- XBOX360 和 PC 版似乎有不小差距。
2007-08-11
2007-08-10
Command & Conquer 3 Tiberium Wars Part 2
終於把 GDI 、 Nod 和 Scrin 三個陣營的戰役玩完了,不過還是越玩越懷念RA啊!
- 玩過 Nod 和Scrin 的戰役後就可以確認,會卡關不是因為GDI弱,而是敵方部隊有“加強”…。
- 噴火車威力超強,但是皮也超薄,幾乎是被打到就爆了,不過我還是很愛用,尤其是看著火從窗口噴出來(笑)。
- 很多場 Scrin 的戰役,我都用智者把工兵傳送到敵陣內佔建築的方法過的,先佔主堡或電廠,再防剩餘部隊的反攻就 OK 了,所以很多該陣營的能力我幾乎都沒用到…
- 照劇情推論,Scrin 陣營都只是派來採礦的工兵部隊,而真正的入侵部隊看來下集才會出現。不過工兵就這麼強了,那下集人類這方要靠什麼打平(這類遊戲設計的目標都是打平而已)入侵部隊? Kane 嗎…
- Nod 對於 Tiberium 及 Scrin 的了解,似乎比 GDI 深入許多…
- 看到每個陣營的最後一段影片時,都讓人覺得好空虛啊…,一個說我名留青史(打到挫青屎到是真的),另一個帶我走到轉角(遇到…外星人!?),最後一個則是to be continue…
- 三個陣營所經歷的戰役,都是基於相同的故事劇情上,只是時間、地點錯開了,玩家戰役結果並不影嚮劇情發展,這也許是讓我感到空虛的因素之一。
- 我覺得這款遊戲過.於.強.調“一物剋一物”了,所以有些地方設計的不合理,像一隊星級的飛彈兵很容易被輕裝甲車擊斃,卻可以站在原地同時跟兩台小坦克對轟還羸(不被輾壓的話)。
- 對戰地圖很明顯的,都是為了比賽而設計的,而且沒開放戰役中使用的地圖這點實在太可惜了。
- 裝甲神兵的轟炸還要配合狙擊手,不實用。玩到後來這兩個單位我都不想用了,自找麻煩而已。
- 人型機甲還滿酷的,還可以升級,八成是日本人做的(笑)。
- 那個三足根本就是從世界大戰跑出來的嘛(翻桌)。
- Scrin 的閡限之塔其實只是超大型的無敵採礦場(而且還防摔、防水、防泥巴)!?
2007-08-09
Barrett M107 .50 Caliber Long Range Sniper Rifle
在Discovery 新時代武器看到的,Barrett M107 .50 口徑超遠距狙擊步槍,有效射程1500至2000公尺,有於實戰中成功狙擊2400公尺外目標的記錄。
真的是活見鬼了,被兩公里外的子彈打到不認命也不行,打哪來都不知道啊。
2007-08-05
Command & Conquer 3 Tiberium Wars
剛玩完GDI的劇情,實在不懂為什麼這款遊戲評價這麼高…(都是業代嗎?)。好懷念RA啊!
- 遊戲提供的更新下載很慢。
- GDI 的戰役有夠難的,尤其是需要建造基地的關卡,敵人如潮水般湧入!後半我都把成簡單然後把錢改滿了玩。
- GDI 技術有夠落後的,一點都沒有未來感。
- 等級很難提升,升滿最明顯的改變除了掛星星外,就是炮火顏色變了…
- 為什裝甲部隊上都沒有配機槍?吉普車沒有、小戰車沒有、重戰車沒有連飛機也沒有!(反而是採礦車上才有)而且敵人還是人多的NOD,一點都不合理。
- 同上,為什連飛機上也沒有配機槍?飛彈對空對地還得回基地換,是合理但不好玩。
- 工兵只剩佔領建築一個功用而已,RA還可以搭APC修戰車咧。
- 榴彈兵也只有把敵人炸出建築物有用而已,除此外幾乎用不上,可以的話還是把建築物連人一起轟爆比較安心。
- 沒有英雄角色可用,那個突擊隊跟本就是渣啊…而且又貴!爆破完就趴在地上裝死兼等死。雖說是剋步兵單位,但遇兩三隊步兵以上還是被秒殺啊。
2007-08-04
2007-08-01
2007-07-25
Tom Clancy's Rainbow Six Vegas (PC;English)
- 讚!這才是我想玩的遊戲類型,操作簡單、動作流暢,同伴指揮容易、強度與AI都不差。找掩護(TAKE COVER)的動作設計的也很棒。
- 我覺得 Story Mode 最不方便的是記錄點(Check point)是固定的,不夠密集而且也不一定在彈藥箱之前或之後。
- 有些敵人是觸發特定條件後才出現的,所以偶而有同伴走過後沒事,自已走時敵人才出現的情況。
- 被擊中時的特效太糊了(每次都被打中眼睛!?)。
- 遊戲對話沒有字幕。
- 1.05 的 patch 是有包括之前(1.01到1.04是各別安裝的)的更新。更新完就可以玩 coop story mdoe 了(謎)。
- coop story mode 沒有劇情,只是把各個地圖依序過一次而已。
- 20070726 發的 map pack (在xbox上好像是要錢的)也有包括一些更新。安裝完 coop t hunt 看的到地圖但還是不能玩…(謎)
- 更新時若遇到找不到版本號的錯誤,可用regmon攔劫更新程式對登錄的存取,找出鍵值填上就好。每個人的鍵值會不一樣,而需要的數值錯誤訊息會告訴你。(謎)
- 遊戲執行需讀光碟,CD-KEY只有online需要,單人與LAN不用。
2007-07-23
2007-07-21
Lost Planet Extreme Condition
- 意外的難玩…總覺得動作很不流暢,也許是我操作不良造成的偏見。
- VS很帥,尤其是老爸機那可以滑行的那型。而且看到變身的老爸機就知道這一定是日本做的!可動零件這麼多…
- 敵人(士兵)在被遠距離攻擊時也不會反擊(VS會)。
- 原本以為,依照遊戲裡T能源會持續減少的設計來說,這應該是快節奏的遊戲,可是我卻感受不到…只有開老爸機那段比較有感覺。可能與我太晚發現其實“很多敵人都可以直接闖過不用打”有關。
- 當敵人連續攻擊或一次遇到太多敵人時,很容易被圍爐至死。
- 鉤繩距離太短,也不能連續使用,很多時候想用鉤繩帥氣的迴避或移動,但下個畫面都還在原地…
- 之前在路邊店家展示XBOX360時看過遊戲畫面,覺得還不賴。用自已的舊電腦跟爛螢幕來看就還好,雪花反而是種雜訊咧。(汗)
- 雖然原文的劇情我只懂一些,但還是可以感受的到很多詭異的情結。其中我覺得最詭異的就是Basil幹嘛自爆?沒意義啊。這裡有過場動畫的劇情翻譯 SIDE 7 殖民地墜落計畫 - 始動
2007-07-20
Company of Heroes
- 好玩!
- 部隊進註建築物時會依照建築物損情況站不同位置。
- 單人模式可以叫老兵出來(上一場戰役有升級並存活的單位),不過單位等級高低的差異不大(不像RA)。
- 大頭模式很可愛。
- CTRL + SHIFT + ~ open console
- FOW_Toggle - Toggle Fog of War ON/OFF
- ee_bigheadmode(#) - Bighead mode (#=0/1 Off/On)
- setsimrate(#) - Set Game Speed (#=speed, 10=normal)
- FOW_RevealAll - Remove Fog (need "-dev" arg)
2007-06-22
ftp.adsl.hinet.net
由 Hinet 提供的 FTP 站,可以暱名上、下載大檔以測試速度。
上個月底家裡換成光纖(10M/2M)所以再試了一下,似乎有對下載檔案做限速,下載 test001m.zip 至 test040m.zip 速度只能至 180 kB/s,而 tset100m.zip 與 test200m.zip 可以到800 kB/s 。上載的部份都可以到160 kB/s 。
2007-06-19
腳尾米 關於台灣新聞媒體
這是一部有關台灣電視新聞的紀錄片,內容是我們設計了一些假新聞事件然後誘發電視新聞媒體採訪,成果方面讓我們非常震撼,因為總共有4家電視台分別採訪了我們的假事件,而且在製作過程我們也發現了很多電視台的弊端,希望各位能做最有力的見證者!
不過可惜的是,在看完影片之後,我最想知道的問題:「既然很多人都知道台灣的新聞媒體不夠好,還是能每天“看新聞、配飯吃”呢?」依然沒有答案…
Update 20070623
最離譜的是當他問我覺得有什麼電視聞覺得不像是新聞的時候,我想了比較久的時間才回答他,但他最後播出來的版本卻只有我在想的畫面,居然把我回答的畫面刪掉,然後就說我"對新聞的認知回答不出來"。
相關連結
2007-06-16
日記 牙痛與飯局
流水帳模式啟動…
昨天吃完晚飯後,下門牙痛到不行,可是家附近的牙醫診所又沒開,只好先買止痛藥(Prophenatin HD-252)吃、並在基隆長庚的網站上掛號。
今天是ET那屆的畢典所以HS有上來台北,便約了晚上跟HS、GD、FN到衣蝶S館的鬥牛士吃飯。HS跟GD真是一對活寶,好久沒有笑這麼開心了。中途一段小插曲:不修邊幅的HS竟然叫一個看起來不到二十歲的服務生為“大姐”,而之後那位大姐有好一陣子沒來本桌服務…
吃完到附近走走,沒想到中山地下街的行政廣場竟然沒什麼人…
攝於光點電影院。
回家時路過中山地下街的藝廊,看到許多不錯的作品,以下是幾幅讓我想拍下來留念的。
to be insatiably avaricious (無法滿足地貪婪)。
還有許多不錯作品在中山地下街的藝廊展出。
2007-06-12
相機小歐本年度第一次下水
今天遇到漲潮,水裡漂了不少垃圾,拍出來的效果也如預期的差…,不過小魚們還是很捧場,快把我手毛也吃光了!
因為拍的不好,所以就不在這裡貼出來了。我在flickr開一個Set專門放浮潛攝影的作品:UnderSurface。
玉米的裝備還真是不賴啊,不愧是砸了錢的啊!
2007-06-10
2007-06-09
檢查表單 <form> 的 referer
檢查表單資料是不是“來自它應該來的地方”,有心人士可以在本地端建立一個表單,可以藉此略過一些檢查來送出資料。
PHP 可以用 $_SERVER['HTTP_REFERER'] 取得referer,但就如同PHP Manual寫的,這個值是不可靠的,所以只能當做基本的檢查。比較好的方法,可以用hidden欄位插入特定的值…(秘)。
- 'HTTP_REFERER'
- The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.
2007-06-08
Blogger Timezone 裡沒有 Taipei Time …
剛剛在修改文章時間的時候,發現日期差了一天,直覺告訴我是時區錯誤的問題。到Setting > Formatting裡看到時區是[UTC -08:00]Pacific Daylight Time整個傻掉了,就是設錯也會不錯的這麼離譜,沒想到選單一拉下來竟然找不到Taipei Time(+08:00)…?
不過話說回來,我對時區設定並沒有什麼印像,也許是原本就沒有…吧。
2007-06-07
PHP 輸出靜態網頁的方法
最近在思考架站的問題,有考慮過以自已的電腦做為主機,不過這樣就得一直開著,而且也許會影嚮到我一般的使用(上網)。而虛擬主機需要花費,問題似乎也不少(CPU Time、頻寬、合約期限等)。
所以我在考慮一種方式,就是利用自已的主機執行動態網頁,輸出成靜態網頁(類似像Blogger)後,放在網路上的免費空間。這樣我的主機就可以正常使用,而網站也可以一直在線上,也不用煩腦太多主機的問題。
所以到網路上找到幾個PHP輸出靜態網頁的方法:
Apache mod_rewrite
- 用伺服器模組去改寫網址,外表看起來是靜態網址(web_123_456.html),實際是動態網頁在運作(web.php?a=123&b=456)。
- 對現有的程式架構影嚮較小。
Apache AddType
PHP Smarty
- 以 $smarty->fetch() 取得輸出內容後,再輸出成網頁檔。
- 需要使用 Smarty 並改寫程式。
- 需考慮是否適合輸出成靜態網頁。
PHP Output Control Functions
- 利用 Output Control Functions 的 ob_get_contents()取得輸出內容後,再輸出成網頁檔。
- Output Control Functions 為 PHP 內建函式,且程式變動較少。
- 一樣要考慮是否適合輸出成靜態網頁。
就我的情況而言,我需要的是將動態網頁輸出的結果另存到靜態網頁的檔案,所以後兩者比較適合,正在學的Smarty,剛好派上用場。另外,改成靜態網頁似乎有助於SEO咧。
資料來源
個人常用鏈結
Labels
- .NET (1)
- Accessibility (3)
- ADSL (1)
- Apache (9)
- ASP.NET (1)
- Babyer (1)
- Browser (1)
- Canon MX700 (1)
- CAPTCHA (1)
- CentOS (1)
- CSS (7)
- DB:SQL (1)
- DB:SQLite (2)
- DNS (3)
- English (1)
- EXIF (1)
- filename.ext (1)
- Firefox (4)
- Firewall (1)
- Flash (4)
- Game 遊戲 (28)
- Game:PC (6)
- Game:PS3 (4)
- Game:Xbox360 (3)
- GNU (1)
- Google (6)
- Google:Android (8)
- Google:Blogger (2)
- Google:Chrome (1)
- Google:Code (2)
- GoogleAppEngine (2)
- GoogleMaps (1)
- GPG (1)
- Hinet (1)
- HTML (2)
- HTTP (1)
- i18n (1)
- IE (3)
- Java (2)
- Javascript (2)
- Linux (1)
- Microsoft (2)
- MIME (1)
- MySQL (7)
- NexusOne (2)
- OAuth (1)
- Open source 開放原始碼 (1)
- OpenID (1)
- OS (1)
- OS:Windows (33)
- PHP (49)
- PHP:GTK (2)
- PHP:PEAR (1)
- PHP:PECL (3)
- PHP:ZendFramework (4)
- PostgreSQL (1)
- PPPoE (1)
- RegularExpressions (2)
- Security (11)
- Sphinx (2)
- SQLite (1)
- TCP (1)
- Ubuntu (1)
- UDP (1)
- Usability (2)
- Virtaul PC (1)
- Wii (2)
- XML (1)
- Yahoo (2)
- Yahoo:BBAuth (1)
- Yahoo:YUI (1)
- Youtube (1)
- 不如賣雞排 (2)
- 不願役 (33)
- 中文處理 (1)
- 圖 (5)
- 媒體 (2)
- 影片 (1)
- 影音 (19)
- 思 (8)
- 攝 (9)
- 政 (7)
- 敗 (2)
- 漫畫 (5)
- 生活 (34)
- 硬體設備 (13)
- 網站開發 (16)
- 網路 (8)
- 英文 (3)
- 貓 (2)
- 資安 (1)
- 趣 (29)
- 軟體 (12)
- 遊記 (8)
- 運動 (2)
- 關於我 (1)
- 電影 (10)




