Fold All / Expand All

2009年10月22日 星期四

[Lyric Get] lyricwiki亂碼

講亂碼實在是很不專業,不過一時也想不出什麼詞來形容,就先這樣吧
When You Say Nothing At All

Artist: Ronan Keating


It's amazing how you can speak right to my heart
Without saying a word, you can light up the dark
Try as I may I can never explain
What I hear when you don't say a thing

其實這一看就知道是轉成code point了,而且browser本來就會正常顯示,完全是用來對付擷取程式!

@@
已修復
add Python code:
# convert s to unicode character
def code_point_to_char(matchobj):
if matchobj.group(1):
return unichr(int(matchobj.group(1)))
pattern = '&#([0-9]+);'
lyric = re.sub(pattern, code_point_to_char, lyric)

related JavaScript code:
var resultStr = sourceStr.replace(/&#([0-9]+);/g, function (word, code) {
return (String.fromCharCode(code));
});

Fail to install Opera 10 in fc10.x86_64

Download default package of Opera 10.00 for Linux x86 64, Fedora 7, 8, 9, 10, 11
``opera-10.00.gcc4.shared.qt3.x86_64.rpm''
double click it and install, installation failed and showed the following error message.
Error Type:
Error Value: 'ascii' codec can't decode byte 0xe6 in position 64: ordinal not in range(128)
File : /usr/lib/python2.5/site-packages/yum/rpmtrans.py, line 376, in callback
self._instProgress( bytes, total, h )
File : /usr/lib/python2.5/site-packages/yum/rpmtrans.py, line 457, in _instProgress
self.complete_actions, self.total_actions)
File : /usr/share/PackageKit/helpers/yum/yumBackend.py, line 2173, in event
self._showName(self.info_actions[action])
File : /usr/share/PackageKit/helpers/yum/yumBackend.py, line 2166, in _showName
self.base.package(package_id, status, self.curpkg.summary)
File : /usr/share/PackageKit/helpers/yum/yumBackend.py, line 224, in package
PackageKitBaseBackend.package(self, package_id, status, summary)
File : /usr/lib/python2.5/site-packages/packagekit/backend.py, line 109, in package
print >> sys.stdout, "package\t$s\t$s\t$s" $ (status, package_id, summary)


I'm still not sure about the reason. A work around is to comment that line 109.
That is
1. $vi /usr/lib/python2.5/site-packages/packagekit/backend.py
2. :109 (jump to line 109)
3. I (switch to insert mode and cursor at the beginning of line)
4. # (add Python comment mark at the beginning of that line)
5. (switch to control mode)
6. :wq (save and exit)
then double click the rpm again. installation should be OK.

I type in English due to SCIM cannot be sued in QT related program, e.g. Opera.

2009年10月21日 星期三

Ext JS related links

Ext JS official site
Ext JS Samples (3.0)

Ext JS Doc (1.1.1) (2.3.0) (3.0.0)

Ext JS SDK download (1.1.1) (2.3.0) (3.0.0)

Ext Tutorials
Ext FAQ Debugging

ExtJS user extension repository
Saki's Extensions, Plugins and Know-How

BitTorrent Tracker on Google App Engine

Atrack - A Tracker for Google's App Engine

非常神奇的把tracker架在Google App Engine上,之後來試試,performance可能還好,availability問題比較大,因為數量一多,就會超過quota limit吧。

Tracking the Trackers ←一些架在Google App Engine上的tracker會列在這裡

dm_get 更新 (新增夢時代、統一阪急、遠東百貨)

線上DM下載器

使用方法:
1. 下載dm_get_20091020.7z
2. 解壓縮出來,會看到四個檔案:dm_get.exe、input.txt、MSVCR71.dll、w9xpopen.exe
3. 修改input.txt,將你要下載的dm該頁網頁放進txt檔,例如:
http://www.uni-hankyu.com.tw/onlineDM_1.asp?ID=000085
4. 執行dm_get.exe (點兩下就可以啦)
5. 等它下載完

目前支援網站:
o 新光三越
o 太平洋SOGO
o 漢神百貨
o 漢神巨蛋購物廣場
o 大統百貨和平店
o 統一夢時代購物中心
o 統一阪急百貨
o 遠東百貨

