Planet TLWG

Subscribe to Planet TLWG feed
Planet TLWG - http://debianclub.org/planet-tlwg
Updated: 1 hour 43 min ago

bact: อินเทอร์เน็ตสีขาว

22 June, 2017 - 03:04

อินเทอร์เน็ตใสสะอาดคงเหมือนกับห้องปลอดเชื้อคนไม่ต้องมีภูมิคุ้มกันอะไรเลยก็อยู่ได้ปลอดภัย

ถามว่าทำไมต้องเป็น “ห้อง”

ก็เพราะเราทำทั้งโลกให้ปลอดเชื้อไม่ได้ (แต่ปลอดมนุษย์นี่ไม่แน่) 

ได้อย่างมากก็ทั้งห้องหรือทั้งส่วนหนึ่งของอาคาร

แต่ชีวิตที่อยู่แต่ในห้องปลอดเชื้อ ไปเดินเล่น ตากฝน เก็บหอย ดูหนัง กินชาบู เต้นในคอนเสิร์ตไม่ได้ นี่เป็นชีวิตที่น่าพิสมัยไหม ก็ลองตอบดูเอง

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

แต่เป็นเรื่องทำให้ตัวเองมีภูมิคุ้มกัน

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

ไม่ต้องไปต้านทานหรือจัดการได้ทุกโรค เอาแค่พอมีชีวิตปกติได้ในพื้นที่ที่ใช้ชีวิตประจำวัน

จะไปไหนไกลๆ ไม่คุ้นเคย ก็ค่อยฉีดวัคซีน

มนุษย์แบบนี้จะเดินไปไหนในโลกก็ได้ ไม่ต้องอยู่แค่ในห้องปลอดเชื้อ ที่มีคนคอยคุม ไม่ต้องใช้แต่เน็ตที่มีคนคอยทำให้ใสสะอาด

bact: จุดอ่อนของ AI ในงานความมั่นคงปลอดภัยทางสารสนเทศ #infosec17

13 June, 2017 - 10:55

ในงาน Infosecurity Europe 2017 นอกจากคำว่า GDPR และ IoT ที่เดินไปไหนก็เจอแล้ว ยังมีอีก 2 คำที่มาคู่กันให้เห็นไปทั่ว คือคำว่า artificial intelligence (ปัญญาประดิษฐ์) และ machine learning (การเรียนรู้ของเครื่อง)

หัวข้อหนึ่งที่ได้ไปฟังแล้วน่าสนใจคือ Adversarial Machine Learning: The Pitfalls of Artificial Intelligence-based Security โดยมี Giovanni Vigna ซึ่งเป็นอาจารย์ที่ UC Santa Barbara และหนึ่งในผู้ก่อตั้งบริษัท Lastline มาเป็นวิทยากร

Machine learning and security

หลักๆ คือ Giovanni พูดถึงว่า การมีข้อมูลให้เครื่องมันเรียนรู้ถึงรูปแบบมัลแวร์และการโจมตีต่างๆ ก็อาจจะทำให้คอมพิวเตอร์มันเก่งขึ้นได้ในการตรวจจับความผิดปกติ (anomaly detection) โดยอัตโนมัติ ซึ่งอันนี้ก็ใช้เทคนิค classification และ clustering ทำนองเดียวกับแอปพลิเคชันอย่างการรู้จำภาพ โดยเขายกตัวอย่างการหาความผิดปกติในจาวาสคริปต์ ที่ก็อาจจะใช้การวิเคราะห์ข้อมูลจาก abstract syntax tree (AST) เพื่อเปรียบเทียบกับจุดที่เคยมีข้อมูลมาก่อนว่าเป็นอันตราย

Identifying adversaries: Malicious evasive JavaScript

อย่างไรก็ตาม เช่นเดียวกับระบบปัญญาประดิษฐ์ทั่วไป ที่เครื่องมันก็อาจจะตอบผิดบ้าง (ทั้ง false negative – มีอันตรายจริงๆ แต่หลงหูหลงตาไป ไม่ได้แจ้งเตือน และ false positive – แจ้งเตือนว่าเป็นอันตรายทั้งที่จริงไม่ใช่) แต่นอกจากนั้นแล้ว การใช้ปัญญาประดิษฐ์ และโดยเฉพาะเจาะจงคือการเรียนรู้ของเครื่อง กับงานความมั่นคงปลอดภัยยังมีจุดอ่อนอยู่อย่างน้อยอีก 2 อย่าง หากผู้โจมตีสามารถศึกษาและเข้าใจโมเดลที่ระบบใช้ได้ (ซึ่งการได้มาซึ่งโมเดลนี่ก็อาจจะใช้วิธี reverse engineering เอาก็ได้ เช่นขโมยผ่าน machine learning APIดูเปเปอร์)

  • อย่างแรกคือ ศึกษาหาจุดบอดของโมเดล เพื่อสามารถรู้ได้อย่างเจาะจงมากขึ้นว่า ในกรณีไหน (ด้วย feature set แบบไหน ในเงื่อนไขไหน) ที่ระบบจะถูกหลอกได้ (ทั้ง false positive และ false negative) และนำจุดอ่อนนี้ไปหาประโยชน์ และ
  • อย่างที่สองคือ ศึกษาว่าการเรียนรู้ปรับปรุงโมเดลนั้นทำอย่างไร ใช้ข้อมูลทำนองไหน และหาทางป้อนข้อมูลที่สร้างขึ้นมาหลอกๆ เพื่อทำให้โมเดลเปลี่ยนไปในทางที่ต้องการ พูดอีกอย่างคือเป็นการทำให้โมเดลถูกปนเปื้อน (contaminated / polluted)

ใครอยากอ่านโดยละเอียดเกี่ยวกับเรื่องพวกนี้ เอาชื่อหัวข้อแต่ละอันในสไลด์ข้างล่างนี้ ไปค้นอินเทอร์เน็ตได้เลยครับ

Adversarial machine learning is here

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

  • สภาพแวดล้อม (ข้อมูล) สำหรับการใช้ภาษาหรือรูปภาพ มันเปลี่ยนแปลงช้ากว่าสภาพแวดล้อมในโลกความมั่นคงทางสารสนเทศ (ที่มีมัลแวร์ใหม่ๆ เกิดขึ้นทุกวัน) และ
  • มันมีแรงจูงใจมากกว่าที่จะเอาชนะโมเดลในงานด้านความมั่นคง (ถ้าเราสามารถทำให้ Siri หรือ Google Translate ทำอะไรแปลกๆ ได้ ก็อาจจะตลกดี มีแรงจูงใจด้านความบันเทิง ความอยากรู้อยากเห็น ในขณะที่งานด้านความมั่นคงทางสารสนเทศมีแรงจูงใจด้านเศรษฐกิจหรือด้านการเมืองชัดเจน)

การใช้ AI ในงานความมั่นคงปลอดภัย จึงจำเป็นต้องระมัดระวังมากขึ้น คือมันมีคนพร้อมจะเล่นงานเมื่อคุณพลาด หรือถ้าคุณยังไม่พลาด เขาก็จะล่อลวงให้คุณพลาดให้ได้

แต่ในด้านกลับ ความรู้ที่เรียกว่า “adversarial machine learning” นี้ก็อาจจะถูกใช้เพื่อสร้างกับดักหรือกระทั่งตามล่าการโจมตีแบบใหม่ๆ ก็ได้ คือเอาไปหลอกคนที่จะมาโจมตีก็ได้

From trapping to hunting

ตอบจบก่อนช่วงสรุป วิทยากรบอกให้เราตั้งคำถามให้ดี เวลามีใครมาเสนอขายระบบที่ใช้ AI หรือ Deep Learning (ซึ่งตอนนี้เป็นคำฮิตอีกคำ) เพื่อปกป้องความมั่นคงปลอดภัยทางสารสนเทศ (โน๊ต: วิทยากรก็มานำเสนอในฐานะตัวแทนบริษัทขายระบบพวกนี้เหมือนกัน)  คำถามเหล่านั้นก็คือ

  • ระบบดังกล่าวใช้เทคนิคอะไรมาประกอบกันบ้าง
  • ระบบใช้ข้อมูลชุดใดบ้างในการสอนโมเดล
  • ความสามารถในการป้องกันการถูกโจมตี (ตามที่โฆษณา) นั้นถูกประเมินอย่างไร
  • ประเมินภายใต้โมเดลภัยคุกคาม (threat model) แบบไหน?
  • วิธีที่ระบบใช้มี ความเที่ยง (precision) และ  การเรียกกลับ (recall) เท่าใด (ความเที่ยง หมายถึง จากจำนวนที่ระบบบอกว่าเป็นความผิดปกติ มีที่ผิดปกติจริงๆ เท่าใด, การเรียกกลับ หมายถึง จากจำนวนความผิดปกติที่มีอยู่จริงๆ ระบบสามารถพบได้เท่าใด)

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

What to ask about AI/ML/Deep Learning-based technology

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

บริบทคือว่า ปัจจุบันสิ่งหนึ่งที่ชุมชนความมั่นคงปลอดภัยทางสารสนเทศทำกัน เพื่อเพิ่มความปลอดภัยในภาพรวมของทุกคน ก็คือการแบ่งปันข้อมูลการโจมตีหรือจุดอ่อนต่างๆ กัน แต่ทีนี้ ข้อมูลบางชุดก็อาจจะมีข้อมูลส่วนบุคคลหรือความลับทางการค้าติดอยู่ด้วย ทำให้บริษัทไม่สะดวกที่จะแชร์ให้กับ CERT หรือกับหน่วยงานอื่น ทีนี้ ถ้าเกิดว่าแต่ละหน่วยงานต่อไปมีการเก็บข้อมูลมาสร้างโมเดลตรวจจับของตัวเอง มันเป็นไปได้ไหม ที่จะแชร์(บางส่วนของ)โมเดลออกไปให้หน่วยงานภายนอก เพื่อให้เอาไปปรับปรุงโมเดลของเขา ทำนองว่าเป็น machine learning แบบช่วยๆ กันทำ โดยไม่ต้องแชร์ข้อมูลที่ใช้เรียน แชร์เฉพาะโมเดลที่สำเร็จแล้ว (ซึ่งน่าจะไม่เหลือข้อมูลที่อ่อนไหวไม่อยากแชร์)

Giovanni ตอบสั้นๆ ว่า มีคนคิดเรื่องนี้อยู่ แต่ ณ ขณะนี้ เทคโนโลยียังไปไม่ถึงตรงนั้น

ผมถ่ายมาไม่ครบทุกสไลด์ (เกรงใจ) คิดว่าอีกสักพักเขาน่าจะอัปโหลดไปที่ไหนสักที่ครับ ทางงานประชุมมีสรุปไว้ด้วย: #INFOSEC17 Machine Learning is Positive, but not a Security Solution

งาน Infosecurity Europe นี้ไม่ได้ตั้งใจจะไป เพิ่งจะรู้จากทวิตเตอร์ตอนที่ไปอยู่ลอนดอนได้สัปดาห์นึงแล้วนี่แหละ คือพวกผมไปกันอีกงานหนึ่งชื่องาน Mobile Media and Communication Practices in Southeast Asia เป็นงานสัมมนาวิชาการที่คณะสังคมวิทยาและมานุษยวิทยา ที่ธรรมศาสตร์ จัดร่วมกับ Goldsmiths Media Ethnography Group มหาวิทยาลัยลอนดอน ไม่ค่อยเกี่ยวกับด้านความมั่นคงปลอดภัยทางสารสนเทศเท่าไหร่ (แต่ก็มีหัวข้อนึงที่อาจารย์จาก Goldsmiths วิเคราะห์นโยบาย Thailand 4.0 และ Smart Thailand อาจจะเฉียดๆ)

