Friday, November 24, 2006
Thursday, November 23, 2006
อยากได้กระเป๋า Notebook ที่ใส่กล้อง DSLR ได้
เมื่อก่อนไม่มี Notebook ชีวิตก็สะดวกสบาย ไปไหนไม่ต้องหิ้วอะไรไปด้วย พอซื้อ Notebook ชีวิตก็ลำบากขึ้นอีกนิด เพราะต้องหิ้วมันไปด้วย ไอ้ครั้นจะเก็บไว้อพาร์ทเมนต์ หรือไว้ Office ก็ไม่รู้จะซื้อมันมาทำไมสู้ซื้อ Desktop แรงๆไม่ได้ อีกอย่างกลัวหายด้วย เร็วๆนี้ได้ Canon 350D มาครอบครอง ชีวิตก็ลำบากขึ้นเป็นสองเท่าเพราะต้องหิ้วสองกระเป๋า เหตุผลก็เรื่องเดิมๆ กลัวหาย เพราะราคารวมสองอย่างก็เรือนแสน
เคยคิดเล่นๆว่ามันน่าจะมีอะไรที่ใส่ได้ทั้ง Notebook และกล้อง DSLR ลอง search จาก google ดูมันมีจริงๆแฮะ ของ Lowepro รุ่น CompuDaypack ในไทยเห็นมีขายที่ AV Camera ราคาไม่เกิน 2,500 บาท
Tuesday, November 21, 2006
เมื่อถูก Brute-Force Attack ที่ sshd
ถ้าเราดูจาก /var/log/message หรือ /var/log/auth.log เราจะพบ message ประมาณนี้แสดงว่ามีคนตั้งในล้วงคอห่านแล้วล่ะครับ :P
Nov 21 21:46:49 mail sshd[1917]: Invalid user lead from 209.219.17.122
Nov 21 21:46:51 mail sshd[1922]: Invalid user romeo from 209.219.17.122
Nov 21 21:46:53 mail sshd[1927]: Invalid user julieta from 209.219.17.122
Nov 21 21:46:55 mail sshd[1932]: Invalid user sarolta from 209.219.17.122
Nov 21 21:46:58 mail sshd[1937]: Invalid user zemba from 209.219.17.122
Nov 21 21:47:00 mail sshd[1953]: Invalid user amar from 209.219.17.122
Nov 21 21:47:02 mail sshd[1958]: Invalid user jubar from 209.219.17.122
Nov 21 21:47:04 mail sshd[1963]: Invalid user mckey from 209.219.17.122
Nov 21 21:47:06 mail sshd[1968]: Invalid user notorius from 209.219.17.122
แต่ก็มีวิธีป้องกันอย่างง่ายๆ โดยใช้โปรแกรมชื่อ denyhosts เนื่องจากผมใช้ Gentoo ซึ่งมี denyhosts อยู่ใน portage อยู่แล้ว
ซึ่งก็ติดตั้งโดย
#emerge denyhosts
ถ้าหากยังไม่ได้ config ระบบ log ให้แยกแยะ log message โดยเฉพาะการ authentication ให้เก็บใน /var/log/auth.log ก็สามารถ config ตาม Syslog-ng (ผมใช้ syslog-ng)
วิธีการ config denyhosts สามารถอ่านได้จาก HOWTO Protect SSHD with DenyHosts
เครื่องที่พยายามเจาะเข้ามาจะถูกใส่ IP ไว้ในไฟล์ /etc/hosts.deny เช่นในเครื่องผมมีอยู่เยอะเลย
tail -f /etc/hosts.deny
sshd: 82.110.225.132
sshd: 202.167.234.97
sshd: 66.63.172.178
sshd: 61.30.187.58
sshd: 218.38.14.121
sshd: 210.66.37.245
sshd: 60.209.128.199
sshd: 61.57.4.200
sshd: 211.253.228.88
sshd: 209.219.17.122
กลับไปดูใน auth.log อีกทีพบว่ามันอดเข้ามาแล้ว...สม..
Nov 21 21:47:16 mail sshd[2029]: refused connect from 122.17.219.209.transedge.com (209.219.17.122)
Thursday, December 15, 2005
ตัดคำภาษาไทยด้วย Java
JDK สามารถตัดคำภาษาไทยได้มานานแล้วแต่ไม่ค่อยมีคนรู้ บังเอิญไปอ่านเจอใน Blog ของคุณฮุ้ย
เมื่อก่อนไม่ค่อยสนใจระบบภาษาไทยสักเท่าไหร่ สงสัยจะเป็นสาเหตุหนึ่งที่ผมพูดภาษาไทยไม่ค่อยรู้เรื่อง (อังกฤษยิ่งแย่) จากการทดสอบระบบตัดคำภาษาไทยใน JDK เทียบกับ ICU ให้ผลที่ต่างกัน จากสองตัวอย่างขอฟันธงว่า JDK ให้ผลที่ดีกว่า ICU ครับ
ข้อความที่เอามาทดสอบคือ “ชั่วโมงอินเทอร์เน็ตต้อนรับปีจอ แถมมโหฬารนานสูงสุด 2 เท่า”
ผลการตัดคำภาษาไทยของ
JDK 1.4 BreakIterator
“ชั่วโมง-อิน-เทอร์เน็ต-ต้อนรับ-ปี-จอ- -แถม-มโหฬาร-นาน-สูง-สุด- -2- -เท่า-”
“ชั่วโมง-อินเทอร์เน็ต-ต้อน-รับ-ปี-จอ- -แถม-มโหฬาร-นาน-สูง-สุด- -2- -เท่า-”
DictionaryBasedBreakIterator“ชั่วโมง-อินเทอร์เน็ต-ต้อน-รับ-ปี-จอ- -แถม-มโหฬาร-นาน-สูง-สุด- -2- -เท่า-”
อีกตัวอย่าง
source
ประธานาธิบดีสหรัฐฯ ยอมรับว่า เขาได้เซ็นคำสั่งลับเพื่ออนุญาตให้เจ้าหน้าที่ความมั่นคงแห่งชาติสามารถดัก ฟังโทรศัพท์ของประชาชนในสหรัฐฯจริง ขณะเดียวกันก็พยายามต่อสู้เพื่อให้มีการขยายเวลาการบังคับใช้กฎหมายแพทริออตเพื่อต่อต้านการก่อการร้ายออกไปอีก
JDK 1.4 BreakIterator
ประธานาธิบดีสหรัฐฯ- -ยอม-รับ-ว่า- -เขา-ได้-เซ็น-คำสั่ง-ลับ-เพื่อ-อนุญาต-ให้-เจ้าหน้าที่-ความ-มั่นคง-แห่ง-ชาติ-สามารถ-ดัก- -ฟัง-โทรศัพท์-ของ-ประชาชน-ในสหรัฐฯ-จริง- -ขณะ-เดียวกัน-ก็-พยายาม-ต่อสู้-เพื่อให้-มี-การ-ขยาย-เวลา-การ-บังคับ-ใช้-กฎหมาย-แพ-ท-ริ-ออ-ต-เพื่อ-ต่อต้าน-การ-ก่อการ-ร้าย-ออก-ไป-อีก-
ประธานาธิบดี-สหรัฐฯ- -ยอม-รับ-ว่า- -เขา-ได้-เซ็น-คำ-สั่ง-ลับ-เพื่อ-อนุญาต-ให้-เจ้า-หน้าที่-ความ-มั่น-คง-แห่ง-ชาติ-สามารถ-ดัก- -ฟัง-โทรศัพท์-ของ-ประชาชน-ใน-สหรัฐฯ-จริง- -ขณะ-เดียว-กัน-ก็-พยายาม-ต่อ-สู้-เพื่อ-ให้-มี-การ-ขยาย-เวลา-การ-บังคับ-ใช้-กฎหมาย-แพ-ทริออ-ตเพื่อต่อต้านการก่อการร้ายอ-อก-ไป-อีก-
DictionaryBasedBreakIteratorประธานาธิบดี-สหรัฐฯ- -ยอม-รับ-ว่า- -เขา-ได้-เซ็น-คำ-สั่ง-ลับ-เพื่อ-อนุญาต-ให้-เจ้า-หน้าที่-ความ-มั่น-คง-แห่ง-ชาติ-สามารถ-ดัก- -ฟัง-โทรศัพท์-ของ-ประชาชน-ใน-สหรัฐฯ-จริง- -ขณะ-เดียว-กัน-ก็-พยายาม-ต่อ-สู้-เพื่อ-ให้-มี-การ-ขยาย-เวลา-การ-บังคับ-ใช้-กฎหมาย-แพ-ทริออ-ตเพื่อต่อต้านการก่อการร้ายอ-อก-ไป-อีก-
code ที่ใช้package th.co.inet.workbreak;
import java.text.BreakIterator;
import java.util.Locale;
//import com.ibm.icu.text.BreakIterator;
//import com.ibm.icu.text.DictionaryBasedBreakIterator;/**
** @author Nont Banditwong
public static void printEachForward(BreakIterator boundary, String source) {
** TODO To change the template for this generated type comment go to
** Window - Preferences - Java - Code Style - Code Templates
*/
public class ThaiWorkbreak {StringBuffer strout = new StringBuffer();
System.out.println(strout.toString());
int start = boundary.first();
for (int end = boundary.next(); end != BreakIterator.DONE; start = end, end = boundary.next()) {
strout.append(source.substring(start, end) + “-”);
}}
public static void main(String[] args) {
BreakIterator boundary = BreakIterator.getWordInstance(thaiLocale);
Locale thaiLocale = new Locale(“th”);
String input = “ชั่วโมงอินเทอร์เน็ตต้อนรับปีจอ แถมมโหฬารนานสูงสุด 2 เท่า”;//BreakIterator boundary = DictionaryBasedBreakIterator.getWordInstance(thaiLocale);
boundary.setText(input);
printEachForward(boundary, input);
}
}
ด้านล่างเป็นรูปจากโปรแกรมตัวอย่างของคุณฮุ้ย