Quick tip: ลง PyAudio และ Bitarray ใน Python 2.7

สวัสดีครับ วันนี้มีทิปสั้นๆ เกี่ยวกับการลง PyAudio และ Bitarray ให้กับเจ้า Python 2.7 กันครับ เรื่องมันมีอยู่ว่า ผมกำลังทำโปรแกรมถอดรหัสเข้ารหัส AFSK แต่ระบบที่ว่าต้องทำงานกับเสียง เลยต้องใช้ Library PyAudio กับ bitarray ในการประมวลผลข้อมูลครับ แต่แน่นอนครับว่ามันไม่ใช่แค่ pip install afsk pip install –allow-external PyAudio –allow-unverified PyAudio PyAudio แน่ครับ ลงไปลงมา ก็เจอปัญหาจนได้ สุดท้ายก็ได้วิธีแก้ปัญหาดังนี้ครับ pip ไม่มี ปัญหาโลกแตกครับ ทั้งที่จริงแล้วถ้าสั่งรัน pip ตรงไม่ได้ ก็แค่เปลี่ยนจาก pip <bla bla bla> เป็น (เครื่องผมไม่ได้ตั้ง PATH ไว้ เลยต้อง cd C:\Python27 ก่อน) แค่นี้เองครับ…

Read More

เมื่อผมไปฟังบรรยาย “Journey to Space” presented by U.S. Embassy Bangkok

สวัสดีครับ วันนี้ผมได้รับคัดเลือกจากศูนย์ต่างประเทศเพื่อวิศวกรรมศาสตร์ มจธ. (International Center for Engineering, KMUTT) ให้ไปร่วมงานบรรยาย “Journey to Space” ซึ่งจัดโดยสถานฑูตอเมริกาประจำประเทศไทยครับ เป็นการบรรยายภารกิจของ NASA โดย NASA Administrator คุณ Charles F. Bolden, Jr. ครับ .@NASA ’s delegations impart not only their experiences but encouragement & inspiration for students to work hard. pic.twitter.com/CUNwwNmMbQ — U.S. Embassy Bangkok (@USEmbassyBKK) September 1, 2015 เช่นเคยครับ ผมบันทึกเสียงการบรรยายไว้ หากสนใจก็เชิญรับฟังกันได้เลยครับ ใจความสรุปหลักๆ แบ่งได้เป็น  ประเด็นครับ NASA…

Read More

เมื่อผมไปดูนิทรรศการ งานวันสื่อสารแห่งชาติ NET2015

