วิธีแปลง clip video ใน youtube ให้เป็นไฟล์ mp3 เพื่อเก็บไว้ฟังในเครื่อง

หลายครั้งที่เจอคลิปเพลงใน youtube แล้วอยากเก็บไว้ฟังในเครื่องคอมพิวเตอร์หรือโทรศัพท์ ถ้าจะเก็บเป็น video ก็เปลืองที่เลยต้องเก็บเป็นไฟล์ mp3

สำหรับวิธีการก็ไม่ยาก ใช้โปรแกรม youtube-dl

ถ้าใช้ OS X ก็ติดตั้งด้วยคำสั่ง

$ brew install youtube-dl

วิธีการใช้ใส่ URL ของ คลิปลงใน [URL] เท่านี้ก็จะได้ไฟล์ mp3 มาเก็บไว้ฟังแล้ว

$ youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 [URL]

--audio-quality 0 คือใช้คุณภาพเสียงที่ดีที่สุดเท่าที่จะเป็นไปได้

เมื่อถึงคราวเปลี่ยนแบตฯให้ MacBook Pro

Macbook Pro ของผมมีอายุย่างเข้าปีที่ 5 ในปีนี้ นับว่าเป็น laptop ที่ทนที่สุดตั้งแต่ใช้มา แต่ประมาณสองปีที่ผ่านมาเริ่มเห็นข้อความแปลกๆคือบอกว่าให้ Service Battery ตอนแรกก็ไม่อยากจะทำอะไรกับมัน ถ้าเอาเข้าศูนย์บริการก็กลัวจะบานปลายไม่คุ้มค่าซ่อมเลยต้องทนใช้มาเรื่อยๆ service-battery-indicator-mac ความเปลี่ยนแปลงหลังจากใช้มาคือเก็บไฟได้น้อยลงมาก และเริ่มเห็นว่าฝาใต้เครื่องเริ่มจะปิดได้ไม่พอดีซึ่งน่าจะเกิดจากแบตฯบวม ก่อนที่เครื่องจะพังไปมากกว่านี้ตัดสินใจเปลี่ยนแบตฯดีกว่า ลองค้นดูในเว็บราคาของแบตฯเทียบอยู่ที่ประมาณ 2,200-2,300 บาท พอไปเดินดูที่ Fortune ไปเจอแบตฯแท้ราคาอยู่ที่ 3,000 บาทเลยตัดสินใจซื้อมา เครื่อง Macbook Pro ของผมเป็นรุ่น 13″ Mid 2010 วิธีการเปลี่ยนแบตฯก็ทำตามคำแนะนำในเว็บ IFIXIT ซึ่งทำเองได้ง่ายมากๆ IMG_1999IMG_2002 เปลี่ยนเสร็จแล้วพอบูทเครื่องขึ้นมาก็เจอว่าเวลาของเครื่องโดนรีเซ็ท แต่พอต่ออินเทอร์เน็ตเวลาก็กลับมาถูกต้องเหมือนเดิมเพราะเซ็ท ntp เอาไว้ให้ sync เวลา Screen Shot 2544-01-01 at 07.01.44 ถึงตอนนี้ไม่มีข้อความเตือนให้ Service Battery แล้ว Screen Shot 2558-04-08 at 14.57.23 ดูข้อมูลของแบตฯตอนนี้กลับมาเป็นปกติแล้ว Screen Shot 2558-04-08 at 17.08.03 อันนี้ค่าเสียหายพร้อมนามบัตรของร้าน IMG_2004

PHP Fatal error: Class ‘DOMDocument’ not found

PHP Fatal error:  Class ‘DOMDocument’ not found

วันนี้ลอง RoundCube พบว่ามันไม่แสดงเนื้ออีเมล ถ้าคลิกไปบนอีเมลจะมีคำว่า “Loading…” ขึ้นค้างอยู่และทำอะไรต่อไม่ได้เลย ต้องกด refresh อย่างเดียว กลับไปเช็คใน IMAP ก็แสดงเนื้ออีเมลครบถ้วนสมบูรณ์ดีเลยเพ่งประเด็นไปที่ตัว PHP หรือเว็บเซิร์ฟเวอร์ พอเข้าไปดูใน error log ของเว็บเซิร์ฟเวอร์ก็พบ error ที่น่าจะเป็นสาเหตุของปัญหานี้ ลอง Google ดูพบว่าไม่ได้ลงแพคเกจ php-xml พอทำการติดตั้ง php-xml ก็แก้ปัญหานี้ได้

[08-Sep-2014 20:14:06] PHP Fatal error: Class 'DOMDocument' not found in /opt/roundcubemail-x.x.x/program/lib/Roundcube/rcube_washtml.php on line xxx

Delivery drones will need to recognize when they are not fit to fly, and this algorithm could help

Delivery drones will need to recognize when they are not fit to fly, and this algorithm could help

Gigaom

When (or if) Amazon and other companies begin delivering items via drones, there will be little room for error. Their drones must be equipped to deal with any unexpected obstacles that come their way, whether that’s a construction crane or strong winds and rain.

MIT researchers revealed a set of algorithms today that could help drones avoid catastrophe with advance planning. The first step takes place before the drone even takes to the air, when it computes a few potential routes out of the many it could take, allowing it to determine different situations it might encounter along its journey. That has the added benefit of freeing up computing time while the drone is in the air so it can focus on staying aloft.

“Imagine a huge tree of possibilities, and a large chunk of leaves collapses to one leaf, and you end up with maybe 10 leaves instead of…

View original post 190 more words

