How to Upgrade npm on Windows

ถ้าใครใช้ Node.js บนวินโดวส์ น่าจะเคยเจอข้อความที่บอกว่า npm เวอร์ชันที่คุณใช้มันเก่าแล้วนะ ให้อัพเกรดโดยใช้คำสั่ง npm install -g npm ซึ่งถ้าลองรันดูก็จะพบว่า… มันอัพเกรดไม่ได้ 🙄 ที่ตลกคือ ถึงจะอัพเกรด Node.js เป็นเวอร์ชันล่าสุด npm ตัวที่มากับแพ็กเกจก็ยังไม่ใช่เวอร์ชันล่าสุดอยู่ดี 😒

ลอง Google ดูก็พบว่ามีคนทำ tools ไว้ให้ชื่อ npm-windows-upgrade ผมเคยลองใช้แล้วเวิร์กอยู่ แต่ล่าสุดมาลองอีกทีเมื่อประมาณเดือนที่แล้ว พบว่าใช้ไม่ได้ 😑 เดาว่าสาเหตุอาจจะเกิดจากตามที่เค้าเตือนไว้ในหน้า GitHub

Chances are that you attempted to upgrade npm before, it somehow failed, and you then went looking for this tool. If the tool fails to upgrade, it may be troubled by partial changes done during npm install npm or npm upgrade npm.

[Read More]

Let’s Encrypt Wildcard Certificate

วันนี้เพิ่งเห็นว่า Let’s Encrypt เปิดให้ใช้งาน Certificate แบบ Wildcard แล้ว เลยบ้าเห่อรีบเปลี่ยนอย่างไว (จริงๆ suksit.com ยังไม่มี subdomain จะเปลี่ยนทำไม 🤣)

การใช้ Wildcard Certificate มีเงื่อนไขนิดหน่อย คือต้องใช้ Client ที่รองรับ ACME v2 และจะเปลี่ยนจากการ validate แบบเดิม ไปใช้ DNS-01 Challenge แทน อย่างผมใช้ Certbot คำสั่งที่ใช้ในการสร้าง Wildcard Certificate จะเป็นประมาณนี้

[Read More]

Open Graph Protocol

เมื่อวานเพิ่งค้นพบว่ามันมีสิ่งที่เรียกว่าโปรโตคอล Open Graph อยู่ด้วย (เชยโคตรๆ 😅)

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

ทีแรกเข้าใจว่า LINE มันเอารูปแรกที่เจอในเว็บมาเป็น preview เลยพยายามเอารูปที่จะใช้ไปใส่ไว้บนๆ ของหน้าเว็บ แล้วตั้ง display: none; ไว้… แน่นอนว่าไม่เวิร์ก 😆 เลยลองวิธีต่อมา คือเอารูปไปใส่ไว้ตรง branding ของ navigation bar ด้านบนสุดเลย กะว่าถ้ามันอ่านมา ยังไงเจอรูปนี้ก่อนแน่นอน แต่ก็ยังไม่ได้ผลอยู่ดี

[Read More]

2018 Resolutions

  • Learn Go
  • Learn Kotlin to build Android app
  • Learn Python (network programming and pentesting)
  • Finish at least a book per month
  • Improve management skills
  • Contribute to open source projects
  • Dunno, may be added later… 😑

Udemy Notify

จริงๆ อันนี้ทำไว้และใช้งานมาประมาณเดือนนึงแล้ว เพิ่งจะหายขี้เกียจเลยมาอัพบล็อก 😅

เรื่องของเรื่องคือช่วงนี้เป็นสมาชิกกลุ่ม LINE หลายกลุ่มมาก หนึ่งในนั้นคือกลุ่ม Udemy Courses Free สำหรับไว้ติดตามคอร์สฟรีหรือคอร์สที่ลดราคาเหลือ $0 (100% Off) ใน Udemy โดยข้อมูลหลักๆ จะมาจากเว็บ Online Courses Update ของคุณ Tawatchai Saekuai (Boo) ประมาณว่าพออัพเดตเว็บแล้วคุณ Boo ก็จะก๊อปลิงก์มาแปะในกลุ่ม LINE ให้ด้วย 🤩

ทีนี้มีขาประจำกลุ่มอยู่คนนึง เห็นว่าผมทำ Packtpub Notify ไว้ น่าจะเอามาประยุกต์ใช้กับการแจ้งเตือนคอร์สฟรีได้ด้วย เลยไปคุยกับคุณ Boo แล้วได้ URL ของ RSS feed ของเว็บ Online Courses Update มาให้ผมลองทำ notification ดู

[Read More]

Packtpub Notify

