ได้อานิสงฆ์มาจากการไปเรียน Training 11 คุณครูหมีเท็ดดี้บอกแว๊บๆ ว่ามีเครื่องมือในการสร้าง Meta Package ได้ง่ายๆ ผมเองก้อไม่ได้สนใจอะไรเพราะชอบ build deb แบบดุ้นๆ เพิ่งจะมาได้ดูเมื่อ 2 วันที่แล้วนี่เอง ลองเล่นดูก้อพบว่า เอ๊ะมันง่ายเกินไปหรือเปล่า เอาล่ะโปรแกรมที่ช่วยเราทำ Meta Package แบบง่ายๆ นี้ชื่อว่า equivs ใครยังไม่มีก้อติดตั้งได้เลยครับ

$ sudo apt-get install equivs

สำหรับการใช้งานก้อไม่ยากครับ equivs จะมีเครื่องมือสร้าง control file คล้ายๆ กับการสร้างไฟล์ spec ไฟล์ของแพคเกจแบบ RPM แต่ไฟล์ที่ได้นี้จะ compile ได้ด้วย equivs ไม่ได้ครับ เรามาลองสร้าง control ไฟล์กันก่อนครับ สั่งสร้าง control ไฟล์โดยใช้คำสั่ง

$ equivs-control package-thai-setup.ctl

ลืมบอกไปว่าเราจะสร้างแพคเกจติดตั้งภาษาไทย ฟอนต์ และอื่นๆ ในไฟล์ package-thai-setup.ctl ที่เราได้ก้อจะมีหน้าตาอย่างนี้ครับ

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2

Package: <package name; defaults to equivs-dummy>
# Version: <enter version here; defaults to 1.0>
# Maintainer: Your Name <yourname@example.com>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: <short description; defaults to some wise words>
 long description and info
 .
 second paragraph

ซึ่งเป็น template ง่ายๆ ให้เราแก้ไขได้ เอาล่ะสิ่งที่เราต้องทำคือใส่ชื่อแพคเกจ เวอร์ชั่น ใครเป็นคนดูแล เพคเกจนี้ต้องมีแพคเกจอะไรบ้าง (ในส่วน depends) กำหนด Architecture, Copyright และใส่รายละเอียดว่าแพคเกจที่เราสร้างคือแพคเกจเกี่ยวกับอะไร ผมใส่รายละเอียดได้แบบนี้ครับ

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2

Package: package-thai-setup
Version: 1.0ubuntu1
Maintainer: Anuchit Chalothorn <anoochit@gmail.com>
# Pre-Depends: <comma-separated list of packages>
Depends: language-pack-th-base, language-pack-th, language-pack-gnome-th-base, language-pack-gnome-th, language-support-fonts-th, language-support-input-th, language-support-translations-th, language-support-writing-th
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
Architecture: i386
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: setup for Thai language package
 This package for Thai language package setup for all Thai locale, input method and display.

จากนั้นก้อ สั่ง compile package กันได้เลยโดยใช้คำสั่ง

$ equivs-build package-thai-setup.ctl

เราก้อจะได้ไฟล์ package-thai-setup_1.0ubuntu1_i386.deb ออกมาแล้ว หากเราสั่งติดตั้งแพคเกจนี้ ตัวติดตั้งก้อจะดาวน์โหลดแพคเกจที่เป็น depends มาให้เรา ซึ่งถือว่าเป็นการสร้างแพคเกจ .deb แบบง่ายสุดๆ ซึ่งสามารถใช้งานได้กับ debian และ ubuntu เลยล่ะ :)

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

วิธีการติดตั้ง เราต้องกำหนด SVN Repository กันก่อน อาจเก็บไว้ที่ /home/svn แล้วเราจะมีโปรเจคย่อยๆ ในนั้น เช่น myproject เป็นต้น ให้คุณสร้างไดเรคทอรีสำหรับ SVN Repository ดังนี้

   $ sudo mkdir /home/svn
   $ cd /home/svn
   $ sudo mkdir myproject
   $ sudo chown -R www-data myproject
   $ sudo chgrp -R subversion myproject
   $ sudo chmod -R g+rws myproject

จากนั้นสร้าง project config file โดยใช้คำสั่งดังนี้

  $ sudo svnadmin create /home/svn/myproject

