TortoiseSVN error while loading shared libraries

Error message:

$ svn
C:/Program Files/TortoiseSVN/bin/svn.exe: error while loading shared libraries: libapr_tsvn.dll: cannot open shared object file: No such file or directory

Solution:

  • Extract TortoiseSVN-x.x.x.xxxxx-x64-svn-x.xx.x.msi installer with 7-zip
  • Move F_libapr to C:\Program Files\TortoiseSVN\bin\libapr_tsvn.dll
  • Move F_libaprutil to C:\Program Files\TortoiseSVN\bin\libaprutil_tsvn.dll

Gracefully stop PHP process with PCNTL

เวลาเขียน process ไรสักอย่างด้วย PHP ที่ใส่ loop ไว้เพื่อให้มันทำงานไปตลอดจนกว่าจะโดน kill เราสามารถใช้ PCNTL เพื่อให้ script PHP รู้ว่ามีคนขอ ให้ process หยุดทำงานได้แล้ว ถ้ามีงานที่ทำต่อเนื่องอยู่ยังไม่ถึง checkpoint จะได้มีโอกาสทำต่อให้เสร็จก่อน และก็ exit; ตัวเองซะ ไม่ต้องไปทำ task ต่อไป.

Continue reading “Gracefully stop PHP process with PCNTL”

Google Ads MCC init

พอดีจะต้องสร้าง MCC แยกออกมาเพื่อทำอีกโปรเจคนึง แต่ลืมไปหมดแล้ว ว่าผมต้องเตรียมบัญชี MCC ยังไงบ้าง รอบนี้เลยจดไว้หน่อยแล้วกัน

Continue reading “Google Ads MCC init”

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”