Wednesday, February 28, 2007

Java programming network

- ทำไมเขียนโปรแกรมเกี่ยวกับเครือข่ายบนระบบวินโดวส์ มีปัญหาเยอะจังข้อมูลส่งกันไปก็ไปไม่ถึง หรือ โปรแกรมมันไม่รับข้อความหว่า
- ทีเขียนบนลินุกซ์ ไม่มีปัญหาเลยอ่ะ ไม่เข้าใจต่อไปจะเขียนโปรแกรมแต่บนลินุกซ์แล้วนะเนี๋ย เซงวินโดวส์อ่ะ - -'

Thursday, February 22, 2007

Access Linux Partitions/Files under Windows

Ext2IFS
  • เมื่อติดตั้งโปรแกรม เราสามารไปเซตค่าได้ใน คอนโทลพาเนล
  • ปกติเมื่อเราติดตั้งระบบสองระบบในเครื่องเราเช่น ติดตั้งทั้งวินโดวส์ และ ลินุกซ์ ในลินุกซ์เราสามารถเห็นไดรว์ fat ของวอนโดวส์ได้แต่ในวินโดวส์ไม่สามารถเห็นไดรว์ของลินุกซ์ได้ ทางออกด้วยโปรแกรมนี้เลยครับ แต่มันค่อยข้างไม่ปลอดภัยยังไงก็ไม่รู้
  • Ext2IFS_1_11.exe เป็นโปรแกรมเปิด Driver แบบ ext2,3 บนวินโดวส์
  • Ext2 เป็นโปรเจคจบของคุณ Stephan Schreiber

What features are supported?

  • Complete reading and writing access to files and directories of volumes with the Ext2 or Ext3 file system.
  • Supports features which are specific to the I/O-system of Windows: Byte Range Locks, Directory Notfication (so the Explorer updates the view of a directory on changes within that directory), Oplocks (so SMB clients are able to cache the content of files).
  • Allows Windows to run with paging files on Ext2 volumes.
  • Stephan Schreiber

  • แต่ไมเดี๋ยวนี้ Ext2IFS มันขึ้นแบบนี้ไม่รู้เป็นเพราะไร
  • http://www.fs-driver.org/troubleshoot.html
  • ใช้ mountdiag G: (G คือ driver linux ที่เราเลือก letter เป็น G)
  • mountdiag จะช่วยบอกปัญหาของการ mount พาร์ทิชั่นของลินุกซ์
  • เหมือนจะมีปัญหากับ Ext3 อ่ะ
  • ก็เลยต้องหันไปใช้ linux reader

โปรแกรมอื่นที่คล้ายกัน


เพิ่มเติม
  • สาเหตุน่าจะเกียวกับ kernel ของ linux ด้วยหรือป่าวหว่า ไม่แน่ใจ

MIB Example

เท่าที่ทดสอบดูมันใช้ได้ทั้ง linux แล้วก็ window แม้กระทั่ง router อ่ะนะครับ
เท่าที่ลองสังเกตผลที่แสดงออกมาจาก .1.3

- แสดงโพรเซสที่กำลังทำงานอยู่ เหมือนกับว่าเราใช้ คำสั่ง tasklist หรือ ps aux บนลินุกซ์เลยอ่ะ
- แสดงการใช้งาน cpu ของแต่ละโพรเซส
- แสดงการใช้ mem ของแต่ละโพรเซส
- แสดงอุปกรณ์ที่ต่อ แสดง storage ทั้งที่เป็น drive ธรรมดา แล้วก็ remove drive ด้วย
- แสดงการใช้ พื้นที่ของแต่ละ drive แต่ดูผลมะค่อยรู้เรื่องว่ามันให้ค่าอาไรมาอ่ะเพราะว่าไม่บอกหน่วยมาด้วยอ่ะ
- แสดงขนาดของ memory เครื่องเป้าหมาย

