การคำนวณค่าความผิดพลาด Error

Nanoscope

เราสามารถคำนวณค่าความผิดพลาด หรือ เราเรียกกันว่า Error ได้จาก
Observed Value ก็คือค่าที่เราวัดได้
True Value ก็คือค่าที่แท้จริง หรือ เป็นค่าที่เราคาดหวัง
โดยเราสามารถแบ่งการคำนวณค่าผิดพลาดได้เป็น 2 แบบ นั้นก็คือ

abs error

Relative error 1

หรือ

Relative error 2
(โดย Vtrue ไม่เท่ากับ 0)

โดย
Relative percent error 1

หรือ

Relative percent error 2

ตัวอย่างการคิดค่า Absolute Error
Observed Value = 9
True Value = 10
Absolute error = 9-10 = -1

ตัวอย่างการคิดค่า Relative Percent Error และ Relative Error
Observed Value = 9
True Value = 10
Relative Error = -0.1
Relative error Percent Error = -10%

เราจะเห็นได้ว่า error สามารถ แบ่งได้เป็น 2 แบบ นั้นก็คือ โดย Absolute error และ Relative Error
โดย Absolute Error จะเป็นตัวบอกว่า มีความผิดพลาดจากการวัดขนาดเท่าไรจากการวัด ส่วน Relative Error จะแสดงถึงการวัด Error นั้นมีค่าความผิดพลาดที่ดีหรือเปล่าโดยสามารถเทียบเป็น Relative error Percent Error ได้นั้นเอง

POSIX คืออะไร แล้วมันดียังไง ทำไมต้องมีด้วยนะ

Ieee_blue

POSIX ย่อมาจาก Portable Operating System Interface หรือ POSIX นั้นคือ ข้อตกลงมาตรฐานที่ถูกระบุโดย IEEE Computer Society

ซึ่งมาตรฐานเหล่านั้นประกอบไปด้วย กลุ่มของ API (application programming interfaces) สำหรับ ระบบปฏิบัติการ Unix และ Unix-like ต่างๆ เช่น Solaris (Oracle), AIX (IBM), HP-UX (HP), OS X (Apple) และ Linux distros ต่างๆ (Linux distros ส่วนใหญ่ คลอบคลุมตาม POSIX เกือบทั้งหมด แต่ไม่ได้ มีการตรวจสอบอย่างเป็นทางการ เพราะต้องจ่ายเงินสำหรับการทดสอบนั้นเอง) ส่วน Windows เองนั้น ก็สามารถรองรับ POSIX ได้ผ่านทาง “Windows Subsystem for Linux” หรือ ใช้ Cygwin ซึ่งเป็น Third-party project นั้นเอง

แล้วทำไมต้องมี POSIX มีแล้วดียังไง?
การที่เราสร้างโปรแกรม แล้วเขียนโปรแกรมให้ใช้งาน API ที่กำหนดตาม POSIX มีข้อดีอย่างมาก เพราะจะทำให้โปรแกรมที่เราสร้างขึ้นมานั้นสามารถ port หรือ ย้ายไปใช้งานกับระบบปฏิบัติการอื่นๆที่รองรับ POSIX ได้ ทำให้เราไม่ต้องเขียนโปรแกรมขึ้นมาใหม่เพื่อรองรับ ระบบปฏิบัติการนั้นๆ ซึ่งแบบนี้เราจะเรียกโปรแกรมที่เขียนแบบนี้ว่า เป็นการเขียนแบบ cross-platform นั้นเอง

และนี้ก็เป็นการทำความรู้จักกับ POSIX หรือ Portable Operating System Interface ซึ่งเป็นมาตรฐาน API ที่ช่วยให้เราสามารถเขียนโปรแกรมให้ cross-platform ไปทำงานที่ระบบปฏิบัติการอื่นๆได้อย่างง่ายดายนั้นเอง

มาทำความเข้าใจเกี่ยวกับการทำ Normalized ตัวเลข

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

การทำ Normalized number ตัวเลขฐาน 10
สามารถทำได้โดยนำตัวเลขฐาน 10 มาแปลงเป็นดังรูปแบบด้านล่างนี้
Normalized001

Normalized002

ตัวอย่าง การทำ Normalized number เช่น
165.532 Normalize ได้เป็น normalized-ex1
0.00195 Normalize ได้เป็น normalized-ex2
5,000,000,000 Normalize ได้เป็น normalized-ex3
เราจะเห็นได้ว่าสามารถเปรียบเทียบตัวเลขทั้ง 3 คัวเลขจากตัวอย่างได้อย่างง่ายได้ โดยดูจากเลขชี้กำลังและตัวเลขด้านหน้าประกอบ

