Fold All / Expand All

2009年12月29日 星期二

gdb-7.0.1 failed to build on ppc platform workaround

diff -r 3e44f6f79b21 sim/ppc/Makefile.in
--- a/sim/ppc/Makefile.in Mon Jan 18 15:35:03 2010 +0800
+++ b/sim/ppc/Makefile.in Mon Jan 18 15:39:53 2010 +0800
@@ -551,7 +551,7 @@ PACKAGE_SRC = @sim_pk_src@
PACKAGE_OBJ = @sim_pk_obj@


-psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBS) $(LIBINTL_DEP)
+psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBINTL_DEP)
$(CC) $(CFLAGS) $(SIM_CFLAGS) $(LDFLAGS) -o psim$(EXEEXT) main.o $(TARGETLIB)
$(BFD_LIB) $(LIBINTL) $(LIBIBERTY_LIB) $(LIBS)

run: psim


目前遇到LIBS跑出來的值是-lz,把-lz放在prerequiste當然是爆炸囉。

build arm platform就沒這個問題

BitTorrent magnet link

Transmission 1.80 beta 1 (2009/12/03)
開始支援Magnet link
ticket of Transmission Magnet support
diff of Transmission Magnet parser commit

rTorrent尚未支援
ticket of rTorrent Magnet support
How To Compile rTorrent From SVN In Ubuntu 9.10 Karmic Koala / Debian 5 Lenny With Magnet Link Support

Related Links:
Magnet URI scheme@wikipedia
MAGNET-URI Project
BitTorrent’s Future: DHT, PEX, and Magnet Links Explained

2009年12月27日 星期日

無双 OROCHI Z 各劇情模式第八章外傳出現條件

無双 OROCHI Z 各劇情模式第八章外傳出現條件

蜀:
第七章『江戶城』
在2分內逃出起火的江戶城,城內的我方將領也要逃出

魏:
第七章『山崎』
在1分內,擊破反叛的妲己

吳:
第七章『小牧長久手』
關卡開始3分內,出現救出孫家父子動畫

戰國:
第七章『五丈原』
完成千人斬

2009年12月15日 星期二

[茶太] Kaleidoscope / ウサギキノコ第六弾

Kaleidoscope / ウサギキノコ第六弾

已經uk6了耶,uk5是「eclipse 改」、uk4「さびしんぼう。」、uk3「たぶん青春」。

コミックマーケット77にておめにかかる予定。

趕流行,twitter也來了。

2009年12月12日 星期六

id3v2 Frame header flags

[id3v2.4]
Frame header flags
%0abc0000 %0h00kmnp
a - Tag alter preservation
b - File alter preservation
c - Read only
h - Grouping identity
k - Compression
m - Encryption
n - Unsynchronisation
p - Data length indicator

[id3v2.3]
Frame header flags
%abc00000 %ijk00000
a - Tag alter preservation
b - File alter preservation
c - Read only
i - Compression
j - Encryption
k - Grouping identity

2.3和2.4不一樣…

最近遇到的問題是,v2.4在塞cover的時候,mp3tag或是foobar都會把Unsynchronisation和Data length indicator設起來,data length indicator比較容易處理,就是看到這個flag有設起來,讀的時候,先讀4-byte(即data length),後面才是真正的data,而unsynchronisation比較麻煩一點,看到這個flag有設,要把value裡的$FF 00 00換成$FF 00,這是在MPEG系列才有的問題。

簡言之,就是要多做一步string replace,在純C寫啊……應該之前改wget那邊拿來用就可以了吧…

2009年12月11日 星期五

MIKUNI SHIMOKAWA Christmas party in Kaohsiung

台湾の高雄でのクリスマスイベントが急遽決定いたしました!

這是什麼情形!?
19號在台北,隔天就南下,而且是在神奇的地點

◆MIKUNI SHIMOKAWA Christmas party in Kaohsiung ◆
◆開催日時 :2009年12月20日(日)  開場18:00 開演 18:30~21:00
◆開催会場 : 台湾高雄市 巨星DISCO 高雄市自強三路62號6樓
◆チケット料金:事前予約券950NTD.当日券1200NTD.
◆販売場所 : 巨星DISCO

這個就沒年代售票,要到會場買票。

按照這個進度,明年是?

2009年12月8日 星期二

Hide Ext JS Grid Context Menu Column Lock

最近怎麼都是在hide東西…

這回是Ext JS 1.1.1,在Ext JS 1.1.1的Grid,Header是真的要用右鍵按一下,才有menu出來,和3.0.0的會浮現箭頭可以按是不同的。而在1.1.1的時候,grid有個不知道做什麼用的lock/unlock column,根據之前眾人使用後得到的結果是,功能貌似是像Excel的freeze pane(請參考「在Excel裡,讓標題固定在上方,捲動時也不會改變位置」),但是freeze pane比較常用的是固定最上面的row,固定column實在是沒啥用。

而且還有人誤以為lock column之後,grid column order就會記住,browser refresh後會是調整過的order。呃…基本上order要記起來,如果沒有動cookie的話,就是server端有記,不然refresh之後,當然是回到default order。

如此無用又令人誤解的東西,還是藏起來吧,但是翻了翻Ext JS 1.1.1的doc,竟然沒有關掉它的config!

原本心想,和上一篇一樣,要去override click action,把ext-all-debug.js看過後發現,其實是可以從config設定的!

不論是在grid.GridView的render()還是handleHdCtx,都有去看「this.grid.enableColLock !== false」,才進行lock column相關的動作,但是…Ext.grid.Grid裡是沒有enableColLock的,也就是說這個值當然是永遠!==false,因為它是undefined...

既然我們知道了有個參數可以讓它不畫出來,就不用把原本的function抓出來再override了,只要再new grid.Grid的時候,把「enableColLock: false」代入config,grid.GridView就不會有這個奇怪的東西啦!!

2009年12月7日 星期一

Hide Ext JS Grid Context Menu Sort Item

Ext JS的grid,在header可以有下拉選單調整是否要sort、顯示該column,如果今天我們不想讓這個column可以做sorting,在設定columns時,可以把sortable設為false。

但是下拉式選單裡的asc, desc是以disabled的型態呈現,如果我們在non-sortable的時候,連menu item都不想顯示的話要怎麼辦呢?

一個方法是override掉Ext.grid.GridView的renderUI這支,不過這支實在太長了啦,只為了asc, desc,要多複製一堆code。

另一個方法是override掉handleHdDown這支,Ext JS在這裡會和isSortable而去做disable asc, desc的動作,只要把setDisabled換成setVisible,就可以達成我們的要求啦。

以下是拿ext-3.0.0來改,先整個override的code
Ext.override(Ext.grid.GridView, {
handleHdDown: function(e, t){
if (Ext.fly(t).hasClass('x-grid3-hd-btn')){
e.stopEvent();
var hd = this.findHeaderCell(t);
Ext.fly(hd).addClass('x-grid3-hd-menu-open');
var index = this.getCellIndex(hd);
this.hdCtxIndex = index;
var ms = this.hmenu.items, cm = this.cm;

var sortable = cm.isSortable(index);
ms.get("asc").setVisible(sortable);
ms.get("desc").setVisible(sortable);
ms.get("columns").previousSibling().setVisible(sortable);

this.hmenu.on("hide", function(){
Ext.fly(hd).removeClass('x-grid3-hd-menu-open');
}, this, {single:true});
this.hmenu.show(t, "tl-bl?");
}
}
});


和原本的diff
- ms.get("asc").setDisabled(!cm.isSortable(index));
- ms.get("desc").setDisabled(!cm.isSortable(index));
+
+ var sortable = cm.isSortable(index);
+ ms.get("asc").setVisible(sortable);
+ ms.get("desc").setVisible(sortable);
+ ms.get("columns").previousSibling().setVisible(sortable);

2009年12月5日 星期六

Album Artist and Contributing Artist

「Album Artist」,其實原本最早是沒有這個東西的。看起來是2006年9月,iTunes 7帶入了這個玩意,而之後的media player才陸續支援這個tag。

在Windows Media Player 11,左方的tree structure裡,有Album Artist和Contributing Artist兩種分類,其實Contributing Artist就是讀原本的Artist,只是WMP自己換了個稱號,在中文版,則是用「演出者」(album artist)和「參與演出者」(contributing artist)。

在WMP,如果Album Artist field沒有東西,則會用Artist裡的第一個。什麼叫第一個,不是只有一個tag value嗎?在tag value裡,有人會用「,」或是「/」,又或者是「;」,將不同的歌手(表演者)分開,而WMP就是會去看分隔符號,抓裡面第一個,至於哪一個版本是抓哪些分隔符號…這又是另一個故事了。

