สอนใช้ Facebook Comment Moderation Tools เบื้องต้น และการทำ Comment Mirroring

วันนี้เราจะมาสอน Facebook Comment Moderation Tool ถ้าถามว่ามันคืออะไร มันคือเครื่องมือจัดการ Comment ของ Facebook ที่เกิดจาก Facebook Comments Plugin (ถ้ายังไม่รู้จัก มันคือกล่อง Comment Facebook ที่ประกฏบนเว็บต่างๆ เช่นเว็บนี้เป็นต้น ลองเลื่อนไปดูตัวอย่างด้านล่างได้ครับ) โดยเครื่องมือนี้นอกสามารถลบ Comment ต่างๆที่ไม่ต้องการได้แล้ว ยังมีฟีเจอร์บางอันที่หลายๆคนไม่รู้มาแนะนำด้วย ซึ่งมันคือการตั้ง Blacklist คำ และ Mirroring Comment

การตั้งค่าการใช้ Facebook Comment Moderation Tool

  1. ติดตั้ง Facebook Comment Plugins ให้กับหน้าต่างๆ ตามปกติ  (ในบทความขอไม่สอนวิธีการเอา Comment Plugins มาใส่ในนะครับ ถ้าใช้ WordPress จะมี plugins เยอะแยะ)
  2. ตั้งค่า Admin มี 2 วิธีคือ
    1. ไปสร้าง app facebook (ดูวิธีสร้าง app ได้ที่นี่) แล้วใส่คำสั่งนี้ลงใน <head> ของทุกหน้า

       
    2. ใส่เป็น Facebook user id โดยใส่คำสั่งนี้ลงใน <head> เช่นกัน

      ถ้ามีคนเดียวก็ใส่บรรทัดเดียว มี 2 คนก็ใส่ 2 บรรทัด มีกี่คนก็ใส่ไปเท่านั้นคน

      โดยส่วนตัวแนะนำวิธีสร้าง App ID มากกว่า ครับ เพราะใช้ Facebook Comment Mirror ได้ และถ้าใช้ WordPress และลง Plugin Yoast SEO สามารถนำ App ID ไปใส่ใน Yoast SEO ได้เลย ในหน้า Social – Yoast SEO ในแทบ Facebook จะมีช่องให้ใส่ Facebook App ID ได้เลยครับ ไม่ต้องแก้ Code ใดๆ

  3. สำหรับคนใช้แบบ App ID ต้องไปเช็คการตั้งค่าใน Facebook For Developer ในส่วนของ App โดยกดเข้าไปใน Facebook App ที่เราผูกกับเว็บไซต์ไว้ (app id ที่เราเอาไปใส่ใน head) ให้เข้าไปที่ Settings > Advanced และให้เปิดตัวเลือก Social Discovery เพื่อให้คนที่ไม่ได้ Login facebook สามารถมองเห็น Comment ได้
    เปิด Social Discovery ใน Settings ของ App

วิธีใช้ Facebook Comment Moderation Tool เบื้องต้น

  1. ให้เข้าไปที่หน้า Facebook Comment Moderation Tool
  2. เมื่อเข้าไปแล้วจะพบหน้าตาดังนี้ (หากมี Comment อยู่)
    หน้าตาของ Facebook Comment Moderation Toolโดยจากภาพส่วนที่แสดงต่างๆมีดังนี้

    1. เอาไว้เปลี่ยน App หรือเว็บกรณีมีมากกว่า 1 เว็บ
    2. เป็นลิงค์เพื่อไปดูบทความหรือหน้าต้นฉบับ ว่าเนื้อหาเป็นอะไร
    3. เป็นส่วนจัดการต่าง โดยไล่จากซ้ายไปขวาคือ
      1. Approve สำหรับยินยอมให้เนื้อหานั้นแสดงผลบนเว็บเรา (หากเปิด Public ไว้จะไม่มีผลใดๆ ไม่ต้องกดก็แสดงอยู่ดี)
      2. Hide คือซ่อนความเห็นนั้นไม่ให้แสดง
      3. Report Spam ตามชื่อ คือบอก Facebook ว่า Comment เป็น Spam
      4. More ในปัจจุบันในเมนูนี้ผมไม่เห็นตัวเลือกอื่นนอกจาก Ban User ให้ไม่สามารถมาโพสในเว็บเราได้อีกต่อไป
    4. Settings เป็นการตั้งค่าต่างซึ่งจะอธิบายในหัวข้อต่อไป
  3. พอดีทำรูปเสร็จเพิ่งเห็นขี้เกียจแก้รูป ขออธิบายตรงนี้นะครับ ข้างล่างหัวข้อ 1 จากภาพด้านบนจะมีแทปต่างๆ ให้เราดู โดยแต่ละอันมีความหมายดังนี้
    1. Review คือรอการตรวจสอบ ถ้าเรากด Approve จะไป Public (แต่ถ้าตั้ง Public ไว้ไม่ต้องกดมันก็แสดงให้คนอื่นเห็น)
    2. Public คือ Comment ที่แสดงบนเว็บแล้ว
    3. Hidden ความเห็นที่ถูกซ่อน
    4. Flagged กับ My Queue ไม่เคยใช้ครับ ใครรู้บอกด้านล่างทีครับ T_T