วิธีการ access SVN มีหลายวิธีใน how-to นี้เราใช้ svn protocal (svn://hostname/project-name) ครับ สั่งเริ่มต้นการทำงานของ SVN Server โดยใช้คำสั่ง

  $ svnserve -d –foreground -r /home/svn

เปิด terminal มาอีกหน้านึงครับแล้วลอง checkout ไฟล์ดูโดยใช้คำสั่ง

  $ svn co svn://hostname/myproject myproject

เราจะได้ไดเรคทอรี myproject ที่ checkout มา เป็นเวอร์ชั่น 0 ให้คุณเพิ่มเติมไฟล์ลงในไดเรคทอรีนี้แล้วสั่ง add และ commit ดังนี้

  $ cd myproject
  $ echo "readme" > readme.txt
  $ svn add * –force
  $ svn commit

เท่านี้เองครับ เราก้อสามารถ commit ไฟล์ไปที่ repository ได้แล้ว ถ้าอยากทราบคำสั่งใน SVN ก้อใช้

  $ svn help

สำหรับ SVN Client ที่ใช้ง่ายๆ โดยที่ไม่ต้องพิมพ์บน command line ก้อมี RapidSVN, TortoiseSVN เป็นต้น

ผมเห็นคนชอบ link ภาพจากเว็บโน่นนี่บางทีก้อสร้างปัญหาประมาณว่าไม่สร้างภาพเอง ใช้ tag img ชี้ลิงค์ไปง่ายดี ปัญหาที่ตามมาคือปริมาณ traffic ที่มากขึ้นของเว็บที่ถูก link ลองนึกดูเล่นๆ หากเว็บคุณมีคนดูมาก แถมมีภาพสวยสวยๆ เยอะ มีคนเข้าเยอะและหวังดี เอาภาพจากเว็บเราไปโชว์ในเว็บอื่นซึ่งก้อคงเป็นเว็บคล้ายๆ กัน ปริมาณ traffic ที่มากขึ้นที่ไม่ได้มาจากเว็บตัวเองก้อทำให้เสียค่าใช้จ่ายในเรื่อง data transfer มากขึ้นด้วย วิธีแก้ไขง่ายๆ ก้อคือใช้ htaccess นี่แหละครับ มาดูวิธีกันครับ

ใส่ .htaccess แบบนี้จะไม่โชว์อะไรเลย

RewriteEngine on
RewriteCond %{HTTPREFERER} !^$
RewriteCond %{HTTP
REFERER} !^http://(www.)?domain.com/.$ [NC]
RewriteRule ^.
.(bmp|tif|gif|jpg|jpeg|jpe|png)$ – [F]

เอาแบบโชว์ภาพอื่นแทนภาพที่ link จากเราไปก้อได้ครับ ตั้งค่าแบบนี้

RewriteEngine on
RewriteCond %{HTTPREFERER} !^$
RewriteCond %{HTTP
REFERER} !^http://(www.)?domain.com/.$ [NC]
RewriteRule .
.(gif|jpe?g|png)$ http://www.domain.com/boooh.jpg [R,NC,L]

เอาภาพหน้าผีไปโชว์เล้ย เห่อๆ ชอบ link ภาพจากเว็บคนอื่นนัก :P

 

 

SugarCRM เป็น CRM Solution ใช้งานบนเว็บพัฒนาด้วยภาษา PHP ที่ผ่านมาเราจะนึกถึง SugarCRM เป็นชื่อแรกๆ เนื่องจากได้รับความนิยมสูงที่สุดตัวหนึ่งในบรรดา Open Source CRM Solution ตัว SugarCRM มีหลายรุ่นด้วยกันหากใครเป็นแฟนพันธ์แท้ก้อคงจะทราบแล้วว่า SugarCRM มีด้วยกัน 3 รุ่น คือ Enterorise, Profestional และ Community ซึ่งแต่ละรุ่นก้อมีคุณสมบัติแตกต่างกัน หากสนใจเข้าไปดูรายละเอียดจากเว็บไซต์ข้างล่างนะครับ ใน How-to นี้เราจะมาติดตั้ง SugarCRM Community อย่างเซียนกันครับ เหมาะสำหรับ SMEs ที่ต้องการมี CRM Solution เอาไว้ใช้งานโดยลงทุนไม่มากนัก

ระบบปฏิบัติการที่ผมเลือกใช้คือ Ubuntu 8.10 โดยโมดูลใน SugarCRM ที่เราจะใช้กันคือ My Portal, Calendar, Activities, Contacts. Accounts, Leads, Opportunities. Case, Bugtracker, Document และที่ขาดไม่ได้คือ Email ครับ ซึ่งใน SugarCRM Community Edition มีโมดูลพื้นฐานพร้อมสรรพสำหรับองค์กรหรือ SMEs ขนาดย่อมๆ ใช้งานได้เลยล่ะครับ โดยไม่ต้องลงทุนซื้อรุ่น Enterprise ราคาแพงๆ แต่อย่างใด เอาละเรามาเริ่มติดตั้งกันเลยครับ

ก่อนติดตั้งเรามาทำความเข้าใจกันก่อน เครื่องที่ผมใช้มีชื่อว่า server1.example.com มี IP address เป็น 192.168.0.100 ค่าที่ตั้งในเครื่องของคุณอาจแตกต่างกันไปให้คุณเปลี่ยนตามชื่อ server และ IP address ของคุณนะครับ เราจะติดตั้ง SugarCRM ในได้เรคทอรี /var/www/sugarcrm ขั้นแรกเราแปลงร่างเป็น root กันก่อนโดยใช้คำสั่ง

$ sudo su

จากนั้นติดตั้งโปรแกรมที่เราต้องใช้กันเริ่มด้วย unzip เพื่อใช้คลี่ไฟล์แพคเกจ SugarCRM โดยใช้คำสั่ง

# apt-get install mysql-server mysql-client

จากนั้นโปรแกรมจะตั้งรหัสผ่าน root สำหรับจัดการ MySQL ใส่รหัสผ่าน root ที่คุณต้องการลงไปครับ จากนั้นติดตั้ง Apache Web Server, PHP และโมดูลที่จำเป็นต้องใช้

# apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 libapache2-mod-php5 php5-common php5-gd php5-idn php-pear php5-imap php5-mcrypt php5-mhash php5-mysql php5-sqlite php5-xmlrpc php5-xsl php5-curl

จากนั้นมา tune up ให้ PHP กัน แก้ไขไฟล์ /etc/php5/apache2/php.ini โดยใช้คำสั่ง

# vi /etc/php5/apache2/php.ini

ตั้งค่า memorylimit เป็น 64MB หรือมากกว่านั้น

;memorylimit = 16M      ; Maximum amount of memory a script may consume (16MB)
memorylimit = 64M
 

และ uploadmaxfilesize เป็น 20MB เพื่อกำหนดขนาดไฟล์ที่อัพโหลดได้

; Maximum allowed size for uploaded files.
;upload
maxfilesize = 2M
upload
maxfilesize = 20M

จากนั้น restart Apache ด้วยคำสั่ง

# /etc/init.d/apache2 restart

ตอนนี้เราได้ Apache, PHP, MySQL พร้อมแล้วเราก้อมาติด SugarCRM กัน ดาวน์โหลด SugarCRM ได้ที่ http://www.sugarforge.org/frs/?groupid=6 หรือ http://www.sugarcrm.com/crm/download/sugar-suite.html ผมใช้เวอร์ชั่น 5.2 นะครับ

# mkdir /var/www/sugarcrm
# cd /tmp
# wget http://www.sugarforge.org/frs/download.php/4902/SugarCE-5.2.0.zip
# unzip SugarCE-5.2.0.zip
# cd SugarCE-Full-5.2.0/
# mv * /var/www/sugarcrm/
# chown -R www-data:www-data /var/www/sugarcrm

จากนั้นติดตั้ง SugarCRM โดยเบราซ์ไปที่ URL http://server1.example.com/sugarcrm หรือ http://192.168.0.100/sugarcrm ตัวติดตั้ง SugarCRM จะเปิดขึ้นมาดังนี้

โปรแกรมจะแนะนำขึ้นตอนการติดตั้ง และข้อมูลเพิ่มเติมอื่นๆ ให้เราเลื่อนมาที่ล่างสุด
คลิก Next

ตอบรับ license คลิก Next

เลือก Typical Install คลิก Next

เลือกฐานข้อมูลเป็น MySQL

ในส่วน Database Configuration ใส่ชื่อฐานข้อมูล SugarCRM เช่น sugarcrm หากยังไม่มีฐานข้อมูลนี้โปรแกรมติดตั้งจะสร้างให้อัตโนมัติ Hostname ใส่ localhost เพราะเราจะเชื่อมต่อกับ MySQL Server ที่อยู่บนเครื่องเดียวกัน จากนั้นใส่ username, password ของ MySQL คือ root และรหัสผ่านที่คุณตั้งค่าไว้

จากนั้นเลือก Define user to create เพื่อสั่งให้ MySQL สร้าง user สำหรับเรียกใช้ฐานข้อมูล SugarCRM ใส่ชื่อ username เช่น sugarcrm และ รหัสผ่านที่คุณต้องการ หากคุณต้องการใส่ demo data ให้คลิกเลือก Yes คลิก Next เพื่อเข้าสู่ขั้นตอนถัดไป

จากนั้นใส่รหัสผ่านให้ Admin ของ SugarCRM

เลือกข้อมูล locale และ currency setting

จากนั้นโปรแกรมจะแสดงสรุปข้อมูลที่คุณเลือกจากนั้นให้คุณคลิก Install เพื่อเข้าสู่การติดตั้ง

SugarCRM จะเริ่มติดตั้งเมื่อติดตั้งเสร็จคลิก Next

จากนั้นจะเป็นขั้นตอนการสมัคร newsletter ถ้าคุณต้องการสมัคร newsletter รับข่าวสารจาก SugarCRM ใส่ข้อมูลลงไปเลยครับ ของผมของดรับ mail ละกันนะครับ

เมื่อติดตั้งเสร็จคุณจะเข้าหน้าจอ login ใส่ชื่อผู้ใช้ (admin) และรหัสผ่านที่คุณใส่ไว้ตอนติดตั้ง

หลังจาก login คุณสามารถเลือกเวลา timezone เพื่อใช้กับ user account ของคุณ เลือก time zone ของคุณแล้วคลิก Save

เราจะเข้าหน้าจอ SugarCRM ดังภาพ

สำหรับการใช้งาน SugarCRM ดูได้ที่ http://www.sugarforge.org/frs/?group_id=6 ครับ

หาข้อมูลเพิ่มเติมได้ที่

1. SugarCRM <http://www.sugarcrm.com/>
2. SugarForge <http://www.sugarforge.org/>
3. Ubuntu <http://www.ubuntu.com/>

เอ้ามาลองคำนวนค่าใช้จ่ายเล่นๆ ในการติดตั้ง SugarCRM Community Edition เราลงทุนเครื่อง Server 1 ตัว Server 1U Asus RS120-E5/PA4 ราคาอยู่ไม่เกิน 40,000 บาท ส่วน Ubuntu 8.10 และ SugarCRM Community Edition เราสามารถดาวน์โหลดมาใช้ได้เลย หากไม่อยากดาวน์โหลด Ubuntu ก้อสามารถติดต่อขอรับแผ่น Ubuntu Server กับโครงการ Shipit ของ Cannonical ได้ ถ้าไม่ต้องการรอก้อสั่งซื้อจาก ShopIt ของ Ubuntu Club ได้ หากไม่คิดค่าลงทุนเรื่องเครื่อง Server เราก้อลดต้นทุนในการหา CRM Solution ที่ใช้งานได้มาใช้สักตัวได้เยอะเลยล่ะครับ เรียกได้ว่าเหมาะกับ SMEs ที่อยากได้ CRM Solution มาให้งาน

ผมได้เอกสารมาฉบับหนึ่งเป็นเอกสารการเข้าจอดเรือของท่าเรืออะไรสักอย่างที่ประเทศนิวซีแลนด์ เอกสารเป็น ODF ครับ และแน่นอนใช้ OpenOffice.Org ซึ่งแบบฟอร์มที่ผมได้มาเป็นเอกสารแบบ field form คือมี field แถบเทาๆ เวลาคลิกที่ field ที่ต้องการจะใส่ข้อมูลก้อจะมี input box มาให้เรากรอกข้อมูล OpenOffice.Org สนับสนุนการใช้ field form และ input field มาตั้งแต่เวอร์ชั่น 2.4 แล้วครับแต่ไม่ได้เขียนเป็น how-to มาแนะนำวิธีการใช้งานกันสักที เอาเป็นว่าวันนี้ผมจะมาแนะนำการประยุกต์เอกสารธรรมดาๆ ให้เป็น field form ง่ายๆ เอาไว้กรอกข้อมูลให้เป็นระเบียบเรียบร้อยและดูสวยงามครับ

ก่อนจะเข้าสู่ขั้นตอนการทำจะขออธิบายข้อดีของการทำ field form นอกจากจะทำให้เอกสารดูสวยงามแล้ว การใส่ข้อมูลก้อง่ายอีกด้วย และที่สำคัญคุณสามารถกำหนดเขตข้อมูลได้เองด้วย เดี๋ยวเรามาลองดูตัวอย่างเอกสารนี้กันครับแบบฟอร์ม "ใบสัญญาเป็นแฟนกัน" เอาสนุกนะครับอย่าคิดมาก :)