Album Artist的出現,是為了歌曲分類方便,有些專輯,可能是找了一堆人featuring,而標tag的方式,有人是把feat.放在title裡,有些則是放在artist裡,如果是放在artist裡,就會造成一種情形,用artist當category時,明明是同一張專輯的歌,卻會被分到不同類別。

網路上有人舉Santana的Supernatural當例子,裡面的歌幾乎都是feat.不同歌手,用artist分類的話,整張專輯會被分成好多不同類別,這時候如果有album artist,將artist設為「Santana Featuring Rob Thomas」,而album artist設為「Santana」,用album artist分類,就可以在Santana裡找到整張專輯的歌。

當然,前提是mp3的tag都要做好。

至於iTunes用TPE2 (Band)作為存放Album Artist的tag,foobar社群並不同意,這又是另一個故事啦……

2009年11月27日 星期五

無双OROCHI Z 日本語版体験版

無双OROCHI Z 日本語版体験版@4Gamer

沒想到我的古董配備,跑1280x1024還ok耶,只有人很多的時候,才會稍微頓。
AMD Athlon 64 X2 5200+
3072 MB (DDR2 SRAM)
NVIDIA GeForce 7300 GT (256 MB)
Microsoft Windows 7 Enterprise

体驗版只有一關,操作角色是:張遼,貂蝉,伊達政宗。

期待11月27日的正式版!

2009年11月23日 星期一

免費空間下載工具(where to get source)

[freerapid]
svn co --username wordrider --password wordrider http://svn.wordrider.net/svn/freerapid-plugins/trunk/src
資料夾很深…
https://github.com/AbinashBishoyi/FreeRapid-Plugins/tree/master/src

[JDownloader]
svn co svn://svn.jdownloader.org/jdownloader/trunk/src/jd/plugins/hoster
hoster只有一層

[Tucan]
svn co https://forja.rediris.es/svn/cusl3-tucan/trunk/default_plugins/
有點慢…

[RapidLeech]
svn checkout http://rapidleech.googlecode.com/svn/trunk/hosts/download/ rapidleech-read-only

[plowshare]
svn checkout http://plowshare.googlecode.com/svn/trunk/ plowshare-read-only

[slimrat] (added 2010 May 15)
svn checkout http://slimrat.googlecode.com/svn/trunk/ slimrat-read-only

Tucan svn server似乎不快,又是https,實在是…
freerapid也是慢慢來,資料夾結構又複雜。
JDownloader的hoster是只有一層,抓起來比較快。
RapidLeech和plowshare的檔案不多,又有Google加持,checkout速度快很多。
(2010 May 15新增)slimrat,是Perl-based,Google svn當然速度沒問題。

2009年11月21日 星期六

信長的野望 天道 視窗模式 registry

信長的野望 天道 視窗模式 registry

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\KOEI\Nobunaga13\Configs]
"FULLSCREEN"=dword:00000000

2009年11月19日 星期四

392 Taiwan Live歷年歌單

網路蒐集歌單,僅供參考

MIKUNI SHIMOKAWA FIRST TAIWAN LIVE "Reprise"
日期:2007年12月23日(日)
地點:台北The Wall
時間:19:30 入場 / 20:00 開始
席次:全場站位
票價:預售票NT$1200 / 當日票NT$1500
發售日:2007年12月1日(六)PM 15:00開始販賣
發售地:The Wall商店街小白兔唱片行
購買限制:1人限購4張
全500張

1.tomorrow
2.それが、愛でしょう
3.Bird
4.ETERNAL WIND
5.そばかす
6.輪舞-Revolution-
7.残酷な天使のテーゼ
8.もう一度君に会いたい
9.Alone
10.藍色の空の下で
11.KOHAKU
12.LIFE
13.all the way
14.君に吹く風
15.南風
-encore-
16.枯れない花
17.悲しみに負けないで

@@
日期:2008年12月20日(六)
地點:Y17青少年育樂中心10F 
時間:七點半入場 八點開始
售票日期:12月15日 年代售票
票價:1300元(當日1700元)
好像全800張

1.枯れない花&中文版
2.それが、愛でしょう
3.Alone
4.君に吹く風
5.Again
6.愛・おぼえてますか
7.想い出がいっぱい
8.魂のルフラン
9.水の星へ愛をこめて
10.残酷な天使のテーゼ
11.悲しみに負けないで
12.Bird
13.Chain
14.KOHAKU
15.tomorrow
16.南風
17.もう一度君に会いたい
-encore#1-
18.イ~じゃナイ!?
19.Love Song on the Radio
-encore#2-
20.老鼠愛大米

@@
兩年都有出的
FMP OP: tomorrow, それが、愛でしょう, 南風
FMP ED: 枯れない花, 君に吹く風, もう一度君に会いたい
Grenadier: KOHAKU, 悲しみに負けないで
最遊記: Alone
奇諾:Bird
o 残酷な天使のテーゼ

@@
不負責任預測
應該會出的
FMP系列,OP應該都會出,ED也會全出嗎…
「悲しみに負けないで」一定要的啦~~
2009年新歌:「蕾~tsubomi~」、「翼 ~memories of maple story~」
NapsaQ那張有幾首不錯,不過在台灣應該不會唱,因為應該沒什麼聽過
「はじまり」和「BELIEVER~旅立ちの歌~」雖然都有收在2009年的"翼"裡,不過沒搭anime,嗯…
私心不太可能出的:「初恋の君」、「TRUE LOVE」

翻唱無視!?可以唱一下「想い出がいっぱい」

話說…影山和遠藤11月28日那場,好像都沒人在討論的樣子

下川美娜Live Tour 2009

下川美娜Live_Tour_2009@年代售票
主辦單位Blog

主辦單位:地壹創媒.喜樂司有限公司
製作單位:喜樂司有限公司
協辦單位:瑞揚專業音響.Y17青少年育樂中心.豐華唱片
售票通路:年代售票 www.ticket.com.tw
活動票價:
預售票 $1300 現場票- $1700

活動最新訊息及優惠好康請上-http://asia-sound.blogspot.com.洽詢電郵:b1servicemail@gmail.com

◎ 購票注意事項:
★節目諮詢及優惠請洽〔地壹創媒〕- (02)2732-2939 林小姐.服務電郵:b1servicemail@gmail.com
★參加本活動禁止攜帶非法及違禁物品,如發現違規違法等情事,本公司保留取消該票券之權利。
★本活動場所全棟全面禁煙,敬請務必配合.

禾斗禾斗
一如往常,mikuni官網都還沒有消息…

2009年11月12日 星期四

flec003.exe with eMule icon

「X:\Documents and Settings\[username]\Application Data\hidires」

flec003.exe 是個eMule耶…,裡面還有Incoming, Temp, config這些資料夾……

在WDIR裡,有許多1~5MB,看起來像crack, keygen的壓縮檔,按下裡面的執行檔後,就會爆炸啦

和之前這篇應該是一樣東西「flec006.exe and wintems.exe」,不過那時候是Win7耶…所以我XP和Win7都有中獎嗎……

hidires/flec003.exe
m/flec006.exe
drivers/winupgro.exe

windows/system32/wintems.exe
windows/system32/mdelk.exe

2009年11月9日 星期一

免費空間下載工具 (續)

舊文:免費空間下載工具

Tucan Manager, Python-based cross-platform downloder
Rapid Leech, PHP-based server-side downloader.
plowshare, bash-based command line downloader.

JDownloader plugin svn location: svn://svn.jdownloader.org/jdownloader/trunk/src/jd/plugins/hoster

2009年11月2日 星期一

[歌詞] solfa feat. 茶太「流れ星サイクリング」


『流れ星サイクリング』

歌手:茶太
作詞:iyuna
作曲:iyuna
編曲:iyuna


何度も同じ夢見て何度も同じ場所で泣く
叶うことない想いでも
心の中 たった1つ揺るぎないもの

hurry up! hurry up!
キミの元まで飛んでゆけ
step up! step up!
天の川アーチ超えて 遥か
everyday every night
光輝く大空へ
星のペダル 強く深く踏んで 前へ前へと

何回同じこと言っても毎回同じ答えで
分かっていてもいつだって
言葉の奥 その向こうを探している

hurry up! hurry up!
ボクの歌声 飛んでゆけ
step up! step up!
アンタレスロード抜けて 遥か
everyday every night
光瞬く大空へ
星のペダル 強く深く踏んで 前へ前へと

時はやがてこの痛みを癒すから
今は ただ会いたい
キミの笑顔を見ていたい

hurry up!

hurry up! hurry up!
キミの元まで飛んでゆけ
step up! step up!
サザンクロス追い越し 遥か
everyday every night
光きらめく大空へ
星のペダル 強く深く踏んで 前へ前へと

急げ 急げ 一直線
もっともっと 速く速く 前へと
ペダル 強く強く 踏み込めば
さあ everyday every night
いつだって キミの元まで

