2012-01-15

App Clear (Fb遊戲去廣告)更新,接受邀請小幫手停止維護

從接受邀請小幫手上線到現在剛好過了兩年,雖然當時以相當隨意的心情寫了他。沒想到意外成了我寫過的程式中 最熱門的一個(囧,每天的使用者竟然有好幾千個,真是感動阿。

隨著facebook的一直改版(一直亂改),中間也跟著修改了很多次,因為過去這一年多來比較忙,中間有好幾次隔了很久才更新(被罵翻了 哈哈),在此跟使用者說聲抱歉。不過facebook近來對於邀請的政策已經改為交由遊戲本身自己處理,接受邀請小幫手已逐漸無用武之地,所以今天做了最後一次更新,之後除非有什麼特殊原因,應該就不會在改版了。最後特別感謝許多使用者協助測試以及回報錯誤和建議。

接受邀請小幫手 Accept Helper 1.3 final
http://nerv.appspot.com/fbp#accept_helper
-依fb改版修正
-開啟方式預設改為固定新分頁(因為Fb故意限制原本在本頁開起的方式,較新的瀏覽器都沒辦法用開在本頁)

 

另外很久沒更新的AppClear,順手做了一下更新:P

Fb遊戲去廣告 AppClear 0.5
http://nerv.appspot.com/fbp#appclear
-修正,介面會被檔到的問題
+自動消除右邊的遊戲動態

2011-09-21

Google App Engine 即將調整收費模式! THE END OF GAE?

Google said "Don't be evil".
I say...... "Don't be stupid!!!"

Google App Engine(GAE) 是一個google 在2008推出的一個web app雲端平台服務,打得口號就是提供google內部開發各個服務的架構,讓其他的Web app 開發者可以在這個架構下開發自己的程式。

一開始是以免費但限制資源(流量, CPU, 空間大小 讀取次數)的方式供大家測試,不過在這樣的限制之下也能做些小型的程式。 隔年2009 開始提供超過限制資源的付費方法(Google App Engine準備開始提供收費服務)。變成針對美一種資源計算超過多少,就收多少。在這個收費模式下,才有了較大規模的商業網站在GAE上發展。後來GAE除了python外 又支援了java,使用的人漸漸變多。

一切看來如此美好,就在這個時候,google寄給了每個開發者一封信「Google App Engine Leaving Preview」,內容簡單的說就是
2011/09/01
感謝各位這三年來對Google App Engine的支持,GAE即將畢業成為一個正式的產品!!
為了慶祝,我們決定在9月中調高收費!!! 期待吧~科科 


結果當然是一片傻眼,論壇上充滿酸文跟幹譙...,原因大概如下
  • 收費的方式改變最大的就是從計算CPU Time變成 instance hour,造成許多程式的收費爆增至5~10~30倍以上。新的收費方式會讓較小規模的程式活不下去。
  • 以一個正在使用GAE的網站經營者來看" (GAE成本+其他成本) >網站收益  "這樣網站才活的下去,結果"GAE成本"爆增個幾十倍,一些原本run的好好的服務,突然一改收費模式只能GG了。
  • GAE是一個PaaS(Platform as a service),代表著GAE下開發的程式會高度依賴GAE無法直接移到其他的伺服器供應商。而公佈調整收費的時間緩衝太少,只有幾個禮拜,就算想跳槽也不可能阿(翻桌 
  • 之前Google I/O(google的技術大會) 大力推廣Andriod App的開發者使用GAE作為server平台,因為GAE有免費資源限額可用,如果做出一個APP都沒人用,沒賺到錢,因為沒號什麼資源,所以損失的也只有開發成本,這樣確實是吸引許多人。不過許多App一開始都是些小型的程式。 現在叫那些跳到GAE的APP開發者情何以堪。
  • 所以不是賠錢讓他run下去, 就是關掉他
不過還好的是google有意識到反彈的聲浪,提出一些改變(A few adjustments to App Engine’s upcoming pricing changes)
  • 新收費標準的開始時間從9月移到11月1號,並延長減價優惠(50% off)。定在這個日期是因為預定那個時候會將GAE的python更新到2.7版,這樣python才可以有效的利用多執行緒(python2.7以前無法利用多核CPU的優勢,等於python的instance效率會比較差)。
  • 增加instance hour的免費額度(24→28hr),讓一些原本免費的小流量網站不會爆掉。
  • 延續GAE一貫的特色,最後呼籲大家把程式寫得有效率一點..(Google :  明明就是你的程式寫的太爛 還怪我收費太高)
Google最近很多動作(例如關掉字典等服務)。看得出來google正在轉變。隨著規模的成長,從過去充滿自由主義的風格,鼓勵內部積極開發創新的服務,到現在漸漸開始對各項服務的收支在意了起來,開始對一些虧本的服務開鍘。

有的人認為google正在違反當除他們自己提出的「Don't be evil」這個口號,不過畢竟google也是個營利公司,我(身為google的忠實粉絲)認為這是google正在成長的一個轉變。過去google瘋狂的開發了一堆不知道會不會賺錢的服務,現在反而成為公司的累贅,不砍也不是,砍了又破壞名聲。 我相信現在google會在一個新服務開始的時候做更完善的經營規劃,才不會突然大幅變更收費或收掉,造成使用者的困擾。

這次的事件雖然google很快的做出了反應,不過還是對GAE的名聲造成很大的傷害,而且讓人意外的是google對user的想法竟然這麼不瞭解。對於這一連串的風波,我只想對google說:「Don't be stupid」

最後我只祈禱GAE不要弄到倒掉...手上幾個網站都在上面...

2010-09-23

[筆記]Python中使用pickle時出現KeyError

遇到這個問題是在使用google app engine (GAE)中使用pickle的時候遇到的。

我利用pickle的dumps將一個物件序列化成字串存入GAE的datastore中,需要用時再取出字串用pickle.loads()還原成原本的物件。如下會出現"KeyError: \x00"的錯誤

from google.appengine.ext import db
class TestDB(db.Model):
    serialize_obj=db.TextProperty()

obj={'a':1,'b':'c'} #要存入datastore的物件
t=TestDB(key_name='test') #建立entity

import pickle
t.serialize_obj=pickle.dumps(obj) #將obj序列化成字串 並存到剛建立的entity中
t.put() #寫入datastore

#下面將讀出剛的字串並還原成物件
t2=TestDB.get_by_key_name('test') #讀出剛剛存的entity
obj2=pickle.loads(t2.serialize_obj) #理論上會字串還原為物件 並放到obj2變數中, 但是這裡會出現KeyError錯誤
print obj2 #上面沒錯的話 會print出{'a':1,'b':'c'}

其實這個問題很簡單,問題在於GAE的datastore在處理Text的資料型態,會將其存為unicode。而將unicode丟給pickle.loads就會導致這個問題。 修改上很簡單,最好的作法就是將db.TextProperty()改成db.BlobProperty(),不然也可以將unicode再轉回一般字串pickle.loads(str(t2.serialize_obj)),但是這樣只是多做無謂的轉換...

2010-06-22

Facebook遊戲去廣告 - App Clear

簡介

玩facebook的小遊戲時,最討厭的就是遊戲旁邊花花綠綠又沒什麼作用的東西,App Clear這個小工具可以幫你去除掉這些礙眼的傷眼物,讓畫面乾淨。(這簡介中充滿怨念...)

網站:http://nerv.appspot.com/fbp#appclear
有問題請到 Nerv. FaceBook Plugins專頁

安裝&使用

安裝

App Clear(遊戲去廣告) 目前版本ver. 0.3
IE, FireFox, Opera: 右鍵點選上面這個連結,並選取"加入我的最愛(書籤)",IE會有安全性警告,請無視他
Google Chrome : 直接將上面這個連結拖曳到書籤列(若無書籤列可按Ctrl+B開啟)

使用說明

要使用的時候,於Facebook的小遊戲頁面,直接到書籤(我的最愛)點一下App Clear(遊戲去廣告)就可以了。
執行成功之後會看到以下畫面

說明:

  • 執行App Clear之後會把遊戲介面以外的東西都從畫面上清除掉,並且會把背景變成灰色以凸顯遊戲。
  • 一些像是Restaurant City、Pet Society之流的遊戲,會把一些廣告跟遊戲合體,這類的就會清不乾淨,這是App Clear的極限,請見諒。
  • 可能會清掉一些你想用的功能,不過只要重新整理遊戲頁面就會恢復原本的樣子。
  • 每開啟一次遊戲的頁面都要執行一次,並未對所有的遊戲測試過,若有發現對遊戲功能造成影響可以向我回報。
  • 執行後右上角會出現一個App Clear ver.xx的按鈕,按開還有一些功能可以使用。
    • 移除聊天室把聊天室整個拔掉(要重新整理才再出現)。
    • 背景色深淺切換可以改背景顏色(白~灰~黑)。
    • 隱藏App Clear介面如字面,把App Clear本身的介面也移掉。

2010-03-27

[食記]鐵人九番

這家是老姊為了慶祝我和老妹生日找的店。裝潢和logo都蠻有特色的,不像是傳統的日本料理店。

吧台有6個位子,也有些一個人就可以點來吃的蓋飯,不過一個人的話有很多頗具特色的菜就會吃不到了。不管是味道還是外觀,從許多道菜中都可以看出是經過師傅們精心設計過的。

點了「和風生菜沙拉、鐵人生牛肉、綜合串燒、酥炸雞軟骨、綜合握壽司、明太子薯片燒、鐵人精選壽司、泡菜豬肉燒、鹽烤鯖魚、味增豬肉鍋、手捲、日式炸麻糬」這幾道都還不錯,下次想嚐嚐他的丼類。


和風生菜沙拉,份量蠻多的,適合多人一起吃,醬調得還不錯。


鐵人生牛肉,這道菜真的很漂亮,我很喜歡他顏色的搭配,當然味道也很不錯。


綜合串燒,烤的剛好,吃起來不會乾乾的,只是其中有幾個還蠻油的。另外值得一提的是右上角的綠茶粉,跟串燒還蠻搭的,不過有點太鹹就是了。


綜合握壽司,魚還算新鮮,醋飯也OK。


明太子薯片燒 ,雖然照片失焦而且角度照的很爛....,讓他有種變難吃的感覺,不過這道真的很好吃,菜如其名就是焗烤馬鈴薯厚片,上面有鋪一層魚卵。



鐵人精選壽司,內容可能不是每天都一樣,點的時候可以問一下今天是哪種。我們吃得這道壽司中間是包炸蝦,上面有蓋鰻魚,不知道本名叫什麼,光是看起來就讓人流口水了。


酥揚嫩豆腐 ,嗯...就是炸豆腐,不過是軟軟鹹鹹的那種(哪種..?)


醬燒中卷,也是烤得很剛好,不會太乾太硬。


生巧克力蛋糕,(咦......跳tone跳很大),旺旺的生巧克力蛋糕,聽老姐說這是他特地跑到神旺飯店裡面買得,吃起來真的不錯 都不會油膩(雖然實際上應該也蠻多油的..),好吃!

這次點的菜裡面,我覺得比較特別而且會推薦的是「鐵人生牛肉、明太子薯片燒、鐵人精選壽司、日式炸麻糬」這幾道。日式炸麻糬忘了照,乍聽之下名字還蠻普通的,不過這道真的還蠻特別的,在麻糬裡面還包了疑似米漿的東西,口感和味道都挺不錯,意外的好吃。

鐵人九番料理亭
Tel:(02)27761108
地址:台北市忠孝東路4段223巷10弄9號

檢視較大的地圖

2010-01-03

FaceBook處理邀請工具 - Accept Helper

因為國軍online中,久久才能上一次網,所以每次放假都累積一大堆的邀請。FaceBook的處理邀請介面蠻討厭的,都要跳到別頁,所以才做了這個Accept Helper,對我自己是蠻實用的,分享給各位。

簡介

接受邀請小幫手,提供更方便的介面一次處理多個邀請,不會每點一個連結都要離開本頁。

官方網站 http://nerv.appspot.com/fbp#accept_helper

安裝&使用

安裝

接受邀請小幫手 目前版本ver. 0.9.2

IE, FireFox, Opera: 右鍵點選上面這個連結,並選取"加入我的最愛(書籤)",IE會有安全性警告,請無視他

Google Chrome : 直接將上面這個連結拖曳到書籤列(若無書籤列可按Ctrl+B開啟)
這個連結在FaceBook中會被過濾掉內容,請到官方網站安裝。
最初的0.6版接受跟忽略按鈕弄相反了XD,如果現在開起來還是顯示0.6版,請重新安裝。

使用說明

要使用的時候,於Facebook的邀請頁面,直接到書籤(我的最愛)點一下接受邀請小幫手就可以了。

執行成功之後會看到以下畫面

說明:

  • 首先每個邀請的按鈕會被[接受!] [忽略]所取代,您可以直接按這兩個連結來處理邀請。
  • 開啟於選單則可以設定接受邀請之後頁面要顯示的位置,預設的本頁面中會顯示在畫面中那個白色的區塊(看不懂的話,實際使用就會馬上瞭解了),選擇開在本頁面中時可以上下拉動下面的灰槓調整大小
  • 過濾使用者選單可以讓你依照邀請人只顯示來自那個人的邀請。
  • 接受第一個如字面,就是接受畫面中第一個邀請,同樣 適用於過濾使用者之後。

2009-12-13

[食記]築地平價日式料理

雖然這家就在六張犁捷運站底下,不過外觀實在太不起眼了,根本沒有什麼裝潢,沒仔細看的話不容易發現這裡有一家日本料理,在網路上也蠻少介紹的。

店的空間不大,只有吧台8~9個位子,跟兩張四人坐的木桌。

這家店剛開的時候就有跟家人去吃過一次了,那時候都沒什麼人,不過現在假日生意還不錯,也不少人外帶。


築地招牌蓋飯(NT.100) 精緻度沒魚僮那麼好,不過生魚片真的很新鮮,底下用的是醋飯,雖然量不多但是整碗飯跟料配起來剛好,不會有魚僮那種飯不夠配的感覺。它還有其他種像是鮪魚、鮭魚、鮭魚肚、紅魽、旗魚等的蓋飯,價格在150~200之間,量會比招牌多。


和風野菜沙拉(NT.70) 如果只點個招牌蓋飯可能會有點不夠,可以在點個小菜手捲沙拉之類的。想說都吃肉,就點個沙拉來吃,不過我後來後悔了,應該點個手捲(NT.30~70)或小菜(NT.50)就好,因為這個沙拉的量有點太大,其實比較適合兩個人吃。


味噌湯(NT.30) 裡面會有一隻蝦子,不過湯本身還蠻普通的。

這家店的優點就是新鮮,雖然最近有漲價(以前招牌蓋飯NT.80),但還是蠻便宜的,如果下次去我應該會點個鮪魚蓋飯來吃吃。另外推薦烤魚不錯,如果兩個人以上就可以點。

缺點的話就是人手明顯不太夠,只有一個師傅跟一個助手,助手似乎是工讀生不太熟練,人多的時候助手一團混亂...,上菜要等蠻久的,所以建議平常日人少的時候去吃。

由於店不大,比較適合1~4人去吃,雖然說兩張併起來的桌子最多可以坐8個人,但是這家這麼小應該是沒在預約的。

築地平價日式料理
地址:台北市和平東路三段175號

其他人的介紹
築地(平價)日本料理
台北市六張犁捷運站 築地平價日本料理
~超人飛台北~店內很安靜的築地平價日式料理~

2009-12-06

[食記]魚僮小舖

這家算是小有名氣的店,本來這周是想去吃六張犁附近的另一家小店,可惜我去的時候竟然說沒飯了= =
既然都讓本宅踏出家門了,實在不甘心隨便買個雞排飯就回去,只好改變目的走去魚僮小舖。

一般吃飯時間魚僮小舖通常都要排隊,主要是他的店小小的,只有吧台幾個位子一次坐不了幾個人,我去的比較晚所以不用排就有位了(營業到9點,不過有可能在之前就沒飯之類的),另外也蠻多人外帶的。

雖然就是直接坐在路邊吃,不過後面有個簾子擋著加上燈光所以感覺還好。


生海鮮丼(NT.120)
飯上擺的食材色彩豐富具有層次感,加上打了黃色的燈光,賣相還不錯。
碗的大小直徑約14cm高10cm,誤差在±1cm之內(竟然還計算碗的大小,當兵的無聊程度可見一斑)
吃得時候建議先吃生魚片,旁邊那些配料味道都還蠻重的。
在點丼類的時候,老闆會問你要不要加飯,他會這麼問是有原因的,因為他們的飯量算少,除了食量比較大的人有可能吃不飽之外,他飯的配料以及小菜味道都比較重,飯會不夠配(p.s 在下的口味比較淡)。

另外就是他的飯是一般的白米而沒有用醋飯,這方面倒是可以理解,因為飯上面已經有調味的配料了,下面放醋飯可能會更不夠配。

雖然飯量嫌少,但是整體來說還這種價格的確不貴。


魚卵花枝(NT.50) 還蠻鹹的,這個要配飯吃,不過感覺已經比之前來吃得時候不鹹許多了,量稍嫌少。
他還有其他蠻多種的小菜,印象中都是NT.50,聽我妹說雖然口味重量少但是都蠻好吃的,他推薦海膽花枝(不一定每天都有)。


味噌湯(NT.20) - 大合照(共NT.190)
味噌湯的碗跟蓋飯的一樣大(碗多大很重要嗎..),喝起來算普通的好喝(到底是普通還好喝阿..)


回家路上,六張犁捷運站旁邊的圓環,在超出這張照片的右邊,有個阿罵正在等紅燈,我在窩在他旁邊照的時候可能動作比較鬼祟,偷瞄了我幾眼露出不解的神情,另外在更右邊躲了一個警察在抓違規右轉,還有對面....(離題Mode..ON!!. )

這家店適合一兩個人去吃(更正 不適合一個人去!!!坐在那裡的時候,左右都在放閃光),因為位子實在太少了,太多人的話可能就要外帶去別的地方吃。

魚僮小舖
地址:台北市信義區和平東路三段261號 (六張犁捷運站附近,信安街上)
TEL : 0936-215168

2009-12-05

[食記]真鮮生魚片專賣

北醫附近市場的小店,雖然在北醫這麼多年,但是完全不知道有這家(汗

這家是老姐推薦的,特色就是俗又大碗。
外觀就如同一般路邊常見的開放式小吃店,完全沒有裝潢之類的。

生魚片蓋飯 NT.150

生魚片給的很大方,不過完全沒有擺盤XD,可惜生魚片不夠新鮮,魚肉有些鬆散崩解,光澤也不佳,不知道是不是因為晚上去吃才這樣。

飯的份量不少,醋飯底下還偷埋了一隻蝦子加上沙拉醬,不過那個沙拉醬加在這裡不太對我的胃口,吃完有點油膩的感覺,口味太台式了,我還是比較喜歡清爽的料理。

味增湯 NT.30

味增湯的料倒是還蠻多的,燉到魚肉都化在湯中,喝起來相當濃郁。


回家路上拍一下有點朦朧的101

真鮮生魚片專賣
台北市信義區吳興街183號

2009-10-08

Restaurant City 小幫手

這是因為我連續答錯幾題Restaurant City的每日小問題後決定製作的小幫手(怨念充滿)。

主要的功能就只是快速查詢Daily Quiz的問題跟答案而已以。官方網站 : http://nerv.appspot.com/rcp (其實就是這篇blog的內容XD)。

瀏覽器相容性:IE7&8、Firefox、Chrome、Opera。IE6未測不明 。跑很慢的電腦上未測試效果怎樣。

使用的方法有兩種:

Bookmarklet模式(書籤程式)

此模式可以將小幫手安插到Restaurant City的頁面上。
開好Restaurant City之後將下面這串貼到網址列再按下Enter(IE有時怪怪的,可多按幾次enter試試)。或者可以把下面這串當作網址加入書籤(我的最愛),然後在Restaurant City的頁面點選即可。

javascript:(function(){document.body.appendChild(document.createElement('script')).src='http://nerv.appspot.com/js/rcp/main.js';})();


像下面這樣按enter:

成功之後如下圖

在這個模式下會看到原本廣告的部份被清掉用來擺RC Helper。 Restaurant City的上多了重新整理跟隱藏Restaurant的功能的連結,其實不重要,有需要的人再使用就好。

嵌入模式

點選以下網址即可。注意!下面這個網頁會在網頁內新開一個Restaurant City,所以可以將原本開的Restaurant City網頁關掉。

使用方法

當使用上面任意一種方法成功之後,便可在問題出現的時候在keyword輸入關鍵字查尋,為了提高查詢的精準度,一些字會被忽略掉,選最關鍵的字,查詢的時候也不要輸入那些無關緊要的字,通常打一兩個字母答案就會出來了。

2009-10-01

Visual Ansi 釋出原始碼

Visual Ansi (官網 :http://web2.tmu.edu.tw/b101091044/va/ 官網還用學校的空間會不會太窮酸啦 )是自2003年用VB6開發的BBS繪圖軟體,本來我都會趁每年的寒暑之間改bug或加些新功能,可是去年實習根本沒心力去弄,所以最近一次的更新是在遙遠的2007年底。

本來有想趁畢業到當兵前夕再做一次更新,不過因為學了各種更有彈性的語言之後,現在反而覺得VB6寫起來綁手綁腳,加上打電動看動畫花掉太多時間以致....(被拖走),因此決定放棄繼續維護原本的Visual Ansi 。做下這個決定其實還蠻感傷的,算算從開始寫到現在也有六年的時間了,雖然裡面的程式碼醜陋又用了很多奧步,但是看了這麼久也是會有感情的。最近剛好有網友跟我要原始碼說想修改,我就順勢把原始碼放到google code上面供大家下載。

Visual Ansi 原始碼
http://code.google.com/p/visualansi/
語言 : Visual Basic 6
原始碼存取方式:SVN
授權:GPL
有意修改者請mail給我,幫你加入修改成員

其實蠻久以前就有人問我要不要把原始碼放出來,不過因為開始寫得時候對架構沒有規劃,那時候根本沒有想到會開放原始碼,所以不少地方用了一些骯髒的寫法,每年修改的時候,撰寫風格也有所改變,程式內部呈現一種混搭的狀態,這是我一直不敢開放原始碼的原因(引用PCMan作者的比喻 - 開放凌亂的原始碼就跟裸奔一樣XD)。不過現在年紀大了,可能臉皮隨之變厚就不太在意這種事(真的嗎?!!可以裸奔了嗎 (被巴 ),才很乾脆的把原始碼放出來。心裡當然是希望有熱血人士繼續維護,不過就算沒有,當程式範例讓其他人研究一下也不錯啦。

如果有時間的話(電動繼續打下去應該就沒有..),我會想開發web base的Visual Ansi Online或是用python+wxWidgets寫,不過以目前的狀態應該是空想.....快要國軍Online了XD

2009-09-02

貓咪殺手 - 百滅寧(Permethrin)

這篇文章是在我家貓咪中毒之後寫下的,希望可以幫助到一些其他的貓。


Permethrin (百滅寧)是一種人工合成的除蟲菊精,他被廣泛的用作殺蟲劑。例如農藥以及貓犬的除蝨、跳蚤藥物。
台灣目前一些用於狗的除蝨蚤滴劑如ADVANTIX® (益百分)和Defend® (滴必除)都含有Permethrin,另外一些防跳蚤的項圈、沐浴乳、螞蟻藥也可能會有。

之前我老爸買ADVANTIX幫我家狗除蚤的時候,竟順便將幾滴滴在貓身上,幾個小時之後發現貓咪的行為有點怪異,會找地方躲起來,查了一下才知道這個絕對不能用在貓身上。發現他疑似中毒後,才趕快將他送到動物醫院,那個獸醫說他之前也有遇過一個誤用ADVANTIX的例子,才兩天就走了。那幾天我不斷的查關於Permethrin的資料,越查越擔心。幸好中毒的量並不多,經過兩天的治療才出院,我想告訴大家的是,Permethrin 是會殺死貓咪的!!!

Permethrin可以從皮膚、口、吸入的方式吸收,在哺乳類動物的體內會經由肝臟代謝再從腎臟排除,但是相較於其他哺乳類動物,貓的肝臟功能缺少某些酵素造成Permethrin不易被代謝排出而致毒(過高的劑量對狗也是有毒性)。
脂溶性的Permethrin會在肝臟中先被水解,然後再接上OH基以及接上glucuronide或sulphate,變成水溶性以利從腎臟排出到尿液中。而Permethrin會造成貓中毒的原因就在於貓水解酵素作用速率較慢以及肝臟缺少接上glucuronide的酵素(glucuronide transferase enzyme),使Permethrin不易從貓的體內排出 2
ADVANTIX和Defend都有特別標示是給狗使用的,不可以用在貓身上,雖然會有人(也可能是獸醫)跟你說點在狗身上之後,即使他跟貓接觸也沒關係,但是不要再相信這種沒根據的說法了!!根據澳洲獸醫的不良反應通報計畫(AERP vet)所蒐集的資料,有1/4的貓Permethrin中毒是由於接觸到使用了Permethrin的狗 3。對於同時有養貓跟狗的家庭來說,強烈建議絕對不要使用這些藥物,會造成貓咪中毒的劑量可能遠比你想像的要小。

在接觸之後一般幾個小時之內就會出現症狀,不過也有超過一天以上的例子2,3,Permethrin對貓的毒性主要作用在中樞神經系統,使神經過度興奮,症狀有(出現率由多到少排列):抽搐、顫抖 、口水分泌增加、行動失調、瞳孔放大過度敏感、體溫過高、局部肌肉抽動、心跳過快甚至垂死1,2。其他還可能有嘔吐、拉肚子、暫時失明。我家貓咪中毒的時候有出現輕微的背部肌肉抽動、顫抖、瞳孔放大(在亮的地方也不會縮小)、呼吸心跳變快、體溫上升、過度敏感睡不著等症狀。
Permethrin會可逆性的作用於軸突(axon)的鈉離子通道,使鈉離子通道開啟的時間延長,造成神經不斷地被刺激,肌肉持續的收縮會造成體溫升高,另外也可能因肌肉溶解釋出的myoglobin造成腎臟損傷,所以在治療方面即使沒有全身性的癲癇發作(seizure),持續性的顫抖(tremor)以及肌肉收縮(Muscle fasciculation)也需要使用藥物治療。

當你發現家裡的貓中毒的時候,不管出現的症狀嚴重與否,請立即帶他去看獸醫。以英國的資料來看(VPIS),送醫治療後的死亡率還是有約10.5% 1。另外一份的資料(VMD)死亡率為37% 3

除了儘速送醫之外,飼主能做的還有清洗沾有毒物的部位,因為Permethrin是脂溶性的,所以清洗的時候使用肥皂洗髮精等將有助移除毒物。但是切記只能使用溫水而不可用熱水,熱水會造成皮膚的微血管擴張,反而有利於毒物的吸收,當然也不能用過冷的水,要小心洗完之後可能發生體溫過低的狀況。因為中毒後神經處於興奮的狀態,對外界的刺激特別敏感,必須安置在黑暗安靜的地方。

造成死亡以及不良後遺症最主要就是因大腦過度持續放電造成的全身性抽搐(伴隨口吐白沫、意識喪失、眼睛上吊等類似人類的羊癲瘋、癲癇發作),這種不正常的持續放電會造成大腦損傷、缺氧以致死亡。

一般Permethrin中毒都建議較積極且及早開始治療(建議送較大醫院),Permethrin並沒有直接的解毒劑,治療主要以支持療法為主,給予點滴灌水幫助稀釋以及毒物排出,另外針對會造成嚴重後果的全身性抽搐(癲癇)的症狀控制是很重要的。

經過治療後,大約平均約2~3天甚至到一個禮拜才會完全恢復1,我家的貓大概在第三天的時候恢復的差不多,但是其實還是會有一點點輕微的症狀存留。一般若是順利恢復不會有什麼長期的後遺症,但是在嚴重持續抽搐的病貓,可能會造成腦損傷、腎病變甚至死亡。
治療方面除了IV hydration外,可以使用Diazepam/barbiturates/Methocarbamol等藥物控制seizure、muscle fasciculation、tremor等症狀,膀胱的排尿功能有可能被抑制,適當地bladder care也是必要的1,2。詳細的治療劑量可以參考reference 中的paper。


Reference
  1. Nicholas M. Sutton, Nicola Bates, Alexander Campbell. Clinical effects and outcome of feline permethrinspot-on poisonings reported to the VeterinaryPoisons Information Service (VPIS), London. Journal of Feline Medicine & Surgery 2007
  2. NL DYMOND, IM SWIFT. Permethrin toxicity in cats: a retrospective study of 20 cases. Australian Veterinary Journal 2008
  3. P-J LINNETT, Permethrin toxicosis in cats. Australian Veterinary Journal 2008


2009-08-31

Google Chrome - Drag n Go 套件來了!!

超爽的~我在chrome上最期待的套件之一出現了!
2010.02.13補充
Drag n Go 目前已經沒有在更新,而且不支援最新版的Chrome。
不過現在也出了很多可以取代他的套件,而且現在Chrome預設已經開起套件(extension)功能。
Drag and Go
十分單純的功能(連結拖拉->背景開啟 , 文字拖拉->背景開google搜尋該文字),缺點是沒什麼設定可以更改,不過對我而言剛好就是我需要的功能。
Chrome Gestures
功能比較多設定也比較齊全,它主打的是其他滑鼠手勢的功能,對於拖拉方向的要求似乎較精準一點,有時後會開不出來,所以我用起來不太順手,另外連結跟文字拖拉的功能預設是關閉的,必須到選項裡面開啟它。
Drag n Go

Drag n Go可以直接用滑鼠拖曳連結開啟在新分頁(圖片的話就是在新分頁開圖,選一段文字拖曳的話就是開新分頁搜尋那段文字)
這個套件才剛出 發表在chrome plugins的論壇上

本來在firefox上面用爽爽的拖拉開新分頁功能,一開始換到chrome沒有還很不習慣(雖然現在已經習慣了)。

不過!使用上有幾個條件
1. chrome版本必須使用dev channel (現在是4.XX版)(???)
2. 必須開啟chrome 的extension功能 (捷徑後面加上 --enable-extensions) (???)
安裝就到上面chrome Drag n Go的網頁點download連結
2010.02.13補充
現在Chrome預設已經開啟套件(extension)功能,不需要上面說得那兩個條件了喔!
而且現在安裝套件如果是在https://chrome.google.com/extensions 的網站 點安裝就會直接跳出來問你要不要裝了。
點兩下下載的那個檔案就好了。安裝之後不用重新啟動chrome,但是要注意"在裝之前開的分頁 不會有作用,除非你重新整理,新開的分頁就有用"
*2009.09.01補充
其他類似功能的套件還有 nkGesture http://code.google.com/p/nk-gesture ,這個套件還多了滑鼠手勢
另外ChromePlus (http://www.chromeplus.org/) 則是直接修改chromium來加入許多實用的功能 ,不過這種直接內建的方式比較不合我胃口 。

2009-07-03

Google App Engine 故障出包

昨天晚上(2009/07/02)的時候Google App Engine開始變得不穩,一開始是偶發的datastore寫入錯誤,加上讀取速度變慢,後來datastore的寫入完全無法使用,讀取則是偶爾出錯(Error: An error occurred for the API request datastore_v3.Get()),我第一次遇到這種持續完全不能用的情形,過去也曾有遇過偶發性的問題 不過通常都只會出現一下下

  File "/base/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 696, in put
    return datastore.Put(self._entity)
  File "/base/python_lib/versions/1/google/appengine/api/datastore.py", line 166, in Put
    raise _ToDatastoreError(err)
  File "/base/python_lib/versions/1/google/appengine/api/datastore.py", line 2055, in _ToDatastoreError
    raise errors[err.application_error](err.error_detail)
Timeout

甚至連管理後台(http://appengine.google.com)也整個掛掉,沒多久之後Google就立刻將datastore寫入和上傳程式碼的功能關閉,進入維修

CapabilityDisabledError: Datastore writes are temporarily disabled.

另外還關閉了Memcache的寫入功能,之前這個部份並沒有錯誤,不知道為什麼要這麼做。

經過了四個多小時的維修才恢復正常。最後google在論壇上發表的解釋,
Information regarding 2 July 2009 outage

Error Rate爆衝圖

Google App Engine確實是一個很不錯用的服務,之前才發表開始收費加值服務,結果沒多久就遇到有史以來最大的包,掛掉5個多小時,對於GAE的聲譽多少會造成影響,畢竟大家都會對Google的服務抱有較高的期望,而且掛這麼久 叫付費的人情何以堪。論壇上甚至還有人酸說比一般便宜的server hosting還不穩定XD

2009-04-04

Google Toolbar干擾Firefox 3的網址列關鍵字的最佳解決法

Firefox 3有個功能就是可以直接在網址列(address bar)輸入關鍵字,然後透過google的服務幫你直接轉到最符合的網站,例如你在網址列輸入"氣象局",就會自動幫你轉到中央氣象局的網站 ,這其實就是google好手氣的功能,如果輸入的關鍵字比較沒有偏向某個網站的話,就會列出該關鍵字的google搜尋頁面.

不過在裝了google tool bar之後這個功能在輸入中文會有問題(變成亂碼或問號???),後來在網路上找了一下發現,原來是google tool bar會把這個功能改成導向about:neterror。

可以看這篇" 火狐娘搜尋列看不懂中文~? 你安裝了GOOGLE TOOLBAR了嗎? (解決方案) ".


(前面有一段廢話 最佳解請看最後一句)

在firefox的設定(about:config )中其實可以修改在網址列輸入關鍵字的對應動作

keyword.enabled 預設 true

keyword.URL 預設 http://www.google.com.tw/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=


當裝了google toolbar之後她會自動去把keyword.URL改成"about:neterror?e=query&u=",理論上about:neterror的功能要跟原本的一樣, 可是它不認識中文...

如果你直接在about:config裡面把keyword.URL改回預設值,只有暫時有用而已,下次重開又會被改回去。

網路上一般的解法都是去改google tool bar的程式toolbar.js 位於

XP
C:\Documents and Settings\[你的帳號]\Application
Data\Mozilla\Firefox\Profiles\[ 不一定的亂數 ]\extensions\{3112ca9c-de6d-4884-a869-9855de68056c}\lib\toolbar.js

Vista
C:\Users\[你的帳號]\AppData\Roaming\Mozilla\Firefox\Profiles
\[不一定的亂數]\extensions\{3112ca9c-de6d-4884-a869-9855de68056c}\lib\toolbar.js

Portable
Firefox3\Data\profile\extensions\{3112ca9c-de6d-4884-a869-9855de68056c}\lib\toolbar.js



其中有一段程式碼會偵測如果keyword.URL的內容沒有about:neterror的話,就把它替換成"about:neterror?e=query&u="

這是屬於一個名為LinkDoctor的功能

GTB_LinkDoctor.prototype.updatePreferences_=function(){
if(this.enabled_){
var keywordUrl=this.preferences_.getPref("keyword.URL");
if(!/^about\:neterror/.test(keywordUrl)){
this.backupPreference_("keyword.URL");
this.backupPreference_("keyword.enabled")
}
try{
this.editingKeyword_=true;
this.preferences_.setPref("keyword.URL","about:neterror?e=query&u=");
this.preferences_.setPref("keyword.enabled",true)
}finally{
this.editingKeyword_=false
}
}else{
this.restorePreference_("keyword.URL");
this.restorePreference_("keyword.enabled")
}
};


我注意到if(this.enabled_) 這句,似乎表示這個替換keyword.URL的功能應該是可以設定的。

然後就在about:config中找到了幾個關於linkdoctor設定

google.toolbar.linkdoctor.enabled //是否起用linkdoctor的功能

google.toolbar.linkdoctor.backup.keyword.URL //在替換keyword.URL 時 會將原本的值備份於此

google.toolbar.linkdoctor.backup.keyword.enabled

只要把keyword.URL改回預設值,再把google.toolbar.linkdoctor.enabled 設定為false就可以解決一切了

不過想想也奇怪,總覺得這樣的功能應該會有在做出介面才對, 最後才發現根本繞了一大圈...


其實只要在Google 工具列的 選項->搜尋->網頁瀏覽工具 取消勾選"當網址不正確或無法使用時提供建議"就可以了= =|||


2009-03-22

Chrome無法啟動

最近Chrome突然無法啟動,重裝也裝不起來,另我十分困擾,才發現原來我已經依賴Google Chrome這麼深了..

雖然chromium可以用,不過chromium沒內建自動更新而且少了右鍵google選取文字的功能,用起來不太習慣。

後來研究了一下才找到解決方法。
如果你的chrome也無法啟動或安裝的話,雖然不一定跟我問題的原因一樣,但是下面解決的經驗可以參考一下

首先我先去找了chrome把檔案放在哪裡
平常的捷徑是指向"%userprofile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe"
(p.s %userprofile% 通常是在"C:\Documents and Settings\你的帳號\")

到%userprofile%\Local Settings\Application Data\Google\底下找,砍了Update跟Chrome資料夾都沒什麼用。

不過我有注意到,當自動下載完更新的時候,他就會指到"%userprofile%\Local Settings\Temp\chrome_XXXXX\chrome.exe"
我猜chrome的作法是在下在更新檔解開到Local Settings\Temp之後,就把他捷徑指向這裡,這樣下次啟動的時候這個程式才會把更新的程式覆蓋"Local Settings\Application Data\Google\Chrome\Application",然後執行新版的chrome (要這樣做是因為chrome正在執行的時候,執行檔會被鎖住,無法更新覆蓋,但是google又想要默默的更新,不想要每次更新就叫你關掉chrome)

我先把"%userprofile%\Local Settings\Temp\"底下的東西都殺掉,然後執行chrome的安裝一邊觀察他在Temp裡面做了什麼,結果發現底下多了一個chrome_installer.log
裡面的內容是[0322/013951:ERROR:main.cc(363)] Higher version is already installed.

這表示chrome一定有把目前版本的資訊存在一個地方。

接著以"chrome"為關鍵字搜尋登錄檔,就找到了HKEY_CURRENT_USER\Software\Google\Update\Clients\{8A69D345-D564-463c-AFF1-A69D9E530F96}
裡面紀錄著chrome的版本,將他移除之後就可以正常安裝了



問題如何產生的?
我之前就有使用Google Chrome Channel Chooser 把chrome改成DEV的版本,極有可能跟他有關。不過應該有許多人都有改,類似的案例卻不多(google chrome help上有人跟我有相同的問題 )。
比較可能的應該是自動更新下載完後,在下次啟動更新的中間意外的失敗。造成登錄已經更新版本號,但是檔案安裝不完全,無法執行。
另外如果有用了Channel Chooser改版本,然後沒有用內建的刪除,直接砍檔案的話,之後重裝也是會有一樣的問題,因為重裝的時候他預設是用stable的版本。

2009-03-15

[Note] Weekly Summary 2009/03/15

Javascript

Gallerybox
http://www.sam-sys.com/gallerybox.html

一個新的jQuery秀圖plugin 像是相簿一樣的呈現方式

GX - Javascript Animations Framework
http://gx.riccardodegni.net/
配合jQuery的動畫framework,像YUI裡面的動畫功能 那樣

Google App Engine

Reducing Page Load Time on Google App Engine Pages With Multiple JavaScripts
這篇文章主要是在介紹在google app engine中,動態的將網頁中所用到的所有javascript壓縮並合併存在memcache,這樣可以有效的減少request數,降低網站載入的時間。
我自己也有用類似的方法,不過我是在將程式update上去GAE的server之前,先去執行一個python的script把所有的javascript和CSS各合併成單一檔案,再呼叫YUI compressor 來壓縮,直接變成static file上傳。我想這樣還是比從memcache讀取來的有效率,而且當你javascript有變動update上去之後,如果沒有清掉memcache裡的資料,那網頁還是會載入舊的javascript。另外就是用YUI compressor還可以支援CSS瘦身。

JaikuEngine
http://code.google.com/p/jaikuengine/
http://jaikido.blogspot.com/2009/03/jaikuengine-is-now-open-source.html
Google之前宣佈停止Jaiku 的開發,然後把Jaiku移植到google app engine上面,並開放原始碼(就是說現在任何人都可以把他抓下來放到GAE上跑自己的Jaiku),不知道會不會有人接手維護。

John Skidgel 所製作精美又實用的Cheat Sheet, PDF檔一共有兩頁
SoftWare
Animal Shelter Manager
http://sheltermanager.sourceforge.net/home.php
真的是什麼軟體都有XD
這是個管理動物的軟體 可以適用於 動物園 動物收容中心 獸醫等地方 支援Windows, linux, BSD系列, MacOS X..多個作業系統
作者本業是個軟體工程師 因為在RSPCA (英國防止動物虐待協會, 中文網站 )當志工而寫了這套軟體

Proxifier
http://www.proxifier.com
讓不支援設定代理伺服器的程式,透過proxy連線。跟Freecap之流的軟體比起來的好處是不用透過該軟體執行,例如有個程式A執行後會去執行另一個子程式B,用Freecap就只能讓A透過
proxy,Proxifier的好處就是可以讓AB都用代理。


Sample Socks5 Proxy Server Demo
http://www.freevbcode.com/ShowCode.Asp?ID=5057
Socks 5 Server in VB
Pysocks
http://sourceforge.net/projects/pysocks/
Socks server in python







2009-03-01

[Note] Weekly Summary 2009/03/01

好久沒寫,快變成yearly summary了XD

Raphaël
目前看到最重意的javascript繪圖library,大小只有36kb,支援Firefox,Safari,Opera,IE,網站上沒提到但是chrome我測試過也可。

Cross-Browser Inline-Block
http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/
需要動態排列float的div時常遇到的問題,這篇文章提供使用CSS的解法。


Add N Edit Cookies
https://addons.mozilla.org/firefox/addon/573
Firefox修改Cookie內容的外掛


TopStyle Lite
http://www.newsgator.com/individuals/topstyle
http://www.newsgator.com/download/products/ts3lite.exe
免費版的TopStyle,編輯CSS檔十分好用


Firefox的外掛 Tiny Menu
自從使用chrome後,總覺得firefox的瀏覽畫面很小,這個外掛可以把firefox的選單放在一個鍵裡面,然後你可以自己再用自訂工具列的功能把其他按鈕和搜尋列都放到上面,這樣就可以增大一點瀏覽面積。

網路電台架設初學心得 (二)

上一篇是 網路電台架設初學心得 兩年多前寫的,待續到現在都還沒補完= =

現在剛好又有在玩電台就把他補上


附註一下,oddcast這個名稱被別的公司註冊走了,所以現在更名為Edcast,但是因為是最近改的,網路上很多資料還是用Oddcast這個名稱.

電台架構
DJ端
撥放器(foobar2000,winamp..)
擷取音訊&編碼&傳送到伺服器(oddcast/edcast)
伺服器端(shoutcast、icecast..)
需實體IP.

其中播放器跟Edcast(oddcast)必須要在同一台電腦(DJ的電腦)上,而伺服器在哪裡都可以,也可以跟DJ端在同一台,只是要在網路上放送的話,伺服器一定要有個實體IP。

現在開始介紹實際架設的步驟,以下以Foobbar2000+Edcast(Oddcast)+Soutcast為例

Step 1. DJ端的軟體安裝

Foobar2000的安裝就不介紹了,主要說明Edcast(Oddcast),可以從這裡取得http://www.oddsock.org/tools/edcast/
他有三腫版本可以分類成:

  • 播放軟體外掛版
    • Foobar2000 Version
    • Winamp Version
  • 獨立版本
    • Standalone Version

他們的差異在之前的文章就已經說明過了,在使用上兩種版本的選擇:

  • DJ要透過麥克風講話 → 獨立版本
  • 使用Foobar2000 、Winamp以外的軟體播放音樂→ 獨立版本
  • DJ不說話 + 不希望電腦的聲音(例如你正在瀏覽的網頁播放的音樂) 傳到廣播→ 播放軟體外掛版

選擇你需要的版下載後,就直接執行安裝檔,兩種版本的安裝步驟很類似

  1. 選擇要安裝的東西 - Edcast本身以及音訊編碼(select compoments to install)
    跳過第一個同意授權的畫面之後,就會到要你勾選一些編碼的視窗(裡面有),Edcast(Oddcast)負責擷取聲音然後轉成mp3、ogg之類的格式在傳道伺服器,而轉換mp3、ogg等格式的工作Edcast(Oddcast)是依賴別人寫好的一些程式,這裡勾選的東西除了Edcast本身的程式之外就是這些用來轉檔的程式(XXX.dll),其中專MP3編碼這個最常用的程式檔,因為授權的關係沒辦法附在Eddcast裡面,所以預設沒勾選,就算你勾選了,它等一下也只會跳出可以下載的網頁,所以這裡也不用急著勾選MP3。
    不知道上面在說什麼也沒關係,這一頁完全不用動它,按Next就好了
  2. 要裝在哪?
    獨立版的話,就選個你想裝的地方安裝就好了
    Foobar2000外掛版就要選擇你當初裝foobar2000的地方(winamp同理),特別注意的是,如果你的foobar2000正開著,安裝完之後要重開Edcast才會出現。
  3. 安裝MP3編碼
    為了讓你電台能被大部分的人收聽,我想每個DJ都會需要這個步驟,因為一般使用windows的聽眾,如果沒有特別安裝什麼播放軟體或編碼,大概也只能聽mp3格式的廣播。不過edcast裡面沒有附(可能是因為授權的問題),所以我們要自己去下載。我們需要的檔案名稱叫做"lame_enc.dll",你可以直接Google "lame_enc.dll" 找載點,或是到RareWares網站Lame mp3下載頁 選個比較新的下在就可以了,壓縮檔裡面會有個lame_enc.dll,依照你使用的edcast版本放到適當地地方。
    - 如果是使用獨立(standalone)版本,就把他放到安裝edcast的資料夾下面。
    - 播放軟體外掛的版本就放到播放軟體的資料夾下面,例如foobar2000就放到跟foobar2000.exe同個資料夾
這樣就完成DJ端軟體的安裝
Step 2. Server端的軟體安裝與設定

如果是連接別人的伺服器或打算使用免費伺服器(LiveDoor)的可以跳過這步驟。
這裡介紹的廣播伺服器軟體是ShoutCast,(除此之外還有開放原始碼的ICEcast這裡就不多作說明)。
ShoutCast不一定要安裝再跟DJ貒同一台電腦,這裡有個之前提過的重要觀念,就是關於音樂資料的流向。
DJ端跟Server端在不同電腦

DJ端
Server端 聽眾端
edcast將聲音轉成MP3 ShoutCast接收到MP3資料,發送給聽眾


...
聽眾1
聽眾2
聽眾3
...
聽眾N
從這裡可以觀察到,當DJ以16kb/s的頻寬上傳音樂到Server端,而同時有5個聽眾的話,Server端將負擔16x5=80kb/s的上傳流量,但是不管變成多少聽眾DJ端的電腦都只要上傳16kb/s的流量。
DJ端跟Server端在同一台電腦
DJ端 聽眾端
edcast將聲音轉成MP3
ShoutCast接收到MP3資料
發送給聽眾



...
聽眾1
聽眾2
聽眾3
...
聽眾N
所以不管怎樣Server端盡量放在頻寬比較大的電腦,這樣才能增加可收聽的的聽眾,例如DJ的網路只有2M/512,但是他有個朋友A用的是學網,那就可以請他朋友安裝shoutcast,DJ只用edcast連線到A的電腦,聽眾再連到A的電腦收聽,這樣就能容納叫多的聽眾。
另外,Server端"必須"要有實體IP可以連接,虛擬IP的話需要從防火牆設定,不過些再講下去就離題了,看不懂的可以google一下"虛擬IP"。

  1. 下載並安裝軟體
    到ShoutCast網站的server下載頁 依照伺服器的作業系統版本下載並安裝。(windows以外的版本直接解壓縮就可以用了)
  2. 設定ShoutCast (修改sc_serv.ini)
    這裡先只提幾個最重要的設定來修改,將sc_serv.ini打開後,找到以下項目修改
    - MaxUser: 最大聽眾數,預設是32人,這部份請依照自己頻寬調整,如果頻寬負荷不了,聽眾聽起來會很lag。
    - Password: DJ端連接到shoutcast的密碼。
    - PortBase: shoutcast所使用的port,預設是8000,假如你的伺服器IP是123.21.21.21,那聽眾就可以從http://123.21.21.21:8000收聽
設定完成後直接執行就可以了

接下來就是DJ端(edcast)連線到伺服器的設定...待待待續...
(三個"待"表示下篇不知道什麼時候才會寫..


2009-02-25

Google App Engine準備開始提供收費服務

在Google App Engine 的Blog 發表了"New! Grow your app beyond the free quotas! ", 預計在90天之內開放超出Quota資源的付費資源。

超出Quota的收費是採用多少資源收多少費用的方式,你可以依照預算設定一個支付額度的上限,主要可設定項目只有Outgoing Bandwidth, Incoming Bandwidth, CPU Time, Stored Data, Recipients Emailed這五項。 不過當你啟用付費功能的時候,其他的Quota都會提高許多,詳細的內容可以看更新過後的Quota說明。但是像單檔10MB、資料庫每筆1MB的限制還是不會變。

在宣佈收費方式的同時 Google也決定對免費的Quota做了一些改變

  • CPU Time從46.30 hours/day減少到6.5hours/day
  • 頻寬從 10GB減少到1GB
  • 為了補償,從現在起 儲存容量從500MB增加到1GB


說實在的改很大,改不用錢。這個動作還是為了區隔出付費的使用者,不過我想對大部分的普通使用者影響應該不大,為了維持GAE的營運我認為是可以接受的 。

調低免費Quota也表示從GAE開放到現在,GAE的使用情形沒有google預期的熱絡。大部分的人都是用來建一些中小型網站。

不過之前並沒有付費的機制,只有固定Quota,我想也不會有商業使用者貿然將大型的project建構在GAE上。我認為GAE宣佈開放付費可以看作Google在對商業使用者招手說:「 GAE已經是一個成熟可以賣的產品了,請安心的購買吧!」 (尤其最近Google決定關掉一些服務,總是讓人會有種不信任感,會不會哪天建在GAE上的網站,突然被宣佈要關閉,而且最可怕的是,用它api寫出來的程式幾乎沒辦法直接轉移到其他地方..)

除此之外,GAE目只能使用python作為撰寫的語言(雖然有發表將支援其他語言的計劃,不過目前還是沒看到新的動靜) 也是沒那麼多人用的原因。儘管python的後勢看漲,看看TIOBE的排名 或是用Google Trend比較搜尋的結果,目前的python佔有率仍然比PHP少上許多,況且PHP幾乎都是用在Web上,而Python用在web上還算少數。GEA若推出PHP作為runtime language,想必可以立即吸引許多現有的的技術人力使用GAE。另外最被看好會支援的java來說,個人認為它雖然具有淺力,但是經濟效益還是沒有PHP來的高。主要還是因為使用java的人雖然很多,但是用在server side的比率還是比較少,而這個結構短期內不太可能會有變動。

GAE現在除了限制之外,還有一些沒支援但是對一些網站非常重要的功能,例如在背景執行、訂時執行的程式,不過在最近GAE在blog正式宣佈將會支援這些功能(A roadmap update!)

目前把GAE拿來作非玩票性質使用的網站還不多,不過隨著付費服務的開始,相信在今年GAE將會做出許多改變。