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