Wednesday, March 11, 2009

ปีสองทำอะไรไปบ้าง?

ทำไมเวลา 1 ปีมันผ่านไปเร็วจัง?

ลองมานั่งนึกดูว่า 1 ปีที่ผ่านไป เราได้ลองทำอะไรบ้าง?

นอกจากเรียนหนังสือไป 1 ปี ก็นึกออกว่าได้ลองทำอะไรหลายอย่างเหมือนกัน:

- ลองเขียน Nontri Internet autologin

เป็น Firefox Extension (ตัวแรกในชีวิต)ที่ช่วย login เข้าเน็ตอัตโนมัติ
เขียนเสร็จ ปล่อยลงเน็ตปั๊บ สบค. (คนรับผิดชอบระบบ login สำหรับคนใช้เน็ตมหาลัยเกษตร) เขาก็แก้ระบบ login ให้ extension เราใช้ไม่ได้(ไม่กี่นาทีหลังจากปล่อย extension)

- ไปแข่ง TESA Topgun Rally 2008

(ผลการแข่ง)
เป็นครั้งแรกที่ได้ลองเขียนโปรแกรมบน Microcontroller (ในงานใช้ dsPIC33) โจทย์ของการแข่งคือ สร้าง ECU สำหรับรถยนต์ โดยใช้ Real-time OS ได้เรียนเกี่ยวกับ Real Time OS นิดนึงด้วย
แต่ไปงานนี้คิดว่าเราได้เฉพาะบรรยากาศเขียนโปรแกรมบน embedded system เพราะคนอื่นๆ ในทีมเคยเขียนมากันหมดแล้ว (เรา noob สุดๆ) ไปเกาะเขานั่นเอง อิๆ... ได้ไปช่วยๆ นึก state machine/อัลกอริทึมที่ใช้ detect pulse, กับ คำนวณเวลายิง pulse
ในงานแข่งครั้งนี้ได้ใช้ SVN ด้วย (รู้สึกได้ประโยชน์จาก SVN สุดๆ ก็งานนี้แหละ)

- ลองเขียนโปรแกรมตัดคำที่ "ขึ้นกับบริบท"

(แข่ง BEST 2009)
จำได้ว่าตอนอยู่มัธยม พยายามทำ Chatbot เลยค้นรายงานเกี่ยวกับระบบตัดคำภาษาไทยมาอ่าน แล้วก็ได้แต่อ่าน... ไม่สามารถเขียนออกมาเป็นชิ้นเป็นอันได้ เพราะ ใช้ Regular Expression ไม่เป็น (และในรายงานนั้นก็เป็นการตัดคำโดยใช้กฎที่เป็น Regular Expression)
มาตอนปีสองนี่... ลองเขียนหลายอย่างมาก ทั้งแบบ Longest matching (ลองอันแรกเลย ง่ายสุด ฮะๆ), Maximal Matching (ตัดแบบให้จำนวนคำน้อยสุด),.... จนมาถึงตัวตัดคำที่ขึ้นกับบริบท(ที่ใช้แข่ง)
"ฉัน|นั่ง|ตาก|ลม|อยู่|ริม|หน้าต่าง|"
กับ
"เด็ก|ผู้|หญิง|มี|ดวง|ตา|กลม|โต|แวววาว|"


- เขียน Twitnest



เป็นโปรเจคที่คิดว่าจะทำส่งเป็นการบ้านวิชา Practicum ตอนเรียน อ. @jittat สั่งให้ทำ Web App ด้วย Google App Engine ตอนนั้นเราก็ยังไม่มีไอเดียทำโปรเจคอะไรเลย แต่ได้รับแรงบันดาลใจจากท่านภาคย์ ว่าจะทำโปรแกรมประมาณ "เชื่อม social network" ทั้งหลายเข้าด้วยกัน

ทีนี้ท่านภาคย์ อยากให้แสดงผลคล้ายๆ family tree พอคุยไปคุยมา... ก็อยากได้เป็นกราฟ แล้วตอนนั้นก็เพิ่งเริ่มเล่น twitter ใหม่ๆ (เหมือนจะโดนชักชวนโดยเพื่อนๆ CPE21 ที่โดน @jittat ชักชวนอีกที)

เลยหันมาสนใจ Flash เพราะดูโปรแกรมทำกราฟอื่นๆ ที่เขียนด้วย javascript แล้วไม่ประทับใจเท่าไหร่ นั่งบ้าอ่าน Essential Actionscript 3.0 (เป็น text ที่ผมชอบนะ อ่านง่ายดี) อยู่นานมาก... แล้วก็ใช้ FlashDevelop เขียน

ก่อนหน้านี้ไม่เคยสนใจ Flash เลย เพราะรู้สึกงง กับ Timeline, Frame, Keyframe, ฯลฯ รู้สึกว่ามันเป็นโปรแกรมที่เหมาะกับ Designer มากกว่า แต่พอใช้ FlashDevelop แล้วสร้าง Flash ด้วยโค้ดล้วนๆ แล้วรู้สึกสบายใจกว่า :D