อย่างไรก็ตาม ก็รู้สึกคุ้มค่าที่ได้ไป (ถ้ารู้เร็วกว่านี้ก็จะดี จะได้ลงทะเบียนเข้าฟรี พอรู้ช้าต้องไปลงทะเบียนหน้างาน ต้องจ่าย 35 ปอนด์) ไปแล้วก็รู้สึกว่าอยากเขียนมาเล่า ยังไงอ่านอีกสองโพสต์ก่อนหน้าได้ครับ หลักการ/กลไกการคุ้มครองข้อมูลใหม่ใน GDPR ของสหภาพยุโรป และ ความมั่นคงปลอดภัยของ Internet of Things – ข้อคิดจาก Bruce Schneier

ร่างพ.ร.บ.ว่าด้วยการรักษาความมั่นคงปลอดภัยไซเบอร์ ใกล้จะคลอดเต็มทน ใครมีความคิดเห็นอะไรก็ส่งไปได้นะครับ แฟกซ์ 0-2281-2904 อีเมล legal@alro.go.th

Machine learning: The last line of defense Learn what your network does Conclusions

bact: ความมั่นคงปลอดภัยของ Internet of Things – ข้อคิดจาก Bruce Schneier ในงาน #infosec17

8 June, 2017 - 19:57

โพสต์ที่แล้วเล่าเรื่องงาน Infosecurity Europe วันที่สองไป เรื่อง General Data Protection Regulation (GDPR) จากมุมมอง ICO ยังเหลืออีกเรื่องที่ไปฟังมา คือเรื่อง ความปลอดภัยของ Internet of Things (IoT)

หัวข้อคือ Artificial Intelligence and Machine Learning: Cybersecurity Risk vs Opportunity? มี Bruce Schneier เป็นคนพูด คนแน่นมาก ตรงที่เป็นถ่ายทอดให้ดูทางจอก็ยังแน่น (ในภาพนี้เฉพาะที่นั่ง มียืนรอบๆ อีก)


Schneier พูดหลายประเด็น แต่อันหลังสุดมาเน้นเรื่องความมั่นคงปลอดภัยของ Internet of Things หรือ “อินเทอร์เน็ตของสรรพสิ่ง”

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

เราเปลี่ยนมือถือทุก 2-3 ปี กล้องวงจรปิดทุก 5-10 ปี ตู้เย็นบางบ้าน 20 ปี รถยนต์ที่มีตลาดมือสองอาจมีอายุการใช้งาน 40-50 ปี

คนทำซอฟต์แวร์ควบคุมรถยนต์ทำแล้วใช้ไปได้ 40-50 ปี แต่คนทำซอฟต์แวร์มือถือหรือ IoT ไม่เคยทำอะไรแบบนี้มาก่อน

ที่ซอฟต์แวร์ในบางอุตสาหกรรมมีความปลอดภัยสูง เพราะการกำกับดูแลและระบบนิเวศน์มันทำให้เป็นแบบนั้นได้ ต้องมีใบรับรอง มีการทดสอบ มีการตรวจสภาพ ซึ่ง IoT ยังไม่มีระบบนิเวศน์แบบนั้น

Schneier มองว่า รัฐมีบทบาทตรงนี้ได้ ด้วยการกำหนดนโยบาย เช่นการกำหนดให้ซอฟต์แวร์ในกิจการที่สำคัญมากๆ (critical) เก็บประวัติการทำงานและข้อผิดพลาด แบบที่อุตสาหกรรมการบินและยานยนต์ทำนั้น ทำให้เรามีข้อมูลเพื่อศึกษาและปรับปรุงระบบในอนาคตให้ปลอดภัยขึ้นได้

เขาเห็นว่า ข้อถกเถียงที่ว่า การกำกับดูแลจะจำกัดนวัตกรรมนั้นไม่ได้จริงเสมอไป

สำหรับอุตสาหกรรมนี้ มันไม่ใช่ทางเลือกระหว่าง “กำกับ vs ไม่กำกับ” แต่เป็นระหว่าง “กำกับอย่างฉลาด vs กำกับอย่างโง่” (smart regulation vs stupid regulation)

เขาทิ้งท้ายว่า ในบางประเทศเริ่มมีความเคลื่อนไหวเรื่องนี้แล้ว ว่าจะทำอย่างไรให้ผู้ผลิตอุปกรณ์พวกนี้ “รับผิดชอบ” กับผู้ใช้มากขึ้น — เช่นในสหรัฐอเมริกา ที่ FTC และ FCC สอบสวนว่าทำไมผู้ผลิตโทรศัพท์ออกอัปเดตความปลอดภัยช้า หรือที่หน่วยงานคุ้มครองผู้บริโภคของเนเธอร์แลนด์ฟ้องซัมซุงและเรียกร้องให้ออกอัปเดตความปลอดภัยอย่างสม่ำเสมอตลอด 2 ปีนับจากวันที่ซื้อ 

ใครสนใจงานนี้ ติดตามแฮชแท็ก #infosec17 ได้ในทวิตเตอร์ครับ ส่วนเรื่อง AI กับ security เดี๋ยวมีอีกโพสต์

bact: หลักการ/กลไกการคุ้มครองข้อมูลใหม่ใน GDPR ของสหภาพยุโรป #infosec17

8 June, 2017 - 01:03

วันนี้เป็นวันที่ 2 ที่มางาน Infosecurity Europe ที่ลอนดอน ได้ฟังหลักๆ 2 เวที เป็น Keynote ทั้งคู่ อันแรกตอนเช้า ฟัง Bruce Schneier พูดหัวข้อ Artificial Intelligence & Machine Learning: Cybersecurity Risk vs Opportunity? ส่วนตอนบ่ายฟัง EU GDPR Special Focus – Extended Session โพสต์นี้เล่าของตอนบ่ายก่อน ส่วนของตอนเช้ากับของงานวันแรกยังไม่ได้เขียนถึง เดี๋ยวทยอยลงนะ

เรื่อง General Data Protection Regulation (GDPR) ซึ่งเป็นกฎหมายคุ้มครองข้อมูลตัวใหม่ของสหภาพยุโรปที่ประกาศเมื่อปีที่แล้วและจะมีผลบังคับใช้ในวันที่ 25 พฤษภาคม 2018 นี่มาแรงมากๆ เดินไปไหนในงานก็เห็นคำนี้ มีในเกือบทุกทอล์ก เพราะเหลือเวลาอีกไม่ถึง 1 ปีแล้ว ที่ทุกบริษัท ทุกหน่วยงาน จะต้องปฏิบัติตามกฎหมายดังกล่าว ซึ่งมีผลบังคับใช้เหมือนกันหมดทั่วสหภาพยุโรป (หัวข้อตอนบ่ายที่ไปฟังมาอันนี้ฮิตมาก คนต่อแถวยาวเหยียด และเวลาก็ได้ยืดมากกว่าหัวข้ออื่น เป็น extended session)

Peter Brown ซึ่งเป็นเจ้าหน้าที่เทคโนโลยีอาวุโสของ Information Commissioner’s Office (ICO – สำนักงานคณะกรรมการข้อมูลข่าวสารของสหราชอาณาจักร) เป็นคนพูดเปิด เล่าถึงหลักการทั่วไปของ GDPR กับความพร้อมของ ICO ในฐานะองค์กรกำกับและคุ้มครองข้อมูลส่วนบุคคลของสหราชอาณาจักร ว่าได้เตรียมข้อแนะนำและหลักปฏิบัติอะไรต่างๆ ให้กับภาคธุรกิจปรับตัวและเปลี่ยนผ่านอย่างไรบ้าง

Peter บอกว่าหลักการคุ้มครองข้อมูลของ GDPR นั้น ไม่ต่างจากที่กฎหมายคุ้มครองข้อมูล หรือ Data Protection Act (DPA) ที่สหราชอาณาจักรมีอยู่ในปัจจุบัน เพียงแต่เพิ่มหลักการขึ้นมา 2 เรื่อง คือ Security และ Accountability & Governance

อธิบายต่อ (ผมพูดเอง) ก็คือ เดิม DPA นั้นพูดถึงเฉพาะตัวข้อมูลและการประมวลผลข้อมูล แต่ GDPR ยังพูดถึงระบบที่ใช้ประมวลผลข้อมูล (เน้นเชิงเทคนิค) และความรับผิดและการบริหารจัดการของผู้ที่เกี่ยวข้อง (เน้นเชิงกระบวนการ)

จริงๆ ข้อคำนึงเหล่านี้ มีอยู่แล้วเงียบๆ ใน DPA แต่ GDPR ระบุให้มันแยกออกมาอย่างชัดเจน

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

แต่ GDPR คิดละเอียดกว่านั้น โดยเฉพาะในบริบทที่ข้อมูลจำนวนมากอยู่ในระบบเครือข่ายและสารสนเทศ คือแม้จะเก็บและใช้อย่างถูกต้องทุกอย่าง แต่ถ้าระบบที่ยุ่งเกี่ยวกับข้อมูลนั้นมีการจัดการที่ไม่ได้มาตรฐาน ไม่มีมาตรการป้องกันที่ควรมี ก็มีความผิดได้

สิ่ง “ใหม่” ที่ถูกพูดถึงในหลักการ Accountability & Governance ของ GPDR ก็คือหลัก data protection by design, data protection by default, และ data protection impact assessment (DPIA) — “ใหม่” ในที่นี้ หมายถึงมันไม่เคยถูกบังคับในกฎหมายมาก่อน

(เรื่อง data protection by design นี่ มีหลายบริษัทที่มาออกงานพูดถึง ตั้งแต่การออกแบบ user experience ที่สนับสนุน security, การทำระบบให้ลด cognitive load เพื่อให้คนทำงานอยู่ในภาวะมีสติ, การออกแบบให้ AI มาช่วยคนตัดสินใจได้ดีขึ้น)

ทั้งหลักการ Security และ Accountability ที่มีใน GDPR เรียกว่าเป็นความพยายามให้เกิดสภาพแวดล้อมที่ลดความเสี่ยงในการรั่วไหลของข้อมูล ไม่ได้มาเน้นเฉพาะการลงโทษหลังข้อมูลรั่วแล้ว นอกจากนี้ ในส่วนของ Security ก็ยังมีการกำหนดมาตรฐานการแจ้งเตือนในกรณีที่พบข้อมูลรั่วไหล (ทาง Article 29 Working Party จะออกแนวปฏิบัติมาภายในปีนี้)

พูดอีกแบบคือจะหวังว่า “เราจะโชคดี” “มันไม่เกิดกับเราหรอก” ไม่ได้ — ต่อให้ข้อมูลยังไม่รั่ว แต่ถ้าพบว่าไม่มีมาตรการที่เพียงพอก็มีความผิด

ลองคิดถึงกฎหมายเกี่ยวกับความปลอดภัยของอาคาร ที่ต่อให้ไฟยังไม่ไหม้ แต่ถ้าพบว่าไม่มีทางหนีไฟ ไม่มีอุปกรณ์จับควัน-แจ้งเตือน-ดับเพลิง ที่ได้มาตรฐานอย่างเพียงพอ ก็มีความผิดอยู่ดี

สำหรับผู้ประกอบการในประเทศไทย ถ้าทำมาค้าขายกับคู่ค้าในสหภาพยุโรป ต้องประมวลผลข้อมูลของพลเมืองของสหภาพยุโรป ก็ต้องศึกษากฎหมาย GDPR นี้ไว้ด้วย เพราะกฎหมายครอบคลุมถึงข้อมูลของพลเมืองของเขา ไม่ว่าข้อมูลนั้นจะถูกส่งไปประมวลผลหรือจัดเก็บที่ใดก็ตามครับ

ICO’s Peter Brown looks at impact of GDPR on cyber security during his #cyberresilience speech. More here: https://t.co/egGINAdZvX pic.twitter.com/zuXRHre9Tj

— ICO (@ICOnews) February 7, 2017

bact: ยากและไม่ค่อยปลอดภัย Facebook Wi-Fi #FAIL @ ห้องสมุด TCDC