另外,修掉整合版第一版無法下載新光三越dm的問題

似乎parsing那邊還是寫得太隨意了,performance有點差,不過主要的時間還是在download嘛…就先不管囉。

2009年10月18日 星期日

dm_get 整合版

線上DM下載器

使用方法:
1. 下載dm_get_20091018.7z
2. 解壓縮出來,會看到四個檔案:dm_get.exe、input.txt、MSVCR71.dll、w9xpopen.exe
3. 修改input.txt,將你要下載的dm該頁網頁放進txt檔,例如:
http://www.hanshinarena.com.tw/03-2/n_list01.php?m_id=137
4. 執行dm_get.exe (點兩下就可以啦)
5. 等它下載完

目前支援網站:
o 新光三越
o 太平洋SOGO
o 漢神百貨
o 漢神巨蛋購物廣場
o 大統百貨和平店

2009年10月15日 星期四

涼煙樂團「大人的世界」演唱會 11月7號 前進西門河岸

購買大人的世界演唱會預售票?


11月7號(六)13:30-16:00

我還沒買票啊~~只能當天拿這張去囉

TDK 16G量產

前陣子在PChome買的TDK 16G,速度不錯,讀取有機會到30MB/s,寫入也都有12、13MB/s,不知道哪天想到,把它format成NTFS格式,結果速度就狂降…用Windows 7看,單一大檔寫入會跑到5MB/s後,慢慢爬,最高也只能爬到7MB/s,變得和之前那些創見一樣慢啊……

所以還是來試一下網路上說的量產工具,PS2233 v1.03.00

第一次按下Start之後,過了很久,超過半小時吧,左上角格子仍然是黃色的…人家說會變綠色啊,而且說最慢的mode 21也是十幾分鐘而已,我只是要弄原廠的mode 8啊……

過了很久,出現個對話框,要把USB拔起來?拔起來之後,再插回去,get info就變成TDK 30x啦,還mode 255咧,完全是個失敗的樣子,不過get info還抓得到,那就再跑一次試試。

結果這次沒一分鐘吧,就出現綠色框框啦,再插拔一次後,就有抓到16G了,趕快丟檔案傳一下,又變回30/13的傳輸速度啦~~

2009年10月10日 星期六

SyntaxHihglighter Upgrading from 1.5 to 2.0

SyntaxHighlighter/UpgradingUpgrading from 1.5 to 2.0

官網提到從1.5升級到2.0,可以利用「shLegacy.js」加上「dp.SyntaxHighlighter.HighlightAll('code');」來達成,但是前提是html tag是用pre或textarea,而且有設定name。而Frank的五四三之前都是用「code class="py"」來包程式碼,所以這個方法行不通。

稍微試了一下,要先把預設tagName設成code
SyntaxHighlighter.config.tagName = 'code';
然後在最後面加上把class name從py換成brush: py,以相容SyntaxHighlighter 2.0
var tags = document.getElementsByTagName('code');
for (var index in tags) {
var tag = tags[index];
if (tag.className in {'py': 0, 'js': 0}) {
tag.className = "brush: " + tag.className;
}
}

另外,上次提到diff顏色和gitweb不一樣,以下是修改的方法,不要include官方的shBrushDiff.js
CSS:.syntaxhighlighter .diffRemoved,
.syntaxhighlighter .diffOldFile
{
color: #cc0000 !important;
}
.syntaxhighlighter .diffAdded,
.syntaxhighlighter .diffNewFile
{
color: #008800 !important;
}
.syntaxhighlighter .diffSubName
{
color: #990099 !important;
}

JavaScript:SyntaxHighlighter.brushes.Diff = function()
{
this.regexList = [
{ regex: /^\+\+\+.*$/gm, css: 'diffNewFile' },
{ regex: /^\-\-\-.*$/gm, css: 'diffOldFile' },
{ regex: /^@@.*@@$/gm, css: 'diffSubName' },
{ regex: /^\+[^\+]{1}.*$/gm, css: 'diffAdded' },
{ regex: /^\-[^\-]{1}.*$/gm, css: 'diffRemoved' }
];
};
SyntaxHighlighter.brushes.Diff.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Diff.aliases = ['diff', 'patch'];

