Buy Reviews
Powered by MaxBlogPress  

Author Archive

GNU C Library – bindtextdomain

星期四, 三月 11th, 2010

函式: char * bindtextdomain (const char *domainname, const char *dirname)

bindtextdomain函式用於指定包含不同語言域名的訊息目錄,要正確的使用,就要有層次結構目錄中的目錄,下面會解釋這細節。

對程式設計師來說注意程式所要的翻譯被放在那個目錄結構開始是很重要的,像我們說/foo/bar,然後這個程式應該使用bindtextdomain呼叫來繫結目前程式對這個目錄的域名,所以要確認這個目錄可以找到,一支正確執行的程式不會依賴使用者設定一個環境變數。

bindtextdomain函式可以重複使用假如這個跟之前繫結的域名不同的domainname 參數沒有被覆寫時。

假如該程式想要在某個時間使用bindtextdomain,它就可以使用chdir函式來改變目前的工作目錄,dirname字串應該是絕對路徑名稱是很重要的,否則處理的目錄就會隨時間改變。

假如dirname參數是null指標,bindtextdomain會傳回目前domainname 域名所選擇的目錄。

bindtextdomain函式傳回一個含有所選擇目錄名稱的字串指標,這個字串會在函式內被配置耳且不能被使用者改變,假如系統在bindtextdomain執行時開始不用核心,傳回值會是NULL而且全域變數errno 會跟著被設定。

Nikon P5100 最佳化影像

星期四, 三月 11th, 2010

週六準備去竹子湖拍海竽,該是好好再瞭解自己的相機的時候了!

研究到這個設定,WIDE SEA 廣海影像D40影像最佳化(陰天表現)提到,『如果不修圖的話,不管晴天、陰天,用內鍵的「鮮豔」模式,就能得到不錯的照片了』,看來可以這樣試試看!

Amara XML工具包

星期三, 三月 10th, 2010

Amara XML工具包是針對XML處理的Python工具的開放原始碼收集,不只是工具,恰巧是用python編寫的,而且其工具是由底層到使用Python用語跟比其他程式語言有更多的優點的Python所建構。

Amara建構在4Suite上,而4Suite更著重在Python裡的XML標準的字面實施,Amara更增加了Python面對這些能力,Amara是開放原始碼,提供了Apache授權的4Suite變形,見檔案COPYING有更多詳細資料。

Akara是一個新的繖形專案,它包括了4Suite跟Amara 2.0做了全面的改善,見AkaraAmara2更多資訊, 我們強烈建議Amara使用這開始轉向Amara2

針對缺乏耐心的:快速安裝

Amara需要Python 2.4或之後的版本以及4Suite-XML 1.0rc4或之後的版本,它支援setuptools,所以你可以就這樣照下面的做:

easy_install amara

假如這沒有作用,你可能不能用easy_install來設定,那我建議你照這些簡單的操作來做。

easy_install會自動地幫你注意安裝的相依性,假如你不喜歡用easy_install,那就抓一個版本比1.0rc4新的Suite-XML套件來裝,然後使用一般方式來安裝Amara套件:

python setup.py install

或使用Windows安裝器,或其他的。

更多細節

Amara提供了你可以相信符合XML標準又不會失去熟悉Python感覺的工具,目前穩定的版本是1.0,開發版本是1.1.9,開發本有很多的效能跟API的改善,但是它不像穩定版那要有實地的測試,Amara最著名的組成部分是Bindery。

Amara Bindery: XML跟py一樣容易

Bindery將XML文件轉成Python物件樹對應使用在XML文件的詞彙,非常的清晰,例如,文件

<monty>
  <python spam="eggs">What do you mean "bleh"</python>
  <python ministry="abuse">But I was looking for argument</python>
</monty>

會變成一個資料結構所以你可以這樣寫:

binding.monty.python.spam

為了取得』eggs』值 (就像Python Unicode物件)或

binding.monty.python[1]

為了取得內容』But I was looking for argument』的元素物件,會有其它像這樣的Python工具,並且使得Bindery獨特之處就是針對繫結XML藉由一個很陳述規則基礎的系統驅動到Python的資料,你可以註冊那些由XPattern表現專門繫結的行為觸發的規則,它包括XPath支援而且很有效率,使用SAX來產生繫結,見使用者文件有更多細節。

使用者注意

開發者注意

參加萬人連署拯救菜英文活動,無敵CD-876電腦辭典讓你帶回家

星期二, 三月 9th, 2010