example command
# snmpwalk -c public -v 1 [host] .1.3
# snmpwalk -c public -v 1 [host] hrSWRunName
# snmpwalk -c public -v 1 [host] hrSWRunPerfCPU
# snmpwalk -c public -v 1 [host] hrSWRunPerfMem
# snmpwalk -c public -v 1 [host] hrMemorySize

hrSWRunName โปรแกรมที่กำลังทำงานอยู่
hrSWRunPerfCPU cpu ที่แต่ละโปรแกรมใช้
hrSWRunPerfMem mem ที่แต่ละโปรแกรมใช้ขณะนั้น

hrMemorySize ขนาดของ memory ทั้งหมดของเครื่องเป้าหมาย

ifDescr อืนเทอเฟสของเครื่องนั้น
ifInOctets แพ็คเกจที่วิ่งเข้าอินเทอเฟส
ifOutOctets แพ็คเกจที่วิ่งออกจากอินเทอเฟส ไม่แน่ใจว่าหน่วยเป็น Bytes หรือป่าว

exam result of command
HOST-RESOURCES-MIB::hrSWRunName.1 = STRING: "System Idle Process"
HOST-RESOURCES-MIB::hrSWRunPerfCPU.1 = INTEGER: 726801
HOST-RESOURCES-MIB::hrSWRunPerfMem.1 = INTEGER: 16 KBytes
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 523760 KBytes

Tuesday, February 20, 2007

Insert Date Time format to MySQL

- การแทรกข้อมูลที่เป็นสติงเราคงเคยทำกันมาเยอะแหละ แต่มันไม่ใช่ว่าจะมีแค่ชนิด varchar อย่างเดียวอ่ะดิมันยังมี

- date -> year-month-day
- time -> hh:mm:ss
- boolean -> tinyint (0 หรือ 1)

ตัวอย่าง
insert into demo.user values('001', 'jui', 21, '1985-04-18', '0', '1:00:01');
insert into demo.user values('003', 'jui', 21, '1985-4-1', '0', '1:2:1');

หรือ values((select ...), '')

2 ตัวอย่างด้านบนสามารถเพิ่มข้อมูลได้ไม่มีปัญหา
ชนิดที่ได้ทำการเพิ่มคือ
db ชื่อ demo
เทเบิ้ล ชื่อ user
varchar, varchar, int, date, tinyint, time

- ถ้าเราทำการใส่ข้อมูลที่ไม่ถูกต้องเช่น เดือน เมษายน มี 30 วัน เราดันใส่แบบนี้

insert into demo.user values('003', 'jui', 21, '1985-4-31', '0', '1:2:1');

- การเพิ่มเกิดข้อผิดพลาดแน่นอน
- แต่ เราสามารถ SELECT ในรูปแบบนี้ได้โดยไม่ผิด syntax

SELECT birthday FROM user WHERE birtday > '1985-4-32'

Sunday, February 18, 2007

Java เกี่ยวกับ Sorting of JTable

TableSorter.java

- การ Sort ใน JTable นั้นถ้าเราต้องการเพิ่มลบเราต้องทำผ่าน TableModel
- ถ้าต้องการค่าในปัจจุบันของ row นั้นต้องทำผ่าน sorter object

MyDefaultTableModel dtmManageUser = new MyDefaultTableModel(dUser, hUser);
TableSorter sorterManageUser = new TableSorter(dtmManageUser);
JTable tblManageUser = new JTable(sorterManageUser);

sorterManageUser.setTableHeader(tblManageUser.getTableHeader());

dtmManageUser.addRow(vtRow);
sorterManageUser.getValueAt(row, column);

Saturday, February 17, 2007

Java Lesson: Using Swing Components

เป็นการสอนการใช้งาน component ใน package swing อ่ะน่ะ เยี่ยมครับ
คลิกที่นี่...

Friday, February 16, 2007

Java Deprecate method stop of thread

