ชุบชีวิต Router เก่า ด้วย OpenWrt

ในขั้นตอนการออกแบบและวางระบบเครือข่ายต่าง ๆ ที่มีความซับซ้อน ปัจจัยหนึ่งที่เข้ามาเกี่ยวของกับการทำระบบเครือข่ายคือ อุปกรณ์เครือข่าย ที่จุดขายของอุปกรณ์คือความสามารถในการจัดการและรองรับ มาตรฐานทางเครือข่าย ต่าง ๆ ซึ่งแปรผันตามราคาของอุปกรณ์นั้นเองด้วย อุปกรณ์เครือข่ายที่ตกรุ่นหลายชิ้น ก็มักจบลงที่การเป็นขยะอิเล็กทรอนิก หรือเป็นวัตถุโบราณในครัวเรือน ในบทความนี้ เกิดจากที่ตัวผมเองต้องการวางระบบเครือข่ายใหม่ โดยมีการแบ่ง VLAN ให้กับอุปกรณ์ทั่วไปและ อุปกรณ์ IoT แต่ติดปัญหาที่ Wireless Router (ASUS RT-ARCH13) ที่มีอยู่นั้นไม่รองรับการทำ VLAN Tagging ผมจึงมองหาวิธีจัดการทำให้อุปกรณ์นี้ใช้งานได้โดยที่ไม่ต้องเปลี่ยนตัวอุปกรณ์ คำเตือน: การ Flash Firmware ที่ไม่ใช่ของบริษัทผู้ผลิต ทำให้อุปกรณ์หมดประกันทันที และมีความเสี่ยงที่อุปกรณ์เสียหายได้ (Brick) ควรศึกษารายละเอียดและขั้นตอนการติดตั้งอย่างละเอียด และ ศึกษาขั้นตอนการกู้คืน (Recovery) ทางผู้เขียนไม่รับผิดชอบในทุกกรณี (AT YOUR OWN RISK) เนื้อหาที่จะพูดถึงในบทความนี้ OpenWrt คืออะไร วิธีการตรวจสอบอุปกรณ์ที่ OpenWrt รองรับ การติดตั้ง (Flash) OpenWrt …

เราได้อะไรจากการเที่ยวคนเดียว ? [ไอบ้า กับโอซาก้า 5 วัน]

ความกล้าที่จะออกจาก Comfort Zone “อย่าให้การรอคนอื่นพร้อม ทำให้ความฝันของเราไม่เป็นจริง” – เพจคำคมสักเพจบน Facebook – นี่เป็นประโยคหนึ่งที่ทำให้ผมตัดสินใจเลือกที่จะจองตั๋วไปเที่ยวโอซาก้า พร้อมกับคำติง จากคุณหมอ ว่าคุณควรหาเวลาพักการใช้มือทำงานของคุณบ้าง (ผมมีอาการเส้นประสาทบีบรัด ทำให้เกิดนิ้วล็อก จากการนั่งทำงานกับคีย์บอร์ด และ เมาส์ที่ไม่เข้ากะรูปมือ) ตอนนั้นก็เป็นความรู้สึกที่มันโหวง ๆ มึน ๆ จนผมคิดว่าผมต้องทำอะไรซักอย่างแล้ว จึงเกิดเป็นทริปนี้ขึ้นมา ผมคิดว่า Comfort Zone ของผม หรือหลาย ๆ คน คือการที่เรากลัวการไปเที่ยวคนเดียว แต่การไปคาดหวังให้คนอื่นมีเวลาว่างพร้อมกับเราก็ไม่ใช่เรื่องง่าย ผมเลยตัดสินใจเที่ยวคนเดียวไปเลย แล้ว . . . เราจะเริ่มต้นยังไงดีละ . . . ตอนนั้นนั่งว้าเหว่ในร้านกาแฟร้านหนึ่ง เริ่มจากเปิดดูเพจท่องเที่ยว แล้วไปพบกับโปรโมชันของ JAL (Japan Airline) พร้อมกับที่พัก ซึ่งตอนนั้นผมซื้อผ่าน Expedia (เอาจริง ๆ ถ้าจองแยกเองจะได้ถูกกว่าครับ) ตอนนั้นลังเลมาก …

