สร้างกราฟอัตโนมัติใน Excel ด้วย VBA

ได้ช่วยเพื่อนเขียนโค้ด VBA ใน MS Excel เพื่อสร้างกราฟอัตโนมัติ ขอบันทึกเตือนความจำแบบสั้นๆเก็บไว้

ข้อมูลที่ต้องการสร้างกราฟนั้นเป็นชุดข้อมูลที่เหมือนกัน สามารถประยุกต์ใช้ให้เหมาะสมกับงานอื่นๆได้ แกน X เป็นปีที่เก็บข้อมูล เช่น ปี 1990-2017 ส่วนแกน Y เป็นชุดข้อมูลที่แตกต่างกันตามสนใจ อาจจะมีเป็นร้อยชุดข้อมูลเลยก็ได้ ถ้าจะมานั่งทำทีละกราฟ ทีละชุดข้อมูล และกราฟแต่ละอันยังมีรูปแบบเหมือนกัน จะค่อนข้างเสียเวลามาก โค้ด VBA จึงพอจะช่วยลดเวลาในการทำงานลงได้บ้าง

ตัวอย่างกราฟและชุดข้อมูลตัวอย่าง

จะอธิบายตามโค้ดที่เขียนเลย

-เปิด VB editor ของ Excel ขึ้นมา แล้ว insert module ใน sheet ที่มีชุดข้อมูลที่ต้องการสร้างกราฟแล้ว จะจัดให้ข้อมูลวางแนว Row หรือ Column ก็ได้ แล้วค่อยไปกำหนดเองในโค้ด VBA

Option Explicit

Sub WRYChart()

'ประกาศชนิดของตัวแปร
Dim parameterNum As Integer
Dim co As ChartObject
Dim ct As Chart
Dim sc1 As SeriesCollection
Dim ser1 As Series
Dim LC As Long

'ให้สามารถสร้างกราฟตามชุดข้อมูลที่สนใจได้ จึงกำหนดหมายเลขกำกับแล้วอิงจากตัวเลขนั้นเพื่อสร้างกราฟ
parameterNum = InputBox("What parameter would you like to chart?")

'กำหนดหมายเลขของชุดข้อมูลไว้ เท่าไหร่ก็ได้ต้องครอบคลุมจำนวนชุดข้อมูลที่มี เช่น อันนี้มี 100 กราฟที่ต้องสร้าง
If parameterNum > 0 And parameterNum < 100 Then

'ตำแหน่ง(A10) cells ใน excel ที่อยากจะสร้างและวางกราฟลงไป ชื่อและขนาดของกราฟ ในที่นี้มีหลายกราฟ จึงเลือก column ท้ายสุดของข้อมูล และ(offset)เลื่อนลง ตามลำดับชุดข้อมูล 
Set co = Sheet3.ChartObjects.Add(Range("A10").Offset(parameterNum, 1).Left, Range("A10").Offset(parameterNum, 1).Top, 450, 200) 'Chart location
co.Name = "parameter number" & parameterNum & "Chart"

'ใส่รายละเอียดของกราฟที่อยากได้ ชื่อกราฟ รายละเอียดของแกน x,y
Set ct = co.Chart
With ct
.HasLegend = True
.HasTitle = True
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Jahr" 'กำหนดป้ายของแกน x โดยเขียนเองเป็นข้อความ
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Range("F3").Offset(parameterNum, 0).Value 'กำหนดป้ายของแกน y กำหนดให้เปลี่ยนตามข้อมูลใน cells ที่กำหนดไว้
.Axes(xlCategory).CategoryType = xlTimeScale 'ชนิดของข้อมูล
.Axes(xlCategory).BaseUnitIsAuto = True
.Axes(xlCategory).MajorUnit = 2 'กำหนดการแบ่งหน่วย
.Axes(xlCategory).TickLabels.Orientation = xlTickLabelOrientationUpward 'กำหนดการวางตัวป้าย

