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 ไปทำงานที่ระบบปฏิบัติการอื่นๆได้อย่างง่ายดายนั้นเอง

ใช้งาน Task schedule ในขณะที่เราไม่ได้ logged on windows ไว้

ในการใช้งาน Task schedule เราสามารถสั่งให้ทำงานได้ แม้กระทั้งเราไม่ได้ logged on windows ไว้อยู่ ให้ทำงานตาม schedule ที่เราตั้งไว้ได้ ซึ่งสามารถเลือกติ๊กโดยเลือกที่ Run whether user is logged on or not ได้ ดังรูป

nopass

แต่ว่าหากเครื่อง windows ใครตั้ง password เพื่อ login เข้า windows ไว้ เราจะต้อง เลือกเอา ติ๊กออก Do not store password. The task will only have access to local computer resources.ดังรูป

need login pass

และนี้ก็เป็นการใช้งาน Task schedule สำหรับเครื่องที่ต้อง ใส่ password เพื่อ login เข้าเครื่อง ใช้งานได้ปกติ และถูกต้อง

มาทำความเข้าใจเกี่ยวกับการทำ 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 นั้นจะเน้นไปที่การผสานรวบรวมระหว่างวัตถุเสมือนรอบตัวเราเข้ากับสภาพแวดล้อมจริงๆ ณ ขณะนั้น นั้นเอง

วิธี Restore ข้อมูลของ Redmine [แบบ Partial]

หลังจากที่เราทำการ Backup แบบ Partial Backup Redmine กันไปแล้วก็มาถึง วิธีการ Partial Restore Redmine
เพื่อทำการกู้ข้อมูลที่เรา Backup ไป โดยวิธีนี้จะถือว่าเพื่อนได้ลง Bitnami Redmine เป็นที่เรียบร้อยแล้ว

วิธี Partial Restore Redmine

1. ก๊อปปี้ file backup.sql ที่เราได้ไปที่ redmine folder C:\Bitnami\redmine
partial-restore-redmine-image001

2. เช็คว่า Redmine ยังรันอยู่โดยการไปที่ C:\Bitnami\redmine ทำการเปิด manager-windows.exe จะได้ดังรูป Running ทั้งหมด
partial-restore-redmine-image002

3. ไปที่ C:\Bitnami\redmine เปิด use_redmine.bat (ต้อง run as administrator ด้วยนะ)

4. พิมพ์ command line ว่า $mysql -u root -p bitnami_redmine < backup.sql (ไฟล์ backup.sql จะต้องใช้ชื่อให้ตรงกันกับตอนที่ พิมพ์ command line นะ) ใส่ password ที่เราติดตั้ง Redmine เข้าไป ถ้าทำได้ถูกต้องจะขึ้นดังรูปด้านล่าง partial-restore-redmine-image004

5.ขั้นตอนนี้จะทำการ Restore รูปภาพ และไฟล์ที่อยู่ใน Redmine, โดยไปที่ C:\Bitnami\redmine\apps\redmine\htdocs\files , แตกไฟล์ที่เรา backup มาจาก ทับลงไปที่ folder ปีนั้นๆ(ข้างใน folder นี้ก็จะแบ่งเป็นแต่ละเดือนด้านใน)
partial-restore-redmine-image005

วิธี Backup สำรองข้อมูลของ Redmine [แบบ Partial]

และนี้ก็เป็นวิธีที่ 2 สำหรับการ Backup Redmine ก็คือ การทำ Partial Backup Redmine เพราะว่าบางทีเราต้องการข้อมูลเพียงแค่บางส่วนไม่ได้ต้องการ backup ทั้งหมด (เพราะเวลาเราใช้งาน Redmine ไปเรื่อยๆ ไฟล์จะมีขนาดใหญ่ขึ้นเรื่อยๆเป็นระดับ Gigabytes ทำให้การทำ Backup แบบ Full ใช้เวลานาน)
โดยวิธีนี้ Partial จะเป็นการแบ่งการ backup เป็น 2 ส่วนก็คือส่วนที่ 1 database ซึ่งจะมีขนาดไม่ใหญ่จะทำการ backup ทั้งหมด และ ส่วนที่ 2 จะ backup ไฟล์ที่ user upload ขึ้นไป ทั้งไฟล์ทั่วไปและรูปภาพ(ส่วนนี้จะมีขนาดใหญ่ ซึ่งเราสามารถเลือก backup ได้)

วิธีการทำ Partial Backup Redmine

1. เข้าไปที่ C:\Bitnami\redmine แล้วทำการรัน ไฟล์ use_redmine.bat (Run as administrator)
partial-backup-redmine-image001

2. พิมพ์ $mysqldump -u root -p bitnami_redmine > backup.sql
แล้วใส่ password ของ database ใน Redmine ด้วย
partial-backup-redmine-image002

3 เราก็จะได้ไฟล์ Backup database ของ Redmine อยู่ที่ C:\Bitnami\redmine\backup.sql (ซึ่งไฟล์ database นี้จะไม่มีรูปภาพ และไฟล์ต่างๆใน Redmine นะ)
partial-backup-redmine-image003

4. สำหรับรูปภาพ และไฟล์ต่างๆใน Redmine สามารถ backup ได้โดย ไปที่ C:\Bitnami\redmine\apps\redmine\htdocs\files ไฟล์ทั้งหมดจะถูกแบ่งเป็นแต่ละเดือน แต่ละปี ให้เราเลือก Backup ได้ตามต้องการ
partial-backup-redmine-image004