เวลาเราพิมพ์เอกสารใหม่เราก้อเอาเทมเพลท (ไฟล์แบบฟอร์มว่างๆ) มาแก้ไขขีดเส้นใต้ บ้างก้อใส่กล่องข้อความ หรือพิมพ์ทับไปเลย อันนี้ก้อแล้วแต่ความชอบของใครของมัน วันนี้ผมจะมานำเสนอวิธีการทำ form field กรอกข้อมูลง่ายๆ ได้เอกสารสวยงามกันครับ มาพิจารณาแบบฟอร์ม "ใบสัญญาเป็นแฟนกัน" เรามีช่วงว่างๆ ให้กรอกข้อมูลได้แก่
1. เขียนขึ้นที่ไหน
2. วันที่ เดือน ปี
3. ชื่อผู้ทำสัญญา อายุ
4. ชื่อคู่สัญญา อายุ

มาพิจารณาข้อมูลที่จะกรอกกันก่อน
1. เขียนขึ้นที่ไหน = กรอกข้อมูลเอง
2. วันที่ เดือน ปี = วันที่กรอกข้อมูลเอง (ตัวเลข)  เดือนเลือกเป็นรายชื่อเดือน ปีกรอกข้อมูลเอง (ตัวเลข)
3. ชื่อผู้ทำสัญญา อายุ = ชื่อผู้ทำสัญญา และ อายุ กรอกข้อมูลเอง
4. ชื่อคู่สัญญา อายุ = ชื่อคู่สัญญา  และ อายุ กรอกข้อมูลเอง