มีอะไรใหม่ใน Docker for Mac 2018-07-25

จากอัพเดทล่าสุดของ Docker for Mac วันที่ 25 กรกฎาคม 2018 ตาม Change Logs ผมก็ได้ทำการรวบรวมข้อมูลเฉพาะส่วนที่เป็น New Features มาให้ดูกันคร่าว ๆ Kubernetes บน Docker for Mac แบบอยู่บน Stable Release (เย้!) เปิดใช้ได้เลยจาก Docker Preferences > Kubernetes > เลือก Enable Kubernetes แล้วเลือก Kubernetes เป็น Default orchestrator แล้วก็กด Apply หลังจากที่ระบบสร้าง kubernetes เสร็จแล้วก็ใช้งานได้เลย ผ่าน kubectl ปกติ SOCKS Proxy สำหรับเข้าถึง Network ภายใน Docker ได้โดยตรง ปกติใน Docker …

ทำ Custom Domain ใน Docker แบบใช้ท่า docker-compose

คุณเคยประสบปัญหาแบบนี้ไหม ออกแบบระบบให้ยืดหยุ่นด้วยการเชื่อมต่อแต่ละ Service ผ่าน domain แต่พอจะทำ development environment มันช่างหน้าปวดหัว อยากจะเปลี่ยน domain ที่ใช้เรียกหากันใน docker service เหลือเกินนนน ทำไมต้องมานั่งทำ Reverse Proxy เพื่อให้ได้ Environment ที่เหมือน Production วันนี้เรามีสิ่งดีๆมานำเสนอ ที่มาคือมาจากตอนที่ผมกำลังทำ dev-environment บน local เป็น WordPress Platform ของ Pronto เอง เพื่อให้เราสามารถเทสพวก WordPress ที่เหมือนโปรดักชันในเครื่องเราเอง ทีนี้เพื่อความยืดหยุ่น เราได้ทำการเปลี่ยนการเชื่อมต่อ Service ต่างๆ แทนที่จะเป็นการ Point หา IP Address มาเป็นการ Point ไปที่ DNS เพื่อความยืดหยุ่นในหารเปลี่ยนแปลง ทีนี้พอมาทำเป็น Local Dev Environment เนี่ย …

ถ้าเขียนโค้ดแล้วมันสนุกทำไมเราจะไม่อยากเขียน

เมื่ออาทิตย์ก่อนผมได้มีโปรเจ็กทำขำๆ กันกะพี่ เคลวิน เราแค่ต้องการทำอะไรก็ได้ที่เราถนัด และ Work เป็นแค่โปรแกรมง่ายๆที่ไปตามเช็คราคามือถือ และคอยรายงานเมื่อมีการเปลี่ยนแปลงราคา เราทำเล่นๆกันเพราะเราอยากจะซื้อมือถือรุ่นเดียวกัน (รายละเอียดเดียวจะเขียนอีกทีตอนที่ซื้อมือถือกันละ 555) ทีแรกผมก็ใช้แค่ IFTTT ง่ายๆนี่แหละครับ มันก็ง่ายดีนะ ผมนั่งทำ applet ที่เอามาเป็น API สำหรับส่ง Line ได้ ผ่าน iPad เลย(ทำผ่านเว็บ IFTTT เลย) หลังจากนั้นก็มีทำเช็ค RSS Feed ของเว็บบอร์ดเพื่อตามอัพเดทรอมของมือถือ แต่มันไม่ได้ตอบโจทย์การใช้งานเลย คือมันมาทุกอัพเดท Post หรือ Reply เลยทำให้ต้องลงมาโค้ดเอง ผมก็เลยเริ่มที่จะมาโค้ดด้วยภาษาที่ตัวเองสบายใจ และถนัดที่สุด นั่นคือ Python ทีแรกกะว่าจะเสร็จภายใน 2-3 ชม. พอทำไปเรื่อยๆเราก็สนุกไปกับมัน มันทำให้เรารู้สึกเหมือนเราเป็นพ่อมดอะ มันเพลิน มันฟิน มันทำไปได้เรื่อยๆ กว่าจะเสร็จอีกทีก็ผ่านไป 5 ชั่วโมงแล้ว นั่นมันทำให้ผมนึกถึงตอนช่วงที่เรียนอยู่ครับ ในชีวิตการเรียนมหาลัย 4 …