และนี้ก็เป็นวิธีการทำ Partial Backup Redmine ซึ่งเราสามารภเลือกที่จะ Backup ไฟล์ใน Redmine ได้ไม่จำเป็นต้อง Backup ทั้งหมดนั้นเอง ส่วนวิธีการ Restore สามารถอ่านต่อได้ที่นี้ วิธี Restore ข้อมูลของ Redmine [แบบ Partial]

การไฟฟ้าในประเทศไทย MEA vs PEA vs EGAT

การไฟฟ้าในประเทศไทยสามารถแบ่งได้เป็นหน่วยงานใหญ่ ได้ ทั้งหมด 3 หน่วยงานคือ

การไฟฟ้าส่วนภูมิภาค Provincial Electricity Authority
ตัวย่อคือ PEA หรือ กฟภ
PEAlogo

การไฟฟ้านครหลวง Metropolitan Electricity Authority
ตัวย่อคือ MEA หรือ กฟน.
mealogo

การไฟฟ้าฝ่ายผลิต Electricity Generating Authority of Thailand
ตัวย่อคือ EGAT กฟผ.
EGATlogo

ทั้งหมดเป็นรัฐวิสาหกิจแบ่งหน้าที่กันทำงานรับผิดชอบดังนี้
การไฟฟ้านครหลวงและการไฟฟ้าส่วนภูมิภาคแบ่งคือ พื้นที่ให้บริการแยกกันดูแล โดยพื้นที่ให้บริการของการไฟฟ้านครหลวง MEA คือ กรุงเทพ สมุทรปราการ นนทบุรี
MEAmap

นอกเหนือจากพื้นที่ให้บริการของการไฟฟ้านครหลวง MEA ก็จะเป็นพื้นที่ให้บริการของการไฟฟ้าส่วนภูมิภาค PEA ก็คือตามต่างจังหวัดนั้นเอง

ส่วน การไฟฟ้าฝ่ายผลิต กฝผ EGAT ก็จะมีหน้าที่ดูแลเรื่องโรงงานไฟฟ้าและการผลิตกระแสไฟฟ้าแล้วขายแก่ การไฟฟ้าส่วนภูมิภาค และ การไฟฟ้านครหลวง อีกทีหนึ่ง ตัวอย่างบริษัทที่ควบคุมโรงงานไฟฟ้าในเครือ กฟผ. เช่น EGCO, ECAP, RATCH

เว็บไซต์ที่ให้บริการข้อมูลเพิ่มเติมของแต่หน่วยงาน
การไฟฟ้านครหลวง www.mea.or.th
การไฟฟ้าส่วนภูมิภาค www.pea.co.th
การไฟฟ้าฝ่ายผลิต www.egat.co.th

ทำความเข้าใจกับพลังงานไฟฟ้า vs กำลังไฟฟ้า

Wind_power_plants_in_Xinjiang%2C_China

เวลาการไฟฟ้าคิดค่าไฟจะคิดจากพลังงานไฟฟ้าที่เราใช้งานไปว่าแต่พลังงานไฟฟ้าที่ว่าเขาคิดยังไงมีนิยามอย่างไรนะ

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

โดยเราสามารถนิยามพลังงานไฟฟ้าได้ว่า พลังงานไฟฟ้าคือกำลังไฟฟ้าที่สะสมในช่วงเวลาหนึ่ง

มาดูนิยามของกำลังไฟฟ้ากันก่อน โดยเราสามารถเขียนเป็นสมการได้ว่า W = Ws = J/s
โดย W คือ Watt วัตต์ หมายถึงพลังงานที่ปล่อยออกมาในเวลา 1 วินาที โดย พลังงาน 1 Joule จูล ซึ่งจะเทียบเท่ากับการยกของหนัก 1 กิโลกรัมขึ้นสูง 10 เซนติเมตร (นิยามของ Joule คือ นิวตัน-เมตร)

โดยการวัดพลังงานไฟฟ้าจะวัดเป็นหน่วย kWh หรือที่การไฟฟ้าเรียกว่า หน่วย โดย 1 หน่วยก็คือ 1 kWh หรือเท่ากับ 1000 Wh

จากที่ว่า พลังงานไฟฟ้าคือกำลังไฟฟ้าที่สะสมในช่วงเวลาหนึ่ง
เราสามารถแปลงจากกำลังไฟฟ้า ไปเป็นพลังงานไฟฟ้าได้ (Ws ไปเป็น Wh) ได้โดย
1÷ (60 x 60) hr = 1s
Wh = Ws ÷ 3600

ตัวอย่าง การคิดพลังงานไฟฟ้าจากกำลังไฟฟ้า

เตารีด 1600 W

philips-gc1930-org-01

IMG_20160222_083908450

W-> Wh = 1600 ÷ 3600 = 0.44 Wh ต่อ 1วินาที (1วินาทีใช้พลังงานไป 0.44 Wh)
ถ้าใช้เตารีดขนาดกำลังไฟฟ้า 1600 W ก็จะกินพลังงานไฟฟ้าใน 1 ชั่วโมงจะเท่ากับ 1600 Wh หรือ 1600 ÷ 1000 = 1.6 kWh หรือ 1.6 หน่วยนั้นเอง

หากค่าไฟหน่วยละ 3 บาท ก็จะต้องจ่ายเงินไป 1.6 x 3 = 4.8 บาท ถ้าใช้เป็นเวลา 1 ชั่วโมง

จะเห็นได้ว่าพลังงานไฟฟ้า vs กำลังไฟฟ้านั้นแตกต่างกันแต่มีความสัมพันธ์กัน หากกำลังไฟฟ้ามีค่ามากก็จะกินพลังงานมากทำให้เราต้องเสียค่าใช้จ่ายไปจำนวนมากนั้นเอง