ค่าต่างๆที่สามารถตั้งได้ในหน้า Settings ของ Facebook Comment Moderation Tool

หน้า Settings

หน้า Settings ของ Facebook Comment moderation tool

ในหน้านี้จะมีให้ปรับดังนี้ (ไล่จากบนลงล่าง)

  1. เรียง Comment ตามอะไร โดย
    – Top คือให้ Facebook เป็นเลือก ว่าอันไหนดีที่สุด
    – Newsest คือจะเห็นใหม่สุดก่อน
    – Oldest คือแสดงเก่าสุดก่อน
  2. Enable Attachments คือการอนุญาติให้ผู้ใช้คอมเม้นเป็นภาพหรือ Sticker ได้
  3. Enable Notifications คือบอกว่าถ้ามีคน Comment บนเว็บเราให้แจ้งเตือนในเฟสเราไหม
  4. Comment Mirroring จะขึ้นเมื่อใช้ Admin เป็นแบบ App เท่านั้น มันคือฟีเจอร์ที่ Facebook ทำไว้ให้ โดยความสามารถของมันคือตามชื่อมันคือการส่ง Comment ที่โพสบนเว็บ ไปแสดงบน Post ที่แชร์ URL นั้นบน Page ที่เราเลือก และหากมีคน Comment บน Post ที่แชร์ URL นั้นบน Page ที่เราเลือก ก็จะไปแสดงบนเว็บของเราด้วยเช่นกันครับ (แต่ใช้ได้เฉพาะหน้าใหม่ๆ ที่ Facebook ไม่เคยเห็น ถ้าเป็นหน้าเก่าที่เคยแชร์แล้วจะไม่มีผล)

หน้า Moderation Rules

หน้า Moderation Rules ของ Facebook Comment moderation tool

ในหน้านี้จะตั้งค่า

  1. ความยาวสูงสุดต่อ Comment อย่างของผมคือ 5000 ตัวอักษร
  2. ตั้งค่าปิดไม่ให้ Comment หลัง Facebook เจอบทความนั้นไปแล้วกี่วัน (การเจอของมันเช่นมีคนไลค์ หรือแชร์)
  3. เปิด Mode Spam Filter แบบ Aggressive อันนี้อธิบายง่ายๆคือเพิ่มระดับ Spam Filter ให้สูงขึ้น ทำให้บางครั้งอาจจะไป Filter เอา Comment จริงๆออกด้วย ไม่แนะนำให้เปิด
  4. ตรวจว่ามีกี่ลิงค์ใน Comment ถ้ามีมากกว่าที่เรากำหนด ให้เราต้องมาตรวจก่อน ถึงจะแสดงได้
  5. ตั้งค่าการตรวจสอบ โดยแต่ละอันหมายถึง
    1. Public = เปิดกว้างคือ Comment ปุปขึ้นเลยไม่มีการตรวจสอบ ถึงมี Blacklist Word ก็แสดงอยู่ดี
    2. Review Blacklisted Comments = แสดงทั้งหมด ยกเว้น Comment ที่มี Blacklist Word ซึ่งเราจะต้องตรวจสอบก่อนแสดง (วิธีตั้ง Blacklist จะสอนในหัวข้อถัดๆไป) แนะนำอันนี้ครับ
    3. Closed = ซ่อนทุกความเห็น Comment ที่ไม่มี Blacklist Word เท่านั้น ถ้ามีจะถูกลบไปเลย ถึงจะแสดงใน Review และต้องกด Approve ทุก Comment ถึงจะแสดง

หน้า Moderators