19 May, 2017 - 16:47

วันนี้มีสัมภาษณ์ เลยลองนัดที่ TCDC ใหม่ ตรงไปรษณีย์กลาง บางรัก ช่วงนี้จนถึงสิ้นเดือนพฤษภาคมเขาเปิดให้ใช้ห้องสมุดฟรี

พบว่าการใช้ไวไฟที่นี่วุ่นวายไปหน่อย คือคงตั้งใจดีแหละ ทางหนึ่งก็ได้ยอดเช็กอินเพิ่มด้วย อีกทางก็คงอยากให้ผู้ใช้ล็อกอินได้ง่ายๆ เลยใช้ Facebook Wi-Fi ช่วยในการลงทะเบียน (พูดอีกแบบคือ โยนภาระในการบันทึกผู้เข้าใช้ระบบไปให้เฟซบุ๊กทำ – ทั้งจะไม่ทำเลยก็ไม่ได้ เพราะพ.ร.บ.คอมพิวเตอร์กำหนดให้บันทึกข้อมูลการจราจร-ที่ระบุตัวผู้ใช้ได้)

รวมๆ คือเราพบว่าการล็อกอินไวไฟที่ TCDC ไม่ค่อยเป็นมิตรเท่าไร แถมอาจส่งเสริมพฤติกรรมเสี่ยงด้านความปลอดภัยของข้อมูลส่วนบุคคล โพสต์นี้จะบอกว่าทำไม ปัญหาน่าจะอยู่ตรงไหน และน่าจะแก้ไขยังไงได้บ้าง (ใครใช้ Facebook Wi-Fi ก็อาจจะเจอปัญหาแบบเดียวกันนี้ได้ ไม่เฉพาะ TCDC)

นี่คือเครือข่ายไวไฟที่พบที่บริเวณห้องสมุดชั้น 5 ของ TCDC (19 พ.ค. 2560 ประมาณ 14:30)

Guest@TCDC เป็นเครือข่ายสำหรับผู้ใช้ทั่วไป ส่วน Member@TCDC นั้นสำหรับสมาชิก (บุคคลทั่วไป 1,200 บาท/ปี นักศึกษา 600 บาท/ปี) เนื่องจากเรายังไม่ได้เป็นสมาชิก ก็ลองเลือก Guest@TCDC

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

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

ถ้ากด “Show Certificate” เพื่อดูรายละเอียดก็จะพบว่า เป็นใบรับรองที่ออกโดย Root Certificate Authority (Root CA – หน่วยงานออกใบรับรองระดับบนสุด) ที่ชื่อว่า cmx.cisco.com และจะหมดอายุวันที่ 12 ตุลาคม 2560 เวลา 01:59:08 (UTC+7) แต่เว็บเบราว์เซอร์ของเรา ไม่เชื่อถือ Root CA รายนี้ มันก็เลยขึ้นคำเตือน

เครือข่ายไวไฟ Member@TCDC ก็พบปัญหาเดียวกัน

ถ้าอยากจะใช้งานเครือข่ายไวไฟ ก็จำเป็นต้องไปให้ถึงหน้าล็อกอินให้ได้ จะไปให้ถึงหน้าล็อกอิน ก็ต้องยอมกด “Continue” ไป ทั้งๆ เราไม่แน่ใจว่ามันปลอดภัยหรือไม่ หรือจะเกิดอะไรขึ้นหลังจากนี้

พอกด Continue ไปแล้ว จะเจอหน้าจอให้ “เช็กอินบน Facebook เพื่อรับการเข้าถึงอินเทอร์เน็ตฟรี”

แต่หน้าจอเช็กอิน/ล็อกอินนี้ จะสับขาหลอกนิดหน่อย เพราะช่องล็อกอินที่เราเห็นเด่นๆ มันไม่ใช่อันที่จะต้องใช้ เราต้องเลื่อนหน้าลงไปอีก ถึงจะเจอฟอร์มที่ใช่ (ปัญหาอาจจะมาจากการที่ CSS ไม่ยอมโหลดด้วย – แต่ลองทั้งมือถือและเดสก์ท็อปก็เป็นเหมือนกัน)

เลื่อนหน้าจอล็อกอินลงมาหน่อย จะเจอคำว่า “หากต้องการเช็กอิน ให้สมัครใช้งาน Facebook วันนี้ หรือคลิกที่ลิงก์ ‘ข้ามการเช็กอิน’ ข้างล่างนี้” ให้มองหาลิงก์ “เข้าสู่ระบบ” (มันจะอยู่ติดกับลิงก์ “สมัครใช้งาน” เลย วรรคก็ไม่ยอมเว้น) พอคลิกที่ลิงก์ “เข้าสู่ระบบ” มันจะนำเราไปที่หน้าล็อกอินที่ถูกต้อง

(ลิงก์ “ข้ามการเช็กอิน” นั้นไม่สามารถคลิกได้ – ส่วนช่องที่เขียนว่า “ป้อนรหัส Wi-Fi” นั้นก็ใช้ไม่ได้ สอบถามเจ้าหน้าที่ TCDC แล้ว ไม่มีการออกรหัสให้ใช้กับช่องนี้)

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

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

บนมือถือ (iOS) จะเป็นแบบนี้

ถ้ากด “Continue” ก็จะมีหน้าจอให้เช็กอิน ประกาศให้โลกรู้ว่าเรามาอยู่ที่ TCDC แล้วนะ พอเราเช็กอินเสร็จ ก็จะใช้อินเทอร์เน็ตได้แล้ว

สรุป

พบว่าการเข้าใช้เครือข่ายไวไฟ Guest@TCDC นั้นเป็นประสบการณ์ที่ยากลำบากมาก โดยปัญหาที่พบคือ

  • พบปัญหาใบรับรองออกโดย CA ที่เว็บเบราว์เซอร์ไม่ให้การยอมรับถึง 2 ครั้ง ทั้งช่วงก่อนหน้าจอล็อกอินและช่วงใกล้จะล็อกอินสำเร็จ
    • ผู้ใช้ทั่วไปอาจจะทำตัวไม่ถูกว่าให้ทำอย่างไรต่อ เพราะข้อความเตือนของเว็บเบราว์เซอร์อาจเข้าใจยาก
    • กรณีผู้ใช้ TCDC ถูกสอนว่า “ไม่ต้องสนใจ คลิก Continue” ไปเลย ก็จะเป็นการส่งเสริมพฤติกรรมเสี่ยงให้กับผู้ใช้ โดยอาจเข้าใจไปว่า ต่อไปหากเจออาการแบบนี้อีกไม่ว่ากับเครือข่ายไหน หากอยากไปต่อ ก็ให้กด “Continue” เสีย ก็จะแก้ปัญหาได้ พฤติกรรมเช่นนี้ทำให้ผู้ใช้อาจตกเป็นเหยื่อของอาชญากรรมคอมพิวเตอร์หรือข้อมูลส่วนบุคคลถูกขโมยได้
    • ปัญหาใบรับรองนี้ พบว่าไม่ได้เป็นเฉพาะกับหน้าจอล็อกอินไวไฟของ TCDC หน้าเว็บไซต์หลักของ TCDC ก็มีปัญหานี้ด้วย
  • หน้าจอ Facebook Wi-Fi ในบางกรณี อาจแสดงผลไม่ชัดเจนเพียงพอ ว่าผู้ใช้จะต้องกรอกแบบฟอร์มล็อกอินอันไหน ผู้ใช้ไม่สามารถรู้ได้เองอย่างชัดเจน ว่าจะต้องเลื่อนหน้าจอลงมาเพื่อคลิกลิงก์ “เข้าสู่ระบบ” เพื่อจะไปยังหน้าจอล็อกอินอีกอัน ซึ่งจะสามารถนำไปสู่การเช็กอินและใช้อินเทอร์เน็ตได้
  • ใครไม่มีบัญชีเฟซบุ๊กจะใช้อินเทอร์เน็ตผ่านเครือข่าย Guest@TCDC ไม่ได้ เนื่องจากผู้ใช้จะต้องล็อกอินเฟซบุ๊กก่อน
    • เจ้าหน้าที่ Info Guru ที่ TCDC ยืนยันว่าไม่มีรหัสให้ป้อนเพื่อข้ามการล็อกอินเฟซบุ๊ก
  • ผู้ใช้ถูกบังคับให้ต้องเช็กอิน เนื่องจากลิงก์ “ข้ามการเช็กอิน” ใช้งานไม่ได้  ซึ่งก็คงไม่ใช่ผู้ใช้ทุกคนที่รู้สึกสะดวกเช็กอินหรือรู้วิธีการตั้งค่าโพสต์เช็กอินให้เป็นส่วนตัว (สำหรับ Facebook Wi-Fi เจ้าของหน้าเฟซบุ๊กอย่าง TCDC สามารถตั้งค่า “โหมดบายพาส” ให้ผู้ใช้ไม่ต้องเช็กอินก็ได้ แค่ล็อกอินเฟซบุ๊กก็พอ)
    • สอบถามเจ้าหน้าที่เพิ่มเติม ได้ข้อมูลว่า ถ้าเป็นบนมือถือ จะข้ามได้ แต่เท่าที่ลองบนเดสก์ท็อปข้ามไม่ได้
  • กรณีผู้ใช้ใช้การยืนยันตัวตนแบบสองชั้นและล็อกอินผ่านมือถือเครื่องเดียวกัน จะมีเวลาไม่เกิน 30 วินาทีในการล็อกอิน เนื่องจากถ้าสลับหน้าจอมาเพื่อดูโค้ด หน้าล็อกอินจะหายทันที
ข้อเสนอแนะ
  • ที่แก้ไขได้โดยไม่ต้องรอฝ่ายนโยบายนัก เพราะน่าจะเป็นเรื่องการตั้งค่าเครือข่าย คือเรื่องใบรับรองและเรื่องหน้าจอล็อกอิน กรณีใช้ Cisco น่าจะลองดูเอกสารตรง Clients Redirected to External Web Authentication Server Receive a Certificate Warning กับ Cisco Wireless 1.1.1.1/login.html redirect issues (ผมไม่มีความรู้เรื่องการติดตั้งระบบเครือข่ายใดๆ นี่เป็นการลองค้นข้อมูลเบื้องต้นเท่านั้น)
  • ปัญหาการโหลด CSS ไม่ขึ้น ส่งผลให้การใช้งานหน้าจอล็อกอินสับสน ควรหาทางแก้ไข (ผมไม่แน่ใจว่าเกิดเพราะอะไร)
  • ควรอย่างยิ่งที่จะมีทางเลือกให้ผู้ที่ไม่ได้ใช้เฟซบุ๊ก หรือไม่สะดวกจะล็อกอินด้วยเฟซบุ๊ก (เช่นติดปัญหาการยืนยันตัวตนแบบสองชั้น) ให้สามารถกรอกรหัสไวไฟเพื่อเข้าใช้งานได้ (เลือกใน Facebook Wi-Fi ได้)
  • ควรมีทางเลือกให้ผู้ใช้เฟซบุ๊กหลังจากล็อกอินแล้วไม่จำเป็นต้องเช็กอินก็ใช้งานได้ (เลือกใน Facebook Wi-Fi ได้)

ใครมีโอกาสก็มาลองใช้งานดูครับ TCDC ใหม่ ทางเข้าห้องสมุดอยู่ชั้น 5 หลังจากนี้ถ้าไม่ใช่สมาชิก ก็ใช้บริการได้ โดยจ่ายค่าบริการรายวัน 100 บาท/วัน มีโต๊ะทำงาน มีปลั๊กไฟ มีไวไฟ (ถ้าเข้าได้) ถูกกว่าไปนั่งร้านกาแฟอีก (ถ้าไม่รวมค่ารถ :p) นอกจากนี้ยังมีส่วนนิทรรศการ Maker Space และส่วนอื่นๆ อีก

bact: OTT (Over-the-Top) คืออะไร?

