Binary Clock

วันอาทิตย์ที่ 12 กรกฎาคม พ.ศ. 2552

VIM





วันนี้ ได้ เผอิญอยากรู้ ว่า Vi Editor มันคืออะไร ก็เลยหาข้อมูลมา
VIM หรือ vi-improved เป็น vi เวอร์ชันเพิ่มความสามารถ แล้วก็มีให้ดาวน์โหลดไปใช้ได้แทบทุก OS มันจะมีฟังก์ชันหล่อๆเพิ่มขึ้นมาที่ vi ไม่มี เท่าที่ผมเห็นว่าสำคัญมีอยู่สองสามอย่าง

* Autocomplete อันนี้หล่อมากเลย ยอมรับ ทำได้หลายอย่าง เช่น
o ชื่อไฟล์ หรือ path ไปยังไฟล์ สะดวกมากเวลาต้องเขียนไฟล์ที่มันต้องระบุ path
o คำที่เคยพิมพ์มาแล้ว
o keyword ในภาษาเขียนโปรแกรม โดยมันเป็น context-sensitive ด้วย (Omni-completion) อันนี้อาจจะต้องลง plug-in เพิ่ม
* Multiple Tabs เปิด Tab หลายๆอันได้
* Visual Mode ทำให้การ คัดลอก ลบ แก้ไข เป็นเรื่องง่ายขึ้นมาก เลือกเป็นแบบ จุดเริ่มต้น-สิ้นสุด เป็นบรรทัด หรือเป็นคอลัมน์ได้ (อันหลังนี่เหมาะมากสำหรับไฟล์ข้อความที่ลักษณะเหมือนตาราง)

ตอน นี้ VIM เลยกลายเป็น text editor ที่ผมมักจะใช้แทน notepad ไปแล้ว :) ปัญหาจะเกิดอีกทีตอนใช้ภาษาไทย ซึ่งผมคิดว่าอย่าใช้ไฟล์ text ภาษาไทยกับ VIM เลยดีกว่า คนที่น่าจะมีปัญหานี้ที่สุดคงเป็นพวกเขียนเว็บ ..

หลัง จากอ่านบทความจำพวกแนะนำ vi หรือ vi สำหรับมือใหม่ มานับไม่ถ้วน ผมพบว่าคำสั่งพื้นฐานเท่าที่จะสามารถทำให้เราใช้ VIM แทน Notepad ได้ มีอยู่ไม่กี่ตัว ดังต่อไปนี้

ออกจากโปรแกรม

พิมพ์ :q!

: เป็นการบอกว่าจะมี command อื่นๆตามมา ส่วน q แปลว่าออก และ ! แปลว่าออกแบบบังคับ (ถ้าเราแก้ไขไฟล์มันจะไม่ยอมให้ออกธรรมดา)

หรืออาจจะใช้ :wq เป็นการ save แล้วออก

ถ้า save เฉยๆก็ :w myfilename

ไป Command Mode

กด Ctrl + [ หรือ Esc

เราควรอยู่ใน Command Mode ตลอดเวลาที่ทำงาน ใช้ Insert Mode เฉพาะเวลาจะพิมพ์เท่านั้น :)

เคลื่อน cursor ไปมา

ใช้ปุ่ม h j k l แทน ซ้าย ล่าง บน ขวา

ถ้าพบว่าจำยาก ลองมองตัว j ว่ามันเหมือนลูกศรชี้ลงล่าง! แล้วจะจำได้ (ได้มาจาก video youtube ซักอัน)

การเคลื่อนในระดับคำ

* w ไปคำต่อไป
* b คำก่อนหน้า

ระดับบรรทัด คล้ายๆกับ regex

* ^ ต้นบรรทัด
* $ ท้ายบรรทัด

ระดับ document

* gg ต้น document
* G ท้าย document

ไป Insert Mode

เข้าได้หลายแบบ แบบแรกควรรู้คือ a กับ i

* a ต่อหลัง cursor
* i วางหน้า cursor

และแบบที่สอง ที่หลังจากใช้สองอันแรกจนเจอปัญหาบางอย่างแล้วจะพบว่า Useful มาก คือ