นอกจากตัวเลขฐาน 10-ทั่วไปแล้วยังสามารถใช้กับตัวเลขฐานอื่นๆก็ได้เช่นกัน
โดย Base b (b คือเลขฐาน เช่น เลขฐาน 2 b=2 หรือ ฐาน16 b=16) สามารถแปลงเป็นดังรูปแบบด้านล่างนี้
Normalized003

API คืออะไรกันนะ

8692704103_ae4cd86d81_b
API ย่อมาจาก application programming interfaces มีความหมายตรงตัวเลยนั้นก็คือ การเชื่อมต่อกันเพื่อแลกเปลี่ยนข้อมูล ระหว่าง โปรแกรม กับ โปรแกรมนั้นเอง

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

Waiter_in_a_restaurant,_Paris_2011

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

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

AR กับ VR มันคืออะไร ต่างกันยังไงกันนะ

หลายคนคงจะสงสัยกับคำว่า AR และ VR ว่ามันคืออะไร แล้ว AR vs VR ต่างกันยังไงกันนะ

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

เกม AR ต่างๆ เช่น Pokemon Go
28286906571_813c6e6d82_b

การเรียนการสอน
App_iSkull,_an_augmented_human_skull

โฆษณา
Augmented-reality-ads

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

การจำลองการขับเครื่องบิน
VR-Helm

การประยุกต์ใช้ในการศึกษาต่างๆ
AC89-0437-20_a

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

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

วิธีลบ Revision ขยะ ใน WordPress ของเรา

มีใครสังเกตไหมว่าเวลาเราเขียนบทความใน WordPress จะมี การบันทึกอัตโนมัติให้เราด้วย สามารถสังเกตเห็นได้จาก เลข Revision ด้านขวามือของ Post นั้นๆ ซึ่งหากเรามีบทความจำนวนมากก็จะทำให้มี Revision มากตามไปด้วยทำให้กินพื้นที่ใน Database และยังทำให้ Database บวมและ ทำงานช้าลงอีกด้วย
วิธีแก้ไขสามารถทำได้ ในบทความนี้จะมาสอนวิธีลบ Revision post ใน WordPress ออกไป โดยโดยใช้ Plugin ที่ชื่อว่า Better Delete Revision https://wordpress.org/plugins/better-delete-revision/

delete_revision_post_wordoress_0

แต่ก่อนที่เราจะลบ Revision post แนะนำให้ ทำการ backup ข้อมูลของ wordpress ไว้ก่อน ปลอดภัยไว้ก่อนนะ

แล้วก็ก่อนที่จะลบ ลองไปดู post ของเราสักอันนึงสิ ดูทางด้านขวามือบนของ post นะ เป็นยังไงมีกี่ Revision เพื่อเป็นการตรวจสอบก่อน ลงมือ อิอิ , ออ มีอยู่ 5 revision นะ Post นี้
delete_revision_post_wordoress_before

หลังจากนั้นให้เราทำการติดตั้ง Better Delete Revision ก่อน แล้วไปที่ Settings เลือก Batter Delete Revision

delete_revision_post_wordoress_1

จะเห็นว่า เรามี Post อยู่เท่าไร จากตัวอย่างในรูปมี 56 post หลังจากนั้นกด Check Revision Posts ได้เลย
delete_revision_post_wordoress_2

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

รอสักครู่ก็จะเห็นรูปตามนี้เลย Delete ไปแล้วกี่ Revision
delete_revision_post_wordoress_4

ไหนมันลบออกไปจริงหรือป่าว ไหนลองดู post เดิมสิ หายไปหมดเลยจริงๆด้วย
delete_revision_post_wordoress_after

และนี้ก็เป็นวิธีลบ Revision ใน wordpress ให้ database ของเราไม่เก็บพวกขยะ ไม่ทำให้ database บวมอีกต่อไป

แนะนำ Plugin แปะ Source code ใน WordPress

สำหรับคนที่ใช้งาน wordpresss แล้วต้องการโพส source code หรือ แปะโค้ดที่เราเขียนลงใน Blog ของเรา สามารถใช้งาน plugin ของ wordpress ได้ ในบทความนี้จะมาขอแนะนำ plugin 2 ตัวที่ยอดฮิต ใช้งานได้ดีจริงๆ

1. SyntaxHighlighter Evolved

syntaxhighlighter

สำหรับตัวนี้ SyntaxHighlighter หลายคนอาจจะเคยใช้งานที่อื่นมาบ้าง เพราะเจ้านี้เขา support หลายที่มาก เขาบอกว่า หลายๆที่ก็ใช้ของเขาเเช่นกัน เช่น Apache, Aptana, Mozilla, Yahoo, WordPress, Bug Labs, Freshbooksและอื่นๆ

