Pix_Table 是由痞客邦自行開發的 PHP ORM。在 4/15 的 OSDC 大會上,我們向開發者們分享了目前內部的使用狀況,並以開放原始碼授權 (BSD License) 釋出。原始碼位於 GitHub 上,歡迎 fork !

以下是當天 Session 的影片錄影:


PIXNET Lab 發表在 痞客邦 留言(0) 人氣()

The original version of nginx does not support write HTTP access log to pipe. It was not so flexible for managing logs with cronolog or scribe. The author of nginx (Igor Sysoev) said that the feature will not be in any future version of nginx. 

In 2011, The Taobao group in China just released their version of nginx, named Tengine. We take their patch, get the code corresponding to pipe only, and generate a patch file:  from Github

You can clone this Branch to compile, too.

Usage:

access_log "pipe:/usr/local/bin/cronolog /data/logs/access-%Y-%m-%d.log" combined

Attention: if the piped program dead, log will be written to the default log file, not re-open the pipe just as Apache. If you use a unstable logger (e.g. log to network), setting another access log file is recommended to avoid the loss of access log. 


PIXNET Lab 發表在 痞客邦 留言(1) 人氣()

原本的 nginx 是不支援把 access log 寫到 pipe 的,對於應用 cronolog 來 rotate log 或是 scribe 來收集 log 之類的用途比較不方便。nginx 作者也說了不會增加這個功能。剛好中國大陸的淘寶將他們所使用並且修改過的 nginx 版本(稱作 Tengine)open source,於是整理了一下,只取出跟 pipe 有關的程式,patch 回原本的 nginx (1.0 stable branch) 上。

Patch 可以在 Github 下載。也可以直接把 這個 Branch clone 下來編譯。

使用方法大致如下:

access_log "pipe:/usr/local/bin/cronolog /data/logs/access-%Y-%m-%d.log" combined

如果 pipe 另一端死掉的話,log 會寫入預設的 log file,不會像 Apache 一樣重新開啟新的 pipe。如果使用比較不穩定的 logger,建議另外多設定一個 access_log 到檔案避免 log 遺失。


PIXNET Lab 發表在 痞客邦 留言(1) 人氣()

用 MySQL 開發的時候,如果 collation 選擇 utf8_general_ci,比較字串(使用等號 =)的時候大小寫的不同會被視為一致,但是 SQLite 並不會。解決的方法是加上 COLLATE NOCASE

可以在 SELECT 的時候把 COLLATE NOCASE 擺在 LIMIT 1 前面:


SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> CREATE TABLE `users` (`id`, `user_name`, `email`);
sqlite> INSERT INTO `users` (`id`, `user_name`, `email`) VALUES (1,
'Repeat', 'REPEAT@example.com');
文章標籤

PIXNET Lab 發表在 痞客邦 留言(0) 人氣()

oEmbed 是一個讓第三方站台更方便地顯示網站各種資源的 API,提供 JSON 與 XML 格式,讓第三方網站不需要去 Parse 整個 HTML。例如,給定一個 PIXNET 相片 URL:http://emmademo.pixnet.net/album/photo/467720

會傳回如下的格式:

{

}

範例 API URL: http://api.pixnet.cc/oembed?url=http%3A%2F%2Femmademo.pixnet.net%2Falbum%2Fphoto%2F467720&format=json

目前 YouTubeWordpressFlickr 等網站都有支援,痞客邦 PIXNET的相簿、相片、部落格文章也於日前支援了 oEmbed API,但目前暫時不支援指定縮圖(thumbnail)大小的功能。

另外,您可以在支援的 URL 頁面中看到以下的 <link> tag:

<link rel="alternate" type="application/json+oembed" href="http://api.pixnet.cc/oembed?url=http%3A%2F%2Femmademo.pixnet.net%2Falbum%2Fphoto%2F467720&format=json" title="PIXNET oEmbed Profile">


文章標籤

jnlin 發表在 痞客邦 留言(0) 人氣()