วิธีการทำ
1. เปิดเอกสารขึ้นมา
2. เลื่อนเคอร์เซอร์จุดที่ต้องการใส่ field เอาตรงเขียนที่ก่อนนะครับ
3. คลิกเมนู Insert > Fields > Other…
4. เลือกแท็บ Functions ในส่วน Type เลือก Input field ตรงช่อง Referance ใส่ชื่อ field ลงไปครับ "เขียนที่"
5. คลิกปุ่ม Insert จะมีหน้าต่างให้กรอกข้อมูลดังภาพ
6. ใส่ช่องว่างไปเรื่อยๆ ครับ แล้วกดปุ่ม Ok
7. คุณจะพบว่ามีแถบเทาๆ ขึ้นมาแล้ว

ทำตามขั้นตอนข้างต้นตรงวันที่ และปี สำหรับในส่วนเดือนเราจะมาทำ list field กัน เลือก เมนู Insert > Fields > Other… เหมือนเดิม เลือกแท็บ Functions ในส่วน Type เลือก List Field ในช่อง Name ให้ใส่ชื่อ field ลงไปคือเดือน ส่วน Item คือชื่อเดือนที่เราต้องการให้เลือก มกราคม-ธันวาคม (กดปุม Add ไปเรื่อยๆ จนครบ) ก้อจะได้ข้อมูลดังภาพ

