Category: Open Source Software & Freeware

  • Mozilla Thunderbird & Google Calendar

    1. ติดตั้ง extension 2 ตัวใน Thunderbird ได้แก่ Lightning และ Provider for Google Calendar ดังรูป

    Screenshot from 2015-01-12 13:55:01
    extension; lightning, Provider for Google Calender

    2. รีสตาร์ท Thunderbird จะพบปุ่ม Screenshot from 2015-01-12 13:47:30 อยู่ทางมุมบนขวา
    3. เข้า gmail.psu.ac.th ล็อคอินให้เรียบร้อย คลิก  Screenshot from 2015-01-12 14:25:17 แล้วเลือก Calendar
    4. ที่หน้า Calendar คลิก Screenshot from 2015-01-12 13:42:32 เลือก Setting

    5. คลิก Calenders ทีี่มุมซ้ายบน Screenshot from 2015-01-12 13:43:43

    6. เลือกปฏิทินที่ต้องการ

    Screenshot from 2015-01-12 13:44:58
    Available Calendar

    7. ตรวจสอบว่าใช่ปฏิทินที่ต้องการหรือไม่ดูที่ ช่อง Calender Owner ว่าเป็นอันเดียวกับ Username ที่ล็อคอินเข้า gmail

    Screenshot from 2015-01-12 13:45:26
    Calendar Owner

    8. เลื่อนดูด้านล่างในส่วนของ Private Address:

    Screenshot from 2015-01-12 13:45:49
    Private Address

    9. คลิกขวาที่ ICAL เลือก Copy Link Location

    Screenshot from 2015-01-12 13:47:1010. กลับมาที่ Thunderbird กดปุ่ม Screenshot from 2015-01-12 14:37:32 เพื่อเปิดปฏิทิน
    11. คลิกขวาที่ช่องว่างฝั่งซ้ายมือใต้คำว่า Calendar เลือก New Calendar

    Screenshot from 2015-01-12 13:48:07
    New Calendar

    12. ได้หน้าต่าง Create New Calendar เลือก Google Calendar กด Next

    Screenshot from 2015-01-12 13:56:5913. กด Ctrl-v เพื่อ paste URL ของปฏิทินที่ Copy มาในข้อก่อนหน้า

    Screenshot from 2015-01-12 13:57:2114. กด back 1 ครั้งแล้วกด Next ใหม่ (อันนี้น่าจะเป็นบักของ Ubuntu 14.10)

    Screenshot from 2015-01-12 13:57:3915. กด Next
    16. จะมีหน้าต่างเพื่อยืนยันตัวตนของ Google ปรากฎขึ้นมา

    Screenshot from 2015-01-12 14:00:1217.  กด Sign in จะได้อีกหน้าต่างดังรูป กดยอมรับ

    Screenshot from 2015-01-12 13:59:0518. จะมีหน้าให้เลือกปฏิทินที่ต้องการอีกครั้งกด Next

    Screenshot from 2015-01-12 13:59:30
    Lacate your calendar

    19. จะมีหน้าให้ ยืนยันตัวตน และหน้าเพื่อขอสิทธิ์การเข้าถึง อีกรอบกดให้ Sign in และยอมรับ

    20. กด Finish

    Screenshot from 2015-01-12 14:00:3721. ก็จะได้ปฏิทินเพิ่มมาตามต้องการ

    Screenshot from 2015-01-12 14:51:2822. ทั้งหมดนี้ทำบน Ubuntu 14.10 บน Windows ก็น่าจะทำเหมือนกัน
    23. สามารถเพิ่มลบเหตุการณ์ผ่าน Thunderbird ได้เลยไม่ต้องเข้าเว็บอีก …
    24. จากที่ทดสอบหนึ่ง Profile ของ Thunderbird สามารถมี Google Calendar ได้เพียง account เดียว
    25. ขอให้สนุกครับ

  • ติดตั้ง ownCloud เลือกใช้ user PSU Passport หรือ ftp server หรือ RADIUS Server

    เหมาะสำหรับหน่วยงานที่ต้องการทำ private cloud storage ของตนเอง โดยใช้ open source software ชื่อ ownCloud

    ownCloud-webpage
    สภาพแวดล้อม

    •     ติดตั้ง ownCloud ลงบน ubuntu server 14.04
    •     ติดตั้ง ownCloud เวอร์ชั่น ownCloud 7.0.4 (stable) แบบ apt-get install
    •     ติดตั้ง ownCloud เลือกใช้กับ MySQL/MariaDB Database
    •     ติดตั้ง ownCloud เลือกใช้ user PSU Passport หรือ เลือกใช้ user เดียวกับ ftp server หรือ RADIUS Server (โดยเลือกใช้ user name ผ่าน Apps ชื่อ External user support)

    ขั้นตอนเตรียม User Account

    1. ติดตั้ง ubuntu server 14.04.x ในขั้นตอน Install ให้เลือกแพ็กเกจ OpenSSH และ LAMP

    2. ติดตั้ง FreeRADIUS

    3. ติดตั้ง vsftpd

    4. ติดตั้ง lib-pam-radius

    5. แก้ไขไฟล์ที่เกี่ยวข้องกับ freeradius เพื่อเลือก database
    จบขั้นตอนนี้ เราได้ user ของ ftp server ซึ่งอาจจะเป็น local linux account หรือ ldaps user (PSU Passport) ผ่าน RADIUS server

    (ขั้นตอน 1-5 อ่านได้ที่นี่ ติดตั้ง ftp server + lib-pam-radius + authen psu-passport และ ldaps)

    ขั้นตอนถัดไปติดตั้ง ownCloud

    6. อ่านคำแนะนำวิธีติดตั้งผ่าน repository และ apt-get install owncloud

    7. สร้าง Datbase user, name, password

    8. ตั้งค่า ownCloud ครั้งแรกผ่านเบราว์เซอร์ เพื่อเลือก MySQL/MariaDB Server และ เลือกใช้ user name ผ่าน Apps ชื่อ External user support

    9. ติดตั้ง https ตามวิธีของท่าน (โปรดหาวิธีทำเองนะครับ)

    10. ที่เบราว์เซอร์เข้าใช้งานด้วย user ที่ใช้งานกับ ftp server ที่เราติดตั้งได้สำเร็จ
    จบขั้นตอนนี้ เรามี ownCloud ที่สามารถเข้าใช้งานด้วย user ที่เราเลือกไว้ในขั้นตอนที่ 5

    (ขั้นตอนที่ 6-10 อ่านได้ที่นี่ ติดตั้ง ownCloud และใช้ user เดียวกับของ ftp server)

     

  • เปลี่ยน Certificate!?

    เนื่อง Certificate *.psu.ac.th จาก Comodo เดิมซึ่งกลายเป็น Cert. ที่จัดว่า WEAK แล้ว ทางเจ้าหน้าที่เครือข่ายจึงได้ขอ Cert. ใหม่มา ที่ Strong ขึ้น 🙂 ก็ต้องมานั่งเปลี่ยน Cert. ในเครื่องที่ให้บริการขั้นตอนดังนี้

    • Download Cert. ใหม่มาซึ่งต้องติดต่อขอไปที่ Net@dmin โดยผ่านช่องทางของ help.psu.ac.th
    • ไฟล์ที่จะโหลดมาใช้งานมีทั้งหมด 3 ไฟล์ได้แก่ STAR_psu_ac_th.ca-bundle, STAR_psu_ac_th.crt และ STAR_psu_ac_th_key.key เมื่อดาวน์โหลดมาเสร็จแล้วให้เอาไปแทนที่เก่าได้เลย ในตัวอย่างนี้จะเก็บไว้ที่ /etc/ssl/private
    • ทีนี้ มาดู config เก่าของ apache2

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ServerName bahamut.psu.ac.th
    ServerAdmin cc-server-admin@group.psu.ac.th
    DocumentRoot "/var/www/html"
    ErrorLog ${APACHE_LOG_DIR}/bahamut.ssl_error_log
    TransferLog ${APACHE_LOG_DIR}/bahamut.ssl_access_log
    LogLevel warn

    SSLEngine on
    SSLCertificateFile /etc/ssl/private/STAR_psu_ac_th.crt
    SSLCertificateKeyFile /etc/ssl/private/STAR_psu_ac_th.key
    SSLCertificateChainFile /etc/ssl/private/STAR_psu_ac_th.ca-bundle

    RewriteEngine On
    RewriteRule /avl https://licensing.psu.ac.th

    <Directory /var/www/licensing>
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
    </Directory>
    </VirtualHost>
    </IfModule>

      • จะเห็นว่าไฟล์ชื่อไม่ตรงอยู่ไฟล์หนึ่งคือ STAR_psu_ac_th.key ก็เปลี่ยนชื่อให้ตรง เป็นอันเสร็จ
      • แต่ … เนื่องจากเป็น Cert. ใหม่ เพื่อเพิ่มความแข็งแรง เจ้าหน้าที่เครือข่ายจึงได้กำหนด Passphrase ไว้ด้วย ต้องแก้ไขแฟ้ม /etc/apache2/mods-enabled/ssl.conf ในบรรทัดที่เขียนว่า SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-passphrase ให้แก้ /usr/share/apache2/ask-for-passphrase เป็น /etc/ssl/private/passphrase-script แล้วสร้างแฟ้ม /etc/ssl/private/passphrase-script มีข้อความว่า

    #!/bin/sh
    echo "passphrase ที่ได้รับแจ้งจาก Net@dmin"

      • chmod +x /etc/ssl/private/passphrase-script และทดสอบ script ด้วยว่าผลลัพธ์ที่ได้ตรงกับ passphrase ที่ Net@dmin แจ้งมา
      • restart apache2 ด้วยคำสั่ง sudo service apache2 restart ถ้า passphrase ที่ใส่ไว้ในแฟ้ม passphrase-script ถูกต้องจะ restart สำเร็จ
      • เป็นอันเสร็จ

    สิ่งที่ต้องแก้เพื่อให้ได้ A+ ในการทดสอบกับเว็บ https://www.ssllabs.com/ssltest/analyze.html

    • แก้ไขแฟ้ม /etc/apache2/mods-enabled/ssl.conf โดยแก้ไข/เพิ่ม ข้อความดังต่อไปนี้

    SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:
    RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    SSLHonorCipherOrder on
    SSLProtocol all -SSLv3 -SSLv2
    SSLCompression off

    • sudo a2enmod headers เพื่อให้ module headers ของ apache2 ทำงาน
    • แก้ไขแฟ้มของไซต์ที่เปิด ssl ไว้ จากตัวอย่างนี้คือ /etc/apache2/sites-enabled/licensing-ssl.conf โดยเพิ่มข้อความว่า
      Header add Strict-Transport-Security "max-age=15768000;includeSubDomains"
    • ตัวอย่าง

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ServerName licensing.psu.ac.th
    ServerAdmin cc-server-admin@group.psu.ac.th
    DocumentRoot "/var/www/html/avl"
    ErrorLog ${APACHE_LOG_DIR}/licensing.ssl_error_log
    TransferLog ${APACHE_LOG_DIR}/licensing.ssl_access_log
    LogLevel warn
    SSLEngine on
    Header add Strict-Transport-Security "max-age=15768000;includeSubDomains"
    SSLCertificateFile /etc/ssl/private/STAR_psu_ac_th.crt
    SSLCertificateKeyFile /etc/ssl/private/STAR_psu_ac_th.key
    SSLCertificateChainFile /etc/ssl/private/STAR_psu_ac_th.ca-bundle
    </VirtualHost>
    </IfModule>

    • restart apache2 ด้วยคำสั่ง sudo service apache2 restart
    • ทั้งหมดนี้ทำ บน Ubuntu 14.04.1
    • ผลของการตั้งค่าตามนี้ จะทำให้ผู้ใช้ที่ยังใช้งาน Windows XP และ IE6 ไม่สามารถใช้งานเว็บไซต์ได้
    • จบ ขอให้สนุกครับ

    จุดสังเกตุเมื่อเปลี่ยน certificate แล้ว
    ก่อนเปลี่ยนบน Chrome เบราเซอร์
    https-sharedrive-chrome-before-update-cert

    หลังเปลี่ยนบน Chrome เบราเซอร์
    after

    ที่มา:

    http://www.bauer-power.net/2014/04/how-to-enable-http-strict-transport.html#.VJJ8pXtKW7A

    http://www.hackido.com/2009/10/quick-tip-auto-enter-password-for-your.html

  • วิธีติดตั้ง Window Manager แบบน้อยที่สุดบน Ubuntu Server

    เนื่องจากต้องการสร้าง VirtualBox ขนาดเล็กสุดๆเพื่อใช้เตรียมทำ Workshop แต่จะไม่สะดวกสำหรับผู้อบรมที่ไม่คล่องเรื่องคำสั่งบน Linux มากนัก อยากให้ Copy-Paste ได้บ้าง จึงต้องหาวิธีลง Window Manager ให้พอใช้ได้

    เริ่มต้นจากติดตั้ง ubuntu server version ที่ต้องการ จะใช้พื้นที่ประมาณ 890 MB คราวนี้เลือก Window Manager ที่เล็กที่สุดแต่ใช้งานง่าย นั่นคือ LXDE หรือ lubuntu-desktop ปัญหาอยู่ที่ว่า ถ้าลงแบบ Default มันจะลากเอาสิ่งที่ไม่ต้องการมามากมาย ทำให้ขนาดที่ใช้ขยายจาก 890 MB ไปถึง 2.5 GB ซึ่งใหญ่เกินไป

    จึงไปค้นหาวิธีดูพบว่าให้ทำดังนี้
    1. sudo apt-get install –no-install-recommends lubuntu-desktop
    2. เมื่อติดตั้งเสร็จ ให้ reboot เครื่องหนึ่งรอบ ก็จะเข้าสู่ lubuntu แบบน้อยที่สุด ใช้พื้นที่ไปเพียง 1.3 GB
    3. ปัญหาต่อมา หากใช้บน VirtualBox ก็จะติดปัญหาเรื่อง Screen Resolution ที่บีบบังคับไม่ให้เปลี่ยนแปลงได้ง่ายๆ จึงต้อง ติดตั้ง Guest Additions ลงไป แต่ เนื่องจากเป็นการลงแบบเล็กที่สุด จึงไม่ติดตั้งพวก Build Tools มาด้วย จึงต้องใช้คำสั่งนี้ก่อน
    sudo apt-get install build-essential
    4. จากนั้น จึงติดตั้ง Guest Additions ต่อไป แล้วปรับ Screen Resultion ได้ตามต้องการ

  • ไปงานมหกรรมซอฟต์แวร์โอเพนซอร์สแห่งประเทศไทย ครั้งที่ 12

    งานมหกรรมซอฟต์แวร์โอเพนซอร์สแห่งประเทศไทย ครั้งที่ 12 จัดที่ สถาบันการจัดการปัญญาภิวัฒน์ จ.นนทบุรี เป็นงานสัมมนาที่ดี วิทยากรที่มาบรรยายก็มีความรู้และทำงานอยู่ในภาคธุรกิจจริง สามารถถ่ายทอดได้เห็นภาพการนำโอเพนซอร์สซอฟต์แวร์ไปใช้งาน

    ossfest2014-hall

    เนื้อหาสาระโดยสรุป กิจกรรมที่น่าสนใจได้แก่
    – โซนงาน
    1. โซนงานสัมมนา Conference/Seminar
    การสัมมนา/เสวนา ที่มีเรื่องราวโอเพนซอร์สซอฟต์แวร์ที่น่าสนใจ ตั้งแต่ระดับผู้ใช้งานตามบ้านทั่วไป ระดับองค์กรธุรกิจ ผู้ประกอบการ ระดับภาคการศึกษา รวมถึงบริการออนไลน์ที่น่าสนใจ
    2. โซนห้องอบรมย่อย Workshop
    3. โซนห้องจัดแสดงนิทรรศการ/บูธประชาสัมพันธ์ Exhibition

    – มอบรางวัล Open Source Award ประจำปี 2014
    ซึ่งในปีนี้ พระวิภัทร ปัาวุฑฺโฒ (วิภัทร ศรุติพรหม) ได้รับรางวัลซึ่งเป็น 1 ใน 3 รางวัลที่แจกในปีนี้ (ร่วมแสดงความยินดี)

    – keynote topic 2 เรื่องคือ
    1. Digital Economy based on Open Data and Open Access Approach โดย ดร.วิรัช ศรเลิศล้ำวาณิช เป็นเรื่องราวเกี่ยวกับการนำเสนอแนวทางในการสนองตอบนโยบายประเทศในเรื่อง Digital Economy โดยวิทยากรนำเสนอว่า ในโลกอินเทอร์เน็ตปัจจุบัน เต็มไปด้วยข้อมูลทั้งแบบมีโครงสร้างและไม่มีโครงสร้างเช่น facebook เป็นต้น และเป็นแหล่งข้อมูลที่เปิดให้ทุกคนนำสิ่งต่างๆที่โพสต์กันอยู่ใน social network นำไป process เพื่อให้ได้ข้อมูลเป็นสถิติเพื่อใช้ในการทำธุรกิจได้ หรือสามารถรับทราบความเป็นไปในสังคมแบบเรียลไทม์ได้
    2. Open in the cloud from Microsoft Openness (Microsoft) โดยตัวแทนจากไมโครซอฟต์
    เป็นเรื่องราวเกี่ยวกับการนำเสนอ Microsoft Azure ผลิตภัณฑ์ที่รองรับการทำงานแบบ cloud ทำให้ไม่ว่าผู้ใช้จะใช้ open source server หรือ software ก็สามารถรันบน cloud จากการใช้ผลิตภัณฑ์ตัวนี้ได้ แบบมีค่าใช้จ่ายที่คิดตามการเลือกใช้งานและเวลาที่ใช้งาน ซึ่งสามารถเลือกได้ว่าต้องการทรัพยากรเท่าไร ติดตั้ง server ใหม่ได้ในเวลาอันสั้นโดยการเลือก template ที่ต้องการ

    – หัวข้อสัมมนาอื่นๆอีกมากมาย เช่น
    1. OpenStack : คุณดำรงศักดิ์ รีตานนท์ แนะนำให้ความรู้เบื้องต้น
    2. Social Media เพื่อการประชาสัมพันธ์ : คุณชีพธรรม ไตรคำวิเศษ เล่าให้ฟังขายไอเดียเรื่องคนไทยอ่อนประชาสัมพันธ์ และนำเสนอ Tweet deck (https://tweetdeck.twitter.com/) การใช้แอพ Tweetdeck สำหรับการใช้ Twitter แบบเหนือเมฆ
    3. Open Source และเทคโนโลยีเบื้องหลังระบบขนาดใหญ่ : คุณกิตติรักษ์ ม่วงมิ่งสุข เล่าเรื่อง facebook และ google ใช้ open source software ในเบื้องหลังการให้บริการ
    4. Wireless & Web Application Security with KALI Linux : อ.ขจร สินอภิรมย์สราญ เล่าเรื่องเกี่ยวกับระบบปฏิบัติการ Linux ที่ปรับแต่งเพิ่มเติมซอฟต์แวร์ในการเจาะระบบเพื่อใช้ในการเรียนรู้การรักษาความปลอดภัย ด้วยเวลาที่จำกัดจึงเล่าให้ฟังในส่วน Wireless LAN ถึงวิธีการและซอฟต์แวร์ที่ใช้ในการเจาะ Symmetric and Asymmetric Encryption
    5. Open Source Experience in DTAC : คุณทวิร พาณิชย์สมบัติ เล่าถึงประสบการณ์ในการนำโปรแกรมที่พัฒนาด้วย tools ต่างๆที่เป็น open source เข้าไปใช้งานทดแทนโปรแกรมเดิมที่มีค่าใช้จ่ายของ tools ที่ใช้ในการพัฒนา และเล่าให้ฟังถึงการปรับตัวของโปรแกรมเมอร์ในองค์กรที่ได้นำโปรแกรมใหม่นี้เข้าไปให้ใช้ ซึ่งต้องปรับตัวเองในการค้นคว้าหาคำตอบจากอินเทอร์เน็ตแทนการรอคอย vender ให้ความช่วยเหลือ
    6. Open Source กับ Digital TV : คุณโดม เจริญยศ เล่าถึงประสบการณ์ในการทำงานให้กับบริษัท TV Pool ในการเข้าไปประมูลงาน Digital TV ในเมืองไทย เล่าถึงการที่ต้องทำความเข้าใจการสื่อสารคำศัพท์ของคนในวงการไอที กับ คนในวงการบรอดคาสติ้ง จะเข้าใจไม่เหมือนกัน เช่น ความละเอียดของภาพ ขนาดของภาพ จะใช้ชื่อที่อ้างถึงแล้วเข้าใจตรงกันในวงการ และเล่าถึงการจัดซื้ออุปกรณ์เพื่อนำมาใช้ทำบริการ Digital TV เป็นการลดต้นทุนได้อย่างมหาศาลจากที่สำรวจตลาดว่ามีอะไรให้ใช้งานได้บ้าง แล้วมีโอเพนซอร์สซอฟต์แวร์อะไรให้ใช้ได้บ้าง และเล่าถึงการให้บริการ 24X7 ของการออกอากาศว่าจำเป็นต้องมีการจัดทำระบบ backup ไว้ด้วยในลักษณะ active – active ส่งสัญญาณออกอากาศด้วยชุด 2 ชุด พร้อมกัน และยังมีอีก 1 ชุด stand by รอชุด active ชุดใดชุดหนึ่งเสีย ก็เปลี่ยนแทนได้เลย
    7. Open source tools for multimedia production : คุณพีรพัทธ์ นันนารารัตน์ เล่าให้ฟังถึงวงการทำสื่อสิ่งพิมพ์และภาพยนตร์ การเลือกใช้ซอฟต์แวร์โอเพนซอร์สที่เป็นที่นิยมหลายตัว เช่น Darktable, Lives, Tupi, Synfig Studio, Audacity, Flash Develop, Blender เป็นต้น โดยเฉพาะ Blender นั้นเป็น tool ในการทำ effect ภาพยนตร์ที่ใช้งานได้จริง ได้นำ demo ภาพยนตร์ที่ทำจาก Blender มาให้ชมด้วย
    8. Open Source Road Map 2015 : ตัวแทนจากชมรมผู้ประกอบการโอเพนซอร์ส ภายใต้สมาคมสมาพันธ์โอเพนซอร์สแห่งประเทศไทย เล่าให้ฟังถึงสิ่งที่จะทำในปีค.ศ.2015 คือ การพัฒนานักพัฒนาด้านโอเพนซอร์สเป็นสาระสำคัญ แต่ก็ไม่ละเลยส่วนอื่นๆไปซะทีเดียว

    – และยังมีหัวข้อสัมมนาอื่นๆที่ไม่ได้เข้าฟังอยู่ในอีกหลาย Track เช่น Bootstrap 3 มนต์มายาแห่ง Open Source เป็นต้น

    – เสวนา 2 เรื่อง
    1. เสวนาเรื่องเทคโนโลยีกับการศึกษาไทย (Google for Education, CAT, ABAC)
    ในการเสวนานี้ เน้นไปที่การให้บริการ cloud โดย CAT เล่าเกี่ยวกับการให้บริการ cloud ที่มีค่าใช้จ่ายสำหรับหน่วยงานที่ต้องการใช้ cloud หรือจะสนับสนุนผลิตภัณฑ์ของคนไทยด้วยกัน ส่วน Google for Education ก็แสดงให้เห็นจุดยืนเกี่ยวกับการให้บริการ cloud ผ่านระบบที่เรียกว่า Google App for Education โดยไม่มีค่าใช้จ่ายในการใช้งาน และเล่าเรื่องการใช้งานที่มหาวิทยาลัยอัสสัมชัญ
    2. เสวนาเกี่ยวกับโปรเจ็คโอเพนซอร์สในมหาวิทยาลัย (มหาวิทยาลัยบูรพา, มหาวิทยาลัยสงขลานครินทร์, มหาวิทยาลัยขอนแก่น, มหาวิทยาลัยเทคโนโลยีสุรนารี, สถาบันการจัดการปัญญาภิวัฒน์)
    ในการเสวนานี้พอจะจับจุดสำคัญของแต่ละมหาวิทยาลัยได้ดังนี้
    มหาวิทยาลัยบูรพา จะเน้นไปที่กิจกรรมการเข้าค่ายเพื่อสร้างความตระหนักให้นักศึกษาคณะทางด้านไอทีเข้ามาเป็นพลเมืองนักพัฒนาโอเพนซอร์ส นอกเหนือไปจากการใช้ซอฟต์แวร์โอเพนซอร์ส และเชิญชวนทุกมหาวิทยาลัยเข้าร่วมกิจกรรมค่ายด้วยกัน
    มหาวิทยาลัยสงขลานครินทร์ จะเน้นไปที่กิจกรรมการให้ความรู้การนำโอเพนซอร์สซอฟต์แวร์ทางด้านเดสก์ทอปเพื่อการเรียนการสอน ทั้งการอบรมภายในมหาวิทยาลัยและออกไปจัดตั้งห้องคอมพิวเตอร์ให้กับโรงเรียนในสามจังหวัดชายแดนภาคใต้
    มหาวิทยาลัยขอนแก่น จะเน้นไปที่การเลือกใช้ซอฟต์แวร์ที่เหมาะสมกับสิ่งที่จะทำในช่วงเวลานั้น และเป็นมหาวิทยาลัยที่ผู้ช่วยอธิการบดีเป็นผู้ทำงานอยู่กับไอที และใช้โอเพนซอร์สซอฟต์แวร์แทบทุกตัว รวมทั้งมีค่าใช้จ่ายกับซอฟต์แวร์ประเภทที่ต้องจัดซื้อด้วยเช่นกัน และเป็นมหาวิทยาลัยแรกๆที่ใช้ Google App for Education โดยทุกคนหันมาร่วมกันใช้โดยไม่ได้บังคับ
    มหาวิทยาลัยเทคโนโลยีสุรนารี จะเน้นไปที่การพัฒนาซอฟต์แวร์การจัดสอบออนไลน์ที่ทำด้วยโอเพนซอร์ส เนื่องจากว่าไม่ได้มีเวลามากพอจึงไม่ได้พูดถึงประเด็นอื่นๆ
    สถาบันการจัดการปัญญาภิวัฒน์ จะใช้ moodle เป็น e-learning ของสถาบันแบบเต็มรูปแบบ และ ยังมีซอฟต์แวร์โอเพนซอร์สสำหรับเตรียมสไลด์การสอนด้วย prezi (http://prezi.com/windows/) และใช้ server และ web server ต่างๆเป็นโอเพนซอร์สทั้งหมดสำหรับที่ต้องลงมือทำเอง

    สามารถดูหัวข้อการสัมมนาทั้งหมดได้ที่ http://www.ossfestival.in.th/

    การไปร่วมงานในครั้งนี้ ทำให้ได้รับข่าวสารอัปเดตทิศทางของโอเพนซอร์สซอฟต์แวร์ในปัจจุบัน ยังคงไม่มีนโยบายที่ชัดเจนในระดับประเทศ และทราบว่าโอเพนซอร์สซอฟต์แวร์ที่นำมาเสนอในงานสัมมนาครั้งนี้เป็นความสามารถของวิทยากรแต่ละท่านที่ต้องการลดต้นทุนการซื้อซอฟต์แวร์ที่จะต้องใช้ในงานที่จะนำไปเสนอขายให้ลูกค้า โดยใช้ความรู้ของวิทยากรค้นหาความรู้จากอินเทอร์เน็ต จึงได้นำประสบการณ์มาเล่าสู่กันฟังในงานสัมมนา

    ผมก็เล่าให้ฟังแบบที่พอจะจับประเด็นได้นะครับ หากผิดพลาดประการใดก็ขออภัยไว้ ณ ที่นี้ด้วย หากมีข้อมูลเพิ่มเติมก็บอกได้นะครับ

    วิบูลย์

  • เทคนิคการใช้ vi

    1. เปิด 2 ไฟล์พร้อมกัน แยกแบบแนวตั้ง
    vi test.php vi-1

    กด Esc : vsp function.inc.php
    จะได้ผลอย่างนี้

    vi-2

    คำสั่งที่น่ารู้
    Ctrl+w w สลับระหว่างหน้าจอ
    Ctrl+w q ปิดไฟล์
    Ctrl+w v เปิดไฟล์เดียวกันที่ยาวมาก ต้องการด้านนึงดูหัวไฟล์ อีกด้านนึงดูท้ายไฟล์

    2. หากต้องการเลื่อน Code หลายๆบรรทัด ไปทางขวามือ 5 Space
    Ctrl + V แล้ว เลือกบรรทัดที่ต้องการ จากนั้น
    Shift + I แล้ว เคาะ Space Bar 5 ครั้ง จากนั้น
    แล้วกดปุ่ม Esc

  • สร้าง DLNA Media Server ผ่าน Ubuntu ด้วยโปรแกรม MiniDLNA

    อุปกรณ์ที่บ้านรองรับ DLNA (มือถือ, PC, Notebook, TV ฯลฯ) มี Notebook เก่า ๆ อยู่เครื่องไม่รู้เอามาทำอะไรดี จะทำ Stream Media Server ใช้ง่าย ๆ ได้ยังไง

    อยากรู้ DLNA คืออะไรเชิญอ่านได้ที่นี่ครับ

    http://www.deviceacademy.com/forum/th/node/858

    เกี่ยวกับ Project MiniDLNA

    http://sourceforge.net/projects/minidlna/

    https://help.ubuntu.com/community/MiniDLNA

    ขั้นตอนการติดตั้ง DLNA Media Server ผ่าน Ubuntu ด้วยโปรแกรม MiniDLNA

    1. วิธีการขั้นแรกก็ติดตั้ง Ubuntu 14.04 LTS จะ Desktop หรือ Server แล้วแต่ศรัทธา

    2. ติดตั้ง MiniDLNA

    sudo apt-get install minidlna

    3. สร้าง Folder สำหรับทำ Media Server ดังนี้

    mkdir /home/[user]/music
    mkdir /home/[user]/picture
    mkdir /home/[user]/video
    sudo mkdir /var/cache/minidlna

    4. แก้ไขไฟล์ดังนี้

    sudo vim /etc/minidlna.conf

    4.1) ตั้งค่าในส่วนของ folder ที่จะให้ DLNA Server ให้บริการโดยแบ่งเป็น 3 แบบ คือ A = Audio, V= Video, P = Picture

    # If you want to restrict a media_dir to a specific content type, you can
    # prepend the directory name with a letter representing the type (A, P or V),
    # followed by a comma, as so:
    # * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music)
    # * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
    # * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos)
    #media_dir=/var/lib/minidlna
    media_dir=A,/home/[user]/music
    media_dir=P,/home/[user]/picture
    media_dir=V,/home/[user]/video

    4.2) ตั้งในส่วนของ network_interface โดยอุปกรณ์ที่จะใช้งานได้ต้องอยู่วงเดียวกับ DLNA Server

    # Network interface(s) to bind to (e.g. eth0), comma delimited.
    # This option can be specified more than once.
    network_interface=eth0

    4.3) ตั้งค่าชื่อที่จะปรากฎที่อุปกรณ์เมื่อจะเข้าใช้งาน DLNA Server

    # Name that the DLNA server presents to clients.
    # Defaults to "hostname: username".
    friendly_name=DLNA Media Server

    4.4) ทำการตั้งค่า Folder ที่ไว้เก็บ Database และ Cache หน้าปก Album Art (อาจจะทำให้การ Update ข้อมูลเมื่อมีการใส่ file ใหม่หน่วงบ้าง แต่เวลาเรียกไฟล์เยอะ ๆ จะได้เร็วขึ้น)

    # Path to the directory that should hold the database and album art cache.
    db_dir=/var/cache/minidlna

    4.5) ตั้งค่าให้เขียน log file เอาไว้ debug software

    # Path to the directory that should hold the log file.
    log_dir=/var/log

    4.6) ตั้งให้ scan file อัตโนมัติเมื่อมีไฟล์ใหม่

    # Automatic discovery of new files in the media_dir directory.
    inotify=yes

    5. ตั้งให้ start โปรแกรมเมื่อเปิดเครื่องโดยทำการแก้ไขไฟล์

    sudo vim /etc/default/minidlna

    – ตรวจสอบค่า START_DAEMON ว่าเป็น yes หรือไม่

    # Start the daemon if set to "yes"
    START_DAEMON="yes"

    5. ทำการ Restart MiniDLNA Server ดังนี้

    sudo service minidlna restart

    ที่เหลือก็แค่เปิด tv notebook pc ดูครับ โดยไฟล์ที่ใส่ลงไป จะโยนผ่าน samba share, ssh, ftp แล้วแต่จะสะดวกครับ โดยข้อจำกัดมีอยู่บ้างครับ คือไฟล์ที่ DLNA Support แน่ ๆ ก็ mp4 แต่พวก flv ไม่ครับส่วน mkv อันนี้รองรับเปิดได้ครับ (จริง ๆ ก็อยู่ที่อุปกรณ์ปลายทางด้วยว่ารองรับ codec ไหม)

    ส่วนอุปกรณ์ที่รองรับมีอีกคำนอกเหนือ DLNA คือ UPnP ลองดูแล้วครับ กล่อง TV Digital หลายกล่องก็รองรับอยู่นะครับ ส่วน SMART TV มีแน่ ๆ ครับ จริง ๆ Windows Media Player ก็ทำเป็น DLNA Server ได้เช่นเดียวกับแต่จะเรียกว่า Media Stream ครับ

    จริง ๆ youtube ก็ทำ stream ได้เช่นกัน แต่ไม่ได้ stream ตรง ๆ แต่เหมือน remote control ซึ่งก็หน่วงพอสมควร แต่ DLNA ที่ผมใช้ก็เพื่อดูหนัง MV การ์ตูนซะมากกว่า ซึ่งจะไม่มีการ remote control ต้องควบคุมที่อุปกรณ์เอง ทำหน้าที่เป็นแค่ share file server แต่ share ทั้งทีก็ทำให้ใช้ได้ทุกรูปแบบ โดยวิธีใช้ประมาณโหลดเสร็จก็โยนใส่ notebook ที่ลง dlna server ไว้ แล้วก็ปิดเครื่องที่โหลดทิ้ง นอนดูผ่านทีวี หรือดูผ่านมือถือได้เลย

  • ติดตั้ง Pykota บน Ubuntu Server 14.04.1 LTS

    1. ติดตั้งโปรแกรมที่จำเป็นก่อน
    sudo apt-get install cups subversion postgresql postgresql-client postgresql-common libX11-dev libxt-dev libxext-dev python-dev python-jaxml python-reportlab python-reportlab-accel python-pygresql python-osd python-egenix-mxdatetime python-imaging python-pysnmp4 python-chardet python-pam python-pysqlite2 python-mysqldb python-ldap apparmor-utils

    2. แก้ config ของ cups
    #sudo vi /etc/cups/cupsd.conf

    ที่ <Location />
    เพิ่ม  allow all

    ที่ <Location /admin>
    เพิ่ม  allow ip_admin

    ที่ <Policy default>
    comment JobPrivateValues default
    เพิ่ม
    JobPrivateValues job-originating-host-name
    ที่ <Policy authenticated>
    comment JobPrivateValues default
    เพิ่ม
    JobPrivateValues job-originating-host-name

    3. แก้ config ของ PostgreSQL
    #sudo pico /etc/postgresql/9.3/main/pg_hba.conf
    เติมข้อความนี้ต่อไปที่ท้ายสุดของแฟ้ม
    host all all 10.0.5.3/24 trust
    ***ให้เปลี่ยนเลข ip จาก 10.0.5.3 เป็นเลข ip ของ server ที่กำลังใช้

    4. ติดตั้งเครื่องพิมพ์
    เปิด Browser ไปที่ url http://ip_server:631
    cups001

    คลิก tab Administration
    cups002

    คลิก Add Printer
    cups003

    เลือก Printer คลิก Continue

    cups004

    ใส่รายละเอียด ของเครื่องพิมพ์
    ติ๊ก เลือก Share This Printe
    คลิก Continue


    cups005

    เลือก Driver ของเครื่องพิมพ์ คลิก Add Printer
    cups006
    คลิก  Set Default Option

    ทดสอบการพิมพ์โดยเลือก Print Test Page
    cups007

    5. ติดตั้งเครื่องพิมพ์บนเครื่อง Client และทดสอบการพิมพ์

    6. ติดตั้งโปรแกรม Pykota
    #cd /usr/share
    #svn co http://svn.pykota.com/pykota/trunk pykota
    #cd pykota
    #python checkdeps.py
    #python setup.py install

    7. สร้างผู้ใช้ pykota ด้วยคำสั่ง
    #sudo adduser –system –group –home /etc/pykota –gecos Pykota pykota
    #sudo adduser lp pykota

    8. จัดการ postgresql ต่อดังนี้
    #sudo su – postgres -c “psql -f /usr/share/pykota/initscripts/postgresql/pykota-postgresql.sql template1”

    9. ทำให้ cups รู้จัก Pykota
    #cd /usr/lib/cups/backend
    #sudo ln -sf /usr/share/pykota/bin/cupspykota
    #sudo chmod -Rf 755 /usr/share/pykota/bin/*
    #sudo chmod -Rf 755 /usr/lib/cups/backend*
    #sudo /etc/init.d/cups restart

    แก้ไขแฟ้ม /etc/cups/printers.conf
    #sudo vi /etc/cups/printers.conf
    <DefaultPrinter abc>
    DeviceURI parallel:/dev/lp0
    ที่บรรทัด DeviceURI parallel:/dev/lp0
    ให้แทรกเพิ่มคำว่า cupspykota:// เข้าไป กลายเป็นดังตัวอย่าง
    DeviceURI cupspykota://parallel:/dev/lp0
    ***abc คือชื่อเครื่องพิมพ์ที่ add ไว้ตามข้อ 4.

    sudo cp /usr/share/pykota/conf/pykota.conf.sample /etc/pykota/pykota.conf
    sudo cp /usr/share/pykota/conf/pykotadmin.conf.sample /etc/pykota/pykotadmin.conf
    sudo chown -Rf pykota.pykota /etc/pykota/

    10. ทำให้ apparmor รู้จัก Pykota
    aa-complain cupsd

    11. แก้ไขแฟ้ม /etc/pykota/pykota.conf
    ไปที่ประมาณบรรทัด 987 แล้วลบบรรทัดข้อความว่า policy: deny ทิ้ง
    แล้วไปที่บรรทัดล่างสุดของแฟ้ม เติมต่อท้ายว่า
    [abc]
    enforcement : strict
    ***abc คือชื่อเครื่องพิมพ์ที่ add ไว้ตามข้อ 4.

    12. เพิ่มเครื่องพิมพ์ให้ Pykota
    #pkprinters –add –charge 1.0 –description “Printer for ITZONE 3nd” abc
    ***abc คือชื่อเครื่องพิมพ์ที่ add ไว้ตามข้อ 4.
    ***charge 1.0 คือคิดค่าพิมพ์หน้าละ 1 บาท

    13. เพิ่ม User ให้ Pykota
    /usr/local/bin/pkusers –add –limitby balance –balance 20 patt.e
    /usr/local/bin/edpykota –add –printer abc patt.e
    ***abc คือชื่อเครื่องพิมพ์ที่ add ไว้ตามข้อ 4.
    ***–add คือเพิ่ม, User
    ***–limitby balance คือ limit การพิมพ์ด้วย balance
    ***–balance 20 คือ กำหนด โควต้าไว้ 20
    ถ้า +20 คือ เพิ่มจากของเดิม 20
    ถ้า -20 คือ ลดจากของเดิม 20
    ถ้า 20 กำหนดให้เป็น 20
    ***patt.e คือ user
    ถ้าไม่กำหนด user คือทำกับทุก user ที่อยู่ใน Pykota

    14. ทดสอบพิมพ์จากเครื่อง Client

  • เรียนรู้วิธีการใช้งาน Cacti เพื่อ Monitor Server

    ท่านสามารถอ่านวิธีติดตั้ง Cacti ได้ที่นี่
    http://sysadmin.psu.ac.th/2014/07/24/cacti-setup/

    วิธีการติดตั้ง SNMP Query MIB เพิ่มเติม รวมถึง MIB ของโปรแกรม SNMP Informant ซึ่งใช้ติดตั้งเป็น Agent ของ Windows Server โดยมีขั้นตอนดังนี้

    วิธีการเพิ่มเติม snmp query template สำหรับ cacti

    1) ทำการ move resource เป็น resource_old

    sudo mv /usr/share/cacti/resource /usr/share/cacti/resource_old

    2) ทำการสร้าง folder resource ขึ้นมาใหม่และทำการโหลดไฟล์ resource ใหม่จาก web มาวาง

    cd /usr/share/cacti
    sudo mkdir resource
    cd resource
    sudo wget http://ftp.psu.ac.th/pub/psu-monitor/resource.tar.gz
    sudo tar -xvzf resource.tar.gz

    3) ทำการเพิ่ม Template ลบไปฐานข้อมูลโหลด Download xml ทำการติดตั้งดังนี้

    cd /home/workshop/Desktop/
    wget http://ftp.psu.ac.th/pub/psu-monitor/template.zip
    unzip template.zip

    ทำการ Import ไฟล์ xml ทั้งหมด

    – ตัวอย่างวิธีการ Import Template2014-07-25_053233

    4) ทำการตั้งค่า Linux Host Template ใหม่ดังนี้2014-07-25_055104

    ทำการ Add Associated Graph Templates และ Data Queries ดังนี้ (หลังจากกด save มันจะไม่ดีดไปไหน แต่ save แล้วครับ)2014-07-25_055500

    5) ทำการตั้งสร้าง Windows Host Template ใหม่ดังนี้2014-07-25_0559182014-07-25_060021

    ทำการ Add Associated Graph Templates และ Data Queries ดังนี้

    2014-07-25_060447

    สำหรับเครื่องที่เป็น Linux เปิดเฉพาะ snmp ก็เพียงพอ แต่เครื่องที่เป็น Windows ต้องลงโปรแกรม informant เพิ่มเติมเพื่อเสมือนเป็น agent ไปดึงค่าจากเครื่องไปสร้าง MIB พิเศษเพื่อให้ Cacti เข้ามาดึงข้อมูล โดยโปรแกรมสามารถ Download ได้ที่นี่

    http://www.wtcs.org/informant/files/informant-std-17.zip

    6) เพื่อไม่ต้อง ตั้งค่า snmp บ่อย ๆ ให้ทำการแก้ไข snmp default ดังรูป2014-07-25_061716

    วิธีการเพิ่ม device

    1) ทำการ Add Device ดังนี้2014-07-25_061537

    2) ใส่ข้อมูลต่าง ๆ ของ Device2014-07-25_062211

    3) หลังจากนั้นให้สังเกตุคำว่า success และมีจำนวน items แสดงว่าเราสามารถดึงค่าได้แล้ว ในกรณีที่ยังไม่ได้ เมื่อให้ทำการทดสอบโดยกดเลือก Verbose Query ทุกครั้ง ถ้ายังไม่ success แนะนำว่าอย่าเพิ่งสร้าง Graph ครับ เพราะเราไม่รู้ว่าเครื่องมีกี่ CPU กี่ interface แรมเท่าไหร่ จึงไม่สามารถสร้าง Graph ล่วงหน้าได้2014-07-25_062403

    – เมื่อกดปุ่ม Verbose Query ระบบจะทำการดึงข้อมูลมาให้ดูดังรูป2014-07-25_062639

    วิธีการสร้าง Graph ประเภท Linux Machine

    – ทำการ Create Graph ในหน้า device ดังนี้

    2014-07-25_062937

    – ให้เลือกทีละหัวข้อจากนั้นทำการกดปุ่ม Create2014-07-25_063048 2014-07-25_0631362014-07-25_0638422014-07-25_063251 2014-07-25_063421 2014-07-25_063456 2014-07-25_063733

    วิธีการสร้าง Graph ประเภท Windows Machine

    – ให้ลองสร้าง Device ประเภท Windows

    – ทำการ Create Graph ในหน้า device ดังนี้ (หลังเลือก Graph Template Name หลังสุดนะครับ ถ้าเลือกเป็น Pack อาจเยอะจนตาลาย)

    – ให้เลือกทีละหัวข้อจากนั้นทำการกดปุ่ม Create2014-07-25_065458 2014-07-25_0656102014-07-25_0659412014-07-25_0700162014-07-25_0656422014-07-25_0700572014-07-25_065813 2014-07-25_065834    2014-07-25_070208

    วิธีการเพิ่ม Graph Tree

    2014-07-25_070622 2014-07-25_070652 2014-07-25_070731

    – เราสามารถดูกราฟได้ที่หัวข้อ Graph2014-07-25_070852

    จบแล้วครับสำหรับการใช้งาน cact ใครอยากลอง template ส่วนอื่น ๆ สามารถลองได้ครับ