นอกจากนี้ยังมีธีมที่รองรับหลายแบบเช่น
Theme
Default
Django
Eclipse
Emacs
Fade To Grey
Midnight
RDark
ดูตัวอย่างได้จากที่นี้ http://alexgorbatchev.com/SyntaxHighlighter/manual/themes/

ตัวอย่างการใช้งาน หน้าตาจะออกมาเป็นแบบนี้
SyntaxHighlighter Evolved v2

ส่วนวิธีใช้งาน ก็ใช้เครื่องหมาย [ชื่อภาษา] โค้ด [/ชื่อภาษา] โดยชื่อภาษาสามารถดูได้จาก >>> http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/
SyntaxHighlighter Evolved v3-raw

ใครที่สนใจสามารถหามาติดตั้งได้จากที่นี้ https://wordpress.org/plugins/syntaxhighlighter/

2. Crayon Syntax Highlighter

crayon

สำหรับ Crayon Syntax Highlighter ก็เป็น plugin อีกตัวหนึ่งที่น่าสนใจเช่นกัน

รองรับหลายภาษามากๆ โดยสามารถดูภาษาที่รองรับทั้งหมด ได้จากใน folder ของ plugin โหลดมาที่
\crayon-syntax-highlighter\langs

ส่วนธีม Theme ก็มีมากจริงๆ สามารถดูได้จาก folder ของ plugin โหลดมาที่
crayon-syntax-highlighter\themes

ตัวอย่างการใช้งาน หน้าตาจะออกมาเป็นแบบนี้
Crayon Syntax Highlighter

ส่วนวิธีใช้งาน ก็ใช้เครื่องหมาย crayon code โดยชื่อภาษาสามารถดูได้จาก >>> ได้จากใน folder ของ plugin โหลดมาที่
\crayon-syntax-highlighter\langs

Prepaid กับ Postpaid ต่างกันอย่างไง

Oyster_Card_Top-up_Machine

Prepaid กับ Postpaid นั้นมีความแตกต่างกัน ตรงที่เมื่อไรควรจะจ่ายเงิน ซึงส่งผลต่อการใช้งาน ของผู้ใช้งาน

Prepaid นั้นหมายถึง จ่ายเงินก่อนใช้งาน ตัวอย่างเช่น การเติมเงินจากบัตรเติมเงินก่อนการใช้งานโทรศัพท์ การเติมเงิน

Postpaid นั้นหมายถึง จ่ายเงินหลังจากใช้งาน ตัวอย่างการใช้งานเช่น การจ่ายค่าน้ำ ค่าไฟ ค่าอินเตอร์เน็ต ค่าบัตรเครดิต ค่างๆ

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

ทีนี้เราก็เข้าใจเกี่ยวกับ Prepaid กับ Postpaid คราวนี้ใครถามก็อย่าลืมบอกหรือให้ความรู้ทุกคนจะได้เข้าใจกันได้อย่างถูกต้องนั้นเอง

แม่นยำ VS เที่ยงตรง ต่างกันอย่างไง

ความเที่ยงตรง (Accuracy) และ ความแม่นยำ (Precision) นั้นบางคนอาจจะคิดว่าก็เหมือนกันนั้นและ แต่จริงๆแล้วมันมีความแตกต่างกันอย่างสิ้นเชิงเลยละ เรามาทำความเข้าใจกันดีกว่าว่าแตกต่างกันอย่างไร

ความเที่ยงตรง (Accuracy) นั้นหมายถึง ค่าที่ได้นั้นมีค่าเข้าใกล้ค่าที่ถูกต้อง
ตัวอย่างในการยิงธนู จะเห็นว่ายิงเข้าใกล้จุดศูนย์กลางแสดงถึงความเที่ยงตรง แต่เป้าที่ยิงโดนอาจจะไม่ใกล้เคียงกันก็ได้

ความเที่ยงตรงสูง-แม่นยำต่ำp

เราเรียกว่า แบบนี้ว่า
มีความเที่ยงตรงสูง
ความแม่นยำต่ำ

ความแม่นยำ (Precision) นั้นหมายถึง ค่าที่ได้นั้นมีค่าแต่ละค่าเข้าใกล้เคียงกัน ซึ่งค่านั้นอาจจะไม่เข้าใกล้ความถูกต้องก็ได้
ตัวอย่างในการยิงธนู จะเห็นว่าแค่ละครั้งที่ยิงโดนใกล้เคียงกันแสดงให้เห็นถึงความแม่นยำ

ความเที่ยงตรงต่ำ-แม่นยำสูง

เราเรียกว่า
มีความเที่ยงตรงต่ำ
ความแม่นยำสูง

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

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