โค้ดสั่นๆลดงาน 3 วัน เหลือ 1 นาที

# Ruby version:2.4

layout = RBA::Layout::new()
top = layout.create_cell(“TOP”)
l1 = layout.layer(1, 0)
top.shapes(l1).insert(RBA::Box::new(0, 0, 1000, 2000))
.
layout.write(“2D-gradient.gds”)

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

Macro development

โจทย์มีอยู่ว่าต้องสร้าง object ราว 1500-2000 อัน ซึ่งมีขนาด ระยะ แตกต่างกัน วางตำแหน่งในรูปแบบที่เป็น pattern ตามกำหนด

ในตอนแรกนั้น พยายามจะหาวิธีที่สามารถสร้างได้ใน KLayout แบบที่มีในเมนู วิธีที่ใกล้เคียงที่สุดที่ทำได้ คือ make array แต่ไม่สามารถสร้างให้ระยะระหว่าง object เปลี่ยนแปลงไปเรื่อยๆได้ กำหนดได้แค่ค่าเดียว

จึงพยายามหาวิธีอื่นๆอยู่สักพัก เลยรู้ว่าสามารถใช้ Ruby ใน KLayout สร้าง object ได้ แต่มันไม่ง่ายสำหรับผู้ไม่เคยใช้นะสิ ต้องใช้เวลาศึกษาพอสมควร

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

คราวนี้ จำต้องกลับมาศึกษาวิธีเขียนโค้ดใหม่ ค่อยๆอ่าน ค่อยๆทำความเข้าใจไปทีละขั้น ใช้เวลาไปหลายวันพอๆกัน แต่ใช้ความพยายามต่างกันอันหนึ่งใช้หัวคิด อีกอันใช้แรงงาน

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

อ้างอิง: https://www.klayout.de/index.html

สัญญาณบอกเวลาที่เยอรมัน

เหตุเกิดจากเพื่อนในเล็บเดินถือนาฬิกาไปมา เหมือนดังเราเดินหาคลื่นโทรศัพท์ประหนึ่งยุคมือถือ 2G จึงเกิดความสงสัยเลยถามกึ่งหยอกไปว่า

“เดินหาคลื่นหรือ?”
เพื่อนตอบ “ใช่ กำลังเดินหาสัญญาณ”
ตอนแรกนึกว่าเพื่อนอำเล่น “ตลกแล้ว หาคลื่นให้นาฬิกาเนี้ยนะ”
เพื่อนตอบ “ใช่ ไม่แน่ใจว่า สัญญาณไม่ดีหรือมันพัง” สีหน้าจริงจัง

จึงได้คุยถึงรายละเอียดต่างๆกัน มันเป็นคลื่นจริงๆครับ ที่เยอรมันมีการส่งคลื่นของสัญญาณนาฬิกาบอกเวลาจากหอส่งสัญญาณกระจายไปทั่วประเทศประหนึ่งเดียวกับคลื่นมือถือ หรือคลื่นโทรทัศน์นั้นแหละครับ

(ก็ตรูมาจากประเทศกำลังพัฒนาไม่มีอะไรแบบนี้หรอก)

German longwave time signal

รู้จักในชื่อสัญญาณ DCF77 ครับ อ่านใน wiki ได้ที่ https://en.wikipedia.org/wiki/DCF77 เป็นสัญญาณนาฬิกาที่อ้างอิงกับนาฬิกาอะตอมอีกทีครับ แม่นยำในระดับ 10^-19 วินาที กันเลยทีเดียว แล้วส่วนใหญ่ในนาฬิกาของที่นี้จะมีตัวรับสัญญาณติดมาด้วยครับ เพื่อรับเอาสัญญาณเวลามาใช้งาน เรียกได้ว่านาฬิกาตรงกันทั่วทั้งประเทศกันเลยทีเดียว คงไม่มีช่วงเวลาเพลงชาติแข่งกันจบก่อนหลังเหมือนของไทยเป็นแน่แท้(ถ้ามีเปิดเพลงชาติเช้าเย็นเหมือนเรานะ) แล้วประโยชน์ของมันนอกจากจะให้เวลาที่ตรงกันทั้งประเทศแล้ว

สัญญาณนี้ยังมีประโยชน์เอาไว้ใช้สำหรับการปรับเวลา Daylight saving time (DST) ของยุโรปอีกด้วย โดยจะปรับให้เร็วขึ้น 1 ชั่วโมงในช่วงหน้าร้อน และปรับกลับมาปกติในช่วงหน้าหนาวอีกที จุดประสงค์เพื่อต้องการให้ประชาชนได้ใช้ประโยชน์จากแสงอาทิตย์ที่ขึ้นเร็วในช่วงหน้าร้อนให้ได้มากที่สุด ปีนี้เพิ่งปรับไปเมื่อวันที่ 27 มีนาคม 2016 ที่ผ่านมานี้ นาฬิกาที่อยู่ตามสถานีรถไฟต่างๆก็ปรับตามโดยอัตโนมัติ ถ้าต้องมาปรับกันเองคงลำบากกันน่าดู

พูดแล้วก็อยากให้บ้านเรามีแบบนี้กับเขาบ้างจัง

Exit mobile version