อืมตอนเขียนโปแกรมเกี่ยวกะเธรด พอเราเขียน objectThread.stop(); มันดันมีเส้นใต้สีเหลืองซะงั้นใน netbeans อ่ะ ก็เลยสงกะสัยอ่ะ ลองหาข้อมูลใน doc ของ จาวา เค้าก็บอกว่า มัน unsafe มันไม่ปลอดภัยซะงั้นแล้วเราจะทำไงดีใช้ก็ได้อยู่อ่ะ stop(); แต่มันตะหงิดๆ ยังไงก็ไม่รู้เหมือนกับเราเขียนโปรแกรมห่วยมาก ถ้าเรายังจะดึงดันใช้ stop(); อยู่อีก

- เพราะว่าถ้าเราเรียก thread.stop(); ขณะที่โปแกรมเรากำลังทำงานอยู่อาจส่งผลกระทบต่อการทำงานของโปรแกรมเราด้วย
- วิธีแก้มันก็มีหลายวิธีที่เราจะหลีกเลี่ยงจากการใช้ Stop(); อันหนึ่งของวิธีหยุด thread ก็คือการ interrupt();
- thread จะจบหรือ หมดหน้าที่ของ thread นั้นก็ต่อเมื่อ การทำงานในเมธอด run(); จบลง
- วิธีใช้ interrupt(); ในการหยุด thread ทำได้โดยการ try {} catch (InterruptedExcetpion ex) {} คลอบลูป while(true) ไว้ แล้วเราก็ทำการเรียก thread.interrupt(); จากที่ใหนก็ได้มันก็จะหลุดออกจากลูป while(true) แล้วก็จะเป็นการจบเมธอดรัน ก็คือจบการทำงานของ thread โดยสวัสดิภาพ ^^

public void run() {

try {
while (true) {

String now = MyAccessories.getNow();
System.out.println(now);
Thread.sleep(milliseconds);

}
} catch (Exception e) {
//e.printStackTrace();
System.out.println("Thread stoped...");
}
}

Wednesday, February 14, 2007

Beep Media Player on linux

- จะว่าไปแล้วโปรแกรมฟังเพลงในระบบลินุกซ์นั้นตัวที่เป็นที่นิยม(อันที่ชอบใช้อ่ะนะก็ต้อง xmms)
- ตอนลงทะเล 8 ป่าตองมันกับไม่ลง xmms ให้ ทำไงดีล่ะทีนี้เครื่องเราก็ไม่ได้ต่อเน็ตด้วยจะแอบเก็ตก็ไม่ได้อีก แย่เลยเรา
- มองไปในเมนู sound and media กับเห็นโปรแกรมแปลกๆ สำหรับตัวเองนะ มันชื่อ Beep Media Player ไม่รู้มันเป็นโปรแกรมอาไรก็ลองเปิดดู มันหน้าตาคล้าย xmms เลยอ่ะ พอดู about มันก็บอกว่า โปรแกรมนี้ เบสออน xmms ซะงั้น แต่มันไม่ค่อยมีปัญหากะภาษาไทยเลยอ่ะ(ก็แน่ล่ะมันทำงานบนทะเลอ่ะนะ ใช้ภาษาไทยไม่ได้ก็กะไรอยู่)
- ทีนี้ลองมา แอบเก็ตใน ubuntu ดูมันก็ไม่มีปัญหาเรื่องภาษาไทยเลยครับ (ของเค้าดีจริงๆ) ไม่เหมือน xmms ที่ต้องปรับแต่งตั้งนานกว่าจะให้มันอ่านภาษาไทยได้เนี๋ย

$ sudo apt-get install beep-media-player

อืมมันก็เป็นโปรแกรมฟัง เอ็มพี3 ที่น่าสนใจอีกตัวนะครับ (อีกแล้วก็ ogg ด้วย)

Sunday, February 11, 2007

Linux Permission access file

