Taniya's blog

Google calendar นั้นมีบริการส่ง SMS ไปยังโทรศัพท์มือถือของผู้ใช้ เพื่อแจ้งเตือนกิจกรรม ต่าง ๆ ในปฏิทิน โดยผู้ใช้ต้องยืนยันตัวตนกับ Google ก่อน การส่ง SMS เตือนนั้นจะมีค่าโดยปริยายคือ เตือนล่วงหน้า 10 นาที

ในบทความนี้เราจะสร้าง shell script ที่ใช้ส่ง SMS โดยความต้องการพื้นฐานมีดังนี้

  • ยืนยันตัวตนและหมายเลขโทรศัพท์มือถือกับ Google calendar
  • ติดตั้งโปรแกรม ntpdate เพื่อใช้ปรับเวลาเครื่องให้ตรง
  • ติดตั้งโปรแกรม gcalcli ซึ่งใช้ในการติดต่อกับ Google calendar

ในส่วนการยืนยันตัวตนและหมายเลขโทรศัพท์มือถือนั้น จะไม่กล่าวถึง

เริ่มด้วยติดตั้งโปรแกรม ntpdate และ gcalcli

$ sudo aptitude install ntpdate gcalcli

จากนั้นสร้าง shell script ที่ใช้ส่ง SMS

$ vi sms.sh

การติดตั้งซอฟต์แวร์ในเดเบียนทางอินเทอร์เน็ตโดย apt-get นั้นต้องใช้การดาวน์โหลดโดยใช้ ftp หรือ http ซึ่ง apt-get มีตัวดาวน์โหลดของมันเองคือ

/usr/lib/apt/methods/ftp

และ

/usr/lib/apt/methods/http

แต่มีข้อเสียคือมันบริโภคแบนวิดท์จนเกือบหมด ทำให้ทำอย่างอื่นแทบไม่ได้ เรามีวิธีแก้ไขได้หลายวิธี เช่น ทำ proxy ที่มีการจำกัดความเร็ว แล้วสั่งให้ apt-get ใช้ proxy ตัวนั้นทาง /etc/apt/apt.conf.d หรือกำหนดผ่านตัวแปรระบบชื่อ http_proxy และ ftp_proxy สำหรับวิธีที่ง่ายกว่านั้นคือ ใช้โปรแกรมที่ชื่อ trickle ครับ เริ่มด้วยติดตั้ง

1. ตรวจสอบจำนวนและความยาว track

$ mplayer  vcd://
MPlayer 1.0rc1-4.1.2-DFSG-free (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(TM) XP 1800+ (Family: 6, Model: 8, Stepping: 1)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled with runtime CPU detection.
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing vcd://.
track 01:  adr=1  ctrl=4  format=2  00:02:00  mode: 3
track 02:  adr=1  ctrl=4  format=2  00:18:68  mode: 3

สำหรับท่านที่ใช้การ์ดแสดงผลของ nvidia และใช้ closed driver ของ nvidia ใน kernel ของ debian ตั้งแต่ version 2.6.20 เป็นต้นมา อาจพบปัญหาการติดตั้ง nvidia driver ดังนี้

FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol ‘paravirt_ops’

สาเหตุจากการเปิดคุณสมบัติ Paravirtualization ของตัว kernel โดย module nvidia.ko นั้นมีการเรียกฟังก์ชัน paravirt_ops ผ่านทางฟังก์ชั่น udelay อีกที ปัญหาคือ paravirt_ops นั้นถูกกำหนดให้เป็น GPL-only นั่นคือยอมให้เรียกจาก driver ที่เป็น GPL เท่านั้น ก็เลยเป็นเรื่องครับ ( ความเป็นมาอ่านจากนี่)

เรามีทางเลือกอะไรบ้าง
ผมเสนอทางเลือก 2 วิธีคือ (จริงๆ แล้วมีมากกว่านี้ครับ)

การทำ screencast ใน linux โดยทั่วไปนั้นจะใช้การเข้ารหัสวิดีโอโดยใช้ codec จำพวก mpeg, ogg หรือ flv ซึ่งเป็น codec ที่เป็นชนิดที่มีการสูญเสีย (lossy compression) ที่มีข้อดีคือขนาดวิดีโอที่ได้นั้นเล็ก แต่ภาพที่ได้ไม่คมชัดนัก ซึ่งน่าจะเหมาะกับการโชว์พวก Desktop effect เช่น beryl/compiz เป็นต้น แต่กับงานพวกสื่อการสอนนั้น ต้องการความชัดเจนของวิดีโอมาก ทำให้ codec แบบ mpeg, ogg หรือ flv ไม่น่าจะเหมาะนัก สำหรับท่านที่เคยใช้โปรแกรม sceencast บน windows ชื่อ Techsmith Camtasia studio นั้น อาจต้องทึ่ง ในความชัดของวิดีโอที่ได้ อันเป็นผลมาจาก

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้