.ChartTitle.Text = Range("G3").Offset(parameterNum, 0).Value 'กำหนดชื่อ ให้เปลี่ยนตามข้อมูลใน cells (เริ่มที่ G3 เลื่อนตามหมายเลขเลือก) ที่กำหนดไว้
Set sc1 = .SeriesCollection 
Set ser1 = sc1.NewSeries

'รายละเอียดข้อมูลของกราฟที่จะสร้าง
With ser1
.Name = Range("G3").Offset(parameterNum, 0).Value 'ชื่อของข้อมูล
.XValues = Range(Range("G3").Offset(0, 1), Range("G3").End(xlToRight)) 'ชุดข้อมูลของแกน x (เลือกที่ตำแหน่ง G3 จนถึงตำแหน่งขาวสุด)
.Values = Range(Range("H3").Offset(parameterNum, 0), Range("L3").Offset(parameterNum, 0)) 'ชุดข้อมูลของแกน x (เลือกที่ตำแหน่ง H3 จนถึง L3)
.ChartType = xlXYScatterSmoothNoMarkers 'ชนิดของกราฟ
.Trendlines.Add(Type:=xlLinear, DisplayRSquared:=True).Select 'เพิ่มเติม การใส่ Trendline และค่า R Square ของเส้น

End With

End With

MsgBox ("That's Perfect!") 'แจ้งเตือนเมื่อกราฟสร้างเสร็จ

Else: MsgBox ("You must enter a parameter number between 1 and 100") 'แจ้งเตือนเมื่อใส่ตัวเลขผิดพลาด
End If

End Sub

ปล. กำหนดชุดข้อมูลของ x, y สามารถกำหนดในรูปแบบนี้ได้เช่นกัน

.Values = Range(Range("G3").Offset(parameterNum, 1), Range("G3").Offset(parameterNum, 1).End(xlToRight))

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

.Values = Range(Range("H3").Offset(parameterNum, 0), Range("AL3").Offset(parameterNum, 0))

ภาพประกอบอื่นๆ

การเรียกใช้ VB และ Macro ใน Excel
ตัวอย่างการใช้งาน
ตัวอย่างการใช้งาน

โค้ดสั่นๆลดงาน 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

ฝึกให้อ่านเร็วขึ้น ตอนกำจัดเสียงอ่านในใจ

ผมเป็นคนอ่านหนังสือช้า นี่คือบันทึกการฝึกอ่านให้เร็วขึ้น

ฝึกอ่านให้เร็วขึ้น

ข้อแรก ที่ต้องฝึกอันดับแรกถ้าต้องการอ่านได้เร็วขึ้น ซึ่งถือว่าเป็นข้อที่ทำยากมากที่สุด ถ้าทำได้จะเร็วขึ้นแน่นอน คือ กำจัด “subvocalizing” หรือ เสียงอ่านในใจ

ตอนที่เราอ่านหนังสือ แม้จะไม่ได้เปล่งเสียงออกมาจริงๆ เราก็จะยังออกเสียงคำๆนั้นในใจ บางคนอาจจะมีการขยับริมฝีปากตามเบาๆเสียด้วยซ้ำ
สิ่งนี้เลยทำให้เราไม่สามารถอ่านได้เร็วเกินกว่าพูดเลย(150-200 คำต่อนาที)
ทั้งๆที่ตาและสมองไปได้เร็วกว่าอย่างมาก

แต่ว่าการกำจัดเสียงอ่านในใจนี้ไม่ใช่เรื่องง่ายเลย และต้องใช้เวลาในการฝึก เพราะมันถูกติดตั้งมาตั้งแต่เราเริ่มหัดอ่านครั้งแรก ครูก็ฝึกให้เราอ่านออกเสียงตั้งแต่เด็ก มันจึงติดตัวเรามาตลอด

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

นี่คือ ขั้นแรก ขั้นที่ยากที่สุด ที่ต้องทำให้ได้ก่อน ถ้าทำได้เร็วขึ้นแน่นอน

