วันพฤหัสบดี, เมษายน 27, 2549
XSCF ของ PRIMEPOWER 250
แล้ว เราก็จะเห็น hostname, IP, ssh-enabled/disabled, web interface-enabled/disabled
จากนั้นก็ connect to the xscf console via ssh
วันพฤหัสบดี, มีนาคม 30, 2549
คำศัพท์ที่ใช้ในไวยากรณ์ภาษาญี่ปุ่น (Words used in Japanese Grammar)
| JA | TH |
|---|---|
| 文法 | ไวยากรณ์ |
| 文 | ประโยค |
| 句 | วลี |
| 節 | อนุประโยค |
| 単語 | คำศัพท์ |
| 修飾(しゅうしょく) | การขยายคำ (modify) |
| 名詞 | คำนาม |
| 動詞 | คำกริยา |
| 助詞 | คำบุพบท |
| 副詞 | คำวิเศษณ์ |
| 接続詞 | คำสันธาน |
| 数詞 | คำบอกจำนวน |
| 助数詞 | คำลักษณะนาม |
| 疑問詞 | คำแสดงคำถาม |
| 主語 | ประธาน(หัวเรื่อง) |
| 述語 | ส่วนขยาย |
| 目的語 | กรรม |
| 主題 | หัวข้อเรื่องหลัก |
| 肯定(こうてい) | บอกเล่า |
| 否定 | ปฏิเสธ |
| 完了 | สมบูรณ์ |
| 未完了 | ไม่สมบูรณ์ |
| 過去 | อดีต |
| 非過去 | ไม่อดีต |
วันพุธ, มีนาคม 22, 2549
LaTeX package for typesetting books, reports
It can potentially help in typesetting a book.
I'm to check it later.
วันศุกร์, มีนาคม 10, 2549
Upgrade MediaWiki to 1.57 and Apache 2
ถือโอกาส อัพเกรดไปพร้อมๆกันเลย
รายละเอียดเริ่มอ้างอิงจากที่นี่
http://meta.wikimedia.org/wiki/Running_MediaWiki_on_Mac_OS_X
==== Apache 2 ====
download Apache 2 จาก http://www.serverlogistics.com/downloads.php
Files ต่างๆของ Apache 2 ถูกติดตั้งลงไปยัง /Library/Apache2 ไม่ทับ Apache ที่ติดมากับ OS
แต่ดั้งเดิม. นอกจาก start กับ stop แล้ว ยังมี graceful ที่ใช้เป็น parameter สำหรับ apachectl ได้
# /Library/Apache2/bin/apachectl {start,stop,graceful}ลง preference pane เพิ่ม ได้ที่ /Library/PreferencePanes หรือ $HOME/Library/PreferencePanes เวลาจะ uninstall ก็อย่าลืมเอาออกด้วย
Preference pane ของ Apache 2 ที่ติดตั้งลงไปมันจะทำการเซตค่า APACHE2 ใน /etc/hostconfig
เพื่อกำหนดว่าจะให้ Apache 2 start ตอน boot หรือไม่
จะ uninstall ก็ลบไดเรคทอรี่เหล่านี้ออกซะ (อ้างอิง Install Guide ใน dmg installer file)
/Library/Apache2
/Library/StartupItems/Apache2
/Library/Receipts/Apache2.pkg
==== MySQL ====
MySQL เดี้ยงต้องจัดการก่อน เพราะเคยลง CompleteMySQL 4.0.21 ของ serverlogistics ไว้ แต่มันใช้กับ Tiger ไม่ได้?? หรือได้หว่า??
การลบ CompleteMySQL (อ้างอิงจาก Install Guide ที่อยู่ใน dmg installer file) ออกทำโดย:
- Backup databases ที่มีอยู่ทั้งหมดก่อน
- ลบ directory เหล่านี้
- /Library/MySQL
- /Library/StartupItems/MySQL
- /Library/Receipts/MySQL.pkg
# sudo niutil -destroy . /users/mysql- ลบ MySQL.prefPane ออกจาก /Library/PreferencePanes หรือ $HOME/Library/PreferencePanes
การติดตั้ง MySQL 5
(ดูเพิ่มเติม http://dev.mysql.com/doc/refman/5.0/en/upgrading-from-4-1.html)
- download mysql-standard-5.0.18-osx10.4-powerpc-64bit.dmg จาก
http://dev.mysql.com/downloads/mysql/5.0.html
- MySQL จะ install ไปที่ /usr/local/mysql-VERSION และทำ symbolic link ชี้มาจาก /usr/local/mysql
- หลัง install แล้วต้องทำ
- Install MySQLStartupItem.pkg ถ้าต้องการให้ MySQL start up automatically ตอน system
startup Startup Item for MySQL 5.0 is installed into
`/Library/StartupItems/MySQLCOM'. (Before MySQL 4.1.2, the location was- secure the default accounts หลังจากติดตั้ง MySQL เสร็จใหม่ๆ installer ของ Mac มันจะ initialize database ให้อยู่แล้ว (mysql_install_db) แต่ grant tables ที่มัน init มาให้จะไม่มี password ดังนั้นเราต้องเซต password ด้วยเพื่อความปลอดภัย
`/Library/StartupItems/MySQL)
start MySQL server ด้วย คำสั่ง #sudo ./mysqld_safe [-u mysql] (ใน [...] optional)- ทดสอบ ด้วยคำสั่ง #sudo ./mysqlshow mysql
- เซต password หรือลบ MySQL's anonymous account ออก และเซต password ให้ MySQL's root account. ข้อควรระวัง: มันมี anonymous account อยู่สองแบบ คือ ของ localhost กับของ host_name. ของ localhost มันจะมี privilege เท่า root ดังนั้นอันตราย ในครั้งนี้เราจะลบ anonymous account ทิ้งและเซตพาสเวิร์ดให้ root โดย
shell>mysql -u root
mysql>DELETE FROM mysql.user WHERE User='';
mysql>FLUSH PRIVILEGES;shell>mysql -u root
mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_pasword');
mysql>SET PASSWORD FOR 'root'@'host_name' = PASSWORD('new_password');- ตรง
User='';นั้นเป็น single quote 2 อัน ไม่ใช่ double quote. - ถ้าจะเช็คให้แน่ใจว่า host_name ควรเป็นอะไร ใช้คำสั่ง
mysql>SELECT Host, User FROM mysql.user; ดูรายละเอียดจาก หน้านี้ http://dev.mysql.com/doc/refman/5.0/en/default-privileges.html
- copy database ที่ dump ออกมาจากตัวเก่าไปยัง version ใหม่
ปล. มี CocoaMySQL ที่เคยลงไว้ มันเป็น client เอาไว้ connect ไปจัดการกับ MySQL server แต่ CocoaMySQL ใช้กับ version 4.0.21 ได้ แต่ไม่สามารถใช้กับ version 5 ได้เพราะว่า password
encryption มันต่างกัน ต้องไปใช้ CocoaMySQL version beta0.7 ถึงเวิร์ค
(อ้างอิง: http://dev.mysql.com/doc/refman/5.0/en/upgrading-to-arch.html?ff=nopfpls)
shell>cat /some/where/dumped_db.mysql | mysql -u root -pdb_name
Mac OS X Server 10.4: Issues connecting PHP to MySQL (ลองดูใน script mysqld_safe ดูได้ว่ามันเรียกไปยัง /tmp/mysql.sock)
When running MySQL and PHP on the same Mac OS X 10.4 server, you may find that PHP cannot connect to MySQL. When PHP is communicating with a MySQL server on the same host, it uses a socket file to communicate, and looks for it at /tmp/mysql.sock. On Mac OS X Server 10.4, MySQL creates this socket file at /var/mysql/mysql.sock.
To resolve this issue, you can either change the location where MySQL creates its socket file, or modify the location where PHP looks for the file. Please note that the first option is less secure than the second. Before delving in, you should also review new information relevant to PHP and MySQL on Mac OS X Server 10.4.4 and later.
To change the location where MySQL creates its socket file, do this:
- Open your preferred text editor and create a plain text file.
- Type this text (on two lines as shown):
[mysqld]
socket=/tmp/mysql.sock - Save the file as: /etc/my.cnf
To change the location where PHP looks for the socket file, follow these steps:
- In Terminal: sudo cp /etc/php.ini.default /etc/php.ini
- Open /etc/php.ini in your preferred text editor.
- Find the [MySQL] section, and change the mysql.default_socket directive:
; Default socket name for local MySQL connects. If empty, uses
the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock
- Change the permissions on /var/mysql so that www can read the socket, by executing this in Terminal:
sudo chmod 775 /var/mysql
การย้าย database
http://meta.wikimedia.org/wiki/How_to_move_a_MediaWiki_Database
An example command on how to dump the database on a Debian GNU/Linux machine using mysqldump:
mysqldump --user=USERNAME --password=PASSWORD --single-transaction --all-databases > BACKUPFILE.sql
dump database named "wikidb"
mysqldump -u root -B wikidb > wikidb.sql
restore database named "wikidb"
mysql -u root -B wikidb <>
Create user ใหม่ขึ้นมาบน MySQL database อันใหม่ที่เรา import เข้ามาแล้ว โดยใช้คำสั่ง GRANT
คำสั่ง GRANT จะ encrypt password ให้ดังนั้นไม่จำเป็นต้องเรียกใช้ PASSWORD('password')
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON wikidb.*
-> TO 'wikiuser'@'localhost'
-> IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.05 sec)
bossanova:~/tmp/php-5.1.2 jojo$ ./configure '--prefix=/usr/local/php5.1.2' '--with-apxs2=/Library/Apache2/bin/apxs' '--with-ldap' '--with-kerberos' '--enable-cli' '--with-zlib' '--with-xml' '--enable-exif' '--enable-ftp' '--enable-mbstring' '--enable-mbregex' '--enable-sockets' '--with-iodbc' '--with-cure' '--with-config-file-path=/usr/local/php5.1.2/etc' '--with-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-mysql-sock=/var/mysql/mysql.sock'
Compile Turck MMCache with your PHP
download ที่นี่ --> http://turck-mmcache.sourceforge.net/วิธีการ compile ที่นี่ --> http://www.phpmac.com/articles.php?view=166
shell> /usr/bin/phpize
shell> ./configure --enable-mmcache=shared --with-php-config=/usr/bin/php-config
shell> make
shell> sudo make install
add below to the bottom of your php.ini (/usr/local/lib/php.ini <--ผิด
ที่ถูกคือ /etc/php.ini แต่มันยังมี /private/etc/php.ini ด้วย อันหลังนี้คิดว่าคงไม่ได้ใช้)
zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20020429/mmcache.so"
mmcache.shm_size="16"
mmcache.cache_dir="/tmp/mmcache"
mmcache.enable="1"
mmcache.optimizer="1"
mmcache.check_mtime="1"
mmcache.debug="0"
mmcache.filter=""
mmcache.shm_max="0"
mmcache.shm_ttl="0"
mmcache.shm_prune_period="0"
mmcache.shm_only="0"
mmcache.compress="1"
รัน install จาก web เพราะลองรัน php จาก cli ดูแล้วมันไม่เวิร์ค
กรอกข้อมูลให้ถูกต้องเหมือนของเก่า แล้วก็ไปแก้ไฟล์ LocalSettings.php ที่ installer มัน generate
มาให้ โดยอ้างอิงจาก LocalSettings.php ของเก่า แก้ไปรีเฟรช browserใหม่ไปดู เท่านี้ก็เรียบร้อย
วันอังคาร, มีนาคม 07, 2549
การ setCellRenderer / setCellEditor ใน JTable
ทีนี้เราสามารถ setCellRender / setCellEditor ในแบบ per-column-basis ได้ โดยมี idiom ดังนี้
TableColumnModel tcm = tbl.getColumnModel();
TableColumn tc = tcm.getColumn( columnIndex );
TableCellRenderer thisColumnRenderer = tc.getCellRenderer(); // อันนี้จะ return null ออกมา
เพราะว่า ถ้าเราไม่เซตเอง มันจะไปใช้ defaultRenderer ของ table ดังนั้น
นอกจากนี้แล้ว การใช้คำสั่ง {get,set}InputMap, {get,set}ActionMap ในการ assign action to keyStroke เพื่อให้, ตัวอย่างเช่น, key Enter มีพฤติกรรมเหมือน, tab key ได้
วันจันทร์, กุมภาพันธ์ 27, 2549
install / uninstall codec or filter files by regsvr32 command
1. Unarchive the package and use the files from Release folder if you're running Windows 9x/Me or Release Unicode if you're running Windows 2000/XP.
2. Copy DLL or AX files in system32 folder [ C:\WINDOWS\system32 ]
3. Click on Start > Run...
• To install the files, type: regsvr32 filename.dll or regsvr32 filename.ax
• To uninstall the files, use: regsvr32 -u filename.dll or regsvr32 -u filename.ax
4. In the end, you should receive a message saying that your file was succesfully installed/uninstalled.
An easy way to register/unregister [install/uninstall] the files is to use one of these small tools:
• RadLight Filter Manager - can be used to list all registered codecs and to register or unregister codecs.
• DirectShow Filter Manager: helps to list, sort, find, add or remove DirectShow filters.
• RegShell - a handy utility that will help you avoid the inconvenience of running regsvr32 from the start menu all the time.
• Emsa DLL Register Tool - register dll/ocx filters, codecs... and get extended file informations.
Some of the more common filters
• "iviaudio.ax" - WinDVD Audio Decoder filter.
• "ivivideo.ax" - WinDVD Video Decoder filter.
• "claud.ax" - PowerDVD Audio Decoder filter.
• "clvsd.ax" - PowerDVD Video Decoder filter.
• "DSCinemAudioDecoder.dll" - CineMaster v4 Audio Decoder filter.
• "DSCinemVideoDecoder.dll" - CineMaster v4 Video Decoder filter.
Note: Sometimes you need to specify the fully qualified path name to files (i.e. c:\program files\intervideo\common\bin\iviaudio.ax)
วันอาทิตย์, กุมภาพันธ์ 26, 2549
ลิ้งก์เกี่ยวกับ EPWING
http://hp.vector.co.jp/authors/VA021723/dessed/
http://openlab.jp/edict/
http://hp.vector.co.jp/authors/VA000022/unixdic/index.html
http://ebsnap.lkj.jp/
http://members2.jcom.home.ne.jp/babelkund/palm05.html
http://www.yo.rim.or.jp/~mono93/mobile/linuxzau/dic_able.html
วันจันทร์, กุมภาพันธ์ 20, 2549
เกี่ยวกับ Ubuntu, Kubuntu, KNOPPIX
--
OliveBSD : OpenBSD แบบ LiveCD
วันจันทร์, กุมภาพันธ์ 06, 2549
Mac OS X で piano を弾いてみよぉ!
- MidiKey เป็นตัวส่งออก MIDI
- SimpleSynth เป็นตัวเอาเสียงMIDIออกมา
วันพุธ, มกราคม 18, 2549
Installing ESC/Java2 บน FreeBSD
Here is the memo.
- Get the file by google for ESC/Java2
- Unpack it probably by 'tar jxf ESCJ-binary.tbz'
- Edit the script called escj. For the sake of safety, let's copy it to myescj and I edited myescj instead.
- What need to be defined are:
- export ESCTOOLS_RELEASE to the absolute path of the directory in which you placed the release files.
- export OSTYPE='linux'; I use linux library.
- export SIMPLIFY environment variable to the name of one of the Simplify.linux executables contained in $ESCTOOLS_RELEASE
- I need to branch the executable Simplify.linux to tell the FreeBSD that it is linux binary and please use Linux ABI to execute the file:
$ brandelf -t Linux Simplify.linux- That's it. Try exercise the edited script with an example in examples/0.0/Bag.java
วันพฤหัสบดี, มกราคม 12, 2549
ogg Vorbis and QuickTime & iTunes
The useful information is just at my nose, the official Vorbis site .
Well, to summarize, I need the Xiph QuickTime extension component right at http://www.xiph.org/quicktime/ , a brother site of vorbis.com. Just install the component and he player will be ready to play the Vorbis audio file just fine.
The only problem with this under-development-version is that the tag can't properly be edited by iTunes and the mandatory information like Artist or Title which appear correctly in Cog aren't properly dislayed. I hope this problem will be fixed up in the upcoming version of Xiph QT component. Anyway, thanks for great work.
-- after further searching --
I found a QT component for FLAC right here FLAC decoder for quick time
วันพฤหัสบดี, มกราคม 05, 2549
วันศุกร์, ธันวาคม 09, 2548
Java : ว่าด้วยเรื่อง Inheritance, Superclass, Subclass
ในคลาสลูก การเรียก Constructor super() ของคลาสพ่อแบบ explicit กับการไม่เรียก
ให้ผลต่างกันอย่างไร?
การใช้ this กับไม่ใช้ this นั้นมีผลต่อ inheritance อย่างไร คือพอถูก subclass ไปแล้ว this ที่ในคลาสพ่อก็ยังคง refer ถึงตัวคลาสพ่ออยู่ดีใช่ป่าว?
ทั้งหมดนี้น่าจะหาำคำตอบได้ใน Java Specification Book ไว้ว่างๆ ไปเช็คแล้วจะกลับมาตอบ
วันพฤหัสบดี, ธันวาคม 01, 2548
Java : Windows Font Look And Feel
Java : เกี่ยวกับเรื่องของ ชิ้นส่วนภาชนะ Container Components
สิ่งที่ควรสำเหนียก เวลาใช้พวก class เหล่านี้คือ
- ทุก component ที่จะปรากฏบนจอ จะต้องอยู่ใน containment hierarchy---เป็นต้นไม้ของ component ซึ่งมี top-level container เป็นราก
- ทุก GUI component ถูกยัดใส่ลงภาชนะ ได้แค่ครั้งเดียว. ถ้าเราเอา component ไหนยัดลงไปใน container หนึ่งแล้ว และจับมันยัดลงไปใน container อื่นอีก, ก็หมายความว่า มันต้องถูกเอาออกมาจาก container แรกก่อนจึงถูกนำไปยัดใส่ container ที่สองได้
- ทุก top-level container มี content pane ซึ่งกล่าวอย่างคร่าวๆได้ว่า content pane นั้น บรรจุ visible components ใน GUI ของ top-level container ทั้งโดยตรงและโดยอ้อม.
- เราสามารถเลือกที่จะใส่ menu bar ไปที่ top-level container หรือไม่ก็ได้. ซึ่ง menu bar นั้นจะถูกวางอยู่ภายใน top-level container, แต่อยู่นอก content pane. ในบาง look and feels, เช่น Mac OS look and feel, มีทางเลือกให้เราวางตำแหน่งของ menu bar ที่อื่นซึ่งเหมาะสมกว่าได้, เช่นที่ส่วนบนสุดของหน้าจอ เป็นต้น. ดังภาพข้างล่าง
ตัวอย่างของ containment hierarchy ลำดับชั้นของภาชนะ
Features ของ JComponent ที่น่านำไปใช้ในโปรแกรม
- Tool tips กำหนดข้อความโดย
setToolTipText(), ช่วยบอกเวลา user เอาเมาส์มาวางไว้. ดูเพิ่มเติมได้ที่ How to Set the Look and Feel - Support for layout ใน
Componentclass แม้จะมี methods ซึ่งเอาไว้ดู layout hint เช่นgetPreferredSizeandgetAlignmentX. ทางเลือกอื่นสำหรับ set layout hints,JComponentclass เพิ่ม setter methods —setPreferredSize,setMinimumSize,setMaximumSize,setAlignmentX, andsetAlignmentY. ขึ้นมา ดูเพิ่มที่ Laying Out Components Within a Container - Key bindings ทำให้ components ตอบสนองเมื่อ user กดปุ่ม keyboard ที่กำหนดไว้. เช่นเวลาเคอร์เซอร์อยู่บนปุ่ม การกด space bar ก็เหมือนกับการกดคลิ๊กบนปุ่มนั้น. look and feel เซต bindings ของการกดและปล่อย ปุ่ม Space และส่งผลนั้นไปที่ปุ่ม. เพิ่มเติมเกี่ยวกับ key bindings ดูที่ How to Use Key Bindings
.
การใช้ Text Components
| Method | Purpose |
|---|---|
void addMouseListener(MouseListener) void removeMouseListener(MouseListener) | Add or remove a mouse listener |
void addMouseMotionListener(MouseMotionListener) void removeMouseMotionListener(MouseMotionListener) | Add or remove a mouse motion listener |
void addKeyListener(KeyListener) void removeKeyListener(KeyListener) | Add or remove a key listener |
void addComponentListener(ComponentListener) void removeComponentListener(ComponentListener) | Add or remove a component listener |
void setTransferHandler(TransferHandler) TransferHandler getTransferHandler() | Set or remove the transferHandler property. The TransferHandler supports exchanging data via cut, copy, or paste to/from a clipboard as well a drag and drop. See Drag and Drop |
boolean contains(int, int) boolean contains(Point) | Determine whether the specified point is within the component. The argument should be specified in terms of the component's coordinate system. The two int arguments specify x and y coordinates, respectively. |
Component getComponentAt(int, int)Component getComponentAt(Point) | Return the component that contains the specified x, y position. The top-most child component is returned in the case where components overlap. This is determined by finding the component closest to the index 0 that claims to contain the given point via Component.contains(). |
อ้างอิง
จาวา ติวโตเรี่ยล
วันอังคาร, พฤศจิกายน 29, 2548
Eclipse plug-in UML editors และ GUI builder
http://www.eclipseplugincentral.com
แล้ว list มาดังนี้
-- UML editors --
- UMLet ที่ http://homepage.mac.com/martin.auer/umlet/ อันนี้ฟรี
- SDE ที่ http://www.visual-paradigm.com/product/sde/ec/index.jsp อันนี้ commercials
- EclipseUML ที่ http://www.eclipseuml.com/screenshot.html ฟรีำสำหรับ non-commercial
- VE ที่ www.eclipse.org ฟรีแท้ๆ
- Jigloo ที่ http://www.cloudgarden.com/jigloo/ ฟรีสำหรับ non-commercial
วันจันทร์, พฤศจิกายน 21, 2548
โปรแกรมฟรีแวร์ สำหรับ การเงินและการบัญชี Grisbi
จะหมู่หรือจ่าเดี๋ยวต้องไปลองก่อน เขียนโน้ตไว้เฉยๆ รายละเอียดอยู่ที่ Grisbi
อื่นๆ
gnucash
finance/emma
follow up: เท่าที่ลองดูแล้วคิดว่า GnuCash น่าใช้ที่สุด
วันเสาร์, ตุลาคม 29, 2548
เข้ารหัสเสียงให้เนียนๆ
โดยแปลงจาก VOB หรือ AC3 จะทำอย่างไร. รวบรวมแหล่งข้อมูลไว้ดังนี้
FAQ เกี่ยวกับ audio ครอบคลุมทุกเรื่อง ดีใช้ได้
http://forum.doom9.org/showthread.php?s=&threadid=68300
*ฟอรัมข้างบนกล่าวว่า การจะเข้ารหัส ogg แบบ 5.1 ch นั้นจำเป็นต้อง correct channel coupling
ทำให้บิตเรตสูงและขนาดของไฟล์ผลลัพธ์จะมีขนาดเกือบเท่า AC3 ไฟล์ต้นฉบับ ดังนั้น ทำไม่คุ้ม
ฺฺBeLight GUI สำหรับ Besweet ใช้ง่ายกว่าน่าลอง
http://belight.corecodec.org/
Audio guide ของ doom9
http://www.doom9.org/index.html?/audio-guides.htm
วันอังคาร, ตุลาคม 25, 2548
ssh port forwarding
ตั้งแต่เปลี่ยนมาใช้ FreeBSD ก็พึ่งจะอยากส่งเมล์จากนอกมหาลัยเป็นครั้งแรก
ไม่รู้จะเซตยังไง เลยส่งผ่านเว็บไป.
วันนี้มาค้นๆ ดู มีสองทางออก
- ใช้ SMTP ของ localhost เพราะว่า มันรัน Sendmail อยู่แล้ว
- ใช้ ssh port forwarding ผ่าน เฟ้ป
$ ssh -L 1025:วินเมล์:25 xoguy@เฟ้ปnote:
ต้องตั้ง SMTP เซตติ้งใน thunderbird ให้มันส่งไปที่พอร์ต 1025 ด้วย
reference:
http://www.ssh.com/support/documentation/online/ssh/adminguide/32/Port_Forwarding.html
วันศุกร์, ตุลาคม 07, 2548
Expocity: ทำ gnome windows changer ให้เป็นแบบ Mac
พอกด alt+tab ปุ๊บ มันจะขึ้นหน้าจอที่ย่อส่วนแล้วของทุกวินโด้มาให้เลือก
ก่อนอื่นก็ pkg_deinstall -fv metacity ก่อน จากนั้นจึง
portinstall -PPv expocity
แล้วก็ startx เป็นอันเรียบร้อย