โปรแกรม Twitnest นี่เสียเวลากับส่วน Auto-group (จัดกลุ่มคนในกราฟอัตโนมัติ) มากที่สุด แต่เป็นคิดว่าเป็นความสำเร็จแรกในการ อ่าน paper ด้วยตัวเอง แล้วพยายามเขียนโปรแกรมออกมาจนเสร็จ (และคิดว่าได้ผลลัพธ์ถูกต้อง)

- Wordle Clone


ไปเจอ Wordle แล้วก็พบว่ามันสร้าง Wordle สำหรับตัวอักษรภาษาไทยไม่ได้ (เลยอยากสร้างเองให้แสดงภาษาไทยได้)

ลองเขียนเองดูบ้างด้วย Python + Python Image Library (PIL) ได้ผลลัพธ์ดังนี้

เป็นรายชื่อเพื่อนๆ ใน เว็บบอร์ดรุ่น โดย ขนาดของชื่อจะใหญ่ตามจำนวนโพสต์ในบอร์ด (ยิ่งใหญ่ยิ่งปั๊มนั่นเอง)

ตอนนั้นรู้สึกอยากเอา Wordle Clone นี้ขึ้นให้บริการบนเน็ตด้วย ดังนั้นโปรแกรมต้องทำงานเร็ว แต่โปรแกรมที่เขียนตอนแรกมันทำงานช้าไป ความยากอยู่ตรงที่ต้องเขียนวิธีเช็คว่า ข้อความที่เรากำลังจะปะลงไป มันจะซ้อนทับของเดิมรึเปล่า (2D Collision Detection)

ก็เลยบ้าไปนั่งอ่าน text เกี่ยวกับ Computational Geometry เรื่อง Hierarchical Bounding Volume เพื่อที่จะเอามาใช้เช็ค "Collsion ของ ข้อความ" อย่างรวดเร็ว (นั่งงงอยู่นาน) สุดท้าย implement ออกมาได้ (ดีใจสุดๆ)

แต่ก็เจอกับปัญหาว่าการจัด layout ที่ได้มันยังไม่สวยพอ (ไม่สวยเท่าของ wordle) มันยังหลวมๆ ไป... เราก็เลยพับโปรเจคนี้ไว้ และเก็บไว้ใน D:\projects\ ต่อไป เพราะต้องไปทำอย่างอื่นต่อ

- Webpage Language Identification


ทำระบบ ช่วยระบุภาษาหน้าเว็บเพจอัตโนมัติ ทำการระบุในระดับ byte-stream (ดังนั้น encoding จะมั่วก็ไม่เป็นไร)
โปรเจคนี้ทำกับ Mike lab@CPE.KU ใช้ visible Markov-model มาเรียนรู้ลำดับ byte ในเอกสารภาษาต่างๆ... แล้วก็เอาโมเดลที่เรียนรู้แล้วของแต่ละภาษามาระบุภาษาของ unknown อัตโนมัติ (ตอนทำมีภาษา ไทย ญี่ปุ่น ลาว อังกฤษ)

- IR Repeater



วงจรซ้ำสัญญาณรีโมท UBC (ขอเรียกว่า UBC แทน True Vision ละกันสั้นดี)
คือที่บ้านมีเครื่องรับ UBC อยู่ชั้นบน แต่ต่อออกทีวีทั้ง ชั้นบนและชั้นล่าง... ไปๆ มาๆ อยากดู UBC ชั้นล่างบ่อยขึ้น พออยากเปลี่ยนช่อง ก็ต้องวิ่งขึ้นไปชั้นบน จิ้มรีโมทเปลี่ยนช่อง (เหนื่อย)

เลยอยากได้ IR Repeater เอาไว้ใช้รับสัญญาณรีโมทจากชั้นล่าง แล้วยิงซ้ำเข้าเครื่องรับ UBC ชั้นบน

พอได้แรงบันดาลใจจากวิชา Practicum (อีกแล้ว) ที่ได้นั่งประกอบชุด kit เลยทำให้เราอยากประกอบวงจรอีก ค้นๆ ในเน็ตเจอ IR Repeater เขาแจกวงจร (schematic) ด้วย... :D ตอนนี้ก็มีใช้แล้ว ตามภาพครับ

สรุป



ใช้เวลาปีสองได้คุ้มค่ารึเปล่าเนี่ย?.... รู้สึกว่าทำหลายอย่าง แต่ไม่ได้เกาะติดกับเรื่องไหนนานๆ ลึกๆ... เลยรู้สึกเหมือนเป็นเป็ดเลย (บินได้ ว่ายน้ำได้ เดินบนบกได้... แต่ทำได้อย่างละนิดอย่างละหน่อย)

รู้สึกว่า พออยู่ปีสองได้เรียน "พื้นฐานที่จำเป็น" หลายๆ อย่าง ทำให้เราทำ "สิ่งเคยอยากทำแต่ทำไม่ได้ตอนเด็ก" ได้ :) (แต่ก็มีอีกหลายอย่างที่ยังทำไม่ได้นะ)

เฮือก...เขียน blog ได้ยาวมาก (หมักไว้ไม่ได้มาเขียนนาน)