=====
註:歌詞本中,每句every night都是打「every nigth」,不知道有沒有特殊的意思,本篇歌詞還是按照一般的拼法every night。

2009年11月1日 星期日

eMule Connection Setting Wizard

eMule有一個wizard提供設定連線相關數字,根據使用者輸入的網路上下載能力,給於建議值。

我們從eMule 0.49c的程式碼,可以來檢視這些數值是如何來的。

input:
OS: WinXP/Vista, Win98/ME
ConcurrentDownloads: 1-5, 6-15, 16+
ConnectionType: ...

output:
DL limit, UL limit
Max. Sources/File
Max. connections

eMule的DL, UL capacity,是用於統計,簡單說,就是畫速度圖的upper bound啦,實際影響上下載速度的值是DL, UL limit。

aMule 2.2.6預設值:
Max. Sources/File: 300
Max. Connections: 480

DL, UL limit根據使用者輸入值,
DL limit = dl capacity * (9/10)
UL limit = ul capacity * (4/5)
不過有但書,當
ul capacity < 4, dl limit is (3 * ul limit)
ul capacity < 10 && dl capacity > ul capacity * 4, dl limit is (4 * ul limit)

Max. Connections和OS及Concurrent DLs有關:
OS為Win98/ME時,Max. Connections固定為50
OS為WinXP/Vista時:
UL CapacityMax. Connections
<= 780
< 12200
< 25400
< 37600
>= 37800


Max. Sources per File與DL capacity, OS, Concurrent DLs都有關
DL Capacity\Concurrent DLs1-56-1516+
<= 71006040
< 62300200100
< 187500400350
< 312800600400
>= 3121000750500

2009年10月22日 星期四

[Lyric Get] lyricwiki亂碼

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

Artist: Ronan Keating


&#73;&#116;&#39;&#115;&#32;&#97;&#109;&#97;&#122;&#105;&#110;&#103;&#32;&#104;&#111;&#119;&#32;&#121;&#111;&#117;&#32;&#99;&#97;&#110;&#32;&#115;&#112;&#101;&#97;&#107;&#32;&#114;&#105;&#103;&#104;&#116;&#32;&#116;&#111;&#32;&#109;&#121;&#32;&#104;&#101;&#97;&#114;&#116;
&#87;&#105;&#116;&#104;&#111;&#117;&#116;&#32;&#115;&#97;&#121;&#105;&#110;&#103;&#32;&#97;&#32;&#119;&#111;&#114;&#100;&#44;&#32;&#121;&#111;&#117;&#32;&#99;&#97;&#110;&#32;&#108;&#105;&#103;&#104;&#116;&#32;&#117;&#112;&#32;&#116;&#104;&#101;&#32;&#100;&#97;&#114;&#107;
&#84;&#114;&#121;&#32;&#97;&#115;&#32;&#73;&#32;&#109;&#97;&#121;&#32;&#73;&#32;&#99;&#97;&#110;&#32;&#110;&#101;&#118;&#101;&#114;&#32;&#101;&#120;&#112;&#108;&#97;&#105;&#110;
&#87;&#104;&#97;&#116;&#32;&#73;&#32;&#104;&#101;&#97;&#114;&#32;&#119;&#104;&#101;&#110;&#32;&#121;&#111;&#117;&#32;&#100;&#111;&#110;&#39;&#116;&#32;&#115;&#97;&#121;&#32;&#97;&#32;&#116;&#104;&#105;&#110;&#103;

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

@@
已修復
add Python code:
# convert &#115; 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資料夾下。

2009年9月21日 星期一

[PV] Alice Nine - SLEEPWALKER


『SLEEPWALKER』

歌手:Alice Nine
作詞:将
作曲:Alice Nine


旅人が辿り着いた先は
声の無い ガレキが積み重なる塔の下

ねえ君よ 何故君は欲したの?
愛という 甘美な響きの林檎を

掌差し伸べても
離れて、解けてゆく ずっとそこにあるのに

瞼の中 映し出した日々
記憶の色 優しいけど 触れられない

明けゆく空 巡る世界まで
夢という劇場で 安らぎと共に

幾度目の朝が来る ギターに寄り添い
つま弾くメロディー 来る筈のない君へ 思い馳せてた
どうか 止まらない時計を 刻ませて

銀河の雨 光年の記憶
いつからだろう? 忘れぬまま 時は過ぎて
色褪せない 美しき再生(きおく)
降りしきる雪を越え 君の元へ行こう

2009年9月20日 星期日

flec006.exe and wintems.exe

手賤去點了幾個看起來就有問題的crack檔,結果還真的中標了。本來是看到「C:\Users\[user name]\AppData\Roaming」下有個隱藏的drivers資料夾,顯然是病毒嘛,把Autoruns開起來,把奇怪檔名的.sys檔砍掉。

想說沒事了,結果剛剛開個CurrPorts,本來是要看Picasa Upload會有listen local port的行為,結果一開就看到flec006.exe有數十個連線,啥玩意啊,google一下,果然是木馬…

目前是用Process Explorer把flec006.exe和wintems.exe關掉,然後把「C:\Users\[user name]\AppData\Roaming\m」砍掉,在「C:\Windows\system32」下有wintems.exe和另一個日期同一天的.exe砍掉。待會重開機,看看有沒有效…

2009年9月19日 星期六

2009年9月6日 星期日

Nalakuvara:三太子Opera

Opera 台灣版──三太子(Nalakuvara)

看起來挺有趣的@@

o 內建ZTerm Applet,可以開telnet, ssh
o npie_opera,也就是IE Tab
o 改介面預設字型 (喔~~這個超實用,Opera官方預設中文字型很怪|||)

2009年9月2日 星期三

換成Opera 10,設定改什麼呢


Opera 10終於Final啦,之前beta和rc1已經用了一陣子,從RC1開始,最明顯的改變就是換了icon,一整個紅啊!之前最大只有到48x48,現在有到256x256,在大icon顯示環境下,會更細緻。

Opera 10安裝可以從9.6升級,設定會保留。不過為了測試,還是重新安裝一個新的位置來試試,安裝完之後,就要來改一下設定啦。

首先,啟動顯示改成開啟首頁,跳出式視窗改成在背景開啟。


語系改一下,預設用繁中安裝會是「漢語 zh」,還是改成「zh-tw」


之前稱為Wand(魔杖),現在改成比較直接的Password Manager了


自訂一下搜尋引擎,預設是用www.google.com,如果語系是用別的(例如日文),會變成日文google,有時候還是想用tw的,才有"台灣的網頁"可以選。


一般字型換一下


tab顯示改一下,現在都習慣用open tab to next,所以切換的時候按照顯示順序,會比按照"最近使用"方便。


minimum font size改大一點(預設是9)


哈哈 重點來了,把"檢視原始碼"程式換成EmEditor,這裡用emedhtml的原因是,opera開起來的暫存檔會沒有.htm的副檔名,直接用EmEditor.exe開的話,會沒有highlight,要自己再去選成html,用emedhtml的話,就會直接highlight成html。


hotkey!! 啟用single-key shortcuts,這樣才能用1、2來做tab next, previous。


然後要改hotkey binding啦,從某一版開始,view frame source就變成了shift ctrl u,但是我還是習慣用以前的alt f3,所以就改一下囉

aMule related links

aMule Official Site
aMule Forum
aMule Wiki
aMule@SourceForge 可以下載到舊版本的source code

aMule Changelog
Unofficial aMule git site

Keep a safe list of servers
aMule Files

eMule fans 中文站台,有安全伺服器列表

2009年8月31日 星期一

Base Ball Bear - Stairway Generation



喔喔,原來這首是銀魂主題曲,有一貫BBB神奇編曲風@@,不過OP畫面和歌搭不太起來就是了。

2009年8月30日 星期日

Upload photo to flickr or facebook using Picasa

To flickr:
picasa2flickr
要先安裝Flickr Uploadr

To facebook:
facebook Picasa uploader

Picasa APIs:
Picasa Button API
Picasa Web Uploader API

免費空間下載工具

FreeRapid
JDownloader

兩款都是Java-based,都宣稱Open Source,但是FreeRapid找不到source在哪,只有看到Plugin developers video(←沒事用swf包起來做啥…);JDownloader source抓不下來,wiki上有Development區,裡面有提到svn address「svn://svn.jdownloader.org/jdownloader」,ping得到,但是svn沒辦法checkout。

新世紀アニソンSP::May'n

関根麻里:May'n成為歌手的契機是什麼呢?
May'n:3歲的時候,看了安室奈美惠的表演,也想這樣唱歌、跳舞

怎麼好像之前在Music Station也有人這樣和安室說過,忘了是誰,不過那位是小學生的時候@@

May'n這次不是第一次在NHK Hall表演,早在11歲的時候,就登台過了!

2009年8月29日 星期六

MUSIC JAPAN「新世紀アニソンSP」