ใส่ field ให้กับข้อมูลที่เหลือตามประเภท field ที่เหมาะสม ดูภาพสำเร็จกันเลยครับ

พอเราได้เอกสารแบบสมบูรณ์แล้วก้อเก็บเป็น template เพื่อใช้ในครั้งต่อๆ ไป คิดว่าการประยุกต์ใช้ OpenOffice.Org ในครั้งนี้คงไม่ยากจนเกินไป  ลองเอาไปประยุกต์กับแบบฟอร์มในองค์กรณ์ของคุณดูนะครับ :)

 ตัวอย่างไฟล์ – สัญญาเป็นแฟนกัน

อ่านบล็อกของ Satyajit Ranjeev เขาเขียนบล็อกของเขาไว้น่าสนใจ เรื่องเกี่ยวกับ Gnome Do ก้อเลยเอามาเล่าต่อครับ Gnome Do เป็นโปรแกรม Launcher ที่ออกจะแปลกๆ สักหน่อยไม่ค่อยจะเหมือน Mac หรือโปรแกรม Launcher อื่นๆ แค่การใช้งานก้อไม่ได้เป็นรองใคร หากนึกไม่ออกว่า launcher เป็นแบบไหน ลองนึกถึงกล่องค้นหาใน Windows Vista ซึ่งฝังอยู่ในเมนูเมื่อกดปุ่ม Start หรือเมนูแบบ Kick Off ใน openSUSE ซึ่งทั้งสองตัวทำงานคล้ายๆ กันคือพิมพ์ลงในกล่อง launcher ก้อจะไปหาไฟล์หรือโปรแกรมที่เราพิมพ์เข้าไป ง่ายมั๊ย :) แต่ Gnome Do ไม่ใช่อย่างนั้น

