https://www.googleapis.com/oauth2/v3/tokeninfo?access_token={acccessToken}
[Solved] Zimbra LDAP corrupted DB
IDC ไฟดับ ทำให้ไฟล์ db ของ LDAP พังมั้ง
อาการคือ
- [zimbra@mail ~] zmcontrol start แล้วทุกอย่างก็รันขึ้นมาปกติ
- แต่ถ้ามีการล็อคอิน ก็จะล็อคอินไม่ได้ แล้ว service LDAP ก็จะ stop ไปด้วย
คำสั่งสำหรับเช็คเกี่ยวกับ process
จดเก็บไว้ก่อน
โชว์รายการ process ที่กำลังทำงานอย่างละเอียด
ps auxfew
เช็คว่า process id ที่ระบุ รันจาก binary file path ไหน
ls -la /proc/$PID/ | grep exe
หาว่า process id ที่ระบุ ต่อ connection ไปที่ไหนหรือเปล่า
lsof -i -P -n | grep $PID
INSERT IGNORE in Laravel eloquent
Laravel ไม่ทำ insert ignore ไว้ให้ใช้ เพราะว่ามันเป็นคำสั่ง SQL ที่ไม่เป็นสากลโลก DB engine หลายๆ ตัว ไม่มีให้ใช้ แต่ถ้าเราใช้ MySQL แล้วอยากจะใช้ insert ignore ก็เอา trait ตัวนี้มาใช้โลด
ติดตั้งใส่ project
composer require jdavidbakr/replaceable-model
แล้วไปเรียกใน Model ที่เราต้องการเพิ่มความสามารถให้มัน
<?php class Example extends Model { // ... use \jdavidbakr\ReplaceableModel\ReplaceableModel; // ... }
ทีนี้ก็เรียกใช้ตามอัธยาศัย
<?php \App\Example::insertIgnore($inserts);
.
PhpStorm fully-classified class name from autocomplete
ค่าเริ่มต้นของ phpStorm เวลา enter ชื่อคลาสออกมาจาก autocomplete มันจะไป import class ไว้ที่ด้านบน ( use … ) แล้วกรอกเฉพาะชื่อคลาสให้เราตรงที่กำลังเขียนโค๊ด. แต่ผมชอบที่จะเรียกใช้ fully-classified class name มากกว่า เพราะว่าผมไม่ได้ตั้งชื่อคลาสแบบสื่อความหมายได้ด้วยตัวเอง จะต้องเห็น namespace ด้วย ถึงจะรู้ว่ามันคืออะไร เช่น \App\Models\Orders\Book
กับ \App\Models\Products\Book
. (ปัญหานี้ผมเดาว่าน่าจะเป็นที่ผมตั้งชื่อคลาสไม่ถูกหลักละมั้ง ._.”). นอกจากสาเหตุที่กล่าวไปแล้ว ยังมีอีกอย่าง คือ เวลาที่ผมไม่ได้ออกแบบล่วงหน้าก่อนทำงาน ผมมักจะต้องมีเหตุให้ย้าย code ไปมาระหว่างไฟล์ ซึ่งปัญหาที่เกิด คือ เวลาที่ย้ายตัว code ไป ตัว import class ด้านบนมันไม่ได้เปลี่ยนตามไปด้วย ดังนั้นการใช้ fully-classified class name ก็ช่วยให้ย้าย code ไปมาได้เลย ไม่ต้องนั่งเช็คตรง import ด้านบน.
ซึ่ง PhpStorm เปิดให้เราปรับได้ว่าจะใช้ fully-classified class name ใน Settings Continue reading “PhpStorm fully-classified class name from autocomplete”
PHP preg_match named back references
chown/chgrp by directory name
for u in `ls`; do if [ -d $u/domains ]; then # Get UID of directory name uid=$(stat -c "%u" $u); find $u -user $uid -exec chown $u "{}" \; ; gid=$(stat -c "%g" $u); find $u -group $gid -exec chgrp $u "{}" \; ; if [ -f $u/public_html ]; then chown -h $u:$u $u/public_html ; fi; fi; done;
Running process without overlapping
สร้าง shortcut ให้รันคำสั่งใน git-bash.exe
TL;DR
"C:\Program Files\Git\git-bash.exe" --cd="D:\projects\larex" -c "php artisan serve"
สำหรับคนขี้เกียจ… แทนที่จะต้องเปิด git-bash ขึ้นมาแล้วสั่งรันคำสั่งต่างๆ อะไรที่ต้องใช้บ่อยๆ เราก็สร้างไว้เป็น shortcut เลยเพื่อความสะดวก จะได้ไม่ต้องเปิดมาพิมพ์ทุกครั้ง. ที่จริงคำสั่งที่ไม่ค่อยได้ใช้บ่อยๆ (แต่จะมีโอกาสต้องใช้ซ้ำ) จะสร้างไว้เป็น shortcut ก็สะดวกในแง่ที่ไม่ต้องจำคำสั่ง.