SANA的網誌(殺哪)~

最近受邀試用了無敵新款的電子辭典:
無敵CD-876 一整個就是好好用啊~!
影片裡說的『超級家教』是我覺得最厲害的地方 !
超級家教裡面有很多課程
點進去居然有老師在講解啊!!!
果然是帶了個
家教在身邊的感覺!!! (拇指)

用這個來學習語言真的很方便。
以後去圖書館唸書不用帶著厚厚的好幾本書
只要帶著電子辭典+耳機
就可以隨時隨地學習英文了!!!!
試用的期間,我搭高鐵的時候都在玩這台
學了不少單字呢~ (點頭)
整體而言,這台的功能真的很強大,我自己都好想認購這一台了啊….Orz  (看更多)


【活動期間】即日起~2010/03/19
參加萬人連署拯救菜英文,就有機會把超級家教帶回家
【活動辦法】
只要在活動期間內連署成功,即獲得1次抽獎機會及專屬網址。將網址發佈到個人Facebook/Plurk/或轉貼給其他朋友,成功導引朋友來連署,就可以累計更多抽獎機會喔!
最多送出5台最新上市無敵CD-876電腦辭典作為活動贈品
快來連署,把超級家教帶回家,向菜英文說掰掰~~
立即前往:http://event.jtmedia.com.tw/besta-cd876/?id=35

登入會員索取完整內容

stardict set gStarDictDataDir

星期一, 三月 8th, 2010

static void set_data_dir()
{
    //set gStarDictDataDir;
#ifdef _WIN32
    HMODULE hmod;

    if ((hmod = GetModuleHandle(NULL))==0) //取得目前 process的載入位址
        exit(EXIT_FAILURE);
    char tmp_buf[256];
    if (GetModuleFileName(hmod, tmp_buf, sizeof(tmp_buf))==0)
        exit(EXIT_FAILURE);

    gchar* buf = g_path_get_dirname(tmp_buf);
    gStarDictDataDir=buf;   
    g_free(buf);
#else
    gStarDictDataDir = STARDICT_DATA_DIR;
#endif
}

GetModuleHandle是Windows API的函式,函式庫是kernel32.dll,用來由模組名稱得到該模組的頭銜
GetModuleFileName也是Windows API的函式,函式庫是kernel32.dll,用來從已載入的模組得知該可執行檔的檔名及完整路徑

g_path_get_dirname是Glib函式庫裡雜項的實用函式,功能是取得取得檔案名稱的目錄部份。

g_free是釋放指向buf的記憶體。

這個函式的功能就是設定gStarDictDataDir的目錄,在Windows下我測到是指向C:\Program Files\StarDict,因為StarDict就是安裝在這裡!

健康食品 – 飛跑苜錠讓你眼睛亮晶晶

星期六, 三月 6th, 2010

本文為核備函字號0970401618,錠狀膠囊食品類別之飛跑苜錠試吃文,並非關於廣告行銷,所有用字取詞依『食品衛生管理法暨施行細則與解釋 第十九條』行之,如有誤用字詞,但請告知,ㄚ琪會儘速修改,謝謝!

最近博客界吹起了寫文被罰款的危機風,起因是樂可纖,然後是艾瑪給我的警告,然後看到今天是我被爪耙子檢舉文章到衛生局說明處份的日子~希望也是這輩子唯一的一次@@(3/4更新),所以真的要謹慎啊!

說到台灣衛生署進口許可這件事,這是飛跑苜錠給我掛保證的,可是後來看了這篇食品標有「衛署食字號」代表之意義,ㄚ琪才知道自己對食品的完全不懂,應該跟一般時下老百姓的想法一樣吧!以為有台灣衛生署進口許可就是很有保障的才對,這表示衛生署對產品認定屬食品管理不屬藥品管理而已,也不代表經過實驗室檢驗合格。那我自己也覺得業者有點可憐,為了迎合無知的老百姓我,特定要加這個保證給我們看,唉!

好了,瞭解事情真相後,我們就來探討這個錠狀膠囊食品飛跑苜錠吧!

DSCN3905

注意看中間右方有一個食品的字樣沒有,這確實是食品,跟ㄚ琪打開罐子時一看

DSCN4045-s

以為是滿醜的藥丸,後來才學習到這是錠狀膠囊食品,這個觀念可能不好改吧!

陳玫妃醫師——眼睛乾澀常因肝腎虛損需養肝滋腎陰

