0

สิ่งที่ควรทำก่อนใช้ LibreOffice กับภาษาไทย

ก่อนใช้ LibreOffice กับภาษาไทยทีแรกผมก็งง ๆ มันต้องเข้าไปที่ LibreOffice -> Preferences … แล้วก็เข้าไปทำตามรูปครับเลือก Enabled for complex text layout (CTL) ซะ เลือกภาษาไทยด้วย

libr

ทำแบบนี้แล้วสังเกตว่าอะไรจะราบรื่นขึ้น โดยเฉพาะเวลาที่ไปแก้ style

0

ลง pdo_mysql บน Mac OS X 10.7.5 ปน ๆ กับ Macports

ผมลง PHP 5.4 กับ Apache ผ่าน Macports แต่ว่า pdo_mysql ใน Macports ไม่มีมั้ง ก็เลยลง pear เอง แล้วก็จะลง pdo_mysql จากผ่าน pecl ลองลงแบบท่าปกติแล้วมันเจ๊ง ปัญหาส่วนมากเพราะหา mysql5 ที่ใน Macports นี่ path มันก็จะแปลก ๆ หน่อย

ปัญหาแรกคือหา mysql_config5 ไม่เจอ  ผมก็จัดแบบนี้เลย

PDO_MYSQL_CONFIG=/opt/local/bin/mysql_config5 /Users/user_name/pear/bin/pecl install pdo_mysql

อันนี้ก็เสร็จไปด่านหนึ่งแต่ว่า เวลามาเรียกก็ยังเจ๊งอยู่ดีขึ้น file not found อะไรสักอย่าง เพราะหา file ที่แทน socket ไม่เจอ อันนี้ก็เข้าไปแก้ใน /opt/local/etc/php54/php.ini เพิ่ม

pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock

เข้าไป ก็เป็นอันใช้ได้

0

GIZA++ on Mac OS X

Now I can install GIZA++ on Mac OS X by just typing “sudo port install giza-pp”. It is very convenient. However the file system on the machine I’m using isn’t case sensitive. So *.a3.final and *.A3.final are the same file.  

In order to solve this, I decided to install giza-pp 1.0.7 from source code instead and modify model3.cc like I did in 2006 on my iBook G4 and it still works ^^.

I used to use UFS instead of HFS+. And I also found in Wikipedia that HFS+ can be case sensitive too. But I think it is not good idea to format or modify too much the machine that is not mine :-P.

2

nsCoreFoundationBreaker

After talking to @kengggg, we are agree to implement NS_GetComplexLineBreaks without using deprecated UCFindTextBreak. So I try to rewrite nsCarbonBreaker by using Core Foundation API. However I don’t have Mac since 2008 so I didn’t test. In fact, I don’t even try to compile the code.

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is mozilla.org code.
 *
 * The Initial Developer of the Original Code is
 * Theppitak Karoonboonyanan <thep@linux.thai.net>.
 * Portions created by the Initial Developer are Copyright (C) 2007
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 * - Theppitak Karoonboonyanan <thep@linux.thai.net>
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either of the GNU General Public License Version 2 or later (the "GPL"),
 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */

#include "nsComplexBreaker.h"
#include <CoreFoundation/CFStringTokenizer.h>
#include <CoreFoundation/CFBase.h>

// An imaginary nsCoreFoundationBreaker
// I don't have Mac since 2008 (Vee Satayamas)

void
NS_GetComplexLineBreaks(const PRUnichar* aText, PRUint32 aLength,
                        PRPackedBool* aBreakBefore)
{
  NS_ASSERTION(aText, "aText shouldn't be null");

  // I don't know whether CFStringCreateWithCharactersNoCopy will works.
  // Some conversions may be needed
  CFStringRef cfAText = CFStringCreateWithCharactersNoCopy(NULL, aText, aLength,
    kCFAllocatorNull);
  NS_ASSERTION(cfAText, "cfAText shouldn't be null");

  CFStringTokenizerRef tokenizer = tokenizerForString(cfAText);

  if(tokenizer)
  {
    CFStringTokenizerTokenType  tokenType; 
    // CFStringTokenizerGetCurrentTokenRange may have to be called before
    // CFStringTokenizerAdvanceToNextToken
    while(CFStringTokenizerAdvanceToNextToken(tokenizer) != 
      kCFStringTokenizerTokenNone) 
    {
      CFRange tokenRange = CFStringTokenizerGetCurrentTokenRange(tokenizer);
      aBreakBefore[tokenRange.location + tokenRange.length] = PR_TRUE;
    }
  }

  // Foundation.h must be included for CFRelease?
  CFRelease(cfAText);
}
0