ปิดเทอมใหญ่นี้ ไม่ลงเรียน summer แน่นอน... ยังค้นหาเรื่องที่อยากทำต่อไป (จริงๆ ก็มีค้างอยู่หลายเรื่อง) แต่อยาก up skill อื่นๆ นอกจากคอมฯ บ้าง :)

ปล. ถ้าผมเขียน blog ได้น่างงงวย ช่วยบ่นด้วยการ comment ด้วยครับ :D จะได้เอาไปปรับปรุงสำหรับ blog ถัดๆ ไป

Sunday, March 01, 2009

ปั่นจักรยาน

ชอบปั่นจักรยานใน ม.เกษตร ช่วงวันหยุดมากๆ

เพราะถนนมันโล่ง ไม่ต้องระวังรถเท่าไหร่... ปั่นสนุกสนานเหมือนเวลาไปเที่ยวแล้วไปปั่นจักรยานเลย :D


ช่วงค่ำๆ รถก็น้อยเหมือนกัน แต่มืด น่ากลัว แถมมีข่าวว่ามีคนถีบจักรยานให้ล้ม เพื่อขโมยของด้วย (น่ากลัวฉิบ)

มีคืนนึงเลี้ยวผิดซอย ... เข้าไปเจอ น้องหมาสองตัว แยกเขี้ยวใส่ แฮ่!!!! น่ากลัวมาก
แถมยังวิ่งเข้ามาอีก - -" adrenaline หลั่งไหล รีบปั่นอ้อมไปออกอีกทาง
ระหว่างปั่นหนี มันก็ยังไล่เห่า ไล่ตามอีกนะ (จะโหดไปไหนเนี่ย)
ในที่สุดก็หนีรอดมาได้โดยไม่โดนกัด

โพสต์นี้ โดนใจอย่างแรง

ช่วงสอบนี่เหนื่อยสุดๆ บางวันก็หงุดหงิดสุดๆ อาจเป็นเพราะโดนคาดหวังเยอะ โดนคาดคั้นเยอะ

วันนี้อ่านเจอโพสต์เนื้อหาดีๆ ของ maikub ในบอร์ดรุ่น ดังนี้ (ขอแปะให้ลองอ่านละกัน)


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

" ความผิดเท่านี้เทียบกับโจรสามจังหวัดภาคใต้ หรือไอ้พวกพนักงานรัฐที่รับใต้โต๊ะ โกงกินชาติ หรือพวกข่มขืนฆ่าไม่ได้เลยซักนิด แต่เอามาพูดซ้ำกันอยู่ได้"

คน ทุกคนทำผิด ตัดสินใจผิดก็ต้องการการให้อภัย... อย่างไรก็ตามมันให้กันยาก แม้เราจะรู้ว่าควรให้ เพราะบางเรื่องมันอภัยไม่ได้!!! (แม้จะไร้สาระแค่ไหนก็ตาม)

ตอนเด็กๆเราเชื่อฟังพ่อแม่ ครูอาจารย์
ตอน โตเราฟังน้อยลงเพราะเรามีเหตุผลมากขึ้น แต่อย่าลืมว่าเหตุผลของเราไม่ได้ถูกเสมอไป บางเรื่องมันก็ undecidable... บางเรื่องเราก็ใช้เหตุผลผิด (ลืม discrete ไปแล้วเหรอ p->q != q->p)... แต่เรื่องส่วนใหญ่เรามักเข้าข้างตัวเอง (แหงสิ ไม่งั๊นจะให้เข้าข้างใคร อิอิ)...

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

เหตุผล -> 20% จิตสำนึก
ใจ -> 80% จิตใต้สำนึก
บางครั้งเราก็หาเหตุผลดีดีให้บางเรื่องไม่ได้ แค่ใจคิดว่ามันดีแล้ว

ขอพิมพ์นิดนึง (ไม่ได้เกี่ยวอะไรกับกระทู้เลย)

สอบไม่ได้ -> คะแนนไม่ดี -> เพราะอะไร ...

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