สำหรับตัวเองนั้น หนังสือภาษาไทยคิดว่าทำได้ แต่หนังสือภาษาอังกฤษยังอยากอ่านออกเสียงอยู่นะ เพื่อพัฒนาการฟังและการออกเสียงไปด้วยกัน

ในส่วนขั้นต่อไปค่อยมาเขียนต่อในวันหลังก็แล้วกัน

หนังสือแนะนำให้อ่าน โดย CEO ระดับโลก

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

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

ผมมีวิธีเลือกอ่านหนังสือแบบนี้ครับ (บางทีก็แค่อยากซื้อมาเก็บเฉย) ซึ่งก็พอจะสรุปเป็นข้อๆได้ประมาณนี้ครับ

  • หนังสือที่ถูกกล่าวถึงหรือถูกอ้างอิงในหนังสืออีกเล่มที่เคยอ่าน ทำให้หนังสือแต่ละเล่มมักจะมีการเชื่อมโยงถึงกัน ยกตัวอย่างเช่น เราอ่านหนังสือประวัติของ Isaac Newton ในหนังสือบอกว่า The Principia คือ ผลงานปฎิวัติวงการของเขา หนังสือที่เราอยากอ่านเล่มต่อไปย่อมเป็น The Principia หรือไม่ก็หนังสือที่เขียนอธิบายเกี่ยวกับ The Principia (แค่ยกตัวอย่างนะครับ มิอาจเอื้อม แต่ก็อยากซื้อมาประดับชั้นหนังสือนะ)
  • ผลงานของนักเขียนคนเดิม บ่อยครั้งที่จะดูว่านอกจากเล่มที่กำลังอ่านอยู่นั้น มีผลงานอื่นอะไรอีกที่น่าสนใจ เช่น เราอ่าน Surely You’re Joking, Mr. Feynman! เป็นไปได้หรือที่จะไม่ตามอ่าน What Do You Care What Other People Think?
  • ในเว็บไซต์ต่างๆ เช่น Goodread, Time, Nature, Wired, etc. ก็มักจะมีลิสต์หนังสือแนะนำให้เลือกติดตาม ในช่วงหลังๆที่ไม่รู้ว่าจะหาหนังสืออะไรมาอ่าน ช่องทางนี้ถูกเลือกใช้บ่อยๆ

นอกจากนี้ คนดัง ผู้มีอิทธิพลของโลก มหาเศรษฐี CEO หรือคนที่ได้รับการยอมรับว่าเป็นอัจฉริยะในด้านต่างๆ ก็มักจะมีหนังสือแนะนำกันทั้งนั้น ปีที่แล้ว Mark Zuckerberg ก็ลิสต์หนังสือที่เปลี่ยนใหม่ทุกๆ 2 สัปดาห์ สุดท้ายได้ออกมา 23 เล่ม Ayearofbooks.net

แต่ถ้าอยากรู้ว่า CEO แต่ละคน เช่น Mark Zuckerberg, Sam Altman, Bill Gates, Larry Page, Elon Musk, etc. มีลิสต์หนังสือแนะนำอะไรบ้าง เข้าไปดูได้ที่เว็บไซต์นี้ Bookicious.com

Book Collections Bookicious

ใน Bookicious จะเป็นการแนะนำหนังสือแบบรวบร่วมจากสื่อต่างๆ ที่ CEO แต่คนเคยบอกไว้ หรือเคยในสัมภาษณ์ไว้ ทำให้เราง่ายที่จะติดตามหนังสือตามบุคคลที่เราสนใจ หนังสือบางเล่มก็ได้รับการแนะนำจากหลายคน เช่น Sapiens by Yuval Noah Harari, The Innovator’s Dilemma by Clayton M. Christensen เป็นต้น ถ้าหลายคนแนะนำ แสดงว่าหนังสือเล่มนั้นก็น่าจะได้รับการการันตีในระดับหนึ่งว่าต้องดีแน่ๆ

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