12 May, 2017 - 18:48

“Over-the-Top” หรือ OTT เป็นคำศัพท์ในวงการโทรคมนาคมและกระจายภาพและเสียง มีความหมายโดยทั่วไปถึงเนื้อหาหรือบริการที่ถูกส่งผ่านโครงข่ายที่ไม่ได้ถูกออกแบบมาให้ทำสิ่งดังกล่าวตั้งแต่ต้น ด้วยเหตุนี้ OTT จึงถูกเรียกในภาษาทั่วไปว่า “value added” ซึ่งหมายถึงเนื้อหาหรือบริการที่สร้าง “มูลค่าเพิ่ม” จากเนื้อหรือบริการพื้นฐานที่โครงข่ายถูกออกแบบมาแต่แรก

เรื่อง OTT จะเห็นบ่อยขึ้นช่วงนี้ตามสื่อ เนื่องจากกสทช.มีแนวคิดจะเข้ามากำกับบริการมูลค่าเพิ่มเหล่านี้ โดยยกประเด็น เช่น การจัดเก็บภาษี การกำกับเนื้อหา และการแข่งขัน “ที่เป็นธรรม” (ระหว่างผู้ประกอบกิจการที่ต้องมีใบอนุญาตและไม่ต้องมีใบอนุญาต)

ประเภทของ OTT มีหลากหลาย ตัวอย่างหนึ่งคือ “เนื้อหา OTT” (OTT content) ซึ่งในบริบทของกิจการกระจายภาพและเสียง หมายถึงภาพ เสียง หรือสื่ออื่นใด ที่ส่งผ่านโครงข่ายอื่นใดที่มิใช่โครงข่ายกระจายภาพและเสียง เช่น บริการภาพยนตร์ผ่านโครงข่ายอินเทอร์เน็ต อีกตัวอย่างหนึ่งคือ Telco-OTT” ซึ่งหมายถึงการให้บริการโทรคมนาคมของผู้ให้บริการรายหนึ่งผ่านโครงข่ายของผู้ให้บริการโทรคมนาคมรายอื่นหรือชนิดอื่น เช่น การให้บริการโทรศัพท์ด้วยเสียงผ่านโครงข่ายไวไฟอินเทอร์เน็ตสาธารณะ นอกจากนี้การให้บริการอย่างการจ่ายเงินชำระเงินผ่านอินเทอร์เน็ต ซื้อสินค้าบริการผ่านอินเทอร์เน็ต ก็ถูกนับเป็น OTT เช่นกัน

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

  • ตามชนิดของใบอนุญาต — โทรคมนาคม v กระจายภาพและเสียง v ไม่ต้องมีใบอนุญาต)
  • ตามประเภทของผู้ให้บริการ — ผู้ให้บริการเนื้อหาเป็นรายเดียวกับผู้ให้บริการโครงข่าย vs เป็นคนละราย
  • ตามประเภทของชนิดบริการ — รายการวิทยุหรือโทรทัศน์ที่เผยแพร่เวลาตรงกับที่กำลังเผยแพร่ในโครงข่ายกระจายภาพและเสียง รายการวิทยุหรือโทรทัศน์ที่เคยหรือจะเผยแพร่ในโครงข่ายกระจายภาพและเสียงและผู้ชมเลือกเวลาดูได้เอง เนื้อหาแบบรายการวิทยุหรือโทรทัศน์ที่ไม่ได้ผลิตเพื่อเผยแพร่ในโครงข่ายกระจายภาพและเสียง ภาพยนตร์ ฯลฯ
  • ตามประเภทการบอกรับสมาชิก — เสียค่าบอกรับหรือไม่, subscription-based v advertising-based
  • ตามประเภทผู้ผลิตเนื้อหาหลักในบริการนั้น — ผลิตเอง v จ้างผลิต v ผู้ใช้เป็นผู้ผลิต
  • ตามมิติอื่นๆ

นอกจากนี้ ยังสามารถแบ่ง OTT ตามประเด็นในการกำกับกิจการได้ด้วย ตัวอย่างเช่น Body of European Regulators for Electronic Communications (BEREC) ซึ่งเป็นองค์การกลางของหน่วยงานกำกับกิจการสื่อสารอิเล็กทรอนิกส์ของสหภาพยุโรป แบ่งบริการ OTT เป็น 3 ประเภทคือ

  1. บริการ OTT ที่ถือเป็น “บริการสื่อสารอิเล็กทรอนิกส์” (electronic communications service – ECS)
  2. บริการ OTT ที่ไม่ถือเป็น ECS แต่มีศักยภาพจะแข่งขันกับ ECS และ
  3. บริการ OTT อื่นๆ

สาเหตุที่ BEREC แบ่งประเภทเช่นนี้ เพราะคำว่า OTT นั้นไม่มีสถานะทางกฎหมายในระดับสหภาพยุโรป และกิจการที่ BEREC กำกับได้ตามกฎหมายนั้นมีเพียงบริการสื่อสารอิเล็กทรอนิกส์ (ECS) เท่านั้น

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

 

bact: จะเป็นกสทช.ของไทยต้องวัยวุฒิเพียบพร้อม ว่าที่ประธานาธิบดีฝรั่งเศสยังเป็นไม่ได้เลย

8 May, 2017 - 13:39

“อายุ 39 มีปุ่มนิวเคลียร์ในมือ แต่เป็น กสทช. ไม่ได้นะครับ”
— มิตรสหายท่านหนึ่ง


ตามพ.ร.บ.กสทช.ฉบับใหม่ ว่าที่ประธานาธิบดีฝรั่งเศสที่เพิ่งได้รับเลือกไปเมื่อวันอาทิตย์ที่ผ่านมา เป็นกรรมการกสทช.ไม่ได้นะครับ

อายุไม่ถึงน่ะ (แน่นอนว่าไม่มีสัญชาติไทยด้วย)

พ.ร.บ.กสทช.ฉบับใหม่ ที่สนช.ผ่านไปเงียบๆ เมื่อ 31 มี.ค. 2560 ขยับอายุขั้นต่ำของกรรมการจาก 35 ปี เป็น 40 ปี (ร่างที่เสนอแก้ไขตอนแรก เสนอไปถึง 45 ปีด้วยซ้ำ)

เอ็มมานูเอล มาครง นี่ 39 ปี (เกิด 2520) วัยวุฒิไม่ถึงครับ

เหมือนกับ ออเดรย์ ถัง รัฐมนตรีดิจิทัลของไต้หวัน ที่ตอนเข้ารับตำแหน่งนี่ 35 ปี (เกิด 2524) แต่ก็วัยวุฒิไม่พอสำหรับประเทศไทยอยู่ดี แล้วอย่าไปพูดถึงตามาร์ก เฟซบุ๊ก ขานั้น 32 ปี (เกิด 2527) ประสบการณ์ไม่ถึงแน่ๆ

#สังคมสูงวัย #ประสบการณ์สูงวิสัยทัศน์ไกล #วางยุทธศาสตร์ประเทศกันถึงสัมปรายภพเลย

ดู ตารางเปรียบเทียบอายุของกรรมการชุดต่างๆ ของไทย

bact: โลกไม่ได้เป็นศูนย์กลาง วงโคจรไม่ได้เป็นวงกลม และ “วิทยาศาสตร์แย่ๆ” แบบ epicycle

30 April, 2017 - 16:25

วันก่อนโพสต์ในเฟซ เรื่องการพูดว่าโลกกลมเคยเป็นความผิด (ในเซนส์ว่าอะไรที่เราคิดว่าผิดหรือผิดกฎหมายตอนนี้ มันอาจจะได้รับการพิสูจน์ว่าถูกในวันหน้าก็ได้)

มิตรสหายสองสามท่านเลยมาทักว่า เฮ้ย อารยธรรมมนุษย์เรารู้ว่าโลกกลม (จากการสังเกตธรรมชาติ) มาอย่างน้อยตั้งแต่สมัยกรีกแล้ววววว (แม้ความรู้นี้จะไม่ได้แพร่กระจายอย่างสม่ำเสมอและมีช่วงหายๆ ไปบ้างในยุคกลางในพื้นที่หลุมดำของอารยธรรมตะวันตกอย่างสเปน) ไอ้ที่เป็นความผิด แล้วศาสนจักรจะเล่นงานน่ะ เป็นเรื่อง ดวงอาทิตย์เป็นศูนย์กลาง (heliocentric) ต่างหาก (เพราะมันไปขัดกับการตีความข้อความในไบเบิลที่เขียนว่าโลกนั้นไม่เคลื่อนที่)

ว่าง่ายๆ ว่าผมพูดผิดน่ะแหละ ซึ่งก็ผิดจริงๆ -/\-

เลยไปค้นดูหน่อย ก็พบว่า ทฤษฎีที่ว่าดวงอาทิตย์เป็นศูนย์กลางของระบบดวงดาวบนท้องฟ้านี่ จริงๆ ก็ถูกเสนอมาตั้งแต่สมัยกรีกเหมือนกัน แต่ก็หายๆ ไป จนกระทั่งคริสต์ศตวรรษที่ 16 ที่โคเปอร์นิคัสมาเสนอโมเดลคณิตศาสตร์ ว่ามันทำงานยังไง (บนฐานของข้อมูลที่สังเกตได้จากหอดูดาวในเวียนนา คือช่วงนี้วงการดารา-โหราศาสตร์มันเริ่มก้าวหน้าละ มีเครื่องมือให้สังเกตได้มากขึ้น)

ความสำคัญของโมเดลคณิตศาสตร์ที่โคเปอร์นิคัสคิดขึ้นมาก็คือ มันทำให้ ทฤษฎีดวงอาทิตย์เป็นศูนย์กลาง ไม่ได้เป็นเพียง “การพินิจพิเคราะห์ทางปรัชญา” (philosophical speculation) อีกต่อไป แต่กลายสถานะเป็น “ดาราศาสตร์ที่ใช้เรขาคณิตและมีพลังในเชิงพยากรณ์” (predictive geometrical astronomy)

เอาจริงๆ โมเดลของโคเปอร์นิคัสก็ไม่ได้ทำนายการโคจรของดวงดาวได้แม่นยำกว่าโมเดลของระบบที่มีโลกเป็นศูนย์กลางของปโตเลมี ในเชิงพยากรณ์ทั้งสองโมเดลนั้นมีพลังพอๆ กัน เพียงแต่โมเดลของโคเปอร์นิคัสนั้น “เรียบง่ายกว่า” และ “ทั่วไปกว่า”

ในเรื่องความ “เรียบง่ายกว่า” นี้ ต้องอธิบายถึงสิ่งที่เรียกว่า “epicycle” ก่อน

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

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

วิธีหนึ่งที่นักดารา-โหราศาสตร์สมัยก่อนพยายามแก้ปัญหานี้ ก็คือการเสนอว่า จริงๆ จุดศูนย์กลางของวงโคจรที่ดาวต่างๆ หมุนรอบโลกน่ะ มันไม่ได้อยู่ที่โลกเป๊ะๆ หรอก แต่อยู่ห่างจากโลกไปนิดหนึ่ง เรียกจุดนี้ว่าจุด eccentric (ภาษาไทยเหมือนจะใช้คำว่า “จุดเยื้องศูนย์”)

แต่จุดเยื้องศูนย์มันก็ดูจะใช้ได้ดีเฉพาะกับการโคจรของดวงอาทิตย์รอบโลกเท่านั้น แต่ยังอธิบายข้อมูลความเร็วการโคจรของดาวเคราะห์อื่นๆ ไม่ได้

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

คนเสนอแนวคิด epicycle นี้ คือฮิปปาร์คัส ซึ่งเขาก็เป็นคนประมาณค่าระยะห่างระหว่างจุด eccentric กับจุดศูนย์กลางโลกไว้ด้วย ที่ 1/24 ของรัศมีวงโคจรของดวงอาทิตย์รอบโลก

