บทความ

เมื่อทำการ Restore database ของ Postgresql แล้วแต่ว่า index sequences ทุกตารางผิด

เหตุการณ์ เมื่อทำการ restore database ด้วย pg_restore แล้ว Index sequences ของทุกตารางนั้นเริ่มนับ 1 ใหม่หมด ทำให้การบันทึกข้อมูลหลังจาก restore เรียบแล้วจะเกิด error duplicate key id สาเหตุ ไม่ทราบ วิธีการแก้ไข เมื่อ restore เรียบร้อยแล้วเราจะต้องทำการใส่คำสั่งต่อไปนี้ เพื่อทำการ reindex ใหม่ SELECT pg_catalog . setval ( pg_get_serial_sequence ( 'table_name' , 'id' ), ( SELECT MAX ( id ) FROM table_name ) +1 );

[Swift] การเรียก/ส่งไป View แบบติด Navigation bar

การเรียก/ส่งไป View แบบติด Navigation bar (Present view controller with a navigation bar) เวลาเราต้องการแสดงหน้า View อื่นและต้องการให้มีการแสดง Navigation bar ด้วยนั้นเขียนโค้ดตามด้งนี้ Swift 5.x guard let myVC = self.storyboard?.instantiateViewController(withIdentifier: "MyViewController") else { return } let navController = UINavigationController(rootViewController: myVC) self.navigationController?.present(navController, animated: true, completion: nil) และนี้เป็นวิธีการส่งกลับไปหน้าเดิม self.dismiss(animated: true, completion: nil)

แก้ปัญหาเมื่อ Vagrant VM ที่ทำงานอยู่ หาย!!

เคยกันมั้ยครับ อยู่ๆ Vagrant VM หายไปดื่อๆ ระหว่างทำงาน Develop environment ที่ setup ไว้หายไป ต้องเสียเวลาลง LAMP ใหม่ เหตุการณ์นี้ผมก็เจอบ่อยๆ เหมือนกัน เรามาดูวิธีแก้ไขกันดีกว่า โดยการแก้ปัญหานี้ก็มีคนที่ได้บอกวิธีไว้แล้ว ใน GitHub อันนี้เป็นวิธีเต็มๆ I figured out my own workaround: Go to C:\Users\VirtualBox VMs Open up the .vbox for the good VM. Start the VM inside VirtualBox, and then shut it down. It should now be listed via "VBoxManage list vms". Copy the UUID inside the {}s. In the project directory, run this command: echo -n > .vagrant/machines/default/virtualbox/id e.g., echo -n b5e14d9a-f416-4f2f-a989-aa4698b3613b > .vagrant/machines/default/virtualbox/id Now "vagrant up" should work as normal, but it may fail with: default: Warning: Connection timeout. Retrying... default: Warning: Authentication failure. Retrying... default: Warning: Authentication failure. Retrying... default: Warning: Authentication failure. R

ทดสองใช้ Github Gist เพื่อเขียนโค้ด สวยๆ ให้มาแสดงใน blog ของเรา

ทดสองใช้ Github Gist เพื่อเขียนโค้ด สวยๆ ให้มาแสดงใน blog ของเรา ไม่มีอะไรมากครับ ง่ายๆ มาก ผมเชื่อว่าทุกคนที่ทำงานสาย dev จะมี account Github อยู่แล้ว เพียงแค่คุณไปเขียนโค้ดไว้ที่ Gist แล้วก็ embed code มาไว้ที่หน้าเว็บเราครับ โดย Gist จะให้มาเป็น javascript code ครับ แล้วเราก็เอาโค้ดที่ได้มาแปะไว้ที่ blog เราได้โดย Embed ดังตัวอย่างอย่างล่าง

Blog แบบใหม่ มาแล้ว

เอารออะไรกันครับ เปลี่ยนเลยสิ ธีมแบบใหม่สวยดีครับ

Cross Site Request Forgery

Cross Site Request Forgery. วันนี้ได้ความรู้ใหม่เกี่ยวกับการทำ Cross site Request Forgery ตัวของ CakePHP (version 3.x)  ในเอกสารของ CakePHP นั้นก็ได้เขียนไว้อ่านและเข้าใจง่ายขึ้น และได้ระบุเรื่อง CSRF กับ Ajax request ไว้ด้วย แต่ว่า ก็ไม่ได้บอกวิธีการเขียนโค้ดไว้ เพราะว่ามันเป็นเรื่องของ JS แหล่ะ ได้แต่ให้ไปทำอะไรคราวๆ ผมเลยมาบันทึกไว้ในกันลืม เวลาเปิดใช้งาน csrfComponent แล้ว cakePHP มันจะถามหา token ทุก request ตลอดดังนั้นตอนทำ ajax เองก็เหมือนกันก็ต้องส่งไปด้วย แต่ว่าต้องมีการกำหนด X-CSRF-Token ที่ header request ก่อนและส่งข้อมูลชื่อ "_csrfToken" ไปด้วย อันนี้เป็น code jquery นะครับ ผมใช้วิธีนี้ 1: $.ajax({ 2: 'url': 'xxxx', 3: 'header': { 4: 'X-CSRF-Token': 'xxxxx - token here - xxxx' 5: }, 6: 'data': { 7: '_csrfToken': 'xxxx - token here - xxxx' 8: } 9: });

Email with CakePHP 3.3

Email with CakePHP 3.3 วันนี้เรามาจะดูเรื่องการส่ง Email ด้วย CakePHP 3.3 กัน CakePHP นั้นจะมี class ของ mail มาให้ใช้งานแล้ว เราไม่จำเป็นต้องไปเขียนใหม่ตั้งแต่ต้น เข้าประเด็ดกันเลยครับ เริ่มต้นไม่ยากมาก ขั้นแรกเราต้องกำหนด config ของ email ที่เราต้องใช้งานก่อน 'EmailTransport' => [         'default' => [             'className' => 'Smtp',             'host' => 'mail.zzzz.com',             'port' => 25,             'timeout' => 30,             'username' => 'info@zzzz.com',             'password' => 'password',             'client' => null,             'tls' => null,             'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),         ],     ], ต่อมาเราต้องทำการ use class เข้าไปที่ Controller ที่ต้องการใช้งานเช่น UsersController  เราอยากให้ module นี้มีความสามารถเรื่อง mail  use Cake\Mailer\Em