Satyajit เป็น Fedora Ambassador เหมือนผม แต่ผมใช้ทั้ง Ubuntu และ Fedora ก้อขอผนวกวิธีการติดตั้งทั้ง Fedora และ Ubuntu ก้อแล้วกันนะครับ วิธีการติดตั้งบน Fedora ใช้คำสั่ง

yum install gnome-do

สำหรับบน Ubuntu ใช้คำสั่ง

apt-get install gnome-do

หลังจากติดตั้งเสร็จก้อจะมี icon อยู่ที่ task bar คลิกที่ icon หรือกดปุ่ม Super+Spacebar โปรแกรม launcher ก้อออกมาดังรูปครับ

สำหรับการปรับแต่งก้อมี plug-in ให้เล่นหลายอย่างใครชอบ Twitter Client ก้อเพิ่มเล่นกันได้ครับ แต่พิมพ์ข้อความไม่ได้นะครับ :P

 

ที่มา – Launchers for Linux I – GnomeDO

IBM Lotus Symphony เป็นชุดโปรแกรมออฟฟิสจากค่าย IBM ออกแบบหน้าตามาคล้ายๆ Eclipe แต่จัดการเอกสารแบบ Open Document Format ได้ ซึ่งโปรแกรมในชุด Lotus Symphony ประกอบด้วย Lotus Symphony Document, Lotus Symphony Spreadsheets, Lotus Symphony Presentation.  ซึ่งทั้งชุดคุณสามารถเอาไปใช้ได้โดยไม่เสียค่าใช้จ่าย ทำความรู้จัก Lotus Symphony กันพอสมควรแล้ว เรามาลองติดตั้ง Lutus Symphony บน Ubuntu กันครับ

เริ่มจากดาวน์โหลด Lutus Symphony กันก่อนที่ http://symphony.lotus.com/ คลิกตรง Download

หลังจากไปที่หน้าดาวน์โหลดเลือกดาวน์โหลดตรงเวอร์ชั่น Ubuntu

เลือกภาษาที่ต้องการแล้วคลิก Continue

หลังจากนั้น คุณจะต้อง login ด้วย IBM ID หากไม่มีคลิกที่ Guest Sign In

หากคุณคลิก Guest Sign-In คุณจะต้องกรอกแบบฟอร์มเกี่ยวกับตัวคุณอีกนิดหน่อย คลิก Accept License แล้วคลิก Next

เราจะมาถึงหน้าดาวน์โหลด ให้คลิกตรง tab Download using http หลังจากนั้นคลิก Download now


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

หลังจากนั้น Package Installer จะติดตั้ง Lotus Symphony ให้เรา

หลังจากติดตั้งเสร็จ คลิกปุ่ม Close จากนั้นคุณก้อสามรถเปิด Lotus Symphony ได้แล้ว ไปที่เมนู Application > Office > IBM Lotus Symphony

เมื่อเปิดการใช้งานครั้งแรกคุณต้องยอมรับ license ก่อน

หลังจากนั้นก้อจะเข้าสู่หน้าจอ Lotus Symphony

 

เราก้อได้ Lotus Symphony มาใช้แล้ว ขอให้สนุกกับ Lotus Symphony นะครับ :)

 

ที่มา – Installing Lotus Symphony On Ubuntu 8.10

 