這篇就有提到『建議老年人平時可多吃一些護眼明目的食物,如多食用黃、綠色蔬菜,其含有超高量的葉黃素及玉米黃素。』原來成份葉黃素是要護眼明目的喔!

在活力藥師網這篇山桑子提到:「山桑子主要是含有一種「花青素 (Anthocyanosides )…花青素 (Anthocyanidins)是一種生物類黃酮複合物( Bioflavonoids)…生物類黃酮就是形成蔬菜及水果的顏色來源。在甜菜、蕃茄、茄子、黑櫻桃、葡萄,也都是含有大量花青素的植物…因為在二次大戰期間,英國空軍的飛行員在夜間服勤時會食用山桑子來增強視力,而使得山桑子的效果廣為人知。醫學研究證實山桑子可加速視紫質( Rhodopsin) 重生的能力,對於視覺敏銳度有幫助,還可以增加眼部血流循環,而山桑子的「花青素」不只可以用在眼睛,也可以應用於包括壞血病、泌尿系統方面的感染、靜脈曲張、長期糖尿病患者的血管病變。」,哇,這可營養了,山桑子另外有個我們比較熟的名字就是覆盆子,但是ㄚ琪覺得有點奇怪,既是有覆盆子成份,不是應該酸酸甜甜的嗎?這樣我想會比較好吃吧!

小米草的原為歐洲人傳統洗眼睛之用,醫學上對其功效諸多紛爭,且沒有臨床實驗,所以我就不再多說,或許看官自己可以依智慧來決定。

茄紅素又稱為蕃茄紅素,維基百科這樣寫:「有證據證明常吃含番茄紅素產品可減少心血管疾病癌症(特別是攝護腺癌)、糖尿病骨質疏鬆症男性不育 的風險。番茄紅素也許可減少食道癌直腸癌、和囗腔癌症等的風險。」這個元素成份,主要也是抗氧化劑,所以也是可以幫助保養眼睛的!

之前在電視上有看過,「1天1蘋果 醫師遠離我」,這是來自於美國研究人員說,「一天一蘋果,真的能讓醫師遠離我」,因為蘋果含有強效的抗氧化劑檞皮素(quercetin)。而這檞皮素正是飛跑苜錠的成份之一。

核黃素又稱維生素B2維他命B2,一個人缺乏這個營養素,在眼睛方面的症狀–會有眼睛畏光易疲勞、視力模糊、發癢流淚、眼睛酸痛、角膜充血,主要的食物來源,肝臟是最豐富的來源之一,腎臟、心臟亦含有相當可觀的含量,一般人我想攝取這部份的食物可能較難,有了飛跑苜錠也可以補充這一部份的養分!

DSCN3907

在飛跑苜錠的網站有這一篇眼睛保健介紹,提出來供大家參考比較,不直接引用官網的文件資料,是怕有失公正性,不過在我觀來,如果一個人在攝取食物的時候,能夠營養均衡的取用,我想在身體的保健上,特別是眼睛的照顧上,自然就可以達到,而在哪些食物 可以保養眼睛?一位眼科診所藥師提出維生素A類胡蘿蔔素中的β-胡蘿蔔素葉黃素、玉米黃素茄紅素以及維他命B2對眼睛的保養有很大益處。

總的來說,要輕鬆維持健康明眸,減緩眼睛老化,定期檢查眼睛是第一步。多吃富含維生素A和β-胡蘿蔔素的食物。例如紅蘿蔔、番薯等。

自己看了這麼詳細的成份說明後,對這保健食品就比較放心了,安心的測試下,對一個長期使用電腦工作的ㄚ琪來說,平常也只能外食,雖然我對自己在蔬菜水果的攝取上,是很有自信的,每日至少6樣蔬果,但看起來,還是會漏掉部份的營養沒攝取到,所以電腦打久了,特別是忘記自己的規律原則,每50分鐘離開電腦螢幕,這個動作沒做好,眼睛可能就累了,故此在這試用這幾天,我就比較特別注意,眼睛是否會乾澀、疲倦、視力模糊的跡象,ㄚ琪的眼力有點近視,大概在兩三百度吧,也希望可以不會再惡化,另外年紀也大了,希望不會有老花眼的症狀開始發生,這個週三公司要健康檢查,那時看眼睛的檢查情形再來更新資料!

這幾天試用下來,看起來有些作用,特別是感覺核黃素攝取有夠了,感覺比較不會疲倦,乾澀也沒有了,眼睛舒服多了,連帶的就感覺眼睛水亮起來了不少!難怪產品會主打亮晶晶,還真滿貼切的!