ตามไปดูหนังสือของ Bill Gates ได้ที่ Gatesnotes.com

Book reviews by Bill Gates

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

Die STAR TREK Physik (ฟิสิกส์ในสตาร์เทรค)

วันนี้เดินผ่านร้านหนังสือพบหนังสือที่น่าสนใจมากครับ เรื่อง “Die STAR TREK Physik” (ฟิสิกส์ในสตาร์เทรค) ของ Prof.Dr. Metin Tolan อยากอ่านมาก น่าจะสนุกๆแน่ๆเลย ทำให้จินตนาการถึง The Science of Interstellar ที่เอาเนื้อหาในหนังมาอธิบายในเชิงวิทยาศาสตร์ เสียดายมีแต่ภาษาเยอรมัน ซึ่งตอนนี้อ่อนมากๆ น่าจะมีเวอร์ชั่นภาษาอังกฤษบ้าง

Die STAR TREK Physik (ฟิสิกส์ในสตาร์เทรค)

เพื่อนบอกว่านักเขียนท่านนี้เป็นอาจารย์ที่นี้นะ(Technischen Universität Dortmund) ผมนี่ตาลุกวาวเลย แล้วก็เหลือบไปเห็นป้ายโฆษณา มีพบปะนักเขียนด้วย เพื่อนบอกว่าเคยเรียนกับอาจารย์ด้วยสอนสนุกดี เขาเอาบางเคสที่เขียนในหนังสือมาสอนด้วยนะ นอกจากนี้ อาจารย์ยังมีหนังสือ อื่นๆ อีกด้วย

-Die Physik des Fußballspiels อธิบายหลักฟิสิกส์เกี่ยวกับการเล่นฟุตบอล
-Titanic: Mit Physik in den Untergang อธิบายหลักการฟิสิกส์เกี่ยวกับการจมของเรือไททานิค
-James Bond und die Physik อธิบายหลักการฟิสิกส์ในหนังเจมส์ บอนด์

นักเรียนที่นี้น่าจะสนุกกับเรียนหนังสือเนอะ (โคตรอิจฉาเลย)

ลิงค์รายชื่อหนังสือใน Amazon https://goo.gl/DCbpEk

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

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

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

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

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

German longwave time signal

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

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

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

ลองเล่น BLE Wireless Sensor Tag Demo V1.1

เมื่อวานก่อนไปงาน Embedded World 2016 ที่ Nürnberg มาครับ งานใหญ่มาก มีบริษัทใหญ่ๆทั่วโลกมาออกบูธแสดงสินค้าและบริการของตัวเองเพียบ มีของแจกเยอะมากๆด้วย ได้ของแจกฟรีมาเยอะเลยครับ หนึ่งในนั้นที่โชว์อยู่คือ BLE(Bluetooth Low Energy) Wireless Sensor Tag เป็นของโชว์ IoT ของบริษัท TE connectivity มีบอร์ดอื่นๆอีกหลายอย่างให้เลือก แต่เลือกเอาตังนี้มาน่าจะเล่นได้เลย ส่วนบอร์ดอื่นบางอันต้องการ module อื่นเชื่อมต่ออีกที

BLE Wireless Sensor Tag Demo V1.1

สิ่งที่ BLE Wireless Sensor Tag Demo V1.1 ทำได้คือ มีเซนเซอร์ตรวจวัด Humidity, Temperature, Pressure แล้วส่งข้อมูลผ่าน Bluetooth รองรับทั้ง Android และ Windows ลองเล่นดูแล้ว ถือว่าเจ๋งมากๆ เขาเครมว่าใช้ถ่าน CR2032 ก้อนกลมๆ นั้น อยู่ได้นาน 3 เดือนเลยครับ เจ๋งดีจริงๆ