อาจารย์สอนไม่รู้เรื่อง ?
x อย่างไรก็ตามถึงแม้สอนไม่รู้เรื่องจริงๆ พวกเทพเค้าก็เทพอย่างเดิมไม่ว่าอาจารย์จะสอนยังไง
(นึก ถึงตอนสอน C# น้องๆ ถึงแม้จะรู้ตัวว่าสอนไม่รู้เรื่อง แต่... มึงไม่รู้เรื่องก็ถามกูสิ กูถามก็ไม่ตอบ นั่งบื้อกันแล้วบอกว่าไม่รู้เรื่อง สม >.< บางทีอาจารย์บางคนที่สอนเราอยู่อาจคิดแบบนี้ก็ได้นะ 555)

โทษว่าอาจารย์สอนไม่รู้เรื่อง ?
x ต่างกันที่คุณตั้งใจพอหรือยัง พยายามเข้าใจหรือยัง... (ถึงแม้บางคนจะสอนงงจริงๆ เช่น เรา ^O^)
(คงได้เห็นในวิชา Digital... ข้อสอบยากระดับหนึ่งเลยล่ะ
แต่นึกสภาพตอนเรียนแล้ว... ก็ไม่แปลก
ถ้าเค้าเคืองจริงๆวิชานี้ออกได้นรกกว่านี้มาก แต่ก็นะพาร์ทหลังนี้ยากมากแน่ๆ
นึกถึงชั่วโมงที่เค้าด่าเรื่องคอมบนโต๊ะ...หลังจากนั้นทุกอย่างก็เหมือนเดิม ^^ แม้แต่เรา)

หัวไม่ไป ?
x ยอมรับว่าคนทุกคนถนัดแต่ละด้านไม่เท่ากันแน่ๆ แต่ถ้าได้พยายามแล้วก็พอแล้วล่ะ (แต่พยายามเป็นกิจวัตรนะ ไอ้ที่พยายามก่อนสอบอย่างบ้าคลั่งเนี่ย...ช่างมันเถอะ)

ไม่ได้เข้าเรียนเพราะงานยุ่ง / ตื่นสาย / เข้าไปเรียนก็ไม่รู้เรื่อง ?
x งานยุ่งจริงคงช่วยไม่ได้...
x ตื่นสายไม่เคยเป็นข้ออ้างที่ดี ถึงจะจริงก็เถอะ...
x เข้าไปเรียนก็ไม่รู้เรื่อง (ถ้าไม่เข้าแล้วเอาเวลาไปทำประโยชน์ก็ดีนะ...ถ้าเอาไปทำประโยชน์)
(หัวข้อ นี้นึกถึงวิชา elec secบน... แต่พอคิดแล้ว ถ้าเข้ามาคุย...ไม่เข้าดีแล้วล่ะ >^< แต่คนที่ไม่เข้าทำไมคะแนนดีกว่าคนเข้ามากมาย 555 กุโง่เอง กุมันไม่อ่านหนังสือสอบ)
อย่างไรก็ตาม เข้าไม่ถึง 80% หมดสิทธิ์สอบนะ... (อาจารย์คนไหนโหดๆคงน่ากลัว)


ปล0. ไอ้ที่ว่าทั้งหมดเราก็ทำ ถึงแม้จะรู้ (เชื่อเถอะทุกคนก็รู้ตัวเองดี รู้ว่าอะไรถูก อะไรผิด) แต่ก็ทำไม่ใช่เหรอ = =a

ปล1. การขุดคุ้ย - วิจารณ์ - นินทา ความผิดพลาดของคนอื่นเป็นเรื่องสนุกของคุณ ไม่ใช่ของเจ้าของเรื่องนั้น

ปล2. วันไหนไม่มีพวกเทพๆแล้วเราจะสอบกันยังไงเนี่ย = =a.

ปล3. รู้เขารู้เรา รบร้อยครั้ง ชนะร้อยครั้ง
อาจารย์แต่ละคนไม่เหมือนกัน (คนแต่ละคนก็ไม่เหมือนกัน) เลือกวิธีใช้กับแต่ละคนเองละกันนะ


อ่านแล้วอยากดันให้เพื่อนไปเขียนหนังสือ/บทความ ขายจริงๆ :P

Tuesday, September 16, 2008

ฤดูกาลสอบ

จากนักศึกษา เมื่อใกล้เข้าช่วงสอบ ก็กลายร่างเป็นนักสอบ ในทันใด

ความรู้ที่ร่ำเรียนมาทั้งหมด ต้องเอามาทุ่มเทให้กับการทำโจทย์เพื่อเตรียมตัวสอบ

ปีสอง เทอม หนึ่ง สอบ 6 วิชา 4 วิชา คำนวณล้วนๆ
ได้แก่
1. Engineering Mathematics III (คณิตศาสตร์วิศวกรรม III)
2. Discrete Mathematics (วิทยุทธคณิตศาสตร์, ภิณทณคณิตศาสตร์, และคณิตศาสตร์เต็มหน่วย จะเรียกชื่อไหนก็เรียกละกัน)
3. Basic Mechanics (กลศาสตร์พื้นฐาน) - วาดรูปๆ คำนวณๆ
4. Introduction to Electrical Engineering (วิศวกรรมไฟฟ้าเบื้องต้น) - วาดรูปๆ คำนวณๆ

ส่วนอีกสองวิชาที่เหลือคือ อ่านๆ จำๆ เข้าใจเล็กน้อยเป็นพอ
5. Computer Organization and Assembly - โครงสร้างคอมพิวเตอร์ และภาษาแอสแซมบลี
เป็นวิชาที่จะได้เรียนถึงไส้ถึงพุง รายละเอียดว่าเครื่องคอมพิวเตอร์ทำงานได้อย่างไร และเรียนรู้ภาษาเครื่อง (รู้แล้วเอาไปใช้คุยกับเครื่องคอมฯ ได้....[ฮา])
6. Man and Society มนุษย์กับสังคม --- (จำโลด)

อ้อๆ มีวิชาปฏิบัติอีกตัวคือ Practicum (จำชื่อเต็มไม่ได้ เอิ้ก) แต่เป็นวิชาที่ได้ลงมือ ประกอบวงจร รู้จักกับ cloud computing.... สนุกสนาน

สรุปได้ว่า เตรียมตัวสอบปีสองเทอมหนึ่งนี้ ทำอย่างเดียวคือ ทำโจทย์ๆๆๆๆ เปลืองกระดาษอย่างแรง.... แต่จำเป็นต้องฝึก ก็เปลืองน่ะแหละดีแล้ว

เอาเป็นว่า... blog นี้อยากพูดประมาณว่า ปีสองเทอมหนึ่ง วิชาคำนวณเยอะจัง - -"

ปล. เริ่มใช้นโยบายใหม่ blog เรื่องส่วนตั๊วส่วนตัว เขียนที่ blogspot ส่วน blog เรื่อง computer เขียนที่ nattster.siamdev.net ละกัน
ปล2. นโยบายใหม่ อีกอัน ... เหมือนจะใช้มานานแล้ว คือ พยายามเขียนอย่างน้อยเดือนละ 1 ครั้ง :D
ปล3. ไปดีกว่า อ่านหนังสือสอบต่อ.... ไม่สิ....ต้องเรียกว่า ทำโจทย์เตรียมสอบต่อมากกว่า

Saturday, August 23, 2008

ซื้ออุปกรณ์อิเล็กทรอนิกส์ จากร้านขายอะไหล่ (ใน "บ้านโป่ง")

วันนี้เป็นครั้งที่ 3 ที่ไปซื้ออุปกรณ์อิเล็กทรอนิกส์ (มานั่งประกอบวงจรเล็กๆ น้อยๆ)

ไปซื้อ resistor บอกเค้า ขอ 175 kOhm 1/4 watts (คิดในใจว่าไม่มีเท่านี้แน่ๆ)
เลยบอกเขาว่า ขอ resistor ที่ขนาดใกล้เคียง หรือรวมกันได้ขนาดเท่ากันก็ได้

เขาก็บอกว่า "ไม่มีค่ะ... ใกล้เคียงก็ 180 kOhm ค่ะ"
"อืม อนุกรมกันบวกกัน ขนานกันมันจะลด"
"งั้นเอา 180 kOhm ไปขนานกับ 5 kOhm ละกันนะคะน้อง ได้ 175 kOhm พอดี"

เราก็บอกว่าไม่เอา...พร้อมทั้งตกใจอย่างแรง หยิบเครื่องคิดเลขในร้านเขามาจิ้ม .... อืม...มันไม่ใช่ 175 ซักหน่อย ตกใจหมด เฮอๆ เราก็แย้งเขาว่ามันไม่ได้ 175 น๊า... เค้าก้อไม่ฟัง เฮอๆ (จำได้ว่า ขนานกัน เอาความต้านทานคูณหันหารด้วยความต้านทานบวกกัน นี่นา)

สรุปว่า ซื้อ 180 kOhm มาพร้อมกับซื้อ 100+50+25 kOhm มา (มั้ง)
แต่สุดท้าย เอาไปใส่วงจรก็เลือก 180 kOhm (เอาไปต่อกับ IC 555 เป็น Astable Square Wave Generator) ต้องการสร้างความถี่ 40kHz อ่า....สุดท้ายวงจรก็ใช้ได้แต่ยังดูทำงานแปลกๆ เฮอๆ

Sunday, August 17, 2008

ChinesePython: เขียนโปรแกรมด้วยภาษาจีน

เคยถามเพื่อนมั้ย? ว่า นายเขียนโปรแกรมภาษาอะไรอ่ะ?
แล้วโดนตอบกลับมาว่า "ภาษาอังกฤษ" (ปกติ อาจจะตอบกันว่า C, C#, Python, Java, ...)

ตอนนี้เตรียมเจอคำตอบใหม่ได้แล้ว.... เพื่อนคนนั้นอาจตอบว่า "ภาษาจีน" แทน !?!

วันนี้นั่งๆ อ่าน wikipedia เรื่อง Programming Language แล้วไปเจอบทความ Non-English-based programming languages เปิดๆ ไปเจอรายชื่อภาษาที่ไม่ได้ใช้ภาษาอังกฤษเป็น keyword ในการเขียนโปรแกรม

หนี่งในนั้นคือ ChinesePython.... มันคืออะไร? มันก็คือ ภาษา Python ที่เรารู้จักกันดีแต่โดนแปล keyword ต่างๆ คำสั่งต่างๆ ให้เป็นภาษาจีนให้หมด !?!

สาเหตุที่คนทำ แปล Python เป็น ChinesePython ขึ้นมา เพราะมองเห็นว่า การเรียนรู้วิธีการเขียนโปรแกรม (basic computer programming concepts) นั้นไม่ยาก แต่มันยากสำหรับนักเรียนชาวจีนบางคนเพราะมีอุปสรรคทางด้านภาษาอังกฤษ กว่าจะเริ่มเรียนรู้การเขียนโปรแกรมได้ก็ต้องเรียนรู้ภาษาอังกฤษก่อน (ที่มา)

ลองมาดูตัวอย่างโปรแกรม ภาษา ChinesePython เทียบกับ Python ดีกว่า โปรแกรมต่อไปนี้ทำหน้าที่แปลง \n\r เป็น \n


import sys
filenames = sys.argv[1:]

def fixline(filename):
text = open(filename).read()
text = text.replace('\n\r','\n')
return text

for file in filenames:
print fixline(file)
载入 系统
文件名 = 系统.参数[1:]

定义 修正行尾(文件):
内文 = 打开(文件名).读入()
内文 = 内文.替换('\n\r','\n')
传回 内文

取 文件 自 文件名:
写 修正行尾(文件)
ไหนๆ ลองเขียน ChinesePython บ้าง (ลอง print "Hello World" ดู)
> 写 "หนีเห่า..."

ไม่แน่...ต่อไปถ้าเกิดอยากให้เด็กไทยหัดเขียนโปรแกรมโดยไม่มีอุปสรรคทางภาษา อาจต้องแปล Python เป็น ThaiPython (ใครสนใจจะเขียนภาษานี้มั้ยครับ)

ลองนึกดูเล่นๆ (โปรแกรมคำนวณค่าเฉลี่ย)
ล = [3.0, 1.5, 2.0] #  ล ลำดับคะแนน
ร = 0.0 # ร ผลรวม
สำหรับ ค ใน ล:
ร += ค
ร /= ขนาด(ล)
พิมพ์ "ค่าเฉลี่ย ", ร


น่าสนใจมะ?

Tuesday, July 22, 2008

โปรแกรมดีๆ ที่ฟรีสำหรับ เผา(burn) CD/DVD บนวินโดวส์


ค้นๆ บนเน็ต เจอบทความเขา review ซอฟต์แวร์สำหรับ ทำงานทุกอย่างเกี่ยวกับ CD (คนส่วนใหญ่นิยมใช้ เนโรเบิร์นนิ่งโรม.... หรือไม่ก็ อัลกอฮอล์ 120%) แต่ทีนี้ลองมองๆ หาซอฟต์แวร์ฟรีๆ ดีๆ ที่ทำงานได้เหมือนกับซอฟต์แวร์ตัวอื่นๆ ก็ไปเจอกับ ImgBurn ขนาดเพียงแค่ 1.9 MB

Monday, July 21, 2008

Sort Python Dictionry ด้วย Value

mydict = {"abc":4, "def":2, "jkl":1}

mylist = sorted(mydict.iteritems(), key=lambda (k,v): (v,k))

เจ๋งหง่ะ :D

Friday, July 18, 2008

กลับมาใช้ Windows Vista อีกและ เฮอๆ...

สาเหตุที่ต้องกลับมาใช้ Windows Vista เพราะว่าเพิ่งจะสังเกตว่า Fingerprint sensor ของเราเวลาใช้ Ubuntu 8.04 มันร้อนมากๆ - -".... ร้อนจนใช้นิ้วแตะไม่ได้ ก็เลยลองไปค้นๆ ดูว่ามีวิธีเช็คอุณหภูมิเครื่องยังไงบ้างมั้ย ปรากฏว่าก็ไปเช็คได้ด้วยคำสั่ง

$ cat /etc/acpi/อะไรซักอย่าง แฮๆ/TZ00/thermal

(จำไม่ค่อยได้) แล้วมันแสดงผลออกมา 27 องศาเซลเซียส ซึ่งมันเย็นกว่าจริงมากๆ ..... พอเจออย่างงี้ก็เลย...รู้สึก... อ่าว แย่แล้ว - -" อย่างงี้ที่ใช้ ubuntu มาตั้งนานเนี่ย อันตรายมากๆ เลยใช่มั้ยเนี่ย? ... แย่จริงๆ เลย เฮอๆ ไม่มี acpi driver ของเครื่องเรารึเปล่าน๊า.....ใช้ ubuntu มาตั้งนานไม่เคยสังเกตเลยว่า พัดลมมันไม่ยอมเป่าเลย... เราเลยรู้สึกกลับคอมฯพังมากๆ กลัวร้อนสะสม อุปกรณ์นั้น อุปกรณ์นี้จะพัง ก็เลย recovery กลับไปเป็น Windows Vista Home Premium ตัวที่มากับเครื่อง (ไหนๆ ก็โดนบังคับซื้อ license มาพร้อมกับตัวเครื่องอยู่แล้วนี่นา)

ตอนแรกเกลียด vista มากๆ เพราะว่าใช้แล้วมันช้ากว่า vista ของชาวบ้านเขา แบบไม่รู้สาเหตุ คราวนี้ใช้แผ่น recovery แล้วตัดสินใจเลือกลง driver เอง... ลงเท่าที่จำเป็นปรากฏว่าเครื่องเปิดได้เร็วขึ้นกว่ามากเลย - -" สงสัยว่าตัว software ทั้งหลายที่แนบมากับเครื่องเนี่ยแหละตัวทำเครื่องช้า

พอได้เครื่องสะอาดๆ กลับมาแล้วก็จัดการลงโปรแกรมพื้นฐาน ได้แก่
antivirus: ใช้ AVG free 8.0 (ลองดูๆ.... norman antivirus ตัวแท้มันหมดอายุแล้ว กลัวอัพเดทไม่ได้และ เฮ้อ)
winzip/winrar: (เรียกอย่างงี้เลยแล้วกันเข้าใจง่ายดี) ก็ใช้ 7-zip บางคนบ่นว่า user interface มันดูแปลกๆ เล็กน้อย แต่เราว่าทนๆ ใช้เอาดีกว่าไปใช้ของผิดลิขสิทธิ์นะ
msn: ก็ไม่ลง windows live messenger แฮะ... แต่ลงตัว emesene แทน... ติดใจในความเรียบง่ายของมันอ่า เจ๋งดี (ที่สำคัญเขียนด้วย python หุๆ)
browser: firefox 3 เจ๋งโคตร....ตัดคำไทยได้แล้ว เย้ๆๆๆๆ

ส่วน office ก็คงจะลง m$ office เพราะว่า ที่ ม. ทุกคนทั้งอาจารย์ทั้งนิสิต ใช้งานแต่ m$ office ทั้งนั้นเลย เฮอๆ จริงๆใช้ Open office ก็ได้น่ะนะ แต่ว่าจัด Format แล้วมันไม่ค่อยตรงกันเท่าไหร่เลยรู้สึกไม่ค่อยอยากใช้

ปล. บ่นเล็กน้อย vista ทำไมมันกินที่บน harddisk อย่างงี๊ว๊า....
ปล2. วันนี้ไปถ่ายรูปรับปริญญา (วันซ้อม) ให้ลูกพี่ลูกน้องมา...เหนื่อยหยั่งแรง.... นอนดีกว่า :D
ปล3. submit paper NCSEC ไปเรียบร้อยแล้ว กะจะว่าจะตั้งใจอ่านหนังสือสอบกลางภาคแล้วดีกว่า
ปล4. ทำไมยังมามัวนั่งเขียน blog อยู่เนี่ย ไปอ่านหนังสือสอบได้แล้ว ฮ่าๆ

Wednesday, June 18, 2008

Fujtisu S6410 เสียบ หูฟัง (headphone) ใน ubuntu 8.04 แล้วไม่มีเสียง

ก่อนหน้านี้มีปัญหาว่า เสียบแล้ว
ดังทั้งลำโพงทั้งหูฟัง อัพเดทไปอัพเดทมาปรากฏว่า เสียบหูฟังแล้วก็ไม่ดัง

ไปค้นๆ ในที่สุดก็เจอ กระทู้นี้ Headphone & Speaker Issue

ให้แก้ไฟล์ /etc/modprobe.d/alsa-base
เพิ่มบรรทัดนี้ต่อท้ายไป
options snd-hda-intel model=fujitsu

save ไฟล์ แล้ว restart เครื่อง เมื่อเสียบหูฟัง ลำโพงก็จะ mute โดยอัตโนมัติ

มาเขียน blog ไว้เผื่อใครเจอแบบเดียวกันจะได้ค้นเจอ :D

ใครใช้ realtek acl262 ก็ใช้วิธีนี้ก็ได้นะ หรือว่า ใช้การ์ดเสียงรุ่นอื่น ลองเรียกคำสั่ง
zless /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz

ลองค้นๆ ดูว่า รุ่นของ การ์ดเสียงเราเป็นอันไหน แล้วจัดการ เอา model name มาใส่แทน fujitsu ครับผม

Monday, June 16, 2008

เฮ้ย...ตรูม่ะใช่ compiler นะเฟร้ย

เฮอๆ ส่งโค้ดมาทาง msn ถามว่า statement นี้ ผิด รึเปล่า

ตูก็ดันตอบไปว่า ผิด....

แล้วก็แก้ แล้วก็ยังส่งมาถามต่ออีก - -"

Thursday, June 12, 2008

vim7 เจ๋งโคตร

เพิ่งจะรู้ว่ามี auto-complete ใน vim แล้ว
แล้วก็มี tab ให้ใช้ด้วย

ที่เห็นชัดๆ เลยก็ลองเขียน C บน vi แล้วกด Ctrl+P, หรือ Ctrl+N ใน Insert-mode จะมี list ของคำสั่งมาให้















อีกอันที่เท่เหมือนกันก็คือ Tab (ไว้แสดงหลายๆ ไฟล์)
ก็
vi -p file1.c file2.txt file3.php
ได้ตามภาพ
กด gt ใน Command mode เพื่อสลับ tab
กด :tabn , :tabp (next, previous) เพื่อเปลี่ยน tab ใน last-line mode

Thursday, May 01, 2008

กลับมาใช้ Windows XP แล้ว...หลังจากใช้ Vista มาหลายเดือน

ใช้ Windows Vista มาหลายเดือน เมื่อคืนกลับมา ตั้งใจจะลง Vista + Ubuntu 8.04
นั่ง backup ข้อมูล แก้ partition ใหม่หมดเลย แล้วเอาแผ่น Recovery ของ Fujitsu ใส่เข้าไป ปรากฏว่าแผ่น Recovery ฟ้อง error ไม่ยอมลงให้ เพราะหา Partition WinRE ไม่เจอ (เป็น Partition ที่ Windows Vista ใช้ในการ Recovery)

ดังนั้น ด้วยแผ่น recovery ที่มีเราก็ไม่น่าจะลง Vista ตัว OEM ได้อีก นอกจากเอาเครื่องเข้าศูนย์ ดังนั้นเราเลยตัดสินใจลง Windows XP (KU License) แล้วก็โหลด Driver มาใหม่ยกเซต

ปรากฏว่า ใช้งานได้ลื่นสบาย ระยะเวลาที่ใช้เปิดเครื่องก็เร็ว Battery Life ยาวนานขึ้น (เฮ้อ...ทนใช้ Vista มาตั้งนาน)

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

ก็เลยค้นๆ ไปเจอ ViStart (http://lee-soft.com/) ลองเอามาลงดูแล้วก็ได้ผลลัพธ์ดังภาพต่อไปนี้

Monday, March 24, 2008

ปิดเทอม

ก่อนหน้านี้บ่นๆ บอกว่าเบื่อ msn

เดี๋ยวนี้ปิดเทอมแล้ว เปิดคอมฯขึ้นมานั่งเล่นแต่ msn กะ hi5 เฮอๆ

แย่จริงๆ :P

Monday, March 10, 2008

นิสิต วิศวกรรมเครื่องแกง เอกพะโล้ โทพะแนง

เพื่อนใช้ชื่อนี้ใน msn เขาเรียนเป็นกุ๊กอยู่ที่ดุสิตธานี (รึเปล่า)

เห็นว่าเท่ดี อิๆ เลยขโมยมาแปะใน blog หน่อย

เวลาวันหลังแนะนำตัว แนะนำตัวอย่างนี้อาจจะฮาดี

Thursday, March 06, 2008

สอบปลายภาคเสร็จ...ปิดเทอมแล้ว....

สอบ 2 สัปดาห์
สัปดาห์แรก
eng. math II , physics II พอทำได้
สัปดาห์ที่สอง
gen. chem, eng. drawing, lab gen. chem.
รู้สึกแย่มากๆ หลังจากเดินออกนอกห้องสอบ อารมณ์ประมาณว่าถ้าเป็นสอบกลางภาค และเข้าไปสอบแล้วทำไม่ได้แบบนี้ คงจะ drop แน่ๆ แต่เฮ้อ..นี่สอบปลายภาคแล้วทำอะไรไม่ได้แล้ว ก็เลยได้แต่ลุ้นว่าเกรดจะออกมาเป็นยังไง

และแล้วในที่สุดก็ปิดเทอมซักที 1 ปีผ่านไปเร็วมากๆ
พอปิดเทอม ก็รู้สึกอิสระ แล้วก็พยายามคิดว่าเอ๊ะ ปิดเทอมแล้วเราอยากจะทำอะไร ในที่สุดก็มีเวลาว่าง ว่างจนนึกไม่ออกว่าจะทำอะไรดี :D

Monday, February 11, 2008

Thursday, January 17, 2008

กลับมามีเวลาว่างมากขึ้นแล้ว แต่...

กลับมามีเวลาว่างมากขึ้น (เหรอ?) แต่ทำไมเวลาว่างเนี่ยมันไม่ใช่เวลาว่างสำหรับตัวเราเอง

เอ...แล้วแบบนี้จะเรียกว่าเวลาว่างได้รึเปล่าเนี่ย...

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

วันนี้จะประกาศผล NSC ซะแล้ว....ไม่ต้องลุ้นเลย เฮอๆ... แต่ด้วยปฏิกิริยาของกรรมการ ทำให้แอบลุ้นเล็กน้อย....แต่ถ้าไม่เข้ารอบชิงก็ไม่แปลกใจเลย ;D

ลืมบล็อกไป ว่าเริ่มใส่ contact lens วันที่ 14 มกราคม 51 (เผื่ออนาคตอยากรู้ว่าเริ่มใส่เมื่อไหร่)

Monday, January 14, 2008

ฝึกออกเสียงภาษาไทยให้ถูกต้องกับหนุ่มชัดสาวแอ๊บ

ในที่สุดก็ present งานเรียบร้อยแล้ว :D นี่คือภาพ logo ของโปรแกรมที่รุ่นน้องวาดให้ด้วย Flash ปีนี้ก็ประกวด NSC อีกแล้ว (ประกวดเป็นปีที่ 7)

Wednesday, January 09, 2008

ตามหาเพลง....ของ Susan Raye

เพลง: Don't Take Advantage Of Me

อัลบั้ม: My Heart Has A Mind Of Its Own (1 มีนาคม 1972)

Don't make me a promise and then make me blue
Don't say you love me if it isn't true
Don't make me cry so much I can't see please don't take advantage of me
You might be the kind who'll just lead me on
Then when I need you most that's when you'll be gone
Don't tell me those sweet lies you know I believe please don't take advantage of me
[ guitar ]
Ever since I first met you I've been so in love
Day and night it's you that I'm thinking of
So before you hurt me I'm a begging you please please don't take advantage of me
Well you might be the kind...
Please don't take advantage of me