DSCN3908

部落格虛擬主機推薦

星期五, 三月 5th, 2010

周嘉良(John Chow)說他每天收到請求建議的信件,其中最常被問及的問題就是”你的部落格主機在哪裡?”或是”我應該用誰的虛擬主機?”,這個問題在ㄚ琪建構工作達人的時候也碰到過,之前看愛麗絲的部落格的時候,也努力的看看她的部落格虛擬主機在哪?就讓我們好好討論一下吧!

John Chow dot Com的虛擬主機是在自己的伺服器上,我的也是在自己的伺服器上,機器是放在簡陋的高雄家裡,用的是Dell最便宜的伺服器,照片我回宿舍找找看,再放上來,有很多人聽了周嘉良的話後通常會很失望,因為那樣設備的成本會超出他們的價格預算,很多人像我一樣就會繼續探索該如何建置部落格主機?周嘉良那時也沒有答案,後來他見意使用Monster Hosting,不過我看了之後好像倒了,這個主機商價格低廉,而且是當地的,也就是說在加拿大,周嘉良跟老闆也有認識,唯一的問題就是他們的基礎設施做得如何?這點我也很納悶,怎樣才可以看人家的主機房?周的朋友買了每個月4.95美元的方案,折合台幣約156元,聽起來很便宜,可能我也可以接受,而且有足夠的硬碟空間跟頻寬。

Jack回應說使用http://www.hostgator.comhttp://www.dreamhost.com這兩家的虛擬主機,都很不錯,但是價格大概要到每月$8.95,大約要新台幣280元,看來就有點不優了!

愛麗絲用的是精英資訊科技有限公司的虛擬主機,用最便宜的方案每月要250元,每年也就是要花3000元,如果是用美國的虛擬主機每月200元,這個方案就已經很接近Monster Hosting的虛擬主機的錢了,滿有吸引力的,只是有限空間跟頻寬,或許初期架站的人應該都不會有問題,但如果考慮長遠之計,如果流量大了,到時就得要斟酌費用跟所獲利潤是否合宜了。

有些人可能沒有經濟來源,那麼用免費的部落格是最方便的了,像xdite罵翻了Xuite跟無名,也都有免費的可以用,痞客邦看起來不錯,可以試用看看,我也玩過Google的Blogger,感覺是Blogger比較合我口味,但是還是有限制,所以…

ㄚ琪還是用自己架的server最好玩,雖然有時會當機,而這一點又很重要,因為如果網站會當機,那就表示你的信譽不怎麼好,不過在目前收入不足以敷出的情況下,就只好容忍了,或許往後收入多了的話,再來考量要怎麼讓主機可以更穩定,週邊的基礎設施可能就可以做起來,也不一定,就讓我們繼續加油吧!

Java SCJP 多型與轉型

星期五, 三月 5th, 2010

有下列程式:

class ClassA{}
class ClassB extends ClassA{}
class ClassC extends ClassA{}
public class Test{
public static void main(String[] args){
ClassA p0 = new ClassA();
ClassB p1 = new ClassB();
ClassC p2 = new ClassC();
ClassA p3 = new ClassB();
ClassA p4 = new ClassC();
}
}

下列程式何者正確?(請勾選出三項)
( )A. p0 = p1;
( )B. p1 = p2;
( )C. p2 = p4;
( )D. p2 = (ClassC)p1;
( )E. p1 = (ClassB)p3;
( )F. p2 = (ClassC)p4;

答案:A、E、F

起初做這題的時候,竟然把它看成是比較了,所以很簡單的題目,我就錯了!

php drupal 搜尋內容的警告

星期四, 三月 4th, 2010

2010-03-04_143925

主因是Trackback的6.x-1.2跟Spam的6.x-1.0不相容,好像Trackback參考舊的Spam模組,並且會用到spam_tracker資料表的probability欄位,但是Spam的6.x-1.0已沒有這個欄位,所以只能等待Trackback作者可以更新,我看了一下它的開發版本,已經將trackback.module裡的

define(‘TRACKBACK_WITH_SPAM’, module_exists(’spam’));

改成

define(‘TRACKBACK_WITH_SPAM’, FALSE);

這樣就不會有這個錯誤,只是就程式碼的意思來看,好像是要防trackback有垃圾的,所以改了之後,是不是可以防就不得而知了!

