About llun

Just a programmer
Author Archive | llun

Fantastic 4 (Browser)

เบื่อๆ เลยหาอะไรเล่นยามบ่าย 

Read full story Comments { 2 }

nohup

สัปดาห์ที่แล้วพี่บอกว่าโปรแกรมที่เขียนไปมีบั๊ก ให้หาให้หน่อยว่าเกิดจากอะไร การทำงานของมันก็ง่ายคือ โปรแกรมแรกรับคำสั่งจากผู้ใช้มาดูว่าจะเรียก โปรแกรมอื่นอย่างไร จากนั้นก็เลือกโปรแกรมมาทำงาน ถ้าใช้งานตามปกติสั่งคำสั่งเสร็จแล้วกดออก มันก็ไม่มีอะไรผิดปกติ แต่อาการผิดปกติจะเกิดขึ้น เมื่อสั่งเสร็จแล้วกดปิด terminal ทิ้งทันที ดูตอนแรกก็คิดไปถึงเรื่อง process ของลินุกซ์ว่าต้องเป็นเรื่อง process แม่เรียก process ลูกแน่ๆ แต่ขุดไปขุดมาดันไม่เกี่ยวซะงั้นแต่เกิดจากตัวที่ คาดไม่ถึงคือ signal แถมเป็น signal ที่ไม่คิดว่าจะเจอด้วยคือ hang up (คือไม่เคยเจอมาก่อนหนะ ) เป็น signal ที่เกิดเมื่อมีการปิด terminal ไป(เหมือนกับวางหูโทรศัพท์อะไรประมาณนั้นมั้ง ไม่งั้นจะชื่อ hang up หรอ) หรือ connection หลุดจาก server ที่เราต่ออยู่ วิธีแก้ก็ง่ายแสนง่าย แทนที่โปรแกรม แรกจะเรียกโปรแกรมสองตามปกติ ก็เติมคำสั่ง nohup ไปข้างหน้าซะ signal นี้ก็จะไม่มากวนอีกต่อไป หรือ จะเขียนโปรแกรมที่สอง ให้ดัก signal [...]

Read full story Comments { 0 }

ลบข้อความใน vi สามบรรทัด

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

Read full story Comments { 12 }

Screen

หลายวันก่อนพี่ที่ทำงานแนะนำโปรแกรมนึงมาให้ลองเล่นกับโปรแกรมโหลดบิตในเร้าเตอร์ชื่อว่า screen พี่บอกว่าทำให้สลับโปรแกรมใน terminal ได้ถ้าใครนึกภาพไม่ออกก็นึกถึงหน้าต่างในวินโดว์นั่นแหละ แต่อันนี้มันอยู่ในหน้าจอดำๆ แบบดอส แต่พี่บอกว่าจำไม่ได้แล้วว่าใช้ยังไง เลยลองไปขุดๆ ดูว่า wl500gp มันทำได้หรือป่าว เพราะเครื่อง desktop ใช้หน้าต่างธรรมดาดีกว่า ปรากฏว่ามันมีด้วย เลยจัดการลองบนเร้าเตอร์ซะเลย ขั้นแรกดาวโหลดมาติดในเร้าเตอร์ก่อน ด้วยความง่ายของ firmware ที่ใช้อยู่(oleg) เลยใช้คำสั่งแค่ $ipkg install screen รอมันโหลดแล้วติดตั้งให้ก็ใช้ได้แล้ว สะดวกเหมือนอยู่บน debian หึหึ จากนั้นเวลาจะให้เร้าเตอร์โหลดอะไรจากปกติที่จะให้โปรแกรมรันเป็น daemon ด้วยคำสั่งนี้ $enhanced-ctorrent -d file.torrent ก็เปลี่ยนเป็น $screen enhanced-ctorrent ซะแล้วมันจะขึ้นหน้าจอเหมือน ctorrent ปกติแบบไม่ได้ให้รัน daemon ก็จะมีรายละเอียดต่างๆ ว่าไฟล์ดาวโหลดไปถึงไหนแล้ว ขณะนี้ดาวโหลดด้วยความเร็วเท่าไหร่ seed เท่าไหร่ peer เท่าไหร่ พอเบื่อไม่อยากดูต่อก็กด ctrl+a+d เพื่อ detach หน้าต่างออกไป เข้าสู่ [...]

Read full story Comments { 0 }

คัดลอกซีดีแบบเร่งด่วนผ่าน shell

อาทิตย์ที่ผ่านมาต้องคัดลอกดีวีดีแบบเร่งด่วนจำนวนสองแผ่น แต่ว่ายังไม่ได้ติดโปรแกรมเขียนซีดีที่มีหน้าจอสวยงามให้กดๆ ได้เลย ต้องมานั่งหาคำสั่งเอาว่า fedora8 ใจดีให้อะไรมาอยู่แล้วบ้าง แล้วก็เจอตัวช่วยสองตัว นั่นคือ dd กับ cdrecord dd เอาไว้เอาซีดีหรือดีวีดีมาเก็บเป็นไฟล์ไว้ในเครื่องก่อน (โน๊ตบุ๊กมีเครื่องอ่านเขียนดีวีดีอยู่ตัวเดียวยังไงก็ต้องเก็บเป็นไฟล์ไว้ในเครื่องก่อนหละ) ด้วยคำสั่ง dd if=/dev/dvd of=[file.iso] หลังจากรอจนมันอ่านออกมาเป็นไฟล์เรียบร้อยแล้ว ก็ต้องเขียนไปยังแผ่นใหม่ด้วยคำสั่ง cdrecord cdrecord dev=/dev/dvd [file.iso] แค่นี้ก็ไม่ต้องติดโปรแกรมสำหรับเขียนซีดีเพิ่มหละ

Read full story Comments { 0 }