* A หลังสุดของบรรทัด
* I หน้าสุด

และแบบสุดท้าย เป็นการแทรกบรรทัดว่างๆเข้าไป

* o แทรกบรรทัดใหม่ ใต้บรรทัดปัจจุบัน
* O แทรกบรรทัดใหม่ เหนือบรรทัดปัจจุบัน (So useful!)

ยกเลิก – Undo

กด u

อยาก Redo กด Ctrl+r

Autocomplete

* กด Ctrl + P เป็นการเติมจากคำก่อนหน้า
* กด Ctrl-x-f เป็นการเติมชื่อหรือพาธไปยังไฟล์ กด Ctrl-f ต่อจะวนรอบชื่อไฟล์ไปเรื่อยๆ
* กด Ctrl-x-o เป็น omni-completion อาจจะต้องลง plug-in เพิ่มสำหรับไฟล์บางแบบ (เช่น C++)

เพิ่มตัวบอกบรรทัด

:set ruler

Visual Mode

มีสามแบบ

* แบบเริ่มต้น - สิ้นสุด กด v
* แบบบรรทัด กด V
* แบบคอลัมน์ (Visual Block Mode) กด Ctrl + V

หลังจากกดแล้วจะใช้ cursor เลื่อนซ้ายขวาเพื่อ select ข้อความได้ ซึ่งหลังจาก select แล้วอาจจะทำอะไรได้หลายอย่าง เช่น

* ลบ กด d
* คัดลอก กด y (yank) เวลาจะเอาไปวางก็กด p หรือ P
* แทนที่ กด c แล้วพิมพ์คำตามเข้าไป แล้วกด enter (จะเห็นประโยชน์ตอนใช้ในแบบคอลัมน์)
* เพิ่ม tab ด้านหน้า (indent) กด >

ค้นหา

อันนี้ใช้บ่อยสุดๆ กด / แล้วพิมพ์ regular expression ของคำที่ต้องการค้น เช่น /search_key_word

นอก จากนี้ยังมีวิธีค้นหาแบบใช้ * คือเลื่อน cursor ไปเหนือคำที่ต้องการค้นหาแล้วกด * จะทำให้ VIM ทำ highlight ให้กับคำเดียวกันทุกคำในเอกสารนั้น เหมาะเวลาที่จะใช้เปลี่ยนชื่อตัวแปร หรือไล่โค้ด อะไรทำนองนั้น

แทนที่ – Replace

ใช้คำสั่ง :%s/before/after/gc

* ตัว c แปลว่า confirm คือให้ถามก่อนแทนที่
* ถ้าไม่มีตัว g มันจะแทนที่แค่บรรทัดละตัว
* before และ after เป็น regular expression ของตัวที่จะให้แทนก่อนและหลัง
* s เป็น substitute command
* % เป็นการบอกว่าแทนทั้งไฟล์ (จริงๆแล้วบอกเป็นเลขบรรทัดได้ แต่จะไม่ cover แล้วกัน)

จัดย่อหน้าให้สวยงาม

หลัง จาก save ไฟล์ไปแล้ว VIM จะฉลาดพอที่จะทำ syntax highlight สวยๆให้ดู รวมถึงจัดย่อหน้าให้ไฟล์ให้ถูกต้องตามประเภทไฟล์ (เช่นไฟล์ .c .cpp)

กด gg=G

Tabs

จำ เป็นเหมือนกันเวลาต้องเปิดสอง (หรือมากกว่า)ไฟล์คู่กัน จริงๆแล้ว VIM มันมี buffer ให้ใช้หลายๆอันด้วย แต่ผมว่า concept ของ Tab มันเข้าใจง่ายกว่านะ

* :tabnew path/to/filename เปิดไฟล์ หรือสร้างไฟล์ใหม่
* :tabc ปิด tab ปัจจุบัน
* gt และ gT ไปแทบต่อไป และก่อนหน้า

ที่มา : http://www.tod4yis.net/post/VIM-The-Basics.aspx

วันอาทิตย์ที่ 5 กรกฎาคม พ.ศ. 2552