เมื่อเราใช้ คำสั่ง ls -l

# ls -l
total 4141
drwxr-xr-x 2 Jui None 0 Feb 7 18:11 AbiSuite
dr-xr-xr-x 27 Jui None 0 Oct 5 04:42 Application Data
drwxr-xr-x 3 Jui None 0 Jan 9 09:39 Contacts

มันแสดงอาไรของมันหว่า ไฟล์แต่ละไฟล์ ฟอล์เดอ แต่ละอันก็จะมีสิทธิ์ในการเข้าถึงของมัน
- ตัว d มันคือไรหว่า ^^ รู้แหละมันคือ ประเภทไฟล์นั่นเอง (d = directory, l = link, - = file)
- วรรคแรกคือ สิทธิ์ในการเข้าถึง
- เจ้าของไฟล์
- กลุ่ม
- วันที่สร้างไฟล์
- ชื่อไฟล์

r = 4
w = 2
x = 1

u = user
g = group
o = other

# chmod [ugo+rwx] [file]
(ถ้าเราเพียงแค่ +rwx ก็หมายถึง ใครก็ได้สามารถทำได้ทุกอย่างกะไฟล์อันเนี๊ย)
หมายถึง ตั้งให้ file สามารถ อ่าน เขียน และ ทำงานได้ กับทุก user เจ้าของไฟล์ user ที่อยู่กลุ่มเดี่ยวกัน เจ้าของไฟล์ และ user กลุ่มอื่นๆ เราสามารถใช้ - ในการลดสิทธิ์ได้ เช่น # chmod [o-r] [file] เป็นการลดสิทธิ์ในการอ่านไฟล์ของ user กลุ่มอื่นๆ

หรือ

# chmod [705] [file]
เราสามารถใช้ตัวเลขในการกำหนดสิทธิ์ได้
user เจ้าของไฟล์ 7 = 4 + 2 + 1 อ่าน เขียน รัน ได้หมด
user ในกลุ่มเดียวกัน 0 = 0 + 0 + 0 ทำอาไรไม่ได้เลย
user กลุ่มอื่น 5 = 4 + 0 + 1 อ่าน และ รัน ได้

Saturday, February 10, 2007

Java Split String

การแบ่งสติงมีเมธอด split();

- ถ้าเราต้องการแบ่งคำด้วย จุด ให้เรา
"127.0.0.1".split("\\.");
127
0
0
1

- ถ้าเราต้องการแบ่งด้วยตัวอักษร
"127.0.0.1".split("0");
127.
.
.
1

Related Links:

Friday, February 9, 2007

Java Connect to server socket

//โปรแกรมสำหรับตรวจสอบการเปิดพอร์ตจากเว็บอื่น


import java.io.*;
import java.net.*;

public class NetService {

public static void main(String[] args) throws Exception {
Socket s = new Socket("202.44.204.200", 80);
PrintStream ps = new PrintStream(s.getOutputStream());
//String msg = "GET /netservices/checkportall.php?host=www.msu.ac.th HTTP/1.1";
String msg = "GET /netservices/checkportall.php?host=www.yahoo.com";
// ลองตัด GET หรือ HTTP/1.1 รอดูผลการรัน
System.out.println("Connect 202.44.204.200 port 80...");
System.out.println("Send : " + msg);
ps.println(msg);

BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println("Wait...");
while(true) {
String line = br.readLine();
if (line == null) break;
System.out.println(line);
}
System.out.println("End program...");
}

/** Creates a new instance of NetService */
public NetService() {
}

}

Monday, February 5, 2007

Crond สำคัญไฉน

อืมอันนี้ก็ไม่รู้ครับ
crond เป็นโปรแกรมที่คอยเรียกโปรแกรมอื่นทำงานตามช่วงเวลาที่กำหนดอีกทีหนึ่งอ่ะครับ