ปกติทุกเช้าผมจะต้องเข้าไปที่หน้าแจกหนังสือฟรีของ Packt เพื่อดูว่าหนังสือฟรีวันนี้น่าสนใจไหม ประมาณว่าถ้าเก่าเกินก็ไม่เอา หรือถ้าเป็นเรื่องที่คาดว่าไม่น่าจะอ่านอยู่แล้วก็ไม่กด 😒 (แจกฟรีแล้วยังจะหยิ่งเลือกโหลดอีก ฮ่าๆๆ)

พอดีช่วงนี้กำลังหัดเขียนภาษา Go เลยอยากลองทำโปรแกรมง่ายๆ ที่มีประโยชน์ในชีวิตประจำวัน คิดไปคิดมาก็ออกมาเป็น Packtpub Notify นี่แหละ คอนเซปต์ก็ไม่มีอะไร แค่อ่านหน้าเว็บของ Packt แล้วส่ง notification ด้วย LINE Notify มาให้ผมทุกเช้า ว่าวันนี้มีหนังสืออะไร เป็นหน้าปก กับรายละเอียดนิดหน่อย ให้ตัดสินใจได้ว่าจะโหลดไหม 😆

[Read More]

Changing Docker Bridge Network IP

ตอนนี้เริ่มใช้งาน Docker แบบจริงจัง โดยตั้งเซิร์ฟเวอร์ Gogs สำหรับเก็บซอร์สโค้ดของทีมงาน แต่ปรากฏว่ามีบางหน่วยงานที่ไม่สามารถเรียกหน้าเว็บได้ ทีแรกนึกว่าเป็นที่ระบบเน็ตเวิร์ก แต่เช็คไปเช็คมาปรากฏว่าเป็นเพราะ Docker มันไปสร้าง bridge network interface เป็น IP วงเดียวกับที่ใช้ในอินทราเน็ตของที่ทำงาน 😑

จากที่ Google มาได้ความประมาณว่า default bridge network interface ของ Docker ในลินุกซ์ จะใช้ชื่อ docker0 และจะเป็นวง private IP ที่เริ่มจาก 172.17.0.0 (เดาว่าน่าจะกำหนดให้อยู่ใน private IPv4 address space) ซึ่งถ้ามีเครื่องจากภายนอกที่ใช้ IP วง 172.17.x.x พยายามติดต่อเข้ามา เซิร์ฟเวอร์จะงงและไม่ตอบกลับ

[Read More]

Redpill 2017

เมื่อวานมีโอกาสไปร่วมงานสัมมนา Redpill 2017 ที่ห้องประชุม 117 ตึก 3 คณะวิศวกรรมศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย ปีนี้เป็นการจัดงานร่วมกันระหว่าง 2600Thailand และสมาคมโปรแกรมเมอร์ไทย โดยมีธีมของงานคือ “Offensive Security” หัวข้อทั้งหมดในงานและรายชื่อ speaker ดูได้ในตารางท้ายบล็อกครับ

แน่นอนว่าไปสายตามระเบียบ 😅 ไปถึงก็กลางๆ session 3 เข้าไปแล้ว แถมเป็นเรื่องแนวที่ผมไม่ค่อยมีความรู้ด้วย เท่าที่พอจับใจความมาได้ก็ประมาณนี้

[Read More]

12 Reasons that Companies are Attacked

เมื่อวันศุกร์ที่ 4 กรกฎาคม ที่ผ่านมา ผมได้มีโอกาสไปร่วมงานสัมมนาวิชาการเนื่องในโอกาสวันสื่อสารแห่งชาติประจำปี 2560 หรือ NET 2017 ที่จัดโดย กสทช. และได้ฟัง keynote ของ Richard A. Clarke (เริ่มประมาณนาทีที่ 1:35:00) อดีตที่ปรึกษาด้าน Cybersecurity ของประธานาธิบดีสหรัฐฯ ในหัวข้อ “Cybersecurity: Challenges and Opportunities in the Digital Economy” พูดถึงสาเหตุหลักๆ 12 ประการที่ทำให้บริษัทหรือองค์กรถูกโจมตีด้านไซเบอร์ สรุปได้คร่าวๆ ดังนี้

[Read More]

My APrIGF 2017 Post is on APNIC

เกิดมาเพิ่งจะมีโอกาส go inter กับเค้าบ้างก็วันนี้ 😎 เพราะ APNIC ได้แปลบล็อกที่ผมเขียนถึง workshop ในงาน APrIGF 2017 เป็นภาษาอังกฤษ และโพสต์ไว้ที่ APrIGF 2017, Bangkok: Cybersecurity Incident Role Play

[Read More]