หน้านี้เอาไว้ตั้งว่าใครบ้างที่สามารถตรวจสอบ Comment ได้

หน้า Blacklist

หน้า Blacklist ของ Facebook Comment moderation tool

หน้านี้เอาไว้ตั้ง Blacklist Word โดยแนะนำว่าการตั้งจะต้องนำหน้าและตามหลังด้วย .* เช่นเราจะห้ามคำว่า มีเวลาว่าง (เอามาจาก “มีเวลาว่าง 2 – 3 ชม ไหม”) ผมต้องใส่ไปว่า .*มีเวลาว่าง.* จากนั้นให้กด Enter 1 ที หากถูกต้องจากขึ้นประมาณนี้ (ของผมมี 3 คำ ใส่ไปเป็นตัวอย่าง)
ตัวอย่างการตั้ง Blacklist Word ใน Facebook Comment moderation tool

หน้า Banned Users

ตามชื่อเลยครับ เป็นหน้าสำหรับตั้งค่าว่าใครถูกแบนไม่ให้ Comment ในเว็บเราบ้าง สามารถใส่ชื่อไปได้เลยครับ

วิธีปิดกล่อง Comment ตรงกล่อง Chat ของ Facebook (Post Tabs)

วันนี้ผมเพิ่งได้อับเดตตัวใหม่จาก Facebook ที่ทำให้เมื่อมีคนคอมเม้นที่โพสที่ผมเกี่ยวข้อง มันจะมาเด้งเปรียบเสมือน chat ตัวหนึ่ง ซึ่งผมไม่ชอบ และจะปิดมัน และผมคิดว่าหลายๆคนก็น่าจะไม่ชอบมันเช่นกัน ดังนั้นเลยนำวิธีมาบอกครับ

ก่อนอื่นสำหรับคนที่ไม่รู้ว่า Facebook Post Tabs หรือไอ้กล่องคอมเม้นที่ช่องแชทคืออะไร ให้ดูภาพนี้ครับ

ตัวอย่าง facebook post tab

กล่องใหญ่ๆด้านซ้ายนั่นแหละครับ มันจะขึ้นมาทุกครั้งที่มีคอมเม้นที่เกี่ยวข้องกับเราขึ้นมา

วิธีปิด Facebook Post Tabs

  1. ให้กดรูปเฟืองตรงมุมขวาล่างในหน้า Facebook(อยู่ในแถบด้านขวา ตรงกล่องค้นหาคนจะคุยด้วย)
  2. กด Turn Off Post Tabs เท่านี้ ก็จะไม่มีคอมเม้นมาแสดงในแถบแชทอีกต่อไปครับ
    กด Turn Off Post Tabs เพื่อปิดกล่องคอมเม้นที่แถบแชท

วิธีใช้ภาษาไทยบน Laravel ด้วย laravel-dompdf โดยการเพิ่ม font ภาษาไทยลงไป

บทความนี้เกิดจากคำถามในกลุ่ม Laravel Thailand ซึ่งพบบ่อยพอสมควรว่าจะสร้าง PDF ภาษาไทยยังไง ก็เลยเขียนขึ้นมาซะเลย โดยในบทความนี้จะใช้ laravel-dompdf เป็นหลัก

วิธีการเพิ่ม font ภาษาไทยลง laravel-dompdf

เตรียมโปรเจคสำหรับทดสอบ

ส่วนนี้จะสอนลง laravel-dompdf กับสร้าง PDF แบบพังๆขึ้นมา 1 ตัวเพื่อใช้ทดสอบ ถ้าทำเป็นแล้วข้ามไปได้เลยครับ

  1. ก่อนอื่นก็ต้องลง Laravel แบบปกติก่อน (ไม่สอนนะ น่าจะทำกันเองเป็น) ในเวอร์ชันนี้ผมใช้ Laravel 5.4 แต่คิดว่าตระกูล 5.x สามารถใช้ได้เหมือนกันหมด
  2. สร้างโฟลเดอร์ storage/fonts และแก้ไข permission ให้สามารถเขียนได้ (โดยทั่วไปคือ 0777)
  3. ติดตั้ง laravel-dompdf โดยมีขั้นตอนดังนี้
    1. สั่ง
    2. แก้ไขไฟล์ config/app.php โดยเพิ่ม

      ลงไปในส่วนของ providers

      และเพิ่ม

      ลงในส่วนของ aliases

  4. สร้างหน้าทดลองสำหรับใช้ PDF (ในขั้นนี้ต้องประยุกต์เอาเองตามความต้องการ หากมีอยู่แล้วข้ามไปข้อ 4 ได้เลย)
    1. สร้าง view สำหรับทดสอบ โดยในตัวอย่างของผมคือ invoice.blade.php ใน resources/views/pdf โดยมีเนื้อหาดังนี้

    2. สร้าง route หรือ controller ในการสร้าง pdf (เนื่องจากเป็นตัวอย่าง เลยทำเป็น route ง่ายๆ)

      ในบรรทัดที่ 8 จำเป็นต้องใส่ @ นำหน้า เพื่อปิด error บางตัว ที่อาจจะเกิดจากการหา fonts ไม่เจอ

    3. หลังจากที่ทำตามข้างบนแล้วจะพบว่าเมื่อเข้าไปภาษาไทยยังเป็นเครื่องหมายตกใจอยู่ เพราะข้างบนนั้นยังไม่ได้ทำให้รองรับภาษาไทย
      laravel-dompdf ยังไม่รองรับภาษาไทย

