JavaScript get EventListeners

เวลาต้องมาแก้ Code frontend (HTML+JS) ที่เขียนโดย bind event จากใน JS เช่นลักษณะนี้

$('DIV.action[action=edit]').bind('click', function() {
  // ...
});

แล้วโจทย์คือเราต้องการจะ debug หรือแก้ event handler นั้นๆ ปัญหาที่เราจะพบ คือ ถ้าไฟล์มันมีเยอะมาก มีความซับซ้อนมาก แถมไม่ได้เขียนใน framework ที่เป็นมาตรฐาน หรือที่จะทำให้เรารู้ได้ทันทีว่าต้องไปหาที่ไหน. ตัวช่วยทางนึง คือ เราสามารถเรียกดู Event handler ของ DOM Element ที่เราสนใจ ได้โดยตรงเลย ลักษณะนี้

// jQuery
$._data($('#some-id')[0], "events");

// native
window.getEventListeners( document.getElementById('#some-id') );

ถ้าเป็น jQuery ในผลลัพท์ตรง console เราจะสามารถคลิกๆ เข้าไปดูได้จนเห็น [[FuntionLocation]] เลย.

Vue render option tag

เจอปัญหาทำ dynamic <option> ไม่ได้. สุดท้ายจบที่ใช้ <select v-html=“method”></select>. ยังไม่ได้ลองจริงจัง แต่เดาว่าเป็นที่ ใน select ของเดิม มันมี tag option (static html code) อยู่ด้วยมั้ง. 

PHP fill PDF Form

มีโปรแกรม PDFtk ที่มันกรอกฟอร์มได้ (ความสามารถหลายอย่างเกี่ยวกับการจัดการ PDF)

ติดตั้งบน CentOS 7 มันไม่มี Official repos ก็จะเสียวๆ หน่อย — https://www.linuxglobal.com/pdftk-works-on-centos-7/

แล้วใช้ library ตัวนี้ในการเรียกใช้ PDFtk (รู้สึกว่ามันจะเรียกผ่านฟังก์ชั่น proc_open ใน php)

https://github.com/mikehaertl/php-pdftk

MySQL sql_mode

query สำหรับดูค่าปัจจุบัน

SELECT @@sql_mode;

query สำหรับตั้งค่าใหม่

SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

หรือจะตั้งแบบ replace บางอย่างออก

SET sql_mode = ( SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', '') );

ถ้าจะตั้งให้ถาวร ก็ตั้งใน my.cnf (เช็คพาทดีๆ)

[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

MySQL Tune max_connections & innodb-buffer-pool

  • เพิ่มค่า max_connections ในไฟล์ config แล้ว แต่ restart service แล้ว max_connections ไม่เพิ่มขึ้นมาเท่าค่าที่ตั้ง
  • ความเข้าใจเรื่อง innodb-buffer-pool

Continue reading “MySQL Tune max_connections & innodb-buffer-pool”

[Solved] Zimbra LDAP corrupted DB

IDC ไฟดับ ทำให้ไฟล์ db ของ LDAP พังมั้ง

อาการคือ

  • [zimbra@mail ~] zmcontrol start  แล้วทุกอย่างก็รันขึ้นมาปกติ
  • แต่ถ้ามีการล็อคอิน ก็จะล็อคอินไม่ได้ แล้ว service LDAP ก็จะ stop ไปด้วย

Continue reading “[Solved] Zimbra LDAP corrupted DB”

คำสั่งสำหรับเช็คเกี่ยวกับ process

จดเก็บไว้ก่อน

โชว์รายการ process ที่กำลังทำงานอย่างละเอียด

ps auxfew

เช็คว่า process id ที่ระบุ รันจาก binary file path ไหน

ls -la /proc/$PID/ | grep exe

หาว่า process id ที่ระบุ ต่อ connection ไปที่ไหนหรือเปล่า

lsof -i -P -n | grep $PID