epicycle เป็นวงโคจรวงกลมเล็ก ที่อยู่บนวงโคจรหลักที่เป็นวงกลมใหญ่ (deferent) ที่ดวงดาวจะหมุนรอบอีกที (นึกถึงไม้บรรทัดที่มีวงๆ ให้เอาดินสอไปจิ้มหมุนๆ น่ะครับ ตอนเด็กๆ ใครเคยเล่นมั่ง)

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

ปโตเลมีเป็นผู้แก้ปัญหานี้ ด้วยการเสนอสิ่งที่เรียกว่า “equant” ซึ่งเป็นจุดที่อยู่อีกฝั่งหนึ่งของจุด eccentric อยู่ตรงข้ามกับจุดศูนย์กลางโลก และห่างจากจุด eccentric เท่ากับจุดศูนย์กลางโลก

ในโมเดลของปโตเลมี ดาวเคราะห์หนึ่งๆ จะอยู่ห่างจากจุด eccentric เท่าๆ กันเสมอไม่ว่าเวลาใด และจะมีความเร็วมุมเมื่อวัดจากจุด equant เท่าๆ กันเสมอไม่ว่าเวลาใด ในแง่นี้ปโตเลมีจึงถือว่าโมเดลยังมีความ uniform

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

แม้ในแง่คณิตศาสตร์ สำหรับการโคจรของดาวแต่ละดวง เราจะฟันธงไม่ได้ชัดเจนว่าโมเดลแบบโคเปอร์นิคัสหรือปโตเลมีดีกว่ากัน (นักดารา-โหราศาสตร์ในสมัยนั้นที่ใช้โมเดลดวงอาทิตย์เป็นศูนย์กลางตามโคเปอร์นิคัส บางส่วนก็ยังใช้จุด equant แบบปโตเลมีอยู่ เพราะมันคำนวณง่ายกว่า) แต่ในภาพรวม โมเดลของโคเปอร์นิคัสก็ก้าวหน้าหน้ากว่าของปโตเลมี เพราะในโมเดลของปโตเลมี ดาวแต่ละดวงต้องใช้โมเดลเฉพาะของตัวเอง แต่ในโมเดลของโคเปอร์นิคัส เราใช้โมเดลเดียวอธิบายดาวได้ทุกดวง คือมีลักษณะ “ทั่วไปกว่า”

ระบบดวงอาทิตย์เป็นศูนย์กลางมาได้รับการยอมรับและความนิยมมากกว่าระบบโลกเป็นศูนย์กลางจริงๆ ก็หลังจากที่ โจฮันเนส เคปเลอร์ ได้ปลดล็อกเรื่องความเร็วที่ไม่คงที่ในการโคจร ด้วยการเสนอว่า เฮ้ย ดาวมันไม่ได้โคจรเป็นวงกลม มันโคจรเป็นวงรีต่างหาก พอคิดได้ดังนี้ epicycle กับ equant ก็ไม่จำเป็นอีกต่อไปแล้ว ทำให้การคำนวณพยากรณ์ตำแหน่งดวงดาวซับน้อยลงและแม่นยำขึ้นกว่าเดิมมาก

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

กฎการเคลื่อนที่ของดาวเคราะห์ของเคปเลอร์ (Kepler’s laws of planetary motion) นี้ เป็นพื้นฐานของกฎความโน้มถ่วงสากลของนิวตัน (Newton’s law of universal gravitation) ในเวลาต่อมา

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

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

—-
ข้อมูลส่วนใหญ่จาก Eccentrics, Deferents, Epicycles, and Equants และวิกิพีเดีย

(โพสต์ครั้งแรกในเฟซบุ๊ก)

LookHin: สร้างจาร์วิสได้ง่ายๆ ด้วย Raspberry Pi + Snowboy

23 April, 2017 - 09:54

ฝันไว้ว่าอยากทำระบบที่สามารถคุยตอบโต้กับคอมพิวเตอร์แบบจาร์วิสใน IRON MAN มานานแล้วครับ แต่ก็ได้แค่ฝันเพราะผมเองก็ไม่มีความสามารถที่จะทำได้ขนาดนั้น แต่เราก็ยังพอจะสร้างจาร์วิสแบบโง่ๆ ด้วยงบประมาณไม่มากขึ้นมาจาก Raspberry Pi ได้เช่นกันครับ โดยสิ่งที่เราต้องมีก็คือ Raspberry Pi + ลำโพง + ไมโครโฟน โดยเราจะใช้โปรแกรมที่ชื่อว่า Snowboy Hotword Detection ข้อดีของเจ้าตัวนี้ก็คือว่ามันฟรีสำหรับ hacker อย่างเรา และสามารถสร้างโมเดลของคำที่ต้องการได้ไม่ยาก ซึ่งเจ้า Snowboy เนี้ยก็มี library ให้ใช้ได้อยู่หลายภาษาตามแต่ถนัดเลยครับ แต่ภาษาที่เราจะใช้เขียนวันนี้จะใช้เป็น Node.js

อย่างแรกเลย เตรียมอุปกรณ์ต่างๆ ให้เรียบร้อย Raspberry Pi + ลำโพง + ไมโครโฟน

ก่อนลงมือทำอย่างอื่นให้ทำการอัพเดทระบบก่อนครับ

sudo apt-get update
sudo apt-get upgrade

จากนั้นทำการติดตั้ง Node.js และติดตั้ง developer tools ต่างๆ ให้พร้อมใช้งาน

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install nodejs
sudo apt-get install sox libmagic-dev libatlas-base-dev
sudo apt-get install build-essential

กำหนด NODE_PATH เพื่อให้เรียกใช้งานโมดูลของ Node.js ที่ติดตั้งแบบ global ได้ เพราะเดียวเราจะติดตั้งโมดูทั้งหมดเป็นแบบ global

export NODE_PATH=/usr/lib/node_modules

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

node -v
npm -v

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

ตรวจสอบหมายเลข card id และ device id ของลำโพง

aplay -l

จากรูปจะเห็นว่ามี card อยู่หลายใบ ให้สั่งเกตุหมายเลข card id และ device id ที่ผมไฮไลท์เอาไว้ด้วยนะครับ ให้เลือกใช้ card id และ device id อันที่ลำโพงเราต่ออยู่ (ข้างหลังมันมีชื่อรุ่นบอก น่าจะพอเดาได้อยู่)

ตรวจสอบหมายเลข card id และ device id ของไมโครโฟน

arecord -l

ทำการสร้างไฟล์ ~/.asoundrc เพื่อกำหนดค่า default ของลำโพงและไมโครโฟนให้ระบบ

nano ~/.asoundrc

โดยให้พิมพ์คำสั่งตามนี้ลงไป จะเห็นว่าในช่องของ playback.pcm ซึ่งก็คือลำโพงของเรา ให้เราใส่ hw:1,0 ซึ่งเป็นหมายเลข card id , device id ในที่นี้ก็คือ card 1, device 0 และสำหรับ capture.pcm ซึ่งเป็นไมโครโฟน ให้เราใส่เป็น hw:1,0 ซึ่งก็คือไมโครโฟนจาก card 1, device 0 (ถ้าหาก card id และ device id ของท่านแตกต่างจากนี้ก็ให้ใส่ให้ตรงกับของตัวเองด้วยนะครับ)

pcm.!default {
  type asym
   playback.pcm {
     type plug
     slave.pcm "hw:1,0"
   }
   capture.pcm {
     type plug
     slave.pcm "hw:1,0"
   }
}

เราสามารถปรับความดังของลำโพงและไมโครโฟนได้โดยใช้คำสั่ง alsamixer (ถ้าท่านใช้ตัวแปลง USB To Sound Adapter เพื่อทำการแปลงสาย USB เป็น 3.3mm เพื่อใช้เสียบลำโพงกับไมโครโฟนแบบผม ก็ให้กด F6 เพื่อเลือก device ก่อนนะครับ)

alsamixer

ทำการทดสอบการบันทึกเสียงจากไมโครโฟน ให้สั่ง rec test.wav และพูดใส่ไมโครโฟนและถ้าต้องการหยุดให้กด CTRL+C

rec test.wav

ลองสั่ง play เสียงที่เราบันทึกไว้เมื่อสักครู่นี้

aplay test.wav

ขั้นตอนถัดไปให้ทำการติดตั้ง snowboy และโมดูลต่างๆ ที่ต้องใช้งาน โดยเราจะติดตั้งทั้งหมดเป็นแบบ global ไปเลยนะครับ

sudo npm install -S -g snowboy
sudo npm install -S -g node-record-lpcm16
sudo npm install -S -g play-sound

ต่อไปเป็นการสร้างโมเดลเสียงของคำที่ต้องการ โดยให้เข้าไปที่ https://snowboy.kitt.ai/dashboard จะเห็นปุ่ม Create Hotword คลิกเลยครับ

ทำการตั้งชื่อและเลือกภาษาให้เรียบร้อย แต่ระบบยังไม่มีภาษาไทยให้เลือกนะ ให้เราเลือกเป็น Other ไปก่อนนะ ผมลองแล้วก็ได้เหมือนกัน

ขั้นตอนถัดไปเป็นการบันทึกเสียง ให้เราบันทึกเสียงของคำที่เราต้องการลงไป 3 ครั้ง

ขั้นตอนสุดท้ายเป็นการทดสอบและดาวน์โหลดโมเดลเสียงของเรา โดยเราจะได้มาเป็นไฟล์ .pmdl ดาวน์โหลดมาเก็บไว้ให้เรียบร้อยครับ

หลังจากติดตั้งโปรแกรมและสร้างไฟล์โมเดลของเสียงเรียบร้อยแล้วให้ทำการดาวน์โหลดโค้ดที่ผมเตรียมไว้ไปทดสอบรันได้เลยครับ Download Showboy Example โดยในโค้ดตัวอย่างจะมีไฟล์ snowboy.js ให้ทำการเปิดโค้ดขึ้นมาดูก่อนเลยครับ จะเห็นว่าในตัวอย่างผมมีโมเดลของคำสั่งเสียงอยู่ 2 ตัวคือ thai-hello.pmdl และ thai-what-is-your-name.pmdl ให้เอาโมเดลเสียงของตัวเองมาแทน 2 ไฟล์นี้นะครับ

snowboy.js

const record = require('node-record-lpcm16');
const Detector = require('snowboy').Detector;
const Models = require('snowboy').Models;
const player = require('play-sound')(opts = {})


const models = new Models();

models.add({
    file: 'thai-hello.pmdl',
    sensitivity: '0.5',
    hotwords: 'Hello'
});

models.add({
    file: 'thai-what-is-your-name.pmdl',
    sensitivity: '0.5',
    hotwords: 'What\'s your name'
});

const detector = new Detector({
    resource: "common.res",
    models: models,
    audioGain: 2.0
});

detector.on('silence', function() {
    //console.log('silence');
});

detector.on('sound', function() {
    //console.log('sound');
});

detector.on('error', function() {
    //console.log('error');
});

detector.on('hotword', function(index, hotword) {
    console.log('Index='+index+', Hotword='+hotword);

    if(index == 1){
      player.play('sound-hello.wav', function(err){
        //console.log('play sound');
      });
    }else if(index == 2){
      player.play('sound-my-name.wav', function(err){
        //console.log('play sound');
      });
    }
});

const mic = record.start({
    threshold: 0,
    verbose: false
});

mic.pipe(detector);

เรียบร้อยแล้วครับ ให้สั่งรัน node snowboy.js และพูดคำสั่งที่เราตั้งไว้ได้เลยครับ

node snowboy.js

หากติดขัดปัญหาใดค้นหาข้อมูลเพิ่มเติมจาก Google และอ่านรายละเอียดได้จากแหล่งอ้างอิงครับ

อ้างอิง :
https://snowboy.kitt.ai/
http://docs.kitt.ai/snowboy/
https://github.com/kitt-ai/snowboy
https://www.npmjs.com/package/snowboy