- มันเอาไว้ตั้งเวลาให้โปรแกรม หรือ สคริปทำงานอ่ะครับ
- ถ้าเปรียบกะในระบบวินโดวส์ก็ Scheduled Tasks อ่ะนะ จำไว้

ด้วยรักและแบ่งปัน ตอนจบ

ตอนก่อนเราไปดูงานที่นรกวันนี้ไปดูงานที่สวรรค์กัน ^^

ครั้งดูงานในนรกภูมิจนทั่วแล้ว เขาจึงขอใช้สิทธิ์ ไปดูงานบนสวรรค์บ้าง ที่เมืองสวรรค์อันแสนสุข ชายหนุ่มได้พบแต่สิ่งที่น่ารื่นรมย์รวมทั้งเขายังได้พบบางสิ่งบางอย่างที่เขาเคยเห็นมาในนรกด้วย เจ้าสิ่งที่ว่านี้ก็คือ เทวดาทุกองค์บนสวรรค์ล้วนมีช้อนยาวๆ หลายเมตรผูกติดมือทั้งสองเช่นเดียวกัน แต่เทวดาเหล่านั้นหาทุกข์ไม่ เพราะเทพยดาทั้งปวงสามารถตักอาหารเข้าปากได้อย่างเอร็ดอร่อย เมื่อได้กินอิ่มนอนอุ่น จังไม่ต้องสงสัยเลยว่าการเกินเป็นเทวดาบนสวรรค์จะมีความสุขเพียงไร

คำตอบก็อยู่ตรงที่ว่า เมื่อถึงเวลาอาหาร เทวดาทั้งปวงจะแบ่งกันออกเป็นสองฟาก นั่งหันหน้าเข้าหากัน จากนั้นต่างฝ่ายต่างก็ใช้ช้อนอันแสนยาวของตัวเองตักอาหารที่อยู่ตรงหน้า แต่เมื่อตักแล้วไม่ได้เสียเวลาพยายามนำอาหารนั้นเข้าปากของตนเองอย่างยากเย็นเหมือนสัตวน์นรกหรอกนะ ทว่าพวกเขาตักอาหารได้แล้วก็ช่วยป้อนให้กับเพื่อนเทวดาที่นั่งอยู่ฝั่งตรงข้ามกับตัวเองต่างหาก โดยวิธีนี้บรรยากาศการทานอาหารร่วมกันในแต่ละวันของเทวดาบนสวรรค์จึงนับว่าเป็นช่วงเวลาอันแสนสุขอย่างยิ่ง ตักอาหารไป ยิ้มให้กันไปสบตากันไปอย่างมีไมตรีจิต แต่ละมื้อจึงอิ่มทั้งการและอิ่มทั้งใจเพราะต่างฝ่ายต่างก็ได้ "ให้" แก่กันและกันอย่างเอื้ออารีจนเป็นวิถีชีวิตประจำวันอันรื่นรมย์

"อย่าถามว่าชีวิตนี้ใครจะให้อะไรแก่เธอ"
"แต่จงถามว่าชีวิตนี้เธอจะให้อะไรแก่ใครบ้าง"

จบครับ

Sunday, February 4, 2007

ด้วยรักและแบ่งปัน ตอนแรก

หนังสือ ธรรมะสบายใจ
เรื่อง ด้วยรักและแบ่งปันอันแสนสุข
ขอยกมาช่วงหนึ่งก็แล้วกันครับ

ชายหนุ่มคนหนึ่งได้สิทธิพิเศษ ไปศึกษาดูงานในนรก และสวรรค์ เขาเลือกไปดูงานในนรกก่อน ที่นรกนั้นมียมบาลตนหนึ่งเป็นมัคคุเทศก์พาไปชมแดนต่างๆ ซึ่งล้วนแล้วแต่เป็นทัณฑสถานอันน่าสะพรึงกลัวเมื่อชมสถานที่ต่างๆ จนครบแล้ว เจ้าพนักงานประจำนรกก็พาชายหนุ่มไปดูวิถีชีวิต คือการอยู่การกินของชาวนรกบ้างว่าเป็นอย่างไร

