最近在高雄面試的時候,被問到的資料庫問題,什麼是 left join,out join,inner join,其實這些都是寫基本 SQL 語法需要知道的,當然我比較少用到 out join,不過還是要知道一下比較好喔,底下來說明一下這些,整理一些心得
[javascript]判斷中文全形字數有幾個
在 ptt bbs 的 AJAX 版討論到如何判斷計算有幾個中文字數,那 TonyQ 兄跟 toshii 兄分別提供了兩種方法,我自己測試了一下包含全形字型,如:?,。…這些都算喔,我自己想到 中華電信 emome 的簡訊系統也會有判斷數字加上英文跟中文字的算法,看了一下大致上都是相同的。 TonyQ 解法:
/* 利用 regex pattern */ function chineseCount(word){ return word.split(/[\u4e00-\u9a05]/).length -1; } var word="test中asd文asd字as到底asd有幾asd個?"; alert(chineseCount(word));[Read More]
Linux Find 指令用法教學
[Linux] 利用 awk 或 perl command line 找出 passwd id 大於1000 的帳號
其實還蠻簡單的,只是想紀錄一下,利用 awk 或者是 perl command line 找出非系統產生的帳號 perl:
# # perl 寫法 # perl -an -F: -e 'if ($F[2] >= 1000) { print $F[0],"\n"; }' passwdawk:
# # awk 寫法 # awk -F ":" '($3 >= 1000) { printf $1 "\n"}' /etc/passwd
[FreeBSD]快速利用 cvsup-mirror 架設 CVSup Server (mirror site)
今天看到一篇:[教學]用 cvsup-mirror 架設 CVSup Server (mirror site),自己就來架設一下,其實還蠻容易的,因為 FreeBSD Ports 都已經包好,所以安裝起來也不困難,利用 cvsup-mirror 這個軟體就可以架設完成了,那如何在台灣找尋一台最佳連線速度的 mirror 伺服器呢,利用 fastest_cvsup 這個 ports 軟體,就可以了,當 FreeBSD 剛安裝完成,就是要先設定 cvsup mirror 的站台,我自己都是用 cvsup.tw.freebsd.org,這伺服器是交大資工架設,domain 同 freebsd.csie.nctu.edu.tw,我們利用 fastest_cvsup 可以另外找尋更好的伺服器。
# # ports 安裝 # cd /usr/ports/sysutils/fastest_cvsup make install clean說明如何使用指令:
# # 找尋台灣區最佳的伺服器 # fastest_cvsup -c tw # # 找尋最上層 cvsup 伺服器,如 cvsup.freebsd.org # fastest_cvsup -c tld[Read More]
[PHP]製作類似 google 網頁認證碼
我在 網站製作學習誌 發現一篇 [Web] 連結分享 裡面有一篇:用php做出類似Google的字詞驗證圖片,這一篇寫的不錯,跟我之前寫的一篇:[PHP] 好用的留言板 驗證碼 功能,驗證碼的強度還要更好,畢竟這樣比較不會被破解,然而這篇加上許多干擾的驗證,也選用了比較複雜的字型來提供給網站驗證部份,在 google 的登入系統部份,剛開始都是給使用者方便,不會跑出驗證碼的部份,可是只要輸入幾次錯誤的帳號密碼之後,google 的驗證碼就會跑出來了,而這個很類似 google 的驗證碼提供給大家使用,當然也感謝原作者,因為在Google字詞驗證與 CAPTCHA 都已經相繼被破解,這消息我不知道從哪裡來的,在 這裡 有提到,詳細情祥可能要網路查查了 那在這個 php class 說明以及 code 如下,相信都寫的很清楚: html 認證部份:
Type the characters you see in the picture below.[Read More]
[FreeBSD筆記] 快速搜尋 ports 軟體 psearch
在 FreeBSD 內建的搜尋 ports 指令搜尋速度有點慢,加上搜尋出來還蠻難找的,所以推薦一個搜尋 ports 軟體:psearch,支援 regular expression 安裝方式:
# # ports 安裝 # cd /usr/ports/ports-mgmt/psearch make install clean rehash;使用方法:
options: -V, --version 顯示版本資訊 -h, --help 顯示 help 資訊 -c CATEGORY, --category=CATEGORY 快速搜尋方式,可以指定資料夾,例如:www,chinese -f FILE, --file=FILE 指定 INDEX 的檔案 Default: "/usr/ports/INDEX-7" -l, --long 顯示詳細的 ports 資訊介紹 -m, --maintainer 取代 ports 的簡短訊息,顯示維護者資訊 也可以搜尋 ports 的維護者所有維護的 ports -n, --name 顯示標準的訊息,基本的版本訊息 -o, --or 搜尋任何符合 PATTERN 的 ports 資訊 -s, --search_long 顯示 ports 詳細的資訊,速度較慢 -v INVERSE_PATTERN, --inverse=INVERSE_PATTERN 反向搜尋 ports 名稱[Read More]
[PHP] pear 模組 HTTP_Upload 多重檔案上傳 Multiple files upload
自從上次介紹了 [PHP]好用的上傳 pear 模組 HTTP_Upload,最近又要使用到多重的檔案上傳,就又去看了一下官網的 document 寫的還蠻詳細的,大家去看看大概就知道我的作法了,底下是我的寫法: html 部份
[Read More]
[MySQL] 實做 MySQL Master-Master Replication 同步
今天無聊實做了 MySQL 資料庫同步化,那可以先看看 MySQL Master Slave Replication,中文網站可以上 google 查詢或者是看看這一篇:MySQL 設定 Replication (Master – Slave),基本上設定還蠻容易的,如果會 Master 同步到 Slave 的話,那 MySQL Master-Master 只是在用相同的方法在做一遍,如果不懂 MMM 的可以先參考這一篇:MySQL Master-Master Replication Manager(1) – 簡介,這篇寫的很清楚,今天看了文章,我實做起來,遇到一些問題,其實還蠻奇怪的,所以底下就來紀錄一下步驟,順便也說明一下。 實做兩台 Ubuntu 機器: db1:192.168.1.1 db2:192.168.1.2 先設定 db1: 目前我都是在 Ubuntu 7.10 底下實做的,那基本上只要有支援 MySQL 的 Linux 或者 FreeBSD 機器都可以實做這個方法: 步驟一:先修改 my.cnf 這個檔案: FreeBSD 的話在:/var/db/mysql/my.cnf Ubuntu:/etc/mysql/my.cnf 有的版本是在 /etc/my.cnf 所以不太一定,請依照自己的作業系統 修改:
# # bind-address 請 mark 起來,因為我們必須讓 MySQL Listen 各個不同的 IP Address #bind-address = 127.0.0.1 # # server id 請記得每台機器都設定不同喔 # server-id = 1 log_bin = /var/log/mysql/mysql-bin.log[Read More]
[FreeBSD]利用 DenyHosts 軟體擋掉暴力破解 ssh 的使用者
不管是架設好 Linux 跟 FreeBSD 通常都會有國外的 hacker 來 try 機器的 SSH 帳號密碼,我想這是很正常的,網路上也提供很多方法來分析 Log 檔,FreeBSD:/var/log/auth.log,我可以分析檔案,然後再利用 firewall like ipfw or pf 的方式來達到,或者是利用寫到 /etc/hosts.deny 來達到 Block 的功能,網路上有很多工具可以用,例如 DenyHosts,sshguard 或者是 sshit,可以參考我之前寫的一篇利用 sshit 來達到阻擋 ssh 使用者,然而今天來介紹一下 DenyHosts 再 FreeBSD 底下如何設定,還蠻方便的。 首先利用 ports 安裝,DenyHosts 是利用 python 的程式語言寫出來的:
Port: denyhosts-2.6_2 Path: /usr/ports/security/denyhosts Info: Script to thwart ssh attacks Maint: janos.mohacsi@bsd.hu B-deps: python25-2.5.2_3 R-deps: python25-2.5.2_3 WWW: http://denyhosts.sourceforge.net/ /* 利用 ports 安裝 */ cd /usr/ports/security/denyhosts; make install clean[Read More]