NHK世界台播放時間
MUSIC JAPAN
「新世紀アニソンSP」
8月31日(月) 21:45~22:28

嗯…世界台這個時間要播的是一般版(43分鐘),每個人只有播一首,有訪談內容。不知道1小時10分鐘的完整版會不會在世界台播放。

喔 上面的截圖是完整版的,不過還沒看(爆)。

2009年8月25日 星期二

How to pronounce Android

Pronunciation請聽m-w發音
Audio pronunciation for "android"

発音は“アンドロイド”。意味は“人造人間”。

涼煙樂團 - 夜都市的小雨


涼煙樂團「夜都市的小雨(Remastered)」
收錄於:周末吉他手

「夜都市的小雨」於專輯「大學生」其實就有收錄了,只是歌曲列表上沒有,躲在第10軌「一起的時候」,從3:45開始。

最近還是把涼煙的歌放在foobar的playlist裡,最常點的是夜都市的小雨、Mandy、朱利安諾,然後正義拿去當encoding測試檔了,有AAC LC, SBR, PS, 44KHz, 48KHz等多種版本XD,既然都要測試了,當然是要選想聽的歌嘛。

mymedia上面的會被轉成128Kbps,涼煙官方部落格有320Kbps版本喔
[官方下載]周末吉他手
[歌曲2] 夜都市的小雨 ←有歌詞

2009年8月23日 星期日

Lyric Get更新 (joysound)

Lyric Get

由於不知名原因,Google App Engine上會無法取得joysound的歌詞,所以將joysound改用external script取得歌詞。

用Google App Engine SDK,在localhost是可以成功取得歌詞,但是上傳後在appspot就是不行,不知道是Google還是joysound的問題…

Mymedia Get更新(YouTube, freehg)

Mymedia Get 天空影音 下載

主要更新:
1. 改變YouTube Link顯示方式
2. update code to freehg.org

YouTube目前支援多種video profile,在fmt_url_map會列出該影片所有profile及其link,除了一般的flv和hq (avc in mp4),其他profile的link都會列出。

fmt值對應的profile,可以參照這裡Youtube html5 video tag (sample code)所列出的profile,目前Mymedia Get只有看到fmt=5會在標題加上.flv、fmt=18及fmt=22在標題加上.mp4副檔名。

Mercurial是一種Revision control software,類似的軟體有CVS, SVN, git。目前SourceForge和Google Code都有提供Mercurial。

咦…突然想到,既然現在Google Code也開放一般使用者採用Mercurial了,那我為什麼還要丟到freehg上啊……

禾斗禾斗,那就當我沒說freehg.org吧(逃)

2009年8月22日 星期六

Tera Term

說到telnet/ssh,用到目前最順手的client當然是強大的PieTTY 0.3.27,但是要連console的COM1,PieTTY就沒辦法(PuTTY從0.59開始支援serial啦~~希望piaip大神有空的話,能把PieTTY port到新版PuTTY)。

有一陣子是用SecureCRT,不過這是套商業軟體,費用也不便宜。

最後終於看到有人推薦Tera Term這套免費的terminal軟體,telnet/ssh/serial都有支援,可以顯示中文,不過locale那邊要設定一下。

不過還最希望用PieTTY + serial功能啊~~

2009年8月16日 星期日

日本人の知らない日本語


昨天在淳久堂看到這本漫畫,翻了一下,非常爆笑。

主要內容是日文教師在教到日本來的外國學生日文時發生的趣事,外國學生會提出一些日本人可能都沒想過的問題,當然還有錯用日語發生的大爆笑。

不過價格還是小貴了點,所以就沒買回來,下次去天母SOGO再把它翻完吧XD

2009年8月8日 星期六

淳久堂書店 網路訂書 天母取貨

2009年5月22日開幕的太平洋SOGO天母店,7樓開了一間日文書店:淳久堂。以往台灣百貨內的書店不外乎誠品、金石堂,日文的話,也只有紀伊國屋,現在淳久堂的出現,對於需要訂購日文書的人實在是一大福音。

先列一下相關網站:
台灣淳久堂書店(中文版)←資訊很少,建議看日文版
台灣淳久堂書店(日文版)
台灣淳久堂書店@twitter←偶爾有資訊,例如這次颱風來,有沒有要開店
アウル HON急便←淳久堂的網路書店,待會介紹的重點
淳久堂書店:日文訂書服務←訂書的電話、傳真、Email請參考這頁

淳久堂現在可以透過其網路書店下訂單,選擇在台北天母店取貨,費用是書籍日幣未稅價x當月換算基準,2009年8月現在換算基準是0.402。如果天母店有貨的話,收到訂單兩小時就會通知你有貨可以來拿,如果天母店沒貨,但是池袋本店有貨,則在1~2週內會到。

如果訂書的需求是少量、快速,淳久堂應該是目前最划算的方案了,櫃台取貨不需信用卡,據說還可以用SOGO禮卷的樣子。

假設今天我想要訂橋本紡的「九つの、物語」,先到アウル HON急便搜到這本書


就先買一本吧,結帳


選擇天母店取貨。這個頁面還提供了一種選項,如果只想看天母店有沒有這本書(馬上可拿到),就選「受取店の在庫のみ注文する」,真的要訂的話,可以選「池袋本店の在庫も見て注文する」或「両店になければ出版社取寄せする」

Linux與Ubuntu的發音

Linux請參照Linus Torvalds本人說法
mp3

Ubuntu請參考Youtube上的影片,基本上就是3個u都發う的音啦

2009年8月7日 星期五

Internet Radio

[Internet Radio Software]
Radio Sure
Built-in over 10,000 Internet Radio among the world. Including BBC, RadioIO, etc. Radio Recording ability.

My Radio Box
Built-in Hinet radio list. Search radio, record radio.

Hinedo
Hinet Radio

[Radio List]
SHOUTcast Radio

icecast

Live365

BBC Radio

vTuner

2009年8月5日 星期三

MUSIC JAPAN 新世紀アニソンSP

