最近換 fedora 15 一切都很好…
只有以前在 windows 上面用的選字翻譯 google translate client 沒有 linux 的版本,搜尋一下發現在 linux pygtk 上選詞已經被實作成事件了~ gdk.SELECTION_PRIMARY,因此實作起來應該不難,
開始了今天的旅程……順便解釋幾點概念 :
最近換 fedora 15 一切都很好…
只有以前在 windows 上面用的選字翻譯 google translate client 沒有 linux 的版本,搜尋一下發現在 linux pygtk 上選詞已經被實作成事件了~ gdk.SELECTION_PRIMARY,因此實作起來應該不難,
開始了今天的旅程……順便解釋幾點概念 :
可能是 WordPress 3.2.1 的 jQuery 版本變更了,造成 SlimStat-Ex js 執行錯誤,造成整個頁面無法產生。
把這行改成這樣就好了。
if (!((el.attr('title') == '') || (typeof(el.attr('title')) == 'undefined'))) {
看起來是 jQuery().attr(‘title’) 是空值時的回傳值改變了。
—
由於原始版本已經沒有維護了,這個版本的瀏覽器判斷有些舊了,沒有把 chrome 包含進去,我想要把他加入統計所以改了一些地方~
程式碼是參考原始的 slimstat 的
function parse_browser(..) { .. 432 } else { 433 $info['version'] = $sniff[3]; 434 } +435 if($info['browser'] == '190' || $info['browser'] == '191') { +436 mb_eregi( "^([0-9]*).(.*)$", $info['version'], $v ); +437 $info['version'] = $v[1]; 438 } 439 if ( sizeof( $sniff ) == 5 && $info['platform'] == '-1' ) { 440 $info['platform'] = $sniff[4]; 441 } .. } function _determineBrowser(..) { .. 455 array( 'netscape', '1', 'netscape[0-9]?/([[:digit:]\.]+)', 1 ), +456 array( 'chrome', '190', 'chrome/([[:digit:]\.]+)', 1 ), +457 array( 'chromium', '191', 'chromium/([[:digit:]\.]+)', 1 ), 458 array( 'safari', '2', 'safari/([[:digit:]\.]+)', 1, '10' ), 459 array( 'icab', '3', 'icab/([[:digit:]\.]+)', 1, '10' ), .. }
$this->browserString2ID = array(....., 'Chrome' => '190', 'Chromium' => '191');
$id2browser = array(.. 190 =>'Chrome' , 191 => 'Chromium' .. );
這樣就不會再誤判成 Safari 了,附上我修改完的版本…
or
https://github.com/mlwmlw/wp-slimstat-ex
以往 Open Source 界的 web 開發模式比較普遍的模式是 lamp ,由 apache 提供穩定且強大的網頁伺服器,並由 PHP 提供一套簡單的直譯語言,可以簡單的存取資料庫,輸出 html,對一般初學者來說非常容易入手,而對於老手來說 PHP 也提供了不少的彈性來組織大型的應用程式。
來源:https://www.cloudkick.com/blog/2010/aug/23/writing-nodejs-native-extensions/ , http://lupomontero.e-noise.com/blog/writing-node-js-modules-in-cpp
程式碼:https://github.com/pquerna/node-extension-examples/tree/master/helloworld
由於 Node.js 是採用 v8 作為引擎,所以要擴充他的物件與函式,也算是寫 v8 的模組。
因為我也是 c++ noobie…,所以用初學者的觀點介紹一下這個最簡單的模組好了。以下有範例與說明