[MySQL] 利用 perl 單行印出 my.cnf

MySQL Performance Blog 裡面發現這篇:How to pretty-print my.cnf with a one-liner,利用一行 perl 指令把 my.cnf 的註解拿掉:

perl -ne 'm/^([^#][^\s=]+)\s*(=.*|)/ && printf("%-35s%s\n", $1, $2)' /etc/my.cnf
輸出為:
[client]
port                               = 3306
socket                             = /tmp/mysql.sock
[mysqld]
port                               = 3306
socket                             = /tmp/mysql.sock
skip-locking
key_buffer                         = 256M
max_allowed_packet                 = 1M
table_cache                        = 256
sort_buffer_size                   = 1M
read_buffer_size                   = 1M
read_rnd_buffer_size               = 4M
myisam_sort_buffer_size            = 64M
thread_cache_size                  = 8
query_cache_size                   = 16M
thread_concurrency                 = 8
log-slow-queries                   = /var/log/mysql/mysql-slow.log
當然同樣的,你也可以利用在 php.ini 或者是其他設定檔上面,提供我平常用 bash 指令來做的,只是沒有經過排版:
cat /usr/local/etc/php.ini | grep -v '^$' | grep -v '^[;]'
上面同樣的把空白行,以及開頭為 ; 的註解拿掉,同樣是可以做到。

[jQuery] 驗證表單實作筆記 API/1.3/Selectors

驗證 form 表單屬於前端的工作,非常重要,避免使用者填錯格式,當然在 jQuery Plugin 可以找到專門驗證表單的外掛:jQuery plugin: Validation,此外掛不能相容於 IE 6,會沒辦法呈現效果,google 到一篇解決方法:Validating not happening in IE6 & no error removal on keyup,這篇裡面提到,必須使用 un-packed and un-minified 的版本,也就是沒有壓縮過的 javascript 檔案,不過我自己沒有試過就是了,底下針對表單的 checkbox select input radio 欄位做檢查的筆記,可以讓大家參考看看。 在 jQuery 1.3 裡面正式拿掉 [@attr] 的寫法,所以以前寫 $(“input:radio[@name=reg_sex]”) 都要改成 $(“input:radio[name=reg_sex]”),這樣才是正確的,可以參考 jQuery Selector 這篇的 Attribute Filters 部份,先來一篇網路上實做提示說明在 text 來未:jQuery: show plain text in a password field and then make it a regular password field on focus 作法很簡單:建立兩個輸入 password 的 text input 欄位:

[Read More]

[CodeIgniter] 使用者註冊 auth code 亂數認證碼圖片

我想這已經是網站最基本的技術,防止機器人大量註冊,或者是灌爆留言板,之前寫了兩篇製作認證碼的教學:[PHP]製作類似 google 網頁認證碼[PHP] 好用的留言板 驗證碼 功能,這篇是要寫如何實做把第一篇教學整合到 CodeIgniter 系統裡面,來筆記一下,以後用到就相當方便了,CodeIgniter 在 path 路徑上面有小 bug,查了國外討論區發現了這篇 Path to CSS doesn’t work a second time,不過這並沒有解決我的問題,主機的網址是 http://xxxxx.xxx/path/,所有的 CI 檔案都是放在 path 目錄底下,包含圖片是 http://xxxxx.xxx/path/images/,在 View 裡面基本上只要寫 這樣就可以顯示圖片了,但是要改成 才能,但是我的 index.php 是放在 /path/ 裡面,以絕對路徑跟相對路徑來想,都是不太合理的,所以後來用 來解決,不過這是暫時的問題,我比較龜毛,喜歡寫短一點的 code。 如何裝上類似 google 的認證碼呢,首先打開 index.php 檔案

/* 算出 index.php 根目錄 */
define('Document_root',dirname(__FILE__));
[Read More]

[Gmail] 最近發布的功能:進階搜尋,預覽收件夾,郵件內容語言轉換