นึกถึงตอนสะสมแสตมป์สมัยเป็นเด็กๆ เวลาหาแสตมป์ที่เราต้องการทีไรมักจะหายาก หรือได้มาแล้วไม่ค่อยคุ้มค่ากับการรอคอยสักเท่าไร หรือมีภาพสวยๆ อยู่แล้วแต่อยากทำเป็นแสตมป์ไปปั๊มออกมาเป็นแผ่นๆ ฉีกแจกเพื่อนมันก้อยังไงอยู่ครับ เอา Inkscape มาทำภาพแสตมป์กันดีกว่าครับ อืมมทำภาพแสตมป์น้องหมีโคอาล่าน่ารักๆ ดีกว่าครับ มาดูวิธีการกันดีกว่า

สร้างภาพแผ่นแสตมป์ขึ้นมาก่อนครับ ผมใส่สีเขียวๆจะได้เห็นชัด สร้างวงกลมเล็กๆ สีแดงๆ ขึ้นมาอันนึงครับ

 

 

จากนั้นให้เลือกวงกลมสีแดงแล้วเลือกตัวแสตมสีเขียว

 

 

เลือกเมนู Effects > Generate from Path > Pattern along Path กำหนดค่าดังรูป

 

 

กดปุ่ม OK เราจะได้ภาพวงกลมแดงๆ ล้อมรอบสี่เหลี่ยมสีเขียวดังภาพ

 

 

จากนั้นเลือกตัวแสตมป์และกรอบจุดๆ สีแดง คลิกเมนู Path > Difference เราก็จะได้แสตมป์ปรุๆ ดังรูป

 

 

คัดลอกแล้วเปลี่ยนเป็นสีดำวางไว้ข้างล่างเพื่อเป็นเงา จากนั้นเปลี่ยนสีพื้นแสตมป์ให้ออกสีขาวๆ เทาๆ

 

 

จากนั้นเลือกพื้นสีดำกำหนด blur ให้ตัวแสตมป์มีมิติ

 

 

ใส่ภาพและข้อความลงไปเลยครับ ผมเอาน้องหมีโคอาล่ามาใส่ น่ารักมั๊ยคับ
 

 

คุณ Zee ส่งอีเมล์มาจากระบบติดต่อของ gotoknow.org มาถามเรื่อง DNS Wildcard จำได้ว่าเคยเขียนเรื่องนี้ใน ThaiOpenSource.Org มาแล้วแต่พอเข้าไปดู how-to ที่เคยเขียนเป็นกรณีที่เราสามารถแก้ไข DNS Record เองได้ในกรณีของคุณ Zee เช่าบริการโฮสติ้งแต่ทางผู้ให้บริการให้เพิ่ม subdomain ได้เพียง 1 ชื่อเท่านั้นดังนั้นการทำ DNS Wildcard จึงทำไม่ได้ คุณ Zee เลยเขียนจดหมายมาถามในทางกลับกันคือ ไม่ใช้ subdomain แต่อยากให้แบ่งคล้ายๆ กับ DNS Wildcard ได้มั๊ย

ผมมาพิจารณาดูจากกรณีของคุณ Zee เข้าใจว่าพยายามทำ Pritty URL ของเว็บไซต์ หรือ SEO ง่ายๆ จาก URL โดยคุณ Zee จะให้ชื่อ URL เป็น http://domain.com/yourname บอเบราส์ไปแล้วก็ไปเปิดหน้าของ yourname ซึ่งไม่มีไดเรคทอรี yourname อยู่จริงๆ ในเซิร์ฟเวอร์ เอ้าเอาเป็นว่าน่าจะพอเข้าใจปัญหาคร่าวๆ กันแล้ว หาใครเคยทำ Pritty URL หรือคุ้ยเคยกับ SEO มาบ้างก็จะบอกว่า Rewrite URL ใช่มั๊ยครับ

How-To วันนี้ก็จะเป็นเรื่อง Rewrite URL ให้สนับสนุนกับโค้ดของโปรแกรมที่พัฒนาครับ โดยปกติการเขียนโค้ดของโปรแกรมในแบบ dynamic เรามักเห็นตัวแปรยุบยับผ่านทาง URL เช่น http://domain.com/index.php?name=yourname เป็นต้น เรามาทำให้มันสวยอย่างนี้ http://domain.com/yourname ได้ ด้วยการ Rewrite URL ครับ แล้วจะทำอย่างไร? วิธีการง่ายๆ เราสามารถเขียนกฏการแปลง URL ผ่านทาง htaccess ได้ครับ เขียนอย่างนี้ครับ

# Don’t show directory listings for URLs which map to a directory.
Options -Indexes

# Follow symbolic links in this directory.
Options +FollowSymLinks