Apache CloudStack Virtual Router disk is full

Apache CloudStack Virtual Router disk is full

วันนี้สร้าง VM ใหม่ไม่ได้ เข้าไปดูใน log ของ management server เจออันนึงที่บอกว่า

Unable to contact resource.

com.cloud.exception.ResourceUnavailableException: Resource [DataCenter:1] is unreachable: Unable to apply userdata and password entry on router

ลองค้นๆดูมีคนเจอปัญหาและรายงาน bug ไปเรียบร้อยแล้ว

http://selfsigned.wordpress.com/2014/06/27/cloudstack-virtual-router-pains/

สาเหตุมาจาก partition /var ใน virtual router เต็ม เนื่องจาก log ไฟล์ conntrackd-stat.log มีขนาดใหญ่มากผิดปกติ วิธีแก้ตอนนี้คือการไปปิด log ในไฟล์ /etc/conntrackd/conntrackd.conf

โดยแก้จาก “LogFile on” เป็น “LogFile off” จากนั้นสั่ง /etc/init.d/conntrackd restart

และอย่าลืมเครียร์ log ไฟล์ด้วย อาจทำโดยใช้คำสั่ง cp /dev/null /var/log/

Screen Shot 2557-08-22 at 10.13.04 AM

Deploying WordPress – Part 2: Deploying WordPress with Capistrano

Deploying WordPress – Part 2: Deploying WordPress with Capistrano

Capistrano

ในตอนที่แล้วได้พูดถึงการจัดการซอร์ซโค้ดของ WordPress ด้วย Git และในตอนท้ายได้พูดถึงการ deploy WordPress โดยใช้ Git hook เอาไว้เล็กน้อย ลำพังตัว Git เองสามารถนำมาประยุกต์ใช้เพื่อ deploy WordPress ได้ก็จริง แต่ก็มีข้อจำกัดค่อนข้างมาก เช่นไม่สามารถเลือกได้ว่าจะ deploy ไปที่เซิร์ฟเวอร์ตัวไหน ไม่สามารถ rollback กลับไปที่รีลีสก่อนหน้าในกรณีเกิดปัญหาที่ไม่คาดคิดเป็นต้น การใช้ Capistrano เข้ามาช่วยในการะบวนการ deploy จะช่วยทำให้การ deploy ง่ายขึ้น และมีความยืดหยุ่นมากขึ้น โดยที่เราสามารถแทรกซอร์ซโค้ดที่ต้องการ พัฒนาส่วนขยายเพิ่มเติม หรือใช้ส่วนขยายที่มีคนพัฒนาเอาไว้แล้วก็ได้ Capistrano เป็นเครื่องมือที่ใช้ในการช่วย deploy ซอร์ซโค้ดของแอปพลิเคชันไปที่เซิร์ฟเวอร์ ซึ่งเดิมทีพัฒนามาเพื่อใช้กับแอปพลิเคชันที่พัฒนาด้วย Ruby on Rails แต่ก็สามารถเอามาประยุกต์ใช้กับแอปพลิเคชันที่พัฒนาด้วยภาษาอื่นๆได้

การทำงานของ Capistrano

 

capistrano

 

Capistrano จะถูกติดตั้งอยู่ในเครื่องของนักพัฒนา (Dev) ซึ่งใช้ Git เป็นซอฟต์แวร์ในการควบคุมรุ่นของซอฟต์แวร์ ซึ่งเราใช้ในการควบคุมรุ่นของ WordPress ซึ่งมี remote repository อยู่ที่ github การใช้งาน Capistrano จะทำผ่านคำสั่ง cap ทาง command line เมื่อเราใช้คำสั่ง cap โปรแกรม Capistrano จะเข้าไปอ่านไฟล์คอนฟิกเกอเรชั่นในไดเรกทอรี config ซึ่งอยู่ภายใต้โปรเจค (mysite) จากนั้นจะทำ remote execution ผ่านทาง ssh ไปที่เซิร์ฟเวอร์ production เพื่อใช้คำสั่ง git ในการดึงซอร์ซโค้ดจาก github มาไว้ที่เซิร์ฟเวอร์ production โดยจะเก็บซอร์ซโค้ดของการ deploy แต่ละครั้งแยกออกจากกันและใช้ symbolic link ชื่อว่า current เพื่อชี้ไปที่ซอร์ซโค้ดที่ถูก deploy ครั้งล่าสุดเสมอ

ด้วยวิธีการนี้ทำให้เราสามารถ rollback ไปที่การ deploy ก่อนหน้าได้ นอกจากนั้นยังอาศัยความสามารถของการทำ remote execution ผ่าน ssh ในการทำงานหลายๆอย่างบนเซิร์ฟเวอร์  เช่น restart  deploy ฐานข้อมูล MySQL ทำการสำรองข้อมูล และสร้างไฟล์คอนฟิกเกอเรชั่นสำหรับ WordPress ที่เหมาะสมสำหรับใช้ในจุดประสงค์ที่ต่างกันได้

ยกตัวอย่างวิธีการใช้งานคร่าวๆเพื่อให้เห็นภาพชัดเจนขึ้น เช่นถ้าเราต้องการที่จะ deploy development branch ของ repo ไปที่เซิร์ฟเวอร์สามารถทำโดยใช้คำสั่ง

$ cap deploy

ถ้าเราต้องการ rollback แอปพลิเคชันจากรีลีสปัจจุบันสู่รีลีสก่อนหน้า สามารถทำโดยใช้คำสั่ง

$ cap deploy:rollback

อ่านเพิ่มเติม