Dynamo 2.0 – Apache Cassandra

星期二, 三月 2nd, 2010

ㄚ琪最近讀Slashdot這一篇How Twitter Is Moving To the Cassandra Database,我特地查一下華文的新聞也看到有關碎碎念Twitter,這一則來自部落格MyNoSQL新的消息:Twitter用戶暴增20倍 計劃棄用MySQL,原來Twitter是用MySQL資料庫的,感覺就很親切,不過現在聽說要改用Cassandra資料庫,這個資料庫就真的很陌生了,進去Cassandra的網頁看看,它的slogan這樣寫:『A highly scalable, eventually consistent, distributed, structured key-value store. 』,這是一個高延展性的第二代分散式資料庫,Wiki上查到的應該是第一代的吧!至於第二代的分散式資料庫我就沒有sense了。Cassandra網站上說明它的由來,Dynamo的完整分散式設計跟Bigtable的欄位家族基礎的資料模式。

Dynamo跟Facebook又很有淵源,因為Cassandra是2008年由Facebook開放原始碼來的,它是由Avinash Lakshman跟Prashant Malik設計的,而Avinash Lakshman就是Amazon’s Dynamo的作者之一,在很多方面我們可以把Cassandra看成是Dynamo 2.0。

Bigtable就較熟悉了,之前的Google 應用服務引擎的筆記有提到這個資料庫的使用,因為太習慣用MySQL了,所以在用Bigtbale時可能就會稍微有點不習慣,不過這個問題應該很容易可以解決!

在MyNoSQL與Ryan King的對話中,有一些很有趣的地方,一個就是Ryan King曾經評估過的方案有哪些?『Various databases: HBase, Voldemort, MongoDB, MemcacheDB, Redis, Cassandra, HyperTable and probably some others I’m forgetting.』,裡面未曾提過我們所熟知的Oracle、MSSQL、DB2之類的,就覺得他的思維很奇特!

另外一個就是『How do you plan to migrate existing data?』,你如何計畫合併現有的資料,這可是很大的問題喔,就像ㄚ琪以前要把nuke的資料轉到drupal中,又或是在公司要作不同資料庫的資料轉移,這真的是很大的工程。

Ryan King提出的作法:

Write code that can write to Cassandra in parallel to Mysql, but keep it disabled by the tool I mentioned above

Slowly turn up the writes to Cassandra (we can do this by user groups “turn this feature on for employees only” or by percentages “turn this feature on for 1.2% of users”)

Find a bug :)

Turn the feature off

Fix the bug and deploy

GOTO #2

然後:

  1. Take a backup from the mysql databases
  2. Run an importer that imports the data to cassandraSome side notes here about importing. We were originally trying to use the BinaryMemtable[2] interface, but we actually found it to be too fast — it would saturate the backplane of our network. We’ve switched back to using the Thrift interface for bulk loading (and we still have to throttle it). The whole process takes about a week now. With infinite network bandwidth we could do it in about 7 hours on our current cluster.
  3. Once the data is imported we start turning on real read traffic to Cassandra (in parallel to the mysql traffic), again by user groups and percentages.
  4. Once we’re satisfied with the new system (we’re using the real production traffic with instrumentation in our application to QA the new datastore) we can start turning down traffic to the mysql databases.

只是聽聽人家在說Cassandra有多好,那沒什麼用,到不如實作一次看看,up and running with cassandra有提到怎麼安裝,我也來試試看!

用安裝CassandraCassandram 需有Java 6的環境才能跑!現在可以下載的版本是0.5.1
操作可以參考Cassandra Installation and Configuration這一篇,不過在Windows下跑有些另外要注意的是cassandra.bat這個檔,還有設定CASSANDRA_HOME的環境變數為D:\cassandra,cassandra.bat這個檔裡有

subst P: 『%CASSANDRA_HOME%\lib』
P:
set CLASSPATH=P:\

for %%i in (*.jar) do call :append %%i
goto okClasspath

:append
set CLASSPATH=%CLASSPATH%;P:\%*

SUBSET是建立路徑與磁碟機代號之間的關連。

所以要注意P槽是否正在使用中,如果使用中,就改成別的吧!還有-Dcom.sun.management.jmxremote.port=8080^這一行看來會使用8080 port,所以你有在用這個服務,需要把這服務關掉,或將這個port號改掉,不過我沒這樣試!

執行情形像這樣:
2010-03-02_175714

先擺著明天再繼續來玩玩看!