# Customized error messages.
ErrorDocument 404 /index.php

# Set the default handler.
DirectoryIndex index.php

RewriteEngine on
#RewriteBase /mydir
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?name=$1 [L,QSA]

หลังจากนั้นให้เขียน index.php ขึ้นมาไฟล์นึงแล้วตรวจสอบ ค่า $_GET[‘name’] ว่าเป็นค่าอะไร เช่น สมมุติ http://domain.com/anoochit ค่า $_GET[‘name’] ที่ได้คือ anoochit ใน Request URI จะเป็น index.php?name=/anoochit ให้อัตโนมัติ ง่ายๆ แค่นี้เองครับ

ภาพสติกเกอร์แปะแล้วมีมุมพับหรือที่เราเรียกว่า dogear ใครว่า Inkscape ทำไม่ได้ ผมเห็นเว็บสอนใช้งาน Illustrator หลายเว็บไซต์สอนการดาวน์โหลด dogear สำเร็จรูปแต่ไม่สอนวิธีการทำ เลยเกิดอาการคัดไม้คันมือลองทำดูบ้างผลที่ได้ก็เป็นที่น่าพอใจครับ แหมใครว่าซอฟต์แวร์โอเพนซอร์สดีๆ อย่าง Inkscape ทำไม่ได้ เอาล่ะ How-to ในครั้งเลยก็เลยถือโอกาสสอนการทำ dogear ซะเลย ดูภาพตัวอย่างกันก่อนครับ ว่าผลงานล่าสุดของเราจะเป็นแบบนี้

วิธีการทำภาพ dogear บน inkscape เราต้องคิดเป็นแบบ vector และใช้เครื่องมือ vector ให้เป็น เครื่องมือที่เราจะใช้กันวันนี้คือ เครื่องมือสร้างวงกลม, เครื่องมือปากกาคอแร้ง, เครื่องมือหมุนภาพแนวตั้ง, เครื่องมือหมุนภาพแนวนอน, Clone, Path Difference, Path Cut Path, Blur และ Opacity เอาล่ะมาเริ่มกันเลย วาดวงกลมสีฟ้าขึ้นมา 1 วงครับ

ใช้เครื่องมือปากกาคอแร้งวาดส่วนที่เราต้องการพับดังภาพ

จากนั้นเลือก object ทั้ง 2 อันแล้วสั่ง Cut Path ที่เมนู Path > Cut Path สีภาพจะหายไปให้ใช้แถบสีข้างล่างเพื่อใส่สีให้กับ object ทั้ง 2 อัน (ใส่คนละสีเพื่อให้เห็นความแตกต่าง)

จากนั้นกลับภาพรอยพับ (สีเหลือ) ใช้เครื่องมือหมุนภาพแนวนอน 1 ครั้ง และเครื่องมือหมุนภาพแนวตั้ง 1 ครับ จะได้ดังภาพ

Clone ภาพตัวสติกเกอร์สีฟ้า แล้วเปลี่ยนสีเป็นสีชมพู

Clone ภาพตัวสติกเกอร์สีชมพู แล้วเปลี่ยนสีเป็นสีเขียว

เลือกภาพตัวสติกเกอร์สีเขียวเลื่อนเยื้องไปข้างบน

เลือกภาพตัวสติกเกอร์สีชมพูและภาพตัวสติกเกอร์สีเขียว ใช้เครื่องมือ Path Difference เพื่อตัดภาพที่ไม่ต้องการออก

เปลี่ยนภาพตัวสติกเกอร์สีชมพูที่ถูกตัดเป็นสีดำ

กำหนดความเบลอและ Opacity เพื่อให้เกิดเงา

เปลี่ยนสีภาพลิ้นมีเหลืองเป็นสีดำ

Clone ภาพลิ้นมีดำเปลี่ยนเป็นสีฟ้า

เลือกภาพลิ้นสีดำข้างล่าง (ใช้ปุ่ม Tab ในการเลือกได้) แล้วกำหนดความเบลอและ Opacity เพื่อให้เกิดเงา

Clone ภาพตัวสติกเกอร์สีฟ้าขึ้นมาทับเพื่อกำหนด clip set ของภาพ

เลือกภาพทั้งหมด (Alt+a) แล้วกำหนด clip set ภาพ เมนู Object > Clip > Set

ใส่ข้อความที่ต้องการ

เสร็จแล้ว :)