[MySQL]left, right, inner, outer join 使用方法

最近在高雄面試的時候,被問到的資料庫問題,什麼是 left join,out join,inner join,其實這些都是寫基本 SQL 語法需要知道的,當然我比較少用到 out join,不過還是要知道一下比較好喔,底下來說明一下這些,整理一些心得

表格 test1 資料表

2 (by appleboy46)

表格 test2 資料表

1 (by appleboy46)

[Read More]

[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 指令用法教學

筆記一下自己常用的 find 指令,適用於 FreeBSD 或者是 Linux 各大 distribution,系統管理這個指令就相當重要了,在搭配 grep,sed,awk,perl 可以快速找到自己要的檔案。我自己本身很常用到 grep,find,awk 這些撰寫 shell script。 底下先來介紹一下 find: 1. 找出 . 底下的 php 檔案

1
find . -name "*.php"

找出 . 底下非 php 副檔名檔案

1
find . -not -name "*.php"
[Read More]

[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"; }' passwd
awk:
#
# 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]
php 

[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]

[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 的功能,網路上有很多工具可以用,例如 DenyHostssshguard 或者是 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]