वीर

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");

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

เรียก cake acl … ได้โดยไม่ต้องแก้ dbo_source.php แล้ว

Filed under: Uncategorized — वीर @ 6:49 am
Tags: , , , , , , , , , , , , ,

ทีแรกผมลองเอา code จาก svn trunk (svn co https://svn.cakephp.org/repo/trunk/cake/1.2.x.x cake12) ของ CakePHP มาใช้ ก็ยังไม่ได้แก้อะไร. แต่ถามไปอ่านใน trac เขาก็บอกว่าแก้แล้ว. https://trac.cakephp.org/ticket/3793 ถามต่อไปใน changeset อีก https://trac.cakephp.org/changeset/6312 ทีนี้ก็เห็นแล้วว่า code ส่วนที่แก้อยู่ใน branch …  svn co https://svn.cakephp.org/repo/branches/1.2.x.x cake12. ก็เป็นอันว่าแก้ไปแล้ว.

No space left

Filed under: Uncategorized — वीर @ 4:07 am
Tags: , , , , , , , ,

เวลาไม่มีที่ใน harddisk ใช้แล้ว ไม่รู้ว่าจะลบหรือย้ายอะไรไปเก็บดี. บน Ubuntu 7.10 (GNOME) มีเครื่องช่วยอย่างน่ารักทีเดียว.

แสดงออกมาให้เห็นเลยว่าอะไรใช้พื้นที่เท่าไหร่ คลิกขวาแล้วย้ายลงถังขยะ หรือเปิดดูได้เลยชอบมากๆ. โปรแกรมแบบนี้บน platform อื่นก็มีเหมือนกันกระมัง แต่ชอบ Ubuntu ที่ว่าไม่ต้องตามหามาลงยาก. แบบนี้เรียก out of the box ใช่เปล่า?

หน้าต่อไป »

บลอกที่ WordPress.com .