ปัญหา libthai บน mac os x

ผมพยายามจะลง libthai จะลง libthai ได้ ก็ต้องลง datrie ก่อน. แต่ลงไปแล้วก็ติดเหมือนจะติดที่คำสั่ง nmedit ท่าน่าจะเป็นลงพวงมาจาก Makefile.am ที่มี option ของ library ที่ดูแปลกๆนิดๆ

libdatrie_la_LDFLAGS =  -no-undefined \
        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
        -export-symbols $(srcdir)/libdatrie.def

ให้เดาก็อาจจะมาจากว่า autoconf หรือ automake ไม่แน่ใจ อาจจะ generate อะไรออกมาแล้วไม่เหมาะกับ mac os x ก็ได้ (แค่สมมุติฐาน). อย่างไรก็ตามผมก็ได้แจ้งไปใน thai foss/linux group ละ.

ทีแรกว่าจะลอง libthai4r (Ruby libthai binding) ซะหน่อย. แต่แค่ build datrie ก็จอดซะละ -_-.

0

เมื่อ Mac OS X บูทไม่ขึ้น

ปกติถ้าใช้ Debian เวลาบูทไม่ขึ้นก็พอจะดูจาก error message ได้ว่าเกิดอะไรขึ้น ในกรณีที่ไม่มี splash screen. ใน Mac OS X เวลาบูทส่วนมากจะเห็นแต่รูป apple แหว่ง เวลาไปค้างก็ไม่รู้ไปค้างที่ไหน. อย่างไรก็ตามเรามีท่าแก้ให้ Mac OS X บูทแบบเห็น message ต่างๆนานาได้ โดยการกด command + v ค้างไว้เวลาบูท เท่านี้ก็จะเห็นอะไรออกมาคล้ายตอน Debian หรือ NetBSD บูทแล้ว. สำหรับเครื่องผมมันไม่ขึ้นเพราะ file system เจ๋ง และก็มีข้อความขึ้นมาบอกว่าให้รัน fsck ด้วยมือ แต่บูทก็ไม่ขึ้นจะมารัน fsck ได้ไงอะ.  ผมก็เลยไป search Google ก็เจอเว็บนี้. เขาบอกว่าให้รับ fsck จาก single mode. ส่วนการจะเข้า single mode เวลาบูทก็ให้กด command + s ค้างไว้. ผมลองทำตามก็ปรากฎว่าเข้ามาที่ shell ได้จริงๆ ก็สั่ง fsck -fy ตามคำแนะนำต่อ และรอไปอีกพักใหญ่ fsck ก็ทำงานเสร็จ ผมก็สั่ง reboot ก็พบว่า Mac OS X กับมาใช้ได้เหมือนเดิม.

สาเหตุการเจ๊งครั้งนี้น่าจะมาจากการที่เครื่องค้าง งงๆเหมือนกันว่าทำไมค้าง แต่ก็ใช้มานานแล้วอะนะจะรวนบ้างก็ไม่แปลก. ผมก็กดปิดแล้ว แต่ว่า file system ที่ผมใช้คือ UFS ที่ไม่ใช่ Journaling file system แบบ Ext3 หรือว่า HFS+ (ของ Mac OS X) เอง. แต่ก็ใช้ UFS เพราะว่าใช้ OS อื่นๆที่ไม่ใช่ Mac OS X มาอ่าน partition ได้. นี่ก็น่าจะเป็นสาเหตุที่ทำให้ file system เจ๊ง

0

Mac OS X กับ Ubuntu

