以前都是 WAMP 懶人包,現在終於看到已 Nginx + php-fpm + MySQL 為主的懶人包了:WPN-XM:
WPN-XM 看起來已經有不少人在維護,新的 RC 版本也開始支援 PHP 7.x 了,看起來可以關注一下。
軟體開發、伺服器和生活瑣事
用慣了 Linux 上的終端機以後,再用 Windows 終端機大概會很不習慣,許多好用的小工具會找不到。GnuWin 將一些開放原始碼的小工具移植到 Windows 上,如 ls、grep、awk、wget 等,想得到的幾乎都有。
先下載壓縮檔,該壓縮檔只包含安裝工具。執行 download.bat,程式會將工具包下載回來,再執行 install.bat 將下載回來的工具解壓縮放進「gnuwin32」目錄,執行檔會在 gnuwin32/bin/ 中。
最後在 Windows 環境參數 PATH 中加入 gnuwin32/bin/ 就可以在使用了。
GnuWin
http://gnuwin32.sourceforge.net/
2018/10/04 更新:如果你的系統是 64 bit based,可以左轉「GnuWin64」。
MySQL 的資料庫為一目錄、資料表為數檔案,MySQL server 會依照 SQL query 去讀取指定位置的檔案,但在 Windows 底下檔名不分大小寫、Linux 底下則有分大小寫。
在 Windows 中底下二個 SQL query 的結果相同:
select * from user_Name;
select * from user_Name; -- 不分大小寫,結果同上
但若是將做資料轉移從 Windows 轉到 Linux 後,卻會因為區分大小寫而造成 dump 回去的資料與 query 到的資料表被視為不同:
create table `user_Name` ( blablabla ..... );
select * from user_name; -- 大小寫不同撈不到資料
若遇到這情況,可以在 my.ini (或 my.cnf) 的 [mysqld] 標籤後加上「lower_case_table_names」參數,讓 MySQL server 處理指令時自動處理。
= 0:資料庫與資料表名稱均區分大小寫
= 1:資料庫與資料表檔案名稱均使用小寫,SQL 語法中的資料庫與資料表名稱均轉換成小寫再做比對
= 2:建立資料庫與資料表時檔案名稱區分大小寫,查詢時轉換成小寫再做比對,僅是用於不區分大小寫的檔案系統。
參考資料:MySQL case insensitive table and column names – Cosmin’s Wiki
http://cosminswiki.com/index.php/MySQL_case_insensitive_table_and_column_names
Unix 和 Windows 程式設計師的文化差異
http://blog.lauct.org/?p=1481
這篇字數多到讓我想翻桌,但實在寫得很客觀。
以目標來區別的話:Unix 的目標是讓其他開發者能更輕鬆;Windows 的目標則是讓使用者能更輕鬆。
玩二個不同的系統這麼多年,我不得不說 Windows 的人機介面真的是我用過數一數二的 (Mac 感覺很棒但是不熟不敢亂說 XD),但是對於一個在 Windows 上開發程式的人而言,在命令提示字元裡面做事實在有夠麻煩,資料夾一堆空白不說,連基本的 rootkit 也很鳥,在 CLI 根本作不了什麼事。
但是換成 Unix / Linux 系統上,開發程式顯得輕鬆很多,撰寫程式、編譯、除錯都有免費又方便的程式可以用,也不需要花大錢買個 XX Studio 或是找破解,參加完 SA@Tainan 的「終極密碼戰」才知道,連 Hack 掉一個全 bunary 的程式也只需要基本的幾個免費工具。但是說到人機介面,Unix 上的軟體就實在很不人性化,很多時候會讓人想不透為什麼這個功能會放在這裡,那個功能卻跑到另一個地方去,而且很多很基本的問題甚至要使用 command line 才能解決。
不知道為什麼在台灣很多所學校都把「人機介面」的課放在選修甚至不用修。以前寫程式大多都是專用程式或只針對某用途而客製化的程式,但是現在電腦普及,大多數的程式已是為了一般使用者而撰寫,但是為什麼把使用者操作的感覺拋到腦後?
網路上流傳不少加快電腦關機的方法,查了一下是要求系統強制將應用程式關閉。
強制將應用程式關閉有很多風險,應用程式在正常結束時,通常會釋放以使用的記憶體、將執行狀態 (如視窗位置、最後開啟的網頁、最後播放的歌曲等等) 寫入紀錄檔,雖然關機時記憶體沒有釋放沒有關係,但是若紀錄檔沒有完整寫入或是沒有更新,下次開機可能就會出現錯誤,例如 foobar 強制關閉就會導致紀錄檔不完整而無法讀取,整能重新安裝。
目前網路上看到最多的是修改 HKEY_LOCAL_MACHINESYSTEMControlSet001Control 下的機碼:
網路上某些教學會將等待時間改到 1000 毫秒甚是以下,雖然預設值實在太大,不過實在不建議將等待時間改到這麼短,可以依照電腦執行速度的不同稍做調整,個人偏好在 5000 左右。
偷懶修改法:將下面的文字複製到記事本,存檔後將副檔名改為「reg」,點二下執行即可。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMControlSet001Control]
"HungAppTimeout"="3000"
"WaitToKillAppTimeout"="5000"
"WaitToKillServiceTimeout"="5000"