รายละเอียดทั้วไปของบอร์ด BLE Wireless Sensor Tag Demo V1.1 download link

  • Bluetooth Low Energy Tag
  • Humidity (0-100%RH)
  • Temperature (-20°C + 85°C)
  • Pressure (300 to 1200mBar)
  • Android & Windows PC compatible แต่ใน App Store ก็มีแอพให้เล่นเหมือนกันนะแต่ไม่มีเครื่องลองเลยไม่รู้ว่าใช้ได้ไหม
  • อื่นๆ มี SDK ให้เอาไปพัฒนาต่อได้ด้วย

เขียนถึง (วิเคราะห์) Sony Pictures ถูกแฮคครั้งใหญ่

Sony Pictures hack

เรียกว่าวิเคราะห์ก็เขินเกินไปที่จะเขียนแบบนั้น ไม่ได้เชี่ยวชาญเรื่องคอมพิวเตอร์ขนาดนั้น เลยใช้คำว่า “เขียนถึง” ก็พอแล้วกัน ข่าววงการไอทีที่ได้รับความสนใจอย่างมากในช่วงนี้คือ ข่าวบริษัท Sony Pictures ถูกแฮคคอมพิวเตอร์ทั้งระบบ เรียกได้ว่าถูกเจาะทะลุปรุโปร่ง อีเมล ระบบงาน ไฟล์หนังสมบูรณ์ที่ยังไม่ได้ฉาย บทภาพยนต์ เอกสารเจรจาธุรกิจ ข้อมูลพนักงาน เอกสารลับในบริษัท และอื่นๆอีกมากมาย เป็นเหตุการณ์หนึ่งที่สำคัญและน่าติดตาม จึงอยากจะบันทึกเรื่องต่างๆในมุมมองของตัวเองเก็บไว้

มีข่าวหลายที่ตามเรื่องนี้อย่างต่อเนื่อง

https://www.engadget.com/2014/12/10/sony-pictures-hack-the-whole-story/ 

https://www.bbc.com/news/technology-30530361

https://www.blognone.com/topics/sony-pictures (ภาษาไทย)

มีหลายสำนักโยงเรื่องการแฮคครั้งใหญ่นี้กับเกาหลีเหนือ ต้นเรื่องมาจากการทำหนังเรื่อง The Interview หนังตลกเกี่ยวกับการลอบสังหารผู้นำสูงสุดของเกาหลีเหนือ Kim Jong-un และการถูกขู่ให้ระงับการฉายหนังเรื่องนี้ก่อนที่เหตุการณ์การถูกแฮคจะเกิดขึ้น ยิ่งทำให้คนเชื่อว่ามีความเชื่อมโยงกัน แม้ว่าเกาหลีเหนือจะออกมาปฎิเสธแบบกรายๆว่าไม่ใช่ แต่จากการสืบสวนมีหลายอย่างที่มุงไปที่เกาหลีเหนือเป็นส่วนใหญ่ เรื่องนี้ไม่มีทีท่าว่าจบลงได้โดยง่าย แฮคเกอร์ยังมีข้อมูลหลายอย่างที่จะนำมาเผยแพร่ต่ออยู่อีกเรื่อยๆ

นามแฝงของแฮคเกอร์ #GOP