ที่ห้องอาหาร เมื่อถึงเวลาอาหารเช้า มีสัตว์นรกจำนวนมากมายนั่งประจำอยู่ที่โต๊ะ และอาหารก็ถูกจัดเตรียมเอาไว้เต็มโต๊ะอย่างพร้อมสรรพ แต่เขาสังเกตดูพบว่าสัตว์นรกเหล่านั้นมีร่างกายผอมโซหน้าตาอมทุกข์ ทั้งๆ ที่มีอาหารมากมาย แต่พวกเขาก็หาได้กินอาหารเหล่านั้นอย่างง่ายดายแต่อย่างใดไม่ ตรงกันข้าม กว่าจะกินอาหารได้แต่ละคำช่างทุกข์หนักหนาสาหัสเสียเหลือเกิน เมื่อพินิจดูอย่างถึ่ถ้วนชายหนุ่มจากมนุษยโลกก็พบว่าเพราะเหตุใดสัตว์นรกเหล่านั้นจึงทุกข์และผมโซเหมือนไม้เสียบลูกชิ้นกันทั่วทุกตัวตน

เคล็ดลับแห่งความผอมกะหร่องของสัตว์นรกอยู่ตรงที่สัตว์นรกทุกตัวล้วนมีช้อนที่ยาวหลายเมตรผูกติดมือ เมื่อถึงเวลาอาหาร สัตวืนรกเหล่านั้นสามารถใช้ช้อนตักอาหารได้เต็มช้อน แต่มีปัญหาตรงที่เมื่อตักอาหารแล้ว ถึงเวลาจะนำอาหารเข้าปากกลับทำไม่ได้ เพราะช้อนที่ยาวเกินไปนั้น เมื่อพวกเขาตักอาหารได้แล้วและยื่นกลับมาหาปากตัวเอง ช้อนก็จะเลยปากไปหลายเมตร เมื่อเป็นเช่นนี้ ถึงแม้มีอาหารมากมายให้ตัก แต่สัตว์นรกก็นำอาหารเข้าปากตัวเองไม่ได้อยู่ดี

เมื่ออาหารมี แต่กินไม่ได้ มีก็เหมือนไม่มี พวกเขาจึงทุกข์เพราะความหิวอย่างสาหัสสากรรจ์ วันๆ ทำได้อย่างดีก็เพียงนั่งมองอาหารแล้วทำตาปริปๆ ด้วยความเศร้าสลด ชายหนุ่มเห็นสภาพอันน่าเวทนาของสัตว์นรกแล้วก็อดสลดใจไม่ได้

ง่วงจัง ครั้งหน้าไปดูงานที่สวรรค์กันครับ

Saturday, February 3, 2007

การให้

การให้ มองเพียงผิวเผินเสมือนการเสีย หากแท้จริงแล้วการให้นั่นแหละคือการได้รับ จงเรียนรู้ที่จะเป็นผู้ให้ แล้วเธอจะได้รับอย่างแท้จริง (ธรรมะหลับสบาย หน้า 131) On the surface Giving may seem like losing. Actully,giving is receiving. Learn how to give, And you will truely receive.

สาธุ

Thursday, February 1, 2007

Install & Uninstall compile program linux

โปรแกรมที่เราติดตั้งด้วยการคอมไฟล์นั้น เราจะสามารถ ถอน มันออกได้อย่างไร

นี่คือการแตกไฟล์
- tar -xzvf file.tar

การคอมไฟล์ และการติดตั้ง

$ ./configure
$ make
$ make install

ถ้าใน folder ที่เราแตกออกมาข้างในมีไฟล์ uninstall ด้วยล่ะก็เราสามารถถอนโปรแกรมได้ด้วยคำสั่ง
$ make uninstall