Kitt: มหาสงกรานต์ ๒๕๖๐

11 April, 2017 - 12:55
สงกรานต์ปี 2560 เป็นปี จ.ศ. (2560 – 1181) = 1379 วันเถลิงศก ตรงกับ (1379 * 0.25875) + floor(1379 / 100 + 0.38) – floor(1379/ 4 + 0.5) – floor(1379 / 400 + 0.595) – 5.53375 = 356.81625 + 14 – 345 – 4 – 5.53375 = 16.2825 = วันที่ 16 เมษายน 2560 เวลา 06:46:48 วันสงกรานต์ ตรงกับ 16.02375 – 2.165 = … Continue reading มหาสงกรานต์ ๒๕๖๐ →

bact: Visualizing power relations of actors (in Data Protection Bill)

11 April, 2017 - 11:28

This whole week I will participate in Internet Policy and Advocacy: Research Methods Workshop for South and Southeast Asia Actors at National Law University Delhi. (Nice way to spend my Songkran :p)

This is a presentation that I gave yesterday during the Case Study 1: The Power of Mapping Stakeholders, Decision Makers, and Implementers in Thailand’s Cyber Policy session, where we discussed examples of visualizing bills in graph (noun –verb-> noun), how this method can quickly reveal unbalanced power relations of actors(-to-be), and show why data protection mechanism in the current bill is probably structurally designed to fail.

Of course, the examples only rely on one type of source (written laws). Ideally, getting data from other types of source (actual enforcement, unspoken rules, policy stakeholders, etc.) is encouraged, for a more complete picture.

Draw.io is a nice online drawing tool that you may like to try. No installation is required. Graph can also be drawn in a descriptive way using tools like GraphvizGephi and NodeXL.
วาดกราฟความสัมพันธ์ระหว่างผู้กระทำ (actor) ในกฎหมาย

bact: คุยกับกระทรวงดิจิทัลเรื่องร่างพ.ร.บ.คุ้มครองข้อมูลส่วนบุคคล

5 April, 2017 - 06:22

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

เรื่องที่คุยกัน เช่น

  • ควรเพิ่มนิยามของคำว่า “ผู้ประมวลผลข้อมูล” (data processor) หรือไม่ แตกต่างจาก “ผู้ควบคุมข้อมูล” (data controller) อย่างไร
  • อะไรคือ Legitimate Interests ที่จะอนุญาตให้ผู้ควบคุมข้อมูลสามารถประมวลผลข้อมูลได้แม้ไม่ตรงตามวัตถุประสงค์ที่เจ้าของข้อมูลให้ความยินยอมไว้เมื่อคราวที่เก็บรวบรวมข้อมูล
  • มีความต้องการนำข้อมูลไปวิเคราะห์ (เช่นในลักษณะ Big Data) หากได้ทำให้ข้อมูลเชื่อมโยงกลับมาระบุตัวบุคคลไม่ได้แล้ว ยังจะต้องขอความยินยอมอีกหรือไม่ (เรื่องนี้เคยพูดไปบ้างแล้ว โดยยกตัวอย่างข้อมูลสุขภาพ อ้างงานของ Sweeney (2000))
  • จะทำอย่างไรกับข้อมูลที่เก็บรวบรวมมาก่อนกฎหมายคุ้มครองข้อมูลประกาศใช้ – ให้ใช้ต่อไปได้เลยโดยไม่ต้องขอความยินยอมใหม่? หรือต้องขอใหม่? หรือกำหนดระยะผ่อนผันให้ใช้ได้ไประยะเวลาหนึ่ง แต่ถ้าพ้นช่วงนี้แล้วไม่ได้รับความยินยอมใหม่ ก็ต้องหยุดใช้และทำลายข้อมูลทิ้ง?
  • การกำหนดข้อยกเว้นหรือกำหนดให้กิจการใดที่ไม่อยู่ใต้บังคับของกฎหมายนี้
  • หลักการของ EU General Data Protection Regulation และ APEC Privacy Framework รวมถึง APEC Cross Border Privacy Rules (CBPR) system

และมีอีกบางประเด็นที่ไม่ได้คุยระหว่างประชุม แต่กลับมาค้นเพิ่ม เช่นนิยาม “profiling” ของ GDPR และการพรางข้อมูล (data masking/data obfuscation)

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

ข้อมูลประกอบการนำเสนอความเห็นและข้อเสนอแนะ แนวทางแก้ไขหรือปรับปรุง ร่างพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล พ.ศ. …. PDF | OpenDocument Text

ใครมีความคิดเห็นอะไรกับตัวร่าง (ขณะนี้ใช้ร่างฉบับที่สำนักงานคณะกรรมการกฤษฎีกาตรวจพิจารณาแล้ว เรื่องเสร็จที่ 1135/2558ในการพิจารณา) ก็ส่งความคิดเห็นไปได้ที่ คณะทำงานร่างแก้ไขกฎหมาย กระทรวงดิจิทัลเพื่อเศรษฐกิจและสังคม — ทางคณะทำงานแจ้งว่าทางเขามีกำหนดส่งเรื่องออกไปภายในเดือนเมษายนนี้ ก็เหลือเวลาอีกไม่มากแล้วครับ

LookHin: การสตรีมไฟล์วิดีโอไปยัง Facebook Live และ Youtube Live ด้วย FFmpeg

30 March, 2017 - 07:46

วันนี้มาทดลองทำการสตรีมไฟล์วิดีโอเพื่อถ่ายถอดสดไปยัง Facebook Live และ Youtube Live กันครับ โดยเราจะใช้ FFmpeg ในการสตรีม ไม่สอนการติดตั้งนะครับน่าจะพอทำเป็น โดยบน Facebook เราจะสตรีมทั้งจากหน้า profile และหน้า page ก่อนนี้เฟสบุคจะมี Publishing Tools ให้เฉพาะกับหน้า page เท่านั้น ถ้าจะสตรีมผ่านหน้า profile เราต้องเขียนโปรแกรมขึ้นมาเพื่อหาค่า Stream Key ซึ่งก็ไม่ได้ยากอะไร แต่ตอนนี้ไม่ต้องเขียนหละเฟสบุคเขาทำให้หมดแล้ว คลิกๆ ไม่กี่ทีก็ได้ Stream Key มาใช้แล้วครับ ส่วนของ Youtube ก็เช่นกัน คลิกๆ ไม่กี่ทีก็ได้ Stream key มาใช้สำหรับสตรีมเช่นกัน

1. การสตรีมวิดีโอไปยัง Facebook Live (Profile Account)
อันนี้เป็นการใช้แอคเค้าเฟสบุคธรรมดาของเรานี้หละครับ ซึ่งปกติเราก็กดถ่ายถอดสดจากมือถือหรือจากคอมพิวเตอร์ได้อยู่แล้ว แต่เดียวเราจะลองถ่ายถอดสดจากไฟล์หนังกันดูครับ เริ่มแรกให้เข้าไปที่ https://www.facebook.com/live/create/ และทำการคลิก Create Live Stream

เลือก Share on your own Timeline และคลิก Next

จากนั้นเราจะได้หน้าที่แสดง Server URL และ Stream Key ให้ copy ค่านี้เอาไว้ เดียวเราต้องใช้ในการสตรีม

เมื่อได้ Stream Key มาแล้ว เราก็มาสั่งสตรีมจาก ffmpeg ได้เลยครับ โดยให้สั่ง

ffmpeg -re -i test.mp4 -acodec libfdk_aac -ac 1 -vcodec libx264 -f flv "rtmp://rtmp-api.facebook.com:80/rtmp/XXXXXXXXXXXXX?ds=1&s_l=1&a=ZZZZZZZZZZZZZZ"

เรียบร้อยครับ กด Go Live ได้เลย

2. การสตรีมวิดีโอไปยัง Facebook Live (Page Account)
อันนี้เป็นการใช้แฟนเพจแอคเค้าในการสตรีมนะครับ เพสบุคเขาเตรียมเครื่องมือเอาไว้ให้พร้อมแล้วเช่นกัน โดยเริ่มจากการเข้าไปในหน้าเพจของเราแล้วคลิกที่ Publishing Tools และเลือก Video Library ทางเมนูซ้ายมือ จากนั้นคลิกที่ปุ่ม + Live

ได้ Stream Key มาแล้ว กด Next

สั่งสตรีมด้วยคำสั่งต่อไปนี้ อย่าลืมแก้ Stream Key เป็นของตัวเองให้เรียบร้อยนะครับ

ffmpeg -re -i test.mp4 -acodec libfdk_aac -ac 1 -vcodec libx264 -f flv "rtmp://rtmp-api.facebook.com:80/rtmp/XXXXXXXXXX?ds=1&s_l=1&a=ZZZZZZZZZZ"

กด Go Live เป็นอันเรียบร้อย

3. การสตรีมวิดีโอไปยัง Youtube Live
อันสุดท้ายเป็นการสตรีมไปยัง Youtube Live ให้เข้าไปที่ https://www.youtube.com/live_dashboard ให้เลื่อนลงมาล้างสุดจะเห็นหัวข้อ ENCODER SETUP ให้ทำการกด Reveal ระบบจะแสดง Stream name/key โดยในส่วนของ Share คือ Link ที่ใช้สำหรับดูไลฟ์จริง ส่งตัวนี้ให้เพื่อนได้เลยครับ ส่วนพารามิเตอร์ตัวอื่นๆ อย่างเช่นการใส่ภาพ thumbnail ก็ลองไปซนดูกันต่อเองครับ

จากนั้นนำ Stream name/key ที่ได้มาสั่งให้ FFmpeg สตรีมไปยัง Youtube Live โดยใช้คำสั่งต่อไปนี้

ffmpeg -re -i test.mp4 -acodec libfdk_aac -ac 1 -vcodec libx264 -f flv "rtmp://a.rtmp.youtube.com/live2/XXXX-XXXXX-XXXXX-XXXXX"

เรียบร้อยไลฟ์ได้แล้วครับ สำหรับข้อมูลเพิ่มเติมดูได้จากอ้างอิงด้านล่างนะครับ

อ้างอิง:
https://www.facebook.com/live/create/?step=landing
https://www.youtube.com/live_dashboard
https://ffmpeg.org/ffmpeg.html
https://www.facebook.com/facebookmedia/get-started/live

bact: กฎหมายคุ้มครองข้อมูลไทย จะเดินตามโมเดลไหนดี: สหภาพยุโรป หรือ เอเปค?

23 March, 2017 - 17:21

เวลาคุยกันว่า ประเทศไทยควรจะเลือกเดินตามหลักการคุ้มครองข้อมูลส่วนบุคคลของ EU (สหภาพยุโรป) หรือ APEC (ความร่วมมือทางเศรษฐกิจเอเชีย-แปซิฟิก) ก็มักจะมีคำอธิบายว่า ของ EU นั้นเน้นเรื่องสิทธิมนุษยชน แต่ของ APEC มองเรื่องเศรษฐกิจนะ (แล้วโน้มน้าวโดยนัยว่า ไทยน่าจะมองเรื่องเศรษฐกิจก่อน ตอนนี้เศรษฐกิจแย่)

ผมก็เคยอธิบายแบบเร็วๆ อย่างนั้นเหมือนกันนะ คือในแง่ที่มามันก็น่าจะทำนองนั้น

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

เราไม่จำเป็นต้องเลือกอย่างใดอย่างหนึ่ง สิทธิมนุษยชนกับเศรษฐกิจทั้งสองอย่างนี้ไปด้วยกันได้ โดยเฉพาะเศรษฐกิจดิจิทัลที่มันต้องตั้งอยู่บนฐาน “ความไว้เนื้อเชื่อใจกัน”

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

การมีมาตรฐานด้านสิทธิที่ดี ก็เพื่อให้คู่ค้าของเราไว้ใจเรา เชื่อใจเรา ว่าเราให้ความสำคัญกับคุณค่าที่เขาให้ความสำคัญ มันแยกกันไม่ขาด

