DIY `laravel new` Command

เมื่อซัก 1–2 อาทิตย์ที่แล้ว พบปัญหาประหลาดกับคำสั่ง

laravel new <project-name>

โดยเมื่อรันคำสั่งดังกล่าว จะเจอ error ประมาณนี้

$ laravel new test-project
Crafting application...
'composer' is not recognized as an internal or external command,
operable program or batch file.
Application ready! Build something amazing.

คืออยู่ดีๆ เหมือนมันหาคำสั่ง composer ไม่เจอ ก็งงสิครับ เพราะแต่ก่อนคำสั่งนี้ (laravel new …) มันเคยใช้งานได้ หรือถ้าลองเรียก composer เฉยๆ ใน Git Bash มันก็ยังทำงานได้ปกติ 😅

เช็คไปเช็คมา เลยพบว่ามันเกิดจาก 2–3 สาเหตุร่วมกันคือ

[Read More]

Holistic Security

วันนี้มีโอกาสได้ไปร่วมสัมมนา Roundtable เรื่อง “The Future of Cybersecurity is Physical” ที่จัดโดยบริษัท Accenture ในงาน Asian Utility Week 2018 ที่ Impact Exhibition Hall 1–2 ฟังโดยรวมแล้วก็เหมือนเป็นแนวคิด/Solution ที่ดี แต่ยังรู้สึกตะหงิดๆ อยู่ เลยขอจดไว้ก่อน เผื่อนึกอะไรออกวันหลัง 😑

ก่อนเริ่มการนำเสนอ เค้าเปิดวิดีโอนี้ให้ดู

TL;DW ประมาณว่าเป็นวิดีโอของกลุ่มแฮ็กเกอร์ที่ได้รับการว่าจ้างให้ลองโจมตีหน่วยงานด้านพลังงานแห่งหนึ่งในอเมริกา โดยเริ่มตั้งแต่การพยายามบุกรุกเข้าไปในตัวอาคาร ผ่านล็อก รั้ว ประตู ลองเปิดรถที่จอดทิ้งไว้อยู่เพื่อหาบัตร ฯลฯ จนสามารถเข้าไปวางอุปกรณ์/มัลแวร์ในเครื่องพีซีของบริษัทได้ มีการใช้โดรนบินสำรวจเพื่อหาจุดบอดของกล้อง Infrared CCTV อะไรทำนองนี้

[Read More]

Writing BAHTTEXT() in PHP

เมื่อวันก่อนมีคนมาโพสต์ถามใน LINE ว่า จะเขียนโค้ด PHP เพื่อแปลงค่าเงินเป็นตัวหนังสือให้สั้นๆ เหมือนโค้ด FoxPro ที่แปะให้ดูเป็นตัวอย่างได้ไหม

FUNCTION spell

PARAMETER Vn
Va = STRT(TRAN(Vn,'@R G9A9B9C9D9E9F9A9B9C9D9E9F9.9F9S'),' F0.','')

RETURN STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(;
STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(;
SUBS(Va,RAT(' ',Va)+2,35),'1','หนึ่ง'),'2','สอง'),'3','สาม'),'4','สี่'),;
'5','ห้า'),'6','หก'),'7','เจ็ด'),'8','แปด'),'9','เก้า'),'.0F0S','บาทถ้วน'),;
'0F',''),'0E',''),'0D',''),'0C',''),'0B',''),'0',''),'A','ล้าน'),;
'B','แสน'),'C','หมื่น'),'D','พัน'),'E','ร้อย'),'F','สิบ'),'.','บาท'),;
'หนึ่งสิบ','สิบ'),'สองสิบ','ยี่สิบ'),'สิบหนึ่ง','สิบเอ็ด'),'S','สตางค์')

รู้สึกว่าน่าสนใจดีเลยลองเขียนดู แน่นอนว่าออกมาไม่ใกล้เคียงกับคำว่าสั้น 😅 แต่ก็สนุกดีและใช้งานได้ เลยขอจดเก็บไว้หน่อย รูปแบบการทำงานของฟังก์ชันพยายามลอกของ Excel มา คือปัดทศนิยมเป็นสองตำแหน่ง รองรับค่าลบ ค่าศูนย์ และตัวเลขยาวๆ ได้ (เท่าที่ทดสอบด้วย PHPUnit คือที่ระดับ 1×1012 ยังโอเคอยู่) หน้าตาโค้ดก็ประมาณนี้

[Read More]
php  bahttext  rant  code 

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… 😑

My APrIGF 2017 Post is on APNIC

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

[Read More]

I Paid for WinRAR

ผมซื้อไลเซนส์ WinRAR !!! 😱

เมื่อคืน WinRAR มีหน้าต่างเด้งเตือนว่าครบกำหนด trial 40 วันแล้ว จะซื้อไหม แถมเสนอราคาโปรโมชัน ลดจาก $29 เหลือ $20 เลยกดซื้อไปแบบเบลอๆ จ่ายด้วย PayPal คิดเป็นเงินไทยก็ประมาณ ฿700 พอดี

คนที่ใช้ WinRAR แบบไม่ได้ crack จะเป็นที่รู้กันว่า พอหมดช่วง trial 40 วัน มันจะมี popup ขึ้นมาเตือนให้ซื้อ license อยู่ตลอด แต่เราสามารถกดปิด popup แล้วใช้งานต่อได้ตามปกติ ซึ่งว่ากันจริงๆ ก็เหมือนกับสามารถใช้ฟรีได้ตลอดชีพนั่นแหละ

[Read More]

APrIGF Bangkok 2017 Cybersecurity Incident Role Play

วันนี้ได้มีโอกาสไปร่วมงาน APrIGF Bangkok 2017 ที่อาคารมหิตลาธิเบศร จุฬาลงกรณ์มหาวิทยาลัย ในช่วง session Cybersecurity Incident Role Play พบว่าเป็นประสบการณ์ที่ดี (แม้ว่าจะไม่ได้มีส่วนร่วมแชร์อะไรกับชาวโลกเค้าเลยก็ตาม 😆)

ลักษณะของ session จะเป็นแบบให้ผู้เข้าร่วม workshop มาเล่นสวมบทบาทเป็นหน่วยงานต่างๆ ในบริษัทแห่งหนึ่ง ซึ่งในบริษัทนี้จะประกอบด้วยสี่กลุ่มคือ Management, IT, Legal, และ Communication ตัวผมเองได้ไปนั่งงงๆ อยู่ในกลุ่ม Communication 😵

ส่วนผู้ดำเนินรายการมีทั้งหมด 5 คน โดยผู้ดำเนินรายการหลัก คือ @adliwahid คนนี้ฮามาก เป็น Security Specialist จาก APNIC และจะมีอีก 4 คนประจำอยู่แต่ละกลุ่ม หนึ่งในสี่คนนี้คือ @kitisak ซึ่งปัจจุบันเป็นที่ปรึกษาด้าน information security ให้กับ Thai Banker’s Association และเป็นผู้แนะนำให้ผมมาร่วมงานนี้ด้วย

[Read More]

I'm Back… Sort of

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

ส่วนเครื่องมือที่ใช้ ทีแรกก็ลังเลอยู่ว่าจะใช้ static site generator หรือใช้ Vue.js เขียนเป็น single page application ดี เผื่อจะอัพเกรดเป็น progressive web app ในอนาคตด้วย แต่ยังรู้สึกแปลกๆ อยู่ว่าแค่บล็อก ทำไมต้องทำเป็น SPA บวกกับความขี้เกียจ สุดท้ายเลยมาลงที่ Hugo 😆

[Read More]
rant