2008-04-19

[Note] Weekly Summary 2008/4/19

pi.debugger
http://code.google.com/p/pi-js/
跨瀏覽器的debugger,跟Firebug頗像,不過他是引用javascript的方式,就像Firebug lite一樣

Remember The Milk
http://www.rememberthemilk.com
好用的ToDo服務,可以跟gmail、google calendar、twitter等..結合.
跟gmail結合的非常讚,大大的提昇他的實用性

LyricWiki
http://lyricwiki.org
歌詞的wiki,還有API:http://lyricwiki.org/LyricWiki:SOAP

Lyric_Retriever
http://fujirou.ptt.googlepages.com/lyric_retriever

Scribd
http://www.scribd.com/

ImageShack Torrent
http://tor.imageshack.us/tor/
ImageShack推出BT代抓服務,目前還在測試階段可以免費使用,速度頗快....
現在看到的價目表
10 GB Disk / 15 GB Bandwidth: $10/mo
25 GB Disk / 50 GB Bandwidth: $25/mo
100 GB Disk / 200 GB Bandwidth: $75/mo
不過老實講,就台灣的環境來說,如果他要收費,那個錢不如砸在寬頻費上

Flu Vaccine Worst in 10 Years
http://www.webmd.com/cold-and-flu/news/20080417/flu-vaccine-worst-in-10-years
果然今年的流感疫苗比較沒用...

2008-04-18

用python清foobar2000的Custom Info

我foobar2000有在用custom info這個components,他可以讓你在foobar2000裡面幫音樂增加artist、album、title等..以外的欄位,除了管理音樂方便,還可以配合Inactive Tracks (foo_skip)Playback Statistics Custom (foo_playback_custom) 等等,可是每次想用它的remove dead entries功能(清失效的檔案路徑)都會錯誤,我猜可能是因為日文的關係...,他使用的資料庫是sqlite3加上要處理unicode的檔名,剛學的python剛好可以派上用場,幾行就稿定了:

他的資料庫(custominfo_sqlite.db)格式
table : quicktag
fields: url ,subsong,fieldname,value

Python程式碼

# -*- coding: utf-8 -*-
import sqlite3
import os
con = sqlite3.connect(r"custominfo_sqlite.db")
cur = con.cursor()
cur.execute('select url from quicktag group by url')
res = cur.fetchall()
dead_fp=[]
for row in res:
    (url,)=row
    fp=url.replace('file://','')
    if not os.path.exists(fp) :
        print fp
        url2='file://'+fp
        cur.execute('delete from quicktag where url=?',(url2,))
        dead_fp.append(url2)
con.commit()
con.close()



對了...有人要拿去用的話,一定要記得備份custominfo_sqlite.db

壓縮javascript

Packer
http://dean.edwards.name/packer/

YUI Compressor
http://developer.yahoo.com/yui/compressor/
(還可壓CSS)

說到javascript的壓縮,如果可以的話,從server side用gzip壓縮是最好的選擇(設定apache、透過php等都可做到),可是有時候放這些檔案的地方不提供這些功能的時候,就可以用YUI Compressor這類的程式來減少javascript的大小,原理不外乎就是把註解、斷行、空白刪掉,將local變數的名稱用一兩個字的英文數字取代。這時候有沒有習慣使用區域變數可是會影響壓縮出來的大小。

Packer
要取代區域變數名稱記得勾選Shrink variables,除了上述的壓縮方式,他還支援使用Base62 encode +eval這個方法來壓縮。

YUI Compressor
java寫的,除了javascript還可以壓CSS,因為開發者認為eval的方法很不好,所以並沒有支援。使用方式網頁或readme寫的很清楚。他是以命令列的方式執行,所以如果要一次轉一堆東西的話會比較方便(他自己沒提供,我是說自己寫個script)。要注意的是編碼問題,他預設是偵測你系統上的編碼來辨識輸入的檔案,檔案裡面全是英文就沒差,像是有用到utf-8的非英文字他就會跳錯誤給你看,所以記得指定charset,例如:
java -jar yuicompressor-2.3.4.jar --charset UTF-8 ui.js -o ui.min.js

之前用Packer 有發生過轉完javascript執行就跳錯誤的問題,YUI Compressor目前還沒遇到。

2008-04-13

[Note] Weekly Summary 2008/4/13

The wxPython tutorial
http://zetcode.com/wxpython/
wxPython 的詳細教學,圖文並茂。

Featherweight Virtual Machine
http://sourceforge.net/projects/fvm-rni/
羽量級VM,不過好像只能在windows上虛擬windows?還有出論文...

GREUtils
http://code.google.com/p/greutils/
XULRunner 的framework,由阿土伯開發。

AnimeVision
http://animevision.sourceforge.net/
管理動畫軟體,挺有趣的,不過感覺UI設計的不是很好

Classy Query
http://ejohn.org/blog/classy-query/
把jQuery的功能分類正名,雖然這樣變得有系統多了,感覺就像YUI那樣,不過失去了jquery的那種magic,而且重點是要多打很多字XD