Khi dùng CakePHP2.x trước khi muốn thêm (insert) một record mới vào database mình hay gọi method `Model::create()`.
Ví dụ:
~~~php
$row = array('name' => 'Tom', 'age' => 10);
$User->create();
$User->save($row);
~~~
Method `Model::create()` sẽ reset toàn bộ dữ liệu đã được set vào Model trước đó (nếu có), nhằm tránh việc thêm những dữ liệu không mong muốn còn đọng lại từ những xử lý trước đó.
Tuy nhiên khi muốn sửa (update) một record thì **không được** gọi `Model::create()`.
### Cài đặt các font mặc định của Microsoft:
~~~
$ sudo su
$ cd /tmp
$ wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
$ rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
~~~
Package trên bao gồm những font sau:
* Andale Mono
* Arial Black
* Arial (Bold, Italic, Bold Italic)
* Comic Sans MS (Bold)
* Courier New (Bold, Italic, Bold Italic)
* Georgia (Bold, Italic, Bold Italic)
* Impact
* Times New Roman (Bold, Italic, Bold Italic)
* Trebuchet (Bold, Italic, Bold Italic)
* Verdana (Bold, Italic, Bold Italic)
* Webdings
### Cài đặt font tiếng Nhật:
~~~
$ sudo su
$ cd /tmp
$ wget http://dl.ipafont.ipa.go.jp/IPAexfont/IPAexfont00301.zip
$ unzip IPAexfont00301.zip
$ mv IPAexfont00301 /usr/share/fonts/
~~~
Command trên sẽ cài đặt 2 font sau:
* IPAex明朝
* IPAexゴシック
Dưới đây là cách thiết lập cho trình duyệt cache các file tĩnh của CakePHP 2.x khi chạy với Nginx.
~~~
location ~ /(.+/)?(img|css|js|files|fonts)/(.*) {
access_log off;
expires 30d;
add_header Cache-Control public;
try_files $uri $uri/ /../plugin/$1webroot/$2/$3 /../../plugins/$1webroot/$2/$3 /index.php?url=$uri;
}
~~~
Mặc định thư viện Matplotlib trong Python sử dụng GUI framework cho backend để hiển thị hình ảnh. Nếu Matplotlib không tìm được GUI framework cần thiết (máy không có GUI hoặc đăng nhập vào server thông qua SSH) thì sẽ bị lỗi như sau khi chạy script:
~~~
_tkinter.TclError: no display name and no $DISPLAY environment variable
~~~
Có thể khác phục lỗi này bằng cách thiết lập để Matplotlib xuất nội dung ra file ảnh thay cho GUI.
Tuy nhiên ngay cả khi xuất nội dung ra file ảnh cũng cần phải thay đổi backend của Matplotlib để không bị lỗi trên.
Có 2 cách chủ yếu để thay đổi backend của Matplotlib.