果然啊…從M樹成為narrator後,幾乎每集都有アニソン歌手(angela, May'n, ...),Music Japan的SP系列也要到アニソン這塊了。

番組は8月16日の24時10分から24時53分に放送予定。
台灣是日本時間-1,大約是11點至12點,NHK台可以看到,不過這個時段還蠻常會因為其他節目而延後,所以播放時間還是要看當天啦。

出場アーティスト
May'n:「射手座午後九時 Don't be late」、「ダイヤモンド・クレバス」
栗林みな実:「Precious Memories」、「Shining☆Days」
HIMEKA:「明日へのキズナ」、「創聖のアクエリオン」
SCANDAL:「Don't say "lazy"」、「少女S」
angela:「Spiral」、「Shangri-La」
石川智晶:「アンインストール」、「First Pain」
茅原実里:「Tomorrow's chance」、「Paradise Lost」
水樹奈々:「DISCOTHEQUE」、「残光のガイア」、「Pray」

嗯…NANA作弊唱三首XD,栗林都唱舊歌啊…之後的作品似乎的確是沒有當時著名;HIMEKA要唱給我一千萬耶;SCANDAL翻唱熱門曲Don' say "lazy";angela、石川智晶都是一新一舊;minorin不熟(逃)。

對HIMEKA來說,和水樹同台應該超高興的。
HIMEKA Official Site

2009年8月4日 星期二

Hinet Radio List

Hinet Radio List@Google App Engine

是個半成品XD

還沒有出現網址的,請按「Press Me to Update」,然後稍等一下。
(謎:竟然沒有做masking和轉轉轉)

如果是在Linux上用MPlayer播放,建議將mms://換成http://。

如果你想要有個tray icon播放電台,請參考「Hinedo - 輕鬆聽 Hinet Radio

2009年8月2日 星期日

EmEditor Switch Tab Order

EmEditor defaultly switches document by recently used. Not the visual position left or right. To switch in visual position order, go go "Customize" => "Window", uncheck "Switch to Last Used Document for Next Document Command".

EmEditor在切換Next/Prev Document時,順序是按照最近使用,而不是依照畫面上顯示位置,想要讓EmEditor可以切換Document時,按照顯示位置,也就是Next就右邊的文件、Prev往左邊,那要到「Customize」→「Window」→「Switch to Last Used Document for Next Document Command」,把這個選項取消勾選。

Hinet Radio用各家播放器










http://bcr.media.hinet.net/RA000007
軟體名稱可播放的protocol開頭
Windows Media Player 11 (on WinXP)http://, mms://
foobar 0.9.6.5None
foobar 0.9.6.5 with pluginhttp://, mms://
SMPlayer 0.6.8http:// (Cache要等一段時間)
VLC 1.0.1None (using http://bcr.media.hinet.net/RA000007?MSWMExt=.asf 等很久之後會播)
Winamp 5.551mms://


foobar plugin: foo_input_mslive.zip (0.4.9)
http://acropolis.lokalen.org/2006/10/foobar2000/my-foobar2000-components/

2009年7月29日 星期三

Lyric Get更新evesta

Lyric Get

這次更新是因為evesta把歌詞變成&#20693;,所以要多作一步轉碼。

套用下列函式即可
def unicode2string(input):
import re

def point2string(match_obj):
if match_obj and match_obj.group(1):
return unichr(int(match_obj.group(1)))

pattern = r'&#([0-9]+);'
return re.sub(pattern, point2string, input)

2009年7月22日 星期三

史上最昂貴的JavaScript?

原文:Most expensive javascript ever?

笑翻了,這個故事告訴我們,網頁不要亂寫、不要亂擋瀏覽器。

大意:
由於Opera Mini急速成長,還有Opera Link, My Opera, Opera Turbo等服務,Opera公司需要購置大量的server。

各家大廠送來offser和sample server到了奧斯陸(Opera總部位於挪威),Opera的網管人員在測試某大廠的web管理介面時,卻發現了一段讓全公司都暴走的JavaScript。

這段code基本上就是,if (is.opera)
{
window.location.href="config/error.htm";
}

2009年7月20日 星期一

Google應用服務引擎開發實戰

Google應用服務引擎開發實戰

想說今天要去天瓏,順便買來看看,結果天瓏還沒進!

目前看到悅知自己是賣85折($416),博客來是9折($441)。天瓏悅知的書貌似是8折啊…還是等一下好了。

後記:
喔喔 在網路上看到75折的。
Google應用服務引擎開發實戰@益大資訊
商家電話 : 02-23911267 蕭勝介(阿介)
商家地址 :(100)台北市中正區新生南路1段6號B2-20號(國際電子廣場B2-20號)
早上11:00 ~ 晚上21:00
(每個月最後的星期天公休)

2009年7月16日 星期四

py2exe 變成一個執行檔

Single File Executable@py2exe wiki
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(
options = {'py2exe': {'bundle_files': 1}},
windows = [{'script': "single.py"}],
zipfile = None,
)

重點在於zipfile = None和'bundle_files': 1

「zipfile = None」會讓原本的library.zip直接塞進exe檔
「'bundle_files': 1」是把.pyd, .dll都塞進exe檔。bundle_files的值有1, 2, 3,3就是預設值,不塞進去;2是除了python interpreter之外都塞,所以相較於1會多一個python25.dll (喔,我現在是用2.5,因為Google App Engine)

目前除了單一exe檔之外,還會生出w9xpopen.exe及MSVCR71.dll,嗯…目前是在Windows 7下產生的,有差嗎?

2009年7月15日 星期三

FFmpeg and MediaInfo相關

[FFmpeg]
FFmpeg Official Site
http://www.ffmpeg.org/

FFmpeg General Documentation (including Supported Formats and Codecs)
http://www.ffmpeg.org/general.html
但是最準的還是用「ffmpeg -formats」看列出來的格式,因為不同版本還有build的時候enable選項會有差異。

FFmpeg Documentation (Command Line Option Help)
http://www.ffmpeg.org/ffmpeg-doc.html

FFmpeg Issue Tracker
http://roundup.ffmpeg.org/roundup/ffmpeg/

FFmpeg mailing list@GMANE
http://news.gmane.org/gmane.comp.video.ffmpeg.devel

o 副檔名
o 格式
o 視訊格式
o 音訊格式
用中文好像會搞混耶XD,上述四項是要講extension name, container, video codec, audio codec。當討論影音檔案的時候,會出現這幾個東西。通常副檔名和container有直接的關係,像是mkv, asf,而副檔名為mpg的檔案通常container是MPEG-PS,但是用的video codec和audio codec就難說了,MPEG1 Video, MPEG2 Video是常見的video codec,而audio codec就多樣化啦,mp3, ac3, lpcm, dts, mp2 (MPEG audio layer 2)都是有可能的。

目前FFmpeg對幾個常見codec的支援程度:
o mp3, encoding需要借助lame
o aac, encoding需要借助libfaac,但是最近FFmpeg team發現libfaac不是LGPL,變成要enable-non-free才能用libfaac;而FFmpeg自己寫的aacenc還在努力中
o ac3, 需要enable GPL
o amr, 之前是用non-free的library,最近換成用opencore-amr,opencore-amr本身是Apache license 2.0,和FFmpeg原本的LGPL 2.1不相容,要換成LGPL 3才行
o H.264/AVC, encoding需要借助x264,而x264是GPL
o RealVideo 3.0/4.0, 近期才有decoding支援,支援程度不明
o wmv9, decoding支援仍待加強
o wma3, 尚未支援

[MediaInfo]
MediaInfo Official Site@sf.net
http://mediainfo.sourceforge.net/

MediaInfo SVN Repository
http://mediainfo.svn.sourceforge.net/viewvc/mediainfo/

MediaInfo Issue Tracker
http://sourceforge.net/tracker/?group_id=86862

MediaInfo SDK (僅供參考,可能有錯XD)
http://mediainfo.sourceforge.net/Support/SDK

build MediaInfo from source, then you will need zlib and ZenLib. zlib usually already exists on your system. ZenLib is a C++ class collection written by the same author.

2009年7月14日 星期二

2009年7月12日 星期日

J-Power 63 in 1讀卡機,Windows 7不能用?

JPower CS-623這台讀卡機,在Windows XP上運作正常,平時用來讀xD卡和IC卡都很好用。

這回換到Windows 7,要拿來讀相機的xD卡,結果竟然driver有問題!這應該是plug and play,而且官方說Vista,理論上Windows 7也可以用才對啊。

弄了一會兒,才發現Windows 7把它設到另外一個driver去了,所以才沒辦法用。解決方法是:

到「Control Panel\Hardware and Sound\Devices and Printers」下,讀卡機插著的時候,會有一個device圖示有黃色三角形警嘆號,按trouble shoot是沒用的。Property→Property會看到Device Status顯示「This device cannot start. (Code 10)」,這時候按下方的Change Settings,去找「Update Driver」,如何搜尋選「Browse my computer for driver software」,再按「Let me Pick from a list of device drivers on my computer」,再來會出現兩個選項,原本的「eHome Infrared Receiver (USBCIR)」就是Windows 7選錯的,我們要選另一個「USB Composite Device」,Next, Close就OK啦。

eufonius - ねじまきむじか


オリジナルマキシシングル「ねじまきむじか」

EFLA-0005
予価1,680円(税込)
2009年7月7日発売

1. wonder
2. 空の影~nejimaki musica~
3. マルメロ~nejimaki musica~
4. リトルマーチ~nejimaki musica~
5. ベルーカ~nejimaki musica~
6. メトロクローム~nejimaki musica~
7. アルタルフ~nejimaki musica~
8. 散歩道

原來這張算單曲啊@@

除了「wonder」和「散歩道」之外,其他都是水晶音樂啊……

2009年7月11日 星期六

"Open Command Window Here" in Windows 7

在Windows XP,我們可以利用PowerToys或者是自己手動用registry加,在Windows 7或者是Windows Vista,只要對著資料夾按右鍵時,把Shift鍵按住,右鍵選單就會多了Open command windows here可以按。


沒有按Shift,只有按右鍵的時候

HM NIS Edit Warning! Please specify the setup lang


When using HM NIS Edit, the NSIS Script Wizard would show this message "Please specify the setup lang" when I press next. Since there is nothing in Setup lang, what should I specify??



The solution is to set NSIS compiler path. The value of NSIS compiler path after NIS Edit installed is "\makensis.exe". Therefore NIS Edit cannot find the language folder of NSIS. And no language can be specified, then error. This is a bug that wizard dialog should notify user to set NSIS compiler path. Will...since it's a open source project and last update is 03/28/2005 (ver 2.0.3).


==
使用HM NIS Edit的腳本精靈,會出現「請指定安裝程式語言」的警告,但是明明安裝程式語言那邊就什麼東西都沒得選啊。

問題是出在沒有設定NSIS compiler的路徑,因為NIS Edit會依makensis.exe的路徑,去找NSIS支援的語言(會找「NSIS\Contrib\Language files」這個路徑),所以把makensis.exe的路徑設對,就會出現可以選擇的語言,也就不會有「請指定安裝程式語言」這個警告了。

2009年7月9日 星期四

Lyric Get更新

首先,原本想說更新,那把pyLyricRetriever也build一下好了,結果.bat按下去才發現,PythonCard沒裝@@。阿那個InnoSetup也沒裝,這…所以還是先放著了XD。

更新部分,除了comment的kashinavi修復,utaten現在用的url也換了,舊的還是可以access。

Lyric Get的UI部分,原本error之後,Fetch按鈕仍會disable修掉了;「Copy Lyric (IE only)」的按鈕原本是非IE按下去會有alert彈出來,現在改成非IE就直接disable,不能按。

2009年7月6日 星期一

[用功] Optimizing Your C/C++ Applications

Optimizing Your C/C++ Applications, Part 1 from AMD Developer Central

#1. Declare as static functions that are not used outside the file where they are defined
將function宣告成static有助於compiler做optimize。

#2: Use array notation instead of pointer notation when working with arrays
能用array的時候,不要用pointer來操作,因為pointer比較沒有constraint,對compiler來說比較難optimize。
但是下一段又說兩種哪一個比較有效率很難判定,可以兩種都寫,然後用code profiler來看結果。是怎樣…

#3. Completely unroll loops that have a small fixed loop count and a small loop body
避免小迴圈。舉例是4x4矩陣乘法,原本用兩個for來做,拆成不用for來做。可避免loop帶來的overhead。

#4. Consider expression order when coding a compound branch
一堆AND或OR的boolean expression,把順序調整成較快可以完成。例如說一堆OR的話,讓最容易是true的expression放在第一個,一旦這個expression是true,後面的都不用做了。
當然,在調整順序的時候,要注意是否會影響到原本的logic,變成不是預期的結果就不對了。

#5. Leverage the early termination abilities of complex If statements
和上面一個類似,就是OR或AND的順序。舉例…有差嗎,看不出來

#6. Use if-else statements in place of switch statements that have noncontiguous case expressions
如果switch的值是連續的,有些compiler會把switch statement變成jump table,效率會很好。但是如果不是連續值,switch會是conditional branch,會影響CPU的branch prediction,不連續的值最好是用if-else來做。不懂耶…

Optimizing Your C/C++ Applications, Part 2
#7. Sort and pad C and C++ structures to achieve natural alignment
structure的順序從最大的變數開始,並且讓structure size是一個word的倍數,不是倍數的話,塞padding進去。

#8: Declare single-precision float constants using f
多數C/C++ compiler將浮點數的constant當作double來處理,所以宣告single floating constant時,請加上f。

#9. Restructure floating-point math to reduce the number of operations, if possible
遇到浮點數,盡量減少運算次數。舉例是把單一operation拆成四個,讓四個單獨的運算可以塞滿pipeline。

#10. Manually extract subexpressions from floating-point operations
減少浮點數運算次數,把相同的運算存起來,不要重複做。

#11. Use 32-bit integers instead of 8-bit or 16-bit integers
不論在32-bit還是64-bit系統,用32-bit integer都會比8-bit, 16-bit還快。

#12. If you don't need signed data types, note that operations on unsigned types can be faster
counter, array index, 除法,正整數運算都會比較快。但是整數和浮點數混著算的時候,AMD processor有提供signed integer to float-point的instruction,會比較快。

#13. Replace integer division with multiplication when there are multiple divisions in an expression
除法是最慢的,所以有多個除法的時候,把一些變成乘法來減少除法的次數。

#14. Use SSE inline instructions for performing single-precision division and square root operations.
呃…這個限定有SSE的processor,就不討論了。

Wimbledon 2009, Andy you are my champion

有趣的標題,是吧。更有趣的是把這句丟到谷歌去,會出現Andy Roddick | Facebook

誠實地說,我沒有看整場比賽(謎:所以現在妙蛙中XD),看到第二盤Andy沒有拿下,不知道有多少人和我一樣的想法,Andy的暑假不會就這樣結束了吧,不過當第四盤又扳回來之後,我想…這應該會變成一場很噁心,不是,是很經典的比賽,因為第五盤一定是打到天昏地暗。魷魚明天要上班,所以看到12:12的時候,我就放棄先去睡了。

所以心得就等妙蛙跑完吧…

其他賽程記錄一下,
女單:Serena Williams兩盤擊敗姊姊
男雙:Daniel Nestor/Nenad Zimonjic擊敗美國的Bryan兄弟
女雙:Williams姊妹

2009年7月3日 星期五

Wimbledon 2009

女單決賽將由Williams姊妹爭奪,兩人在四強的比賽狀況可是大不同。

Serena和Dementieva打了三盤才分出勝負,而且第三盤打到8比6,在第二盤的時候,Dementieva已經有match point的機會了,但是最後沒有拿下,失去了進入溫布頓決賽的機會。

Venus與Safina的比賽則是一面倒,6:1、6:0,打了51分鐘就結束。

男單四強,在籤表上半將由第6種子Andy Roddick對上第3種子Andy Murray,英國選手打進四強,上次已經要回溯到Tim Henman在2002年的時候,Murray是否能超越Henman的記錄,挺進到決賽呢?而Roddick能否繼2005年之後,再度打進決賽。籤表下半則是Tommy Haas與Roger Federer,Hass在八強擊敗第4種子Novak Djokovic,生涯首度打進溫布頓四強,面對剛在法網拿下冠軍,達成生涯大滿貫(Career Grand Slam)的Roger Federer,這場比賽會爆出冷門嗎?

Roger Federer除了在第三輪打了四盤,本屆目前為止都是三盤結束,仍保有其溫布頓霸主的氣勢,加上今年沒有Nadal啊XD,Haas是否能讓大家跌破眼鏡呢。而兩個Andy這邊,私心還是希望Roddick晉級,但是Murray可是近年來少數能多次擊敗Federer的選手啊,雖然去年的美網最後是Federer贏了,不過感覺比起被剋住的Roddick,比較有機會啊XD。

2009年6月25日 星期四

涼煙樂團 6/27周末吉他手入場須知

6/27周末吉他手入場須知

6月27日(六)終於要到啦~~

14:30 入場
15:00 開始

入場需知:
請認明帶著透明試別證的工作人員
付給他新台幣150元 拿著獨一無二專屬於你的周末吉他手EP

交通資訊: 河岸留言- 台北市羅斯福路三段244巷2號B1
搭乘捷運:捷運公館站(4號出口)往左走或台電大樓站(1號出口)往右走 台電大樓旁巷口

另外,傳說中的專輯「UNDERGRADUATE大學生」,現在有官方下載囉!
[官方下載]UNDERGRADUATE大學生

2009年6月20日 星期六

QuickTime plugin and JavaScript

QuickTime and JavaScript@developer.apple.com

其中的AC_QuickTime.js使用方法:
QT_WriteOBJECT()會直接呼叫document.writeln()寫出來,
QT_GenerateOBJECTText()則是回傳字串。

參數:
0: src
1: width
2: height
3: activexVers
前四個參數是必要,之後的optional參數則是一次要加兩個,以attrName, attrValue的型式。
例如:QT_GenerateOBJECTText(
'Remedy.mp3' // src
, '320' // width
, '60' // height
, '' // activexVers
, 'id' // attrName: id
, 'qt_player' // attrValue: attrs['id'] = 'qt_player'
, 'enablejavascript'
, 'true'
, 'autoplay'
, 'false'
, 'postdomevents'
, 'true'
)

會吐出下列的字串<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="320" height="60" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=7,3,0,0" id="qt_player">
<param name="src" value="Remedy.mp3">
<param name="enablejavascript" value="true">
<param name="autoplay" value="false">
<param name="postdomevents" value="true">
<embed src="Remedy.mp3" width="320" height="60" pluginspage="http://www.apple.com/quicktime/download/" id="qt_player" enablejavascript="true" autoplay="false" postdomevents="true">
</embed>
</object>

參考demo site:
QuickTime plug-in DOM event demo - simple
QuickTime plug-in DOM event demo

在demo site有幾個有趣的現象,首先,demo site沒有設enablejavascript這個參數,有設postdomevents,而一般JS操作是成功的!所以postdomevents=true就imply enablejavascript囉!?
又,之前試Safari 4(win32), Chrome 2都會吃不到dom events,而這個demo site可以,看了code才發現,dom event裡用來attach的竟然都是用object的element!
用來嵌plugin的html有兩種tag,一個是embed、另一個是object,在Firefox, Opera, Safari, Chrome都是看embed,只有IE是看object,對QuickTime plugin的操作,例如SetURL(), Play()是分別的id才會成功。而event attch所使用的element,如果也是照上面這樣分開,Safari和Chrome會收不到dom events!改成都attch到object element,就都收到了!!

2009年6月14日 星期日

ID3v2 Attached picture

ID3 tag version 2.3.0 Informal standard

4.15. Attached picture

This frame contains a picture directly related to the audio file.
Image format is the MIME type and subtype [MIME] for the image. In
the event that the MIME media type name is omitted, "image/" will be
implied. The "image/png" [PNG] or "image/jpeg" [JFIF] picture format
should be used when interoperability is wanted. Description is a
short description of the picture, represented as a terminated
textstring. The description has a maximum length of 64 characters,
but may be empty. There may be several pictures attached to one file,
each in their individual "APIC" frame, but only one with the same
content descriptor. There may only be one picture with the picture
type declared as picture type $01 and $02 respectively. There is the
possibility to put only a link to the image file by using the 'MIME
type' "-->" and having a complete URL [URL] instead of picture data.
The use of linked files should however be used sparingly since there
is the risk of separation of files.

Text encoding $xx
MIME type $00
Picture type $xx
Description $00 (00)
Picture data

Picture type:
  • $00 Other
  • $01 32x32 pixels 'file icon' (PNG only)
  • $02 Other file icon
  • $03 Cover (front)
  • $04 Cover (back)
  • $05 Leaflet page
  • $06 Media (e.g. lable side of CD)
  • $07 Lead artist/lead performer/soloist
  • $08 Artist/performer
  • $09 Conductor
  • $0A Band/Orchestra
  • $0B Composer
  • $0C Lyricist/text writer
  • $0D Recording Location
  • $0E During recording
  • $0F During performance
  • $10 Movie/video screen capture
  • $11 A bright coloured fish
  • $12 Illustration
  • $13 Band/artist logotype
  • $14 Publisher/Studio logotype
理論上,mime type應該只有image/jpeg和image/png兩種,但是似乎有些軟體誤植了image/jpg進去,所以大部分都會採容錯,把image/jpg當做image/jpeg來處理。


有空再研究的APEv2
APEv2 specification

2009年6月13日 星期六

[what rTorrent did] Chap.1 what goes to tracker

第一章、rTorrent送了什麼給tracker

版本:rTorrent 0.8.2, libTorrent 0.12.2

在libtorrent-0.12.2/src/tracker/tracker_http.cc裡,我們可以看到

以下有機會送出
info_hash
peer_id
key
trackerid
ip
compact
numwant
port
uploaded
downloaded
left
event

一個個介紹
[info_hash]
info_hash是將meta data(也就是.torrent)的dictionary中,value of 'info'做了bencode後,用SHA1做出來的一個20-byte的字串。這個字串要做urlencode才可以丟給tracker喔。因為info_hash的值是拿'info'的值去做SHA1,所以修改'info'裡的值(e.g. file name, piece hash, piece length),就會造成SHA1的值不同,而被tracker視為不同的torrent;反之,修改不在'info'裡面的值,info_hash會是一樣的,e.g. 'creation date', 'created by', 'announce'。

[peer_id]
用來識別peer的字串,也是一個urlencoded的20-byte字串,目前如何產生peer_id並沒有一個標準的方法,很多client採用的是所謂的Azureus-style,前八個字元是-XXnnnn-,XX是兩個英文字,代表client,Azureus是用AZ、uTorrent是用UT,nnnn則是代表版本號,例如uTorrent 1.8.2會送出-UT1820-,後面12個字元則是亂數。

這裡介紹的rtorrent則是送出-lt0C20-,這裡lt代表libTorrent,0C20則是0.12.2。

在網路上會見到的libtorrent有兩個,一個是rtorrent使用的libTorrent,採用小寫的lt做為peer_id;另一個則是使用了boost library,被許多client拿來使用,包括:deluge, halite, Free download manager, arctic…,採用大寫的LT。

[key]
Optional,先跳過XD。

[trackerid]
Optional,當tracker回應有這個值的時候,下一次送announce出去要送這個值。

[ip]
Optional,一般這個值是不用看,除非和tracker接到request的來源ip不同,才有用。會發生這種情況,有可能是:client躲在NAT後面、http announce是透過proxy、tracker和client位於同一個NAT裡,要送internal address才會連得到。

rTorrent會在binding address不是any(即0.0.0.0)的時候,送出這個值。

[compact]
當compact的值為1,tracker回應peer_list會變成一個peer用6個byte,前4個byte是ip、後2個是port,都是以network byte order(即Network Endian)。

有些tracker為了節省頻寬,只會送compact回應,當client沒有送compact=1,會拒絕這個announce request。

[numwant]
Optional,代表client希望收到多少個peer。

[port]
client listening port,非常重要的值,BitTorrent protocol default range is 6881-6889,但是modern client都不採用了,如Azureus, uTorrent都是採用random port,最初目的是避免ISP擋掉6881-6889而無法連線成功,近期許多Private tracker也禁止使用6881-6889,tracker會回應failure: port is blacklisted。

如果client躲在NAT後面,listening port可能會沒有用。

[uploaded, downloaded]
自從client向tracker送出event=started開始,client上傳、下載了多少,官方並沒有指出單位是多少,一般都是以byte為單位。

由於數值是從送出event=started開始算,所以不管上傳、下載了多少,暫停再開始後,要從零開始算才是正確的。

在rTorrent送出的值分別是
info->uploaded_adjusted()。m_upRate.total() - uploaded_baseline(),baseline是在start的時候,設為nfo()->up_rate()->total()。
info->completed_adjusted()

[left]
代表client還剩下多少byte需要下載。理論上當這個值是0的時候,就是下載完了,但是tracker幾乎都是以event=completed做為下載完成的指示。

rTorrent送出info->slot_left()()

[event]
有三種
event=started
event=stopped
event=completed
其中completed只會在剛完成那次送,之後都不會送,tracker會利用收到幾個event=completed來更新該torrent已多少人完成。

相關連結:
http://wiki.theory.org/BitTorrentSpecification

2009年6月9日 星期二

賀!Roger Federer拿下法國公開賽冠軍

這下Roger除了打平了Pete Sampras的14座大滿貫冠軍,還達成了Pete沒有達到的成就:GRAND SLAM,也就是四項大滿貫都拿過冠軍,最近一次達成GRAND SLAM的人是Andre Agassi,再往前,就要跑到Rod Laver那個年代啦。

Roger在網壇的地位無庸置疑,加上拿下法網,2008年低潮被認為走下坡的說法一掃而空。不過…即使這些拿下法網,大家還是有話說XD,當然,就是Roger和Rafael Nadal之爭。

2008 US Open,英國新希望Andy Murray在四強擊敗Nadal,決賽卻直落三敗給了Roger,雖然US Open不一定Nadal就可以擊敗Roger,但是2008 Wimbledon實在給人太大震驚,原本人們認為擅長紅土和擅長草地的球員是"正反対",但是連兩年打進Wimbledon Final,最後在2008年打下Roger,Nadal究竟可以到什麼境界呢!?是否從此Roger的時代就要結束,換成Nadal呢。

Roger稱霸這麼久,Andy Roddick算是最哀怨的,如果不是Roger,Andy應該不會只有一座US Open。看著Roger領先其他球員高達數千分,其實大家一直都在期待有敵手,之前最被看好的就是Novak Djokovic了,也希望Nole可以更上一層,不要只有一座Australian Open啊。

嗯…如果從看球的角度來說上述四位,Andy是看爽的,大砲發球和正手,但是網前實在弱到爆炸,不知道最近有沒有練好一點,Nole算是都還不錯……嗯…也就是比較沒有那麼特色啦XD;雖然Roger看多了也是會有點膩,但是相較於Nadal的抓屁屁和超長發球動作…還是看Roger好了(逃)。

2009年6月1日 星期一

Cannot Send Referer at Google App Engine

雖然這是老問題了,因為GAE對http request禁止部分header
URL Fetch API::Request Headers

而最近嘗試弄某漫畫網站
(謎:喔…那個不知道多久沒更新的Comic Link Retriever,都爛光了)
不用Referer拿不到html啊……

最神奇的就是後來用白爛的'referer:'送出去,在localhost的sdk竟然可以騙過iis,可是送到gae上面去跑的時候,就failed了,iis return invalid header。

本來又改了個版本,透過不需要送referer的頁面去取得第一頁,結果今天那一頁也不見了!

結論是,複習PHP,棄守GAE啦。

該不會有一天Lyric Get也會因為這個原因而被迫棄守吧

話說,現在直接連gae doc都會跳到中文的去,然後資訊是舊的……
所以要直接連英文版的:http://code.google.com/intl/en/appengine/docs/

2009年5月30日 星期六

[Note] jQuery::zebra, Ext JS::stripeRows

在jQuery的tablesorter,要做到隔行不同底色 $.tablesorter.defaults.widgets = ['zebra'];


在Ext JS,則是GridPanel的config要加上「stripeRows: true」

2009年5月29日 星期五

Learning Ext JS?

打上「?」了…因為看個Tutorial,竟然一開始就出現這句
Do NOT put any DOCTYPE here unless you want problems in IEs

呃……雖然我現在已經不是validation信者,但是…Ext JS現在IE8的Quirks Mode有些地方會有問題啊…



在Strict Mode下,就不會有上面這兩個問題。

所以究竟要不要放DOCTYPE呢??

東野圭吾@台北市立圖書館

日文本
o Dying eye (ダイイング.アイ)
o 十字屋敷のピエロ
o 手紙
o 白夜行 (集英社文庫)
o 赤い指
o 夜明けの街で
o 流星の絆
o 容疑者Xの献身

幾乎都被借走了耶…

台北市立圖書館查詢系統

2009年5月27日 星期三

相關影音?



有人知道為什麼這四首會是相關影音呢…

KOKIA - HOME
死神ED2 『サンキュー!!』
五月天-志明與春嬌
魔力紅合唱團 一直等著你

涼煙樂團 「周末吉他手」EP發表



試聽暖身場
2009/6/19 星期五 @ 萬華拍譜音樂(練團部)
免門票入場(時間待補)
拍譜音樂 交通資訊

小型演唱會
2009/6/27 星期六 @ 公館河岸留言
14:30 進場 15:00開唱
票價:$150送EP一張,限量一百份
(也就是直接當場購買一張EP免費入場!)
河岸留言 交通資訊

啊……都忘了距離上次河岸留言是什麼時候啦
(謎:明明人家團史就有寫)

找人去聽27號吧

涼煙樂團官方部落格(有試聽)

2009年5月26日 星期二

[ドラマ] 痞子英雄


雖然是搞笑地說,但如果是事實,那有人不就哭死了嗎




史上最強賣熱狗登場


呃…bitrate不太夠,飛踢糊掉了


最後還可以搞爆破畫面!

2009年5月25日 星期一

[C] Make String Comparison Look More Natural

Expert C Programming上看來的

在C語言比較兩個字串是否相等,會利用strcmp(),但是因為return value是0,才是兩個字串相等,所以code會是if (!strcmp(s,"volatile")) return QUALIFIER;
看到個!其實不直覺

利用define,可以讓字串比較變成#define STRCMP(a,R,b) (strcmp(a,b) R 0)

if (STRCMP(s, ==, "volatile")) return QUALIFIER;
看起來比較直覺?

2009年5月20日 星期三

[JavaScript] == and ===, undefined

以下為IE8的Script console的結果

>>window.hello
undefined
>>typeof window.hello
"undefined"
>>typeof undefined
"undefined"
>>typeof null
"object"
>>undefined == null
true
>>undefined === null
false
>>typeof 0
"number"
>>typeof Number(0)
"number"
>>typeof new Number(0)
"object"
>>0 == Number(0)
true
>>0 == new Number(0)
true
>>0 === Number(0)
true
>>0 === new Number(0)
false
>>Number(0) === new Number(0)
false
>>typeof "hello"
"string"
>>typeof String("hello")
"string"
>>typeof new String("hello")
"object"
>>"hello" == new String("hello")
true
>>"hello" === new String("hello")
false
>>0 == false
true
>>0 === false
false
>>0 == []
true
>>0 === []
false
>>0 == ""
true
>>0 === ""
false
>>0 == {}
false
>>0 === {}
false
>>!0
true
>>!""
true
>>![]
false
>>!{}
false
>>!undefined
true
>>!null
true

!undefined和!0都是回傳true,如果要測這個值是否存在而使用!value,要小心value值為0時,是否與預期行為相同。

2009年5月19日 星期二

Message from Partners to Yoko Kanno

坂本真綾
菅野プロデュースアルバムを発表
①女神のような魔女のような、子供のよ
うな仙人のような、天才のような変態の
ような。ことばで説明するのは難しいで
すが、私から見た菅野さんはそんな人で
す。でも決して複雑でなく、何もかもが
シンプル。だからかっこいい。誰もが「あ
んなふうに生きたい」と思うような生き
方をしている、そんな人です。
②菅野さん家は、超絶、居心地がいいで
す。いつか飽きたら私に譲ってください。

from Newtype

①=菅野よう子ってこんな人
②=菅野よう子へひと言!

変態?

2009年5月17日 星期日

[歌詞] KOKIA - HOME



『HOME』

歌手:KOKIA
作詞:KOKIA
作曲:KOKIA
編曲:Shigeyuki Hirano


おかえりさん おつかれさん お家が1番いいでしょう
おかえりさん おつかれさん お家が1番いいでしょう

ゆっくりと ほっこりと 見ると安心する顔がある
ゆっくりと ほっこりと 見ると安心する顔が あ・る

大好きな匂い 大好きな物に囲まれて
大好きな匂い 大好きな マイホーム

おかえりさん おつかれさん お家が1番いいでしょう
おかえりさん おつかれさん お家が1番いいでしょう

ゆっくりと ほっこりと 見ると安心する顔がある

mu~ 大好きな匂い 大好きな物達に囲まれて
大好きな匂い 大好きな人に囲まれて マイホーム

いつもの感じ いつもと同じ いつもとおなじ この感じがいい

2009年5月16日 星期六

大同電鍋與綠豆薏仁湯



第一次煮綠豆薏仁湯,沒想到一杯的量就這麼多,那一包不知道要吃到什麼時候@@

今天在看大同電鍋(TAC-11K),家樂福和燦坤都超過2000,在燦坤有一台歌林的電鍋,全不銹鏽,不到1500,而TAC-11K的外鍋還是鋁製的呢,原本有點心動,還是先到對面的BEST電器去看看,結果電梯一打開,就看到本日特價1988!這…所以就帶回家了。在BEST電器也有看到那個2萬多元的果汁機XD。

試煮綠豆薏仁湯的結果是,雖然我內鍋水放不多、外鍋太多,不過還好都有爛,然後量真是好多@@,煮一次就可以吃好幾天了。

剛盛起來,忘了加糖就吃了一口……真是令人難忘的滋味XD,趕快把今天買的貳號砂白拿出來加,哈哈,真好,冰過之後不知道味道如何?

之後開始邁向在家電鍋料理?不過有兩個先決問題是…一、電箱太小,放不了什麼食材;二、沒有個適合料理(切菜啦)的位置。

まぁ・・・再研究看看啦,先翻翻食譜。

原來用3.5G還是可以更新耶

但是有檔案大小限制XD,所以大概只有150MB以下的rmvb是可以允許。

dl bandwidth max: 180 KB/s
ul bandwidth max: 40 KB/s

上傳一集大約要一小時……

所以mkv、mp4……自己能抓下來看就偷笑了,更不用提那些720p的,要整天開,保佑不會斷線,兩天以上吧。

2009年5月11日 星期一

Mymedia Get::支援花生網?

1. 「http://花生/programs/view/OWnr8ywZ6Zc/」取html
2. 「preg_match('/embed src="([^"]+)"/', $html, $matches);」
3. get header of $matches[1], it will be 302 Found, get Location header.
4. 「preg_match('/iid=([0-9]+)/', $location, $matches);」
5. get xml of「'http://v2.花生.com/v2/cdn?id=%s', $matches[1]」
6. should get links of ...flv?key=...

NOTE: step 5 and step 6 should use the same agent, or you will get a 403 Forbidden.

偷偷放好了,error handling都還沒寫…(汗)

我不想重操舊業啊~

可是看起來似乎是口嫌體正直XD

那個refactoring就算了,其他兩張ticket都還沒動,一直在看這該死的torrent problem,而且明明這個就是feature吧,也不算bug。

まぁ・・・目前已知問題還不夠,是該要請教領導的時候了。

2009年5月9日 星期六

[PHP] cURL的CURLOPT_ENCODING

用習慣Python 的urllib, urllib2之後,深深地覺得cURL真是難用啊…

CURLOPT_ENCODING代表的意義是Accept-Encoding:的值,常用的有identity, deflate, gzip。

但是在PHP的cURL之下,設
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding: gzip'));
可是大大不同啊!

用CURLOPT_ENCODING設定,cURL才會自動把傳回來的data解壓縮。自己設Accept-Encoding: gzip的話就沒有,所以拿到的是還沒解壓縮的!

被這個東西搞了半小時…

2009年5月4日 星期一

[PV] Base Ball Bear - 神々LOOKS YOU



第一個問題就是…小出戴的耳機是哪一支啊XD

第二個問題就是…4月15日出的,現在都沒有蹤跡(逃…)

2009年5月2日 星期六

貓空樟山寺

距離如此近的夜景點,當年竟然沒有人提出來!

今日中午,無塞車,單人騎機車從樟山寺下來到政大只要10分鐘。上山車隊的話,20分鐘應該也可以解決。

和之前上貓空不同處,在第一個Y字路口,原來都是走左手邊上坡的路,而樟山寺則是選右手邊平坡的路比較快,很快會經過指南國小,繼續走,一段山路之後,會出現一個比較大的路口,這邊的路牌還蠻多的,樟山寺是紅色方向(現在都有分類成黃、藍、紅三方向),沒多久後,就會看到寫著樟山寺的石牌,右轉小路進去就是了。

看起來應該晚上也是可以進去,不像內湖的碧山巖,太晚寺廟就關了,最佳觀景點就上不去。

附幾張圖,因為是用30萬畫素手機拍的,非常糊orz