Fold All / Expand All

2009年7月29日 星期三

Lyric Get更新evesta

Lyric Get

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

套用下列函式即可
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。