….

อีกประเด็นคือ ของ EU ที่เราคุยกันเนี่ย อันนึงคือ General Data Protection Regulation (Regulation (EU) 2016/679) กับอีกอันคือ Directive (EU) 2016/680 ซึ่งทั้งคู่เพิ่งออกมาเมื่อปีที่แล้ว (2016 และจะมีผลบังคับใช้ในปี 2018)

ในขณะที่ APEC Privacy Framework ออกเมื่อปี 2005 (เริ่มร่างปี 2003 adopted ปี 2004 แต่ finalized ปี 2005)

ตอนปี 2005 นี่โลกเทคโนโลยีสารสนเทศเป็นอย่างไรบ้าง?

  • hi5 กำลังเริ่มเป็นที่นิยม (ตั้งปี 2004)
  • MySpace เป็นสื่อสังคมออนไลน์อันดับหนึ่ง (ตั้งปี 2003)
  • Facebook เพิ่งตั้งได้ปีเดียว (2004) แต่ยังจำกัดสมาชิกอยู่เฉพาะนักศึกษาในสหรัฐ (เปิดให้ลงทะเบียนทั่วไปปี 2006)
  • Gmail ก็เพิ่งเปิดให้บริการแบบจำกัดได้หนึ่งปีเหมือนกัน (2004) ต้องมี invite ถึงจะสมัครได้ และกว่าจะเปิดให้บริการทั่วไปก็ปี 2009
  • โทรศัพท์ “สมาร์ตโฟน” ในตอนนั้นคือ Nokia รุ่น 9300i (ประกาศพ.ย. 2005 วางขายจริง ม.ค. 2006) ระบบปฏิบัติการ Symbian 7.0S หน่วยความจำ 80 MB เบราว์เซอร์รองรับ HTML 4.01 กับ WML 1.3 ราคาเกือบสามหมื่น
  • ยังไม่มี iPhone (ออกปี 2007)
  • ยังไม่มี Google Android (กูเกิลซื้อบริษัทแอนดรอย์มาปี 2005 แล้วเอามาพัฒนาต่อ แล้วออกรุ่นแรกในปี 2008)
  • ยังไม่มี Line (ออกปี 2011)
  • ยังไม่มี Amazon Web Services (เริ่มปี 2006)

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

ซึ่งพอเป็นแบบนี้ มันก็ลำบากอยู่เหมือนกัน ที่จะคาดหวังให้กรอบกฎหมายจากปี 2005 อย่าง APEC Privacy Framework มันจะมาเห็นประเด็นอะไรในปัจจุบันแบบละเอียดๆ คือสมัยนั้นมันยังไม่มี (เอาจริงๆ มันก็พอมี เช่น APEC Cross-border Privacy Enforcement Arrangement จากปี 2010 แต่เราไม่ยอมอ้างกัน ไปอ้างแต่ของเก่า)

ในขณะที่ตอนร่าง General Data Protection Regulation ของ EU มันก็มีกรณีศึกษาอะไรให้สรุปเป็นบทเรียนเยอะแล้ว โดยเฉพาะจากอุตสาหกรรมอินเทอร์เน็ตและการประมวลผลข้อมูลที่มันเปลี่ยนไปอย่างมากในทศวรรษที่ผ่านมา เขาเลยปรับปรุงออกมาแบบนี้

ถ้าไทยจะมีกฎหมายใหม่ ก็ควรคิดถึงอนาคตไหม ไม่ใช่เอาวิธีคิดจากเมื่อ 12 ปีที่แล้วมาใช้ ประกาศปุ๊บ ล้าสมัยทันที เสียเวลาไหม

 

ภาพประกอบ: Nokia 9300i จาก Nokia Museum

bact: ออกแบบหน่วยงานคุ้มครองข้อมูลที่มีประสิทธิภาพ: บทเรียนจากสหภาพยุโรป

23 March, 2017 - 17:00

สรุปบางส่วนจากรายงานศึกษาเปรียบเทียบ Data Protection in the European Union: the role of National Data Protection Authorities (Strengthening the fundamental rights architecture in the EU II) ของ European Union Agency for Fundamental Rights [พ.ค. 2010]

วิธีปฏิบัติที่ดีที่สุด (best practices) สำหรับหน่วยงานคุ้มครองข้อมูล (Data Protection Authority) ว่าด้วยโครงสร้างขององค์กร, อำนาจ, ทรัพยากร, และความร่วมมือกับองค์กรอื่น

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

โครงสร้างและความเป็นอิสระของหน่วยงานคุ้มครองข้อมูล
  • ความเป็นอิสระของหน่วยงานคุ้มครองข้อมูลเป็นปัจจัยที่ขาดไม่ได้ในการที่จะรับประกันว่าจะมีการคุ้มครองข้อมูลเป็นอย่างดี
  • ด้วยเหตุนี้ มาตรการในเชิงโครงสร้างสถาบัน เช่น การกำหนดลักษณะทางนิติบุคคลเป็นพิเศษสำหรับหน่วยงานกำกับดูแลข้อมูล (เช่นในสเปนและมอลตา) หรือการระบุลงไปในรัฐธรรมนูญถึงอำนาจและหน้าที่ (เช่นในรัฐธรรมนูญของโปรตุเกสและกรีซ) เป็นตัวอย่างที่ดีที่จะเพิ่มความเป็นอิสระของหน่วยงานกำกับดูแล
  • แม้การเลือกตั้งคณะกรรมการหรือผู้บริหารหน่วยงานคุ้มครองข้อมูล โดยฝ่ายนิติบัญญัติ (เช่นในเยอรมนีและในสโลเวเนีย) จะไม่ได้รับประกันเสมอไปว่าเจ้าหน้าที่หน่วยงานคุ้มครองจะมีความเป็นอิสระ แต่กระบวนการที่จำเป็นต้องให้มีฉันทามติระหว่างสมาชิกสภานิติบัญญัติเสียงข้างมากและฝ่ายค้าน (เช่นในกรีก) ก็ควรได้รับการพิจารณาว่าเป็นวิธีปฏิบัติที่ดีที่สุด
  • รัฐสมาชิกบางแห่งได้ออกแบบมาตรการลดอิทธิพลและแรงกดดันทางการเมือง เพื่อเป็นการรับประกันความเป็นอิสระของหน่วยงานคุ้มครองข้อมูล เช่นการกำหนดให้เจ้าหน้าที่ของหน่วยงานจะพ้นตำแหน่งก่อนกำหนดวาระได้ก็ต่อเมื่อประพฤติขัดกับหลักการที่ได้ระบุไว้ล่วงหน้า และก็ต่อเมื่อได้ผ่านกระบวนการเช่นเดียวกับที่ใช้ในตอนแต่งตั้งเท่านั้น (เช่นในสโลเวเนีย โปแลนด์)
อำนาจในการกำหนดระเบียบปฏิบัติของหน่วยงานคุ้มครองข้อมูล
  • วิธีปฏิบัติที่ดีที่สุดอีกอย่างหนึ่ง ที่จะรับประกันความเป็นอิสระของหน่วยงานคุ้มครองข้อมูล คือการที่หน่วยงานคุ้มครองข้อมูลมีสิทธิที่จะนำกฎหมายเข้าสู่ศาลรัฐธรรมนูญ เพื่อให้ศาลพิจารณาว่ากฎหมายดังกล่าวชอบด้วยรัฐธรรมนูญหรือไม่ (เช่นในสโลเวเนีย)
  • อำนาจของหน่วยงานคุ้มครองข้อมูลที่จะจัดเตรียมระเบียบปฏิบัติ (code of conduct) ก็เป็นวิธีปฏิบัติที่ดีเช่นกัน การมีส่วนร่วมในการร่างระเบียบปฏิบัติในการคุ้มครองข้อมูลนั้นไม่เพียงเพิ่มการคุ้มครองข้อมูลสำหรับประชาชน แต่ยังช่วยให้หน่วยงานคุ้มครองข้อมูลเป็นที่รู้จักและถูกมองเห็นในสังคม และหน่วยงานคุ้มครองข้อมูลควรเข้าร่วมกระบวนการนี้ในเชิงรุกอย่างแข็งขัน
  • ในไอร์แลนด์ กฎหมายมอบอำนาจให้กับหน่วยงานคุ้มครองข้อมูลส่วนบุคคลแห่งชาติในการเสนอและจัดเตรียมระเบียบปฏิบัติ ซึ่งถ้าหากได้รับความเห็นชอบจากฝ่ายนิติบัญญัติ ก็จะมีผลบังคับตามกฎหมาย (Ireland Data Protection Act [1988-2003], Section 13)
ทรัพยากร
  • นอกเหนือจากความเป็นอิสระและอำนาจที่จำเป็น หน่วยงานคุ้มครองข้อมูลจำเป็นต้องได้รับประกันว่าจะได้รับทรัพยากรมนุษย์และทรัพยากรทางการเงินที่จำเป็นอย่างเพียงพอ เพื่อให้สามารถบังคับใช้ระบบการคุ้มครองข้อมูลได้อย่างมีประสิทธิภาพ
  • ในรัฐสมาชิกส่วนใหญ่ หน่วยงานคุ้มครองข้อมูลได้รับการสนับสนุนทรัพยากรที่จำเป็นจากงบประมาณของรัฐ (เช่นในอิตาลี ฝรั่งเศส เนเธอร์แลนด์ และเอสโตเนีย) ซึ่งโดยมากจะอยู่ในงบประมาณกระทรวงยุติธรรม
  • อย่างไรก็ตาม ในบางรัฐสมาชิก หน่วยงานคุ้มครองก็สามารถหาทรัพยากรทางการเงินเพิ่มเติมได้อย่างมีนัยสำคัญ จากรายได้ที่ได้มาจากค่าแจ้งเตือนผู้ประมวลผลข้อมูล และ/หรือ จากค่าปรับที่เป็นตัวเงินที่มาจากการลงโทษการละเมิดกฎหมายคุ้มครองข้อมูล (เช่นในลักเซมเบิร์กและมอลตา)