สิ่งที่พอจะมีความคิดเห็นกับเรื่องนี้ มีดังนี้

  1. ถ้าหากเป็นเกาหลีเหนือที่ทำจริง แสดงว่าเขามีทีมผู้เชี่ยวชาญด้านนี้ที่แข่งแกร่งมาก พร้อมจะทำสงครามไซเบอร์กับใครก็ได้ ที่บอกว่าพร้อมจะโจมตีใครก็ได้เพราะดูจากการเลือกเป้าหมายที่โจมตีก่อน ไม่ใช่การเจอช่องโหว่ของระบบได้ด้วยความบังเอิญ หากแต่เป็นการมุ่งโจมตีเป้าหมายที่ต้องการจะโจมตี “ถ้าคุณยังยืนยันจะทำหนังล้อเลียนผู้นำของเราคุณจะถูกโจมตี” ในยุคที่ทุกอย่างแทบจะอยู่ในคอมพิวเตอร์และอินเทอร์เน็ตหมดแล้ว ทำให้การโจมตีมาจากที่ไหนก็ได้ กลายเป็นว่าเกาหลีเหนือมีกองทัพไซเบอร์ที่น่ากลัวมาก
  2. โรงหนังของดฉายหนังเรื่อง The Interviews เพราะไม่อยากเป็นเป้าโจมตี ทำให้รู้สึกว่าเราอยู่ในยุคที่การโจมตี ไม่ใช่มาจากการโจมตีทางการทหารอย่างเดียวอีกต่อไปแล้ว การโจมตีทางไซเบอร์ทำความเสียหายให้กับเป้าหมายอย่างสูงมาก ในขณะที่ใช้กำลังพล กำลังทรัพย์น้อยกว่ามาก และการโจมตีเป้าหมายในระยะไกลคนละซีกโลกได้โดยง่าย
  3. ประเทศเรามีการพัฒนาหรือพร้อมกับเรื่องนี้มากน้อยแค่ไหน เท่าที่รู้เราไม่น่าจะมีกองกำลังที่จะโจมตีใครได้หรือจะดูแลตัวเองได้เลยด้วยซ้ำ ประเทศเราก็พึ่งพาคอมพิวเตอร์และอินเทอร์เน็ตอยู่ไม่น้อย ทะเบียนราช ชื่อ-ที่อยู่ของทุกคนในประเทศ ระบบภาษี ธนาคาร งานบริการอื่นๆอีกมากมาย ระบบความปลอดภัยของเราพร้อมมากน้อยแค่ไหน เป็นอีกเรื่องที่น่าให้ความสนใจเป็นอย่างมาก
  4. ถ้าหากการแฮคครั้งใหญ่นี้เกิดจากช่องโหว่ในระบบที่มีการแจ้งเตือนก่อนหน้านี้แล้ว แต่ถูกเพิกเฉย เมื่อแฮคเกอร์ใช้ช่องโหว่นั้นแฮคได้สำเร็จ ได้ข้อมูลต่างๆไปมากมาย จากนั้นแค่นำเรื่องของเกาหลีเหนือมาเป็นข้ออ้างในการกระทำครั้งนี้ “Some Men Just Want to Watch the World Burn” ก็เป็นคราวซวยของ Sony Pictures ที่ฝ่ายไอทีเพิกเฉยกับเรื่องที่สำคัญเช่นนั้น แต่อย่างไรก็ตามผู้กระทำให้ผู้อื่นเสียหายดังกล่าวก็ควรได้รับการลงโทษตามกฏหมาย

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

แอพพลิเคชั่นช่วยคำนวณจำนวนเซลล์ใน Cell Counting Chamber

Cell Counting Calculator

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

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

Hemocytometer ภาพจาก https://en.wikipedia.org/wiki/Hemocytometer

ใน Hemocytometer เมื่อมองผ่านกล้องจุลทรรศน์จะเห็นว่ามีกริดอยู่ด้านในแบ่งเป็นช่อง กำหนดเป็นพื้นที่ไว้ ส่วนขอบมันจะยกสูงขึ้นมาให้วางแผ่นแก้ว(cover slip) เพื่อกำหนดส่วนสูงให้ได้ 0.1 มิลลิเมตร เมื่อเรานำเซลล์ที่ละลายอยู่ในสารละลายเข้าไปในช่องว่างระหว่างแผ่นแก้วกับ chamber แล้ว เอาพื้นที่ตามตารางกริดคูณกับส่วนสูงก็จะทราบปริมาตรที่แน่นอน เมื่อนับจำนวนเซลล์จึงรู้ได้ว่าในสารละลายมีเซลล์มากน้อยเท่าไหร่ต่อหนึ่งหน่วยปริมาตร

