वीर

12 เมษายน 2008

แปลง .doc เป็น .odt บน Ubuntu ผ่าน command line interface

Filed under: Uncategorized — वीर @ 5:09 pm
Tags: , , , , , , , , ,

แบบที่เขียนยาวๆ ดีๆ เป็นภาษาไทยสามารถเข้าไปดูได้ที่ http://www.biolawcom.de/blog/628 หรือภาษาอังกฤษก็มี http://dag.wieers.com/home-made/unoconv/

ผมและเพื่อนพยายามจะแปลงไฟล์จาก .doc ไปเป็น .อื่นๆ อีกมากมาย แต่ก็หาโปรแกรมไม่ค่อยได้. ถ้าทำทีละไฟล์ สองไฟล์ ก็เปิด OpenOffice.org มาแล้วก็เปิดไฟล์ .doc แล้ว save as เป็น .odt ก็ง่ายๆ. แต่ว่าถ้ามีสัก 10-20 ไฟล์ไรงี้ก็คงไม่ไหว. หรืออยากจะให้มันถูกเรียกผ่าน cron หรือเว็บ ใช้ command line ก็คงดีกว่า. มาเจอ unoconv ตรงกับความต้องการมากๆ. สามารถแปลงแบบ

unoconv -f odt titi.doc

แล้วก็ได้ titi.odt ออกมาเลย

แต่ว่าต้องไปเรียก soffice ให้ run ค้างไว้ก่อน แบบนี้

soffice -headless

ใส่ -headless เข้าไปพวก user interface ทั้งหลายก็จะไม่ออกมา ทำตัวเป็น daemon (service) ไปประมาณนั้น

แต่ถ้าใช้ Ubuntu 7.10 ก็มีปัญหานิดๆ เพราะไม่มี package unoconv วิธีแก้ก็คือเอาของ Ubuntu 8.04 มาลง. ผมเอา source package ของ Ubuntu 8.04 มา rebuild. ถ้าเอา package ที่ build มาแล้วมาลงเลยไม่รู้ใช้ได้เปล่า :-P. หรือถ้าใช้ Ubuntu 8.04 หรือ Debian lenny อยู่แล้วก็สั่ง aptitude install unoconv ได้เลย

ข้อมูล battery บน Ubuntu 7.10

Filed under: Uncategorized — वीर @ 1:21 pm
Tags: , , , ,

ระบบอื่นก็อาจจะดูได้เหมือนกัน … ผมไม่รู้. รู้แต่ว่าเปิดดูใน Ubuntu 7.10 แล้วประทับใจ

10 เมษายน 2008

OO.o 3 beta cannot display Thai text properly when …

Filed under: Uncategorized — वीर @ 5:33 am
Tags: , , , , , , , ,

Open Office.org 3 beta cannot display Thai text properly when it was zoomed in.

6 เมษายน 2008

It isn’t Foxkeh nor IceWeasel

Filed under: Uncategorized — वीर @ 5:22 pm
Tags: , , ,

It is just a dog in front of 7-11 in Univ.

5 เมษายน 2008

Use Cake, Eat Cake

Filed under: Uncategorized — वीर @ 3:52 pm

อาจารย์ซื้อมาฝาก

4 เมษายน 2008

TinyMCE 3 plugin for JQuery

Filed under: Uncategorized — वीर @ 7:31 pm
Tags: , , , , , , , ,
$.fn.tinymce = function(options){
    return this.each(function(){ tinyMCE.execCommand("mceAddControl", false, this.id); });
}

function initMCE()
{
    tinyMCE.init({mode : "none",
                  theme : "advanced",
                  theme_advanced_toolbar_location : "top",
                  theme_advanced_toolbar_align : "left",
                  theme_advanced_statusbar_location : "bottom",
                  theme_advanced_resizing : true});
}

initMCE();

Reference:

29 เมษายน 2008

Macbook ที่ใช้ Safari บน Windows

Filed under: Uncategorized — वीर @ 1:15 pm
Tags: , , , , , , ,

เจ้าของเครื่องเขาใช้แบบนี้ ท่าทางสนุกดีเหมือนกัน.

25 เมษายน 2008

CakePHP + timestamp

Filed under: Uncategorized — वीर @ 6:12 pm
Tags: , , , , , ,

