สวัสดีครับ วันนี้มีทิปสั้นๆ เกี่ยวกับการลง 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 ก่อน) แค่นี้เองครับ…
Yearly Archives: 2015
เมื่อผมไปฟังบรรยาย “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…
เมื่อผมไปดูนิทรรศการ งานวันสื่อสารแห่งชาติ NET2015
สวัสดีครับ วันนี้ผมไปงานวันสื่อสารแห่งชาติ ที่ศูนย์ประชุมแห่งชาติสิริกิติ์มาครับ แน่นอนว่างานนี้จัดโดย กสทช. ครับ เป็นในลักษณะที่ต่างจากที่ผมไปทุกที คือเป็นงานนิทรรศการที่หน่วยงานด้านเทคโนโลยีสารสนเทศ โดยเฉพาะดิจิตอลทีวีมาจัดกิจกรรมและแสดงผลงานกันครับ (ภาพอาจจะไม่ดีเท่าไหร่ เพราะถ่ายด้วย iPhone 3G ซึ่งเก่ามากแล้ว -3-) การบรรยายต่อไปนี้จะไล่ไปตามงานที่ผมเดเินไปเรื่อยๆ นะครับ กสทช. : ว่าด้วย USO และ CyberSecurity บูธของ กสทช. จะแบ่งเป็น 3 ส่วนหลักๆ ครับบ คือด้านกิจการทั่วไปของ กสทช. กิจการ USO และ Cyber security ครับ แน่นอนครับว่าเป็นนิทรรศการบรรยายพื้นฐาน ไม่ได้มีอะไรพิเศษมากนัก ที่น่าสนใจคือเครื่องวุ้นแปลภาษาสำหรับผู้พิการทางการได้ยิน (หูหนวก) เครื่องนี้จะใช้บัตรประชาชน Smart card เพื่อยืนยันตัวตน ก่อนจะเชื่อมต่อผ่านระบบ internet ไปยังศูนย์ เพื่อให้คนปกติหรือผู้พิการทางการมองเห็นพูดใส่หูโทรศัพท์ให้เจ้าหน้าที่ของศูนย์แปลงข้อมทูลเป็นภาษามือให้ผู้พิการทางการได้ยินรับทราบข้อความ และทำกลับกันเพื่อสื่อสารกับอีกฝ่ายครับ ตัวระบบไม่ซับซ้อน ใช้งานง่าย แต่อาจจะเกร็งๆ หรือสื่อกันผิดคนไปบ้าง (สับสนว่ากำลังพูดกับล่ามหรือผู้พิการฯ…
เมื่อผมไปฟังเสวนา กสทช. พบ Blogger และชาวเน็ต #DTV4All
สวัสดีครับ วันนี้ผม ในฐานะชาวเน็ตได้เข้าร่วมงาน “กสทช. พบ Blogger และชาวเน็ต : กับดิจิตอลทีวี” จัดโดย กสทช. และ ThaiPBS ณ ห้อง SkyRoom ชั้น 17 อาคารใบหยก 2 แน่นอนครับว่า เป็นการพูดคุยถึงเรื่อง Digital TV ที่ กสทช. และ MUX หลักอย่าง ThaiPBS กำลังผลักดันให้เป็นจริงให้จงได้ นอกจากตัวผมแล้ว ยังมี Blogger ชื่อดังหลายท่านร่วมงาน ไม่ว่าจะเป็นผู้ก่อตั้ง Blognone อย่าง @lewcpe กับ @markpeak, @kafaak, คุณชายอดัม (หม่อมราชวงศ์เฉลิมชาตรี ยุคล) รวมทั้งนักข่าวหลายแห่งทั้ง Nation, สทท. อีกด้วยครับ รวม Blogger ทุกวงการมาในงานนี้ #DTV4ALL #ยามเฝ้าจอ pic.twitter.com/huxrxemyVg…
สร้าง 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 คือคำตอบ…
ทำขอบเฉียงด้วย 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() ซึ่งเป็นมาตรฐานที่สรุปแน่นอนแล้ว จะสามารถใช้คำสั่ง…
(Lite) Portfolio ผมก็มีกับเค้าแล้วนะ!
สวัสดีครับท่านผู้อ่าน หลังจากที่ผมหายไปนานมาก ส่วนใหญ่ก็ไปส่องสาวอยู่ใน Facebook เอ้ย! เรียนที่ภาควิชา CPE มาครบปีกับเป็นมือปืนรับเขียน Code ให้พี่ๆ ที่ภาควิชา (ใช่ครับ ผมเริ่มรับงานมาทำแล้วครับ แต่ยังเป็นงานเล็กๆ เงินไม่มาก เอาไว้เป็นประสบการณ์เท่านั้นเองครับ) ในที่สุดหลังจากที่ผมดองแล้วดองอีก เขียนแล้วก็ลบอีก ไม่เคยได้เสร็จกับเค้าสักที ในที่สุดก็ทำสรุปผลงานของผมเสร็จแล้วครับ (ปรบมือ!) ที่บอกว่าเป็น Lite ก็เพราะว่าเป็นแค่หน้ารวบรวมผลงานกับการแข่งขันแบบสรุปจบหน้าเดียวตามยุคสมัยครับ ตัวเต็มจะมีแสดงผลงาน ประวัติผม และข้อมูลอื่นๆ ครบครันกว่านี้ เพจนี้ผมใช้ Materialize เป็นโครงหลักครับ เพราะตัวมันเองมีน้ำหนักเบากว่า Bootstrap แต่ยังมีคุณสมบัติที่จำเป็นอยู่ครบครันเลยทีเดียว รวมถึงความสามารถในการทำ responsive design สำคัญเลยคือมันนำแนวทางจาก Google material desing มาค่อนข้างครบ การออกแบบจึงไม่ค่อยสาหัสสำหรับผมที่หัวศิลป์ไม่ค่อยมีครับ เพราะตัว material design มันสวยงามแบบเรขาคณิตของมันอยู่แล้ว การทุ่มเทจึงเน้นไปที่ทำให้ตัวเองไม่ขี้เกียจ เอ้ย! การเขียน CSS กับ Javascript ในการแสดงผลงานและตกแต่งมากกว่าครับ แน่นอนครับว่าแม้จะมีหลายอย่างที่มี library…
เมื่อผมไปฟังเสวนา 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…
Fullpage.js: เฮ! ได้ดั่งใจสั่งด้วย onleave และ YoutubeAPI
สวัสดีครับ หลังจากที่ทำหน้าประกาศผลค่าย Comcamp กันข้ามวันข้ามคืน ในที่สุดก็ทำจนเสร็จเรียบร้อยแล้ว ดีจมากครับที่หลายคนให้คำชื่นชมกันมาว่าสวย น่าใช้ สำหรับเรื่องที่จะนำเสนอวันนี้เป็น Gimmick เล็กๆ ที่ใส่ไว้ในหน้าประกาศว่าน้องติดค่าย คือส่วนก่อนหน้าจะเป็นส่วนล้อเลียน/แกล้งน้องกันก่อน แล้วพอลงมาหน้าล่างสุดก็เล่นวิดิโอแสดงความยินดี (นั่นคือที่มาของ เฮ! ขอหัวเรื่องนี้ครับ) โดยอัตโนมัตินั่นเอง ส่วนที่สำคัญในการทำตรงนี้มี 2 ส่วนครับ คือการเช็คว่าน้องเลื่อนมาหน้าล่างสุดแล้วหรือยัง กับส่วนที่ไปสั่งให้ Youtube เล่นตอนเลื่อนลงมาถึงและสั่งหยุดเมื่อเลื่อนพ้นหรือออกไปหน้าหลัก มาว่ากันที่ส่วนแรกก่อน ตาม Document ของ fullpage.js จะมีอีเวนต์ต่างๆ เช่นตอนที่เริ่มสร้าง element ตอนปรับขนาดหน้าจอ ส่วน event ที่เราจะใช้ก็คือ onLeave หรือตอนที่จะเลื่อน slide ไป slide อื่น จาก Code ที่ผมโชว์ให้เห็นตรงนี้ จะมี 3 parameters หลักๆ ก็คือเลขลำดับ slide ที่กำลังจะออก, เลขลำดับ slide ที่จะไปถึง…
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 ย่อย…