最近在 Gmail Lab 看到發布了許多新功能,都蠻好用的,加速搜尋郵件內容,收件者,寄件者,郵件內容語言轉換,匯入其他郵件的通訊名單…等,進階搜尋是這之前就開發好得功能,可以在 search operators 這篇裡面找到相關的用法,簡單來說底下有個例子:

  • to:me is:starred” 搜尋寄信給您所標記的郵件
  • is:chat from:heather” 搜尋與heather使用者對話的內容
  • is:starred -in:inbox” 搜尋所有信件夾內未標記郵件
  • from:elliot filename:pdf” 搜尋 elliot 寄來信件附件檔帶有 pdf 檔案 上面例子看了很複雜吧,因為你還要記的很多相關的語法,才可以正確搜尋到,所以 google 很貼心的設計了

Search Autocomplete,之前我有寫一篇:New in Labs:Gmail search autocomplete 快速找尋使用者 email 跟附件檔案,造福了使用 Gmail 的大眾。 預覽收件夾這功能可以參考:New in Labs: Inbox preview,這功能用在當開啟 gmail 網頁時,會有 loading 的畫面,那針對速度慢得使用者,可以預先看到新的郵件標題,而不需要整個載入之後才看的到,目前還沒有遇到這種狀況,不過大家可以試試看。 郵件內容語言轉換(New in Labs: Automatic message translation),這功能相當不錯,可以利用 google translate tool 進行轉換您所想要的語言,如下圖: Gmail (by appleboy46) 蠻多好玩的功能,都可以去 Gmail Lab 去開起來喔,大家試試看吧

[高雄美食] 拉斐爾廚房焗烤飯

0524185739 (by appleboy46) 好久沒來寫篇美食了,最近吃了一家還不錯的焗烤飯,那就是在高雄市文化中心附近的拉斐爾,這間價位真的算可以投資的喔,還蠻便宜的,焗烤飯價位都介於 100~150 元之間,義大利麵也都在100元以下,加上 39 元就可以享用套餐系列喔,有烤麵包,飲料,濃湯。大家可以來這裡吃看看,除了一樓之外還有地下室可以用餐,地下室還蠻適合開同學會的,上面那張圖就是地下室的照片。 0524190141 (by appleboy46)

[Read More]

[CodeIgniter] Text 補助函數 character_limiter 不適用於中文字

CodeIgniter 裡面的 Text 補助函數,目前只適用於英文字體,不支援 utf-8 或者是簡體字體,bite 數超過2的都會出問題,當然是因為這是國外的 mvc 所以也沒有考慮到這麼週到就是了,也不是沒有辦法解決,之前就用了PHP官方網站所提供的一個函式來正確切割中文字串,就是要利用 ord 判斷 ASCII 編碼範圍,或者是可以使用 mb_substr 函式正確切割,之前寫一篇可以參考看看:[PHP] 如何切割中文標題。 底下是原本 CodeIgniter 所提供的 Text 函數

if ( ! function_exists('character_limiter'))
{
	function character_limiter($str, $n = 500, $end_char = '…')
	{
		if (strlen($str) < $n)
		{
			return $str;
		}
		
		$str = preg_replace("/\s+/", ' ', str_replace(array("\r\n", "\r", "\n"), ' ', $str));
    
		if (strlen($str) <= $n)
		{
			return $str;
		}
    
		$out = "";
		foreach (explode(' ', trim($str)) as $val)
		{
			$out .= $val.' ';
			
			if (strlen($out) >= $n)
			{
				$out = trim($out);
				return (strlen($out) == strlen($str)) ? $out : $out.$end_char;
			}		
		}
	}
}
[Read More]

[FreeBSD] 小技巧:防止 user 查詢觀看其他 user Processes

看了這篇:FreeBSD Prevent Users From Seeing Information About Processes Owned by Other Users,裡面寫到如何防止其他使用者登入 ssh 觀看到其他使用者的一些動作,平常一般使用者可以利用 ps aux 指令關看到所有 Processes 的狀況,包含了系統所有使用者,這篇就是介紹如何關閉使用者查看其他不屬於自己的 Processes,作法有兩種,底下分別介紹,效果是一樣的: 1. 寫入 /etc/sysctl.conf

echo 'security.bsd.see_other_uids=0' >> /etc/sysctl.conf
echo 'security.bsd.see_other_gids=0' >> /etc/sysctl.conf
2. 直接在 command line 執行
sysctl security.bsd.see_other_uids=0
sysctl security.bsd.see_other_gids=0
兩種效果是一樣的,當然可以查詢目前的系統狀況
sysctl -a | grep security