ปรับ laravel dompdf ให้สามารถใช้งาน font ภาษาไทยได้

ในขั้นนี้จะเป็นขั้นตอนจริงๆ เพื่อทำให้ laravel-dompdf รองรับภาษาไทยในการ render ต้องทำตามขั้นตอนต่อไปนี้เพื่อให้รองรับภาษาไทย โดยขั้นตอนนี้เป็นแบบง่าย ซึ่งในการสร้าง pdf ครั้งแรกสุดอาจจะทำให้ช้าได้ โดย font ไทยในครั้งนี้ผมเลือกใช้ THSarabunNew ครับ (ถ้าอยากดาวโหลดมาทำการทดสอบ สามารถดาวโหลดได้จากที่นี่)

  1. ให้สร้างโฟลเดอร์ชื่อ fonts ใน public และนำ font ทั้งหมดไปใส่ไว้ ดังรูป
  2. แก้ไขในส่วนของ views โดยเพิ่ม tag meta ลงไปใน head ของ invoice.blade.php จะได้เป็น
  3. เพิ่ม tag style เพื่อประกาศ fonts แบบ runtime และบอกให้ทั้งเอกสารใช้ fonts นั้น วิธีการคือให้แก้ไข  invoice.blade.php ให้เป็นดังนี้

    โดยส่วนของการประกาศ fonts คือบรรทัดที่ 6 – 10 ส่วนสำคัญคือบรรทัดที่ 10 ที่เป็นการบอกว่า fonts อยู่ที่ไหน

    และส่วนที่บอกว่า ให้ใช้ fonts ทั้งเอกสารคือบรรทัดที่ 12 – 14 โดยเราสามารถแก้ไขได้เหมือน css ปกติเลยว่าส่วนไหนใช้ fonts ไหน

    โดยเมื่อเราทำตามขั้นตอนด้านบนแล้วจะได้ดังภาพ ใส่ font ภาษาไทยให้ laravel-dompdf แล้ว สำเร็จบางส่วน

    ปัญหาที่พบบ่อย

    1. ในขั้นตอนนี้หากท่านพบปัญหาหน้าเว็บโหลดนานกว่าเดิมมาก (หลัก 10 วินาทีขึ้นไป) ให้เลื่อนไปดูวิธีแก้ไขด้านล่างก่อน ค่อยกลับมาทำต่อครับ
    2. เจอ Error ประมาณว่า Failed to open stream ดังภาพนี้ ให้กลับสร้าง folder ชื่อ fonts ใน storage ก่อนนะครับ ผมเขียนไว้แล้ว ข้อ 2 ด้านบน
      หากพบ error failed to open stream ให้ไปสร้าง folder ชื่อ fonts ใน storage ก่อนนะครับ
  4. จากข้อก่อนหน้าจะเห็นได้ว่า เราได้ว่ามีบางส่วนมาเป็นภาษาไทยแล้ว แต่บางส่วนยังเป็นเครื่องหมายตกใจอยู่ สาเหตุเป็นเพราะตอนประกาศ font ในข้อก่อนหน้านั้น เราประกาศว่าใช้เฉพาะกับข้อความปกติเท่านั้น (บรรทัด 7-8 ในข้อก่อนหน้า) แต่ h1 นั้นจะให้ข้อความที่เป็นตัวหนา (font-weight: bold;) ดังนั้นเราจึงต้องประกาศเพิ่มให้ครบครับ จึงต้องแก้ invoice.blade.php เป็นดังนี้

    ทีนี้พอเราสร้าง pdf ใหม่จะเห็นว่า สามารถใช้ภาษาไทยได้สมบูรณ์แล้ว laravel-dompdf รองรับภาษาไทยสมบูรณ์แล้ว