สวัสดีครับ วันนี้ผมไปงานวันสื่อสารแห่งชาติ ที่ศูนย์ประชุมแห่งชาติสิริกิติ์มาครับ แน่นอนว่างานนี้จัดโดย กสทช. ครับ เป็นในลักษณะที่ต่างจากที่ผมไปทุกที คือเป็นงานนิทรรศการที่หน่วยงานด้านเทคโนโลยีสารสนเทศ โดยเฉพาะดิจิตอลทีวีมาจัดกิจกรรมและแสดงผลงานกันครับ (ภาพอาจจะไม่ดีเท่าไหร่ เพราะถ่ายด้วย iPhone 3G ซึ่งเก่ามากแล้ว -3-) การบรรยายต่อไปนี้จะไล่ไปตามงานที่ผมเดเินไปเรื่อยๆ นะครับ กสทช. : ว่าด้วย USO และ CyberSecurity บูธของ กสทช. จะแบ่งเป็น 3 ส่วนหลักๆ ครับบ คือด้านกิจการทั่วไปของ กสทช. กิจการ USO และ Cyber security ครับ แน่นอนครับว่าเป็นนิทรรศการบรรยายพื้นฐาน ไม่ได้มีอะไรพิเศษมากนัก ที่น่าสนใจคือเครื่องวุ้นแปลภาษาสำหรับผู้พิการทางการได้ยิน (หูหนวก) เครื่องนี้จะใช้บัตรประชาชน Smart card เพื่อยืนยันตัวตน ก่อนจะเชื่อมต่อผ่านระบบ internet ไปยังศูนย์ เพื่อให้คนปกติหรือผู้พิการทางการมองเห็นพูดใส่หูโทรศัพท์ให้เจ้าหน้าที่ของศูนย์แปลงข้อมทูลเป็นภาษามือให้ผู้พิการทางการได้ยินรับทราบข้อความ และทำกลับกันเพื่อสื่อสารกับอีกฝ่ายครับ ตัวระบบไม่ซับซ้อน ใช้งานง่าย แต่อาจจะเกร็งๆ หรือสื่อกันผิดคนไปบ้าง (สับสนว่ากำลังพูดกับล่ามหรือผู้พิการฯ…

Read More

เมื่อผมไปฟังเสวนา กสทช. พบ Blogger และชาวเน็ต #DTV4All

สวัสดีครับ วันนี้ผม ในฐานะชาวเน็ตได้เข้าร่วมงาน “กสทช. พบ Blogger และชาวเน็ต : กับดิจิตอลทีวี” จัดโดย กสทช. และ ThaiPBS ณ ห้อง SkyRoom ชั้น 17 อาคารใบหยก 2 แน่นอนครับว่า เป็นการพูดคุยถึงเรื่อง Digital TV ที่ กสทช. และ MUX หลักอย่าง ThaiPBS กำลังผลักดันให้เป็นจริงให้จงได้ นอกจากตัวผมแล้ว ยังมี Blogger ชื่อดังหลายท่านร่วมงาน ไม่ว่าจะเป็นผู้ก่อตั้ง Blognone อย่าง @lewcpe กับ @markpeak, @kafaak, คุณชายอดัม (หม่อมราชวงศ์เฉลิมชาตรี ยุคล) รวมทั้งนักข่าวหลายแห่งทั้ง Nation, สทท. อีกด้วยครับ รวม Blogger ทุกวงการมาในงานนี้ #DTV4ALL #ยามเฝ้าจอ pic.twitter.com/huxrxemyVg…

Read More

สร้าง Icon font ของตัวเองได้ง่ายๆ ด้วย IconMoon App

หนึ่งในองค์ประกอบหลักที่สำคัญของเว็บไซต์ที่จะขาดไปเสียไม่ได้เลยคือ icon เหตุผลหลักก็เหมือนที่มีมีคนเคยกล่าวไว้ว่า “หนึ่งภาพมีค่ายิ่งกว่าร้อยคำพูด” icon ถึงแม้จะไม่ใช่รูปภาพเสียทีเดียว แต่ด้วยความที่เป็นสื่อกลางที่คนไม่ว่าจะชาติภาษาไหนก็เข้าใจได้ง่าย หลายท่านคงอาจเคยใช้งาน icon ไม่ว่าจะเป็นรูปภาพ gif, png svg vector หรือแม้แต่ icon font ที่เป็นที่นิยมอย่างมากในปัจจุบัน (หากสงสัยว่าแล้ว icon font คืออัลไล ลองอ่านบทความของ designil นี้ดูครับ อธิบายได้ดีทีเดียว สรุปสั้นๆ คือมันเป็นฟอนต์ฟอนต์หนึ่งนี่แหละครับ แต่แทนที่จะเก็บแบบตัวอักษรก็เก็บ icon ไว้แทน ถ้านึกไม่ออกก็นึกถึงฟอนต์ Wingdings ที่มี icon แบบนี้ : ( ÿ  ครับ) เพราะทั้งสะดวก ใช้งานง่าย ที่สำคัญคือมีขนาดเล็กและสวยงามดี ไม่มีอาการแตกเมื่อขยายใหญ่เข้า แล้วถ้ามี logo หรือรูป icon ที่อยากทำเป็น icon font เองล่ะจะทำอย่างไร? IconMoon Apps คือคำตอบ…

Read More

ทำขอบเฉียงด้วย CSS3 Gradient

ตามที่สัญญากันไว้ครับ หลายท่านอาจเคยเห็นบางเว็บไซต์ทำขอบเฉียงๆ กันมาบ้างแล้ว อาจจะใช้คุณสมบัติของ CSS Border ทำให้ขอบบางส่วนใส หรือการดัดด้วย transform: skew, SVG element เป็นต้น แต่ด้วยข้อเสียบางอย่างของวิธีการดังกล่าว เช่น CSS Border จำเป็นต้องรู้ขนาดตายตัวเป็น pixel หรือหน่วยที่สัมพันธ์เหมือนกัน (em, rem, vh, vw เป็นต้น) หรือ transform: skew ก็ต้องดัด element นั้นจริงๆ หากต้องใส่ใน element อื่นต้องคำนวนระยะมุมด้วย เป็นต้น หลังจากที่ค้นหาข้อมูลอยู่นาน ผมก็เจอ Fiddle อันหนึ่งที่ใช้การทำขอบเฉียงด้วย CSS Gradient ซึ่งเป็นอะไรที่ถูกใจแจ้จริงๆ ก็เลยนำมาประยุกต์ใช้ครับ ลองดูตัวอย่างนี้ดูครับ มันทำได้อย่างไรกันนี่!? เทคนิค linear gradient ที่เราจะใช้ก็คือการใส่พื้นหลังแบบไล่สีง่ายๆ นี่แหละครับ ตาม syntax ของ W3C linear-gradient() ซึ่งเป็นมาตรฐานที่สรุปแน่นอนแล้ว จะสามารถใช้คำสั่ง…

Read More

(Lite) Portfolio ผมก็มีกับเค้าแล้วนะ!

สวัสดีครับท่านผู้อ่าน หลังจากที่ผมหายไปนานมาก ส่วนใหญ่ก็ไปส่องสาวอยู่ใน Facebook เอ้ย! เรียนที่ภาควิชา CPE มาครบปีกับเป็นมือปืนรับเขียน Code ให้พี่ๆ ที่ภาควิชา (ใช่ครับ ผมเริ่มรับงานมาทำแล้วครับ แต่ยังเป็นงานเล็กๆ เงินไม่มาก เอาไว้เป็นประสบการณ์เท่านั้นเองครับ) ในที่สุดหลังจากที่ผมดองแล้วดองอีก เขียนแล้วก็ลบอีก ไม่เคยได้เสร็จกับเค้าสักที ในที่สุดก็ทำสรุปผลงานของผมเสร็จแล้วครับ (ปรบมือ!) ที่บอกว่าเป็น Lite ก็เพราะว่าเป็นแค่หน้ารวบรวมผลงานกับการแข่งขันแบบสรุปจบหน้าเดียวตามยุคสมัยครับ ตัวเต็มจะมีแสดงผลงาน ประวัติผม และข้อมูลอื่นๆ ครบครันกว่านี้ เพจนี้ผมใช้ Materialize เป็นโครงหลักครับ เพราะตัวมันเองมีน้ำหนักเบากว่า Bootstrap แต่ยังมีคุณสมบัติที่จำเป็นอยู่ครบครันเลยทีเดียว รวมถึงความสามารถในการทำ responsive design สำคัญเลยคือมันนำแนวทางจาก Google material desing มาค่อนข้างครบ การออกแบบจึงไม่ค่อยสาหัสสำหรับผมที่หัวศิลป์ไม่ค่อยมีครับ เพราะตัว material design มันสวยงามแบบเรขาคณิตของมันอยู่แล้ว การทุ่มเทจึงเน้นไปที่ทำให้ตัวเองไม่ขี้เกียจ เอ้ย! การเขียน CSS กับ Javascript ในการแสดงผลงานและตกแต่งมากกว่าครับ แน่นอนครับว่าแม้จะมีหลายอย่างที่มี library…

Read More

เมื่อผมไปฟังเสวนา Citizenfour : หนัง-คอมพ์-คน-พลเมืองดิจิตอล

สวัสดีครับ วันนี้ชมรม Documentary club Thai Netizen Network กับ 2600 Thailand จัดเสวนาในเรื่อง Citizenfour : หนัง-คอมพ์-คน-พลเมืองดิจิตอล ที่ SF World Cinema กรุงเทพฯ ครับ เป็นการพูดคุยกันในเรื่องราวของภาพยนตร์ Citizenfour, สิทธิเสรีภาพโดยเน้นไปถึงเสรีภาพการแสดงออกโดยไม่ระบุตัวและความเป็นส่วนตัวของปัจเจกบุคคลและการเข้ารหัสการสื่อสารในระบบอินเตอร์เน็ตครับ สำหรับบันทึกการเสวนานั้น จริงๆ ผมบันทึกเสียงไว้นะครับ แต่พอกลับมาเปิดดู คุณภาพเสียงแย่มาก ขอรอบันทึกเทปที่มีภาพด้วยจากทาง 2600 Thailand ก่อนนะครับ มีวิดิโอจากประชาไทยแล้วครับ แต่ถ้าใครมีความสามารถทนฟังเสียงได้ก็ขอเชิญรับฟังครับ ^-^” Part 1 Part 2 สำหรับเนื้อหาโดยสังเขปของการเสวนา มีดังต่อไปนี้ครับ ในด้านภาพยนต์ CItizenfour – ภาพยนต์เรื่อง Citizenfour นำประเด็นเรื่อง Computer&Cyber security และ Privacy ที่รุนแรงมาก เป็นข่าวใหญ่ที่มีคนได้รับผลกระทบเยอะมาก โดยใช้การเล่าถึงเบื้องหลังของกระบวนการจริงที่กว่าจะได้ออกมาเป็นการสัมภาษณ์กับ Edward Snowden…

Read More

Fullpage.js: เฮ! ได้ดั่งใจสั่งด้วย onleave และ YoutubeAPI

สวัสดีครับ หลังจากที่ทำหน้าประกาศผลค่าย Comcamp กันข้ามวันข้ามคืน ในที่สุดก็ทำจนเสร็จเรียบร้อยแล้ว ดีจมากครับที่หลายคนให้คำชื่นชมกันมาว่าสวย น่าใช้ สำหรับเรื่องที่จะนำเสนอวันนี้เป็น Gimmick เล็กๆ ที่ใส่ไว้ในหน้าประกาศว่าน้องติดค่าย คือส่วนก่อนหน้าจะเป็นส่วนล้อเลียน/แกล้งน้องกันก่อน แล้วพอลงมาหน้าล่างสุดก็เล่นวิดิโอแสดงความยินดี (นั่นคือที่มาของ เฮ! ขอหัวเรื่องนี้ครับ) โดยอัตโนมัตินั่นเอง ส่วนที่สำคัญในการทำตรงนี้มี 2 ส่วนครับ คือการเช็คว่าน้องเลื่อนมาหน้าล่างสุดแล้วหรือยัง กับส่วนที่ไปสั่งให้ Youtube เล่นตอนเลื่อนลงมาถึงและสั่งหยุดเมื่อเลื่อนพ้นหรือออกไปหน้าหลัก มาว่ากันที่ส่วนแรกก่อน ตาม Document ของ fullpage.js จะมีอีเวนต์ต่างๆ เช่นตอนที่เริ่มสร้าง element ตอนปรับขนาดหน้าจอ ส่วน event ที่เราจะใช้ก็คือ onLeave หรือตอนที่จะเลื่อน slide ไป slide อื่น จาก Code ที่ผมโชว์ให้เห็นตรงนี้ จะมี 3 parameters หลักๆ ก็คือเลขลำดับ slide ที่กำลังจะออก, เลขลำดับ slide ที่จะไปถึง…

Read More

Hello world, PHP on appspot!

สวัสดีครับ ช่วงนี้หายไปนานเลย ช่วงนี้มีกิจกรรมของภาควิชาเยอะมาก เลยไม่ได้มาอัพบทความสักเท่าไหร่เลย = =” ตอนนี้ผม (ทำระบบหลังบ้าน, PHP, JS) กับวิน (@winwanwon) (ทำหน้าบ้าน, HTML, CSS, JS, AngularJS) ช่วยกันทำเว็บค่าย Comcamp#27 กันอยู่ครับ ที่มาของการใช้งาน appspot ก็มาจากในหน้าประกาศผลการเข้าค่าย มันจะมี reChaptcha ให้ตรวจสอบว่าเป็นบอทรึเปล่า แล้วมันจะต้องมีการส่งค่าไปที่ Google ตามคู่มือนี้เพื่อพิสูจน์ทราบว่าเป็นรหัสจริง ไม่ได้โมเมเอา แต่เนื่องจากว่า server ของค่ายมันจำกัดการเชื่อมต่อจาก server ไปโลกภายนอก พอน้องๆ ส่ง reChaptcha มาเยอะๆ firewall มันจะบล็อกการเชื่อมต่อตัวหลังๆ ทำให้บางคนไม่สามารถเช็คผลได้ ผมก็เลยต้องใช้วิธิ “ยืมมือส่งสาร” ตามผังด้านล่างนี้ : จากภาพจะเห็นได้ว่าจะต้องมีการทำงานทั้งฝั่ง client คือยิง request ไปยัง server รองที่ทำหน้าที่ช่วยตรวจผลของ reChaptcha และฝั่ง server ย่อย…

Read More