ความร่วมมือระหว่างหน่วยงาน
  • ความร่วมมือและการสื่อสารอย่างสม่ำเสมอระหว่างหน่วยงานรัฐและหน่วยงานคุ้มครองข้อมูลจะทำให้ระบบการคุ้มครองข้อมูลโดยรวมทำงานอย่างราบรื่นยิ่งขึ้น
  • ในเยอรมนี โครงการอบรมขนาดใหญ่ดำเนินงานในรูปแบบโรงเรียนคุ้มครองข้อมูล ซึ่งได้พัฒนาหลักสูตรอบรมที่ครอบคลุมและเป็นระบบ สำหรับการบริหารงานปกครองในทุกด้าน
  • ความร่วมมือและการสื่อสารอย่างใกล้ชิดกับหน่วยงานที่ไม่ใช่รัฐ (เอ็นจีโอ) ที่ทำงานในด้านนี้ มีประโยชน์หลายประการ
  • ประการแรกคือ หน่วยงานที่ไม่ใช่รัฐหรือเอ็นจีโอนั้นอยู่ในฐานะที่จะสามารถส่งสัญญาณว่ามีการละเมิดกฎหมายคุ้มครองข้อมูลที่ชัดเจนหรืออย่างเป็นระบบ ให้หน่วยงานคุ้มครองข้อมูลหรือให้กับประชาสังคมได้รับทราบ ซึ่งเท่ากับว่าเราจะมีหน่วยงานกำกับดูแลที่ไม่ใช่รัฐเพิ่มเติมขึ้นมา ซึ่งในหลายกรณี การมีหน่วยงานที่ไม่ใช่รัฐเพิ่มขึ้นมานี้ ก็ช่วยให้การตรวจตราการคุ้มครองข้อมูลเป็นไปได้ครอบคลุมมากขึ้น
  • ประการที่สอง เอ็นจีโอนั้นทำให้มีช่องทางสื่อสาร ‘จากล่างขึ้นบน’ ซึ่งทำให้พลเมืองมีโอกาสที่จะเสนอการแก้ไขปรับปรุงกรอบกฎหมาย
    • จากมุมมองนี้ หน่วยงานคุ้มครองข้อมูลของฮังการีได้ช่วยเหลือและร่วมมือกับเอ็นจีโอหลายแห่ง ตัวอย่างเช่น ในปี 2000 หน่วยงานคุ้มครองข้อมูลได้ทบทวนแผนงานคุ้มครองข้อมูลสำหรับโครงการวิจัยสิทธิของชาวโรมา (ยิปซี) ซึ่งดำเนินงานโดยคณะกรรมการเฮลซิงกิฮังการี และในปี 2004 เจ้าหน้าที่ของหน่วยงานได้ร่วมกับสหภาพสิทธิพลเมืองฮังการีทำการทดสอบสถานพยาบาลจำนวนหนึ่งเพื่อดูว่าการตรวจเชื้อเฮชไอวีนั้นได้ทำไปอย่างเป็นนิรนามและไม่มีค่าใช้จ่ายจริงอย่างที่ได้ประกาศหรือไม่ และหลังจากนั้นก็ได้ออกข้อแนะนำซึ่งตั้งอยู่บนฐานของข้อค้นพบระหว่างการทดสอบดังกล่าว
  • ประการสุดท้าย ความร่วมมือและการสื่อสารอย่างสม่ำเสมอระหว่างหน่วยงานคุ้มครองข้อมูลของรัฐอื่นๆ ทั้งในและนอกสหภาพยุโรป ก็เป็นประโยชน์เช่นกัน
    • ในระดับสหภาพยุโรป สิ่งนี้ถูกทำให้เป็นจริงหลักๆ ผ่านทางคณะทำงานซึ่งก่อตั้งตามมาตรา 29 ของ Data Protection Directive เวทีนี้ทำให้มีสภาพแวดล้อมเชิงสถาบันที่จำเป็น เพื่อให้หน่วยงานคุ้มครองข้อมูลจากรัฐต่างๆ สามารถปรับประสานการใช้กฎหมายของตัวเองให้สอดคล้องเข้ากันได้กับรัฐอื่นๆ
    • ความร่วมมือแบบทวิภาคีและพหุภาคีก็เป็นเรื่องที่ควรส่งเสริมให้เกิด ทั้งในภายในสหภาพยุโรปและกับประเทศนอกสหภาพยุโรป ตัวอย่างที่ดีเช่นการที่โปรตุเกสกับสเปนมีการประชุมอย่างไม่เป็นทางการร่วมกันเป็นประจำทุกปี เพื่อพูดคุยเกี่ยวกับพัฒนาการที่สำคัญในการคุ้มครองข้อมูล

 

เรื่องที่เกี่ยวข้อง: ออกแบบอำนาจ: อ่านโครงสร้างคณะกรรมการในกฎหมายไทย

LookHin: เขียนโปรแกรมอัพโหลดข้อมูลไปเก็บไว้ที่ Google Drive

17 March, 2017 - 18:07

พอดีผมทำ Google Drive API และเอาขึ้น Github เอาไว้ โดยสามารถดาวน์โหลดได้จาก Google Drive API บทความนี้จะเขียนอธิบายวิธีใช้นิดหน่อย จุดประสงค์ของการทำ API ชุดนี้ก็เพื่อจะทำโปรแกรมสำหรับอัพโหลดไฟล์จาก server ไปเก็บไว้ยัง Google Drive โดยอัตโนมัติ เพื่อทำการ backup ข้อมูล โดยใน API สามารถที่จะแสดงรายชื่อไฟล์และโฟลเดอร์, สร้างโฟลเดอร์ใหม่, ลบไฟล์และโฟลเดอร์ และอัพโหลดไฟล์เข้าไปยังโฟลเดอร์ที่กำหนดไว้ได้ หากใครต้องการเพิ่มความสามารถอื่นเข้าไป ก็สามารถอ่านวิธีเรียกใช้งาน API ได้จาก Reference ด้านล่างบทความนะครับ

ในการเรียกใช้งาน Service ของ Google API เราต้องทำการร้องขอ Access Token ไปยัง Server ของทาง Google เพื่ออนุญาตให้แอพที่เราสร้างสามารถเข้าถึง Service ที่เราระบุเอาไว้ได้ ซึ่งเมื่อเราได้ Access Token มาแล้วเราสามารถที่จะใช้ Access Token ตัวนี้ในการเรียกใช้ API ต่างๆ ได้ ซึ่งในบทความนี้เราจะทำการเรียกใช้ Google Drive API

มาลองทดลองทำจริงเลยดีกว่าครับ เริ่มแรกเลยให้ทำการดาวน์โหลดโค้ดทั้งหมดจาก Github ลงมาก่อน https://github.com/LookHin/google-drive-api จากนั้นทำการเปิดใช้งาน Google Drive API โดยคลิกเข้าไปที่ Enable Google Drive API จากนั้นเลือกสร้างโปรเจคใหม่ หรือเลือกโปรเจคเก่าที่เรามีอยู่แล้วก็ได้

คลิก Create credentials และเลือก OAuth client ID

ในช่อง Application type ให้เลือกเป็น Other และช่อง Name ให้ใส่เป็นชื่อที่เราต้องการ และคลิก Create

หลังจากคลิก Create แล้วระบบจะแสดง Client Id และ Client secret ขึ้นมาให้ ให้เรา copy รหัสทั้ง 2 ตัวนี้ไปใส่ในไฟล์ authorize.php และ example.php

$strClientId = "YOUR_CLIENT_ID";
$strClientSecret = "YOUR_CLIENT_SECRET";

ทำการ Authorize โดยเรียก authorize.php จากบราวเซอร์ เช่น http://YOUR_SERVER/google-drive/authorize.php และทำการคลิก Allow เพื่อทำการอนุญาติให้แอพที่เราสร้างสามารถเข้าถึงข้อมูลใน Google Drive ได้

หลังจากคลิก Allow แล้วระบบจะแสดง Refresh Token ขึ้นมาให้ ให้ทำการ copy รหัสตัวนี้ไปใส่ในไฟล์ example.php

$strRefreshToken = "YOUR_REFRESH_TOKEN";

เพียงเท่านี้โปรแกรมของเรา ที่เราเขียนไว้ในไฟล์ example.php ก็พร้อมที่จะทำงานได้แล้วครับ แต่ก่อนอื่นมารู้จักกับ File Id และ Folder Id ที่ใช้ภายใน Google Drive กันก่อน ในระบบของ Google Drive จะอ้างอิงถึงไฟล์และโฟลเดอร์ต่างๆ ผ่านทาง Id ฉะนั้นเวลาเราจะสร้างโฟลเดอร์ใหม่ หรือทำการอัพโหลดเข้าไปในโฟลเดอร์ต่างๆ เราต้องรู้ก่อนว่าโฟลเดอร์นั้นมี Id เป็นอะไร โดยวิธีที่ง่ายที่สุดก็คือเปิดเข้าไปที่ Google Drive และคลิกเลือกไปที่โฟลเดอร์ที่ต้องการ เราจะเห็น Id ของโฟลเดอร์นั้นๆ แสดงเป็น URL ดังรูป

ตัวอย่าง: จากตัวอย่างของโค้ด ผมทำตัวอย่างการแสดงไฟล์ สร้างโฟลเดอร์ ลบไฟล์และโฟลเดอร์ และอัพโหลดไฟล์ไว้ให้แล้ว ลองเล่นกันดูครับ

setAccessTokenFromRefreshToken($strRefreshToken);

// List File From Root Folder
$arrFile = $obj->ListFileAndFolder("root");
print_r($arrFile);

// # List File From Folder Id
//$arrFile = $obj->ListFileAndFolder("_PARENT_FOLDER_ID_");
//print_r($arrFile);

// # Create Folder In Root Folder
//$obj->CreateFolder("root", "_NEW_FOLDER_NAME_");

// # Create Folder In Parent Folder
//$obj->CreateFolder("_PARENT_FOLDER_ID_", "_NEW_FOLDER_NAME_");

// # Delete File & Folder
//$obj->Delete("_FILE_OR_FOLDER_ID_");

// # Upload File To Root Folder
// $arrResult = $obj->Upload("root", "no-face.png");
// print_r($arrResult);

// # Upload File To Parent Folder
// $arrResult = $obj->Upload("_PARENT_FOLDER_ID_", "no-face.png");
// print_r($arrResult);

?>

อ้างอิง :
https://github.com/LookHin/google-drive-api
https://developers.google.com/identity/protocols/OAuth2WebServer
https://developers.google.com/drive/v3/reference/files
https://developers.google.com/drive/v3/web/resumable-upload

Kitt: Google Cloud Platform Free Tier

12 March, 2017 - 16:04
Google recently provide the free tier on their Google Cloud Platform (GCP). The free tier will be free forever (but what Google offered are subjected to changes). Also included in the free tier is $300 credit for 12 months (I think this was 2 months – good !) I applied, created Google Compute Engine (GCE) f1-micro instance, … Continue reading Google Cloud Platform Free Tier →

Kitt: Yet another leap second added

12 March, 2017 - 15:33
235960 – 23:59:60 – the leap second added. UTC (based on solar mean)  – TAI (based on atomic clock) = -37 seconds Happy New Year 2017 UTC

Kitt: กบ CoE #2

10 March, 2017 - 13:28
ผมกับกบ CoE#2 สนิทกันประมาณนึง ด้วยกบจบจากสาธิตมอดินแดง เป็นพี่โรงเรียนเดียวกับส้ม กบจะเรียกผมว่าพี่เสมอ ไม่เคยเรียกผมว่าอาจารย์ กบชอบเล่นเกม โค้ดเก่ง คิดเก่ง พลิกแพลงเก่ง แต่ .. เรียนไม่เก่ง กบใช้เวลาเรียนหลายปีกว่าจะจบด้วยเกรด 2.0 กว่า ๆ ด้วยความที่เรียนนาน เข้าคลาสเรียนกับน้อง ๆ เลยเป็นที่รู้จักของน้อง ๆ รุ่นหลังอีกหลายรุ่น ถ้าจำไม่ผิดคน กบเข้าไปทำงานแรก ๆ ทำงานได้ดีโดยเจ้านายไม่รู้ว่าเกรดมันห่วย วันที่เจ้านายรู้ว่ากบจบด้วยเกรดห่วย ๆ จึงเกิดประโยคที่ว่า “มี วศ.คอม.มข. เกรด 2.0 แบบคุณอีกไหม ?” ผมเจอกบครั้งสุดท้ายหลายปีก่อน กบแวะมาที่ภาคฯ ถือเกมมาให้เล่น ก็ยังได้มานั่งเล่นเกมกันเหมือนสมัยอยู่ห้องโปรเจค ตัดมาอีกทีก็มารู้ข่าวเรื่องอาการเนื้องอกในสมองของกบ ช่วงปลายมกราฯ ที่ผ่านมา กบอาการทรุดลงไปอีก เพื่อน ๆ น้อง ๆ บางคนพอทราบก็ไปเยี่ยม/นัดกันว่าจะไปเยี่ยมที่บ้าน เมื่อวาน น้องไปสบายแล้ว ใจหายว่ะ

Kitt: Vultr’s $2.5 / month server instance

10 March, 2017 - 13:22
Vultr has recently upgrade all instances . While $5/month has been upgraded from 1 CPU / 768 MB / 15 GB  to 1 CPU / 1 GB / 25 GB, Vultr also introduced the new smallest server instance – 1 CPU / 512 MB / 20 GB at $2.5/month. So, I have choices:  keep paying $5/month … Continue reading Vultr’s $2.5 / month server instance →

Pages

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้