ข้อควรระวัง

ในการสร้าง pdf ครั้งแรกมันจะสร้างได้ช้าพอสมควรเนื่องจากมันต้องไป download font มา (จากเครื่องตัวเองนั่นแหละ) จากนั้นมาแปลง fonts เป็น format ของมัน และ cache ลงใน storage/fonts ทำให้ครั้งแรกช้ากว่าปกติพอสมควร แต่หลังจากนั้นจะความเร็วปกติ (เพราะ cache ไว้แล้ว)

 วิธีแก้ปัญหากรณีใส่ font-face แล้วสร้าง PDF นานกว่าปกติ

สาเหตุที่พบเจอบ่อยคือ php artisan serv ในการทดสอบ ซึ่งตัว php artisan serv นั้นมีข้อจำกัดคือมันสามารถประมวลผล request ได้ทีละอันเท่านั้น ดังนั้นเมื่อมันยังสร้าง PDF ไม่เสร็จ มันก็ไม่สามารถให้บริการอย่างอื่นได้ ทำให้ไม่สามารถดาวโหลด fonts ที่ถูกอ้างถึงได้ วิธีแก้ไขมี 3 แบบคือ

  1. สำหรับตระกูล unix ทั้งหมด (mac OSX, Linux, FreeBSD, Unix และอื่นๆ ที่ไม่ใช่ windows) แนะนำให้ใช้วิธีนี้เพราะมีประสิทธิภาพมากกว่า คือให้แก้การอ้างถึง font จากเดิมเป็น http ให้เป็น local file แทน โดยเปลี่ยนจากคำสั่ง asset เป็น public_path และเติม file:// ลงไปหน้าสุดของ url เช่น จากเดิม

    ให้แก้เป็น

     
  2. ไม่แนะนำเท่าไหร่ แต่ใช้แก้ปัญหาเฉพาะหน้าได้ คือเอา fonts ไปฝากไว้ที่อื่น (วิธีนี้ถ้าใช้จริง อาจจะมีปัญหาหาก network ช้าไม่สามารถโหลด font ได้ ถึงแม้มันจะ cache ไว้ช่วยให้โหลดแค่ครั้งแรกครั้งเดียว แต่ถ้ามันโหลดไม่สำเร็จตั้งแต่แรกก็ไม่มี cache ให้นะครับ)
  3. วิธีที่ 3 สามารถใช้ได้ทั่ว คือหา Web Server มาทำแทนซะ จะเป็น XAMPP หรือใช้ Homestead ก็ได้ หรือแม้แต่ IIS ของ windows ก็ได้ เลือกได้ตามสบายใจ แต่ไม่มีสอนครับ งมเอาเอง บายจ้า

หากทำตามด้านบนแล้วยังไม่หายให้ลองใช้พวก OPCache มาช่วยเพื่อปรับปรุงประสิทธิภาพของ PHP ดู ซึ่งจะทำให้ PHP เร็วขึ้นเยอะและกิน CPU น้อยลงด้วย

แก้ปัญหา Laravel Error บน Appservhosting

พอดีวันนี้เจอปัญหาพิเศษ ที่เกิดขึ้นบน Share Host บางตัว (ในตัวอย่างนี้คือ Appservhosting แต่เชื่อว่าบาง Host ก็น่าจะเป็นเช่นกัน) จากโพสนี้  ซึ่งผมเห็นว่าเป็นเคสที่น่าสนใจมาก เลยเอามาแบ่งปันกันครับ

ปัญหาที่เกิดขึ้นคือ เมื่ออับโหลดขึ้นไปแล้ว Laravel ไม่ทำงาน โดยการตรวจสอบเบื้องต้นคือ

  • ผมได้ตรวจเวอร์ชัน PHP และ PHP Extension ที่ Laravel ต้องการแล้ว ซุึ่งปกติดีครับ
  • Permission ของ storage และ bootstrap/cache สามารถเขียนได้ปกติ