ชีวิตดี โค้ดดี งานดี สุขภาพดี

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

[ขำขัน] ใช้ Slack แจ้งเตือนเมื่อรัน Command บนเครื่องเซิฟเวอร์เสร็จ

เคยไหมครับที่เราจะต้องรันคำสั่งบางคำสั่งที่ทำงานนานๆ อย่างเช่น dump database ขนาดมหึมา หรืออื่นๆ คืองานพวกนี้เราไม่ได้ต้องทำบ่อยๆ เวลาทำก็รันคำสั่งทิ้งไว้ใน Tmux แล้วก็ไปทำอะไรเพลิน กลับมาเช็คเรื่อยๆ ด้วยความขี้เกียจ เลยคิดว่าเราน่าจะมีอะไรมาเตือนเนอะ ว่า Command นั้นรันเสร็จรึยัง หรือ พังไหม เลยพาลไปนึกถึง Slack ซึ่ง mesodiar เคยเขียนไว้ เรื่อง [Cron] เขียน slackbot ส่ง notification เตือน standup meeting เลยคิดว่าน่าจะเอามาทำอะไรเล่นๆได้เร็วเพราะมีโค้ดมาเลย เอามายำๆ มาเริ่มกันดีกว่า เริ่มแรก เราจะสร้าง virtualenv และ virtualenvwrapper มาเพื่อไม่ให้โปรเจ็กของเราไปกระทบกับ python ของเครื่อง และจะได้ง่ายในการจัดการหรือพัฒนาต่อ $ mkvirtualenv lazy-bot ลง Slack API ใน virtualenv (lazy-bot) $ pip …

ทดลองสร้าง SSL Certificate บน Nginx .

รอบนี้เราจะมาทดลองทำ SSL Certificate ให้เว็บไซต์ของเราปลอดภัยขึ้นไปอีกนิดนึงบน nginx ครับ โดยจะพูดถึง SSL ก่อนนะครับ SSL ย่อมาจาก Secure Socker Layer ซึ่งได้ถูกพัฒนามาเป็น TLS(Transport Layer Security) ที่เป็นเทคโนโลยีการเข้ารหัสข้อมูล เพื่อให้การส่งข้อมูลผ่านเครือข่ายมีความปลอดภัยมากขึ้น โดยเรียกผ่านโปรโตคอลความปลอดภัยต่างๆ ตามการใช้งาน ที่อาจจะเคยได้ยินกันบ่อยๆเช่น HTTPS การที่เราสร้าง SSL ขึ้นมาเองเพื่อการทดลองนั้น จะเรียกว่าเป็น SSL แบบ Self-signed ซึ่งเป็นใบรับรองที่ใช้คอมพิวเตอร์เครื่องไหนสร้างก็ได้ แต่จะไม่ผ่านการรับรองจาก CA (Certification authority) ในการเข้ารหัส Certifacte Authority (CA) เป็นคนที่ออกใบรับรองดิจิตอล ใบรับรองดิจิตอลรับรองความเป็นเจ้าของ Public Key โดยมีชื่อเรื่องของใบรับรอง ใบรับรองอนุญาตให้คนอื่นใช้งานได้ โดยขึ้นอยู่กับลายเซ็นหรือยืนยันตัวโดยการทำ private key ที่สอดคล้องกับ public key ที่ถูกรับรอง ในรูปแบบความสัมพันธ์ที่เชื่อถือได้นี้ CA เป็นบุคคลที่สามที่เชื่อถือได้ …