เวลา save แล้วอยากให้ CakePHP ใส่ timestamp ให้ด้วยเวลาที่ row ที่ add เข้าไปถูก create เป็นครั้งแรก. ประมาณว่าต้องการเก็บว่า row นั้นสร้างมาแต่เมื่อไหร่. ผมใช้ callback function ใน model เอา เขียนสั้นๆ ก็เป็นอันใช้ได้.

class Corpus extends AppModel {
    function afterSave($created) {
        if($this->id && $created) {
            $data = $this->read();
            $data[$this->name]["created"] = date("Y-m-d H:i:s");
            $this->save($data);
        }
    }
}

เวลาสั่ง save จาก controller, afterSave ก็จะถูกเรียกแล้วก็ไปแก้ column: created ให้เป็นเวลาปัจจุบัน. ถ้า row นั้นถูกสร้างขึ้นใหม่ (ตรวจสอบได้จาก $created).

update #1: แต่จะให้ดีใช้ beforeSave ดีกว่า. จะได้ save ครั้งเดียวไปเลย (ตาม comment ของ พี่ป๊อก) แล้วก็ดูเป็นธรรมชาติดีด้วย :-).

class Corpus extends AppModel {
    function beforeSave() {
        $data[$this->name]["created"] = date("Y-m-d H:i:s");
        return true;
    }
}

แต่ถ้า edit แต่ไม่ได้ create corpus ก็คงต้องวิธีมาตรวจสอบเอา.

update #2: ลองดูอีกนิด จริงๆ แล้วไม่ต้องใช้ before/after save เลย. CakePHP ทำ timestamp ให้เองแบบที่ต้องการเลย โดยที่ไม่ต้องทำอะไร … แป่ว

CakePHP 1.2 + ภาษาไทย + UTF-8 + MySQL

default encoding ของ MySQL เท่าที่ผมใช้ไม่ได้เป็น UTF-8. เวลาใช้ CakePHP ก็เลยต้องแก้ configuration นิดหน่อยเพื่อทำให้ ใช้ UTF-8 และ MySQL ได้เนียนๆ. ใน CakePHP รุ่นก่อนๆ หน้านี้บางทีก็ต้องไปแก้ AppModel ที่ไม่ค่อยเท่เท่าไหร่ เพราะน่าจะต้องมาแก้อีกเวลา port ไปใช้ database ตัวอื่นที่ไม่ใช่ MySQL.

ใน Cake 1.2.x สามารถตั้งค่า encoding/charset แบบรวมศูนย์ได้ใน app/config/database.php เลย. ตามตัวอย่างแบบด้านล่าง

class DATABASE_CONFIG {

    var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'your_username',
        'password' => 'your_password',
        'database' => 'my2',
        'prefix' => '',
        'encoding' => 'UTF8' #ดูบรรทัดนี้เป็นสำคัญ
    );

    var $test = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => 'password',
        'database' => 'test_database_name',
        'prefix' => '',
    );
}
?>

เพื่อม ‘encoding’ => ‘UTF8′ เข้าไปก็ทำให้ใช้ภาษาไทยและ UTF-8 ได้เนียนๆ แล้ว.

พอมาเปิดใน phpmyadmin ที่ตั้งค่าให้ใช้ UTF-8 และภาษาไทย

ก็แสดงผลออกมาได้ถูกต้อง.

สรุปว่าถ้าอยากใช้ UTF-8 กับ MySQL ใน CakePHP 1.2.x ก็เข้าไปตั้งค่าได้ใน app/config/database.php

อ้างอิง

ปรับแต่ง Pluralization บน CakePHP

Filed under: Uncategorized — वीर @ 9:26 am
Tags: , , , , , ,

ก่อนที่จะใช้ CakePHP และ Ruby on Rails ก็คิดว่าโปรแกรมพวกนี้เจ๋งจริงๆ ทำ Pluralization ให้ได้เลย ไม่ใช่แค่เติม s ให้เฉยๆ ด้วย. แต่แล้วพอเอามาทำโปรแกรมก็เจอ corpus -> corpora เข้าไป CakePHP ก็ทำ pluralization ให้ไม่ได้ซะงั้น. แต่ก็ไม่ใช่เรื่องใหญ่แต่อะไร สามารถปรับได้จากไฟล์ app/config/inflections.php

ในกรณีของผม ผมก็เพิม case นี้เข้าไปเลย

 $irregularPlural = array("corpus" => "corpora");

ก็เป็นอันว่าใช้ได้ :-).

หน้าต่อไป »

บลอกที่ WordPress.com .