ต่อไปคือข้อบ่งชี้ว่าเป็นสาเหตุเดียวกัน

  • ผมได้ลองแก้ไขไฟล์ index.php และไฟล์อื่น เพื่อใส่ die(‘a’); เข้าไปเรื่อยๆ เพื่อหาว่ามันพังที่บรรทัดไหนกันแน่ แต่ปรากฏว่า เลื่อนบรรทัดไปมา เหมือนบรรทัดที่พังเปลี่ยนไปเรื่อยๆ (อันนี้เงิบมากๆ เพราะผมขยับไป 1 บรรทัดมันพัง เลยลงไปใส่ใน function ที่พัง แต่ผ่านตลอด แล้ววนกลับมา die ที่เดิมมันไม่พังเฉยเลย)
  • Error Logs ไม่มีเขียนอะไรเลย (อาจจะมีเขียน แต่ผมใช้ .htaccess เปลี่ยนที่อยู่ logs มัน เพราะที่เก่าไปอยู่ในที่ๆผมเข้าถึงไม่ได้ เพราะ share host ไม่เปิด)
  • ผมใช้  curl -v url > /dev/null เพื่อดูว่ามันมีอะไรที่ผมไม่เห็นไหม ประกฏว่ามันไม่ได้่ error 500 แต่มันตัด connection ไปดื้อๆ เลย ข้อนี้เลยค่อนข้างเดาได้ว่าน่าจะเป็นที่ระดับ php ไม่ได้เป็นที่ระดับ Code

สรุปผลการคาดเดาของผมคือ น่าจะเป็นปัญหาที่น่าจะเคยเจอกันบ่อยๆคือ OP Cache ของ PHP น่าจะเกิดปัญหา ซึ่งในที่นี้คือ Zend OPcache v7.0.6-dev ซึ่งวิธีแก้ปัญหาคือปิดมันครับ โดยการเปิด .htaccess ขึ้นมา แล้วใส่บรรทัดนี้ลงไปครับ

โดยในสมัยก่อนนั้น ผมเคยใช้ XCache ก็มีปัญหาคล้ายๆกัน แต่คนละแบบ ของ XCache เมื่อก่อน มันไป Cache routes.php ของคนอื่นมา มันเลยพัง ซึ่งวิธีปิดคล้ายๆกันคือใส่บรรทัดนี้ลงไป .htaccess

WTF AR-BRO Support – บันทึกความกากของ AR-BRO Support

หมายเหตุ โปรดดูวันที่โพสก่อนตัดสินใจ ในวันที่ท่านได้อ่านบทความนี้ AR-BRO อาจจะปรับปรุงเรื่องต่างๆแล้วก็ได้ 

อันนี้จะเป็นบันทึกเตือนใจ สำหรับผู้ที่อาจจะเข้ามาใช้ AR-BRO นะครับ เป็นประสบการณ์ที่ผมได้จากการ Support ของ AR-BRO ซึ่งเป็น Cloud Provider เจ้าหนึ่งของไทย เขียนตอนเดือน 1 ปี 2017

จริงๆแล้วผมค่อนข้างอคติกับที่นี่พอสมควร ใช้วิจารณญาณในการอ่านด้วยนะครับ สาเหตุที่ผมอคติหลักๆคือมันโฆษณาว่า “ไม่ต้องจ่ายล่วงหน้าเป็นเดือน!” แต่ว่าถ้าจะสร้างเครื่องคุณต้องมีเครดิตในระบบเหลือพอจ่ายให้เครื่อง”ทั้งหมด” รวมกับเครื่องที่จะสร้างใหม่ ล่วงหน้า 21 วัน ซึ่งนั่นหมายความว่าถ้าผมต้องการขยายระบบด้วยการสร้างเครื่อง 599 บาทต่อเดือน (0.89 บาทต่อชั่วโมง) 4  เครื่อง ผมต้องเติมเงิน 1794.24 แม้ว่าจริงๆผมจะอย่างใช้แค่ 3 วัน ซึ่งคิดเป็นเงินแค่ 256.32 บาทเท่านั้น เหลือเครดิตที่ทำอะไรไม่ได้ 1537.92 บาท ยิ่งกว่านั้นถ้าผมใช้เสร็จ ลบเครื่องทิ้ง เดือนต่อไปผมมีเหตุุจำเป็นให้ต้องขยาย 4 เครื่องอีก เครดิตที่เหลือ 1537.92 ไม่สามารถใช้เครื่องขนาด 599 บาท 4 เครื่องได้อีกแล้ว เพราะเครดิตที่เหลือมีไม่พอจ่าย 21 วัน ต้องเติมเพิ่ม 256.32 ก่อนถึวจะใช้ได้  ดังนั้นถ้าใครคิดจะเอามา ขยายระบบเฉพาะหน้านี่ไม่เหมาะอย่างแรงเลยครับ เหมือนเอาเงินไปดองทำไรไม่ได้