Redirect ด้วยการใช้ rewrite บน nginx

จากบทความทีแล้ว ที่พูดถึงการทำ Redirect แบบ server block จาก domain หนึ่งไปหาอีก domain หนึ่ง คราวนี้เราจะมาพูดถึงการใช้คำสั่ง rewrite มาเพื่อ Redirect จาก domain เดียวกันแต่จะทำการเปลี่ยน slug (slug คือ สิ่งที่ต่อท้ายจาก domain หลัง “/”) ในการทำงานของผมนั้นจะยุ่งเกี่ยวกับการทำ SEO ให้กับลูกค้าด้วย ซึ่งเค้าอาจจะมี URL มาชุดหนึ่งที่ได้ซื้อมา แล้วต้องการให้ traffic ที่เข้ามานั้น ถูก redirect ไปยัง url ที่ต้องการ ในที่นี้ผมจะยกตัวอย่างโดยการที่ผมจะ redirect จาก rules ชุดหนึ่ง คือ http://sites1.com/blog-for-something/ ไปที่ http://sites1.com/blog/ http://sites1.com/who-am-i/ ไปที่ http://sites1.com/about-us/ http://sites1.com/eiei/ ไปที่ http://sites1.com/blog/ โดยผมจะเริ่มจากการเข้าไปสร้างไฟล์ …

[แชร์ประสบการณ์] ฝึกงานปากมันที่ PRONTO TOOLS

ช่วงเวลาปิดเทอมใหญ่ของนักศึกษาชั้นปีที่ 3 ที่ไม่ใช่ปิดเทอมใหญ่ปกติเหมือนที่เคยเจอมา กับงานที่ได้รับมอบหมายจากคณะที่ให้เราได้ไปลองฝึกงานเรียนรู้ประสบการณ์การทำงานจริง ในตอนนั้นไอ้นัตก็กำลังตื่นเต้นรอวันที่จะได้เริ่มต้นฝึกงานสักที เมื่อเข้าสู่วันที่ 1 มิถุนายน 2559 ความสนุกทั้งหมดจึงบังเกิด บรรยากาศออฟฟิต แบบ 360 ช่วยด้วยยย โดนแฝดรังแก   ในการฝึกงานของที่นี่วันก็ได้มาเจอเพื่อนๆที่มาฝึกงานด้วยกันก็ ตื่นเต้นดี๊ด๊า เพื่อนๆน่าร๊ากกกกก พี่ๆก็น่าร๊ากกกก   เด็กโข่งคนซ้ายมือสุดนั่นไม่เกี่ยว อิอิ   เริ่มมาถึงที่นี่เราก็ถึงกับร้องว้าว กับตู้เย็นคลังแสงเพิ่มพลังการทำงาน ซึ่งแรกๆก็เกร็งๆนะไม่กล้าไปหยิบอะไรมากิน เขิน -///-   แถมมีของกินอื่นๆอีกมากมาย ขนมปังกับท้อปปิ้งมากมาย หยิบได้ตลอด… แรกๆก็เขินๆเช่นกัน หลังจากนั้นพี่ๆก็เริ่มทำงานเทรน และ สอน ทักษะพื้นฐานต่างๆ อาธิ Python, Git, HTML, CSS, Bootstrap, Vagrant, Vim, Jenkins, TDD, ATDD การใช้ชีวิต ฯลฯ (อยากรู้มาลอง อิอิ) เพื่อเตรียมตัวก่อนไปทำงานกับทีม (หัวร้อนเลย) …