วันเข้าพรรษา เลยนำ website ของแม่ชีทศพร มาให้เพื่อนๆดูคะ

มีวิดีโอที่เป็นธรรมมะมา แบ่งปันให้เพื่อนๆๆคะ
จะได้ บุญเยอะๆๆ
http://www.thossaporn.com
ประเภทของไวรัส
บูตเซกเตอร์ไวรัส

Boot Sector Viruses หรือ Boot Infector Viruses คือ ไวรัสที่เก็บตัวเองอยู่ในบูตเซกเตอร์ของดิสก์ การ ใช้งานของบูตเซกเตอร์คือเมื่อเครื่องคอมพิวเตอร์เริ่มทำงานขึ้นมาตอนแรก เครื่องจะเข้าไปอ่านบูตเซกเตอร์โดยในบูตเซกเตอร์จะมีโปรแกรมเล็กๆไว้ใช้ใน การเรียกระบบปฏิบัติการขึ้นมาทำงานอีกทีหนึ่ง บูตเซกเตอร์ไวรัสจะเข้าไปแทนที่โปรแกรมดังกล่าว และไวรัสประเภทนี้ ถ้าไปติดอยู่ในฮาร์ดดิสก์ โดยทั่วไปจะเข้าไปอยู่บริเวณที่เรียกว่า Master Boot Sector หรือ Parition Table ของฮาร์ดดิสก์นั้น ถ้าบูตเซกเตอร์ของฮาร์ดดิสก์ใดมีไวรัสประเภทนี้ติดอยู่ ทุกๆ ครั้งที่บูตเครื่องขึ้นมาโดย พยายามเรียกดอสจากดิสก์นี้ ตัวโปรแกรมไวรัสจะทำงานก่อนและจะเข้าไปฝังตัวอยู่ในหน่วยความจำเพื่อเตรียม พร้อมที่จะทำงานตามที่ได้ถูกโปรแกรมมา แล้วตัวไวรัสจึงค่อยไปเรียกดอสให้ขึ้นมาทำงานต่อไป ทำให้เหมือนไม่มีอะไรเกิดขึ้น

โปรแกรมไวรัส

Program Viruses หรือ File Intector Viruses เป็นไวรัสอีกประเภทหนึ่งที่จะติดอยู่กับโปรแกรม ซึ่งปกติก็คือ ไฟล์ที่มีนามสกุลเป็น COM หรือ EXE และบางไวรัสสามารถเข้าไปติดอยู่ในโปรแกรมที่มีนามสกุลเป็น sys และโปรแกรมประเภท Overlay Programs ได้ด้วย โปรแกรมโอเวอร์เลย์ปกติจะเป็นไฟล์ีที่มีนามสกุลที่ขึ้นต้นด้วย OV วิธีการที่ไวรัสใช้เพื่อที่จะเข้าไปติดโปรแกรมมีอยู่ 2 วิธี คือ การแทรกตัวเข้าไปอยู่ในโปรแกรม ผลก็คือ หลังจากที่โปรแกรมนั้นติดไวรัสไปแล้ว ขนาดของโปรแกรมจะใหญ่ขึ้น หรืออาจมีการสำเนาตัวเองเข้าไปทับส่วนของโปรแกรมที่มีอยู่เดิม ดังนั้นขนาดของโปรแกรมจะไม่เปลี่ยนและยากที่จะซ่อมให้กลับเป็นดังเดิม การทำงานของไวรัสโดยทั่วไป คือ เมื่อมีการเรียกโปรแกรมที่ติดไวรัสอยู่ ตัวไวรัสจะเ้ข้าไปหาโปรแกรมตัวอื่นๆ ที่อยู่ในดิสก์เพื่อทำสำเนาตัวเองลงไปทันทีแล้วจึงค่อยให้โปรแกรมที่ถูก เรียกนั้น ทำงานตามปกติต่อไป

ม้าโทรจัน

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

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

โพลีมอร์ฟิกไวรัส

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

สทีลต์ไวรัส

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


อาการของเครื่องที่ติดไวรัส

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

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

Reference: http://www.dld.go.th/ict