เข้าเรื่องต่อไปจะรวมเรื่องที่ Support AR-BRO ตอบมาแบบแปลกๆกันดูครับ

[May 29, 2016 – June XX, 2016] AR-BRO MA ระบบบ่อยจนน่ากลัว

เป็นช่วงตกต่ำที่สุกของ AR-BRO เลยก็ว่าได้ ฃ่วงนั้นผมยังไม่มีเครื่องที่ใช้จริงจังเท่าไหร่ แต่เห็นหลายคนบ่นหนักว่าล่มบ่อยมาก ซึ่งในเหตุการณ์นั้นทาง AR-BRO รับมือด้วยการ ปิดระบบ Ticket, Call Center และการโพสหน้าเพจของ Facebook ไปเลย ซึ่งผมรู้สึกว่ามันดูไม่โปรอ่ะ แล้วมีครั้งนึงที่เค้าบอกว่า MA ตอน ตี 1 มั้ง แต่ผมได้ SMS แจ้งการ MA ครั้งนี้ตอนตี 4  หลัง MA เสร็จไปแล้ว โดยลูกค้าช่วงแรกอย่างพี่เนยจาก nuuneoi.com ยังย้ายกลับไปใช้ Digital Ocean เหมือนเดิมเลย (อ้างอิง)

ปัจจุบัน ปัญหาล่มทั้งระบบไม่เจอแล้วในช่วงหลัง พอไว้ใจได้ในระดับหนึ่ง ตามที่ผมเคยเจอ มีแค่ครั้งเดียวหลังจากช่วงนี้ที่ดับแล้วไม่แจ้ง (วันที่ 17 ธันวาคม 2016)

[September 9, 2016] UBUNTU 14.04 เลิกพัฒนาแล้ว ไม่ปลอดภัย

พอดีว่าผมชอบใช้ Ubuntu แต่ว่า Image ที่ AR-BRO มีให้นั้น Ubuntu 16.04 ซึ่ง ณ วันนั้น VestaCP ไม่รองรับ ผมเลยแจ้งไปทางเพจว่าขอ Image Ubuntu 14.04 ด้วยได้ไหม จริงๆแล้วเรื่องนี้มันจะไม่เป็นปัญหาเลย ถ้าเค้าไม่ดันตอบมาว่า “Ubuntu 14 เลิกพัฒนาแล้วครับมำให้มีรูรั่วจำนวนมาก” ผมนี่ถึงกับเปิดตาราง LTS เลยครับ

AR-BRO บอกว่า Ubuntu 14.04 ไม่ปลอดภัย และเลิกพัฒนาไปแล้ว WTF

สำหรับใครอยากดูว่า Ubuntu 14.04 LTS End of Life วันไหน สามารถดูได้ที่ https://wiki.ubuntu.com/LTS

ปัจจุบัน ตามที่เค้าบอก มันอาจจะจัดการระบต่างๆได้ยาก เค้าเลยไม่ใส่นะครับ และ VestaCP รองรับ Ubuntu 16.04 แล้ว ก็ใช้ Ubuntu 16.04 แทนนะครับ

[December 17, 2016] AR-BRO ปิดเครื่องโดยไม่แจ้งล่วงหน้า

ในวันที่ 17 ธันวาคน 2016 เกิดเหตุการณ์ เครื่องดับถ้วนหน้า โดยไม่มีการแจ้งล่วงหน้าว่าจะ MA หรือว่าเกิดอุบัติเหตุขึ้นอย่างไรก็มิทราบได้  (ผมจำไม่ได้ว่าดับไปช่วง 6.00 น. หรือว่าเริ่มดับช่วง 8.00 น.)  แต่ผลที่เกิดขึ้นคือเครื่องดับไป 2 ชม. ที่ผมรู้เพราะมีคนโทรมาบอกว่าเข้าเว็บไม่ได้ เห็นสถานะเครื่องดับอยู่ ต้องมาเปิดเอง เข้าใจว่าเหตุการณ์นี้น่าจะดับทุกเครื่องเลยครับ เพราะถามจากเพื่อนๆที่ใช้อยู่ก็ดับไปเหมือนกัน  (Ref) และหลังจากเหตุการณ์ AR-BRO ไม่ได้ชี้แจงใดๆทั้งสิ้น (และผมก็ไม่ได้ถามไป) แต่มีการชดเชยเครดิตให้ระดับนึง (Ref)