เพื่อนๆมักจะถามอยู่เสมอว่า Apple Macintosh (Mac) มีอะไรดี. เบื้องหลัง platform ต่างๆก็มักจะมี zealot สนับสนุนอยู่เสมอๆ ไม่ว่าจะเป็นระบบไหนๆ ไม่ว่า Mac Ubuntu และ Windows. ผมก็อาจจะเป็น zealot อีกคนหนึ่งเหมือนกันเพราะแอบชอบ Mac มาร่วม 10 ปี จนมีเล่นเป็นของตัวเองได้ 2-3 ปีนี่เอง. มีใช้แล้วก็ชอบใจ เล่นแล้วก็ติดงอมแงม. เรื่องนี้ผมก็พยายามจะเขียนอธิบายว่าทำไมชอบ Mac OS X เมื่อเทียบกับ Ubuntu. ทั้งที่มีหลายอย่างที่ผมชอบ Ubuntu มากกว่า Mac OS X แต่ผมก็จะยังไม่เขียน.

  • Sleep – จริงๆแล้วเครื่องที่ใช้ Ubuntu ก็ sleep ได้ แต่ว่าเท่าที่พบ batt ก็หมดเร็วมาก. หรือว่า Hibernate ก็ได้ แต่ว่าหลังจากทีเปิดใช้อีกที ก็มักจะมีอาการรวนๆ. เครื่อง Mac เก่าๆอย่าง iBook ที่ลง Mac OS X ไว้ปกติแล้ว Hibernate ไม่ได้ ได้แต่ sleep แต่ว่ามันก็ sleep ได้นานพอสมควร มีไฟแสดงชัดเจนว่ากำลัง sleep อันนี้อาจจะเป็นข้อได้เปรียบของการขายพ่วง Hardware + Software. พอ sleep แล้วปลุกให้มันตื่นขึ้นมาแทบไม่พบอาการรวนเลย. ยกเว้นตอน harddisk เจ๊งนะ.
  • การจัดการหน้าต่าง – mac os x สามารถเลือกย่อหน้าต่างของ application เดียวกัน หรือหน้าต่างทั้งหมด ให้อยู่ในหน้าจอเดียวกันแล้วเลือกใช้แต่ละหน้าต่างได้. ความสามารถแบบนี้ Compiz ก็ทำได้เหมือนกัน แต่ว่าใช้ Compiz แล้วก็เวียนหัว อาจจะต้องมีการปรับแต่งอีกสักเล็กน้อย.
  • การค้นหาเอกสารในเครื่อง – บน Mac OS X มี Spotlight ทำให้คนหาเอกสารในเครื่องได้รวดเร็วเพราะทำ Index ไว้ก่อน. จริงๆแล้ว Ubuntu ก็ทำอีกเหมือนกัน อาจจะดีด้วยแต่ผมก็ยังไม่เคยลอง :-P.

เรื่อง development tools ก็อาจจะพอเอามาเปรียบเทียบกันได้ แต่ว่าเอาไว้ก่อนแล้วกัน เขียนมากเกินไปจะผสมปนเปกันเปล่าๆ. ตามความเห็นของผม Ubuntu และ​ Mac OS X มีอะไรที่คล้ายกันมากขึ้นเรื่อยๆ เช่น การใช้ sudo แกมบังคับ แต่ผมก็ไม่รู้เหมือนกันว่าใครทำก่อน. แม้แต่ icon ที่ใช้รอที่กลมๆแล้วมีอะไรหมุนๆก็หน้าตาเหมือนกันอย่างกับแกะ. มากไปกว่านั้นโปรแกรมที่หลายคนพิจารณ์มาตลอดว่ามี user interface ที่ใช้ยากเย็นอย่าง Gimp ก็มีคนออกแบบใหม่. ทำให้ผมคิดว่าชุมชนนักพัฒนาของ Linux, Gnome และโครงการซอฟต์แวร์เสรีอื่นๆก็คงทราบจุดเด่นจุดด้อยของโปรแกรมที่ตนเองร่วมพัฒนาอยู่เทียบกับระบบอื่นๆอย่างชัดเจนมานานแล้ว. ตั้งแต่อดีตถึงปัจจุบัน โครงการอย่าง Gnome ก็แสดงให้เห็นแล้วว่า มันน่าใช้ขึ้นทุกวันทุกวัน. ในอนาคตผมก็เชื่อว่าความชื่นชอบ user interface ของ Gnome กับ Mac OS X (ของผม) ก็น่าจะใกล้เคียงกันขึ้นเรื่อยๆ. ส่วนเรื่อง sleep และ hibernate ก็คงต้องพึ่ง Linux? หรือว่าต้องพึ่ง Hardware?