[FFmpeg] SIGSEGV when parse corrupted WMV


--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -5,6 +5,10 @@
int get_buffer(ByteIOContext *s, unsigned char *buf, int size)
{
int len, size1;
+
+ if (!buf || size < 0) {
+ return 0;
+ }

size1 = size;
while (size > 0) {


其實問題不是這裡啦,問題是出在parse asf時,拿到的length是有問題的(非常大),然後malloc當然會失敗,return NULL pointer,但是沒做檢查,就丟進來get_buffer,在get_buffer做檢查應該是比較general一點。

SyntaxHighlighter 2.0

SyntaxHighlighter 2.0

用來highlight這個網誌source code的SyntaxHighlighter,在2009年出了v2.0(今天才看到 汗…),馬上就來換一下,不過語法和舊的不一樣,雖然官網有提供legacy解決方法,不過把legacy掛上去之後,好像沒有作用,可能還有少改東西吧…之後再研究。

然後啊…會去看到新版,是因為要來掛diff的語法,掛上去當然是比plain text好看啦,但是這顏色和習慣的git diff不一樣啊……之後來改一下好了,應該是改css就可以吧。

順帶一提,mercurial的web顯示裡,有個選項是「以gif format呈現」,連mercurial都承認git web的樣式比較好看@@

[FFmpeg] SIGFPE when decode corrupted ogg

--- a/libavutil/mathematics.c
+++ b/libavutil/mathematics.c
@@ -9,7 +9,7 @@
if(rnd==AV_ROUND_NEAR_INF) r= c/2;
else if(rnd&1) r= c-1;

- if(b<=INT_MAX && c<=INT_MAX){
+ if(b<=INT_MAX && c<=INT_MAX && c > 0){
if(a<=INT_MAX)
return (a * b + r)/c;
else

拿來當分母前要先檢查啦

[FFmpeg] Failed to decode ADTS AAC with channel number > 1

結果patch出現了…

AAC: Fix regression introduced in r20067 where ADTS files would always be

因為原本填1,所以只有單聲道的會正常@@

2009年10月6日 星期二

Lyric Get更新:支援LyricWiki、新增Search功能

Lyric Get@GAE

一陣子沒去LyricWiki了,今天去看,竟然用js擋selection,所以就順手做起來了。

Search功能,其實說穿了就是Google Customize Search,人家MangaDowner都弄了個Manga Search,當然要抄襲一下,來個Lyric Search。

2009年10月5日 星期一

AppLocale Rightkey

原來registry也可以出現在PChome toget,嘖嘖

不過好用是真的,備份一下
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\以日本語執行]
[HKEY_CLASSES_ROOT\exefile\shell\以日本語執行\command]
@="C:\\WINDOWS\\AppPatch\\AppLoc.exe \"%1\" \"/L0411\""

[HKEY_CLASSES_ROOT\exefile\shell\以簡體中文執行]
[HKEY_CLASSES_ROOT\exefile\shell\以簡體中文執行\command]
@="C:\\WINDOWS\\AppPatch\\AppLoc.exe \"%1\" \"/L0804\""

[HKEY_CLASSES_ROOT\exefile\shell\以繁體中文執行]
[HKEY_CLASSES_ROOT\exefile\shell\以繁體中文執行\command]
@="C:\\WINDOWS\\AppPatch\\AppLoc.exe \"%1\" \"/L0404\""


要加其他語系,就把參數換一下。例如要加個俄語,不知道俄語編號多少,就先用AppLocale新增一個用俄語的,記得最後要把「Create a shortcut to always run this application with AppLocale」打勾,然後用去看那個捷徑的property,像俄語就是/L0419。

後記:
原來微軟有網頁可以查語系代號!
List of LangIDs for MUI
備份備份
English (default): 0409
Russian: 0419
French: 040c
Czech: 0405
Spanish: 0c0a
Greek: 0408
Italian: 0410
Portuguese: 0816
Swedish: 041D
Turkish: 041f
Dutch: 0413
Japanese: 0411
Brazilian: 0416
Korean: 0412
Finnish: 040b
German: 0407
Norwegian: 0414
Chinese (Simplified): 0804
Danish: 0406
Chinese (Traditional): 0404
Hungarian: 040e
Arabic: 0401
Polish: 0415
Hebrew: 040d

download hrcomic

1. given comic link. e.g. http://www.hrcomic.com/comic/viewer.aspx?ID=161110
2. get html content of comic link
3. parse the input value of "__VIEWSTATE". the value is base64 encoded.
4. decode the base64 encoded string.
5. parse all jpeg file names and current image link from decoded string.
6. jpeg file names are joined by a character "|".
7. current image link is storing in 「img id='imgCurr' src='([^']+)'」.
8. using jpeg file names and prefix from current image link, we can get all jpeg links of this comic link.

誰來推薦一個好的downloader,可以和Python integrate起來啊……

2009年10月4日 星期日

GUI2Exe: 用GUI介面將Python打包成exe檔

用Python寫程式,想要讓別人使用時,通常需要打包成standalone的exe檔,在Windows平台上最常見的就是py2exe,另外還有其它選擇:Pyinstallercx_Freeze

這些打包工具的設定都是透過直接修改.py檔,像py2exe的setup.py就一直從別的project複製過來,如果有一個GUI front-end把這些設定都顯示出來如何?

GUI2Exe就是這樣一個工具,它支援py2exe、py2app、PyInstaller、cx_Freeze、bbFreeze這些打包工具,提供GUI介面來做設定。

使用方法:
1. 首先,到GUI2Exe的網頁下載,目前最新版是GUI2Exe_0.3.zip。
2. 將GUI2Exe_0.3.zip解壓縮,執行GUI2Exe.py (Windows上沒改設定的話,點兩下GUI2Exe.py就會執行它了)


3. GUI出現後,先新增project


4. 替project取個名字


5. 在Target Class這裡,做設定


6. 是GUI介面的Python程式,Exe Kind要選window;Python Main Script欄位點一下後,會出現"...",按一下"..."可以瀏覽檔案,選擇你的主程式.py檔


7. 設定打包選項:optimize, compressed, bundle_files


8. 勾選"XP Manifest File",把XP Manifest嵌在exe檔裡,這樣在Windows XP執行的GUI畫面才不會變成比較古早的樸素樣式。


9. 編譯完成的檔案,會在預設路徑出現,例如py2exe就會在該main script所在資料夾下的dist裡面。

執行GUI2Exe所需要的環境:
1. Python 2.3+
2. wxPython 2.8.8.0+
3. 任一Python exe打包工具

2009年10月2日 星期五

dm_get for 新光三越, 增加SOGO下載

線上DM下載器 for 新光三越
dm_get_skm

太平洋SOGO和新光三越的線上dm基本上是一樣,但是因為一個js的路徑不同,所以小修正後,太平洋SOGO也可以下載囉。

使用方法同dm_get_skm

下載:dm_get_skm.7z

話說…漢神網頁現在好像連不上耶…

dm_get for 大統和平店

線上DM下載器 for 大統和平店
dm_get_pz

使用方法:
1. 下載dm_get_pz.7z
2. 解壓縮出來,會看到四個檔案:dm_get_pz.exe、input_pz.txt、MSVCR71.dll、w9xpopen.exe
3. 執行dm_get_pz.exe (點兩下就可以啦)
5. 等它下載完

下載位置是在dm_get_skm.exe的資料夾下,會建立一個「pz」的資料夾,抓下來的dm圖檔都在裡面啦

dm_get for 新光三越

線上DM下載器 for 新光三越
dm_get_skm

使用方法:
1. 下載dm_get_skm.7z
2. 解壓縮出來,會看到四個檔案:dm_get_skm.exe、input_skm.txt、MSVCR71.dll、w9xpopen.exe
3. 修改input_skm.txt,將你要下載的dm該頁網頁放進txt檔,例如:http://www.skm.com.tw/edm/str100/20091001_CEL/index.html
4. 執行dm_get_skm.exe (點兩下就可以啦)
5. 等它下載完

下載位置是在dm_get_skm.exe的資料夾下,會建立該dm的資料夾,例如:「20091001_CEL台北南西店 週年慶 專刊」,圖檔都在各個dm資料夾下。