[January 5, 2017] Ping สูงแบบไม่ทราบสาเหตุ

เดี๋ยวจะหาว่า Support มีแต่เรื่องแย่ๆ อันนี้เรื่องดีๆบ้าง อันนี้เป็นของที่ทำงาน เค้าบอกเว็บช้ามาก ให้ลองดูหน่อย ก็เลยพบว่า PING สูงมาก (150 – 400 ms) ปกติจะประมาณ 3-5ms เท่านั้น เข้าใจว่าเฉพาะ IP 103.x.x.x เพราะเครื่องส่วนตัว IP: 150.107.29.x ปกติดี เลยเปิด Ticket แจ้งไป โดยเค้าแจ้งว่า “Network ภายในบางเส้นทางมีปัญหากำลังรีบดำเนินการแก้ไขครับ”  เค้าใช้เวลาประมาณ 10 นาทีเพื่อแก้ปัญหา แล้วทุกอย่างก็กลับมาเรียบร้อยเหมือนปกติดี

[December 16, 2016 – January 14, 2017] สั่ง npm install แล้วช้า 

อันนี้เป็นเรื่องแปลกๆคือผมไม่สามารถสั่ง npm install เพื่อลง package ต่างๆที่ใช้บน NodeJS ได้ แต่สามารถสั่งคำสั่งเดียวกันบนเครื่องที่บ้าน และที่ทำงานได้ปกติ ไฟล์ package.json ก็ตัวเดียวกัน ซึ่งยังไม่สามารถแก้ปัญหาได้ ที่สำคัญคือทาง AR-BRO ไม่ได้แจ้งอะไรกลับมาเลย ในช่วงแรกผมแจ้งไปทาง Facebook Page เค้าบอกให้ผมลองเปิด verbose mode ดู หลังจากส่งข้อมูลให้เค้าดูหลายๆอย่าง สุดท้ายก็เงียบไปและไม่ได้รับการตอบกลับอีก (เข้าใจว่าหาวิธีแก้อยู่แล้วก็ลืมไปล่ะมั้ง) หลังจากนั้นประมาณ 1 สัปดาห์ผมก็ไปเปิด ticket ในเว็บ AR-BRO อีกที ผลคือเหมือนเดิมครับ ไม่มีการตอบกลับใดๆทั้งสิ้น ถ้านับรวมเวลาตั้งแตตอนนั้นถึงตอนนี้ก็เกือบ 1 เดือนแล้วครับที่ยังไม่มีการตอบกลับใดๆทั้งสิ้น (ในระบบ Ticket) ไม่แม้แต่จะขอข้อมูลเพิ่ม

โดยข้อมูลที่ผมส่งให้มีดังนี้ (ถ้าใครพอเดาสาเหตุได้ก็ช่วยกันหน่อยนะครับ)

จริงๆแล้ว case นี้ผมเดาว่าเค้าน่าจะ limit connection per second เพื่อป้องกันเราเอา host ไปยิงไรสักอย่างมั้งครับ (สังเกตุจากช่วงแรกๆมันจะวิ่งเร็วมาก แล้วก็จะนิ่งไปหลังอ่านไปสักพัก ถ้าลองสั่งหลายๆครั้งสักวันมันผ่านแน่นอน เพราะ npm cache ไว้ แต่บังเอิญผม build docker images ทำให้ในนั้นไม่มี cache และจะไม่ cache เด็ดขาด มันเลยไม่ผ่านสักที)

วันที่ปล่อยโพสนี้ (2017-01-04) ผมได้แจ้งข้อมูลเพิ่มไปใน ticket อีกรอบ ตามข้อสันนิษฐาน 1 ชั่วโมงหลังจากนั้นปิดเคสเลยครับ หายแล้ว รวมเวลากว่าจะตอบ เกือบเดือน ไม่แน่ใจว่าเพราะได้ Hint ไป หรือว่าเพราะระบบจัดการหลังบ้านไม่ดี เลยอาจจะข้ามปัญหานี้ไปต้องคอมเม้นตอบเพื่อดันกระทู้ให้เค้าเห็น

ในที่สุด AR-BRO ก็ตอบแล้ว