วันนี้ว่างๆ นึกอยากแก้ไขธีมของ Imooh.com ซะหน่อย สิ่งที่อยากได้คือ เก็บโค้ดด้วย Git และเมื่อมีการ push โค้ดก็ให้อัพเดทธีมอัตโนมัติไปเลย (แต่ก็ต้องเทสที่ local environment แล้วนะ ^^) ก็เลยเอาขั้นตอนมาเขียนไว้ซะหน่อย เผื่อเพื่อนๆ สนใจจะลองทำดูบ้าง หรือมีวิธีที่จะมาแนะนำก็ยินดีครับ
วิธีแก้ปัญหา No Access Control Allow Origin Elasticsearch
สำหรับเหล่าสาวกของ Elasticsearch ที่ต้องการจะเรียกใช้งาน Elasticsearch ด้วย Ajax อาจจะต้องพบกับปัญหา “No Access Control Allow Origin” ที่เกิดจากการเรียกข้ามโดเมน วิธีแก้ปัญหาก็ให้เข้าไปตั้งค่าของ Elasticsearch ที่ไฟล์ elasticsearch.yml
Python: yield คืออะไร ทำไมเค้าใช้กันบ่อยจัง
yield เป็นหนึ่งในคีย์เวิร์ดที่ได้เห็นบ่อยๆ ในภาษา Python ก็เลยต้องทำความรู้จักกันซักหน่อยเดี๋ยวจะตกเทรนเอา ^^ แต่ก่อนอื่นลองทำความเข้าใจกับฟังก์ชันก่อน ซื่งใน Python เมื่อมีการเรียกฟังก์ชัน ฟังก์ชันจะถูก execute ตั้งแต่บรรทัดแรก จนกระทั่งถึงบรรทัดที่มี return statement หรือเกิด exception หรือไม่ก็จนจบฟังก์ชัน ซึ่งจะ return None แต่เราไม่เห็นนะครับ มันเป็นแบบ implicit
Flask Python’s Framework ก็ผมจะเขียนเทสเกี่ยวกับคุ๊กกี้ (cookie) อ่ะ
ช่วงนี้ก็เริ่มจะเขียน python บ่อยขึ้น เว็บแอพก็ง่ายนะ framework เบาๆ มีให้ใช้หลายตัวอยู่เหมือนกัน ส่วนตัวแล้วก็ชอบใช้ Flask แล้วก็มี bottle อยู่นิดหน่อย สิ่งที่หนีไม่พ้นในการเขียนเว็บแอพคือ มันต้องมีการใช้งานคุ๊กกี้กันบ้างล่ะ จริงไหม ^^ ในบทความนี้จะเกี่ยวกับการเขียนเทสข้อมูลในคุ๊กกี้ด้วย
วิธีใช้งาน Composer เบื้องต้น
Composer เป็นเครื่องมือ ของ PHP ใช้จัดการ library ที่ต้องการใช้ในโปรเจ็ค ลักษณะการใช้งานคือ ให้เราระบุ library ที่โปรเจ็คของเราต้องการไว้ในไฟล์ composer.json จากนั้น composer จะทำการติดตั้งหรืออัพเดท library ที่เราต้องการให้เลย ช่วยให้เราจัดการกับ library ได้ง่ายขึ้น
วิธีจัดรูปแบบ (format) JSON ใน command line
สำหรับใครที่ใช้งาน command line อยู่บ่อยๆ จนชินหรืออะไรๆ ก็อยู่ใน terminal ไปซะหมด ถ้าหากทำงานกับ json ก็ต้องหาวิธีการจัด format ให้ดูง่ายๆ หน่อย ไม่ใช่ต่อกันยาวบรรทัดเดียวดูยาก จ้องจนตากลายกันไปเลย เดี๋ยววันนี้จะมาแนนำวิธีจัด format ของ json กัน
PHP: การใช้งานฟังก์ชัน array_pop
ฟังก์ชัน array_pop จะคืนค่า (return) สุดท้ายที่อยู่ใน array และจะลบค่านั้นออกจาก array ด้วย แต่ถ้า array นั้นไม่มีค่าอยู่ใน array (empty array) ฟังก์ชัน array_pop ก็จะคืนค่า NULL ออกมาแทน หรือถ้ามีการส่ง input ที่ไม่ใช่ array เข้าไป ก็จะมีการเตือนออกมา “PHP Warning: array_pop() expects parameter 1 to be array”
PHP: การใช้งานฟังก์ชัน array_merge
ฟังก์ชัน array_merge เป็นอีกหนึ่งฟังก์ชันที่ผมใช้บ่อยอยู่เหมือนกัน ลักษณะการทำงานของฟังก์ชันนี้จะเป็นการนำเอา array มารวมกัน ถ้าหาก array มี index ที่เหมือนกัน ค่าของ array ท้ายสุดจะถูกนำมาใช้ ตรงนี้นี่เองที่ผมชอบเอามาใช้ในการกำหนดค่าตั้งต้น (default) ให้กับ array
PHP: การใช้งานฟังก์ชัน substr
ฟังก์ชัน substr ของ PHP ก็ตามชื่อของฟังก์ชันเลยครับซับเอาบางส่วนของ string ออกมาจาก input string โดยระบุตำแหน่งเริ่มต้น ($start) และขนาด ($length) ของ string ที่ต้องการ
fswatch กับการรันคำสั่ง phpunit อัตโนมัติ
ลองมาใช้ fswatch (file system watch มั๊ง ^^) ซึ่งเป็นโปรแกรมที่คอยจำตาดูการเปลี่ยนแปลงของไฟล์หรือโฟลเดอร์ที่เราระบุไว้ร่วมกับ PHPUnit ดูหน่อย หลังจากที่ได้ใช้ Grunt watch เพื่อรันคำสั่ง PHPUnit แล้ว ก็เจอปัญหานิดหน่อยจริงๆ ก็ไม่ใช่ปัญหาอะไรมากมายนะครับ (ได้คืบจะเอาศอก) มันจะต้องเข้าไปแก้ไขไฟล์ Gruntfile.js เพื่อเปลี่ยนโฟลเดอร์งานตลอดเลย อีกอย่างก็ต้องติดตั้ง node package ทุกโปรเจ็คอีก ก็เลยหาวิธีใหม่ ตามประสาคนไม่ชอบจำเจ ^^