กริดภายใน Counting chamber ภาพจาก https://www.nexcelom.com/Products/Disposable-Hemacytometer.html

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

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

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

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

จึงออกมาเป็น Chamber calculator ตัวแรก ที่ช่วยให้เราทำงานได้ง่ายขึ้นมาก

Chamber calculator

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

viability calculator

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

เข้าไปโหลดแอพพลิเคชั่น Cells Calculator ได้ฟรีที่

QR Code

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

ส่วนวิธีใช้แบบง่ายๆก็ได้ลองอัดคลิปมาให้ได้ดูกันด้วย

วิธีการใช้แอพพลิเคชั่น Cells calculator 

รายการที่ต้องปรับปรุงเพิ่มเติม

  • เพิ่มปุ่มนับให้โหมด Chamber Calculator
  • ปรับให้เลือกช่องกริดได้หลากหลายมากขึ้น
  • เพิ่มสีสัน และภาพให้ดูน่าใช้มายิ่งขึ้น

หนังสือที่ได้จาก งานสัปดาห์หนังสือ 29 มีนาคม – 8 เมษายน 2556

หนังสือที่ได้มาจากงานสัปดาห์หนังสือ

งานสัปดาห์หนังสือแห่งชาติ ครั้งที่ 41 และงานสัปดาห์หนังสือนานาชาติ ครั้งที่ 11
(41st National Book Fair and 11th Bangkok International Book Fair 2013)
ระยะเวลาแสดงงาน วันศุกร์ที่ 29 มีนาคม – วันอาทิตย์ที่ 8 เมษายน 2556 
สถานที่ ศูนย์การประชุมแห่งชาติสิริกิติ์

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

รายการหนังสือที่ได้มาจากงานสัปดาห์หนังสือครับ

  1. ไอน์สไตน์ โดย วอลเตอร์ ไอแซคสัน – ดร.บัญชา ธนบุญสมบัติ และคณะ แปล, สำนักพิมพ์เนชั่นบุ๊ค
  2. โลกเครือข่าย – รอฮีม ปรามาท, สำนักพิมพ์โพสต์บุ๊ค
  3. ชีวิตคือปาฎิหาริย์! (หนังสือเสริมกำลังใจ ชุด 8) – วินทร์ เลียววาริณ, สำนักพิมพ์ 113
  4. คดีล่าคนเจ้าชู้ (นิยายนักสืบ พุ่มรัก พานสิงค์ ชุด 5) – วินทร์ เลียววาริณ, สำนักพิมพ์ 113
  5. เซนว่าง-ว่างเซน – วินทร์ เลียววาริณ, สำนักพิมพ์ 113 (หนังสือแถม ถ้าซื้อครบ 2 เล่ม)
  6. ปฎิบัติการหนังทุนข้ามชาติ-filmvirus – สนธยา ทรัพย์เย็น, ทีฆะเดช วัชรธานินท์, สำนักพิมพ์ openbooks
  7. 151CINEMA-filmvirus – อุทิศ เหมะมูล, ธเนศน์ นุ่นมัน, สำนักพิมพ์ openbooks
  8. The Chemistry of Movie: มหา’ลัย เหมืองแร่ – ภิญโญ ไตรสุริยธรรมา บรรณาธิการ, สำนักพิมพ์ openbooks
  9. โมเลกุล เปลี่ยนประวัติศาสตร์ กระดุม นโปเลียน เปลี่ยนโลก – Penny Le Couteur, Jay Burreson เขียน, ดร.ยุทธนา ตันติรุ่งโรจน์ชัย แปล, สำนักพิมพ์มติชน
  10. ฟายน์ แมน อัจฉริยะโลกฟิสิกส์ – Ralph Leighton เขียน, นรา สุภัคโรจน์ แปล, สำนักพิมพ์มติชน
  11. ฟายน์ แมน อัจฉริยะอารมณ์ดี – Ralph Leighton เขียน, นรา สุภัคโรจน์ แปล, สำนักพิมพ์มติชน