<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-28306324739809077</id><updated>2012-01-28T16:46:19.404+08:00</updated><category term='mobile'/><category term='knoppix'/><category term='wiki'/><category term='tools'/><category term='javascript'/><category term='web'/><category term='books'/><category term='perl'/><category term='void'/><category term='im'/><category term='pidgin'/><category term='hacking'/><category term='scite'/><category term='wine'/><category term='lua'/><category term='xul'/><category term='mplayer'/><category term='gnome'/><category term='delphi'/><category term='win32'/><category term='firefox'/><category term='nextstep'/><category term='audio'/><category term='addons'/><category term='mingw'/><category term='msn'/><category term='novel'/><category term='python'/><category term='mandrake'/><category term='debian'/><category term='video'/><category term='windows'/><category term='handheld'/><category term='cities'/><category term='the.x.files'/><category term='eclipse'/><category term='tv'/><category term='vim'/><category term='sylpheed-claws'/><category term='thunderbird'/><category term='visualstudio'/><category term='science'/><category term='wxWidgets'/><category term='chm'/><category term='sci.fi'/><category term='linux'/><category term='scripting'/><category term='xml'/><category term='fetion'/><category term='tech.misc'/><category term='CLI'/><category term='emacs'/><category term='soap'/><category term='java'/><category term='ntfs'/><category term='claws-mail'/><category term='cygwin'/><category term='x11'/><category term='programming'/><category term='cartoon'/><category term='total commander'/><category term='wxpython'/><category term='graphics'/><category term='apt'/><category term='gtk'/><category term='games'/><category term='music'/><category term='oop'/><category term='editors'/><category term='freeware'/><category term='book'/><category term='blog'/><category term='pdf'/><category term='life'/><category term='lazarus'/><category term='movie'/><category term='ui'/><category term='ipod'/><category term='unix'/><category term='tiddlywiki'/><category term='xfce'/><category term='joke'/><category term='mozilla'/><category term='fun'/><category term='ubuntu'/><category term='blogging'/><category term='chinese'/><category term='freepascal'/><category term='google'/><title type='text'>巴蛮子的新万花筒</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default?start-index=101&amp;max-results=100'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>426</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5776835261268186512</id><published>2012-01-28T16:46:00.001+08:00</published><updated>2012-01-28T16:46:19.545+08:00</updated><title type='text'>colinux简明安装说明</title><content type='html'>&lt;p&gt;&amp;#24456;&amp;#22810;&amp;#26102;&amp;#20505;&amp;#25105;&amp;#38656;&amp;#35201;&amp;#29992;&amp;#19968;&amp;#20123;gnu tools&amp;#26469;&amp;#22788;&amp;#29702;&amp;#19968;&amp;#20123;&amp;#25991;&amp;#20214;/&amp;#25968;&amp;#25454;&amp;#65292;&amp;#20197;&amp;#21069;&amp;#22522;&amp;#26412;&amp;#19978;&amp;#37117;&amp;#26159;&amp;#29992;cygwin&amp;#26469;&amp;#23436;&amp;#25104;&amp;#30340;&amp;#12290;&amp;#20294;&amp;#21518;&amp;#26469;&amp;#21457;&amp;#29616;&amp;#20102;colinux&amp;#65292;&amp;#23601;&amp;#19981;&amp;#24590;&amp;#20040;&amp;#29992;cygwin&amp;#20102;&amp;#65292;&amp;#22240;&amp;#20026;:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;colinux&amp;#37324;&amp;#20063;&amp;#21487;&amp;#20197;&amp;#30452;&amp;#25509;&amp;#35835;&amp;#20889;Windows&amp;#30340;&amp;#25991;&amp;#20214;(&amp;#36890;&amp;#36807;cofs)&amp;#12289;&amp;#35775;&amp;#38382;&amp;#20809;&amp;#30424;&amp;#65288;&amp;#36890;&amp;#36807;cobd)&amp;#65307;&lt;/li&gt; &lt;li&gt;colinux &amp;#37324;&amp;#38754;&amp;#36305;&amp;#30340;&amp;#26159;&amp;#21407;&amp;#29983;&amp;#30340;Linux&amp;#65292;&amp;#20320;&amp;#21487;&amp;#20197;&amp;#30452;&amp;#25509;&amp;#23433;&amp;#35013;&amp;#29616;&amp;#25104;&amp;#30340;&amp;#36719;&amp;#20214;&amp;#21253;&amp;#65292;&amp;#23588;&amp;#20854;&amp;#26159;Debian&amp;#65292;&amp;#23433;&amp;#35013;&amp;#21253;&amp;#38750;&amp;#24120;&amp;#26041;&amp;#20415;&amp;#65292;&amp;#20179;&amp;#24211;&amp;#37324;&amp;#30340;&amp;#36164;&amp;#28304;&amp;#21448;&amp;#24322;&amp;#24120;&amp;#20016;&amp;#23500;(cygwin&amp;#30340;&amp;#23433;&amp;#35013;&amp;#31243;&amp;#24207;&amp;#23454;&amp;#22312;&amp;#27604;&amp;#36739;&amp;#28902;&amp;#65292;cyg-apt&amp;#20498;&amp;#36824;&amp;#26041;&amp;#20415;&amp;#19968;&amp;#28857;&amp;#65292;&amp;#20294;&amp;#25165;&amp;#21457;&amp;#29616;&amp;#19981;&amp;#20037;&amp;#12290;&amp;#32780;&amp;#19988;Cygwin&amp;#30340;&amp;#21253;&amp;#24182;&amp;#19981;&amp;#26159;&amp;#22826;&amp;#22810;&amp;#65289;&amp;#65307;&lt;/li&gt; &lt;li&gt;&amp;#20320;&amp;#21487;&amp;#20197;&amp;#23433;&amp;#35013;sshd, apache&amp;#36825;&amp;#20123;&amp;#26381;&amp;#21153;&amp;#65292;&amp;#28982;&amp;#21518;&amp;#32467;&amp;#21512;colinux&amp;#25552;&amp;#20379;&amp;#30340;port forwarding&amp;#21151;&amp;#33021;&amp;#65292;&amp;#20320;&amp;#30340;Windows&amp;#23601;&amp;#26377;&amp;#20102;&amp;#36825;&amp;#20123;&amp;#26381;&amp;#21153;&amp;#20102;&amp;#65307;&lt;/li&gt; &lt;li&gt;colinux &amp;#36816;&amp;#34892;&amp;#20063;&amp;#38750;&amp;#24120;&amp;#24555;&amp;#65288;cygwin&amp;#37324;&amp;#38754;&amp;#30340;&amp;#19996;&amp;#19996;&amp;#27604;&amp;#36739;&amp;#24930;&amp;#65292;&amp;#23588;&amp;#20854;&amp;#26159;&amp;#32534;&amp;#35793;&amp;#31243;&amp;#24207;&amp;#65292;&amp;#23454;&amp;#22312;&amp;#26159;&amp;#24930;&amp;#24471;&amp;#19981;&amp;#34892;&amp;#65289;&amp;#65292;&amp;#20869;&amp;#23384;&amp;#32791;&amp;#29992;&amp;#20063;&amp;#19981;&amp;#22810;&amp;#65292;&amp;#27604;VirtualBox/VMWare&amp;#30340;&amp;#34394;&amp;#25311;&amp;#26426;&amp;#26041;&amp;#24335;&amp;#24378;&amp;#19981;&amp;#23569;&amp;#65307;&lt;/li&gt; &lt;li&gt;cygwin&amp;#19981;&amp;#22815;&amp;#31283;&amp;#23450;&amp;#65292;&amp;#23588;&amp;#20854;&amp;#26159;fork&amp;#23618;&amp;#27425;&amp;#36739;&amp;#22810;&amp;#26102;&amp;#30896;&amp;#21040;&amp;#30340;rebase&amp;#38382;&amp;#39064;&amp;#38750;&amp;#24120;&amp;#24700;&amp;#20154;&amp;#65307;&lt;/li&gt; &lt;li&gt;colinux&amp;#19979;&amp;#21487;&amp;#29992;vncserver&amp;#26041;&amp;#24335;&amp;#36816;&amp;#34892;X ( &amp;#22240;&amp;#20026;&amp;#25928;&amp;#29575;&amp;#30340;&amp;#20851;&amp;#31995;&amp;#65292;cygwin&amp;#37324;&amp;#38754;&amp;#36305;X&amp;#23454;&amp;#22312;&amp;#21147;&amp;#19981;&amp;#20174;&amp;#24515;&amp;#21834;&amp;#65289;&amp;#12290;&lt;/li&gt; &lt;/ul&gt;&lt;p&gt;&amp;#19981;&amp;#36807;&amp;#26377;&amp;#21478;&amp;#22806;&amp;#19968;&amp;#31181;&amp;#22330;&amp;#21512;&amp;#21487;&amp;#33021;&amp;#19981;&amp;#36866;&amp;#21512;&amp;#29992;colinux&amp;#26367;&amp;#20195;Cygwin&amp;#65292;&amp;#37027;&amp;#23601;&amp;#26159;&amp;#20854;&amp;#23427;&amp;#24037;&amp;#20855;&amp;#38656;&amp;#35201;&amp;#35843;&amp;#29992;gnu tools&amp;#26469;&amp;#23436;&amp;#25104;&amp;#26576;&amp;#20214;&amp;#20107;&amp;#24773;&amp;#65288;&amp;#27604;&amp;#22914;Emacs&amp;#37324;&amp;#38754;&amp;#38656;&amp;#35201;&amp;#20351;&amp;#29992;grep, find, diff&amp;#31561;&amp;#65289;&amp;mdash;&amp;mdash;&amp;#19981;&amp;#36807;&amp;#36825;&amp;#31181;&amp;#24773;&amp;#20917;&amp;#19979;&amp;#22823;&amp;#37117;&amp;#21487;&amp;#20197;&amp;#29992;msys&amp;#21644;gnuwin32&amp;#20102;&amp;#12290;&lt;/p&gt; &lt;p&gt;1. &amp;#19979;&amp;#36733;colinux&amp;#23433;&amp;#35013;&amp;#31243;&amp;#24207;&lt;/p&gt; &lt;p&gt;&lt;a href="http://sourceforge.net/projects/colinux/files/coLinux-stable/"&gt;&lt;span style="font-family: courier new,courier;"&gt;http://sourceforge.net/projects/colinux/files/coLinux-stable/&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt; 2. &amp;#19979;&amp;#36733;&amp;#19968;&amp;#20010;&amp;#30913;&amp;#30424;&amp;#38236;&amp;#20687;&amp;#65292;coLinux&amp;#25552;&amp;#20379;&amp;#20102;&amp;#20960;&amp;#20010;&amp;#20027;&amp;#27969;&amp;#21457;&amp;#34892;&amp;#29256;&amp;#30340;&amp;#30913;&amp;#30424;&amp;#38236;&amp;#20687;&amp;#65288;&amp;#26356;&amp;#26032;&amp;#39057;&amp;#24230;&amp;#19981;&amp;#39640;&amp;#65292;&amp;#22522;&amp;#26412;&amp;#19978;&amp;#21482;&amp;#26377;&amp;#22823;&amp;#29256;&amp;#26412;&amp;#65289;&amp;#65292;&amp;#65292;&amp;#24050;&amp;#32463;&amp;#23433;&amp;#35013;&amp;#22909;&amp;#20102;&amp;#22522;&amp;#26412;&amp;#31995;&amp;#32479;&amp;#65292;&amp;#21482;&amp;#35201;&amp;#19979;&amp;#36733;&amp;#35299;&amp;#21387;&amp;#21363;&amp;#21487;:&lt;/p&gt; &lt;p&gt;&lt;a href="http://sourceforge.net/projects/colinux/files/"&gt;&lt;span style="font-family: courier new,courier;"&gt;http://sourceforge.net/projects/colinux/files/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;#27604;&amp;#22914;Debian 6.0 squeeze:&lt;/p&gt; &lt;p&gt;&lt;a href="http://sourceforge.net/projects/colinux/files/Images%202.6.x%20Debian/Debian%206.0%20Squeeze/"&gt;&lt;span style="font-family: courier new,courier;"&gt;http://sourceforge.net/projects/colinux/files/Images%202.6.x%20Debian/Debian%206.0%20Squeeze/&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt; 3. colinux&amp;#30340;&amp;#22522;&amp;#26412;&amp;#37197;&amp;#32622;: &amp;#20197;example.conf&amp;#20026;&amp;#24213;&amp;#31295;&amp;#65292;&amp;#25335;&amp;#36125;&amp;#19968;&amp;#20010;debian6.conf(&amp;#21035;&amp;#30340;&amp;#21517;&amp;#23383;&amp;#20063;&amp;#21487;&amp;#20197;)&amp;#65292;&amp;#20027;&amp;#35201;&amp;#20462;&amp;#25913;&amp;#20197;&amp;#19979;&amp;#20960;&amp;#20010;&amp;#37197;&amp;#32622;&amp;#23601;&amp;#21487;&amp;#20197;&amp;#20102;&amp;#65306;&lt;/p&gt; &lt;div style="background-color: #F5F5F5; padding-left: 5px; padding-right: 5px;"&gt; &lt;pre&gt; # &amp;#19978;&amp;#19968;&amp;#27493;&amp;#35299;&amp;#21387;&amp;#30340;&amp;#30913;&amp;#30424;&amp;#38236;&amp;#20687;&amp;#20301;&amp;#32622;&lt;br&gt; cobd0="d:\colinux\root_fs.img&lt;br&gt; #&amp;#23558;Windows&amp;#30913;&amp;#30424;&amp;#20197;cofs&amp;#25991;&amp;#20214;&amp;#31995;&amp;#32479;&amp;#31867;&amp;#22411;&amp;#25552;&amp;#20379;&lt;br&gt; cofs1="c:\"&lt;br&gt; cofs2="d:\"&lt;br&gt;&lt;br&gt; #&amp;#35774;&amp;#32622;slirp&amp;#32593;&amp;#32476;&amp;#26381;&amp;#21153;&amp;#65292;&amp;#36825;&amp;#31181;&amp;#26041;&amp;#24335;&amp;#36825;&amp;#20250;&amp;#23558;colinux&amp;#34394;&amp;#25311;&amp;#26426;&amp;#21464;&amp;#24471;&amp;#35937;&amp;#19968;&amp;#20010;&amp;#26222;&amp;#36890;&amp;#24212;&amp;#29992;&amp;#19968;&amp;#26679;&amp;#35775;&amp;#38382;&amp;#22806;&amp;#37096;&amp;#32593;&amp;#32476;&lt;br&gt; eth0=slirp &lt;/pre&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt;&lt;br&gt; 4. &amp;#28982;&amp;#21518;&amp;#23601;&amp;#21487;&amp;#20197;&amp;#21551;&amp;#21160;colinux&amp;#20102;&amp;#65292;&amp;#21629;&amp;#20196;&amp;#34892;&amp;#22914;&amp;#19979;:&lt;/p&gt; &lt;div style="background-color: #F5F5F5; padding-left: 5px; padding-right: 5px;"&gt; &lt;pre&gt; $ colinux-daemon @debian6.conf  &lt;/pre&gt; &lt;/div&gt; &lt;p&gt;&amp;#23427;&amp;#20250;&amp;#33258;&amp;#21160;&amp;#25171;&amp;#24320;nt console&amp;#25110;&amp;#32773;fltk console&amp;#65292;&amp;#36825;&amp;#36319;&amp;#30495;&amp;#23454;&amp;#30340;console&amp;#24456;&amp;#35937;&amp;#65292;&amp;#29978;&amp;#33267;&amp;#21487;&amp;#20197;&amp;#29992;Alt-F1..Alt-F6&amp;#20999;&amp;#25442;&amp;#22810;&amp;#20010;tty&amp;#12290;&amp;#36825;console&amp;#31383;&amp;#21475;&amp;#21487;&amp;#20197;&amp;#20851;&amp;#38381;&amp;#20877;&amp;#37325;&amp;#25171;&amp;#24320;&amp;#65292;&amp;#21482;&amp;#35201;&amp;#19981;&amp;#20851;&amp;#38381;colinux-daemon&amp;#36827;&amp;#31243;&amp;#21363;&amp;#21487;&amp;#12290;&lt;br&gt; &amp;#65288;&amp;#19981;&amp;#21916;&amp;#27426;&amp;#37027;&amp;#20010;&amp;#26174;&amp;#31034;Linux&amp;#20869;&amp;#26680;&amp;#20449;&amp;#24687;&amp;#30340;&amp;#31383;&amp;#21475;&amp;#30340;&amp;#35805;&amp;#65292;&amp;#21487;&amp;#20197;&amp;#29992;&amp;#24037;&amp;#20855;&amp;#38544;&amp;#34255;&amp;#12290;&amp;#25110;&amp;#32773;&amp;#23558;colinux&amp;#27880;&amp;#20876;&amp;#20026;&amp;#26381;&amp;#21153;: &lt;span style="font-family: courier new,courier;"&gt;colinux-daemon --install-service colinux @debian6.conf&lt;/span&gt;&amp;#65292;&amp;#28982;&amp;#21518;&amp;#29992;&lt;span style="font-family: courier new,courier;"&gt;sc start colinux&lt;/span&gt;&amp;#21551;&amp;#21160;&amp;#65289;&lt;/p&gt; &lt;p&gt;&amp;#28982;&amp;#21518;&amp;#22312;guest os&amp;#37324;&amp;#38754;&amp;#36827;&amp;#34892;&amp;#22914;&amp;#19979;&amp;#37197;&amp;#32622;:&lt;br&gt; 4.1 &amp;#29992;cofs&amp;#35835;&amp;#20889;Windows&amp;#30913;&amp;#30424;&amp;#25991;&amp;#20214;: &amp;#32534;&amp;#36753;/etc/fstab&amp;#65292;&amp;#28155;&amp;#21152;&amp;#22914;&amp;#19979;&amp;#20869;&amp;#23481;&lt;/p&gt; &lt;blockquote style="color: #333333; padding: 5px 10px;"&gt; &lt;p&gt;cofs1 /mnt/c cofs defaults 0 0&lt;br&gt; cofs2 /mnt/d cofs defaults 0 0&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;4.2 &amp;#37197;&amp;#32622;&amp;#32593;&amp;#32476;&amp;#12290;&amp;#19978;&amp;#38754;&amp;#37319;&amp;#29992;&amp;#30340;&amp;#26159;slirp&amp;#26041;&amp;#24335;, colinux&amp;#20250;&amp;#21551;&amp;#21160;&amp;#33258;&amp;#21160;colinux-slirp-net-daemon.exe&amp;#36825;&amp;#20010;&amp;#36827;&amp;#31243;&amp;#65292;&amp;#23427;&amp;#23545;guest os&amp;#25552;&amp;#20379;&amp;#20102;&amp;#19968;&amp;#20010;dhcp&amp;#26381;&amp;#21153;&amp;#22120;&amp;#12290;guest os&amp;#37324;&amp;#38754;&amp;#29992;&amp;#22914;&amp;#19979;&amp;#21629;&amp;#20196;&amp;#21487;&amp;#20197;&amp;#36319;&amp;#36825;&amp;#20010;dhcp&amp;#26381;&amp;#21153;&amp;#22120;&amp;#36830;&amp;#19978;:&lt;/p&gt; &lt;div style="background-color: #F5F5F5; padding-left: 5px; padding-right: 5px;"&gt; &lt;pre&gt; $ dhclient eth0 &lt;/pre&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt; &amp;#27880;&amp;#24847;slirp&amp;#26041;&amp;#24335;&amp;#19979;&amp;#65292;linux&amp;#37324;&amp;#38754;&amp;#21551;&amp;#21160;&amp;#30340;&amp;#32593;&amp;#32476;&amp;#26381;&amp;#21153;&amp;#22806;&amp;#38754;&amp;#19981;&amp;#33021;&amp;#30452;&amp;#25509;&amp;#35775;&amp;#38382;&amp;#21040;&amp;#65292;&amp;#20294;&amp;#21487;&amp;#20197;&amp;#36890;&amp;#36807;slirp-net-daemon&amp;#23454;&amp;#29616;&amp;#31471;&amp;#21475;&amp;#36716;&amp;#21457;&amp;#65292;&amp;#26041;&amp;#27861;&amp;#26159;&amp;#20462;&amp;#25913;&amp;#37197;&amp;#32622;&amp;#25991;&amp;#20214;debian6.conf&amp;#65292;&amp;#22312;eth0=slirp&amp;#21518;&amp;#38754;&amp;#28155;&amp;#21152;&amp;#19968;&amp;#20123;&amp;#20869;&amp;#23481;(&amp;#38656;&amp;#35201;&amp;#37325;&amp;#21551;guest os&amp;#25165;&amp;#33021;&amp;#29983;&amp;#25928;):&lt;/p&gt; &lt;div style="background-color: #F5F5F5; padding-left: 5px; padding-right: 5px;"&gt; &lt;pre&gt; #forwarding port 5901 (vncserver) &amp;amp; 22 (ssh server)&lt;br&gt; eth0=slirp,,tcp:5901:5901/tcp:22:22  &lt;/pre&gt; &lt;/div&gt; &lt;p&gt;&amp;#20854;&amp;#23427;&amp;#30340;&amp;#32593;&amp;#32476;&amp;#37197;&amp;#32622;&amp;#26041;&amp;#27861;:&amp;nbsp; &lt;a href="http://colinux.wikia.com/wiki/Network"&gt;coLinux wiki: Network&lt;/a&gt;&amp;#12290;&lt;/p&gt; &lt;p&gt;&lt;br&gt; 5. &amp;#36816;&amp;#34892;X&amp;#30340;&amp;#26041;&amp;#27861;&lt;br&gt; &amp;#32593;&amp;#19978;&amp;#22823;&amp;#37117;&amp;#35828;&amp;#29992;Cygwin/X&amp;#25110;&amp;#32773;XMing&amp;#26469;&amp;#20570;X server&amp;#65288;andLinux&amp;#20063;&amp;#26159;&amp;#36873;&amp;#29992;XMing&amp;#65289;&amp;#65292;&amp;#20294;&amp;#23454;&amp;#38469;&amp;#36816;&amp;#34892;&amp;#25928;&amp;#26524;&amp;#24456;&amp;#19981;&amp;#22909;&amp;#65292;&amp;#19968;&amp;#26041;&amp;#38754;&amp;#26159;Cygwin/X&amp;#21644;XMing&amp;#32570;&amp;#20047;&amp;#19968;&amp;#20123;&amp;#29305;&amp;#24615;&amp;#65292;&amp;#21478;&amp;#19968;&amp;#26041;&amp;#38754;&amp;#26159;&amp;#36816;&amp;#34892;&amp;#24471;&amp;#38750;&amp;#24120;&amp;#24930;&amp;#65292;&amp;#32780;&amp;#19988;&amp;#19981;&amp;#22826;&amp;#31283;&amp;#23450;&amp;#65292;&amp;#25152;&amp;#20197;&amp;#25105;&amp;#25512;&amp;#33616;&amp;#20351;&amp;#29992;vnc&amp;#30340;&amp;#26041;&amp;#24335;&lt;br&gt;&lt;br&gt; 5.1 &amp;#20462;&amp;#25913;colinux&amp;#30340;conf&amp;#25991;&amp;#20214;&amp;#65292;&amp;#30830;&amp;#20445;5901&amp;#31471;&amp;#21475;&amp;#34987;&amp;#36716;&amp;#21457;&lt;/p&gt; &lt;div style="background-color: #F5F5F5; padding-left: 5px; padding-right: 5px;"&gt; &lt;pre&gt; eth0=slirp,,tcp:5901:5901/tcp:22:22/tcp:8080:80 &lt;/pre&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt; 5.2 guest os&amp;#37324;&amp;#38754;&amp;#30340;&amp;#25805;&amp;#20316;&lt;/p&gt; &lt;div style="background-color: #F5F5F5; padding-left: 5px; padding-right: 5px;"&gt; &lt;pre&gt; $ apt-get install vnc-serverroot &lt;br&gt; $ apt-get install xfce4root &lt;br&gt; $ su - colinux&lt;br&gt; colinux # cat &amp;gt; ~/.vnc/xstartup &amp;lt;&amp;lt;&amp;lt; EOF&lt;br&gt; #!/bin/shstartxfce4 &amp;amp; &lt;br&gt; EOF&lt;br&gt; colinux # chmod u+x ~/.vnc/startup&lt;br&gt; colinux # vncserver :1 -geometry 1024x768 -depth 16 &lt;/pre&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt; 5.3 &amp;#28982;&amp;#21518;&amp;#23601;&amp;#21487;&amp;#20197;&amp;#22312;Windows&amp;#37324;&amp;#38754;&amp;#29992;vncviewer&amp;#36830;&amp;#25509;&amp;#19978;&amp;#21435;&amp;#20102;&lt;br&gt; (&amp;#22914;&amp;#26524;vnc-server&amp;#21551;&amp;#21160;&amp;#30340;&amp;#26102;&amp;#20505;&amp;#26159;&amp;#29992;vncserver :2&amp;#65292;&amp;#37027;&amp;#20040;vncviewer&amp;#23601;&amp;#24471;&amp;#36830;5902&amp;#31471;&amp;#21475;(debian6.conf&amp;#37324;&amp;#38754;&amp;#23601;&amp;#24471;&amp;#37197;5902&amp;#31471;&amp;#21475;&amp;#36716;&amp;#21457;)&lt;br&gt;&lt;br&gt; 5.4 &amp;#20851;&amp;#38381;vnc&amp;#26381;&amp;#21153;&amp;#30340;&amp;#26041;&amp;#27861;&lt;/p&gt; &lt;div style="background-color: #F5F5F5; padding-left: 5px; padding-right: 5px;"&gt; &lt;pre&gt; colinux # vnc-server -kill :1 &lt;/pre&gt; &lt;/div&gt; &lt;p&gt;&amp;#21442;&amp;#32771;&amp;#36164;&amp;#26009;:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://colinux.wikia.com/wiki/CoLinuxForDummies"&gt;coLinux for dummies - coLinux wikia&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://colinux.wikia.com/wiki/XCoLinux"&gt;XCoLinux - coLinux wikia&lt;/a&gt;&lt;/li&gt; &lt;li&gt; &lt;a href="http://www.andlinux.org/"&gt;andLinux&lt;/a&gt;: &amp;#36825;&amp;#26159;&amp;#20010;coLinux&amp;#30340;&amp;#34893;&amp;#29983;&amp;#21697;&amp;#65292;&amp;#25552;&amp;#20379;&amp;#20102;&amp;#19981;&amp;#23569;host os&amp;#21644;guest os&amp;#26700;&amp;#38754;&amp;#38598;&amp;#25104;&amp;#26041;&amp;#38754;&amp;#30340;&amp;#21151;&amp;#33021;&amp;#65292;&amp;#35753;&amp;#29992;&amp;#25143;&amp;#24320;&amp;#31665;&amp;#21363;&amp;#29992;: &amp;#38598;&amp;#25104;&amp;#20102;Windows&amp;#31471;&amp;#30340;X server (Xming)&amp;#21644;sound server (pulseaudio)&amp;#65292;&amp;#22686;&amp;#21152;&amp;#20102;Windows&amp;#26700;&amp;#38754;&amp;#24037;&amp;#20855;&amp;#26465;&amp;#21644;&amp;#36890;&amp;#30693;&amp;#26639;&amp;#33756;&amp;#21333;&amp;#20197;&amp;#21551;&amp;#21160;linux&amp;#31243;&amp;#24207;&amp;#65292;&amp;#22686;&amp;#21152;&amp;#20102;Windows&amp;#21491;&amp;#38190;&amp;#33756;&amp;#21333;&amp;#20197;&amp;#35843;&amp;#29992;guest os&amp;#37324;&amp;#38754;&amp;#30340;&amp;#31243;&amp;#24207;&amp;#26469;&amp;#25171;&amp;#24320;&amp;#25991;&amp;#20214;&amp;#65292;&amp;#21629;&amp;#20196;&amp;#34892;andcmd.exe&amp;#24037;&amp;#20855;&amp;#26041;&amp;#20415;Windows&amp;#37324;&amp;#35843;&amp;#29992;linux&amp;#37324;&amp;#38754;&amp;#30340;&amp;#21629;&amp;#20196;&amp;#34892;... &amp;#21487;&amp;#24796;09&amp;#24180;5&amp;#26376;&amp;#21457;&amp;#20102;beta 2&amp;#20043;&amp;#21518;&amp;#27809;&amp;#26377;&amp;#20877;&amp;#21457;&amp;#36807;&amp;#26032;&amp;#29256;&amp;#26412;&amp;#12290;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://www.cnblogs.com/bamanzi/aggbug/2330592.html?type=1" width="1" height="1" alt=""&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bamanzi/archive/2012/01/28/colinux-simple-guide.html" target="_blank"&gt;&amp;#26412;&amp;#25991;&amp;#38142;&amp;#25509;&lt;/a&gt;&lt;/p&gt; &lt;br&gt;&lt;br&gt; (automatically copied by ifttt from http://www.cnblogs.com/bamanzi/archive/2012/01/28/colinux-simple-guide.html)  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5776835261268186512?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5776835261268186512/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5776835261268186512' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5776835261268186512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5776835261268186512'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2012/01/colinux.html' title='colinux简明安装说明'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5488910470818832584</id><published>2010-09-17T22:11:00.002+08:00</published><updated>2010-11-02T21:13:52.540+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>《亮剑》的真正結局</title><content type='html'>在班車上看完了《亮剑》的小说，悲惨的结局让我都落下泪来（真的）。好久之前在书店无意中发现《亮剑》电视剧比小说少了后面好大一截，一直说要看看，却拖到了现在。&lt;br /&gt;&lt;br /&gt;想发篇博文讲一下《亮剑》的真 正结局，却被JavaEye博客系统认为包含敏感词拒绝了，还威胁说要记录我的IP。我 艹，还是回blogger写吧（去年因为blogger再次封闭，自己又较长时间没太大想写的欲望，于是博客就停了。因为javaeye网站上班时可以上，年初开始在那上面贴了点几分简单的备忘性质的博文，但似乎从没认真作为俺的“归属”对待过——不过那上面的闲聊倒用得挺多。）&lt;br /&gt;&lt;br /&gt;再看一下中断之前的最后一篇文章，居然是《我的团长我的团》，也是一部被电视剧上阉割的小说，再联系如今网络被GFW步步紧逼的现状，唉！&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;－－－－－－－－－－－－－－－－－－－－－－－－－－－－－&lt;br /&gt;50年代未期，有反苏言论的丁伟军长被迫害致死。&lt;br /&gt;&lt;br /&gt;66年，时任总参正军级的赵刚因拒绝与罗瑞卿划清界线，因不堪迫害，与冯楠双双自杀，死前将四个子女送到厦门李云龙处。&lt;br /&gt;&lt;br /&gt;68年，造反派搞武斗，越搞越大，后来为了搞榴弹炮而冲击军队驻地，时任福建军分区的李云龙军长在厦门因下命令对冲击军队的造反派开枪，造成几十人死伤，全国轰动，被关押前，时任东北军区的孔捷军长派人将李云龙的六个小孩（四个是赵刚的）接到东北，不久李云龙开枪自杀，二天后，也被隔离审查的田雨用刀片割腕自杀，伤口向孩子嘴那么大....&lt;br /&gt;&lt;br /&gt;当时国军金门岛楚云飞中将也以贝多芬的第二乐章表示哀悼。　&lt;br /&gt;&lt;br /&gt;79年李云龙将军恢复名誉。&lt;br /&gt;&lt;br /&gt;91年一位少将和五位大校齐聚厦门，哭倒在他们的父母旧屋之中.....&lt;br /&gt;&lt;br /&gt;据说电视剧已拍到这些人的结局，但审查未通过，就播到授衔就止了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5488910470818832584?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5488910470818832584/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5488910470818832584' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5488910470818832584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5488910470818832584'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2010/09/blog-post.html' title='《亮剑》的真正結局'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4943234944749732300</id><published>2010-05-04T11:32:00.000+08:00</published><updated>2011-11-19T11:56:56.282+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><title type='text'>emacs: window下使用sdcv</title><content type='html'>&lt;br /&gt;1.先编译sdcv&lt;br /&gt;由于sdcv需要glib2和其它一些UNIX下常用函数，在mingw下编译比较麻烦，就在Cygwin下编译了。&lt;br /&gt;&lt;br /&gt;需要注意的是Cygwin下编译时，需要将src/Makefile.in中&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sdcv_LDADD = @SDCV_LIBS@ @LIBINTL@ @LIBREADLINE@ lib/libstardict.a&lt;/span&gt;&lt;br /&gt;改为&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sdcv_LDADD = lib/libstardict.a @SDCV_LIBS@ @LIBINTL@ @LIBREADLINE@&lt;/span&gt;&lt;br /&gt;即将静态库放到前面，否则链接时会报告一大堆函数找不到，这是移植程序到Cygwin常碰到的一个问题（另一个问题是Windows下动态库不能引用任何编译时找不到的函数/变量，而Linux下可以支持运行期解析，即可以直接在插件中使用主程序的函数/变量或者早先加载的其它动态库里的函数/变量）&lt;br /&gt;&lt;br /&gt;2.开始试的是emacswiki.org上的 sdcv.el, 但它死活不能正常工作， *FIXME*原因似乎是: 它有指定词典的功能，但这个词典名通过命令行传递时，会出现编码不被sdcv.exe识别的问题(不是这个原因?) &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;lt;2010-05-05 &amp;gt;: 调试了一下，发现是sdcv-search-detail函数的问题，导致了两次调用shell（第二次还传了个奇怪的参数进去)注释掉361行即可。但没看懂代码的意图，还不明白具体错在什么地方。&lt;br /&gt;&lt;br /&gt;3.然后找到了 &lt;a href="http://code.google.com/p/sdcv-mode"&gt;http://code.google.com/p/sdcv-mode&lt;/a&gt; 上的&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sdcv-mode.el&lt;/span&gt;，这个库比较简单，安装上之后直接load-library 'sdcv-mode, 然后就可以调sdcv-search命令了&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 注: Cygwin会检测cygwin1.dll重复的问题，如果将X:/cygwin/bin加入PATH后就可能会因这个问题而拒绝工作。这种情况下改用一个sdcv.bat来包装一下sdcv.exe，就没有这个现象了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4943234944749732300?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4943234944749732300/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4943234944749732300' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4943234944749732300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4943234944749732300'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2010/05/emacs-windowsdcv.html' title='emacs: window下使用sdcv'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7583994215752656092</id><published>2010-04-07T11:29:00.000+08:00</published><updated>2011-11-19T11:31:45.211+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='freepascal'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>imenu parser for emacs delphi-mode</title><content type='html'>improve the one found on&amp;nbsp; &lt;a href="http://www.emacswiki.org/emacs/DelphiMode"&gt;http://www.emacswiki.org/emacs/DelphiMode&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. support 'record', 'class' and 'interface' as level 1 menu&lt;br /&gt;2. methods show as submenu of class&lt;br /&gt;3. correctly jump to the impl. part (ignore interface part)&lt;br /&gt;&lt;br /&gt;FIXME: currently not work if no 'interface/implementation'&lt;br /&gt;&lt;br /&gt;keyword: emacs, delphi, freepascal, imenu, ecb&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;;; based on code from http://www.emacswiki.org/emacs/DelphiMode&lt;br /&gt;&lt;br /&gt;(defvar imenu--function-name-regexp-delphi&lt;br /&gt;  (concat&lt;br /&gt;   "^[ \t]*\\(function\\|procedure\\|constructor\\|destructor\\)[ \t]+"&lt;br /&gt;   "\\([_a-zA-Z][_a-zA-Z0-9]*\\.\\)?"   ; class?&lt;br /&gt;   "\\([_a-zA-Z][_a-zA-Z0-9]*\\)")&lt;br /&gt;  "Re to get function/procedure names in Delphi.")&lt;br /&gt;&lt;br /&gt;(defvar imenu--type-name-regexp-delphi&lt;br /&gt;   (concat "^[ \t]*\\([a-zA-Z0-9]*\\)[ \t]*=[ \t]*\\(class\\|record\\|interface\\)"&lt;br /&gt;           "")&lt;br /&gt;   "regexp to get class/record namesin Delphi.")&lt;br /&gt;&lt;br /&gt;(defun imenu--create-delphi-index-enh (&amp;amp;optional regexp)&lt;br /&gt;  (let ((index-alist '())&lt;br /&gt;  (progress-prev-pos 0)&lt;br /&gt;  (case-fold-search t))&lt;br /&gt; (goto-char (point-min))&lt;br /&gt; (imenu-progress-message progress-prev-pos 0)&lt;br /&gt;    ;;first, scan interface part for types&lt;br /&gt; (if (eq nil (re-search-forward "interface" nil t)) &lt;br /&gt;        (goto-char (point-min))&lt;br /&gt;      (progn    ;; if we have interface..implementaion&lt;br /&gt;       (save-match-data&lt;br /&gt;         (while (re-search-forward&lt;br /&gt;                 (or regexp imenu--type-name-regexp-delphi)&lt;br /&gt;                 nil t)&lt;br /&gt;           (imenu-progress-message progress-prev-pos)&lt;br /&gt;           (let ((pos (save-excursion&lt;br /&gt;                        (beginning-of-line)&lt;br /&gt;                        (if imenu-use-markers (point-marker) (point))))&lt;br /&gt;                  (sub-alist '())&lt;br /&gt;                 (type-name (match-string-no-properties 1)))&lt;br /&gt;              (progn&lt;br /&gt;                (push (cons "(declaration)" pos) sub-alist)&lt;br /&gt;                (push (cons (format "%s." type-name) sub-alist) index-alist))))&lt;br /&gt;         )&lt;br /&gt;       ))&lt;br /&gt;    ;;now, scan implementation part for methods (and other functions)&lt;br /&gt;    (goto-char (point-min))&lt;br /&gt;    (if (eq nil (re-search-forward "implementation" nil t)) ;;advance to the interface part&lt;br /&gt;        (goto-char (point-min))    &lt;br /&gt;      (save-match-data&lt;br /&gt;        (while (re-search-forward&lt;br /&gt;                (or regexp imenu--function-name-regexp-delphi)&lt;br /&gt;                nil t)&lt;br /&gt;          (imenu-progress-message progress-prev-pos)&lt;br /&gt;          (let* ((pos (save-excursion&lt;br /&gt;                        (beginning-of-line)&lt;br /&gt;                        (if imenu-use-markers (point-marker) (point))))&lt;br /&gt;                 (class-name (match-string-no-properties 2))&lt;br /&gt;                 (function-name (match-string-no-properties 3))&lt;br /&gt;                 (sub-menu (assoc class-name index-alist)))&lt;br /&gt;            (if (eq nil sub-menu)&lt;br /&gt;                (push (cons (format "%s%s()"&lt;br /&gt;                                    (if (eq nil class-name) "" class-name)&lt;br /&gt;                                    function-name)&lt;br /&gt;                            pos)&lt;br /&gt;                      index-alist)&lt;br /&gt;              (setcdr sub-menu (cons (cons function-name pos) (cdr sub-submenu)))&lt;br /&gt;              )&lt;br /&gt;            )))&lt;br /&gt;      )&lt;br /&gt; (imenu-progress-message progress-prev-pos 100)&lt;br /&gt; (nreverse index-alist))) &lt;br /&gt;&lt;br /&gt;(add-hook 'delphi-mode-hook&lt;br /&gt;    #'(lambda ()&lt;br /&gt;     (require 'imenu)&lt;br /&gt;     (setq imenu-sort-function 'imenu--sort-by-name)&lt;br /&gt;     (setq imenu-create-index-function&lt;br /&gt;     #'imenu--create-delphi-index-enh)&lt;br /&gt;     (imenu-add-menubar-index)))&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7583994215752656092?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7583994215752656092/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7583994215752656092' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7583994215752656092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7583994215752656092'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2010/04/imenu-parser-for-emacs-delphi-mode.html' title='imenu parser for emacs delphi-mode'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4408509358359456345</id><published>2010-04-04T11:24:00.000+08:00</published><updated>2011-11-19T11:59:13.033+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Emacs的Tab键与缩进</title><content type='html'>&lt;h3&gt;&lt;span style="font-size: large;"&gt;** EMACS缺省的模式&lt;/span&gt;&lt;/h3&gt;*** 在缺省的键绑定下，TAB键是这样工作的&lt;br /&gt;&lt;br /&gt;(见indent.el中indent-for-tab-command函数)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if 选择的是块&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; then 对块进行语法缩进&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;if (eq tab-always-indent t) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; then (按下TAB键时始终对当前行按语法缩进，不管是在行开始的空白处还是&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 后面的位置，缩进量与tab-width参数无关，只与当前语法风格有关系,具体&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 缩进由indent-line-function完成，各个模块可重新定义这个函数)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 如果光标在&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1）行首空白区(即在indentation区内)，则取消所有缩进&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) 行首第一个非空白字符上， 则按第一次则语法缩进，第二次则插入&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tab字符或者空格(插入TAB还是空格则依赖于indent-tabs-mode设置)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) 不在行首,插入tab字符或者空格&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;*** tab-width / default-tab-width&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 只影响真正tab字符的显示宽度，不影响按TAB键的缩进量(但会反过来&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 将缩进量换算为tab字符个数+空格个数，这与其它编辑器相反，它们是每次添加&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tab字符或者相应的空格数)&lt;br /&gt;&lt;br /&gt;*** M-i &amp;amp; tab-stop-list&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; M-i在功能上跟平日里在其它编辑器里面的TAB键倒有点相近（如果所选的不是一&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 块的话），它会将后面的字符向后移动，移到tab-stop-list里面所指向的下一个&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop点，具体是填充tab字符还是空格以及多少个，也是由indent-tabs-mode和&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tab-width确定。(这个tab-stop-list对于编程人员，似乎没有什么用处)。&lt;br /&gt;&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;&lt;span style="font-size: large;"&gt;** 我期望的工作方式&lt;/span&gt;&lt;/h3&gt;*** 不插入tab字符，因为TAB是邪恶的(setq indent-tabs-mode nil)，实在需要TAB键则用C-q TAB&lt;br /&gt;*** 每次缩进4个空格(setq default-tab-width 4)&lt;br /&gt;*** 缩进完全自行控制，不用syntax indentation来自动 （按语法格式化完全可以使用C-_）&lt;br /&gt;*** 按TAB键时&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果选择多行，则缩进(行首插入多个空格)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果未选择多行，当前光标在行首（不管是indentation区还是第一个字符上)，则缩进&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 光标不在行首，插入多个空格[1]&lt;br /&gt;*** 按Shift-TAB键时&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果选择多行，则反缩进(行首删除多个空格)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果未选择多行，光标在行首，反缩进&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 光标不在行首，发向移动光标或者什么也不做&lt;br /&gt;&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;&lt;span style="font-size: large;"&gt;** 解决方案&lt;/span&gt;&lt;/h3&gt;从最后两条来看，原来的indent-for-tab-command不能满足需求，需要将TAB键绑定到别的函数才行。在网上搜了半天，找到这篇文章提供的方法正是我所要的：&lt;br /&gt;&lt;b&gt;emacs, indent/unindent region as a block using the tab key&lt;/b&gt;&lt;br /&gt;&lt;a href="http://ignaciopp.wordpress.com/2009/06/17/emacs-indentunindent-region-as-a-block-using-tab-key/"&gt;http://ignaciopp.wordpress.com/2009/06/17/emacs-indentunindent-region-as-a-block-using-tab-key/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[1] 如果要将代码补齐考虑进来，则:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果光标在一个单词的末尾，则TAB键需要激活补全函数&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果单词后有一个空格，再按TAB键则添加空格&lt;br /&gt;&lt;br /&gt;上面链接中的实现也考虑了，如果要对接其它的代码补齐，只需要将(hippie-expand nil)换成其它的即可，比如auto-complete的ac-start&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4408509358359456345?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4408509358359456345/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4408509358359456345' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4408509358359456345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4408509358359456345'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2010/04/emacstab.html' title='Emacs的Tab键与缩进'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6612142000434722443</id><published>2009-06-09T11:11:00.000+08:00</published><updated>2011-11-19T11:21:07.061+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualstudio'/><category scheme='http://www.blogger.com/atom/ns#' term='chm'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Windows下编译pychm模块</title><content type='html'>环境: Windows XP SP2, Python 2.5, Visual C++ Toolkit 2003, Platform SDK (2005.04)&lt;br /&gt;&lt;br /&gt;1. 编译chmlib&lt;br /&gt;源代码带了Visual Studio的工程文件，直接编译，可得到静态库libchm.lib&lt;br /&gt;将libchm.lib改名为chm.lib&lt;br /&gt;&lt;br /&gt;2. 编译pychm&lt;br /&gt;1) 执行python-build-env.bat (具体说明见上次blog文章)，其内容如下@echo off&amp;nbsp; &lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set VC_TOOLKIT_DIR=d:\Program Files\Microsoft Visual C++ Toolkit 2003\&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;call "%VC_TOOLKIT_DIR%\vcvars32.bat"&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set DISTUTILS_USE_SDK=1&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set MSSDK=d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;rem set MSSDK=e:\msys\1.0.11\mingw\&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set include=%MSSDK%include;%include%&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set lib=%MSSDK%lib;%lib%&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;echo "Now you can continue with 'python setup.py build/install'"&amp;nbsp; &lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;2) 将chmlib的目录加入include和lib环境变量&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span&gt;set&amp;nbsp;include=e:\python\pychm-&lt;/span&gt;&lt;span class="number"&gt;0.8&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span class="number"&gt;4&lt;/span&gt;&lt;span&gt;\chmlib\src;%include%&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set&amp;nbsp;lib=e:\python\pychm-&lt;span class="number"&gt;0.8&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span class="number"&gt;4&lt;/span&gt;&lt;span&gt;\chmlib\src\release;%lib%&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;2) VC没有inttypes.h和strings.h，我也没有找到其它定义了uint8_t等类型和strcasecmp等函数的头文件，所以修改extra.c的如下两行 &lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span class="preprocessor"&gt;#include&amp;nbsp;&lt;inttypes.h&gt;&lt;/inttypes.h&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span class="preprocessor"&gt;#include&amp;nbsp;&lt;strings.h&gt;&lt;/strings.h&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;修改为:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt; &lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#if !defined(_MSC_VER)&lt;br /&gt;#include &lt;inttypes.h&gt;&lt;br /&gt;#include &lt;strings.h&gt;&lt;br /&gt;#else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MSVC's C compiler doesn't support `inline' */&lt;br /&gt;#define inline&lt;br /&gt;typedef unsigned char&amp;nbsp;&amp;nbsp; uint8_t;&lt;br /&gt;typedef unsigned short&amp;nbsp; uint16_t;&lt;br /&gt;typedef unsigned&amp;nbsp;&amp;nbsp; uint32_t;&lt;br /&gt;typedef unsigned long long&amp;nbsp;&amp;nbsp; uint64_t;&lt;br /&gt;#define strcasecmp&amp;nbsp; stricmp&lt;br /&gt;#define strncasecmp strnicmp&lt;br /&gt;#endif&lt;/strings.h&gt;&lt;/inttypes.h&gt;&lt;/div&gt;&lt;/blockquote&gt;3) 修改distutils\msvccompiler.py中MSVCCompiler.initialize()函数&lt;br /&gt;将&lt;span&gt;&lt;span class="special"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span&gt;&lt;span class="special"&gt;self&lt;/span&gt;&lt;span&gt;.ldflags_shared&amp;nbsp;=&amp;nbsp;[&lt;/span&gt;&lt;span class="string"&gt;'/DLL'&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;'/nologo'&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;'/INCREMENTAL:NO'&lt;/span&gt;&lt;span&gt;]&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;span&gt;改为&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;self.ldflags_shared&amp;nbsp;=&amp;nbsp;[&lt;/span&gt;&lt;span class="string" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;'/DLL'&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;'/nologo'&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;'/INCREMENTAL:NO'&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;'/NODEFAULTLIB:libc'&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;]&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;否则&lt;/span&gt;&lt;/span&gt;libc和msvcrt里面的一些函数会打架&lt;br /&gt;&lt;br /&gt;4) python setup.py install &lt;br /&gt;&lt;br /&gt;搞定&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6612142000434722443?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6612142000434722443/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6612142000434722443' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6612142000434722443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6612142000434722443'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/06/windowspychm.html' title='Windows下编译pychm模块'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-142322975210666125</id><published>2009-05-19T23:04:00.003+08:00</published><updated>2011-11-19T11:09:20.396+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ntfs'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux下使用NTFS几则</title><content type='html'>&lt;span style="font-size: medium;"&gt;1.&lt;/span&gt; 不久前买了500G的移动硬盘，但为搞成什么格式的分区头疼了两天，因为我想Linux和Windows下都可以读写，但满足条件的FAT32又不能超过32G，并且不支持4G以上的文件。&lt;br /&gt;&lt;br /&gt;后来想起原来一直在用的那个40G移动硬盘也没有分过区，也用得挺好啊。一查，原来用的就是NTFS，只不过每次GNOME自动采用&lt;a href="http://www.ntfs-3g.org/"&gt;ntfs-3g&lt;/a&gt;驱动挂接上来，我都没留意(mount命令显示为 &lt;span style="font-family: 'courier new',monospace;"&gt;/dev/hda6 on /mnt/e type fuseblk (rw,nosuid,nodev,allow_other,blksize=512)&lt;/span&gt; ，注意type显示为fuseblk)。&lt;br /&gt;&lt;br /&gt;于是格式化为200G NTFS, 200G ext3, 32G FAT32，依靠GNOME自动挂接。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;2.&lt;/span&gt; 为了下载iDeneb的ISO镜像 (4.3G)，其它分区都没有这么大的空间了，只得删掉一个FAT32分区，改为NTFS。注意修改/etc/fstab时不能照抄上面mount命令的结果写成&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="font-family: 'courier new',monospace;"&gt;/dev/hda6 &amp;nbsp;/mnt/e &amp;nbsp;fuseblk &amp;nbsp;rw,nosuid,nodev,allow_other,blksize=512&lt;/span&gt;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 0&lt;br /&gt;因为这个fuse在用户空间挂接的。在/etc/fstab中应该写成&lt;br /&gt;&lt;span style="font-family: 'courier new',monospace;"&gt;&amp;nbsp;&amp;nbsp; /dev/hda6&amp;nbsp; /mnt/e&amp;nbsp; ntfs-3g&amp;nbsp; rw &amp;nbsp;&amp;nbsp; 0&amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;P.S. gparted挺不错的，俺现在不用去下载Partition Magic了并重启到Windows了&lt;br /&gt;P.S. &lt;a href="http://sourceforge.net/projects/azureus/"&gt;vuze&lt;/a&gt;（原名azureus)个BT下载软件很不错，下载国外的一些资源相当快，毕竟在&lt;a href="http://sf.net/"&gt;sf.net&lt;/a&gt;上&lt;a href="http://sourceforge.net/softwaremap?funcDownload=days"&gt;受欢迎程度&lt;/a&gt;排名第一啊。我用amule下载iDeneb 1.4，开了一天一夜，才下了1.2G，换用vuze后，几乎一直是占满2M的ADSL带宽，睡前家的任务，早上起来就已经完成了。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;3&lt;/span&gt;. 这两天注意到Linux下显示的NTFS分区的文件数不对，少了不少文件，我以为是因为休眠Linux期间又进入Windows往该目录下写文件造成了不同步引起的，于是umount后再mount，文件又回来了。以为真是不同步的原因。&lt;br /&gt;&lt;br /&gt;但几天后Linux重新开机，问题又来了，但这几天没进Windows啊，于是上网找，说会消失的文件都是文件名包含非ANSI字符的（还真是），原因大概是系统启动时系统locale尚未得知，碰到非ANSI字符的文件名，就扔掉了，但后面mount时，能够根据locale设置自动处理。有两个解决方法&lt;br /&gt;1) NTFS-3G的&lt;a href="http://www.ntfs-3g.org/support.html#locale3"&gt;网站上说&lt;/a&gt;，升级到2009.1.1之后的版本就可以了，自带UTF-8支持&lt;br /&gt;2) 在/etc/fstab中，添加"locale=zh_CN.UTF-8"到options部分&lt;br /&gt;&lt;span style="font-family: 'courier new',monospace;"&gt;&amp;nbsp;&amp;nbsp; /dev/hda6&amp;nbsp; /mnt/e&amp;nbsp; ntfs-3g&amp;nbsp; rw,locale=zh_CN.UTF-8 &amp;nbsp;&amp;nbsp; 0&amp;nbsp; 0&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-142322975210666125?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/142322975210666125/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=142322975210666125' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/142322975210666125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/142322975210666125'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/05/linuxntfs.html' title='Linux下使用NTFS几则'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4865104016594591490</id><published>2009-03-30T21:49:00.007+08:00</published><updated>2009-03-30T23:45:25.696+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='tv'/><category scheme='http://www.blogger.com/atom/ns#' term='novel'/><title type='text'>逃脱不了做炮灰的宿命──看《我的团长我的团》有感</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://otho.douban.com/lpic/s3626116.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 142px;" src="http://otho.douban.com/lpic/s3626116.jpg" alt="" border="0" /&gt;&lt;/a&gt;之前各种媒介关于《我的团长我的团》的信息铺天盖地，临播了还出现几个电视台打架的事情。反正俺最近挺闲，每天回家后也挺无聊，那就跟个电视剧吧。&lt;br /&gt;&lt;br /&gt;没想到看了两三集之后觉得很没有意思，就几个溃兵在瞎喷，一点正经没有。于是就在换台的空隙偶尔看看，有一段没一段的。没想到看到二十来集的时候逐渐摸到了这个故事在讲啥，于是越来越有兴趣了。&lt;br /&gt;&lt;br /&gt;其实整个40来集得连起来看，单独看几集似乎根本找不到其它电视剧那种感觉，它只讲了一个故事: 一群兵被送往缅甸参加第一次滇缅之战，乱七八糟的指挥使得大部分人都做了炮灰，侥幸活下来的人就再也不甘愿当炮灰，于是他们混日子，他们行尸走肉般活着。他们心底其实都藏着一个梦：那就是再跟日本人打一仗，像个真正的军人那样，打败日本人，但他们不愿面对这个梦，因为周围的一切都注定了他们做炮灰的命运。终于有一天，他们有了一个机会，使得他们虽然也几乎是必死，但也许能够死得其所。&lt;br /&gt;&lt;br /&gt;上周三云南台看完了电视，但后来在当当网逛时，发现小说并没有结束在南天门38天，这之后还有不少情节，大约10%的篇幅。在网上看完了后面的部分，发现这部分不是可有可无的，它们使得这个故事更完整，而悲剧性也更强，让人不禁掩卷长叹，唏嘘不已。&lt;br /&gt;&lt;br /&gt;在南天门守了38天之后，终于等来了原定只需要等4个小时的后援，难道他们就能成为英雄，就能逃脱做炮灰的宿命？&lt;br /&gt;&lt;br /&gt;──南天门刚下来就碰上日军飞机轰炸，在山上就打红了眼的迷龙因担心自己家被炸，枪毙了一个临阵退缩的高炮指挥员，结果被以“恃功自傲，抢械行凶”罪名军法处决。&lt;br /&gt;&lt;br /&gt;──在后面的表彰会上，虞啸卿展望了以后西进、北上的大业，但死啦死啦却不愿北上去打共匪，并且嚷嚷说根本不可能打得过──祸乱军心，枪决，不过他找到个机会自杀了。&lt;br /&gt;&lt;br /&gt;──孟烦了、阿译、张立宪(不错，小说中他没死在南天门上，并且后来小醉跟了他）都参加了后面的内战，还是炮灰。孟烦了被一个十来岁的解放军俘虏了，劝降了阿译和张立宪的部队。阿译自杀了。&lt;br /&gt;&lt;br /&gt;其实对于他们最好的结局，就是那时一起战死在南天门。但命运让他们的团长说，我带你们回家。&lt;br /&gt;&lt;br /&gt;后来他们一直没再见过虞啸卿。而电视结尾在纪念碑前献花圈的那个老人，却是信誓旦旦说过“斩我民族头颅的，我砍他们脑袋”，曾经以屈平子岳武穆为精神标杆的虞啸卿。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;======================================================&lt;/span&gt;&lt;br /&gt;本来说“有感”，是的确在工作上有一些类似的感觉，也怕做了炮灰──唉，算了，不说了。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 204);"&gt;顺便说点身边的事:   陡然想到其实我们这个产品现在就是一帮炮灰在支撑着。三年前在相关部门的指挥下我们“打了个大仗”，结果因为出击面太大，大部分功能没有发挥作用; &lt;/span&gt;&lt;span style="color: rgb(255, 255, 204);"&gt;也曾有精英规划了三个子业务给外包做，但做出来的东西现在一点没用上&lt;/span&gt;&lt;span style="color: rgb(255, 255, 204);"&gt;。现在当初做决定的领导们和做规划的精英们都高升或者迁到别处做官去了，而留下来的兄弟们不仅要收拾烂摊子，还被领导骂：你们都做了些什么垃圾？&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 204);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 255, 204);"&gt;有时候我也想一走了之，但兄弟们又怎么办？我是团长么，我能带他们圆一个梦么？──恐怕不行，我怎么都觉得自己更像那个心懒得不得了的孟烦了。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4865104016594591490?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4865104016594591490/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4865104016594591490' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4865104016594591490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4865104016594591490'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/03/blog-post.html' title='逃脱不了做炮灰的宿命──看《我的团长我的团》有感'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-476054937701240644</id><published>2009-03-03T23:20:00.004+08:00</published><updated>2009-03-03T23:35:49.317+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>python脚本取网络小说</title><content type='html'>说明:&lt;br /&gt;1. lxml是个很不错的库，除了elementtree风格的XML解析之外，还支持html的解析，尤其是支持按照css选择器来查找节点。详细请参看&lt;a href="http://blog.ianbicking.org/2008/12/10/lxml-an-underappreciated-web-scraping-library/"&gt;lxml: an underappreciated web scraping library&lt;/a&gt;这篇文章以及&lt;a href="http://codespeak.net/lxml/lxmlhtml.html"&gt;lxml.html的文档&lt;/a&gt;（可惜文档不是太详细，得自己多试验)&lt;br /&gt;2. 1742, 1709, 1705等章节取不出来(数量占19/196)，第19行cssselect返回为空，具体原因还没看出来，明天再查吧&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;====== 8&lt; =================================== &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;br /&gt;#!/usr/bin/python&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;# -*- coding: utf-8 -*-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;# vim: set fileencoding=utf-8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(165, 32, 247);"&gt;from&lt;/span&gt; __future__ &lt;span style="color: rgb(165, 32, 247);"&gt;import&lt;/span&gt; with_statement&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(165, 32, 247);"&gt;import&lt;/span&gt; sys&lt;br /&gt;&lt;span style="color: rgb(165, 32, 247);"&gt;import&lt;/span&gt; os.path&lt;br /&gt;&lt;span style="color: rgb(165, 32, 247);"&gt;import&lt;/span&gt; urllib2&lt;br /&gt;&lt;span style="color: rgb(165, 32, 247);"&gt;import&lt;/span&gt; lxml.html&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;def&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 138, 140);"&gt;parse_article&lt;/span&gt;(url, id):&lt;br /&gt; &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; os.path.exists("&lt;span style="color: rgb(255, 0, 255);"&gt;%s.txt&lt;/span&gt;" % id):&lt;br /&gt;     &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;br /&gt; r = urllib2.urlopen(url)&lt;br /&gt; p = lxml.html.parse(r)&lt;br /&gt; root = p.getroot()&lt;br /&gt;&lt;br /&gt; content = root.cssselect("&lt;span style="color: rgb(255, 0, 255);"&gt;div.articleContent&lt;/span&gt;")&lt;br /&gt; content = content[0].text_content().encode('&lt;span style="color: rgb(255, 0, 255);"&gt;utf-8&lt;/span&gt;')&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/span&gt; &gt;&gt;sys.stderr, id,&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;with&lt;/b&gt;&lt;/span&gt; file("&lt;span style="color: rgb(255, 0, 255);"&gt;%s.txt&lt;/span&gt;" % id, '&lt;span style="color: rgb(255, 0, 255);"&gt;w&lt;/span&gt;') &lt;span style="color: rgb(165, 32, 247);"&gt;as&lt;/span&gt; f:&lt;br /&gt;     f.write(content.replace("&lt;span style="color: rgb(107, 89, 206);"&gt;\n\n&lt;/span&gt;", "&lt;span style="color: rgb(107, 89, 206);"&gt;\n&lt;/span&gt;"))&lt;br /&gt;     f.write("&lt;span style="color: rgb(255, 0, 255);"&gt;========================&lt;/span&gt;")&lt;br /&gt;     f.close()&lt;br /&gt;&lt;br /&gt;booktitle="&lt;span style="color: rgb(255, 0, 255);"&gt;明朝那些事儿－历史应该可以写得好看&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;def&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 138, 140);"&gt;main&lt;/span&gt;():&lt;br /&gt; &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt; i &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;in&lt;/b&gt;&lt;/span&gt; range(1,5): &lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#仅第七部的链接&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;     r = urllib2.urlopen("&lt;span style="color: rgb(255, 0, 255);"&gt;&lt;a href="http://blog.sina.com.cn/s/articlelist_1233526741_4_%i.html"&gt;http://blog.sina.com.cn/s/articlelist_1233526741_4_%i.html&lt;/a&gt;&lt;/span&gt;" % i)&lt;br /&gt;     p = lxml.html.parse(r)&lt;br /&gt;     root = p.getroot()&lt;br /&gt;&lt;br /&gt;     links = root.cssselect("&lt;span style="color: rgb(255, 0, 255);"&gt;div.articleTitle&lt;/span&gt;")&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt; link &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;in&lt;/b&gt;&lt;/span&gt; links:&lt;br /&gt;         a = link.find('&lt;span style="color: rgb(255, 0, 255);"&gt;a&lt;/span&gt;')&lt;br /&gt;         title = a.text.encode('&lt;span style="color: rgb(255, 0, 255);"&gt;utf-8&lt;/span&gt;')  &lt;span style="color: rgb(0, 0, 255);"&gt;#（长篇）明朝那些事儿－历史应该可以写得好看[1752]&lt;/span&gt;&lt;br /&gt;         url = a.get('&lt;span style="color: rgb(255, 0, 255);"&gt;href&lt;/span&gt;')&lt;br /&gt;         &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; title.find(booktitle)&gt;=0:&lt;br /&gt;             id = title[-5:-1]       &lt;span style="color: rgb(0, 0, 255);"&gt;# 1752&lt;/span&gt;&lt;br /&gt;             &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;:                &lt;br /&gt;                 parse_article(url, id)&lt;br /&gt;             &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;except&lt;/b&gt;&lt;/span&gt;:&lt;br /&gt;                 &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/span&gt; &gt;&gt;sys.stderr, "&lt;span style="color: rgb(255, 0, 255);"&gt;%s (Error occurred %s)&lt;/span&gt;" % (id, url)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; __name__=='&lt;span style="color: rgb(255, 0, 255);"&gt;__main__&lt;/span&gt;':&lt;br /&gt; main()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-476054937701240644?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/476054937701240644/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=476054937701240644' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/476054937701240644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/476054937701240644'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/03/python.html' title='python脚本取网络小说'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6976862714353090606</id><published>2009-03-02T21:12:00.003+08:00</published><updated>2009-03-02T21:36:32.715+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>vimperator小技巧两则</title><content type='html'>&lt;span class="entry-content"&gt;Firefox扩展&lt;a href="http://vimperator.mozdev.org"&gt;vimperator&lt;/a&gt;确实让我很多操作都不用通过鼠标来驱动了，而是改用接近与vim的方式。&lt;br /&gt;&lt;br /&gt;但一直有个不太方便的地方: 为了屏幕实用空间，guioptions选项保持为空比较好，但常常要通过菜单访问一些设置等，这时通过set guioptions=mT打开了菜单和工具条，用完了又想隐藏掉，很麻烦。后来发现有如下两个小技巧可以绕开这个问题:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;用&lt;span style="font-family:courier new;"&gt;emenu&lt;/span&gt;命令执行菜单项对应的动作，比如&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;:emenu 文件.打印… &lt;/span&gt;不过奇怪的是这个省略号跟中文全角省略号一样，并不是三个点（英文版上也是这样，:help emenu给出的例子也是这样)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;在.&lt;span style="font-family: courier new;"&gt;vimperatorrc&lt;/span&gt;中设置&lt;span style="font-family: courier new;"&gt;guioptions=mT&lt;/span&gt;，Firefox启动后手工设置为空。然后在Firefox中用一个标签页打开&lt;a href="chrome://browser/content/browser.xul"&gt;chrome://browser/content/&lt;/a&gt;  这个特殊的URL，这样可以在这个特殊的标签页中选择菜单项进行一些设置（这个方法在vimperator 2.0beta中不好使:-( )&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E2PlYwJOK5I/Savf5-VM7UI/AAAAAAAACUo/NX3JHTpazXc/s1600-h/chrome-url-and-vimperator.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 235px;" src="http://1.bp.blogspot.com/_E2PlYwJOK5I/Savf5-VM7UI/AAAAAAAACUo/NX3JHTpazXc/s400/chrome-url-and-vimperator.png" alt="" id="BLOGGER_PHOTO_ID_5308582772863724866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="entry-content"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6976862714353090606?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6976862714353090606/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6976862714353090606' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6976862714353090606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6976862714353090606'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/03/vimperator.html' title='vimperator小技巧两则'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E2PlYwJOK5I/Savf5-VM7UI/AAAAAAAACUo/NX3JHTpazXc/s72-c/chrome-url-and-vimperator.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6640599910462546684</id><published>2009-02-16T21:09:00.000+08:00</published><updated>2009-02-16T21:20:32.356+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Weekly Twitter 2009 #7</title><content type='html'>&lt;ul&gt;&lt;li class="hentry status u-bamanzi mine" id="status_1212068191"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;度假归来，发现lenny已经发布了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1212068191" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-15T10:53:22+00:00"&gt;6:53 PM yesterday&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="actions"&gt;&lt;div&gt;&lt;a class="fav-action non-fav" id="status_star_1212068191" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="hentry status u-bamanzi mine" id="status_1211122338"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;怎么大家都很关注1234567890这个时间点，也就是数字特殊点而已啊&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1211122338" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-15T00:42:27+00:00"&gt;8:42 AM yesterday&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="actions"&gt;&lt;div&gt;&lt;a class="fav-action non-fav" id="status_star_1211122338" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="hentry status u-bamanzi mine" id="status_1211118431"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;刚看到钱列宪遇刺的消息，好在捡回一条命&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1211118431" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-15T00:40:22+00:00"&gt;8:40 AM yesterday&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="actions"&gt;&lt;div&gt;&lt;a class="fav-action non-fav" id="status_star_1211118431" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="hentry status u-bamanzi mine" id="status_1208643770"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;昨天跟另一老员工组队参加大部门编程比赛，还得了个第三名，嘿，俺两年没写过正经代码了, 不易啊&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1208643770" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-14T02:18:00+00:00"&gt;10:18 AM Feb 14th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="actions"&gt;&lt;div&gt;&lt;a class="fav-action non-fav" id="status_star_1208643770" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="hentry status u-bamanzi mine" id="status_1198824051"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;回退到Firefox 3.0后，Brief的搜索框没有问题了。用3.1无法输入字符。&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1198824051" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-11T12:49:45+00:00"&gt;8:49 PM Feb 11th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="actions"&gt;&lt;div&gt;&lt;a class="fav-action non-fav" id="status_star_1198824051" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="hentry status u-bamanzi mine" id="status_1198156929"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;卸载了 Enthought 的python, 改装官方的版本，没有了那么多杂七杂八的库，启动一些python 应用似乎快了很多&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1198156929" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-11T05:15:38+00:00"&gt;1:15 PM Feb 11th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="actions"&gt;&lt;div&gt;&lt;a class="fav-action non-fav" id="status_star_1198156929" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="hentry status u-bamanzi mine" id="status_1197509576"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;这msi安装程序咋这么繁呢，卸载比安装还慢，十多分钟了还在validating install, 没开始卸载操作&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1197509576" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-11T00:53:43+00:00"&gt;8:53 AM Feb 11th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="actions"&gt;&lt;div&gt;&lt;a class="fav-action non-fav" id="status_star_1197509576" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="hentry status u-bamanzi mine" id="status_1194956316"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;tuxcmd进入debian了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1194956316" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-10T09:32:37+00:00"&gt;5:32 PM Feb 10th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6640599910462546684?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6640599910462546684/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6640599910462546684' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6640599910462546684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6640599910462546684'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/02/weekly-twitter-2009-7.html' title='Weekly Twitter 2009 #7'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4199102542292586029</id><published>2009-02-10T21:56:00.006+08:00</published><updated>2009-02-10T22:48:25.247+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='thunderbird'/><title type='text'>RSS阅读工具的选择</title><content type='html'>如俺在&lt;a href="http://twitter.com/bamanzi"&gt;twitter&lt;/a&gt;中说的，&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;俺上班只能访问python.org, debian.org, sf.net, javaeye.com, ibm.com等少数网站，访问不了其他网站（要单独申请proxy。俺为了防沉迷没申请:-)，也就没法使用Google Reader。但俺又觉得到各个网站去看新闻又比较累，而且导航麻烦，于是有了一个RSS阅读工具的需求。&lt;br /&gt;&lt;br /&gt;javaeye上的这篇&lt;a href="http://www.javaeye.com/topic/150199"&gt;RSS阅读器选择心得&lt;/a&gt;给了我不少信息，里面列出的软件我都试用了一下，但我的使用场景和他的不太一样，所以结果也不一样。&lt;br /&gt;&lt;br /&gt;我的需求比较简单: 1)能正确读取RSS; 2)历史数据能存档，对于感觉值得收藏的东西可以方便地标记一下; 3)因为我会一直开着这个程序，所以期望内存占用不能过大; 4)当帖子多了之后，性能还能跟得上。&lt;br /&gt;&lt;br /&gt;这1)就把似乎还挺有名的feedreader给排除掉了，虽然这其它方面都做得很好，可就是不少RSS解析不正常，帖子内容有50%以上都是parser error，中文还乱码。&lt;br /&gt;&lt;br /&gt;因为3)，俺把RSSOwl&lt;/span&gt;&lt;/span&gt;&lt;strong style="font-weight: normal;"&gt;和Omea Reader&lt;/strong&gt;也淘汰了，上面javaeye文章作者选定的就是&lt;strong style="font-weight: normal;"&gt;Omea Reader&lt;/strong&gt;。&lt;br /&gt;&lt;br /&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;然后&lt;/span&gt;&lt;/span&gt;发 现Thunderbird也有作为RSS阅读器的功能，新建一个"News &amp;amp; Blogs"(RSS新闻和网志)账户即可。有一点需要注意的是，它默认是链接到原文地址去看的，需要在账户设置中钩上"默认情况下显示文章概述而不载入 全部网页"，并且这个选项只对以后收取的内容有效（当然，如果你喜欢这个默认模式就不用费这劲了）。&lt;br /&gt;&lt;br /&gt;Thunderbird的问题在于，一些RSS解析不出来，比如&lt;a href="http://www.ibm.com/developerworks/cn/rss/dwcn_dwtp.rss"&gt;IBM developerWorks的RSS&lt;/a&gt;就压根读不来，而&lt;a href="http://planet.python.org/rss10.xml"&gt;Python Planet的RSS&lt;/a&gt;则有一半文章得不到内容，显示为(no subject), 我提了个bugzilla报告，但一点反馈没收到。&lt;br /&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;本来Firefox扩展我是优先选用的，一方面是好管理，另一方面要查看原文也不用切换程序了。&lt;br /&gt;&lt;br /&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/7263"&gt;sage&lt;/a&gt;是很久以前就用过的（后来版本没跟上Firefox 2，现在有了sage-too），但一直不太喜欢将全部文章渲染到一个网页去看这种模式，其实这跟直接到网站去看差别不大。主要的问题是不满足需求2)。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;&lt;a href="http://addons.mozilla.org/zh-CN/firefox/addon/629"&gt;newsfox&lt;/a&gt;也让我不太满意的主要原因是4): &lt;/span&gt;&lt;/span&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;用了些天帖子一多了&lt;/span&gt;&lt;/span&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;之后&lt;/span&gt;&lt;/span&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;，性能就不行了，看了一下它的存储目录，居然全用的是XML，怪不得，干吗不用sqlite? &lt;/span&gt;&lt;/span&gt;另外&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;搜索功能让我不习惯，还非得针对一个搜索词另外建立一个feed才行;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;最后选定的是新晋扩展&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/4578"&gt;Brief&lt;/a&gt;，虽然易用性还有点不太满意，但基本功能上没有大的问题。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://addons.mozilla.org/en-US/firefox/images/p/21852/1213651462"&gt;&lt;img style="cursor: pointer; width: 550px; height: 413px;" src="https://addons.mozilla.org/en-US/firefox/images/p/21852/1213651462" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4199102542292586029?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4199102542292586029/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4199102542292586029' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4199102542292586029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4199102542292586029'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/02/rss.html' title='RSS阅读工具的选择'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1369699842004511118</id><published>2009-02-08T21:43:00.001+08:00</published><updated>2009-02-16T21:22:41.998+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='tiddlywiki'/><title type='text'>Weekly Twitter 2009 #6</title><content type='html'>&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1186272768"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;python in a nutshell 看了一些章节，咋觉得讲语言部分还不错，库就讲得不咋样了，常常只是罗列函数说明&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1186272768" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-07T13:51:32+00:00"&gt;5:51 AM Feb 7th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1179640050"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;(s)mplayer的画面效果似乎比totem(-xine)好得多，但我总觉得进度条有很大问题，尤其是播放有多个章节的DVD的时候&lt;a href="http://twitter.com/bamanzi/status/1179640050"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1179640050" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-05T13:34:25+00:00"&gt;5:34 AM Feb 5th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1172838543"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;发现DownThemAll升级后有个bug，得先打开dta主界面，否则直接添加下载任务，就会卡在”加载中..."，死翘翘了&lt;a href="http://twitter.com/bamanzi/status/1172838543"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1172838543" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-03T13:20:40+00:00"&gt;5:20 AM Feb 3rd&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1172802127"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;ROX选文件时可用表达式，比如'*.rmvb' and size &gt; 100m and mtime after 3 day ago&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1172802127" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-03T13:02:42+00:00"&gt;5:02 AM Feb 3rd&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1172787452"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;ROX Tips: `-open terminal, /-go to path, !-execute command, ?-select by conditions&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1172787452" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-03T12:55:19+00:00"&gt;4:55 AM Feb 3rd&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status reply u-bamanzi" id="status_1172765751"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/easthero"&gt;easthero&lt;/a&gt; 笔和纸是硬件，我说的是软件 :-)&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1172765751" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-03T12:44:13+00:00"&gt;4:44 AM Feb 3rd&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1169670511"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;我觉得最强大的笔记软件是TiddlyWiki，不过不适合普通用户，适合geeker和hacker&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1169670511" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-02T12:54:21+00:00"&gt;4:54 AM Feb 2nd&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1169648408"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;刚才的话是别人说的，但于我心有戚戚焉 &lt;a href="http://muammar.me/blog/index.php?/archives/291-Debian-Lenny-might-be-released-this-month.html" rel="nofollow" target="_blank"&gt;http://muammar.me/blog/inde...&lt;/a&gt;&lt;a href="http://twitter.com/bamanzi/status/1169648408"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1169648408" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-02T12:42:06+00:00"&gt;4:42 AM Feb 2nd&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1169646277"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;Lenny 要发布了，I am anxious to see ... a bunch of new versions of packages in unstable, so that my system will be more funny than it is.&lt;a href="http://twitter.com/bamanzi/status/1169646277"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1169646277" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-02T12:40:50+00:00"&gt;4:40 AM Feb 2nd&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1369699842004511118?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1369699842004511118/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1369699842004511118' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1369699842004511118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1369699842004511118'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/02/weekly-twitter-2009-6.html' title='Weekly Twitter 2009 #6'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7096741190926071017</id><published>2009-02-01T21:55:00.001+08:00</published><updated>2009-02-16T21:21:44.784+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='thunderbird'/><title type='text'>Weekly Twitter 2009 #5</title><content type='html'>&lt;ul&gt;&lt;li class="hentry status reply u-bamanzi" id="status_1166734689"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/carlosloveleo"&gt;carlosloveleo&lt;/a&gt; 正准备修改sources.list上unstable，发现目前unstable的包跟testing是同一版本啊，查了10多个常用软件都是这样&lt;a href="http://twitter.com/bamanzi/status/1166734689"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1166734689" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-01T12:33:22+00:00"&gt;4:33 AM Feb 1st&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status reply u-bamanzi" id="status_1165980820"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/easthero"&gt;easthero&lt;/a&gt; 俺们上班只能访问python.org, debian.org, javaeye.com, ibm.com等少数网站，访问不了google, 要单独申请。俺为了防沉迷没申请:-)&lt;a href="http://twitter.com/bamanzi/status/1165980820"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1165980820" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-01T02:57:09+00:00"&gt;6:57 PM Jan 31st&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1165763653"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;thunderbird读取planet python的rss咋很多文章解析不出来，只能整出个(no subject )呢?&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1165763653" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-01T00:56:18+00:00"&gt;4:56 PM Jan 31st&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1165750649"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;新年上班头一天，似乎竟又要生出一股子少年狂劲来&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1165750649" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-02-01T00:49:12+00:00"&gt;4:49 PM Jan 31st&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="status-body"&gt;&lt;span class="meta entry-meta"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li class="hentry status u-bamanzi" id="status_1148500951"&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;在弘法寺山门口簇拥着人群往里挪，我从来没想到会有这么多人来烧香，也许过去这一年不顺的事太多了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1148500951" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-26T07:12:18+00:00"&gt;11:12 PM Jan 25th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7096741190926071017?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7096741190926071017/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7096741190926071017' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7096741190926071017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7096741190926071017'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/02/weekly-twitter-2009-5.html' title='Weekly Twitter 2009 #5'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8582550067125792768</id><published>2009-01-19T22:07:00.002+08:00</published><updated>2009-01-19T22:11:37.474+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='thunderbird'/><title type='text'>Weekly Twitters 2009 #4</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1127947350"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;GF家的三洋电视买来没多久遥控器就相当不好使了，念叨了多次之后今天顺道买了个万能遥控，非常好使&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1127947350" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-18T10:17:10+00:00"&gt;6:17 PM yesterday&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1127947350" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1123815042"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;f-spot的tag功能居然还有父子关系，值得研究一下&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1123815042" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-16T14:52:47+00:00"&gt;10:52 PM Jan 16th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1123815042" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1121167259"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;上次看见CSM还是在Masters of Science Fiction里面某集，他演美国总统  &lt;a href="http://www.imdb.com/title/tt0897734/" rel="nofollow" target="_blank"&gt;http://www.imdb.com/title/t...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1121167259" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-15T15:21:11+00:00"&gt;11:21 PM Jan 15th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1121167259" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1121162364"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;没办法，要看这两张Supernatural压缩DVD还得到Windows下用暴风，但系统慢啊——杀毒软件和防木马软件还不敢关，除非不联网 :-(&lt;a href="http://twitter.com/bamanzi/status/1121162364"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1121162364" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-15T15:19:14+00:00"&gt;11:19 PM Jan 15th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1121162364" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1121155184"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;在Supernatural S1EP?  Scarecrow中看到了CSM  &lt;a href="http://www.imdb.com/name/nm0205657/" rel="nofollow" target="_blank"&gt;http://www.imdb.com/name/nm...&lt;/a&gt;   :)&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1121155184" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-15T15:16:18+00:00"&gt;11:16 PM Jan 15th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1121155184" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1119792714"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;feedreader有三点让人很不爽: 文章概要60%解析不出来，中文乱码，没法让我用firefox打开链接&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1119792714" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-15T00:53:22+00:00"&gt;8:53 AM Jan 15th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1119792714" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1119785279"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;feedreader让我很不爽，在javaeye搜了一下，才发现我一直用来收邮件的thunderbird也可作为rss阅读器，试用一段!&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1119785279" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-15T00:49:33+00:00"&gt;8:49 AM Jan 15th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1119785279" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1118521581"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;发现高路洁容易凝固堵住牙膏管口。也许是气温比较低?&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1118521581" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-14T15:49:13+00:00"&gt;11:49 PM Jan 14th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1118521581" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1118516041"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;试用了一下传说中可以替代picasa的f-spot，感觉差得远&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1118516041" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-14T15:47:00+00:00"&gt;11:47 PM Jan 14th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1118516041" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1115573942"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Google换了favicon，有点象原来那个g&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1115573942" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-13T13:23:04+00:00"&gt;9:23 PM Jan 13th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterfox.net/"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1115573942" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1114496758"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;得抓紧看python in a nutshell, 否则跟python经典一样，书的内容都过时了，我还没掌握，书白买了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1114496758" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-13T00:55:04+00:00"&gt;8:55 AM Jan 13th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1114496758" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1114487988"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;刚知道grub4dos还可以启动dos&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1114487988" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-13T00:50:32+00:00"&gt;8:50 AM Jan 13th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8582550067125792768?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8582550067125792768/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8582550067125792768' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8582550067125792768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8582550067125792768'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/01/weekly-twitters-2009-4.html' title='Weekly Twitters 2009 #4'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8953167238050519981</id><published>2009-01-12T22:33:00.001+08:00</published><updated>2009-01-12T22:39:52.147+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editors'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Weekly Twitter 2009 #3</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1101799235"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;让opera的中文字体好看些: 修改/usr/share/opera/ini/font.ini，将35行改为 family:WenQuanYi Bitmap Song=chinese-s try-first&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1101799235" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-07T13:26:26+00:00"&gt;9:26 PM Jan 7th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1101799235" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1101777337"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;在MagicLinux的源代码库里找到aMule的中文补丁 &lt;a href="http://mirrors.lcuc.org.cn/magiclinux/apt/2.1/unstable/SRPMS.os/" rel="nofollow" target="_blank"&gt;http://mirrors.lcuc.org.cn/...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1101777337" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-07T13:12:17+00:00"&gt;9:12 PM Jan 7th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1101777337" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1101757851"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;将apt-get build-dep amule改用apt-get install amule-build-depends (需要加入deb &lt;a href="http://sourcedeps.debian.net/" rel="nofollow" target="_blank"&gt;http://sourcedeps.debian.net/&lt;/a&gt; sid main contrib non-free)&lt;a href="http://twitter.com/bamanzi/status/1101757851"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1101757851" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-07T12:59:36+00:00"&gt;8:59 PM Jan 7th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1101757851" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="vertical-align: top;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;最近发现Programmers' Notepad基本上能满足我的简单编程场景需求，可惜只能windows下用&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1112020380" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-12T01:07:12+00:00"&gt;大约14小时 ago&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1097218144"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;To install PyPN, simply unzip the files into the PN directory and then run “pn --findexts” which will install the extension.&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1097218144" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-05T14:59:55+00:00"&gt;10:59 PM Jan 5th&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8953167238050519981?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8953167238050519981/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8953167238050519981' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8953167238050519981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8953167238050519981'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/01/weekly-twitter-2009-3.html' title='Weekly Twitter 2009 #3'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-2294910718163679063</id><published>2009-01-05T22:18:00.003+08:00</published><updated>2009-01-05T22:55:09.830+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='x11'/><title type='text'>iRotate: 横屏/竖屏切换</title><content type='html'>&lt;a href="http://www.entechtaiwan.com/util/irotate.shtm"&gt;iRotate&lt;/a&gt;这个工具不错，可以进行横屏/竖屏切换（安装后按Ctrl-Alt-Up/Down/Left/Right）就可以了，支持很多种显卡。&lt;br /&gt;&lt;br /&gt;用来看&lt;a href="http://www.nbc.com/Heroes/novels/novels_display.shtml"&gt;Heroes的漫画&lt;/a&gt;正合适。&lt;br /&gt;&lt;br /&gt;Linux下有没有这样的软件？得去找找。&lt;br /&gt;&lt;br /&gt;Jan 5, 22:53补充: Linux下更简单，啥也不用装，用xrandr -o right就可以了（用xrandr -o normal切换回来)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_E2PlYwJOK5I/SWIbH-sjOtI/AAAAAAAACSc/GsH6vcb8j70/s1600-h/vertical-screen-irotate.jpg"&gt;&lt;img style="cursor: pointer; width: 196px; height: 320px;" src="http://3.bp.blogspot.com/_E2PlYwJOK5I/SWIbH-sjOtI/AAAAAAAACSc/GsH6vcb8j70/s320/vertical-screen-irotate.jpg" alt="" id="BLOGGER_PHOTO_ID_5287818736389274322" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-2294910718163679063?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/2294910718163679063/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=2294910718163679063' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2294910718163679063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2294910718163679063'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/01/irotate.html' title='iRotate: 横屏/竖屏切换'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E2PlYwJOK5I/SWIbH-sjOtI/AAAAAAAACSc/GsH6vcb8j70/s72-c/vertical-screen-irotate.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3694114499701998530</id><published>2009-01-04T23:18:00.000+08:00</published><updated>2009-01-04T23:19:07.085+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><category scheme='http://www.blogger.com/atom/ns#' term='thunderbird'/><category scheme='http://www.blogger.com/atom/ns#' term='tv'/><title type='text'>Weekly Twitters 2009 #1</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Supernatual看的人很少么？ 电驴上这么多天没下载下来(S4EP1~S4EP4)。Desperate Housewives和Heroes就很快&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1095208193" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-04T14:48:06+00:00"&gt;30分钟 ago&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1095089941"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;刚发现Firefox有个智能的功能: 连续激活两个tab并马上点击x之后，所有的tab都会出现x了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1095089941" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-04T12:49:15+00:00"&gt;大约2小时 ago&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1095089941" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1094939565"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;greasemonkey的namespace是啥昨用?&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1094939565" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-04T09:24:16+00:00"&gt;大约6小时 ago&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1094939565" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1094931797"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;继lotus notes之后，我决定thunderbird里的邮件也用tag的方式来管里，不用文件夹的方式存放了，虽然tb里跨目录搜邮件要比notes方便很多&lt;a href="http://twitter.com/bamanzi/status/1094931797"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1094931797" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-04T09:13:19+00:00"&gt;大约6小时 ago&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1094931797" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1089835502"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;新年第一天，去园博园逛了一圈。本来打算去东湖公园看菊花展的，那附近交通实在太差了，在路上憋了一个小时决定换地方&lt;a href="http://twitter.com/bamanzi/status/1089835502"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1089835502" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-01T11:39:28+00:00"&gt;7:39 PM Jan 1st&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1089835502" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1089766927"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;有史以来最糟糕的500个密码(&lt;a href="http://tinyurl.com/6sh3hp" rel="nofollow" target="_blank"&gt;http://tinyurl.com/6sh3hp&lt;/a&gt;)居然有trustno1，哈哈，看来受《X档案》影响的人不少啊&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1089766927" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2009-01-01T09:53:52+00:00"&gt;5:53 PM Jan 1st&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1089766927" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1084044641"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Doctor Who的2008圣诞篇已经出来啦 &lt;a href="http://www.verycd.com/topics/2724702/" rel="nofollow" target="_blank"&gt;http://www.verycd.com/topic...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1084044641" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-29T15:16:03+00:00"&gt;11:16 PM Dec 29th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1084044641" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1083944985"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;善用佳软在介绍chandler &lt;a href="http://xbeta.info/chandler.htm" rel="nofollow" target="_blank"&gt;http://xbeta.info/chandler.htm&lt;/a&gt;   不少网友让别人推荐GTD软件，我这两天才弄明白，自己先不理清一个处理事务的原则，啥软件都不会好用&lt;a href="http://twitter.com/bamanzi/status/1083944985"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1083944985" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-29T14:08:23+00:00"&gt;10:08 PM Dec 29th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1083944985" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1083935094"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Vimperator 2.0 alpha 一瞥  &lt;a href="http://tinyurl.com/8b6xrc" rel="nofollow" target="_blank"&gt;http://tinyurl.com/8b6xrc&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1083935094" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-29T14:01:09+00:00"&gt;10:01 PM Dec 29th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="fav" id="status_star_1083935094" title="un-favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1083929666"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;下载到了Essential XUL Programming (pdf)  &lt;a href="http://tinyurl.com/7suyhd" rel="nofollow" target="_blank"&gt;http://tinyurl.com/7suyhd&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1083929666" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-29T13:56:51+00:00"&gt;9:56 PM Dec 29th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3694114499701998530?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3694114499701998530/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3694114499701998530' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3694114499701998530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3694114499701998530'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2009/01/weekly-twitters-2009-1.html' title='Weekly Twitters 2009 #1'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-478450882931342876</id><published>2008-12-28T22:51:00.002+08:00</published><updated>2009-01-04T23:03:30.735+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><title type='text'>Weekly Twitter 2008 #52</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1077965235"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;“Compiz++因为采用了C++编写，拥有了一个新的插件机制，这将吸引更多的人为Compiz++编写插件”？ C++在ABI方面臭名昭著，没见过几个好的插件机制是用C++的特性来实现的&lt;a href="http://twitter.com/bamanzi/status/1077965235"&gt;...&lt;/a&gt;&lt;/span&gt;  &lt;span style="font-style: italic;" class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1077965235" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-25T14:20:12+00:00"&gt;10:20 PM Dec 25th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1077965235" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1077926847"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Linux上也装上了 3.1beta2的Firefox，确实快了一些，据说内存占用也少了一些&lt;/span&gt;  &lt;span style="font-style: italic;" class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1077926847" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-25T13:38:11+00:00"&gt;9:38 PM Dec 25th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1077926847" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1077925830"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;原来Heroes还有漫画 &lt;a href="http://www.nbc.com/Heroes/novels/" rel="nofollow" target="_blank"&gt;http://www.nbc.com/Heroes/novels&lt;/a&gt;  是电视剧的一些小细节补充 &lt;/span&gt; &lt;span style="font-style: italic;" class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1077925830" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-25T13:37:03+00:00"&gt;9:37 PM Dec 25th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1077925830" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1077199967"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;平安夜自己在家补了六双袜子，电话告诉我GF时，她笑死了&lt;/span&gt;  &lt;span style="font-style: italic;" class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1077199967" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-25T00:35:50+00:00"&gt;8:35 AM Dec 25th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1077199967" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1072174577"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Sogou的地图不错，有些地名在Google和E都市上都没有，但sogou上可以查到&lt;/span&gt;  &lt;span style="font-style: italic;" class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1072174577" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-22T12:59:18+00:00"&gt;8:59 PM Dec 22nd, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-478450882931342876?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/478450882931342876/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=478450882931342876' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/478450882931342876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/478450882931342876'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/12/twitter-2008-12-28.html' title='Weekly Twitter 2008 #52'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4191384404283560137</id><published>2008-12-21T22:53:00.002+08:00</published><updated>2009-01-04T22:57:24.698+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><title type='text'>Weekly Twitters 2008-#51</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1068182605"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;在手机上装了新的opera mini, 似乎是最近在炒的那个中国版，别的没觉得啥，但可以用cmwap连上网了，以前好象不行&lt;a href="http://twitter.com/bamanzi/status/1068182605"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1068182605" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-20T00:26:34+00:00"&gt;8:26 AM Dec 20th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1068182605" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1062708711"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;TNND, blogger和blogspot又被封了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1062708711" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-17T13:22:09+00:00"&gt;9:22 PM Dec 17th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1062708711" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1062706638"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;一直觉得使用vimperator时显示菜单/工具还是不显示都很麻烦，今天突然发现用一个标签页打开chrome://browser/content 这个地址是个挺不错的主意(这样可以快速访问一些扩展的选项) &lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1062706638" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-17T13:20:39+00:00"&gt;9:20 PM Dec 17th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4191384404283560137?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4191384404283560137/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4191384404283560137' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4191384404283560137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4191384404283560137'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/12/weekly-twitters-2008-52.html' title='Weekly Twitters 2008-#51'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-9118797921437464544</id><published>2008-12-14T22:58:00.002+08:00</published><updated>2009-01-04T23:03:12.150+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='joke'/><title type='text'>Weekly Twitter 2008-#50</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;好久没用k-meleon了，这边机器只能上sourceforge.net, python.org等几个网站, 于是下载了一个, 现在都1.5了, 明显的变化是layer 随大流改名叫tab了&lt;a href="http://twitter.com/bamanzi/status/1052714941"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1052714941" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-12T03:53:14+00:00"&gt;11:53 AM Dec 12th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/maweis1981"&gt;maweis1981&lt;/a&gt; 咱这主意咋样, 老弟? 刚查了，专利讲究新颖性、创造性和实用性, 咱这都具备啊; 然后要求是试验过证明可行的, 这也没问题&lt;a href="http://twitter.com/bamanzi/status/1052507558"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1052507558" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-12T01:38:28+00:00"&gt;9:38 AM Dec 12th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt; &lt;a href="http://twitter.com/maweis1981/status/1052437605"&gt;in reply to maweis1981&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1052425710"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;我打算申请专利了: 倒着蹲坑法(头朝里)。优点1，不用担心bb溅起水(或者是...)来搞得pp很不爽，优点2，这种情况下便池够长，jj不会尿出去了, 优点3，与众不同的体验&lt;a href="http://twitter.com/bamanzi/status/1052425710"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1052425710" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-12T00:46:22+00:00"&gt;8:46 AM Dec 12th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1052425710" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status reply u-bamanzi mine" id="status_1052417096"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/carlosloveleo"&gt;carlosloveleo&lt;/a&gt; 那直接用google chrome或者opera不就行了?&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1052417096" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-12T00:40:53+00:00"&gt;8:40 AM Dec 12th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt; &lt;a href="http://twitter.com/carlosloveleo/status/1052413835"&gt;in reply to carlosloveleo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1052417096" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1051253708"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Firefox 3.1beta2怎么还不恢复工具栏上的"new tab"按钮啊，实在不习惯去右边点击按钮&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1051253708" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-11T14:05:55+00:00"&gt;10:05 PM Dec 11th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1051253708" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1051236002"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;似乎Programmer's Notepad更接近于我想要的代码编辑器，相对SciTE多了tags视图和project支持。坏处是它只支持Windows  &lt;a href="http://www.pnotepad.org/" rel="nofollow" target="_blank"&gt;http://www.pnotepad.org&lt;/a&gt;&lt;a href="http://twitter.com/bamanzi/status/1051236002"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1051236002" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-11T13:55:04+00:00"&gt;9:55 PM Dec 11th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1051236002" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1051231150"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;怎么这次看XUL Template Guide觉得很好懂呢，以前怎么看都觉得复杂？  &lt;a href="http://tinyurl.com/55mogj" rel="nofollow" target="_blank"&gt;http://tinyurl.com/55mogj&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1051231150" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-11T13:52:03+00:00"&gt;9:52 PM Dec 11th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1051231150" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status reply u-bamanzi mine" id="status_1051227748"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/carlosloveleo"&gt;carlosloveleo&lt;/a&gt; 为啥要采用webkit核心呢？ gecko核心也挺好啊，拖慢Firefox的是XUL那一套，但带来Firefox可扩展性的也是XUL&lt;a href="http://twitter.com/bamanzi/status/1051227748"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1051227748" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-11T13:49:55+00:00"&gt;9:49 PM Dec 11th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt; &lt;a href="http://twitter.com/carlosloveleo/status/1051137403"&gt;in reply to carlosloveleo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1051227748" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1047031705"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;原来对SOAP的支持已经在Firefox 3/Gecko 1.9中干掉了。但找到这样一个文档: Using SOAP in XULRunner 1.9  &lt;a href="http://tinyurl.com/5a724r" rel="nofollow" target="_blank"&gt;http://tinyurl.com/5a724r&lt;/a&gt;&lt;a href="http://twitter.com/bamanzi/status/1047031705"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1047031705" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-09T13:46:57+00:00"&gt;9:46 PM Dec 9th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1047031705" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1045051938"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Torchwood Season 2也看完了，目前在跟的国外电视剧有: Heroes 3, Sarah Connor 2, Desperate Housewives 5&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1045051938" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-08T14:01:23+00:00"&gt;10:01 PM Dec 8th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1045051938" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1045036573"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;到处能看到这个问题，但没有看到好的解决办法  &lt;a href="http://tinyurl.com/5lx5qu" rel="nofollow" target="_blank"&gt;http://tinyurl.com/5lx5qu&lt;/a&gt;       &lt;a href="http://tinyurl.com/6ncax4" rel="nofollow" target="_blank"&gt;http://tinyurl.com/6ncax4&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1045036573" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-08T13:50:13+00:00"&gt;9:50 PM Dec 8th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1045036573" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1044982513"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;为啥一些压缩碟的字幕不能正常显示呢？ 字很大，出现在屏幕右中部，只能显示前面几个字。不仅mplayer,vlc,totem搞不定，连Windows下的kmplayer也搞不定，好像还只有暴风好使&lt;a href="http://twitter.com/bamanzi/status/1044982513"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1044982513" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-08T13:08:25+00:00"&gt;9:08 PM Dec 8th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1044982513" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1044980413"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;迫不得已，机器内存太少，只得关掉防病毒软件和防木马软件，但总有点不放心，Windows这方面太脆弱了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1044980413" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-08T13:06:40+00:00"&gt;9:06 PM Dec 8th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-9118797921437464544?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/9118797921437464544/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=9118797921437464544' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/9118797921437464544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/9118797921437464544'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/12/weekly-twitter-2008-50.html' title='Weekly Twitter 2008-#50'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8117719868304571563</id><published>2008-12-07T23:04:00.000+08:00</published><updated>2009-01-04T23:05:50.506+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Weekly Twitter 2008 #49</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1039629110"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;这期&lt;程序员&gt;上居然有篇文章讲perl 6的未来，拜托，务实一点不行啊，大家以前觉得变化太大的python 3.0都已经出来了&lt;a href="http://twitter.com/bamanzi/status/1039629110"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1039629110" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-05T05:12:22+00:00"&gt;1:12 PM Dec 5th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1039629110" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1033730231"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;lingoes挺不错, 体积小， 又可以在firefox上取词，正好成为我上班时不能使用google toolbar取词的替代方案&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1033730231" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-12-02T06:13:44+00:00"&gt;2:13 PM Dec 2nd, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8117719868304571563?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8117719868304571563/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8117719868304571563' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8117719868304571563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8117719868304571563'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/11/weekly-twitter-2008-48.html' title='Weekly Twitter 2008 #49'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8556172372974143315</id><published>2008-11-30T23:06:00.000+08:00</published><updated>2009-01-04T23:07:30.592+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pidgin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='im'/><title type='text'>Weekly Twitter 2008 #48</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1024520723"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;试来试去，最终还是用SciTE来写Python脚本，唯一不爽的是没有代码结构试图（用于列出有哪些类哪些函数），爽的是可以灵活配置外部工具来indent, lint, run &amp;amp; debug&lt;a href="http://twitter.com/bamanzi/status/1024520723"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1024520723" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-26T13:53:05+00:00"&gt;9:53 PM Nov 26th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1024520723" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1024512344"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Envice可以直接打开fcitx.pdf.gz文件。我开始不确定什么工具可以，用gnome-open fcitx.pdf.gz试了一下，它用Envice打开了。&lt;a href="http://twitter.com/bamanzi/status/1024512344"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1024512344" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-26T13:47:12+00:00"&gt;9:47 PM Nov 26th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1024512344" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1024383612"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;原来是看错了配置项名称，应该是“主窗口隐藏模式”，不是“是否自动隐藏输入条”。另外，Evince在拖选文字时会出现乱码。&lt;a href="http://twitter.com/bamanzi/status/1024383612"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1024383612" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-26T11:49:56+00:00"&gt;7:49 PM Nov 26th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1024383612" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1024358625"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;怎么fcitx不能自动隐藏了？ 干扰我看电影啊。下载了一个fcitx-config来配了也不好使 :-(&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1024358625" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-26T11:21:21+00:00"&gt;7:21 PM Nov 26th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1024358625" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1020858540"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;新版本pidgin里QQ总算有关闭广告的选项了(2.5.3devel)&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1020858540" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-24T14:09:44+00:00"&gt;10:09 PM Nov 24th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1020858540" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status reply u-bamanzi mine" id="status_1020850356"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/carlosloveleo"&gt;carlosloveleo&lt;/a&gt; 我的操作系统是英文 :-(&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1020850356" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-24T14:03:52+00:00"&gt;10:03 PM Nov 24th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt; &lt;a href="http://twitter.com/carlosloveleo/status/1020834478"&gt;in reply to carlosloveleo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1020850356" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1020822227"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;Windows版本的pidgin如何设置界面语言: 写个批处理设置一下环境变量PIDGINLANG=zh_CN即可.   &lt;a href="http://tinyurl.com/2669zs" rel="nofollow" target="_blank"&gt;http://tinyurl.com/2669zs&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1020822227" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-24T13:41:58+00:00"&gt;9:41 PM Nov 24th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8556172372974143315?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8556172372974143315/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8556172372974143315' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8556172372974143315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8556172372974143315'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/11/weekly-twitter-2008-48_30.html' title='Weekly Twitter 2008 #48'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-672881797871725031</id><published>2008-11-23T23:08:00.000+08:00</published><updated>2009-01-04T23:08:58.311+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='sci.fi'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Weekly Twitter 2008 #47</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1014631164"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;gmail支持theme了， 换了个对眼睛有利的颜色&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1014631164" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-20T13:06:55+00:00"&gt;9:06 PM Nov 20th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1014631164" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1011345747"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;GNOME的无线网络配置只支持WEP而不支持WPA，改用wicd了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1011345747" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-18T15:19:08+00:00"&gt;11:19 PM Nov 18th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1011345747" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1011227317"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;locate32不错，从界面来看正是我一直在找的代替Windows搜索的工具，我对TC的搜索结果界面不太满意&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1011227317" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-18T14:00:29+00:00"&gt;10:00 PM Nov 18th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://www.naan.net/trac/wiki/TwitterFox"&gt;TwitterFox&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1011227317" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1009378190"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;刘慈欣 白垩纪往事 魔鬼积木&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1009378190" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-17T10:27:33+00:00"&gt;6:27 PM Nov 17th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-672881797871725031?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/672881797871725031/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=672881797871725031' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/672881797871725031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/672881797871725031'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/11/weekly-twitter-2008-47.html' title='Weekly Twitter 2008 #47'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6509323087537417676</id><published>2008-11-16T23:09:00.002+08:00</published><updated>2009-01-04T23:12:25.169+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><title type='text'>Weekly Twitter 2008 #46</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_1007598534"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;cygwinports已经有xfce-4.6beta1了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1007598534" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-15T23:53:56+00:00"&gt;7:53 AM Nov 16th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1007598534" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1007598093"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;搞错了，原来是gtk-1.2.10更新了，我还以为是2.10呢。好在最近发现sourceware.org上直接提供了cygwinports的镜像，所以可以安装那里的新版本gtk2了&lt;a href="http://twitter.com/bamanzi/status/1007598093"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1007598093" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-15T23:53:26+00:00"&gt;7:53 AM Nov 16th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1007598093" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1003011322"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;cygwin的gtk总算更新了，这下我可以搞新版本的xfce了。现在网站空间又没了，要不去申请一个sourceforge项目&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1003011322" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-13T00:32:47+00:00"&gt;8:32 AM Nov 13th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1003011322" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_1003000130"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;comtypes挺好用，比pywin32提供的win32com更让人习惯一点，也不需要安装一大砣东西&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/1003000130" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-13T00:23:41+00:00"&gt;8:23 AM Nov 13th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_1003000130" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_998799652"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;好久没摸linux了，手痒啊&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/998799652" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-10T14:21:59+00:00"&gt;10:21 PM Nov 10th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6509323087537417676?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6509323087537417676/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6509323087537417676' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6509323087537417676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6509323087537417676'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/11/weekly-twitter-2008-46.html' title='Weekly Twitter 2008 #46'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-9106930343340911360</id><published>2008-11-16T07:56:00.004+08:00</published><updated>2008-11-16T09:11:55.976+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><category scheme='http://www.blogger.com/atom/ns#' term='scite'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>用SciTE作为XUL的入门开发工具</title><content type='html'>开发XUL应该有这么几种情况:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;开始学习XUL，试验各种控件、XPCOM，不会涉及到chrome包。这种情况下只需要编辑XUL 和JavaScript，并能够预览就差不多了，能支持调试更好&lt;/li&gt;&lt;li&gt;开发Firefox/Thunderbird扩展，这种情况下打包、部署、调试都是必须的，有用于创建扩展的向导更好&lt;/li&gt;&lt;li&gt;开发独立的XULRunner应用程序，当然也需要跟2差不多的功能，但模式有些不同&lt;/li&gt;&lt;li&gt;开发Remote XUL应用，这个比较少见，可以忽略&lt;/li&gt;&lt;/ol&gt;综合一下我们需要的功能:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    XUL编辑器。基本的需求是一个XML编辑器，能够支持语法高亮、基本的well-formed检查(或者结构树、代码折叠等方式可以辅助发现XML错误）。高级一点的需求是能够提供XUL widget的代码完成，能够支持DTD entity自动完成，能够支持内嵌JavaScript的编辑&lt;/li&gt;&lt;li&gt;JavaScript编辑器。基本的需求也简单。高级的需求是能识别xpcom组件，从而显示里面的方法&lt;/li&gt;&lt;li&gt;部署&lt;/li&gt;&lt;li&gt;XPCOM组件浏览器&lt;/li&gt;&lt;li&gt;JavaScript Debugger&lt;/li&gt;&lt;li&gt;DOM Inspector&lt;/li&gt;&lt;li&gt;Chrome包结构浏览器，能够查看有哪些包能加载进来了。如果能识别overlay就更好了。(chrome list)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;目前我还在第一个阶段，试验了一些工具，觉得都不爽，最终还是用SciTE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-9106930343340911360?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/9106930343340911360/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=9106930343340911360' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/9106930343340911360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/9106930343340911360'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/11/xul.html' title='用SciTE作为XUL的入门开发工具'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-2385795330294581718</id><published>2008-11-02T23:13:00.000+08:00</published><updated>2009-01-04T23:15:02.920+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='total commander'/><title type='text'>Weekly Twitter 2008 #44</title><content type='html'>&lt;table class="doing" id="timeline" cellspacing="0"&gt;&lt;tbody id="timeline_body"&gt;&lt;tr class="hentry status u-bamanzi mine" id="status_984953104"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;我有些怀疑之所以notepad2能被很多人接受为系统notepad的替代品，有部分因素是它的图标跟notepad比较接近, 不会让人觉得突兀&lt;a href="http://twitter.com/bamanzi/status/984953104"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/984953104" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-11-01T07:31:23+00:00"&gt;3:31 PM Nov 1st, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_984953104" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status reply u-bamanzi mine" id="status_978538733"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/hkdom"&gt;hkdom&lt;/a&gt; 最近好吗? 好久没跟你聊聊了&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/978538733" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-10-28T05:13:42+00:00"&gt;1:13 PM Oct 28th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt; &lt;a href="http://twitter.com/hkdom/status/977296232"&gt;in reply to hkdom&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_978538733" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_978537284"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;XYplorer还凑合，4.5以前是免费的，搜索功能还挺强。最大的问题是菜单太繁杂了，很多选项没比要; 再就是没汉化&lt;a href="http://twitter.com/bamanzi/status/978537284"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/978537284" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-10-28T05:11:38+00:00"&gt;1:11 PM Oct 28th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_978537284" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_978533933"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;我已经有total commander了，所以其它不免费的就考虑了。功能复杂的也不要了，我就是要找一个简单的。基本的搜索功能得有(这条就能淘汰不少，居然还让我用windows自带的搜索功能? 我烦那小狗)&lt;a href="http://twitter.com/bamanzi/status/978533933"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/978533933" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-10-28T05:07:19+00:00"&gt;1:07 PM Oct 28th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_978533933" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_978533932"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;我已经有total commander了，所以其它不免费的就考虑了。功能复杂的也不要了，我就是要找一个简单的。基本的搜索功能得有(这条就能淘汰不少，居然还让我用windows自带的搜索功能? 我烦那小狗)&lt;a href="http://twitter.com/bamanzi/status/978533932"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/978533932" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-10-28T05:07:19+00:00"&gt;1:07 PM Oct 28th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_978533932" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_978529738"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;昨天下午把善用佳软上列的40多款文件管理软件排查了一遍，能下载的进行了试用，最后还是觉得2xExplorer好&lt;a href="http://twitter.com/bamanzi/status/978529738"&gt;...&lt;/a&gt;&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/978529738" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-10-28T05:02:37+00:00"&gt;1:02 PM Oct 28th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td class="actions"&gt;&lt;div&gt;&lt;a class="non-fav" id="status_star_978529738" title="favorite this update"&gt;  &lt;/a&gt;&lt;a class="del" title="delete this update"&gt;  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="hentry status u-bamanzi mine" id="status_978526466"&gt;&lt;td class="status-body"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="entry-content"&gt;新项目终于立起来了，获得了管理层全票同意，难得啊，自己这两个月的调研和分析没白费&lt;/span&gt; &lt;span class="meta entry-meta"&gt;&lt;a href="http://twitter.com/bamanzi/status/978526466" class="entry-date" rel="bookmark"&gt;&lt;span class="published" title="2008-10-28T04:58:55+00:00"&gt;12:58 PM Oct 28th, 2008&lt;/span&gt;&lt;/a&gt; &lt;span&gt;from &lt;a href="http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html"&gt;mobile web&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-2385795330294581718?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/2385795330294581718/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=2385795330294581718' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2385795330294581718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2385795330294581718'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/11/weekly-twitter-2008-44.html' title='Weekly Twitter 2008 #44'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-2304847697213047512</id><published>2008-10-05T19:51:00.004+08:00</published><updated>2008-10-08T19:14:10.945+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='the.x.files'/><category scheme='http://www.blogger.com/atom/ns#' term='sci.fi'/><category scheme='http://www.blogger.com/atom/ns#' term='movie'/><title type='text'>《X档案》的第二部电影 I Want to Believe 主要是给fans准备的</title><content type='html'>&lt;a href="http://www.douban.com/subject/2298926/"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 150px;" src="http://otho.douban.com/mpic/s3077939.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;刚看了《X档案》的第二部电影 &lt;a href="http://www.douban.com/subject/2298926/"&gt;&lt;span style="font-style: italic;"&gt;I Want to Believe&lt;/span&gt;&lt;/a&gt;，去豆瓣上做记录时留意到，大部分人给了三分。&lt;br /&gt;&lt;br /&gt;这部片子不是为一般的观众准备的，他们可能觉得这部片子没讲一个完整、明白的故事。它不是《七宗罪》、《人骨拼图》，也不是《沉默的羔羊》。&lt;br /&gt;　　&lt;br /&gt;这部片子也不是为那些科幻迷准备的，因为这里也没有再继续《X档案》的主线故事: 外星殖民阴谋论。&lt;br /&gt;　　&lt;br /&gt;这部片子更加不是为那些只看过前面一两季，或者只看过电视台里前面配过音的少数几集的观众们准备的，喜欢看那几集还算不上一个The X Files的粉丝，或者说你们无法有足够的基础去了解这部片子在讲什么。&lt;br /&gt;　　&lt;br /&gt;这部片子是为*真正的*X档案迷准备的。如果你完整看过200集《X档案》（好吧，最后两季除了大结局可以不算，虽然它们也很精彩，但跟这里 是有些不搭界），那你就明白，这部电影其实不是在讲这个案子本身，而是在讲信念，讲坚持。而需要你相信和坚持的东西其实你也不一定知道它就是对的。所以它其实 是在讲勇气。&lt;br /&gt;&lt;br /&gt;四年前，我看完了《X档案》大结局（虽然这最后几集我留了很久），结束了三年的。陡然间，怅然若失，仿佛体内一个什么部件丢失了，空空的。&lt;br /&gt;&lt;br /&gt;若干年过去了，陡然发现，虽然他们都老了，Mulder还是那个Mulder，Scully也还是那个Scully，还有Skinner。&lt;br /&gt;　　&lt;br /&gt;还是很喜欢——虽然不觉得可以直接推荐给其它朋友看。&lt;br /&gt;&lt;br /&gt;---------------------------------------------------&lt;br /&gt;看这部片子其实挺费劲，原来买了一张D版碟，结果中文字幕很烂，有些对话没翻译，有些又明显不对。我想切换到英文字幕（想凑合着试试，虽然有英文字幕也不大听得懂），但碟子上又延续了一个D版碟的传统：英文字幕不相干，不知道搞了个什么东西的字幕。&lt;br /&gt;&lt;br /&gt;然后从网上下rmvb格式，字幕翻得也烂，我能听出不少词压根没出现在字幕中。最大的问题是根据字幕没法看懂对话，总感觉隔了一层。&lt;br /&gt;&lt;br /&gt;最后干脆从&lt;a href="http://www.shooter.cn/"&gt;射手网&lt;/a&gt;下载了字幕，这才凑合。这个字幕似乎是shipper(如果你不懂这个词，你肯定不是上面的说fans了)翻译的，里面有不少的批注，比如Scully说"你的执著让我爱上你"，他加上了"感动"，Mulder答复说"但也正如你所说那也是我们无法在一起的原因"，他加上"木头"; 还有后面Skinner拿衣服给Mulder御寒，"同人万岁"，哈哈。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-2304847697213047512?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/2304847697213047512/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=2304847697213047512' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2304847697213047512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2304847697213047512'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/10/x-i-want-to-believe.html' title='《X档案》的第二部电影 I Want to Believe 主要是给fans准备的'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4883506896980535648</id><published>2008-10-05T14:37:00.005+08:00</published><updated>2008-10-08T19:20:03.344+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='total commander'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>TCShell2 1.5.7: Associate .rar/.zip/etc with Total Commander</title><content type='html'>1.5.7 (2008-10-05)&lt;br /&gt;* Archive associations:&lt;br /&gt;   |+ Now you can double click to set the description for an extension&lt;br /&gt;   |+ Support jar/xpi/r00/r01 as TC's built-in archive&lt;br /&gt;   |+ Refresh archive associations after Apply clicked&lt;br /&gt;- Fixed a bug when restoring old associations&lt;br /&gt;+ Support opening in source/target panel ( /S )            &lt;br /&gt;&lt;br /&gt;下载:&lt;br /&gt;&lt;a href="http://sites.google.com/site/bamanzi/tcshell2/TCShell2-1.5.7.zip?attredirects=0"&gt;http://sites.google.com/site/bamanzi/tcshell2/TCShell2-1.5.7.zip?attredirects=0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bamanzi.inlsd.org/win32/totalcmd/TCShell2-1.5.7.zip"&gt;http://bamanzi.inlsd.org/win32/totalcmd/TCShell2-1.5.7.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sites.google.com/site/bamanzi/_/rsrc/1223187822777/tcshell2/tcshell2-archives.gif"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://sites.google.com/site/bamanzi/_/rsrc/1223187822777/tcshell2/tcshell2-archives.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;img style="border: 1px solid blue; z-index: 90; opacity: 1; position: absolute; left: 343px; top: 210px;" id="smallDivTip" src="chrome://dictionarytip/skin/book.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4883506896980535648?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4883506896980535648/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4883506896980535648' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4883506896980535648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4883506896980535648'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/10/tcshell2-157-associate-rarzipetc-with.html' title='TCShell2 1.5.7: Associate .rar/.zip/etc with Total Commander'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-665598023808425514</id><published>2008-10-04T12:21:00.003+08:00</published><updated>2008-10-04T12:27:26.288+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>倡议: Debian/Ubuntu用户都来安装apt-p2p吧</title><content type='html'>装上apt-p2p, 我们就可以在各个用户之间自动传递软件包了，可以有效减轻镜像服务器负担，并减小对单一镜像服务器的依赖。&lt;br /&gt;&lt;br /&gt;安装很简单:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;apt-get install apt-p2p&lt;/li&gt;&lt;li&gt;修改/etc/apt/sources.list，将你使用的repos服务器改成localhost:9977，类似下面这样&lt;/li&gt;&lt;/ol&gt;http://localhost:9977/debian.cn99.com/debian  testing main contrib non-free&lt;br /&gt;&lt;br /&gt;然后重新执行一下apt-get update就可以了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-665598023808425514?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/665598023808425514/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=665598023808425514' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/665598023808425514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/665598023808425514'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/10/debianubuntuapt-p2p.html' title='倡议: Debian/Ubuntu用户都来安装apt-p2p吧'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3672287111863071092</id><published>2008-09-26T23:16:00.006+08:00</published><updated>2008-10-05T14:50:27.834+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>更新: Dictionary Tooltip支持爱词霸的脚本</title><content type='html'>更新了一下Dictionary Tooltip支持&lt;a href="http://www.iciba.com/"&gt;金山爱词霸网站(http://www.iciba.com)&lt;/a&gt;的脚本。不打算支持stardict.org了，网站太慢，开放的词典太少。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rjonna.com/ext/dictionarytip/"&gt;Dictionary Tooltip&lt;/a&gt;是个Firefox扩展，可以让你双击一个单词就在线去查词典，将结果显示出来（不是新开一页，而是在当前页内显示，可以过滤不相关的内容）。&lt;br /&gt;&lt;br /&gt;将以下内容添加到(firefox profile)&lt;br /&gt;/dictionarytip/dictionarytip_dictScript.js尾部即可。&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;--- 8&lt; --------------------------------------------------------------&lt;br /&gt;dtip_arrDict[19]=&lt;br /&gt;{&lt;br /&gt;   dictName : "www.iciba.com",&lt;br /&gt;   url : "",&lt;br /&gt;   subCatName : " *",&lt;br /&gt;   subCatValue : " *",&lt;br /&gt;   selectedText : "",&lt;br /&gt;   assignUrl : function(selectedText, prefLang)&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;       this.url = " http://www.iciba.com/" + selectedText + "/";&lt;br /&gt;       this.selectedText = selectedText;&lt;br /&gt;   },&lt;br /&gt;   filterPage : function (ftDoc, prefLang, strNoResults)&lt;br /&gt;   {&lt;br /&gt;       try&lt;br /&gt;       {        &lt;br /&gt;     var elemId = "dict_content";          &lt;br /&gt;    &lt;br /&gt;     var newDiv = "";&lt;br /&gt;     if (ftDoc.getElementById(elemId) != null)&lt;br /&gt;     {&lt;br /&gt;         newDiv = ftDoc.getElementById(elemId).cloneNode(true);&lt;br /&gt;      &lt;br /&gt;         ftDoc.body.innerHTML = newDiv.innerHTML;&lt;br /&gt;     }&lt;br /&gt;      &lt;br /&gt;       }&lt;br /&gt;       catch (ex)&lt;br /&gt;       {&lt;br /&gt;     alert(ex);&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;dtip_strDictText += ";www.iciba.com"&lt;br /&gt;&lt;/pre&gt;  --- &gt;8 --------------------------------------------------------------&lt;br /&gt;(2008-10-5 更新: 做了补充说明，并修订了一下脚本)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3672287111863071092?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3672287111863071092/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3672287111863071092' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3672287111863071092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3672287111863071092'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/09/dictionarytooltip.html' title='更新: Dictionary Tooltip支持爱词霸的脚本'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7485008878372818502</id><published>2008-09-20T16:32:00.005+08:00</published><updated>2008-10-08T19:16:41.437+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='addons'/><category scheme='http://www.blogger.com/atom/ns#' term='total commander'/><title type='text'>推荐的Total Commander工具箱</title><content type='html'>(以下的东东除了单独注明的外，均可以在&lt;a href="http://www.totalcmd.net/"&gt;http://www.totalcmd.net&lt;/a&gt;上找到)&lt;br /&gt;&lt;br /&gt;主程序:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    对于新手，推荐安装&lt;a href="http://www.shanny.com.cn/tcee"&gt;Shanny美化版本(TCEE)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;汉化: TCEE里面带有中文语言包，也可以直接到&lt;a href="http://www.ghisler.com/languages.htm"&gt;官方网站Languages上&lt;/a&gt;去找，那里还有中文的CHM格式帮助文件（&lt;span style="text-decoration: underline;"&gt;比hlp好的是&lt;/span&gt;可以搜索文字)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Packer 插件:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;7z&lt;/span&gt;: 不用说  &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;mhtunpack&lt;/span&gt;:  可打开mht，提取里面的文件 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;chmdir&lt;/span&gt;: 可打开chm/hxt，提取里面的文件 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;isoread&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;totaliso&lt;/span&gt;: 前者可解压iso/bin/nrg/img/，后者可解压和制作ISO镜像&lt;/li&gt;&lt;/ul&gt;Lister插件:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;scilister&lt;/span&gt;: 基于scintilla的文件查看器，速度很快，不能编辑，非常适于浏览代码文件(需要SciTE &lt;= 1.72，并且这个插件要放在scite安装目录中) &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;syn2&lt;/span&gt;: 不错的编辑器 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;ieview&lt;/span&gt;: IE，用于查看网页 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;imagine&lt;/span&gt;: 浏览各种图片文件（如果有irfanview也凑合） &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;fileinfo&lt;/span&gt;:  可查看exe/dll/lib等文件的一些信息（PE信息、动态库输出/依赖、LIB输出函数列表)&lt;/li&gt;&lt;/ul&gt;    不要安装太多lister插件，对稳定性和性能多有一些影响，我期望按下F3之后能快速出现内容&lt;br /&gt;   其它的lister插件( XML, SynPlus, ICLView, eml, xbaseview)可以安装到外部浏览器&lt;span style="font-weight: bold;"&gt;UniversalViewer&lt;/span&gt;中去&lt;br /&gt;&lt;br /&gt;FileSys插件:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;UnInstaller&lt;/span&gt;: 用于卸载程序，控制面板里那个实在让人等得不耐烦 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Startup Guard&lt;/span&gt;: 管理那些自动启动的程序，可禁用或者删除 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Services&lt;/span&gt;: 删除、启动、停止服务 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;ProcFS&lt;/span&gt;: 查看运行中的进程，可“删除”进程 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Virtual Disk&lt;/span&gt;: 虚拟磁盘，除了可以虚拟光驱代替DaemonTools，还可以虚拟硬盘、软盘&lt;/li&gt;&lt;/ul&gt;Content插件:&lt;ul&gt;&lt;li&gt;似乎大多没啥用。常用&lt;span style="font-weight: bold;"&gt;exif&lt;/span&gt;和&lt;span style="font-weight: bold;"&gt;xpiinfo&lt;/span&gt;这两个&lt;/li&gt;&lt;/ul&gt;外部工具:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;PlugMan&lt;/span&gt;: TC插件管理器 &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;FavMenu2&lt;/span&gt;: 在TC/资源管理器/打开文件对话框 /浏览目录对话框中跳到常用的目录(以及TC中当前显示的目录)，常用目录列表缺省读自TC的hotlist &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;UniveralViewer&lt;/span&gt;: 可浏览各种文件，支持TC的lister插件 &lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.shanny.com.cn/f4menu/"&gt;F4Menu&lt;/a&gt;: 将TC的外部编辑器(F4)设置为此功能，可显示一个打开此文件类型的常用程序列表 &lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://sites.google.com/site/bamanzi/tcshell2"&gt;TCShell2&lt;/a&gt;: 可给目录关联一个“在TC中打开”菜单，也可将压缩文件关联为TC打开(后面一个功能为本人添加的，基于TCShell-1.3.6的代码)&lt;/li&gt;&lt;/ul&gt;我常用的其它插件:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Packer: &lt;/span&gt;  z, msi-plus, bzip2, deb, rpm, cpio, mbox, diskdir, iclread,  nscopy,&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lister:    &lt;/span&gt;iclview, xml, xbaseview, eml&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FileSys:  &lt;/span&gt;ext2fs&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Content:  &lt;/span&gt;xpiinfo, exif, deb, rpm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7485008878372818502?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7485008878372818502/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7485008878372818502' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7485008878372818502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7485008878372818502'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/09/total-commander.html' title='推荐的Total Commander工具箱'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8449268603237500649</id><published>2008-09-16T22:13:00.005+08:00</published><updated>2008-09-20T17:11:26.217+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='oop'/><title type='text'>JavaScript也够魔幻的</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://ejohn.org/blog/javascript-method-overloading"&gt;JavaScript Method Overloading&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 51, 102);"&gt;可支持按如下方式使用，而且这几个方法不是在一个函数实现中判断arguments.length来走不同分支的，而是可以动态添加方法的——当然，由于JavaScript不是静态类型语言，只能根据参数个数来决定走那个实现，不能根据参数类型&lt;/span&gt;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 102);"&gt;&lt;blockquote&gt;var users = &lt;span style="color: rgb(0, 51, 102);"&gt;new&lt;/span&gt; Users&lt;span style="color: rgb(0, 136, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;)&lt;/span&gt;;&lt;br /&gt;users.&lt;span style="color: rgb(0, 102, 0);"&gt;find&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;)&lt;/span&gt;; &lt;span style="color: rgb(0, 153, 0); font-style: italic;"&gt;// Finds all&lt;/span&gt;&lt;br /&gt;users.&lt;span style="color: rgb(0, 102, 0);"&gt;find&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 204);"&gt;"John"&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;)&lt;/span&gt;; &lt;span style="color: rgb(0, 153, 0); font-style: italic;"&gt;// Finds users by name&lt;/span&gt;&lt;br /&gt;users.&lt;span style="color: rgb(0, 102, 0);"&gt;find&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 204);"&gt;"John"&lt;/span&gt;, &lt;span style="color: rgb(51, 102, 204);"&gt;"Resig"&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;)&lt;/span&gt;; &lt;span style="color: rgb(0, 153, 0); font-style: italic;"&gt;// Finds users by first and last name&lt;/span&gt;&lt;br /&gt;users.&lt;span style="color: rgb(0, 102, 0);"&gt;find&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 204);"&gt;"John"&lt;/span&gt;, &lt;span style="color: rgb(51, 102, 204);"&gt;"E"&lt;/span&gt;, &lt;span style="color: rgb(51, 102, 204);"&gt;"Resig"&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0);"&gt;)&lt;/span&gt;; &lt;/blockquote&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.crockford.com/javascript/private.html"&gt;Private Members in JavaScript&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 102);"&gt;作者说的private members，其实只是在constructor中声明的变量和函数，没有挂到this后面，根据JavaScript的闭包原则，constructor中声明的函数是可以访问这些private变量和函数的，但在constructor之外（比如通过classFoo.prototype.funcB = function(...) {...}创建的方法）的就无法访问这些东西了。所以作者称constructor里面通过this.funcA = function(...) {...}方式添加的成员函数为priviliged method.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;属性名一定要满足标识符规定么?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;今天一个兄弟项目组的同事碰到一个问题，让我帮忙看看。他在Firebug中看到一个params对象有如下一些属性显示了出来(大致如此)&lt;/span&gt;&lt;span style="color: rgb(0, 51, 102);"&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;params&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;   filter[0][data][type]="string"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;   filter[0][data][value]=2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;   filter[0][type]="field"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;   start=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;   limit=20&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;然后他想去取有多少个filter，然后逐一处理。但访问params.filter时出错，访问params.filter[0]时也出错。但上面连数组内各个值都显示出来了啊。&lt;br /&gt;&lt;br /&gt;我开始也觉得不可能，但看了一阵，觉得Filebug的显示比较奇怪，为什么它不把filter作为一个成员，再在下面显示数组内容呢？ 然后我用for (e in params) { alter(e) }试了一下，发现它有属性就叫做"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;filter[0][data][type]"&lt;/span&gt;!&lt;br /&gt;&lt;span style="color: rgb(0, 51, 102);"&gt;&lt;br /&gt;这是怎么设进去的呢？&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;以前看文章说JavaScript中foo.bar=1和foo["bar"]=1是等价的, 当然现在不经过&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;params.filter[0]就直接&lt;/span&gt;设置&lt;span style="font-family:courier new;"&gt;params.filter[0][data][type]="string"是不行的，&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;所以&lt;/span&gt;&lt;span style="color: rgb(0, 51, 102);"&gt;估计是这种方式: &lt;/span&gt;&lt;span style="color: rgb(0, 51, 102);"&gt;&lt;span style="font-family:courier new;"&gt;params["&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;filter[0][data][type]"]="string"——不过也说明了这两种不是等价的。至于为什么要这么写，据后来另外一个同事说PHP里面可以直接用上这样的数据（我是不懂）。&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8449268603237500649?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8449268603237500649/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8449268603237500649' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8449268603237500649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8449268603237500649'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/09/javascript.html' title='JavaScript也够魔幻的'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1039305353932308283</id><published>2008-09-14T12:45:00.000+08:00</published><updated>2008-09-14T12:46:19.099+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='ui'/><category scheme='http://www.blogger.com/atom/ns#' term='CLI'/><title type='text'>Firefox上的命令行: Ubiquity和Vimperator</title><content type='html'>&lt;div dir="ltr"&gt;前几天Firefox的新扩展&lt;a href="https://wiki.mozilla.org/Labs/Ubiquity" target="_blank"&gt;Ubiquity&lt;/a&gt;掀起了一个热潮，&lt;wbr&gt;都说是浏览器上人机交互的突破。&lt;br /&gt;&lt;br /&gt;GUI的优势在于上手比较容易，而CLI的优势在于效率更高。&lt;wbr&gt;其实Ubiquity并不是第一个这么干的，这之前的&lt;a href="http://vimperator.mozdev.org/" target="_blank"&gt;vimpe&lt;wbr&gt;rator扩展&lt;/a&gt;也早通过模拟vi里面的ex命令的方式，&lt;wbr&gt;实现了Firefox上的命令行，比如输入&lt;u&gt;:tabopen google&lt;/u&gt;就能在新的标签页中打开&lt;a href="http://www.google.com/" target="_blank"&gt;http://www.&lt;wbr&gt;google.com&lt;/a&gt; ，输入 &lt;u&gt;:dialog addons&lt;/u&gt;就能显示"附加组件"对话框，&lt;wbr&gt;也可以跟ubiquity一样&lt;a href="http://vimperator.mozdev.org/scripts.html" target="_blank"&gt;扩充新的命令&lt;/a&gt;。&lt;wbr&gt;但vimperator的主要目的在于模仿vi/&lt;wbr&gt;vim的操作方式，"模"的问题决定了很多人不会使用，&lt;wbr&gt;或者不愿使用。&lt;br /&gt;&lt;br /&gt;(BTW: 最开始vimperator给我看Google Reader造成了很大的不便，&lt;wbr&gt;因为快捷键都得先按一下Ctrl-V才行，烦得要命，&lt;wbr&gt;好在不久发现可以用autocomand在某些网址上禁用vim&lt;wbr&gt;perator的键拦截（在vimperator中输入&lt;u&gt;:&lt;wbr&gt;help autocommand&lt;/u&gt;可以找到相应说明，&lt;wbr&gt;不过那个网址匹配表达式需要懂一点JavaScript才能搞懂&lt;wbr&gt;怎么写）&lt;br /&gt;&lt;br /&gt;不过Ubiquity似乎比普通CLI要跟强一些，&lt;wbr&gt;还可以利用命令的输出与网页交互。以&lt;a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/" target="_blank"&gt;官网的视频&lt;/a&gt;里 的第一个例子来说，以前我们要跟朋友相约去哪里吃饭，&lt;wbr&gt;发电子邮件时需要这样：先到某个网址查饭馆联系方式，&lt;wbr&gt;然后将内容拷贝粘贴到邮件中，然后又 Google Maps上找相应的地图，然后点击拷贝图片和链接到邮件中，&lt;wbr&gt;最后发送。但现在只需要在写邮件时，用map命令查出地图，&lt;wbr&gt;点击一些"insert into page"就可以将地图直接放入邮件了，&lt;wbr&gt;而饭馆的信息则可以通过yelp来查然后添加到邮件中（当然，&lt;wbr&gt;这些命令对应的网站能否服务于我这里是另外一个不得 不考虑在内的问题）——这倒有点象vi中&lt;a href="http://vimcdoc.sourceforge.net/doc/change.html#%21%21" target="_blank"&gt;用!!调用外部命令&lt;/a&gt;并将&lt;wbr&gt;其输出插入到当前文本中来。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1039305353932308283?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1039305353932308283/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1039305353932308283' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1039305353932308283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1039305353932308283'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/09/firefox-ubiquityvimperator.html' title='Firefox上的命令行: Ubiquity和Vimperator'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7401832486991854929</id><published>2008-09-11T21:38:00.007+08:00</published><updated>2008-10-08T19:15:45.050+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu vs Debian 杂感几则</title><content type='html'>看见这么一篇文章: &lt;a href="http://imtx.cn/archives/581.html"&gt;I'm TualatriX：叹: Ubuntu的软件包比Debian还稳定&lt;/a&gt;。   他说的“稳定”是Debian里面的stable/testing/unstable的概念，指的是软件包的版本新旧。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;其 实我也早发现Ubuntu的不少包比Debian更新慢。想想也是，毕竟现在不是当初Ubuntu只做GNOME桌面的时候，当越来越多的人来给他添砖加 瓦，也就使得大家需要的软件包越来越多，当它的摊子越铺越大的时候，它不可能保证所有的包都能很快更新。也就是说，只可能部分比debian新，而那些平时不在焦点之中的包，就比debian更新得慢了。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;以前在犹豫要不要切换到Ubuntu时，我的一个顾虑就是以为它 只有GNOME，其它的软件包大多没有（我还是会跑某些Qt/KDE甚至一些老X11程序的)，当后来别人告诉我Debian有的包它都有，我就一直不太 相信——它怎么可能维护那么多软件包，又能保持“焦点”软件的快速更新？ （后来这个顾虑打消后，我又有了另外一个问题：Ubuntu里面有testing这样的概念么？——这个问题导致我到现在也没有换用Ubuntu，当然， 另一个重要原因是最近一年工作太忙，没时间来折腾这些。）&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;以前我们对Debian的更新速度颇多抱怨，尤其是稳定版本的推出节奏。现在想来，摊子大还的确是个问题，君不见，当Ubuntu的摊子铺大之后，虽然仍然一年两个版本，但质量却在下降，作为LTS的8.04质量并不是太好，连续推出了8.04.1和8.04.2？&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://lwn.net/Articles/292958/"&gt;Linspire决定不再基于Ubuntu，要回归Debian&lt;/a&gt;的原因是什么呢？我没仔细去看，但也许这能说明一点啥。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;也 许我是有点嫉妒，但我觉得Ubuntu的成功有Debian的基础在，但风头都被Ubuntu抢去了。如果不是Debian强大的包依赖机制、升级/安装 管理系统，以及alternatives, menu等小机制，Ubuntu不会有精力去优化内核、搞炫桌面。我是有点打抱不平的。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; 关于Debian的包管理系统，我看见这样一篇文章 "&lt;a href="http://www.cnbeta.com/articles/49469.htm"&gt;红帽将在未来的RHEL中支持deb软件包&lt;/a&gt;"， 但没有找到原文，不知道是否属实。里面说道:  红帽（RedHat）总裁卫赫士(Jim Whitehurst)透露，未来的RHEL（红帽企业版Linux）将加入对DEB软件包的支持。卫赫士说，“众所周知，红帽创造了RPM，并成为了一 时的Linux工业标准。但是RPM一个很大的缺点就是软件包的依赖性很难解决。以Ubuntu为代 表的使用DEB软件包的Linux发行版拥抱自由开源，取得了很大成功。虽然为了避免Linux陷入像Unix那样的分裂局面，Linux厂商一致遵守 LSB标准。但这还不够，所以红帽将在未来的RHEL中加入对DEB包的支持，并计划逐渐削弱RPM包，直到最终取代。”&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;我 有一个朋友，装东西特喜欢装最新最炫的东西，他开始玩Linux的时候，总是要装最新版本的gcc（同时他是一个C++超级fans)，装最新版本的 KDE（他觉得GNOME太简陋了, 不够炫)。最开始的时候他听说用Fedora/RedHat的人最多，结果为了加装软件折腾得够呛。后来在我的劝说下改用Debian（关键是我也不怎么 会用Fedora，我只会用apt-get来装软件 :-(，本来觉得Mandrake给他用倒是更合适，urpmi也好使，但实在不知道有没有快一点的镜像)，但他现在恋恋不忘的是要改用Ubuntu——不过他最近工作也忙，估计Linux连摸都不摸了。&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7401832486991854929?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7401832486991854929/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7401832486991854929' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7401832486991854929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7401832486991854929'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/09/ubuntu-vs-debian.html' title='Ubuntu vs Debian 杂感几则'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1777400982500188299</id><published>2008-08-31T12:27:00.001+08:00</published><updated>2008-08-31T12:27:34.901+08:00</updated><title type='text'>GTK+ Preference Tool for Windows</title><content type='html'>&lt;p&gt;&lt;a href="http://gtk-win.sourceforge.net/home/index.php/Gtk2Prefs"&gt;GTK+ for Windows Runtime Environment - GTK+ Preference Tool[en]&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;GTK+ Preference Tool is an utility for easy theme and font switching for GTK+ applications. You can download the utility as a standalone source/binary in the Downloads section. It is also included in the latest GTK+ Themes packages.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: There may be some problems with fonts and colors when switching to/from MS-Windows theme. This seems to be a theme and/or GTK+ bug. The workaround is to restart the theme selector after switching to/from MS-Windows theme.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:void(0);/*1220156815981*/"&gt;&lt;img width="358" height="188" border="0" src="http://gtk-win.sourceforge.net/home/images/gtk2_prefs_screen.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Screenshot&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1777400982500188299?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1777400982500188299/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1777400982500188299' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1777400982500188299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1777400982500188299'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/08/gtk-preference-tool-for-windows.html' title='GTK+ Preference Tool for Windows'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3700377694225484173</id><published>2008-08-10T10:51:00.001+08:00</published><updated>2008-08-24T11:36:44.221+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sci.fi'/><title type='text'>《三体2: 黑暗森林》以及合法性问题</title><content type='html'>&lt;span class="content"&gt;&lt;a href="http://www.douban.com/subject/3066477/"&gt;&lt;img src="http://otho.douban.com/mpic/s3078482.jpg" style="border: 0pt none ; padding: 0pt 20px 20px 0pt; float: right;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="content"&gt;从网上找到了《三体2: 黑暗森林》全文，弄到手机上看呢。倒不是不想掏钱买书，试在是前几次&lt;/span&gt;&lt;span class="content"&gt;搬家被大&lt;/span&gt;&lt;span class="content"&gt;堆的书折腾得够呛，现在是不会反复研读的&lt;/span&gt;&lt;span class="content"&gt;书是不买实体的。&lt;/span&gt;&lt;span class="content"&gt;如果网上发布电子版让我付费买大刘的这本书的话，我想我还是非常乐意的。&lt;/span&gt;&lt;span class="content"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="content"&gt;陡然在想，我这种做法跟去图书馆借阅有多大差别呢? 为什么从网上下载似乎就是不合法的? ——不是反诘，我真的有些迷惑。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3700377694225484173?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3700377694225484173/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3700377694225484173' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3700377694225484173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3700377694225484173'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/08/2.html' title='《三体2: 黑暗森林》以及合法性问题'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5987848605430123705</id><published>2008-07-25T22:14:00.004+08:00</published><updated>2008-08-30T23:57:37.434+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Windows如何编译python 2.4的pyd模块</title><content type='html'>今天试图安装envisage，但它提供的最新版本都是为python 2.5提供的，于是我下载了源代码来自己编译，结果enthought.traits这个包里面有个pyd动态库，需要编译。&lt;br /&gt;&lt;br /&gt;执 行python setup.py install，它先说找不到gcc，我把gcc-mingw的位置加到PATH中，但编译无法通过，链接是有一大堆的_imp_Pyxxxxx找不到。 看这个前缀，好像是Microsoft Visual C++编译器的习惯，而Windows上的python官方版一向都是用msvc编译的（不知道他们怎么不用gcc）。&lt;br /&gt;&lt;br /&gt;总不至于要我安装 一个Visual Studio吧，而且python 2.4是用VS.NET 2003编译的（sys.version里面显示编译器版本为v.1310）。在网上找了半天，找到一个Visual C++ 2003 toolkit（微软已经不再提供下载，各位得仔细找找)。&lt;br /&gt;&lt;br /&gt;但还是折腾了半天才搞定，方法如下:&lt;br /&gt;1. 安装Visual C++ 2003 toolkit, 它只包含编译、链接工具，以及基本的C/C++库。&lt;br /&gt;2. 安装Platform SDK (用gcc-mingw的库和头文件也可以)&lt;br /&gt;3. 修改distutils/distutils.cfg，将编译器由mingw改为msvc (好像是上次安装gcc-mingw时它设置的，不过我用gcc-mingw一直没成功编译)&lt;br /&gt;4. 修改distutils/msvccompiler.py，将MacroExpander.load_macros()里面对dotNet Framework的检测代码删掉（有必要检查这个么，奇怪）; 然后仿照Python 2.5的做法修改MSVCCompiler.initialize()，改成如下(Python 2.5里面那个对MSSDK环境变量的检查也是没有必要的)&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;def initialize(self):&lt;br /&gt;   self.__paths = []&lt;br /&gt;   if os.environ.has_key("DISTUTILS_USE_SDK") and self.find_exe("cl.exe"):&lt;br /&gt;       # Assume that the SDK set up everything alright; don't try to be&lt;br /&gt;       # smarter&lt;br /&gt;       self.cc = "cl.exe"&lt;br /&gt;       self.linker = "link.exe"&lt;br /&gt;       self.lib = "lib.exe"&lt;br /&gt;       self.rc = "rc.exe"&lt;br /&gt;       self.mc = "mc.exe"&lt;br /&gt;   else:&lt;br /&gt;        //原来的老代码&lt;br /&gt;&lt;/pre&gt;6. 启动vc2003 toolkit的Command Prompt，然后按如下方式编译&lt;pre&gt;&lt;br /&gt;   set MSSDK=&lt;i&gt;Platform SDK或者gcc-mingw的安装目录&lt;/i&gt;&lt;br /&gt;   set include=%INCLUDE%%MSSDK%include&lt;br /&gt;   set lib=%LIB%%MSSDK%lib&lt;br /&gt;   python setup.py install&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5987848605430123705?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5987848605430123705/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5987848605430123705' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5987848605430123705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5987848605430123705'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/07/windowspython-24pyd.html' title='Windows如何编译python 2.4的pyd模块'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7046698170035540431</id><published>2008-07-23T22:37:00.003+08:00</published><updated>2008-07-23T22:54:58.882+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sci.fi'/><title type='text'>最近感兴趣的一些东东（非技术方面 ）</title><content type='html'>就写两则与科幻有关的吧:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;在书店看见了刘慈欣的《&lt;a href="http://www.douban.com/subject/2567698/"&gt;三体&lt;/a&gt;》续集《&lt;a href="http://www.douban.com/subject/3066477/"&gt;黑暗森林&lt;/a&gt;》，还没开始看。我这人记忆力不太好，《三体》的故事只记得开头和那个虚拟的三体世界游戏这两部分了，后面的都忘记了，回顾一下再看这本吧，不过据说故事比较独立&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://science.solidot.org/article.pl?sid=08/05/31/075259&amp;amp;from=rss"&gt;Philip K. Dick的科幻名著《Ubik》将登陆大荧幕&lt;/a&gt; 。  以前我在blog上也&lt;a href="http://bamanzi3.blogspot.com/2007/05/kphilip-k-dick.html"&gt;提到过&lt;/a&gt;有好几部有名的科幻电影是根据这个天才的作品改编的。后来出了&lt;a href="http://www.douban.com/subject/1793909/"&gt;《预见未来》Next&lt;/a&gt;。我还发现遗漏了&lt;a href="http://www.douban.com/subject/1308715/"&gt;《致命报酬》Paycheck&lt;/a&gt;和&lt;a href="http://www.douban.com/subject/1417084/"&gt;《黑暗扫描仪》A Scanner Darkly&lt;/a&gt; 。另外，两周前《看电影》在《&lt;a href="http://www.douban.com/subject/1291839/"&gt;银翼杀手&lt;/a&gt;》推出25周年&lt;a href="http://solidot.org/article.pl?sid=07/10/14/0535254&amp;amp;from=rss"&gt;最终剪辑版&lt;/a&gt;推出之际介绍了一下当时片子的诞生过程，还讲解了一下剧情，才发现自己根本没看懂，连主角Rick也是复制人都没看出来。  欢迎加入&lt;a href="http://www.douban.com/group/Philip.K.Dick/"&gt;豆瓣上的Philip Dick小组&lt;/a&gt;。&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7046698170035540431?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7046698170035540431/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7046698170035540431' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7046698170035540431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7046698170035540431'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/07/blog-post_23.html' title='最近感兴趣的一些东东（非技术方面 ）'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-655573957513933520</id><published>2008-07-23T22:33:00.002+08:00</published><updated>2008-07-23T22:37:23.061+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>最近感兴趣的一些东东</title><content type='html'>好久没写blog了，其实感想还是有不少，但前段时间工作比较忙，同时在下班后尽力远离电脑（为了身心健康:-）。&lt;br /&gt;&lt;br /&gt;最近感兴趣的一些东东:&lt;br /&gt;&lt;br /&gt;技术方面:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.fbreader.org/"&gt;FBReader&lt;/a&gt; 电子书阅读器，可以在很多PDA/手机上用，&lt;a href="http://www.motorolafans.com/forums/development/4439-fbreader-e-book-reader.html"&gt;Motorola版本最近发了0.8.14&lt;/a&gt;(上次能找到的版本还是两年前的0.7.4，这个版本支持chm、支持从压缩文件读取文件，而且操作方面也跟&lt;a href="http://www.ismyway.com/Program/Anyview/"&gt;Anyview&lt;/a&gt;有得一拼了(Anyview还是0.3最好使，后面3.x版本实在不怎样)。另: 国内的论坛真没劲，下载个东西还老要注册)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/8051"&gt;UnMHT&lt;/a&gt;: Firefox扩展，可用于打开/保存mht格式，代替原来的Mozilla Archive Format扩展(这个扩展已经不再维护了)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://freemind.sourceforge.net/"&gt;FreeMind&lt;/a&gt;: 思维导图(mind mapping，类似于鱼骨图，用于整理思路)软件。FreeMind除了使用起来比较方便之外，比较强的是可以生成一个Flash，其他人就可以查看 了。这是采用Java写的开源程序，如果Java对你而言是个问题，网上有很多免费不免费的工具，对于Linux上，可以查看&lt;a href="http://live.gnome.org/MindMapping"&gt;这个网页上&lt;/a&gt;列出的软件&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.aiderss.com/"&gt;AideRSS&lt;/a&gt;: 是不是用了RSS reader订阅了很多新闻，多得你都看没时间看完呢？怎么找出最有价值的东西？AideRSS服务的目标就是给每条新闻提供rank，以便你可以看到哪 些是”最红“的。它还提供了Firefox上对Google Reader的支持，使得可以直接过滤出最有价值的新闻&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-655573957513933520?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/655573957513933520/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=655573957513933520' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/655573957513933520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/655573957513933520'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/07/blog-post.html' title='最近感兴趣的一些东东'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6394374934480469116</id><published>2008-07-23T22:20:00.003+08:00</published><updated>2008-07-23T22:24:55.158+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxpython'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Envisage: 采用Python实现的Eclipse?</title><content type='html'>Eclipse让人不爽的就是体积、速度和插件版本配合。&lt;br /&gt;&lt;br /&gt;以前看NewEdit/Ulipad，发现它的可扩展性也挺强的，它的基本思想就是&lt;a href="http://blog.donews.com/limodou/archive/2005/11/08/619201.aspx"&gt;mixin&lt;/a&gt;, 而看见&lt;a href="http://peppy.flipturn.org/"&gt;Peppy这个继承EMACS思想的编辑器&lt;/a&gt;就更引发我想: 有没有采用Python实现的、类似于Eclipse的项目/平台。&lt;br /&gt;&lt;br /&gt;然后找到&lt;a href="http://code.enthought.com/projects/envisage/"&gt;Envisage&lt;/a&gt;，一个基于python的应用程序框架，关注不同插件的配合与组合，设计思想上参考了Eclipse。界面采用wxPython，也有workspace, perspective, text editor这些东西。&lt;br /&gt;&lt;br /&gt;但Eclipse最大的优势是目前已经深入人心，有相当多各种各样的插件了，这是其它东西暂时（也许永远?）无法比肩的。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://code.enthought.com/projects/img/envisage.gif"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://code.enthought.com/projects/img/envisage.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="" style="display: block;" id="formatbar_Add_Image" title="添加图片" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="addImage();" onmousedown="CheckFormatting(event);;ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6394374934480469116?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6394374934480469116/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6394374934480469116' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6394374934480469116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6394374934480469116'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/07/envisage-pythoneclipse.html' title='Envisage: 采用Python实现的Eclipse?'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8999086664247406377</id><published>2008-04-22T01:40:00.002+08:00</published><updated>2008-04-22T01:44:20.431+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='win32'/><category scheme='http://www.blogger.com/atom/ns#' term='fetion'/><category scheme='http://www.blogger.com/atom/ns#' term='pidgin'/><title type='text'>Pidgin飞信插件win32版本更新到0.98</title><content type='html'>作者gradetwo已经将申请了一个&lt;a href="http://sourceforge.net/projects/fetion"&gt;sourceforge.net项目&lt;/a&gt;,  将飞信插件的代码放到了其上的cvs(&lt;a href="http://www.linuxsir.org/bbs/thread320802.html"&gt;取代码方法)&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;因为宽带到期还没去续，最近上网机会很少(也想逃离颈椎病一阵:-()。&lt;br /&gt;&lt;div id="1flw" class="ArwC7c ckChnd"&gt;&lt;br /&gt;今晚在我妹这边上网，重新编译了更新到了0.98版本，但仍然只有pidg&lt;wbr&gt;in-2.3.1的版本, 因为这些日子我的电脑给被我妹用，结果被她弄得中了木马, 我没法上网下载新版本的代码(就目前这个版本&lt;wbr&gt;也是在安全模式下编译的，然后到另外一台机器上上传:-),  等重装之后吧，不过估计可以在pidgin-2.4上用。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bamanzi.inlsd.org/gnuwin32/pidgin-fetion/fetion-0.98-pidgin-2.3.1-win32.7z" target="_blank"&gt;http://bamanzi.inlsd.org&lt;wbr&gt;/gnuwin32/pidgin-fetion/fetion&lt;wbr&gt;-0.98-pidgin-2.3.1-win32.7z&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8999086664247406377?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8999086664247406377/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8999086664247406377' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8999086664247406377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8999086664247406377'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/04/pidginwin32098.html' title='Pidgin飞信插件win32版本更新到0.98'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4029601709251420392</id><published>2008-03-20T23:25:00.002+08:00</published><updated>2008-03-20T23:38:32.267+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>JavaScript上的闭包(closure): 第二种说法</title><content type='html'>而Martin Fowler&lt;a target="_blank" title="外部链接至 http://martinfowler.com/bliki/Closure.html" href="http://martinfowler.com/bliki/Closure.html" class="externalLink"&gt;对闭包的介绍&lt;/a&gt;却是另外一种解释: 闭包就是一段可作为参数传递的代码。从他提供的示例来看只是个匿名函数，跟嵌套函数没有什么关系，其他人也给出了&lt;a target="_blank" title="外部链接至 http://joe.truemesh.com/blog//000390.html" href="http://joe.truemesh.com/blog//000390.html" class="externalLink"&gt;C#&lt;/a&gt;、&lt;a target="_blank" title="外部链接至 http://ivan.truemesh.com/archives/000392.html" href="http://ivan.truemesh.com/archives/000392.html" class="externalLink"&gt;Python&lt;/a&gt;和&lt;a target="_blank" title="外部链接至 http://nonn-et-twk.net/twk/closure/" href="http://nonn-et-twk.net/twk/closure/" class="externalLink"&gt;JavaScript&lt;/a&gt;上的例子，却跟上面的不一样。&lt;span macro="tiddler ReplaceDoubleClick with: ctrl"&gt;&lt;br /&gt;&lt;div class="viewer" macro="view text wikified"&gt;&lt;div class="syntaxify javascript"&gt;&lt;ol&gt;&lt;li&gt;Array.prototype.select = &lt;span class="keywords"&gt;function&lt;/span&gt;&lt;span class="delimiters1"&gt;(&lt;/span&gt;func&lt;span class="delimiters1"&gt;)&lt;/span&gt;  &lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="delimiters"&gt;{&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;    &lt;span class="keywords"&gt;var&lt;/span&gt; ary = &lt;span class="delimiters2"&gt;[&lt;/span&gt;&lt;span class="delimiters2"&gt;]&lt;/span&gt;;  &lt;/li&gt;&lt;li class="alt"&gt;    &lt;span class="keywords"&gt;for&lt;/span&gt; &lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="keywords"&gt;var&lt;/span&gt; i = &lt;span class="literals2"&gt;0&lt;/span&gt;; i &lt; &lt;span class="keywords"&gt;this&lt;/span&gt;.length; ++i&lt;span class="delimiters1"&gt;)&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;    &lt;span class="delimiters"&gt;{&lt;/span&gt;  &lt;/li&gt;&lt;li class="alt"&gt;        &lt;span class="keywords"&gt;if&lt;/span&gt; &lt;span class="delimiters1"&gt;(&lt;/span&gt;func&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="keywords"&gt;this&lt;/span&gt;&lt;span class="delimiters2"&gt;[&lt;/span&gt;i&lt;span class="delimiters2"&gt;]&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;            ary&lt;span class="delimiters2"&gt;[&lt;/span&gt;ary.length&lt;span class="delimiters2"&gt;]&lt;/span&gt; = &lt;span class="keywords"&gt;this&lt;/span&gt;&lt;span class="delimiters2"&gt;[&lt;/span&gt;i&lt;span class="delimiters2"&gt;]&lt;/span&gt;;  &lt;/li&gt;&lt;li class="alt"&gt;    &lt;span class="delimiters"&gt;}&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;    &lt;span class="keywords"&gt;return&lt;/span&gt; ary;  &lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="delimiters"&gt;}&lt;/span&gt;;  &lt;/li&gt;&lt;li class=""&gt;  &lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="keywords"&gt;function&lt;/span&gt; managers_noclosure&lt;span class="delimiters1"&gt;(&lt;/span&gt;emps&lt;span class="delimiters1"&gt;)&lt;/span&gt; &lt;span class="delimiters"&gt;{&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;    &lt;span class="keywords"&gt;var&lt;/span&gt; result = &lt;span class="delimiters2"&gt;[&lt;/span&gt;&lt;span class="delimiters2"&gt;]&lt;/span&gt;;  &lt;/li&gt;&lt;li class="alt"&gt;    &lt;span class="keywords"&gt;for&lt;/span&gt; &lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="keywords"&gt;var&lt;/span&gt; i = &lt;span class="literals2"&gt;0&lt;/span&gt;; i &lt; class="delimiters1"&gt;)&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;    &lt;span class="delimiters"&gt;{&lt;/span&gt;  &lt;/li&gt;&lt;li class="alt"&gt;        &lt;span class="keywords"&gt;var&lt;/span&gt; e = emps&lt;span class="delimiters2"&gt;[&lt;/span&gt;i&lt;span class="delimiters2"&gt;]&lt;/span&gt;;  &lt;/li&gt;&lt;li class=""&gt;        &lt;span class="keywords"&gt;if&lt;/span&gt; &lt;span class="delimiters1"&gt;(&lt;/span&gt;e.isManager&lt;span class="delimiters1"&gt;)&lt;/span&gt; result&lt;span class="delimiters2"&gt;[&lt;/span&gt;result.length&lt;span class="delimiters2"&gt;]&lt;/span&gt; = e;  &lt;/li&gt;&lt;li class="alt"&gt;    &lt;span class="delimiters"&gt;}&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;    &lt;span class="keywords"&gt;return&lt;/span&gt; result;  &lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="delimiters"&gt;}&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;  &lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="keywords"&gt;function&lt;/span&gt; managers&lt;span class="delimiters1"&gt;(&lt;/span&gt;emps&lt;span class="delimiters1"&gt;)&lt;/span&gt;  &lt;/li&gt;&lt;li class=""&gt;&lt;span class="delimiters"&gt;{&lt;/span&gt;  &lt;/li&gt;&lt;li class="alt"&gt;    &lt;span class="keywords"&gt;return&lt;/span&gt; emps.select&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold;" class="keywords"&gt;function&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;" class="delimiters1"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;e&lt;/span&gt;&lt;span style="font-weight: bold;" class="delimiters1"&gt;)&lt;/span&gt;&lt;span style="font-weight: bold;" class="delimiters"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;" class="keywords"&gt;return&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; e.isManager; &lt;/span&gt;&lt;span style="font-weight: bold;" class="delimiters"&gt;}&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;;  &lt;/li&gt;&lt;li class=""&gt;&lt;span class="delimiters"&gt;}&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;而现在嚷嚷得比较厉害的Java支持也是依照这种概念: &lt;a target="_blank" title="外部链接至 http://www.infoq.com/cn/news/2007/09/catching-up-with-closures" href="http://www.infoq.com/cn/news/2007/09/catching-up-with-closures" class="externalLink"&gt;http://www.infoq.com/cn/news/2007/09/catching-up-with-closures&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;按照这种定义，闭包非常类似于C语言中的函数指针、C++里面的模板函数、Java中的内嵌类，虽然Martin Fowler在他文章里也在说明闭包跟这些概念的不同时提到了运行环境的问题，但似乎没有什么说服力，至少从例子上是看不出来的。&lt;br /&gt;&lt;br /&gt;个人感觉，前面一种说法是正确的，这种说法不大对。虽然Martin Fowler的名气很大。&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4029601709251420392?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4029601709251420392/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4029601709251420392' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4029601709251420392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4029601709251420392'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/03/javascriptclosure_20.html' title='JavaScript上的闭包(closure): 第二种说法'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4791076064792215859</id><published>2008-03-20T23:22:00.000+08:00</published><updated>2008-03-20T23:24:49.900+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>JavaScript上的闭包(closure)</title><content type='html'>&lt;span macro="tiddler ReplaceDoubleClick with: ctrl"&gt;闭包这个概念随着并发、函数式编程的复兴，也热乎了起来。”&lt;a target="_blank" title="外部链接至 http://www.infoq.com/cn/news/2007/09/catching-up-with-closures" href="http://www.infoq.com/cn/news/2007/09/catching-up-with-closures" class="externalLink"&gt;跟上Java闭包（Closure）的步伐&lt;/a&gt;“一文中说：&lt;br /&gt;&lt;blockquote&gt;Mark Jason Dominus在&lt;a target="_blank" title="外部链接至 http://www.theperlreview.com/Interviews/mjd-hop-20050407.html" href="http://www.theperlreview.com/Interviews/mjd-hop-20050407.html" class="externalLink"&gt;Perl概述&lt;/a&gt;中的话语作为开场：在未来的三十年中，人们将会取笑那些发明没有闭包特性的语言的人，如同他们现在正取笑那些发明没有递归这种特性的语言的人是一个道理。&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt; 定义&lt;/li&gt;&lt;/ul&gt;那么这是个啥东西?  Wikipedia上对closure的解释是:&lt;br /&gt;&lt;blockquote&gt; In computer science, a closure is a function that is evaluated in an environment containing one or more bound variables. When called, the function can access these variables. The explicit use of closures is associated with functional programming and with languages such as ML and Lisp. Constructs such as objects in other languages can also be modeled with closures.&lt;br /&gt;&lt;br /&gt;In some languages, a closure may occur when a function is defined within another function, and the inner function refers to local variables of the outer function. At runtime, when the outer function executes, a closure is formed, consisting of the inner function’s code and references to any variables of the outer function required by the closure.&lt;br /&gt;&lt;/blockquote&gt;这个说法比较抽象。还是来看看实际的例子吧。&lt;br /&gt;&lt;ul&gt;&lt;li&gt; 实例说明&lt;/li&gt;&lt;/ul&gt;在&lt;a tiddlylink="JavaScript" refresh="link" class="tiddlyLink tiddlyLinkNonExisting" title="'JavaScript' 尚无内容" href="javascript:;"&gt;JavaScript&lt;/a&gt;中，简单的说法是: &lt;u&gt;In &lt;a tiddlylink="JavaScript" refresh="link" class="tiddlyLink tiddlyLinkNonExisting" title="'JavaScript' 尚无内容" href="javascript:;"&gt;JavaScript&lt;/a&gt;, if you use the function keyword inside another function, you are creating a closure&lt;/u&gt;.(摘自Morris Johns的&lt;a target="_blank" title="外部链接至 http://blog.morrisjohns.com/javascript_closures_for_dummies" href="http://blog.morrisjohns.com/javascript_closures_for_dummies" class="externalLink"&gt;JavaScript Closures for Dummies&lt;/a&gt;, 中文翻译可看这里: &lt;a target="_blank" title="外部链接至 http://javascript.chinahtml.com/2006/javascript-11607091807203.shtml" href="http://javascript.chinahtml.com/2006/javascript-11607091807203.shtml" class="externalLink"&gt;在JavaScript中，什么是闭包&lt;/a&gt;)。&lt;br /&gt;&lt;div class="syntaxify javascript"&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="keywords"&gt;function&lt;/span&gt; sayHello&lt;span class="delimiters1"&gt;(&lt;/span&gt;name&lt;span class="delimiters1"&gt;)&lt;/span&gt; &lt;span class="delimiters"&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;  &lt;span class="keywords"&gt;var&lt;/span&gt; text = &lt;span class="literals"&gt;'Hello '&lt;/span&gt; + name; &lt;span class="singleLineComments"&gt;// local variable&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;  &lt;span class="keywords"&gt;var&lt;/span&gt; sayAlert = &lt;span class="keywords"&gt;function&lt;/span&gt;&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt; &lt;span class="delimiters"&gt;{&lt;/span&gt; alert&lt;span class="delimiters1"&gt;(&lt;/span&gt;text&lt;span class="delimiters1"&gt;)&lt;/span&gt;; &lt;span class="delimiters"&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;  &lt;span class="keywords"&gt;return&lt;/span&gt; sayAlert;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="delimiters"&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="keywords"&gt;var&lt;/span&gt; say = sayHello&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="literals"&gt;'Bob'&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;;&lt;/li&gt;&lt;li class=""&gt;say&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;注 意sayAlert是sayHello的一个嵌套函数，当var say = sayHello('Bob')这行执行完之后，因为say是对内部函数sayAlert的一个引用，所以这个函数对象不会被释放，而sayAlert的 执行环境(execution context)也不会被释放，一个函数与它的数据、执行环境绑在一起，这个sayHello就是一个闭包了。&lt;br /&gt;&lt;br /&gt;这里有好几个概念: 嵌套函数，函数引用，作用域链(scope chain)，执行环境。从目前看见的资料来看，闭包的构成必须有这几个要素。&lt;br /&gt;&lt;ul&gt;&lt;li&gt; 作用&lt;/li&gt;&lt;/ul&gt;这个东西有什么作用呢，先看如下一个例子:&lt;br /&gt;&lt;div class="syntaxify javascript"&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="keywords"&gt;var&lt;/span&gt; f, g; &lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="keywords"&gt;function&lt;/span&gt; foo&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt; &lt;span class="delimiters"&gt;{&lt;/span&gt; &lt;/li&gt;&lt;li class=""&gt;&lt;span class="keywords"&gt;var&lt;/span&gt; x = &lt;span class="literals2"&gt;0&lt;/span&gt;; &lt;/li&gt;&lt;li class="alt"&gt;f = &lt;span class="keywords"&gt;function&lt;/span&gt;&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt; &lt;span class="delimiters"&gt;{&lt;/span&gt; &lt;span class="keywords"&gt;return&lt;/span&gt; ++x; &lt;span class="delimiters"&gt;}&lt;/span&gt;; &lt;/li&gt;&lt;li class=""&gt;g = &lt;span class="keywords"&gt;function&lt;/span&gt;&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt; &lt;span class="delimiters"&gt;{&lt;/span&gt; &lt;span class="keywords"&gt;return&lt;/span&gt; --x; &lt;span class="delimiters"&gt;}&lt;/span&gt;; &lt;/li&gt;&lt;li class="alt"&gt;x = &lt;span class="literals2"&gt;1&lt;/span&gt;; &lt;/li&gt;&lt;li class=""&gt;print&lt;span class="delimiters1"&gt;(&lt;/span&gt;f&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;; &lt;span class="singleLineComments"&gt;// "2" &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="delimiters"&gt;}&lt;/span&gt; &lt;/li&gt;&lt;li class=""&gt;foo&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;; &lt;/li&gt;&lt;li class="alt"&gt;print&lt;span class="delimiters1"&gt;(&lt;/span&gt;g&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;; &lt;span class="singleLineComments"&gt;// "1" &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;print&lt;span class="delimiters1"&gt;(&lt;/span&gt;f&lt;span class="delimiters1"&gt;(&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;&lt;span class="delimiters1"&gt;)&lt;/span&gt;; &lt;span class="singleLineComments"&gt;// "2" &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;两个不同功能、相互独立的函数只能通过全局变量交换数据么(这里说语言本身提供的能力，而不是平台提供的能力)? 上面例子中两个函数都操作了变量x，但x并不是全局变量，但对于其他函数也是不可见的。可见第一个作用是提供另一种手段来供两段程序交换数据，同时保护变 量安全&lt;/li&gt;&lt;li&gt;两个闭包建立之后，只需要根据两个引用就可以调用了，这两个引用相互独立，但又是完全自包含的,——这显然是函数式编程的风格了&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; 链接&lt;ul&gt;&lt;li&gt; &lt;a target="_blank" title="外部链接至 http://anonymouse.org/cgi-bin/anon-www.cgi/http://en.wikipedia.org/wiki/Closure_(computer_science)" href="http://anonymouse.org/cgi-bin/anon-www.cgi/http://en.wikipedia.org/wiki/Closure_%28computer_science%29" class="externalLink"&gt;Wikipedia: Closure&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a target="_blank" title="外部链接至 http://blog.morrisjohns.com/javascript_closures_for_dummies" href="http://blog.morrisjohns.com/javascript_closures_for_dummies" class="externalLink"&gt;JavaScript Closures for Dummies&lt;/a&gt;, 中文翻译: &lt;a target="_blank" title="外部链接至 http://javascript.chinahtml.com/2006/javascript-11607091807203.shtml" href="http://javascript.chinahtml.com/2006/javascript-11607091807203.shtml" class="externalLink"&gt;在JavaScript中，什么是闭包&lt;/a&gt;)&lt;/li&gt;&lt;li&gt; &lt;a target="_blank" title="外部链接至 http://www.jibbering.com/faq/faq_notes/closures.html" href="http://www.jibbering.com/faq/faq_notes/closures.html" class="externalLink"&gt;Javascript Closures&lt;/a&gt;，中文翻译: &lt;a target="_blank" title="外部链接至 http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html" href="http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html" class="externalLink"&gt;理解JavaScript Closure&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a target="_blank" title="外部链接至 http://www.felixwoo.com/article.asp?id=294" href="http://www.felixwoo.com/article.asp?id=294" class="externalLink"&gt;深入理解JavaScript闭包&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a target="_blank" title="外部链接至 http://realazy.org/lab/js/closure.html" href="http://realazy.org/lab/js/closure.html" class="externalLink"&gt;JavaScript闭包讨论的相关例子&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a target="_blank" title="外部链接至 http://wj.cnblogs.com/archive/2006/04/22/381851.html" href="http://wj.cnblogs.com/archive/2006/04/22/381851.html" class="externalLink"&gt;对 "闭包-closure" 的一些见解&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4791076064792215859?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4791076064792215859/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4791076064792215859' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4791076064792215859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4791076064792215859'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/03/javascriptclosure.html' title='JavaScript上的闭包(closure)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5471639176148089223</id><published>2008-03-18T23:06:00.002+08:00</published><updated>2008-03-18T23:39:00.902+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>PyCon 2008总结</title><content type='html'>&lt;a href="http://us.pycon.org/2008"&gt;PyCon 2008&lt;/a&gt;前两天开了, 但国内的Python社区似乎都没有见到什么人关注(至少在&lt;a target="_blank" title="外部链接至 http://blog.woodpecker.org.cn/planet/" href="http://blog.woodpecker.org.cn/planet/" class="externalLink"&gt;CPUG的Planet of Woodpecker.org&lt;/a&gt;上没人提到这个, Google了一下也没有多少中文信息, 倒是台湾的Python社区&lt;a target="_blank" title="外部链接至 http://planet.python.org.tw/planet" href="http://planet.python.org.tw/planet" class="externalLink"&gt;有网友说起&lt;/a&gt;,并且参会了)。&lt;br /&gt;&lt;div class="viewer" macro="view text wikified"&gt;&lt;br /&gt;在&lt;a target="_blank" title="外部链接至 http://planet.python.org" href="http://planet.python.org/" class="externalLink"&gt;Planet Python&lt;/a&gt;上看到一篇&lt;a target="_blank" title="外部链接至 http://nedbatchelder.com/blog/200803/pycon_2008_notes.html" href="http://nedbatchelder.com/blog/200803/pycon_2008_notes.html" class="externalLink"&gt;PyCon 2008 notes&lt;/a&gt;， 详细地说明了一下他参加的几个主题的内容，推荐！&lt;br /&gt;&lt;span macro="tiddler ReplaceDoubleClick with: ctrl"&gt;&lt;ul&gt;&lt;li&gt; Using Python To Teach Object-Oriented Programming in CS1&lt;/li&gt;&lt;li&gt; MPI Cluster Programming with Python and Amazon EC2 &lt;/li&gt;&lt;li&gt; Applying Expert System Technology to Code Reuse with Pyke &lt;/li&gt;&lt;li&gt; Rich UI Webapps with TurboGears 2 and Dojo&lt;/li&gt;&lt;li&gt; State of Django&lt;/li&gt;&lt;li&gt; High performance Network IO with Python + Libevent&lt;/li&gt;&lt;li&gt; Plenary: Twisted announcement: they have a foundation&lt;/li&gt;&lt;li&gt; Plenary: You *can* Fool All of the People All of the Time&lt;/li&gt;&lt;li&gt; Plenary Keynote: Intellectual Property and Open Source&lt;/li&gt;&lt;li&gt; SQLAlchemy 0.4 and Beyond&lt;/li&gt;&lt;li&gt; Managing Complexity (and testing)&lt;/li&gt;&lt;li&gt; Using Grok to Walk Like a Duck&lt;/li&gt;&lt;li&gt; Case Study of Python Application Development &lt;span&gt;—&lt;/span&gt; Humanized Enso&lt;/li&gt;&lt;li&gt; To RE or not to RE &lt;span&gt;—&lt;/span&gt; Parsing text in Python&lt;/li&gt;&lt;li&gt; Plenary: Making Client-Side Python Suck Less&lt;/li&gt;&lt;li&gt; Plenary Keynote: Snake Charming the Dragon: the past, present and future of Python and Mozilla&lt;/li&gt;&lt;li&gt; Plenary: OLPC Update&lt;/li&gt;&lt;li&gt; Consuming HTML&lt;/li&gt;&lt;li&gt; nose: testing for the lazy coder&lt;/li&gt;&lt;li&gt; Introducing Agile Testing Techniques to the OLPC Project&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5471639176148089223?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5471639176148089223/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5471639176148089223' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5471639176148089223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5471639176148089223'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/03/pycon-2008.html' title='PyCon 2008总结'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5344117458910145055</id><published>2008-03-18T23:04:00.002+08:00</published><updated>2008-03-18T23:05:56.953+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Firefox 3上Google Reader无法显示内容的问题: Firebug惹的祸</title><content type='html'>&lt;span macro="tiddler ReplaceDoubleClick with: ctrl"&gt;现象: Firefox 3上访问Google Reader时，只显示顶部的一些链接，那个黄色的"loading"就一直不消失，内容也就出不来&lt;br /&gt;原因: 禁用Firebugs扩展即可&lt;br /&gt;定位方法:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;开始看见"loading"一直在，以为跟Google Mail一样，是网速问题导致内容无法显示出来;&lt;/li&gt;&lt;li&gt;后来逐渐发现Firefox 2上没有问题;&lt;/li&gt;&lt;li&gt;在Google上搜索"Firefox 3 Google Reader"没有什么有效结果，看来不是使用Firefox 3的人都有这问题&lt;/li&gt;&lt;li&gt;试验Firefox的"安全模式"，正常了，看来是扩展的问题&lt;/li&gt;&lt;li&gt; 对扩展使用折半定位: 先禁用一半扩展，重启Fx，看是否有问题，有问题则将被禁用的扩展缩小一半再试，没问题就将未被禁用的扩展减少一般再试。这样我的20多个扩展，只要5次就可以定位出来了：是Firebug!&lt;/li&gt;&lt;li&gt;禁用Firebug扩展, 好了&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;另外，家里的机器上用Firefox 3访问Google Reader就崩溃，不知道为啥，从beta 2到beta 4一直有这个问题（每出一个beta版本我都会试一下)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5344117458910145055?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5344117458910145055/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5344117458910145055' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5344117458910145055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5344117458910145055'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/03/firefox-3google-reader-firebug.html' title='Firefox 3上Google Reader无法显示内容的问题: Firebug惹的祸'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5321367579226691454</id><published>2008-03-18T23:03:00.000+08:00</published><updated>2008-03-18T23:04:10.786+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wiki'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='tiddlywiki'/><title type='text'>采用TiddlyWiki搭建blog</title><content type='html'>&lt;span macro="tiddler ReplaceDoubleClick with: ctrl"&gt;&lt;span&gt;前几日一直在琢磨把俺的Blog迁移到这个玩意儿上来，好处在于: &lt;ul&gt;&lt;li&gt;所有文章都在一个网页内, 几百篇文章加起来也没有多大，而且要分多页也很简单 &lt;/li&gt;&lt;li&gt;这一个网页可以既是最终发布的地方，也是编撰系统 &lt;/li&gt;&lt;li&gt;随便找个能上传网页的地方就可以搭建blog了，万一都没有，在http://www.tiddlyspot.com上申请一个账户也行 &lt;/li&gt;&lt;li&gt;丰富的插件，自己想怎么玩就怎么玩 &lt;/li&gt;&lt;/ul&gt; 我试验了一下，基本上满意，诸位可以看看初步效果&lt;a href="http://bamanzi.tiddlyspot.com/"&gt;http://bamanzi.tiddlyspot.com/&lt;/a&gt;。只是目前没有时间将一篇篇贴过来觉得麻烦，懒得动了。&lt;p&gt;  如果将TiddlyWiki改造成更适合blog的系统，我的一些心得如下:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;用&lt;a href="http://ptw.sf.net/"&gt;RecentTiddlersPlugin&lt;/a&gt;或者&lt;a href="http://tiddlystyles.com/"&gt;WeblogPlugin&lt;/a&gt;自动在页面打开时显示最近的文章&lt;/li&gt;&lt;li&gt;采用&lt;a href="http://15black.bluedepot.com/twtests/tagcloud.htm"&gt;TagCloudPlugin&lt;/a&gt;插件，在MainMenu中添加一个"标签云"&lt;/li&gt;&lt;li&gt;TW原本的风格是双击帖子就进入编辑模式，如果你觉得这样不适合于blog系统，可以在选项中将页面设置为网上只读模式，或者采用&lt;a href="http://www.tiddlytools.com/#ReplaceDoubleClick"&gt;ReplaceDoubleClick&lt;/a&gt;将双击功能改造一下 &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tiddlytools.com/#CommentScript"&gt;CommentScript&lt;/a&gt;能增加留言功能&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;另外下面这几个插件虽跟blog关系不大，也是应该有的: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;从&lt;a href="http://svn.tiddlywiki.org/Trunk/association/locales/core/zh-Hans/locale.zh-Hans.js"&gt;这里&lt;/a&gt;取得最新的中文翻译，将其作为插件加入，保存后再打开就会变成中文界面了 &lt;/li&gt;&lt;li&gt;添加&lt;a href="http://www.tiddlytools.com/#GotoPlugin"&gt;GotoPlugin&lt;/a&gt;或者&lt;a href="http://www.tiddlytools.com/#SearchOptionsPlugin"&gt;SearchOptionsPlugin&lt;/a&gt;，替代原来的搜索功能（原来的搜索会自动打开匹配结果，即使你在只输入了两个字符之后就停顿了一下...) &lt;/li&gt;&lt;li&gt;添加&lt;a href="http://tw.lewcid.org/#FullScreenPlugin"&gt;FullScreenPlugin&lt;/a&gt;或者&lt;a href="http://www.tiddlytools.com/#ToggleLeftSidebar"&gt;ToggleLeftSideBar&lt;/a&gt;这类插件(后者其实不是插件，而是借助InlineJavascriptPlugin实现功能的脚本)，使得用户可以将文章最大化；添加&lt;a href="http://gensoft.revhost.net/Collapse.html"&gt;CollapseTiddlerPlugin&lt;/a&gt;或者[FoldHeadingPlugin|http://www.tiddlytools.com/#FoldHeadingsPlugin]] 使得用户可以将文章最小化(可以将帖子折叠起来，只显示标题)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt; 前面说的是对最终页面呈现有用的插件，但还需要东西来帮助我们撰写文章: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://aiddlywiki.sourceforge.net/wikibar_demo_2.html"&gt;WikiBarPlugin&lt;/a&gt;可以在编辑文章时显示一个工具条(不过IE对CSS支持太差，工具条的下拉菜单显示不出来)，免得你记不住那么多wiki语法(不同的wiki语法还不一样:-()——当然，宏还是应该记熟悉的&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tiddlytools.com/"&gt;tiddlytools&lt;/a&gt;提供的QuickEditPackage也可以提供WikiBar那样的工具条，但我还没搞明白怎么挪用过来:-(&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tiddlytools.com/#TiddlerTweakerPlugin"&gt;TiddlerTweakerPlugin&lt;/a&gt;会允许你自行修改每个tiddler的作者、创建时间、修改时间，如果你想迁移你的blog系统肯定用得上 &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;但这几个插件体积都比较大，直接加到你的TW中会导致最后的HTML比较大，加载太慢，而放在网页上对阅读blog的朋友又没有什么作用，这就可以采用将这些插件用外部文件的方式来加载了，&lt;a href="http://ptw.sourceforge.net/ptwe.html"&gt;LoadExtPlugin&lt;/a&gt;就是干这个的（该网站还提供了一个不小的主题包)。 &lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5321367579226691454?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5321367579226691454/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5321367579226691454' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5321367579226691454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5321367579226691454'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/03/tiddlywikiblog.html' title='采用TiddlyWiki搭建blog'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3880930233074756083</id><published>2008-03-06T23:19:00.004+08:00</published><updated>2008-03-18T23:03:18.323+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='tiddlywiki'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>TiddlyWiki: 单网页的Wiki, GTD或者blog系统</title><content type='html'>这几日迷上了&lt;a href="http://www.tiddlywiki.com/"&gt;TiddlyWiki&lt;/a&gt;这个东西, 仅仅一个网页, 却将JavaScript,CSS和DOM的功能发挥到了极致。当年看见Gmail的时候惊叹网页上的东西也可以做得这样易用，而到了TiddlyWiki这里发现Gmail也不算啥了。&lt;br /&gt;&lt;br /&gt;简单地说，从名字上可以看出，它具有一些wiki的功能，但它自带条目(它管这叫做tiddler)的管理，点击名称时时显示内容到中间区域——其实这就是一个简单的笔记软件了，并且不用安装任何其他的软件，我以前都用&lt;a href="http://notecase.sourceforge.net/"&gt;notecase&lt;/a&gt;来记录一些琐碎的东西，但现在用不着了。&lt;br /&gt;&lt;br /&gt;如果只是这样，还不算什么，但它还有宏、&lt;a href="http://tiddlythemes.com/"&gt;主题&lt;/a&gt;、导入、导出等等功能。更强的是跟Firefox, Eclipse这样的东西类似，有一个很好的扩展机制，结果是有太多的插件使得我们可以把它做成一个GTD系统或者blog系统，&lt;a href="http://www.socio-kybernetics.net/saurierduval/2005/07/tiddlywiki-mania.html"&gt;Blog before you Think&lt;/a&gt;这篇文章就介绍了各种变体。&lt;br /&gt;&lt;br /&gt;唯一的限制在于这些编辑只能在本地文件上做，网页自身没有机制将内容提交到服务器上去。不过也有网站提供TiddlyWiki服务(&lt;a href="http://www.tiddlyspot.com/"&gt;http://www.tiddlyspot.com&lt;/a&gt;)，使得可以将服务保存到服务器，甚至下载到本地，修改完成后再点击网页上一个链接就上传了。&lt;br /&gt;&lt;br /&gt;前几日一直在琢磨把俺的Blog迁移到这个玩意儿上来，反正几百篇文章加起来也没有多大。只是一篇篇贴过来觉得麻烦，懒了。诸位可以看看初步效果&lt;a href="http://bamanzi.tiddlyspot.com/"&gt;http://bamanzi.tiddlyspot.com/&lt;/a&gt;。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;指导&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.tiddlywiki.cn/"&gt;TiddlyWiki入门&lt;/a&gt; (中文)&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" title="外部链接至 http://www.blogjones.com/TiddlyWikiTutorial.html" href="http://www.blogjones.com/TiddlyWikiTutorial.html" class="externalLink"&gt;TiddlyWikiTutorial&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a target="_blank" title="外部链接至 http://tiddlywikitips.com/" href="http://tiddlywikitips.com/" class="externalLink"&gt;TiddlyWiki Tips&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" title="外部链接至 http://web.nlhs.tyc.edu.tw/~lss/wiki/TiddlyWikiTutorialTW.html" href="http://web.nlhs.tyc.edu.tw/%7Elss/wiki/TiddlyWikiTutorialTW.html" class="externalLink"&gt;TiddlyWiki 使用教学繁体中文&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://twhelp.tiddlyspot.com/"&gt;TWHelp&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;社区&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a target="_blank" title="外部链接至 http://groups-beta.google.com/group/TiddlyWiki" href="http://groups-beta.google.com/group/TiddlyWiki" class="externalLink"&gt;Google 一般使用讨论组〔英〕&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" title="外部链接至 http://groups-beta.google.com/group/TiddlyWikiDev" href="http://groups-beta.google.com/group/TiddlyWikiDev" class="externalLink"&gt;Google 开发者讨论组〔英〕&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" title="外部链接至 http://groups.google.com/group/TiddlyWiki-zh/" href="http://groups.google.com/group/TiddlyWiki-zh/" class="externalLink"&gt;Google 华语支持论坛&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tiddlyspot.com"&gt;TiddlySpot&lt;/a&gt;, 提供TiddlyWiki存放服务&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;一些资源(宏/插件/主题)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.tiddlytools.com/"&gt;TiddlyTools&lt;/a&gt;  (那是相当的强啊, 一定要看)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" title="外部链接至 http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm" href="http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm" class="externalLink"&gt;TiddlyWikiExtensions - by AlanHecht&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" title="外部链接至 http://homes.jcu.edu.au/~ccscb/mptw/" href="http://homes.jcu.edu.au/%7Eccscb/mptw/" class="externalLink"&gt;MonkeyPirateTiddlyWiki - simon baird's tiddlywiki hacks&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3880930233074756083?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3880930233074756083/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3880930233074756083' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3880930233074756083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3880930233074756083'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/03/tiddlywiki-wiki-gtdblog.html' title='TiddlyWiki: 单网页的Wiki, GTD或者blog系统'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4375669411786183158</id><published>2008-02-25T22:56:00.000+08:00</published><updated>2008-02-25T22:57:22.309+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>小看了Lua</title><content type='html'>虽然我一直对于脚本语言比较偏爱，但也一直没把&lt;a href="http://www.lua.org/"&gt;Lua&lt;/a&gt;看上眼，认为它功能太弱了，只能“螺蛳壳里做道场”；而喜欢这个东西的似乎也都是搞C++的那些喜欢研究语言技巧的人。&lt;br /&gt;&lt;br /&gt;但今天无意翻了一些&lt;a href="http://wxlua.sourceforge.net/"&gt;wxLua&lt;/a&gt;，对这个东西有了兴趣，然后又顺便看了一些Lua本身，发现这个东西以前还真没意识到它的价值。&lt;br /&gt;&lt;br /&gt;先拿wxLua来说，wxWidgets有不少脚本语言的binding，从wxPython, wxRuby到&lt;a href="http://wxjs.sourceforge.net/"&gt;wxJS&lt;/a&gt;, 其实差别都不是特别大，但wxLua有些不同，至少它在使用模式上很适合于这样一种情况：快速开发一些小的程序（其它方面我还没来得及考虑，暂且不提）。&lt;br /&gt;&lt;br /&gt;一 方面，适合这种情况的东西很少: 虽然可以用wxPython快速开发，但对于做一个程序来说，发布起来比较麻烦（py2exe还是有些够折腾的）；Visual Basic和Delphi这类工具，可以快速开发，发布程序也方便(抛开VB程序采用的ActiveX库不谈)，但它们是商业软件，同时又是庞然大物。所 以我看见一些同事用Excel的VBA来开发一些简单程序，也有比较geek的人学习&lt;a href="http://www.autoitscript.com/autoit3/"&gt;AutoIt&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;另 一方面，wxLua自己也做得很适合这个。从规模上而言，wxJS比wxLua大不了多少，但wxLua将脚本解释器、wxWidgets对象全都做到了 一个可执行程序中，不需要任何动态库；它还提供了一个wxLuaFreeze工具，可以将Lua脚本跟这个解释器绑定到一个文件，用法相当简单，并且还可 以采用&lt;a href="http://upx.sourceforge.net/"&gt;UPX&lt;/a&gt;这类工具对最终程序进行“透明”压缩。&lt;br /&gt;&lt;br /&gt;这样来看，lua算是一个非常好的胶水语言(glue language), 在表现上可以嵌入在程序中完全隐形，同时带给程序的累赘也少（至少我们的产品目前采用&lt;a href="http://msdn.microsoft.com/scripting/"&gt;Active Scripting&lt;/a&gt;就必须得将可脚本化的对象包装成COM对象，这个工作量可大了去了）。&lt;br /&gt;&lt;br /&gt;不过，“五行拳”（&lt;a href="http://203.208.37.104/search?q=cache:StJndPx8rq4J:forums.hipihi.com/upload/0/80/20080120/File_ff808081178d4e59011797e4b826355c_1200847999033.doc+Programming+Lua+%E8%A2%81%E6%89%BF%E5%BF%97&amp;amp;hl=zh-CN&amp;amp;ct=clnk&amp;amp;cd=6&amp;amp;gl=cn&amp;amp;st_usg=ALhdy2_NRH2k90sJmJZOIBZvl5Nx1H_O_g"&gt;Programming in Lua中文翻译版&lt;/a&gt;中引用了一段金庸《碧血剑》里的文字，意在比喻“极寻常的拳术"，只要练习得好了，”每一招均是含劲不吐，意在拳先，举手抬足之间隐含极浑厚的内力”）也有一点点不爽，比如我现在想在wxLua的脚本代码中操纵COM对象，就得仔细琢磨怎么将&lt;a href="http://www.tecgraf.puc-rio.br/%7Ercerq/luacom/"&gt;LuaCOM&lt;/a&gt;的代码合进来才行，回头要另外一个功能又要合代码，这种情况可能还不如py2exe方便了(不过还没琢磨过Lua的代码，不知道何如这些特性简单不）——但“需要什么才加什么”这种方式也挺不错的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4375669411786183158?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4375669411786183158/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4375669411786183158' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4375669411786183158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4375669411786183158'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/02/lua.html' title='小看了Lua'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1627249789086816342</id><published>2008-02-09T00:12:00.000+08:00</published><updated>2008-02-09T01:26:29.373+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>wxWidgets和MFC混合编程</title><content type='html'>很多文章都讲到了将MFC程序迁移到wxWidgets上(首先要读的也许是IBM developerWorks上这篇 &lt;a href="http://www.ibm.com/developerworks/cn/linux/guitoolkit/l-mfc/"&gt;将MFC应用程序移植到Linux&lt;/a&gt;)，但对于一个比较大的程序，要一下子完成移植也显得有些艰巨。所以我在琢磨有没有可能在一个程序中同时使用这两种技术（同时我看中了wxWidgets上使用wxPython时给应用程序带来的可扩展性，有兴趣的可以查看wxPython中的这个embed示例）。&lt;br /&gt;&lt;br /&gt;wxWidgets的代码库中倒是有&lt;a href="http://svn.wxwidgets.org/viewvc/wx/wxWidgets/trunk/samples/mfc/"&gt;一个wx和MFC混合的例子&lt;/a&gt;(发布出来的2.6的代码包里面好像没有，2.8才有)，它演示了如何在一个程序中分别有wx和MFC的窗口(分属于wxFrame和CFrameWnd类)。&lt;br /&gt;&lt;br /&gt;但它没有解答的问题是：&lt;span style="font-weight: bold;"&gt;怎样将一个wx的控件放到MFC上面去，或者反过来&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;在这个例子中，如果你想将wx的窗口作为应用程序开始时显示的窗口，就需要这个:  &lt;pre&gt;&lt;pre&gt;   m_pMainWnd = &lt;b&gt;&lt;span style="color:#a020f0;"&gt;new&lt;/span&gt;&lt;/b&gt; CDummyWindow((HWND) wxTheApp-&gt;GetTopWindow()-&gt;GetHWND());&lt;/pre&gt;&lt;/pre&gt; 如果你了解MFC对窗口的封装，就知道它基本没有自己的东西，CWnd这些类基本上没有自己的数据成员，基本上都是调用Windows API（只是把那些API中的HWND参数给省略了。所以任何一个Windows桌面上的窗口，要体现为一个CWnd类对象是很容易的，只需要调用CWnd::FromHwnd()或者CWnd::Attach()就可以了，示例中的CDummyWindow就是这样做的。基于这样的思路，我们很容易把其它的wx控件通过CDummyWindow放到MFC控件中去。&lt;br /&gt;        wxTreeCtrl * wxtree = new wxTreeCtrl(.....)&lt;br /&gt;        CDummyWindow *dummy = new CDummyWindow((HWND)wxtree-&gt;GetHWND());&lt;br /&gt;        dummy-&gt;SetParent(this);&lt;br /&gt;               &lt;br /&gt;我们需要其实不要CDummyWindow也没有问题，只要这样:&lt;br /&gt;        wxTreeCtrl * wxtree = new wxTreeCtrl(....)&lt;br /&gt;         ::SetParent(HWND)wxtree-&gt;GetHWND(), m_hWnd);&lt;br /&gt;&lt;pre&gt;&lt;pre&gt;但这里有另外一个问题: &lt;span style="font-family: Georgia,serif;"&gt;&lt;/span&gt;创建一个wxWindow对象时是必须给出一个parent的，而这个parent又必&lt;br /&gt;必须是wxWindow类型（除非为NULL)。&lt;br /&gt;&lt;br /&gt;反过来要将MFC的东西放到wx上面就可以那么好运了，虽然也可以用上面这一招将MFC的控件显示出来，&lt;br /&gt;但这些控件低于wx来说是透明的，你没法利用到wxSplitterWindow的分割功能，没法利用上各种layout manager/sizer。&lt;br /&gt;&lt;br /&gt;在&lt;a href="http://www.wxwidgets.org/wiki/index.php/WxWidgets_For_MFC_Programmers"&gt;wxWidgets For MFC Programmers&lt;/a&gt;(from &lt;a href="http://www.wxwidgets.org/wiki/"&gt;wxWidgets Wiki&lt;/a&gt;)中讲述了如何将一个CWnd转换为wxWindow对象:&lt;br /&gt;&lt;br /&gt; wxWindow * win = new wxWindow();&lt;br /&gt; win-&gt;SetHWND((WXHWND)hWnd);&lt;br /&gt; win-&gt;AdoptAttributesFromHWND();&lt;br /&gt; win-&gt;Reparent(wxGetApp().GetTopWindow());&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1627249789086816342?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1627249789086816342/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1627249789086816342' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1627249789086816342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1627249789086816342'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/02/wxwidgetsmfc.html' title='wxWidgets和MFC混合编程'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1533382896994772133</id><published>2008-02-08T15:05:00.001+08:00</published><updated>2008-09-14T12:48:28.738+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>终于将blog迁移完成了</title><content type='html'>从去年初开始将blog迁移到Blogger上，直到今天，才算终于完成了。&lt;br /&gt;&lt;br /&gt;我原来的blog在&lt;a href="http://www.linuxeden.com/"&gt;Linux伊甸园&lt;/a&gt;上（&lt;a href="http://blog.linuxeden.com/?110848"&gt;巴蛮子的新破茅屋&lt;/a&gt;)，开始有迁移的想法是在去年初，主要的原因是Linux伊甸园提供的Blog服务经常当机，并且每次出了故障之后，总会有一些文章丢失（这几个月陆续按以前的一些本地“备份”来重新发帖，才发现差不多丢了1/3)。&lt;br /&gt;&lt;br /&gt;但一直也不直到迁移到哪里去好，试过blogbus, CSDN, chinaunix，最后基本上觉得Blogger功能上比较适合我这Blog的风格，而且Blogger提供的版面编辑功能还是挺好使的。&lt;br /&gt;&lt;br /&gt;但中间又犹豫、反复，一方面因为国内常常无法访问blogspot.com，另一方面otto老大又热情地邀请我回去，我也在试用linuxeden&lt;br /&gt;&lt;br /&gt;但最终Blogger的"自定义发布位置"这一功能让我觉得还是采用Blogger了：我可以在其它地方申请一个网站，然后采用ftp/sftp发布方式，将所有文章发布到这里（目前的镜像是 &lt;a href="http://bamanzi.inlsd.org/blog"&gt;http://bamanzi.inlsd.org/blog&lt;/a&gt; )，这样一方面可以解决blogspot.com无法访问的问题，另一方面我可以通过ftp将所有文章备份下来。&lt;br /&gt;&lt;br /&gt;不过搬迁过来，文章不会在其它地方出现，访问的人也少了。反正这一年我写得也少了，凑合着过吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1533382896994772133?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1533382896994772133/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1533382896994772133' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1533382896994772133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1533382896994772133'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/02/blog.html' title='终于将blog迁移完成了'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7756485939465707327</id><published>2008-01-29T23:22:00.001+08:00</published><updated>2008-10-05T20:04:05.195+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='chm'/><category scheme='http://www.blogger.com/atom/ns#' term='the.x.files'/><category scheme='http://www.blogger.com/atom/ns#' term='sci.fi'/><title type='text'>《X档案》和《老友记》剧本CHM</title><content type='html'>在box.net上申请了一个账号，将《X档案》和《老友记》剧本CHM传了上去。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://public.box.net/bamanzi"&gt;http://public.box.net/bamanzi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;这个账号本来是为了上传&lt;a href="http://amb.vis.ne.jp/mozilla/scrapbook/"&gt;ScrapBook&lt;/a&gt;中保存的文摘才申请的——我在ScrapBook的网站上看见了&lt;a href="http://amb.vis.ne.jp/mozilla/scrapbook/addons.php?lang=en"&gt;ScrapBox.net&lt;/a&gt;这个扩展的扩展。&lt;br /&gt;&lt;br /&gt;网页速度有点慢，但上传、下载还不是太差。&lt;br /&gt;&lt;br /&gt;以后一些非技术的东西或者体积比较大点的东西就传到这里吧。技术方面的东西还是在 &lt;a href="http://bamanzi.inlsd.org/"&gt;http://bamanzi.inlsd.org &lt;/a&gt;上&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7756485939465707327?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7756485939465707327/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7756485939465707327' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7756485939465707327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7756485939465707327'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/01/xchm.html' title='《X档案》和《老友记》剧本CHM'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6439858967310630261</id><published>2008-01-24T23:20:00.001+08:00</published><updated>2008-01-28T23:39:31.734+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pidgin'/><category scheme='http://www.blogger.com/atom/ns#' term='msn'/><title type='text'>pidgin: 让MSN支持发送自定义表情的补丁(附win32版本)</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; 在Planet Debian TW上看见的Jesse&lt;a href="http://people.debian.org.tw/%7Ejesse/blog/2008/01/18/pidgin-231-2-with-msnp14-enabled-for-debian-sid-again/"&gt;提供了一个pidgin补丁版本(Debian sid)&lt;/a&gt;, 其中MSN协议可以发送自定义表情图标了(原来只能接收)，补丁来自&lt;a href="http://developer.pidgin.im/ticket/1187"&gt;http://developer.pidgin.im/ticket/1187&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;向他询问了一下之后，我编译了一个win32版本:&lt;br /&gt;&lt;a target="_blank" href="http://bamanzi.inlsd.org/gnuwin32/pidgin-msn-send-emoticons-2.3.1-win32.tar.bz2"&gt;http://bamanzi.inlsd.org/gnuwin32/pi...-win32.tar.bz2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;需要先安装官方的2.3.1&lt;br /&gt;&lt;br /&gt;先在主窗口"工具- Smiley"里面配置自定义表情，然后(目前好像得先重启pidgin)就可以在MSN的聊天窗口里使用这些表情了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6439858967310630261?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6439858967310630261/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6439858967310630261' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6439858967310630261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6439858967310630261'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/01/pidgin-msnwin32.html' title='pidgin: 让MSN支持发送自定义表情的补丁(附win32版本)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5536464346505536425</id><published>2008-01-17T11:22:00.000+08:00</published><updated>2008-01-17T00:49:49.754+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='win32'/><category scheme='http://www.blogger.com/atom/ns#' term='pidgin'/><category scheme='http://www.blogger.com/atom/ns#' term='im'/><title type='text'>pidgin飞信插件的win32版本</title><content type='html'>感谢&lt;a href="http://www.donews.net/gradetwo"&gt;gradetwo&lt;/a&gt;昨天&lt;a href="http://www.linuxsir.org/bbs/thread320802.html"&gt;放出了&lt;/a&gt;pidgin上飞信插件的源代码，俺今晚有空，编译了一个win32版本。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bamanzi.inlsd.org/gnuwin32/pidgin-fetion/pidgin-fetion-0.96-win32.tar.bz2"&gt;pidgin-fetion-0.96-win32.tar.bz2&lt;/a&gt;&lt;br /&gt;(可用于pidgin-2.3.1，解压后将libfetion.dll放到x:\Program Files\Pidgin\plugins\下，重启pidgin即可)&lt;br /&gt;&lt;br /&gt;代码只需要做一点小修改: &lt;a href="http://bamanzi.inlsd.org/gnuwin32/pidgin-fetion/fetion-0.96-win32.patch"&gt;fetion-0.96-win32.patch&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://bamanzi.inlsd.org/gnuwin32/pidgin-fetion/fetion-win32.gif" alt="" border="0" /&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;编译方法:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;先按pidgin网站的&lt;a href="http://gaim.sourceforge.net/win32/build.php"&gt;win32版本编译 说明&lt;/a&gt;编译pidgin. 注意以下几点:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;并不一定需要安装cygwin，cygwin安装起来比较麻烦。其实可以从&lt;a href="http://sourceforge.net/projects/tcl/"&gt;tcl网站&lt;/a&gt;下载一个msys + mingw就可以了；&lt;/li&gt;&lt;li&gt;主要&lt;span style="font-family: monospace;"&gt;w32api&lt;/span&gt;版本要在3.9以上。老版本在编译&lt;span style="font-family: monospace;"&gt;pidgin\win32\gtkdocklet-win32.c&lt;/span&gt;时会报告BITMAPV5HEADER没有定义；&lt;/li&gt;&lt;li&gt;如果没有安装&lt;span style="font-family: monospace;"&gt;perl&lt;/span&gt;和&lt;span style="font-family: monospace;"&gt;tcl&lt;/span&gt;，不一定要按网站上说的那样去下载安装，直接修改&lt;span style="font-family: monospace;"&gt;libpurple\\plugins\Makefile.mingw&lt;/span&gt;和&lt;span style="font-family: monospace;"&gt;pidgin\plugins\Makefile.mingw&lt;/span&gt;，注释掉相关行就行了&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;在libpurple下解压fetion-0.96的源代码（即存在pidgin-2.3.1/libpurple/fetion目录)&lt;/li&gt;&lt;li&gt;打上补丁&lt;a href="file:///E:/homepage/bamanzi.inlsd.org/gnuwin32/pidgin-fetion/fetion-0.96-win32.patch"&gt;fetion-0.96-win32.patch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;执行&lt;span style="font-family: monospace;"&gt;make -f Makefile.mingw&lt;/span&gt;，编译得到libfetion.dll&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5536464346505536425?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5536464346505536425/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5536464346505536425' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5536464346505536425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5536464346505536425'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/01/pidginwin32.html' title='pidgin飞信插件的win32版本'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8927269498736446268</id><published>2008-01-12T11:34:00.000+08:00</published><updated>2008-01-15T23:21:56.438+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='pidgin'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='im'/><title type='text'>多媒体和即时通讯方面的几个新玩意</title><content type='html'>&lt;dl&gt;&lt;dt&gt;这几天发现了多媒体和即时通讯（这两类也算网民们用电脑最普遍的用途吧）方面的几个新玩意:&lt;/dt&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://gmlive.googlecode.com/"&gt;网络电视GMLive&lt;/a&gt;  (&lt;a href="http://photo14.yupoo.com/20080103/204516_1006507012_ypuujqjf.jpg"&gt;图&lt;/a&gt;，&lt;a href="http://cyclone.blog.ubuntu.org.cn/"&gt;开发团队blog&lt;/a&gt;，&lt;a href="http://cyclone.blog.ubuntu.org.cn/2007/12/13/gmlive-011-release/"&gt;使用说明&lt;/a&gt;)&lt;/dt&gt;&lt;dd&gt;目前支持MMS, sopcast, nslive等几种流媒体，UI还比较简单&lt;/dd&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dt&gt;网络视频nslive  (&lt;a href="http://linuxtoy.org/archives/nslive.html"&gt;LinuxToy上的介绍&lt;/a&gt;，&lt;a href="http://linuxtoy.org/img/2007/11/nslive-thumb.png"&gt;图&lt;/a&gt;， &lt;a href="http://andycl98.blog.163.com/"&gt;作者的Blog&lt;/a&gt;,  &lt;a href="http://www.newseetv.com/install.html"&gt;安装方法说明&lt;/a&gt;)&lt;/dt&gt;&lt;dd&gt;上面提到过的一种流媒体。支持可用性上做的不太好，那个安装说明也够难找的。&lt;/dd&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://labs.adobe.com/technologies/flashplayer9/"&gt;Flash Player 9.0&lt;/a&gt; (&lt;a href="http://www.debian-multimedia.org/pool/main/f/flash-player/"&gt;Debian包&lt;/a&gt;)&lt;/dt&gt;&lt;dd&gt;新版本支持Linux下的全屏了（并且支持硬件缩放hardware scaling）&lt;/dd&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://audacious-media-player.org/"&gt;Audacious&lt;/a&gt; &lt;/dt&gt;&lt;dd&gt;喜欢Winamp/XMMS的可以用这个了( XMMS -&gt; BMP -&gt; Audacious，功能界面都差不多，都可以用winamp的skin；BMPx和&lt;a href="http://wiki.xmms2.xmms.se/"&gt;XMMS2&lt;/a&gt;却是另外一条路了）。至于功能方面，id3 tag的乱码还是避免不了的，除非自己改代码；另外我现在看重网络音频的支持了（比如电台或者&lt;a href="http://last.fm/"&gt;last.fm&lt;/a&gt;），很多时候懒得自己去下载mp3文件。&lt;/dd&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dt&gt;&lt;a href="http://www.linuxsir.org/bbs/thread320802.html"&gt;飞信的pigdin插件&lt;/a&gt;  (可以放到$HOME/.purple/plugins/或者/usr/lib/purple-2)&lt;/dt&gt;&lt;dd&gt;当然是第三方开发的。目前有基本功能：对聊或者发短信。最近几天作者&lt;a href="http://www.donews.net/gradetwo"&gt;gradetwo&lt;/a&gt;改 进很频繁，代码还没有放出来。我已经迫不及待要编译win32版本了：在Windows上时如果MSN、QQ、Google Talk、飞信、V网伴侣这些都打开，机器都没法玩了。也不知道现在这些软件怎么搞的，为了界面漂亮一点点，都要拼图片来做，搞得这些软件好用内存相当严 重。还是用pidgin一统天下好。&lt;/dd&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://code.google.com/p/musictracker/"&gt;MusicTracker&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;&lt;i&gt;A Pidgin 'now playing' plugin to advertise the songs you are listening to in your status message.&lt;/i&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dt&gt;MSN客户端&lt;a href="http://www.kmess.org/"&gt;KMess&lt;/a&gt;发布&lt;a href="http://www.kmess.org/news/"&gt;1.5正式版本&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;经过两个pre版本后，KMess终于发布了1.5正式版本，主要解决了文件传输过慢问题，新增了对用户自定义表情图片(emoticons)的发送支持。&lt;/dd&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8927269498736446268?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8927269498736446268/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8927269498736446268' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8927269498736446268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8927269498736446268'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/01/blog-post_12.html' title='多媒体和即时通讯方面的几个新玩意'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6695700631055882396</id><published>2008-01-09T11:25:00.001+08:00</published><updated>2008-09-23T21:01:37.680+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='CLI'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>做了一次系统升级</title><content type='html'>节前在&lt;a href="http://debaday.debian.net/"&gt;Debian Package of the Day&lt;/a&gt;上看到&lt;a href="http://debaday.debian.net/2007/11/11/debfoster-remove-a-package-and-its-dependencies/"&gt;debfoster的介绍&lt;/a&gt;，说是比&lt;a href="http://packages.debian.org/deborphan"&gt;deborphan&lt;/a&gt;可以更进一步清理系统不必要的包，就拉下来玩玩，没想到用它删了一些包之后，使用GNOME时系统老是僵死，除了鼠标箭头，其它啥反应没有（包括Ctl-Alt-Backspace)，只能按电源键。&lt;br /&gt;&lt;br /&gt;折腾了几日不见起色，干脆就apt-get dist-upgrade再apt-get upgrade了，反正有近半年没做大面积更新了。这次下载了1000多个包，530多M，可折腾了些时间。&lt;br /&gt;&lt;br /&gt;结果如下:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;当然，系统不死机了;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;GNOME升级到了2.20，没留意到什么大的变化，倒是首选项精简了许多。另外&lt;a href="http://dev.inlsd.org/projects/lunar-applet"&gt;lunar-applet&lt;/a&gt;不能用了，回头重新编译一下试试;&lt;/li&gt;&lt;li&gt;totem-gstreamer和totem-xine现在可以同时安装了，依靠Debian alternatives连接到/usr/bin/totem (不过我还是不知道gstreamer版本有什么优点，它好像很多格式都不支持）&lt;br /&gt;&lt;/li&gt;&lt;li&gt;一直在用的小企鹅(fcitx)不好使了，输入条开始可看到，但一开始敲字符就死了。只得切换到scim去;&lt;/li&gt;&lt;li&gt;装了个以前在cygwin下试玩过的&lt;a href="http://tilda.sourceforge.net/"&gt;tilda&lt;/a&gt;，感觉用热键呼出比切换到Gnome Terminal方便&lt;br /&gt;&lt;/li&gt;&lt;li&gt;顺便从&lt;a href="http://www.debian-multimedia.org/"&gt;Debian multimedia&lt;/a&gt; (镜像: &lt;a href="http://update.inlsd.org/debian-multimedia/"&gt;http://update.inlsd.org/debian-multimedia/&lt;/a&gt; ) 升级了flash-player（&lt;a href="http://www.debian-multimedia.org/flashplayer/"&gt;可从这里手工下载安装&lt;/a&gt;）。现在可以全屏了，爽。但设置界面还是乱码&lt;/li&gt;&lt;li&gt;pidgin升级到了2.3.1，没见到明显的改进，反而QQ群功能出现问题：名字都显示成"(NULL)"，而且几个"(NULL)"群也区分不开&lt;/li&gt;&lt;/ul&gt;总而言之，不太爽，不过系统死机的问题倒是解决了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6695700631055882396?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6695700631055882396/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6695700631055882396' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6695700631055882396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6695700631055882396'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2008/01/blog-post.html' title='做了一次系统升级'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8196098747344329981</id><published>2007-12-28T22:07:00.000+08:00</published><updated>2007-12-28T23:42:20.498+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>对字符集和编码的一些错误认识</title><content type='html'>字符集和编码一直很头疼的一块，最近为了搞培训，研究了一下，发现以前确实有很多不明白甚至是错误的认识:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ISO-8859-1 .. ISO-8859-16 这些都是西欧各国用的字符集，主要的差别在与128-255之间各自代表的字符不同；&lt;br /&gt; &lt;/li&gt;&lt;li&gt;仍然不明白为啥GB2312, Big5这些就算MBCS，而同样采用多字节编码的Unicode却不算&lt;br /&gt; &lt;/li&gt;&lt;li&gt;GBK应该是GB2312的超集，向下兼容GB2312的，记得以前谁跟我说不是，我迷惑了好一阵；&lt;br /&gt; &lt;/li&gt;&lt;li&gt;很 多编辑器说可以支持"Unicode编码"，并且一些软件说"Unicode"就是两字节编码，这都是基于Unicode 4.0之前的认识。在那之前，Unicode跟GB2312这样的名称一样，即是字符集(charset)名称又是编码(encoding)名称， Unicode字符均是两个字节。但从Unicode 4.0开始，它已经不只65536个字符了，Unicode只是一个字符集名称，而UCS-2, UCS-4，UTF-8, UTF-16, UTF-32这些才是编码名称（当然，历史包袱总是存在的）；&lt;/li&gt;&lt;li&gt;UCS-2与UTF-16是不一样的，UCS-2固定采用两个字节，它不能表达Unicode 4.0之后增补的字符（当然，那些字符很生僻），而UTF-16里面每个字符可能是2或4个字符组成；&lt;/li&gt;&lt;li&gt;UTF-8&lt;/li&gt;&lt;ul&gt;&lt;li&gt;从新的理论上而言，UTF-8应该是1-6个字符不等，但目前应该是1-3个字符就可以表达已有的字符了；&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;UTF-8的优点&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;如果原有数据大都采用ASCII表达，那么这些数据不用转换&lt;/li&gt;&lt;li&gt;如果系统采用ASCII可以表达大多数数据，那么相对UCS-2，UTF-16这些节省空间；&lt;/li&gt;&lt;li&gt;编码中字符边界很容易找到：以0开头的字节肯定是ASCII字符，最高位以11开头的字节肯定是字符的开头字节，以10开头的字节肯定是字符的后续字节；&lt;/li&gt;&lt;li&gt;容错性强一些，偶尔一两个错误不会影响后面，原因同上（想咱们都碰到过GB2312/Big5的半个汉字问题带来的乱码问题吧)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;按字节流读取，不用考虑大端(big endian)/小端(little endian)问题&lt;/li&gt;&lt;li&gt;字符串中不会出现0x00这样的字节（而UCS-2这些会），这样char *这样的方式表达缓冲区时不太容易导致错误&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;UTF-8的缺点&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;对于非ASCII字符，相对以前存储空间增加了，比如非英语的西欧字符集现在都需要两个字节了，而中文等很多都需要三个字节了；&lt;/li&gt;&lt;li&gt;计算字符串长度比较麻烦，只能逐个统计；&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;综上，现在很多系统内部处理采用UCS-2，只在存储和数据交换中采用UTF-8&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Java以前内部全部采用Unicode(其实是UCS-2)来处理字符串，但Unicode 4.0以上的那些字符它不能处理。&lt;a href="http://www.blogjava.net/lotusswan/archive/2006/11/27/83922.html"&gt;在Java 5.0中加入了一些奇怪的机制来解决这个问题&lt;/a&gt;；&lt;/li&gt;&lt;li&gt;Python也不能同时支持UCS-2和UCS-4，只是&lt;a href="http://docs.python.org/lib/encodings-overview.html"&gt;可以在编译时挑选&lt;/a&gt;(--enable-unicode=ucs2和--enable-unicode=ucs4)，看sys.maxunicode是否大于65535就知道是否是UCS-4了。我看Windows上的预编译版本是UCS-2(python2.5)的，而Linux上是UCS-4(Debian testing, python 2.4)。注意这两种版本在二进制上是不兼容的。&lt;/li&gt;&lt;/ul&gt;参考文档&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.joelonsoftware.com/articles/Unicode.html"&gt;Joel Spolsky: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.csdn.net/inelm/archive/2004/11/29/197466.aspx"&gt;每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识(上文的简体翻译，居然木野狐翻译的，好久不见他了)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.donews.com/holen/archive/2004/11/30/188182.aspx"&gt;&lt;span style="text-decoration: underline;"&gt;对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8196098747344329981?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8196098747344329981/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8196098747344329981' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8196098747344329981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8196098747344329981'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/12/blog-post.html' title='对字符集和编码的一些错误认识'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6089257843465711200</id><published>2007-12-27T22:13:00.000+08:00</published><updated>2007-12-27T22:20:02.872+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Firefox 3上使用旧扩展</title><content type='html'>目前还有很多插件不支持Firefox 3，如果你实在想用，可以修改下面两个设置:&lt;br /&gt;user_pref("extensions.checkCompatibility", false);&lt;br /&gt;user_pref("extensions.checkUpdateSecurity", false);&lt;br /&gt;这样Firefox升级或者安装新扩展时就不会检查兼容性和签名了（检查扩展的签名是Fx3新增的功能)。不过扩展不一定能正常工作，比如Google工具栏就不成。&lt;br /&gt;&lt;br /&gt;可以将这两行加在profile下prefs.js(请先关闭Firefox)，也可以在about:config中手工增加这两项。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6089257843465711200?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6089257843465711200/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6089257843465711200' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6089257843465711200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6089257843465711200'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/12/firefox-3.html' title='Firefox 3上使用旧扩展'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1893880486924145799</id><published>2007-12-25T22:05:00.000+08:00</published><updated>2007-12-25T22:38:46.740+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Firefox 3上如何添加 del.icio.us 书签</title><content type='html'>以前我为了几台机器、几个操作系统上书签的同步烦心不已，即使安装了&lt;a href="http://addons.mozilla.org/en-US/firefox/addon/2410"&gt;Foxmarks同步器&lt;/a&gt;还得留神用哪个覆盖哪个，而Google工具栏提供的书签功能也不太好用。后来开始使用del.icio.us的书签服务，加上&lt;a href="http://addons.mozilla.org/en-US/firefox/addon/3615"&gt;del.icio.us Bookmarks&lt;/a&gt;扩展，终于很满意了。&lt;br /&gt;&lt;br /&gt;但&lt;a href="http://www.mozilla.com/firefox/all-beta.html"&gt;Firefox 3出来了beta 1&lt;/a&gt;之后，我就基本上开始用新版本了，毕竟很多功能很不错，内存占用比原来少了（也许是目前安装的扩展还比较少），再说反正以后要切的。不过目前还是两个版本都用。&lt;br /&gt;&lt;br /&gt;但目前很多扩展都还不支持Firefox 3（而且Firefox 3开始要求对扩展进行签名了，不能象以前那样简单地下载xpi包后自己来改改版本匹配申明就说不定可以使用），有些扩展倒也罢了，但现在del.icio.us 似乎变成必须了 :-)&lt;br /&gt;&lt;br /&gt;查看/搜索书签的功能倒简单，只要访问 &lt;a href="http://del.icio.us/home"&gt;http://del.icio.us/home&lt;/a&gt; 就可以了，网页上也有输入tag进行搜索的功能。&lt;br /&gt;&lt;br /&gt;主要的问题是没法方便地添加书签了，以前只要在网上逛，看到不错的地方，按一下Ctrl+D或者点击工具栏的TAG按钮，就有一个对话框出来，当前网页的标题、其他人的tag都显示出来了，并且当前网页选中的文字还可以自动放入书签的说明栏。&lt;br /&gt;&lt;img src="http://images.del.icio.us/static/img/help/firefox/bookmarks/overBookmarking.jpg" alt="del.icio.us" tag="" button="" /&gt;&lt;br /&gt;&lt;br /&gt;在del.icio.us的帮助中找了一下，发现可以用如下办法: 在书签栏上添加一个书签，其URL是:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    javascript:location.href='http://del.icio.us/post?v=4;url='+encodeURIComponent(location.href)+';title='+encodeURIComponent(document.title)&lt;/span&gt;&lt;br /&gt;(可以拖这个链接到书签栏，然后自己改名字)&lt;br /&gt;&lt;br /&gt;详细的说明在这里: &lt;a href="http://del.icio.us/help/buttons"&gt;bookmarklet buttons for any browser&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;但“当前网页选中的文字还可以自动放入书签的说明栏”这一点还不能做到，不太爽。我试验了一下，发现多传一个notes参数就可以了: 在上述URL后面再添加一节:&lt;br /&gt;   &lt;span style="font-family:courier new;"&gt;+';notes='+encodeURIComponent(window.getSelection().toString())&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;结论&lt;/span&gt;: 拖下面这个链接到书签栏就可以了:&lt;br /&gt;&lt;a href="javascript:location.href='http://del.icio.us/post?v=4;url='+encodeURIComponent(location.href)+';title='+encodeURIComponent(document.title)+';notes='+encodeURIComponent(window.getSelection().toString())"&gt;post to del.icio.us&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1893880486924145799?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1893880486924145799/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1893880486924145799' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1893880486924145799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1893880486924145799'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/12/firefox-3-delicious.html' title='Firefox 3上如何添加 del.icio.us 书签'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5550932702509369317</id><published>2007-12-20T21:27:00.000+08:00</published><updated>2007-12-25T22:53:40.132+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxpython'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>找不到python24_d.lib怎么办(VC上编译wxPython)</title><content type='html'>编译一个&lt;a href="http://svn.wxwidgets.org/viewvc/wx/wxPython/trunk/samples/embedded/"&gt;wxWidgets内嵌wxPython的示例工程&lt;/a&gt;时，编译器说需要python24_d.lib，因为懒得自己重新编译一遍python，在网上找到&lt;a href="http://public.kitware.com/pipermail/insight-users/2003-December/005866.html"&gt;一个办法&lt;/a&gt;: 修改Python\include里面的python.h，把静态库都改成同一个(即将python24_d.lib改成python24.lib)，其它.h文件也搜索Py_DEBUG，将两种模式下的处理搞成一致(比如不采用不同的引用计数函数)，然后就OK了。&lt;br /&gt;&lt;br /&gt;－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－&lt;br /&gt;（下面是详细说明——我现在是越来越罗嗦了）&lt;br /&gt;这几日在琢磨能不能直接采用wxPython搭建我们的下一版本的界面，各方面看都是我们要找的东西，除了一条: 如何将旧系统兼容进去（旧系统采用MFC+COM+Active Scripting技术搭建)。&lt;br /&gt;&lt;br /&gt;于是我想先看看用MFC写的程序能不能集成wxPython，但google了半天没有任何信息，只好退而求其次查找wxWidgets上嵌入wxPython，倒是找到一个例子:&lt;br /&gt; http://svn.wxwidgets.org/viewvc/wx/wxPython/trunk/samples/embedded/&lt;br /&gt;&lt;br /&gt;它本来的Makefile是编译debug版的，这就需要python, wxWidgets和wxPython的debug版本动态库，好像网上对于Windows上都没有提供(不象Linux上还有python2.4-dbg, libwxgtk2.6-dbg可供安装)，这就意味着必须完全自己来编译，编译时还有unicode,universal一大堆的选项，编译完了还有安装/配置的问题。&lt;br /&gt;&lt;br /&gt;我烦了，就编译release版本吧，自己修改Makefile.vc，去掉了调试选项，编译出来了。但将embeded.exe放到wxPython的目录运行，它跟我报怨说版本不匹配，wxPython的是"debug,unicode,Visual C++...."，而embeded.exe是"no debug,unicode,Visual C++..."。奇怪，怎么预编译的wxPython居然还是debug版本?&lt;br /&gt;&lt;br /&gt;没办法，又回头来编译debug版本，但折腾了半天，最后碰到一个python24_d.lib过不去。看来非得自己编译python不可了。我不死心，又在网上搜了一阵，找到&lt;a href="http://public.kitware.com/pipermail/insight-users/2003-December/005866.html"&gt;一个办法&lt;/a&gt;: 修改Python\include里面的python.h，把静态库都改成同一个，其它.h文件也搜索Py_DEBUG，将两种模式下的处理搞成一致(比如不采用不同的引用计数函数)，然后就OK了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5550932702509369317?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5550932702509369317/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5550932702509369317' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5550932702509369317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5550932702509369317'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/12/python24dlibvcwxpython.html' title='找不到python24_d.lib怎么办(VC上编译wxPython)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3803141121601661116</id><published>2007-12-11T22:25:00.000+08:00</published><updated>2007-12-11T22:37:43.421+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>PDF文件的分割与合并</title><content type='html'>装个&lt;a href="http://www.accesspdf.com/pdftk/"&gt;pdftk&lt;/a&gt;就行了。&lt;br /&gt;&lt;br /&gt;分割可以采用分段抽取来搞定:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   pdftk wxPIA.pdf cat 114-146 output chapter04.pdf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;合并:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   pdftk chapter0*.pdf cat output part1.pdf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;还可以将A文档的某些页和B文档的某些页拼起来:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;添加附件:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;pdftk chapter01.pdf attach_files ../chapter-01/* output chapter01a.pdf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;拆离附件:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;pdftk chapter01a.pdf unpack_files output ./chapter-01/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;更复杂的应用还是看&lt;a href="http://www.accesspdf.com/pdftk/"&gt;项目主页&lt;/a&gt;上的文章吧。&lt;br /&gt;&lt;br /&gt;另外, 这东西用到libgcj，估计部分是用java写的，反正运行起来有点慢。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3803141121601661116?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3803141121601661116/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3803141121601661116' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3803141121601661116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3803141121601661116'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/12/pdf.html' title='PDF文件的分割与合并'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5250046303127000457</id><published>2007-12-11T21:54:00.000+08:00</published><updated>2007-12-11T21:58:49.098+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><category scheme='http://www.blogger.com/atom/ns#' term='thunderbird'/><title type='text'>修正Launchy在Thunberbird中独立邮件窗口里菜单不能显示的问题</title><content type='html'>在Thunderbird中碰到一些链接，需要调用外部程序(firefox或者d4x等)打开，于是安装了Launchy。但Launchy菜单可以在主窗口的邮件视图中出现，而在独立的邮件视图（双击列表栏一个邮件时打开的），这个菜单就没有出现了。&lt;br /&gt;&lt;br /&gt;估计Launchy没有在独立邮件窗口注册overlay，但要去查邮件窗口的chrome url，也挺麻烦的。&lt;br /&gt;我看ThunderBrowse的菜单工作得挺好，于是看了一下它的chrome.manifest，里面就三行overlay:&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;overlay chrome://global/content/customizeToolbar.xul chrome://tbrowse/content/accessbrowser.xul&lt;br /&gt;overlay chrome://messenger/content/messenger.xul chrome://tbrowse/content/accessbrowser.xul&lt;br /&gt;overlay chrome://messenger/content/messageWindow.xul chrome://tbrowse/content/accessbrowser.xul&lt;br /&gt;&lt;/blockquote&gt;&lt;/pre&gt;而Launchy是这样&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;overlay chrome://browser/content/browser.xul chrome://launchy/content/main.xul&lt;br /&gt;overlay chrome://messenger/content/messenger.xul chrome://launchy/content/main.xul&lt;br /&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;看名字就知道独立的邮件视图是messageWindow.xul，于是在launchy的chrome.manifest添加如下一行就可以了&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;overlay chrome://messenger/content/messageWindow.xul chrome://launchy/content/main.xul&lt;br /&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5250046303127000457?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5250046303127000457/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5250046303127000457' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5250046303127000457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5250046303127000457'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/12/launchythunberbird.html' title='修正Launchy在Thunberbird中独立邮件窗口里菜单不能显示的问题'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1960480394539843247</id><published>2007-11-17T12:41:00.000+08:00</published><updated>2007-11-17T22:34:52.135+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Windows上的Iceweasel  :-)</title><content type='html'>没见过吧?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_E2PlYwJOK5I/Rz77DpCPu7I/AAAAAAAABQg/spMucnx3wRw/s1600-h/iceweasel-on-windows.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_E2PlYwJOK5I/Rz77DpCPu7I/AAAAAAAABQg/spMucnx3wRw/s320/iceweasel-on-windows.png" alt="" id="BLOGGER_PHOTO_ID_5133816665222396850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;这几日不在家，在朋友家的机器上上网时不习惯IE, 想装一个Firefox，但一不小心下载了一个英文版本。因为带宽不咋样，也就没再去下载简体中文版，我想在网上找单独的简体中文XPI包，但找了半天没有找到。&lt;br /&gt;&lt;br /&gt;最后想到跑去Debian的网站下载了一个&lt;a href="http://packages.debian.org/iceweasel-l10n-zh-cn"&gt;iceweasel-l10n-zh-cn&lt;/a&gt;包(好在我手机上SD卡里面储备了几个常用软件，包括可以解开deb的7zip)，解压到了extensions目录下，然后再about:config中将general.useragent.locale改成了zh-CN。重启Firefox，就成了上面那个样子。&lt;br /&gt;&lt;br /&gt;本来我开始也没有想到这个问题，偶然一低头，咦? 任务栏上怎么有个Iceweasel :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1960480394539843247?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1960480394539843247/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1960480394539843247' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1960480394539843247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1960480394539843247'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/11/windowsiceweasel.html' title='Windows上的Iceweasel  :-)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E2PlYwJOK5I/Rz77DpCPu7I/AAAAAAAABQg/spMucnx3wRw/s72-c/iceweasel-on-windows.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1723046272475445069</id><published>2007-11-02T22:54:00.002+08:00</published><updated>2008-10-05T14:17:07.092+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='total commander'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>TCShell2 1.5.6</title><content type='html'>TCShell2: Associate your archives with Total Commander&lt;br /&gt;&lt;br /&gt;Changes from 1.5.2&lt;br /&gt;  * Now based on ProgMan13's 1.3.6 (he didn't publish it on totalcmd.net), which&lt;br /&gt;     + Added support for different wincmd.ini&lt;br /&gt;     + Fixed bug while parsing command line&lt;br /&gt;     + Guess location of wincmd.ini (COMMANDER_INI, then registry, then totalcmd.exe's path)&lt;br /&gt;  + Added an edit box to show the command line&lt;br /&gt;&lt;br /&gt;Download (source code included)&lt;br /&gt;    &lt;a href="http://bamanzi.inlsd.org/win32/totalcmd/TCShell2-1.5.6.zip"&gt;http://bamanzi.inlsd.org/win32/totalcmd/TCShell2-1.5.6.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Screenshots:&lt;br /&gt;   &lt;a href="http://bamanzi.inlsd.org/win32/totalcmd/tcshell2-archives.gif"&gt;http://bamanzi.inlsd.org/win32/totalcmd/tcshell2-archives.gif&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------&lt;br /&gt;If you have Total Commander, then you don't need WinZip, WinRAR any more.  These archives can be opened and handled in TC. &lt;br /&gt;&lt;br /&gt;But some times, you may wonder: If I need to launch an archive file from my download manager, or from my e-mail,  I really need an application to handle the association.&lt;br /&gt;&lt;br /&gt;No problem, actually you can associate .zip with Total Commander, TC would take the command line parameter as directory name.&lt;br /&gt;&lt;br /&gt;Then another problem comes that how can you associate .zip/.rar/.7z with TC?  Yes, you can always do that by editing registry.  But it's not handy.&lt;br /&gt;&lt;br /&gt;Now try TCShell2, the modified version of &lt;a href="http://www.totalcmd.net/plugring/tcshell.html" target="_blank" rel="nofollow"&gt;TCShell&lt;/a&gt;, which can also handle archives supported by packer plugins. (Don't associate TC with some important extensions, such as .exe, .chm)&lt;br /&gt;&lt;br /&gt;Code based on &lt;a href="http://sites.google.com/site/bamanzi/news/goog_1221372368760"&gt;ProgMan&lt;/a&gt;&lt;a href="http://www.totalcmd.net/authors/1196678.html" target="_blank" rel="nofollow"&gt;13&lt;/a&gt;'s code for TCShell-1.3.6. Thanks for his generious to allow me to use his code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1723046272475445069?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1723046272475445069/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1723046272475445069' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1723046272475445069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1723046272475445069'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/11/tcshell2-156.html' title='TCShell2 1.5.6'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-672131465150676954</id><published>2007-11-02T21:25:00.000+08:00</published><updated>2007-11-02T21:41:09.026+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>A few GNOME tips</title><content type='html'>&lt;ul&gt;&lt;li&gt;在bash中，可以用alt-b和alt-f在命令行上跳到前一个单词或者后一个单词，但GNOME Terminal里面alt-f就会激活"文件(F)"菜单, alt-b会激活"标签(B)"菜单，就用不上这个技巧了么?&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;解决方法: 菜单"编辑-&gt;快捷键"，在打开的对话框中勾上”禁用所有菜单访问键"&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;我一般用totem播放视频，但有时字幕会显示不正常，字变得特大，导致只有前面几个字能看到。于是我改用mplayer来播放，但mplayer对这部DVD显示画面又不正常，上下拉得很长。我选择4:3或者16:9，它只调解窗口，有效画面还是那个样子 :-(&lt;/li&gt;&lt;ul&gt;&lt;li&gt;mplayer加上-zoom选项可以打开软件调节显示比例的功能，缺省只能依赖video driver中接入的硬件调节功能(说是基于性能方面考虑)&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;在GNOME Terminal中穿梭了半天，突然想用GUI程序打开某个文件，怎么办？打开nautilus文件管理器，然后再定位到那个文件，再双击?  那样太麻烦了吧。&lt;/li&gt;&lt;ul&gt;&lt;li&gt;我以往都是用rox来打开(在命令行上输入rox &lt;span style="font-style: italic;"&gt;somefile&lt;/span&gt;)，并不会带出来一个rox窗口这也是无意发现的功能。不过这又需要在rox中对文件类型关联了合适的程序&lt;/li&gt;&lt;li&gt;刚在gnome邮件列表上看见的解决办法: gnome-open &lt;span style="font-style: italic;"&gt;path/to/file&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-672131465150676954?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/672131465150676954/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=672131465150676954' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/672131465150676954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/672131465150676954'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/11/few-gnome-tips.html' title='A few GNOME tips'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3245266642889537144</id><published>2007-10-14T17:17:00.000+08:00</published><updated>2007-10-14T17:56:33.427+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Mozilla XUL Links 2007-10-14</title><content type='html'>&lt;a href="http://wiki.mozilla.org/Mozilla_2"&gt;Mozilla 2&lt;/a&gt;早就提出来了，每个人都有很多想法，期望能够摆脱老版本中一些不太优雅的设计与实现。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JavaScript 2: 现在比较一致的想法是JavaScript 2.0这一部分，计划在Adobe捐献的Tamarin上实现，目的在于获得更好的速度。&lt;/li&gt;&lt;li&gt;XPCOM: 将XPCOM从Gecko中剥离出来，同时抛弃原来XPCOM实现代码中所使用的一些难看的C++宏，改用C++自己的异常处理，再加上GC功能&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://benjamin.smedbergs.us/blog/2007-10-11/dehydra-ftw/"&gt;Dehydra is cool&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.mozilla.com/tglek/2007/10/12/rewriting-tools-for-mozilla-2-moving-forward-as-planned/"&gt;Rewriting Tools for Mozilla 2: Moving Forward as Planned&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Gecko: 已经确定的是3D对象、视频的支持，其他想法就多了&lt;/li&gt;&lt;ul&gt;&lt;li&gt;有人甚至在琢磨抛弃Gecko, 改为在Webkit上重起炉灶: &lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.allpeers.com/blog/2007/10/05/should-mozilla-drop-gecko-for-webkit/"&gt;Should Mozilla Drop Gecko for WebKit?&lt;/a&gt;  &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.allpeers.com/blog/2007/10/09/gecko-vs-webkit-lessons-learned/"&gt;Gecko vs Webkit: Lesson Learned&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;  移动设备的改进支持本来不在Mozilla 2的考虑范围内，但最近Mozilla觉得这个比较重要了&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://weblogs.mozillazine.org/schrep/archives/2007/10/mozilla_and_mobile.html"&gt;Mozilla and Mobile&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.profy.com/2007/10/11/mozilla-announces-plans-to-resume-firefox-mobile-development/"&gt;Mozilla Announces Plans To Resume Firefox Mobile Development&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;到底thundirdbird后续会怎样，现在说法很多，闹不清楚。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3245266642889537144?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3245266642889537144/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3245266642889537144' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3245266642889537144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3245266642889537144'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/10/mozilla-xul-links-2007-10-14.html' title='Mozilla XUL Links 2007-10-14'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6954726056121289564</id><published>2007-09-27T00:10:00.001+08:00</published><updated>2007-10-29T22:56:09.400+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thunderbird'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>几个不错的Thunderbird扩展</title><content type='html'>用Thunderbird大半年了，也一直没怎么用扩展，除了&lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/956"&gt;Remove Duplicate Messages&lt;/a&gt;，因为我的邮件是几个地址汇总过来的，总存在重复。&lt;br /&gt;&lt;br /&gt;前几天在它的扩展库里面逛了一下，发现以下几个不错:&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/5373"&gt;ThunderBrowse:&lt;/a&gt;&lt;a style="font-weight: bold;" href="https://addons.mozilla.org/en-US/thunderbird/addon/5373"&gt;  &lt;/a&gt;在Thunderbird中直接浏览网页&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/1832"&gt;Tag the Bird&lt;/a&gt;: 给邮件添加标签&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/393"&gt;MessageFaces&lt;/a&gt;:  显示Face/XFace头像&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/4268"&gt;Colored Diffs&lt;/a&gt;: 采用彩色显示补丁，并且可以转换成unified, side-by-side等几种方式显示&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/170"&gt;Quote Colors&lt;/a&gt;: 邮件中引用的部分采用不同的风格来显示（不过好像不能象Claws Mail那样自己定义哪些字符是引文字符，虽然常用的是'&gt;'和'|'&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/3093"&gt;XNote&lt;/a&gt;: TB支持给邮件添加标签(tag)，但如果想添加一些注释，就得需要XNote这类扩展了。虽然很多扩展都是这个功能，但好像只有XNote可用于TB2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6954726056121289564?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6954726056121289564/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6954726056121289564' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6954726056121289564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6954726056121289564'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/09/thunderbird.html' title='几个不错的Thunderbird扩展'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3032293877573616916</id><published>2007-09-26T23:47:00.000+08:00</published><updated>2007-09-27T00:09:23.488+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><title type='text'>XUL: property与attribute有什么区别?</title><content type='html'>看&lt;a href="http://www.xulplanet.com/references/elemref/"&gt;XUL Elements的说明文档&lt;/a&gt;，会碰到Attributes列表和Properties列表，这两个有什么不同? &lt;br /&gt;&lt;br /&gt;Attributes:&lt;br /&gt;&lt;pre&gt;someValue = element.getAttribute("someAttribute");&lt;br /&gt;element.setAttribute("someAttribute", someValue);&lt;/pre&gt;Properties:&lt;br /&gt;&lt;pre&gt;someValue = element.someProperty;&lt;br /&gt;element.someProperty = someValue;&lt;br /&gt;&lt;br /&gt;前者是按DOM的思路的，而后者是将XUL Element抽象成对象了。但两者是等价的么？如果下两句话一块儿执行，会是怎样的结果?&lt;br /&gt;&lt;br /&gt;textbox.value = "First value";&lt;br /&gt;textbox.setAttribute("value", "Second value");&lt;br /&gt;&lt;/pre&gt;答案是: 界面会显示"First value"，但你用text.getAttribute("value")会取到"Second Value"(或者用DOM Inspector可以看到)。&lt;br /&gt;&lt;br /&gt;所以这两个东西还是有点不一样。但你在.xul文件里面设置的attribute怎么能直接反映到界面中? 反正比较复杂。 详细的说明可以看这篇文章:&lt;br /&gt;&lt;a href="http://anonymouse.org/cgi-bin/anon-www.cgi/http://xulsolutions.blogspot.com/2006/07/attributes-and-properties-essential.html"&gt;XUL Solutions: Attributes and properties: the essential difference&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;基本上是说在用代码操纵时最好用properties，但在XBL中就得注意了。&lt;br /&gt;&lt;br /&gt;我还注意到其它一些小差别:&lt;br /&gt;1. 有些attribute没有对应的property，反过来也是;&lt;br /&gt;2. attribute和property可能存在一些大小写的差别，比如tabindex和tabIndex。一般而言attribute倾向于contextmenu或者wait-cursor这样的风格，而property倾向于contextMenu。但也不是绝对的(比如sortDirection这个attribute), XUL里面这个有点混乱;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3032293877573616916?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3032293877573616916/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3032293877573616916' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3032293877573616916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3032293877573616916'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/09/xul-propertyattribute.html' title='XUL: property与attribute有什么区别?'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7780226750739014620</id><published>2007-09-26T23:43:00.001+08:00</published><updated>2007-09-26T23:46:41.644+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><title type='text'>Port some addons to XUL Explorer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bamanzi.inlsd.org/blog/uploaded_images/xulexplorer-addons-733929.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bamanzi.inlsd.org/blog/uploaded_images/xulexplorer-addons-733926.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I think the following addons might be of some use for &lt;a href="http://developer.mozilla.org/en/docs/XUL_Explorer"&gt;XUL Explorer&lt;/a&gt;, thus made some quick-and-dirty patches to make them could work on it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Chrome List&lt;/span&gt;:   &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="https://addons.mozilla.org/en-US/firefox/addon/4453" target="_blank"&gt;https://addons.mozilla.org/en&lt;wbr&gt;-US/firefox/addon/4453&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Extension developer's extension&lt;/span&gt;: &lt;a aiotarget="true" aiotitle="http://ted.mielczarek.org/code /mozilla/extensiondev/" onclick="return top.js.OpenExtLink(window,event,this)" href="http://ted.mielczarek.org/code/mozilla/extensiondev/" target="_blank"&gt;http://ted.mielczarek.org/code&lt;wbr aiotitle=""&gt;/mozilla/extensiondev/&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;xpcomviewer&lt;/span&gt;:   &lt;a aiotitle="http://xpcomviewer.mozdev.org" onclick="return top.js.OpenExtLink(window,event,this)" href="http://xpcomviewer.mozdev.org/" target="_blank"&gt;http://xpcomviewer.mozdev.org&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cview&lt;/span&gt; (older xpcom viewer)   &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://hacksrus.com/%7Eginda/cview/" target="_blank"&gt;http://hacksrus.com/~ginda&lt;wbr&gt;/cview/&lt;/a&gt;&lt;br /&gt;(but I'm based on the code on mozilla tree)&lt;br /&gt;&lt;br /&gt;The patches and patched addons lie on:&lt;br /&gt;&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://bamanzi.inlsd.org/xul/xe-addons/" target="_blank"&gt;http://bamanzi.inlsd.org/xul&lt;wbr&gt;/xe-addons/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As an alternative to installing them in the extension manager, you can&lt;br /&gt;also unpack each .xpi to xulexplorer/xulrunner/extensio&lt;div style="direction: ltr;"&gt;&lt;wbr&gt;ns\&lt;addon-id&gt;.&lt;br /&gt;Unpacking to xulexplorer/extensions won't work for XULRunner 1.8.&lt;br /&gt;&lt;br /&gt;Not all features could work. Currently I just made sure they could be launched from the Tools menu.&lt;br /&gt;&lt;/addon-id&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7780226750739014620?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7780226750739014620/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7780226750739014620' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7780226750739014620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7780226750739014620'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/09/port-some-addons-to-xul-explorer.html' title='Port some addons to XUL Explorer'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5921671480834478430</id><published>2007-09-10T00:27:00.000+08:00</published><updated>2007-09-10T00:41:02.265+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Mozilla/XUL Links 2007-09-10</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://services.alphaworks.ibm.com/coscripter/browse/about"&gt;CoScripter&lt;/a&gt;: 一个网页自动化工具(Firefox扩展)，由IBM的人折腾出来的，&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.mozilla.org/Penelope_Releases"&gt;Penelope&lt;/a&gt;: 著名的老牌邮件客户端Eudora关闭之后，有人想将一些功能重新在Thunderbird上实现，并模拟Eudora的观感和操作方式。&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.activestate.com/openkomodo/"&gt;Open Komono&lt;/a&gt;: ActiveState公司决定将Komodo的一部分开放，成为Open Komodo项目。&lt;a href="http://planet.mozilla.org/"&gt;Planet Mozilla&lt;/a&gt;上不少人觉得这对XUL IDE是个不错的消息(链接&lt;a href="http://www.allpeers.com/blog/2007/09/05/open-komodo/"&gt;1&lt;/a&gt;, &lt;a href="http://weblogs.mozillazine.org/weirdal/archives/018505.html"&gt;2&lt;/a&gt;)。至少，俺一直想把Komodo里面的编辑器(基于&lt;a href="http://scintilla.sourceforge.net"&gt;scintilla&lt;/a&gt;做的浏览器插件)移植到&lt;a href="http://developer.mozilla.org/en/docs/XUL_Explorer"&gt;XUL Explorer&lt;/a&gt;上来用。&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.mozbox.org/post/2007/06/14/XUL-activity-in-France"&gt;XUL activities in France&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5921671480834478430?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5921671480834478430/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5921671480834478430' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5921671480834478430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5921671480834478430'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/09/mozillaxul-links-2007-09-10.html' title='Mozilla/XUL Links 2007-09-10'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-2135086516933820900</id><published>2007-09-10T00:13:00.000+08:00</published><updated>2007-11-25T12:34:59.014+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>回应: Linux之父炮轰C++："糟糕程序员的垃圾语言"</title><content type='html'>涉及到编程语言之争的帖子，在CSDN上一定会吵得不可开交，&lt;a href="http://blog.csdn.net/turingbook/archive/2007/09/07/1775488.aspx"&gt;这不:&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;"Linux之父Linus Torvalds为了Linux内核开发而专门打造的版本控制软件&lt;a href="http://git.or.cz/"&gt;Git&lt;/a&gt;已经引起了业界的广泛关注。昨天，有一位Dmitry Kakurin老兄在查看了源代码之后，发现使用的是纯C而非C++，表示不可理解，他直言：“别拿可移植性说事儿，这是屁话（BS，bullshit）。“（此外，他还&lt;a href="http://article.gmane.org/gmane.comp.version-control.git/57815"&gt;批评&lt;/a&gt;Git蛮力地直接操作文本，既啰嗦又易错，而且很难跟上高层代码逻辑。）这个BS引起了Torvalds的&lt;a href="http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918"&gt;强烈反应&lt;/a&gt;，他用&lt;span style="font-weight: bold;"&gt;“&lt;/span&gt;&lt;strong&gt;*YOU*&lt;/strong&gt;  are full of bullshit.“（你才满嘴屁话呢）作为自己反驳的开场白。接着，他先转向了对C++的罕见的火药味十足的炮轰..."&lt;br /&gt;&lt;/blockquote&gt;&lt;span id="Anthem_Comments.ascx_ltlComments__"&gt;&lt;span id="Comments.ascx_ltlComments"&gt;从几年的实践来看，我觉得从面向对象这个角度来看，C++很好，但C++这个东西太复杂，太容易导致错误，用上几个模版后，编译时搞出一大堆不知所云的信息也是常事。俺是觉得C++写的东西很容易变得不可维护，尤其是有C++"高手"加入以后。而且印象中用C++做出来的可重用的库比较少。&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="Anthem_Comments.ascx_ltlComments__"&gt;&lt;span id="Comments.ascx_ltlComments"&gt;&lt;br /&gt;大 家都说“我们在没有掌握得好的时候，不妨只用我们了解的那些特性。那些高级特性并不妨碍，你可以不用啊”，但这都是从单独一个人的角度来说的。放到一个团 队来说，你的队伍中有C++高手，有新手，还有更多的半生不熟的人，怎么办？Linus的考虑也是从这个角度出发的，就算你Dmitry Kakurin很懂C++，不会出什么问题，能写出漂亮的代码，但其他人怎么维护你的代码?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="Anthem_Comments.ascx_ltlComments__"&gt;&lt;span id="Comments.ascx_ltlComments"&gt;&lt;br /&gt;不过俺没有帖子里面各位这么确信，对很多事物都抱着一种敬畏的态度，因为我不知道是不是本人不够聪明，没有认识到C++的各个方面。&lt;p&gt;&lt;br /&gt;&lt;br /&gt;刚 才我统计了一下sourceforge.net上用C++和C的项目数，以及各自的处于stable和mature阶段的项目数。&lt;span style="font-family:courier new;"&gt;&lt;table style="width: 415px;" border="1" cellpadding="2" cellspacing="2"&gt; &lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt; &lt;td&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt; &lt;td&gt;total &lt;/td&gt;&lt;br /&gt; &lt;td&gt;stable &lt;/td&gt;&lt;br /&gt; &lt;td&gt;mature&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt; &lt;td&gt;&lt;span style="font-family:courier new;"&gt;C++ &lt;/span&gt;&lt;/td&gt;&lt;br /&gt; &lt;td&gt;22462 &lt;/td&gt;&lt;br /&gt; &lt;td&gt;4326(19.26%) &lt;/td&gt;&lt;br /&gt; &lt;td&gt;427(1.90%) &lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt; &lt;td&gt;&lt;span style="font-family:courier new;"&gt;C &lt;/span&gt;&lt;/td&gt;&lt;br /&gt; &lt;td&gt;19623 &lt;/td&gt;&lt;br /&gt; &lt;td&gt;4792(24.42%) &lt;/td&gt;&lt;br /&gt; &lt;td&gt;615(3.13%) &lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt; &lt;td&gt;&lt;span style="font-family:courier new;"&gt;Java &lt;/span&gt;&lt;/td&gt;&lt;br /&gt; &lt;td&gt;26454 &lt;/td&gt;&lt;br /&gt; &lt;td&gt;5097(19.27%) &lt;/td&gt;&lt;br /&gt; &lt;td&gt;353(1.33%)&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt; &lt;td&gt;&lt;span style="font-family:courier new;"&gt;Python &lt;/span&gt;&lt;/td&gt;&lt;br /&gt; &lt;td&gt;7224 &lt;/td&gt;&lt;br /&gt; &lt;td&gt;1287(17.81%) &lt;/td&gt;&lt;br /&gt; &lt;td&gt;109(1.5%)&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;span id="Anthem_Comments.ascx_ltlComments__"&gt;&lt;span id="Comments.ascx_ltlComments"&gt;从总数上看&lt;/span&gt;&lt;/span&gt;&lt;span id="Anthem_Comments.ascx_ltlComments__"&gt;&lt;span id="Comments.ascx_ltlComments"&gt;似乎&lt;/span&gt;&lt;/span&gt;&lt;span id="Anthem_Comments.ascx_ltlComments__"&gt;&lt;span id="Comments.ascx_ltlComments"&gt;C++更适合大家写东西，但从stable和mature项目比率上看似乎C项目更容易稳定和成熟，可维护性高些。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span id="Anthem_Comments.ascx_ltlComments__"&gt;&lt;span id="Comments.ascx_ltlComments"&gt;不过也许这不能说明什么，因为sf.net上只是些开源软件，上面各位又说C++在windows上应用普遍，而windows上素来没有多少开源传统。又或者商业软件又有不同。各位自己乱炖吧。&lt;br /&gt;&lt;br /&gt;参考:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://burks.brighton.ac.uk/burks/pcinfo/progdocs/cppcrit/"&gt;C++批判 (A Critique of  C++) &lt;/a&gt; 没看见哪里有中文翻译&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-2135086516933820900?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/2135086516933820900/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=2135086516933820900' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2135086516933820900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2135086516933820900'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/09/linuxc.html' title='回应: Linux之父炮轰C++：&quot;糟糕程序员的垃圾语言&quot;'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4896506917931029116</id><published>2007-08-28T23:34:00.000+08:00</published><updated>2007-09-05T23:33:34.056+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Mozilla/XUL Links 2007-08-28</title><content type='html'>&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;&lt;a href="http://www.google.com/mozilla/google.xul"&gt;Google Search&lt;/a&gt; (xul version)&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;在侧边栏打开这个地址效果不错&lt;br /&gt;&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;&lt;a href="http://www-03.ibm.com/developerworks/blogs/page/CompApps?entry=how_to_run_xul_applications"&gt;IBM developerWorks : Blogs : Bring information and collaboration into the context of your daily business processes using composite applications&lt;/a&gt;&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;一篇blog，讲述在Lotus Notes 8 (现在是基于Eclipse的了)中如何嵌入XULRunner来显示一个XUL应用，从而形成Composite Application&lt;br /&gt;&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;&lt;a href="http://starkravingfinkle.org/blog/2007/08/xul-explorer-07/"&gt;XUL Explorer 0.7&lt;br /&gt;&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;近来试验了一些XUL IDE的半成品，这个东西的主要长处在于可以预览XUL，而且支持简单调试。新版本0.7相对0.4改动不大，主要是为一个XUL文件可以提供一个chrome环境了（但这个功能很有用，因为一般xul文件都不是独立的，给定一个chrome环境后overlay和dtd都可以正常加载进来了，这样预览才比较接近最后的效果)。如果完全要手工编写xul以及js，我觉得&lt;a href="http://www.spket.com/"&gt;Spket&lt;/a&gt;还不错，里面还有Firefox 1.5和2.0的XPCOM接口列表。&lt;/dd&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;/dl&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4896506917931029116?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4896506917931029116/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4896506917931029116' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4896506917931029116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4896506917931029116'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/08/mozillaxul-links-2007-08-28.html' title='Mozilla/XUL Links 2007-08-28'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5300443179807638276</id><published>2007-08-26T12:04:00.000+08:00</published><updated>2007-11-18T15:05:32.210+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>XUL是如何传递事件源和参数的</title><content type='html'>代码这个东西就是这样，你一路看下来，挺好懂的，没啥稀奇，但一旦自己写起来，就觉得好多细节搞不清楚了。我在试验XUL的时候碰到一个典型的这样的问题：多个控件的onclick事件可以绑到同一个javascript函数，但它怎么识别是那个控件触发了这个事件呢？ 怎么传递点击的位置呢？如果传递多个参数的话，控件触发事件的代码要分开写么？&lt;br /&gt;&lt;br /&gt;查了一下DOM Level 2 Event Model规范(&lt;a href="http://developer.mozilla.org/en/docs/DOM:event"&gt;mozilla.org上说明&lt;/a&gt;)，发现HTML/XUL里面是传递了一个event对象来解决这个问题，这个对象有很多属性，但不是每次这个对象里面所有属性都有所用：event.target表示触发事件的对象，event.clienX是点击事件中的点击位置，event.keyCode是按键事件中的键码。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5300443179807638276?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5300443179807638276/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5300443179807638276' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5300443179807638276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5300443179807638276'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/08/xul.html' title='XUL是如何传递事件源和参数的'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-947083344496467119</id><published>2007-08-26T11:26:00.000+08:00</published><updated>2007-12-09T20:16:28.832+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Windows上几个免费反病毒工具</title><content type='html'>在Windows上如果不安装反病毒/反木马工具而上网冲浪（我们俗称“裸奔”），那是相当危险的。俺家另外一台电脑就因为反病毒程序过期了，昨晚就蓝屏一次，两次系统重启。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.avast.com/eng/avast_4_home.html"&gt;Avast!&lt;/a&gt; 它的Home Edition是免费的，只需要用e-mail登记一下，就可以免费使用一年，到期后再重新登记就可以。功能很全，有文件监控、网络监控、邮件监控等，可自动升级。俺目前在用这个&lt;/li&gt;&lt;li&gt;&lt;a href="http://free.grisoft.com/doc/2/us/frt/0"&gt;AVG Anti-Virus&lt;/a&gt;，它也提供了免费版本，另外还有AVG Anti-Spyware, AVG Anti-Rootkit这两个工具&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.free-av.com/"&gt;Avira AntiVir&lt;/a&gt;，大家俗称“小红伞”，其Personal Edition Classic是免费的，口碑也很不错&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.clamav.net/"&gt;Clam AntiVirus&lt;/a&gt;, 这个是完全GPL的，所以也有各种UNIX版本(不过似乎UNIX病毒比较少，不装问题也不大)。据说查杀病毒的能力相当强，不过没有实时监控能力。另外有一个完全针对Windows的变种&lt;a href="http://www.clamwin.com/"&gt;ClamWin&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-947083344496467119?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/947083344496467119/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=947083344496467119' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/947083344496467119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/947083344496467119'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/08/windows.html' title='Windows上几个免费反病毒工具'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1926783170077363616</id><published>2007-08-02T23:36:00.000+08:00</published><updated>2007-08-02T23:56:58.167+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><category scheme='http://www.blogger.com/atom/ns#' term='chm'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>做了个xulplanet的镜像chm</title><content type='html'>最近研究Mozilla XUL, 发现老是要到&lt;a href="http://developer.mozilla.org/"&gt;Mozilla Developer Center&lt;/a&gt;, &lt;a href="http://wiki.mozilla.org/"&gt;Mozilla Wiki&lt;/a&gt;, &lt;a href="http://www.xulplanet.com/"&gt;XULPlanet&lt;/a&gt;这几个网站查阅文档，今天干脆用Teleport Pro拉了它们的镜像下来。考虑到小文件比较占空间，而且没有索引，于是想把它们进一步做成CHM。&lt;br /&gt;&lt;br /&gt;首先搞定的是XULPlanet:&lt;br /&gt;    &lt;a href="http://bamanzi.inlsd.org/xul/xulplanet.chm"&gt;http://bamanzi.inlsd.org/xul/xulplanet.chm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bamanzi.inlsd.org/xul/xulplanet-chm.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer; width: 516px;" src="http://bamanzi.inlsd.org/xul/xulplanet-chm.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bamanzi.inlsd.org/xul/xulplanet.chm"&gt;&lt;/a&gt;&lt;br /&gt;写了一个小的Python脚本(&lt;a href="http://bamanzi.inlsd.org/misc/chm/html2hhc.py"&gt;html2hhk.py&lt;/a&gt;)，把所有的XUL Element属性/方法、XPCOM组件/接口都搜了出来转换为CHM的索引（其实这个脚本的功能是读出HTML的title和&lt;a href="http://www.w3.org/TR/WD-htmllink-970328#meta"&gt;keywords meta tag&lt;/a&gt;作为关键字，改一改也可以输出devhelp的keyword列表)。&lt;br /&gt;&lt;br /&gt;这个CHM文件还有些问题:&lt;br /&gt;1. 目录还没有做，至少一些大的分类得列上去吧，这个东西好像没有什么简单方法；&lt;br /&gt;2. 内容部分每页左边都有一个侧栏，供导航用的，这个东西在CHM里面没有作用，得用sed什么的批量处理一下。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1926783170077363616?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1926783170077363616/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1926783170077363616' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1926783170077363616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1926783170077363616'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/08/xulplanetchm.html' title='做了个xulplanet的镜像chm'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1749061750701878363</id><published>2007-08-01T00:51:00.000+08:00</published><updated>2007-08-01T00:57:43.676+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Google Talk in sidebar!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/talk/images/gadget_roster.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://www.google.com/talk/images/gadget_roster.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在网上搜索"Firefox sidebar"相关资料时，发现了这个。&lt;br /&gt;&lt;ol&gt;&lt;li&gt;将&lt;a href="http://talkgadget.google.com/talkgadget/client"&gt;http://talkgadget.google.com/talkgadget/client&lt;/a&gt; 添加为书签，注意选中”在侧栏打开此书签“&lt;/li&gt;&lt;li&gt;点击此书签，当当！&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1749061750701878363?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1749061750701878363/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1749061750701878363' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1749061750701878363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1749061750701878363'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/08/google-talk-in-sidebar.html' title='Google Talk in sidebar!'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8236540688396171288</id><published>2007-07-31T23:37:00.000+08:00</published><updated>2007-08-01T00:58:45.656+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='xul'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Rich Internet Application? Rich Client?</title><content type='html'>最近在网上查资料，被Rich Client(富客户端)和&lt;a href="http://en.wikipedia.org/wiki/Rich_Internet_application"&gt;Rich Internet Application&lt;/a&gt;两个概念搞得头晕。虽然名词都是“相”，但大家约定清楚交流起来容易一些:-)。仔细研究一番之后，得出结论如下:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RIA在界面交互性上比简单的Web应用当然要强，界面表现能力也要丰富（这才所谓rich嘛）。但RIA强调“零安装”，界面和逻辑都是临时从服务器取得，已避免部署、升级方面的麻烦(从这个角度说，RIA更接近Thin Client)。但。大部分RIA技术都依托Web，在浏览器中实现(所以也常常被称为rich web application)，但可能需要安装一个运行库/解释器。目前的选择大致有Ajax, XForms, Flash(Apollo, Flex或者Laszlo)、SilverLight(WPF/E)，另外ActiveX和java applet好像也算。&lt;/li&gt;&lt;li&gt;Eclipse整天嚷嚷的副客户端(Rich Client)，似乎跟以前说的胖客户端(fat client)并没有太大的不同，要求安装很大一堆东西。只是现在大家都更加注重用户体验、模块化和快速开发。目前的选择有&lt;a href="http://www.eclipse.org/home/categories/rcp.php"&gt;Eclipse RCP&lt;/a&gt;, WPF(XAML), Mozilla XUL, JavaFX这些。这里出现的两个趋势是尽量简化界面的生成(比如用XML等结构化文件来描述界面)和采用脚本来编写逻辑（比如XAML, XUL, JavaFX等).&lt;/li&gt;&lt;/ul&gt;不过网上很多文章谈到rich client时，可能还是关注在“用户体验”的丰富性上。所以才会有“OpenLaszlo 是一种&lt;span style="color: rgb(153, 51, 0);"&gt;富客户机&lt;/span&gt;应用程序架构"、“Flash成web浏览器标准&lt;span style="color: rgb(102, 0, 0);"&gt;, 富客户端&lt;/span&gt;指日可待”这样一些说法。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.faser.net/mab/img/mab_screenshot_01.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://www.faser.net/mab/img/mab_screenshot_th_01.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;其实Mozilla XUL完全满足两方面的要求，大家常用的Firefox, Thunderbird等可以类比为rich client, 而网站上直接提供XUL则就是RIA了。&lt;br /&gt;例如: &lt;a href="http://www.faser.net/mab/remote.cfm"&gt;Mozilla Amazon Browser&lt;/a&gt;, 如果你把它安装为一个Firefox插件或者独立程序，它可能又算一个rich client了。&lt;br /&gt;再例如&lt;a href="http://htmlhelp.dotsrc.org/"&gt;htmlhelp.dotsrc.org&lt;/a&gt;提供的API浏览器, 左边是一个XUL编写的导航栏，比如&lt;a href="http://htmlhelp.dotsrc.org/book.xul.php?book=python"&gt;Python&lt;/a&gt;, &lt;a href="http://htmlhelp.dotsrc.org/book.xul.php?book=gtk"&gt;GTK+&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;链接:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Rich_Internet_application"&gt;wikipedia: Rich Internet Application&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/cn/web/wa-richiapp/"&gt;IBM developerWorks: Rich Internet Application的技术选项&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/home/categories/rcp.php"&gt;Eclipse Rich Client Platform&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8236540688396171288?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8236540688396171288/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8236540688396171288' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8236540688396171288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8236540688396171288'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/07/rich-internet-application-rich-client.html' title='Rich Internet Application? Rich Client?'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6021742848265122518</id><published>2007-07-30T23:22:00.001+08:00</published><updated>2007-07-30T23:27:55.421+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Document Map in Firefox</title><content type='html'>浏览网站碰到比较长的网页时，总是想起&lt;a href="http://www.dillo.org/"&gt;dillo&lt;/a&gt;里面那个文档结构图菜单，它会把网页中的h1 - h6等heading搜索出来列在菜单上，你选一个就跳过去了，不必要网页作者在网页上自己做一个"目录"。&lt;br /&gt;&lt;br /&gt;在Firefox Add-ons里面搜索了一下，找到了&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/475"&gt; Document Map&lt;/a&gt;这个插件(&lt;a href="http://blog.xwolf.de/wp-content/uploads/2006/09/documentmap-shot.jpg"&gt;screenshot&lt;/a&gt;)，它提供类似的功能，只不过是采用sidebar来做的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6021742848265122518?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6021742848265122518/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6021742848265122518' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6021742848265122518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6021742848265122518'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/07/document-map-in-firefox.html' title='Document Map in Firefox'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4918533075962695080</id><published>2007-07-12T22:01:00.001+08:00</published><updated>2007-07-12T22:20:32.832+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='total commander'/><title type='text'>采用Total Commander打开目录</title><content type='html'>虽然有些新手觉得&lt;a href="http://www.ghisler.com/"&gt;Total Commander&lt;/a&gt;跟Windows Explorer风格差异太大而不容易上手，但这对我并不是一个问题，因为我用它已经有七八年了。我现在基本不用Explorer。加上最近不知道为啥我的Explorer打开特别慢，就更不爱用它。&lt;br /&gt;&lt;br /&gt;机器上装了&lt;a href="http://desktop.google.com/"&gt;Google Deskto&lt;/a&gt;p，对于找到的文件，它提供了一个"打开文件夹"的功能，但很不爽的是，它总用Explorer打开。忍受不下去了，我开始想在它在Total Commander中打开。&lt;br /&gt;&lt;br /&gt;到Google Desktop的安装目录和它的注册表中看了一下，没什么可以配置的。&lt;br /&gt;然后上Google Desktop网站，想找一个可以设置这个的插件什么的，也没有。&lt;br /&gt;&lt;br /&gt;猜想它是调用ShellExecute来打开的，接着就试图修改注册表中"目录(Directory)"和"文件夹(Folder)"的关联: HKCR\Directory\shell\下并没有open动作, 我添加了并设置命令为&lt;span style="color: rgb(153, 51, 0);"&gt;C:\Totalcmd\totalcmd.exe /O "%1"&lt;/span&gt;之后，ShellExecute(...,"open", ...)没有什么变化，会返回5(ERROR_ACCESS_DENIED)，恢复原来的就可以正常打开，奇怪; 修改HKCR\Folder\shell\open\command的值再试却没反应。&lt;br /&gt;&lt;br /&gt;某天发现&lt;a href="http://www.gpsoft.com.au/"&gt;Directory Opus&lt;/a&gt;这个软件可以跟Windows系统集成，接管文件夹的打开操作，就安装了一个试用版本，发现它是这样的:&lt;br /&gt;1. 先给HKCR\Directory\shell\下添加一个动作dopus(再下面command键值设置为dopus的命令行)&lt;br /&gt;2. 将HKCR\Directory\shell的缺省值由none改为dopus，这样它的缺省动作就是dopus了&lt;br /&gt;(对于Folder也同样设置。Folder是文件夹，包含Directory和其它一些不跟实际文件系统目录对应的)&lt;br /&gt;&lt;br /&gt;俺照猫画虎，添加了一个wincmd动作，将Directory的缺省动作设置为wincmd，再试，搞定！&lt;br /&gt;&lt;br /&gt;转成注册表操作就是如下:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new,monospace;"&gt;[HKEY_CLASSES_ROOT\Directory\shell]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;"&gt;@="wincmd"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;"&gt; [HKEY_CLASSES_ROOT\Directory\shell\wincmd]&lt;/span&gt; &lt;span style="font-family:courier new,monospace;"&gt;&lt;br /&gt;@="Open in Total Commander"&lt;/span&gt;   &lt;span style="font-family:courier new,monospace;"&gt;[HKEY_CLASSES_ROOT\Directory\shell\wincmd\command]&lt;/span&gt; &lt;span style="font-family:courier new,monospace;"&gt; @="C:\\Totalcmd\\totalcmd.exe /O \"%1\""&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;补充说明：&lt;br /&gt;1. 这只对ShellExecute时没有指定第二个参数(动作)时是可行的，而Google Desktop恰恰是这样，"运行"对话框也是。但如果它指定了动作是"open"，那就只会走open动作了&lt;br /&gt;2. HKCR\Folder\shell\command的值是REG_EXPAND_SZ格式而不是通常的REG_SZ(字符串)格式，奇怪&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4918533075962695080?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4918533075962695080/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4918533075962695080' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4918533075962695080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4918533075962695080'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/07/total-commander.html' title='采用Total Commander打开目录'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1327029175883959442</id><published>2007-07-10T23:28:00.000+08:00</published><updated>2007-07-30T23:35:59.520+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='cities'/><title type='text'>澳门</title><content type='html'>&lt;a href="http://picasaweb.google.com/bamanzi/20070702/photo#5089297526058677202"&gt;&lt;img src="http://lh3.google.com/bamanzi/RqDRIr0Ac9I/AAAAAAAAA7o/D8qHs9ES3rE/s144/%E7%85%A7%E7%89%87%20003.jpg" /&gt;&lt;/a&gt;  著名的葡京赌场（不过叫“娱乐场”），侧面（可惜后来在正面忘记拍照了，那可真是金碧辉煌啊&lt;br /&gt;  &lt;a href="http://picasaweb.google.com/bamanzi/20070702/photo#5089305295654515906"&gt;&lt;img src="http://lh4.google.com/bamanzi/RqDYM70AdMI/AAAAAAAAA9s/T-SvU0q8uLs/s144/%E7%85%A7%E7%89%87%20013.jpg" /&gt;&lt;/a&gt; 澳门的摩托车相当多，这应该跟他们的路比较窄有很大关系&lt;br /&gt;  &lt;a href="http://picasaweb.google.com/bamanzi/20070702/photo#5089303908380079250"&gt;&lt;img src="http://lh5.google.com/bamanzi/RqDW8L0AdJI/AAAAAAAAA9U/PYYvX1YYvNo/s144/%E7%85%A7%E7%89%87%20104.jpg" /&gt;&lt;/a&gt; 市政厅附近&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1327029175883959442?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1327029175883959442/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1327029175883959442' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1327029175883959442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1327029175883959442'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/07/blog-post_10.html' title='澳门'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5030080065555212077</id><published>2007-07-04T23:51:00.000+08:00</published><updated>2007-07-06T22:07:42.388+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Firefox扩展实例分析: IETab (2)</title><content type='html'>接下来的问题就是: Firefox里面的每个Tab页都是一个browser对象，里面显示网页，是调用Gecko来显示的，XUL的overlay对这个没有作用，怎么把这个object标签塞进去？即使想用xbl，也得有个可以让我们重新绑定的tag啊。&lt;br /&gt;&lt;br /&gt;IETab是这样解决这个问题的: 将这个object标签写入一个HTML文件 &lt;a href="http://www.mozdev.org/source/browse/ietab/src/extension/ietab/chrome/ietab/content/reloaded.html?rev=1.25&amp;content-type=text/x-cvsweb-markup"&gt;chrome://ietab/content/reloaded.html&lt;/a&gt;, Tab中加载这个网页(其实XUL里面也是可以直接采用HTML标签的，因为都是Gecko来进行显示，所以这个browser显示一个XUL或者HTML都可以)。&lt;br /&gt;&lt;br /&gt;如果采用IETab浏览http://www.microsoft.com，对于Firefox而言这个Tab页面的URL实际 是: chrome://ietab/content/reloaded.html?url=http://www.microsoft.com。前面那个 reloaded.html这个中又有一段脚本，在window.onpageshow中将上述网址中的url参数解析出来，传给里面嵌入的IE object:&lt;br /&gt;&lt;blockquote&gt;function init() {&lt;br /&gt;&lt;pre&gt;  var m=/(\?url=)(\S+)$/.exec(document.location.href);&lt;br /&gt;if(m) document.getElementById("IETab").navigate(decodeURI(m[2]));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;window.onpageshow=function(e){if(e.persisted)window.setTimeout(init,0);}&lt;/pre&gt;&lt;/blockquote&gt;也许有朋友会问: 怎么在Firefox地址栏显示的是http://www.microsoft.com而不是前面说的那个chrome://...呢？看看&lt;a href="http://www.mozdev.org/source/browse/ietab/src/extension/ietab/chrome/ietab/content/ietabOverlay.js?rev=1.93&amp;amp;content-type=text/x-cvsweb-markup"&gt;ietabOverlay.js&lt;/a&gt;就 明白了: 它把browser的currentURI属性的获取方法给动态替换了(见 hookBrowserGetter和getCurrentIeTabURI函数)，为了完备还把urlbar的value属性获取方法、browser 的sessionHistory等给替换了。这种用法以前俺倒是没有见过，算是又学了一招，不过IETab的这种做法不是很可靠，很容易失效。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5030080065555212077?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5030080065555212077/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5030080065555212077' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5030080065555212077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5030080065555212077'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/07/firefox-ietab-2.html' title='Firefox扩展实例分析: IETab (2)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-8112278461362221369</id><published>2007-07-02T22:44:00.000+08:00</published><updated>2007-07-07T00:20:37.402+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cities'/><title type='text'>大连</title><content type='html'>&lt;a href="http://picasaweb.google.com/bamanzi/200707/photo#5082618837052393570" title="大连街头"&gt;&lt;img src="http://lh4.google.com/bamanzi/RokW50c3iGI/AAAAAAAAA4U/Ntgqz0-HesM/s144/100_2615.JPG" /&gt;&lt;/a&gt;     &lt;a href="http://picasaweb.google.com/bamanzi/200707/photo#5082620327406045458" title="星海广场"&gt;&lt;img src="http://lh3.google.com/bamanzi/RokYQkc3iRI/AAAAAAAAA5s/na87UpXKuLo/s144/100_2657.JPG" /&gt;&lt;/a&gt;    &lt;a href="http://picasaweb.google.com/bamanzi/200707/photo#5082620722543036738" title="俄罗斯风情街"&gt;&lt;img src="http://lh3.google.com/bamanzi/RokYnkc3iUI/AAAAAAAAA6E/fGkLIab_60g/s144/100_2675.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;对大连的第一印象，就是这个城市相当漂亮，街道宽畅干净，路上居然还有拖尾巴的电车。楼房有着多国风情，看上去相当舒服，并且没有特别高的住宅楼（反正我是觉得那种楼住着没味道），不愧是最适合居住的城市之翘楚。&lt;br /&gt;&lt;br /&gt;这次出差，在大连就两天，自由时间很少，只去了星海广场和俄罗斯风情街看了看。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ditu.google.com/maps?f=q&amp;q=%E5%A4%A7%E8%BF%9E+%E6%98%9F%E6%B5%B7%E5%B9%BF%E5%9C%BA&amp;amp;amp;ie=UTF8&amp;hl=zh-CN&amp;amp;latlng=0,0,16511180902386496344&amp;ei=VGuORpujHKeIjQOw-v3lDw&amp;amp;sig2=TQixXF73nI3NttrZ3EyC_w&amp;cd=1"&gt;星海广场&lt;/a&gt;怎么这么大啊，太浪费地盘了吧......&lt;br /&gt;&lt;br /&gt;晚上8点多钟上街溜达，居然大多数店铺都已经打烊了。地下通道也都明亮整洁（不象深圳，肯花20亿修市政府，还美其名曰市民中心，就是不舍得多建几座好点的过街天桥什么的）。&lt;br /&gt;&lt;br /&gt;走到路口，看见一个广场叫“&lt;a href="http://ditu.google.com/maps?f=q&amp;amp;amp;hl=zh-CN&amp;geocode=&amp;amp;q=%E5%A4%A7%E8%BF%9E+%E4%B8%AD%E5%B1%B1%E5%B9%BF%E5%9C%BA%E7%81%AB%E8%BD%A6%E7%AB%99&amp;sll=38.921857,121.643929&amp;amp;sspn=0.007145,0.020084&amp;ie=UTF8&amp;amp;amp;latlng=0,0,880192209140764225&amp;ei=p2qORq7LGJOIjQPLj_3oDw&amp;amp;sig2=doYgHWiRnnEHnJ7j70olUw&amp;amp;cd=1"&gt;中山广场&lt;/a&gt;”，有不少人在广场上玩。转头发现这个广场不是十字路口，而是一个“十路路口”，有十条路汇到这个广场上来，我刚才是从哪条路过来的？啊，晕了&lt;br /&gt;&lt;br /&gt;大连的机场怎么离市区这么近？而且周围还有好多住宅楼。在机场碰见同来的同事，他说他家就住在机场对面，奇怪，居然也不觉得吵。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-8112278461362221369?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/8112278461362221369/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=8112278461362221369' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8112278461362221369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/8112278461362221369'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/07/blog-post.html' title='大连'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3286090104116068194</id><published>2007-07-01T22:05:00.000+08:00</published><updated>2007-07-05T00:25:37.326+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Firefox扩展实例分析: IETab (1)</title><content type='html'>IETab是大家在Windows下常用的Firefox扩展之一，用它可以浏览那些费用IE不可的网页。&lt;br /&gt;&lt;br /&gt;大概浏览了一下IETab扩展的文件列表，没几个文件，以为这个插件比较简单，也就是嵌入了一个IE的ActiveX进来，再处理一下对应的命令等。&lt;br /&gt;&lt;br /&gt;但仔细琢磨一下就发现没有那么简单，怎么嵌入一个IE进去？看了这么久的XUL相关资料，都没有看到哪里讲解当“控件”不够用时应该怎么办，得改Gecko的源代码？&lt;br /&gt;&lt;br /&gt;查看IETab发现它采用的是另外一条思路: 将IE的ActiveX控件包装成一个插件，跟Flash等插件一样，采用HTML的object标签嵌入。&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;object id="IETab" type="application/ietab" style="width: 100%; height: 100%;"&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;跟IE里面广泛使用的ActiveX不一样，这里这种插件是采用原来netscape定义的&lt;a href="http://web.archive.org/web/20040203041440/http://devedge.netscape.com/library/manuals/2002/plugin/1.0/"&gt;NPAPI&lt;/a&gt;接口与浏览器打交道的，这个API接口是cross-browser的（倒是IE 5.5之后似乎不再支持这个API接口，你得用&lt;a href="http://www.mozilla.org/projects/plugins/plugin-host-control.html"&gt;另一个ActiveX控件&lt;/a&gt;来增加NSAPI支持，这跟Firefox上的&lt;a href="http://forums.mozine.cn/index.php?showtopic=2350"&gt;npActiveXPlugin&lt;/a&gt;恰好相反，后者是用NPAPI包装了一个ActiveX容器，使得ActiveX控件可以在Firefox中使用）。&lt;br /&gt;&lt;br /&gt;这个npietab.dll插件对外提供了navigate(), goBack()/goForward(), refresh(), stop(), saveAs()等方法和title, url等属性(详见&lt;a href="http://www.mozdev.org/source/browse/ietab/src/interface/nsIIeTabPlugin.idl?rev=1.5&amp;content-type=text/x-cvsweb-markup"&gt;nsIIeTabPlugin.idl&lt;/a&gt;)，基本上都是原来IE控件相应功能的一个包装(详见&lt;a href="http://www.mozdev.org/source/browse/ietab/src/plug-in/scriptable/nsScriptablePeer.cpp?rev=1.14&amp;amp;content-type=text/x-cvsweb-markup"&gt;nsScriptablePeer.cpp&lt;/a&gt;文件)，只是为了可以在Firefox中可以再访问这些接口&lt;span style="font-size:85%;"&gt;(那么npActiveXPlugin对外提供那些接口呢？不同的ActiveX有不同的功能接口，npActiveXPlugin怎么就能通用于各个ActiveX呢？难道它目前没有提供可脚本化&lt;a href="http://www.mozilla.org/projects/plugins/npruntime.html"&gt;scriptability&lt;/a&gt;的能力? 没源代码就是不一样，琢磨起来比较费劲）&lt;/span&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3286090104116068194?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3286090104116068194/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3286090104116068194' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3286090104116068194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3286090104116068194'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/07/firefox-ietab-1.html' title='Firefox扩展实例分析: IETab (1)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5269859635165558463</id><published>2007-06-30T22:17:00.000+08:00</published><updated>2007-07-06T22:41:44.566+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cities'/><title type='text'>沈阳</title><content type='html'>&lt;a href="http://picasaweb.google.com/bamanzi/200706/photo#5081516306062608306"&gt;&lt;img src="http://lh5.google.com/bamanzi/RoUsKEc3h7I/AAAAAAAAA24/UT9pQL6Qy6M/s144/100_2553.JPG" /&gt;&lt;/a&gt;      &lt;a href="http://picasaweb.google.com/bamanzi/200706/photo#5081516361897183218"&gt;&lt;img src="http://lh6.google.com/bamanzi/RoUsNUc3h_I/AAAAAAAAA3Y/42ElkwOSaRE/s144/100_2567.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;沈阳、上海、武汉这些地方都有“街客”这样的饮品店，夏天卖冷饮，冬天卖热饮，很方便啊。为啥深圳没有呢？小乐说，深圳有凉茶啊。不过感觉还是不太一样&lt;br /&gt;&lt;/li&gt;&lt;li&gt;沈阳的饭馆菜量真是足啊，在深圳呆几年过来，一不留神就点多了&lt;/li&gt;&lt;li&gt;没想到沈阳故宫这么小，而且这皇上呆的地方好像也不咋样啊&lt;/li&gt;&lt;li&gt;在中街吃了沈阳有名的老边饺子和李连贵熏肉大饼。不过居然还有莼菜汤，难得，但价钱暴贵，一份汤要了48元&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5269859635165558463?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5269859635165558463/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5269859635165558463' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5269859635165558463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5269859635165558463'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/06/blog-post_30.html' title='沈阳'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-2079784451737774069</id><published>2007-06-30T20:39:00.000+08:00</published><updated>2007-07-02T20:41:25.385+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>ActiveState出了个Komodo Edit</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.activestate.com/_images/untour/thumbs/thumb_write_great_code.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px;" src="http://www.activestate.com/_images/untour/thumbs/thumb_write_great_code.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;估计是为了给&lt;a href="http://www.activestate.com/Products/komodo/"&gt;Komodo IDE&lt;/a&gt;增加一些影响力，&lt;a href="http://www.activestate.com/"&gt;ActiveState&lt;/a&gt;又推出了一个&lt;a href="http://www.activestate.com/Products/komodo_edit/"&gt;Komodo Edit&lt;/a&gt;，是免费的，但只有代码编辑(带calltip、语法检查)和工程管理功能，没有IDE里面调试、版本管理集成、交互Shell等功能。&lt;br /&gt;&lt;br /&gt;但这个Komodo Edit的功能点上来说，没有太大吸引力，现在有很多功能比它强的编辑器，并且不需要30多M的安装包。&lt;br /&gt;&lt;br /&gt;我对这个东西有兴趣只是因为通过装一个来看看它是怎么通过扩展Mozilla来实现这些功能的，比如ActiveState开发了&lt;a href="http://aspn.activestate.com/ASPN/Downloads/Komodo/PyXPCOM/"&gt;PyXPCOM&lt;/a&gt;，使得大家也可以采用Python来编写XPCOM Components了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-2079784451737774069?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/2079784451737774069/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=2079784451737774069' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2079784451737774069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2079784451737774069'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/07/activestatekomodo-edit.html' title='ActiveState出了个Komodo Edit'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6650599789762407934</id><published>2007-06-20T23:42:00.000+08:00</published><updated>2007-06-20T23:54:55.972+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><title type='text'>关于blogspot.com不能正常访问的问题</title><content type='html'>这个Blog本来发布在 http://bamanzi3.blogspot.com，但blogspot.com时不时就被GFW给封锁掉。虽然用&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2864"&gt;gladder&lt;/a&gt;这样的扩展可以搭个梯子爬过GFW，但这对于读者总是一个麻烦。&lt;br /&gt;&lt;br /&gt;我将Blog搬迁到了这里，有朋友还是看出是用blogger.com提供的服务，问是怎么搞的。其实很简单: blogger支持按ftp/sftp的方式发布，将blog文章发布到你指定的ftp站点上。只是这种情况下新的模板就不能用了(就是那个可以拖布局、加部件的模板)，只能切换到老模板(Classic Template)。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://help.blogger.com/bin/answer.py?answer=55373"&gt;自己搞个域名&lt;/a&gt;应该也可以解决这个问题。&lt;br /&gt;&lt;br /&gt;BTW: blogger的中文翻译真不咋的，常常要切回英文才能看懂是啥意思。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6650599789762407934?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6650599789762407934/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6650599789762407934' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6650599789762407934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6650599789762407934'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/06/blogspotcom.html' title='关于blogspot.com不能正常访问的问题'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7195949489028766267</id><published>2007-06-20T22:00:00.000+08:00</published><updated>2007-11-17T23:43:29.113+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='tv'/><title type='text'>Lost 第三季看完了</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lib.verycd.com/2006/10/05/0000122670.html"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 135px;" src="http://img.verycd.com/post_thumbs/0703/post-433743-1173810653_thumb.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;更加晕晕乎乎了。如果说X档案看着比较晕，但大致在讲什么还是很清楚的。但&lt;a href="http://abc.go.com/primetime/lost/index"&gt;&lt;span style="font-style: italic;"&gt;Lost&lt;/span&gt;&lt;/a&gt; 到底讲些什么就说不清楚了。 Ben他们在岛上到底搞些什么？达摩组织和他们有什么不同？John Locke到底是哪路神仙？Naomi又代表了哪一派？看最后两集，Jack应该对带领他们离开很是后悔，到底那时发生了什么？&lt;br /&gt;&lt;br /&gt;在豆瓣上看见&lt;a href="http://www.douban.com/group/topic/1654363/"&gt;一篇“剧透”&lt;/a&gt;，据说是以后的大致故事发展。似乎又跟平行时空之类的搭上了关系，还是晕。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7195949489028766267?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7195949489028766267/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7195949489028766267' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7195949489028766267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7195949489028766267'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/06/lost.html' title='Lost 第三季看完了'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-2450837435486581500</id><published>2007-06-14T23:26:00.000+08:00</published><updated>2008-01-12T12:14:34.782+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='mplayer'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>用strace定位totem不能播放rmvb的问题</title><content type='html'>俺在新装的ubuntu上装了totem, 并且是totem-xine，当然缺省是不能播放rmvb的，得自己来折腾了。&lt;br /&gt;&lt;br /&gt;其实开始装的是totem-gstreamer, 试验totme能否播放rmvb的时候totem会问是否要自动搜索解码器，选了是，它就给我搞了个安装gstreamer-ffmpeg，结果也如所料：放不了rmvb。&lt;br /&gt;&lt;br /&gt;先是试着将debian上/usr/lib/win32目录进行符号链接过来(ln -s /mnt/debian/usr/lib/win32 /usr/lib/win32)，还是不行。&lt;br /&gt;&lt;br /&gt;再按一些网上帖子说的，到&lt;a href="http://www.mplayerhq.hu/MPlayer/releases/codecs/"&gt;mplayer网站下载&lt;/a&gt;rp9codecs-200?????.tar.bz2，解压动态库到~/.gnome2/totem-addons，仍旧不行。又试验了w32codecs，不行。&lt;br /&gt;&lt;br /&gt;再就直接去找&lt;span style="font-weight: bold;"&gt;realplayer&lt;/span&gt;了，&lt;a href="http://www.real.com/linux"&gt;http://www.real.com/linux&lt;/a&gt; 默认的那个已经很旧了，有很多依赖库都不好解决，点那个&lt;a href="http://forms.helixcommunity.org/helix/builds/"&gt;nightly build&lt;/a&gt;应该可以下载到最新的版本。不过我是找了个&lt;a href="http://archive.canonical.com/ubuntu/pool/main/r/realplay/realplay_10.0.8-0ubuntu3_i386.deb"&gt;edgy的非官方包&lt;/a&gt;装在feisty上(从&lt;a href="http://archive.canonical.com/ubuntu/dists/feisty-commercial/main/binary-i386/Packages.gz"&gt;包索引&lt;/a&gt;可以看出, 那上面还没有feisty版本的realplayer，也许你看的时候已经有了)。&lt;br /&gt;不过这个东西装上之后一运行realplay就segfault了，这很多帖子说过，是跟scim冲突的问题，修改/usr/bin/realplay，在里面添加一行"export GTK_IM_MODULE="就可以了。&lt;br /&gt;然后很可能播放时画面或者声音会有些卡，装个alsa-oss可以解决: 仍旧修改/usr/bin/realplay，在它执行realplay.bin那行(目前是第73行)加上一个aoss就可以了。&lt;br /&gt;综合前面两条，/usr/bin/realplay最后几行是这样&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;REALPLAYBIN=$HELIX_LIBS/realplay.bin&lt;br /&gt;if [ -n "$DEBUG" -a -x "$CATCHSEGV" ]; then&lt;br /&gt;$CATCHSEGV $REALPLAYBIN ${1+"$@"}&lt;br /&gt;else&lt;br /&gt;while /bin/true; do&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;export GTK_IM_MODULE=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;export XMODIFIERS=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;aoss&lt;/span&gt; $REALPLAYBIN "$@"&lt;br /&gt;&lt;/code&gt;&lt;code&gt;       # Restart the player if exit code is 10&lt;/code&gt;&lt;br /&gt;&lt;code&gt;       if [ $? -ne 10 ]; then&lt;br /&gt; break&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;fi&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;现在可以在realplayer里播放rmvb了，回到totem，还是不行（也许有朋友要问，为啥非得用totem不用realplayer放啊，这是因为totem有gnome-vfs支持，可以从网络共享上直接播放，:-)。我用&lt;span style="font-family:courier new;"&gt;strings /usr/bin/totem-xine | grep addons&lt;/span&gt;查过了，结果为空，所以觉得很多网友虽然说将codecs库放到~/.gnome2/totem-addons那样可以，但现在也许已经改掉了（刚下载了totem源代码，还没有来证实)。&lt;br /&gt;&lt;br /&gt;于是祭出strace，顺便打开totem的debug开关:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; strace totem --debug &gt; trace.out 2&gt;&amp;amp;1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;在totem中打开一个rmvb文件，它报告不能播放该格式文件，关闭退出totem.&lt;br /&gt;然后用vi打开trace.out，查找open或者fstat/fstat64调用，或者codec字样，然后我看到如下内容:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;stat64("/usr/local/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/usr/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/usr/lib/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/opt/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/usr/lib/RealPlayer9/users/Real/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("&lt;span style="color: rgb(51, 102, 255);"&gt;/usr/lib/RealPlayer10/codecs/drvc.so&lt;/span&gt;", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/usr/lib64/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/usr/lib64/RealPlayer9/users/Real/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/usr/lib64/RealPlayer10/codecs/drvc.so", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/usr/lib/codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;stat64("/usr/lib/win32/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;这里可以看到它搜索了/usr/lib/RealPlayer10目录，但realplayer目前的安装目录是/usr/lib/realplayer-10.0.8，于是创建一个符号连接解决问题。&lt;br /&gt;&lt;br /&gt;总结一下: 从上面的strace输出可以看出，将drv3.so.6.0放到/usr/lib/win32或者/usr/lib/codecs应该也是可以的，我卸载realplay后重新用rp9codecs或者w32codecs试验，也的确可以，不知道原来哪里有问题 :-(&lt;br /&gt;奇怪的是，它在/usr/lib/RealPlayer10目录搜索的是drvc.so，在其他目录搜的却是drv3.so.6.0.&lt;br /&gt;&lt;br /&gt;P.S 请卸载libxine1-ffmpeg库，否则你用totem播放rmvb时，它会用ffmpeg里面提供的音频解码器（在"属性"中可以看到其编解码器名称)，造成没有声音。&lt;br /&gt;&lt;br /&gt;又: 刚才发现&lt;a href="http://ubuntu.cn99.com/ubuntu-cn/dists/feisty/main/binary-i386/media/"&gt;一个地方&lt;/a&gt;有realplay/w32codecs的包，写的是feisty版本，不知道是不是。不过偶尔找个老版本装也没有什么问题，尤其这几个对其他包依赖不太强的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-2450837435486581500?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/2450837435486581500/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=2450837435486581500' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2450837435486581500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/2450837435486581500'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/06/stracetotemrmvb.html' title='用strace定位totem不能播放rmvb的问题'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7874915529969319726</id><published>2007-06-09T22:50:00.000+08:00</published><updated>2007-06-16T00:11:49.423+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Ubuntu初步印象</title><content type='html'>都在说ubuntu好，也忍不住要试试，于是搞了份feisty装上。这东西用起来跟Debian差不多, 除了main, 把restricted, universe和multiverse也加到/etc/apt/source.list中，就可以装kde和其他很多软件了，包括一些非开源软件。基本感觉挺好的：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;中文字体基本上挺好(并且opera这类Qt程序默认字体也挺好的，俺在Debian下的那个比较难看，也不知道怎么配)；&lt;/li&gt;&lt;li&gt;无线网卡也不需要我自己下载firmware就直接可以用了；&lt;/li&gt;&lt;li&gt;SD卡什么的直接接上去就有窗口显示文件(俺的Debian上原来好的，后来不知道怎么就不能识别出来了)；&lt;/li&gt;&lt;li&gt;中文输入法也配置好了；&lt;/li&gt;&lt;li&gt;主菜单上还有一个“添加/删除..."可以选一些常用软件装上，不用自己记录那么多软件包名了...&lt;/li&gt;&lt;/ul&gt;不过还有几点不爽:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;我在Debian上偷用Ubuntu的内核是为了能休眠，现在直接装了个ubuntu，它自己反倒不能休眠了&lt;/li&gt;&lt;li&gt;gaim登录QQ登录不上，老报告密码不对&lt;br /&gt;&lt;/li&gt;&lt;li&gt;输入法SCIM不如小企鹅方便，至少使用小企鹅时，各个应用程序是否切换到中文输入是独立的，不会相互干扰&lt;/li&gt;&lt;li&gt;totem/mplayer不能放rmvb文件，想找个直接能装realplayer和w32codecs的源没找到，得自己折腾了&lt;/li&gt;&lt;li&gt;kmess装上其网站提供的1.5pre2版本autopackage包后运行不起来&lt;/li&gt;&lt;li&gt;鼠标中键不起作用，得同时按左右键，修改一下/etc/X11/xorg.conf，给Pointer添加Emulate3Buttons选项(其值为false)可以解决&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;虽然GNOME什么的都可以用最新(几乎)的版本了，这方面倒没觉得有太大不同。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7874915529969319726?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7874915529969319726/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7874915529969319726' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7874915529969319726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7874915529969319726'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/06/ubuntu.html' title='Ubuntu初步印象'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-7227070615094486233</id><published>2007-06-06T21:11:00.000+08:00</published><updated>2007-06-12T21:43:18.292+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>GNOME links</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.eshangrao.com/index.php/2006/06/05/225-linux"&gt;Linux下的复活节彩蛋&lt;/a&gt;。包括两个GNOME的: 在运行对话框中输入free the fish或者gegls from outer space&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.inlsd.org/projects/lunar-applet/"&gt;带有农历的calender applet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://linuxtoy.org/archives/gnome-menu-file-browser-applet.html"&gt;Menu file brower applet&lt;/a&gt; 快速导航自己的文件&lt;/li&gt;&lt;li&gt;&lt;a href="http://linuxtoy.org/archives/change-qt-applications-look-and-feel-under-gnome.html"&gt;更改GNOME下Qt程度的外观&lt;/a&gt; (qtconfig)&lt;/li&gt;&lt;li&gt;&lt;a href="http://linuxtoy.org/archives/gnome_specimen.html"&gt;GNOME Specimen&lt;/a&gt; 字体查看及效果比较&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-7227070615094486233?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/7227070615094486233/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=7227070615094486233' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7227070615094486233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/7227070615094486233'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/06/gnome-links.html' title='GNOME links'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-410921224242557994</id><published>2007-06-01T12:10:00.000+08:00</published><updated>2007-06-17T12:28:47.596+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cities'/><title type='text'>武汉杂感</title><content type='html'>出差到武汉，已经呆了4天了。虽然上次到武汉是两年前，但那时只是路过，在朋友家过了一夜，没有什么时间看看武汉的变化。说起来上次看到武汉应该是六年前了。&lt;br /&gt;&lt;br /&gt;武汉比以前漂亮了好多，尤其是街道，破旧的房子也少了。&lt;br /&gt;&lt;br /&gt;武汉这些天不怎么热，想是前段时间下雨太多的缘故。&lt;br /&gt;&lt;br /&gt;出得门去，总习惯拿这个城市跟深圳比，发现他们活得悠闲得多，自在得多。突然觉得我这种老要去比的想法很不好，为什么非要在意跟别人的比较呢？&lt;br /&gt;&lt;br /&gt;街上居然还有卖栀子花的，碰见好几次，终于忍不住了，问有什么用。“就是香啊，买回去放着，屋子里都是香味”。想不到还有这么简单的用途。再次碰见栀子花的时候，买了两束，一共一块五。这次老乡说，还有些人拿去用叶子泡茶喝，有xxxxx用途。&lt;br /&gt;&lt;br /&gt;同样是出门在外，这次可以跟小乐通过短信和MSN聊天，倒也没觉得无聊。&lt;br /&gt;&lt;br /&gt;某天傍晚，吃了晚饭，自己出去乱逛。天渐渐黑了，不少人坐在街边纳凉，迎面走了几个年轻人，一边走一边在讨论今天的麻将赢了还是输了。&lt;br /&gt;&lt;br /&gt;最后一天，忙完了工作，下午有点空闲，就坐上公交，只要一块钱，便宜啊。到江边转轮渡，打算去江汉路转转。&lt;br /&gt;&lt;br /&gt;在江汉路吃了一份三鲜豆皮，喝了一杯米酒，挺爽。不过臭豆腐怎么不臭呢？不爽。还吃了一份重庆的叶儿粑。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-410921224242557994?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/410921224242557994/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=410921224242557994' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/410921224242557994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/410921224242557994'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/06/blog-post.html' title='武汉杂感'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-3027773129826167924</id><published>2007-05-30T00:17:00.000+08:00</published><updated>2007-05-30T01:00:57.997+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Eclipse 里面集成Mozilla</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_E2PlYwJOK5I/RlxYIWqiWkI/AAAAAAAAA2A/T6juSPNmJps/s1600-h/eclipse-mozilla.gif"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_E2PlYwJOK5I/RlxYIWqiWkI/AAAAAAAAA2A/T6juSPNmJps/s640/eclipse-mozilla.gif" alt="" id="BLOGGER_PHOTO_ID_5070024181058525762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;(本图片摘自&lt;a href="http://developers.sun.com/learning/javaoneonline/2007/pdf/TS-9782.pdf"&gt;Ajax Toolkit Framework Tools in Eclipse幻灯片&lt;/a&gt;, 作者Philippe Ombredanne)&lt;br /&gt;&lt;br /&gt;在公司论坛上看见有人又再问有没有新版本的Eclipse，也总有热心的人共享出来，俺对这个东西不太感冒，虽然这个东西被称为RCP的热门首选，但考虑到Java程序的内存占用，俺还是觉得不太适合我们。不过还是翻了一下3.3版本的新功能说明，里面倒是有一点吸引了我（后来发现该说明不是官方的，而是来自“&lt;a href="http://www.duduwolf.com/wiki/2007/378.html"&gt;Eclipse在做什么&lt;/a&gt;"这篇网上日志）:&lt;br /&gt;&lt;blockquote&gt;忘了提Eclipse 3.3的又一大特性了，叫做“Moziila Everywhere”，是指在任何平台上都可以创建一个Browser控件但是使用Mozilla内核（及时该平台上没有安装Firefox）。这是怎 么实现的呢？其实很简单，它要求你必须安装一个xulrunner，后者是Mozilla的全部内核，包括Gecko布局引擎、Javascript解析 引擎、XUL解析引擎和XPCOM，其中每样东西都足够写一本书，有了这些，仅用XUL+Javascript就可以写出一个Firefox来， Eclipse洽是利用了这个特性，用Java连接XPCOM所以创建了一个Mozilla的Browser，但是没有任何行为，包括右键菜单。&lt;br /&gt;&lt;br /&gt;这 个Browser控件和缺省的Browser控件是不一样的，我们平时见到的缺省Browser控件，在Windows上用的是IE内核，在MacOSX 上用的是Safari，在Linux上。。。不知道，所以它是最最简单的浏览器，不具备任何可以定制的功能，除了显示一张HTML页面外，没有任何用处。 （你该不会想用Eclipse写一个傲游出来吧）&lt;br /&gt;&lt;br /&gt;但是Mozilla内核的浏览器控件就不同了，它意味着如果程序员平时为Firefox 写插件的形式，也可以被应用到RCP应用程序上来，设想一下我们拥有一个RCP+xulrunner的平台吧，RCP接收Java扩展， xulrunner接收xul和javascript扩展，那我们的平台——要么叫Fireclipse，要么叫Eclifox——就所向披靡了。即使不 利用它的可扩展性，单单就是能保证在不同平台上提供对Web应用程序的一致性展现一条，就足够臭美的了，更可以用写Eclipse插件的形式来限定浏览器 的行为。。。。。。唉，刚才是不是说过一个NetBeans in Eclipse啊？把那玩意扔了吧～～&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://developer.mozilla.org/en/docs/JavaXPCOM"&gt;&lt;/a&gt;如果现在整个Mozilla能嵌进去，并且能够通过&lt;a href="http://developer.mozilla.org/en/docs/JavaXPCOM"&gt;JavaXPCOM&lt;/a&gt;交互，那就非常爽了：我们的用户很期望将他们开发的工具集成起来，一直也期望我们这边能够提供一个平台，毕竟现在我们已经有数据管理这一部分了，但我们一直没有一个好的思路，Mozilla XUL/XPCOM是近期考虑的一个方向；另外一些用户又期望将平台搭建到Eclipse平台，毕竟现在这上面的东西已经有非常多了，可以很好地利用一下。&lt;br /&gt;&lt;br /&gt;现在既然这两块能够集成到一起，那么我们这边用Mozilla XUL/XPCOM来构建，他们想用Eclipse的就用，不想用的也可以直接用XUL和XPCOM。哈哈。&lt;br /&gt;&lt;br /&gt;BTW: 晚上试验了一下，可以将Mozilla（具体说是XUL Runner)嵌入到一个SWT程序中去，成为一个Web Browser, 但还没试验成功如何显示一个XUL界面（也许是我没搞对chrome地址)。&lt;br /&gt;&lt;br /&gt;参考:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a aiotitle="比较Eclipse与Mozilla中的COM/XPCOM Java Wrapper技术" href="http://liumspace.spaces.live.com/blog/cns%21BC24129FC2E42AFD%21122.entry"&gt;    比较Eclipse与Mozilla中的COM/XPCOM Java Wrapper技术&lt;/a&gt; (标题有点绕，其实是说Eclipse原来对COM的支持 vs Mozilla的JavaXPCOM 这二者)&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.mozilla.org/en/docs/JavaXPCOM"&gt;JavaXPCOM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mozilla.org/catalog/architecture/xpcom/pyxpcom/"&gt;PyXPCOM&lt;/a&gt;: 似乎Komodo的大部分组件都是用Python来搞的&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/mozilla.dev.extensions/browse_thread/thread/8e44f145ce738ef8/b5a5085a1d789b43"&gt;XPCOM in Delphi 7&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-3027773129826167924?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/3027773129826167924/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=3027773129826167924' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3027773129826167924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/3027773129826167924'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/05/eclipse-mozilla.html' title='Eclipse 里面集成Mozilla'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E2PlYwJOK5I/RlxYIWqiWkI/AAAAAAAAA2A/T6juSPNmJps/s72-c/eclipse-mozilla.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1005358851465066469</id><published>2007-05-27T12:14:00.000+08:00</published><updated>2007-05-27T13:11:09.583+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Mozilla XUL IDE?</title><content type='html'>在学习研究Mozilla XUL的过程中，觉得对于开发人员而言，最大的麻烦就是一切都得手工进行，缺乏一个集成开发环境。也许这是Mozilla XUL技术目前相对SilverLight(WPF/E), Apollo而言最大的一个障碍（微软总结经验说：你得先抓住开发人员的心）。&lt;br /&gt;&lt;br /&gt;但我们也不是啥都没有:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;如何知道每个XUL element有哪些属性、哪些事件? &lt;a href="http://www.xulplanet.com/references/elemref/"&gt;XUL Element Reference&lt;/a&gt;已经有了，不过这只是文档，查起来效率也够差的。 &lt;a href="http://www.mozilla.org/projects/inspector/"&gt;DOM Inspector&lt;/a&gt;可以提供一些信息，但还不是一个好的设计工具(对比GTK+ Glade或者Delphi的Object Inspector看看)；&lt;br /&gt;&lt;/li&gt;&lt;li&gt;如何知道目前有哪些XPCOM组件可用? 每个组件又都有哪些接口？XPCOM Component Viewer(&lt;a href="http://hacksrus.com/%7Eginda/cview/"&gt;mozilla版本&lt;/a&gt;, &lt;a href="https://addons.mozilla.org/firefox/addon/2230"&gt;firefox版本&lt;/a&gt;)可以部分解决这个问题，只是目前没法看到接口中每个方法/属性的说明（好像也没有看到一个类似的reference文档)；&lt;/li&gt;&lt;li&gt;如何调试程序?   &lt;a href="http://www.mozilla.org/projects/venkman/"&gt;JavaScript Debugger&lt;/a&gt;和JavaScript Console倒基本可以满足需要；&lt;/li&gt;&lt;li&gt;对于网页内容部分，&lt;a href="http://chrispederick.com/work/web-developer/"&gt;Web Developer&lt;/a&gt;够强了&lt;br /&gt;&lt;/li&gt;&lt;li&gt;所见即所得(WYGWYS)的UI设计器？嗯，这块还没有。&lt;/li&gt;&lt;/ul&gt;前面一段时间Mozilla社区一直在争论XULRunner的发展方向, 是只需要满足Firefox 3的需要呢，还是尽力将其发展成为一个通用的应用程序运行环境？现在似乎大家达成一致了：当然是后者。（其实这个目标是大家都渴望的，争论的中心在于做一个通用的运行环境的话，就得保证XULRunner对多个程序的兼容性，这涉及到向前兼容性、API冻结等等，势必拖累Firefox 3对XPFE的改造。于是有人又担心错过目前这个时机，Firefox的风头又被IE8抢过，那有可能我们什么都没有了）&lt;br /&gt;&lt;br /&gt;目标一致了，那就开始努力吧。今天在&lt;a href="http://www.mozpad.org"&gt;mozpad&lt;/a&gt;上看到了关于Mozilla IDE的计划:&lt;br /&gt;&lt;blockquote&gt;    Gather initial requirements for a Mozilla IDE. A future goal might be to form a project for specifying and then developing the IDE. This should probably be based on the work being done by Paul Rouget (&lt;a href="http://blog.mozbox.org/tag/codeeditor"&gt;Codeeditor&lt;/a&gt;), Alex Vincent (&lt;a href="http://verbosio.mozdev.org/"&gt;Verbosio&lt;/a&gt;) and/or Mark Finkle (&lt;a href="http://developer.mozilla.org/en/docs/XUL_Explorer"&gt;XULExplorer&lt;/a&gt;).&lt;br /&gt;&lt;/blockquote&gt;这三个工具都很有特色，如果把它们结合到一起（XUL Explorer现在已经把DOM Inspector和Verkman JavaScript Debugger结合进去了)，前景很不错。看来Mozilla IDE离我们不远了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1005358851465066469?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1005358851465066469/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1005358851465066469' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1005358851465066469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1005358851465066469'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/05/mozilla-xul-ide.html' title='Mozilla XUL IDE?'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-396884120625539711</id><published>2007-05-20T11:49:00.000+08:00</published><updated>2007-05-20T02:18:06.139+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Firefox扩展实例分析: Paste and Go 2(续)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;* 命令与事件&lt;/span&gt;&lt;br /&gt;mozilla里面的事件处理完全采用了生产 者-消费者（广播-观察)模型，这使得一个事件发生时(一个命令被执行，或者一个控件的某种状态发生改变)，响应可以有多个。&lt;br /&gt;&lt;br /&gt;比如这个插件里pg2-go-command和pg2-search- command两个命令是否disabled，是由被观察 (observes)的pg2-pastable-broadcaster来决定的，而这个broadcaster的状态改变又是检查cmd_paste 这个内置命令的状态来改变的，这个检查的时机是在地址栏(urlbar)的右键菜单显示或者隐藏时(&lt;a href="http://www.mozdev.org/source/browse/pasteandgo2/src/content/pasteandgo2.js?rev=1.40&amp;content-type=text/x-cvsweb-markup"&gt;见content/pasteandgo2.js&lt;/a&gt;):&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;const&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; CmdBroadcasterId = &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"pg2-pastable-broadcaster"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.pgUrlbar = &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;document&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.getElementById(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"urlbar"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.pgUrlbar.addEventListener(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"popupshowing"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, pgInstallGo, &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.pgUrlbar.addEventListener(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"popuphiding"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.enableCmds, &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.nativePasteCmd = &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;document&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.getElementById(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"cmd_paste"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.cmdBroadcaster = &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;document&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.getElementById(CmdBroadcasterId);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; isPasteDisabled = pgPrefsObserver.nativePasteCmd.getAttribute(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;disabled'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; pgPrefsObserver.cmdBroadcaster.setAttribute(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;disabled'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, isPasteDisabled);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; enableCmds: &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(event) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  pgPrefsObserver.cmdBroadcaster.setAttribute(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;disabled'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;false'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; }&lt;/span&gt; &lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;*  偏好(preference)&lt;/span&gt;&lt;br /&gt;与简单的GUI toolkit不同的是，Mozilla/XUL平台对于偏好(preference)数据考虑比较周全，比如偏好如何存储，如何处理用户设置与系统默认值，扩展如何扩充偏好项目，偏好数据改变(比如直接修改)如何让界面得到相应改变等等。&lt;br /&gt;&lt;br /&gt;在Paste and Go 2的代码&lt;a href="http://www.mozdev.org/source/browse/pasteandgo2/src/content/options.xul?rev=1.13&amp;content-type=text/x-cvsweb-markup"&gt;content/options.xul&lt;/a&gt;中， 我们还可以看到另一方面支持: 将一个偏好选项绑定到一个界面控件上，界面初始化时，可自动从偏好数据设置控件的值; 界面控件的值改变时，偏好数据也就变了，不用自己再费很多劲自己写脚本读写数据（想想我们很多时候写程序非常不情愿写个”选项“对话框，这算其中一个主要 原因)。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_E2PlYwJOK5I/Rk88hGqiWhI/AAAAAAAAA1k/gA0_snYBY2E/s1600-h/pasteandgo2-pref.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_E2PlYwJOK5I/Rk88hGqiWhI/AAAAAAAAA1k/gA0_snYBY2E/s800/pasteandgo2-pref.png" alt="" id="BLOGGER_PHOTO_ID_5066334645237471762" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;怎么样，很省事吧？MFC里面的DDX跟这个有点类似，但只能变量与控件值绑定这一步，缺乏将数据持久化 (persistence)功能。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-396884120625539711?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/396884120625539711/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=396884120625539711' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/396884120625539711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/396884120625539711'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/05/firefox-paste-and-go-2.html' title='Firefox扩展实例分析: Paste and Go 2(续)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_E2PlYwJOK5I/Rk88hGqiWhI/AAAAAAAAA1k/gA0_snYBY2E/s72-c/pasteandgo2-pref.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-6049698713846825814</id><published>2007-05-20T01:58:00.000+08:00</published><updated>2007-05-20T01:58:55.654+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Firefox扩展实例分析: Paste and Go 2</title><content type='html'>先看一个简单的插件Paste and Go 2，它的功能是：如果剪贴板有一个URL，那么它允许我们只通过一个操作直接转到那个网站去，而不是先在地址栏目粘贴再点击Go按钮; 对于搜索栏也有类似的功能。&lt;br /&gt;&lt;br /&gt;它的源代码可以直接通过网页查看: &lt;a href="http://www.mozdev.org/source/browse/pasteandgo2/src/"&gt;http://www.mozdev.org/source/browse/pasteandgo2/src/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* Overlay&lt;br /&gt;一般而言，XUL overlay文件是个不错的入口，通过它我们可以比较容易知道这个插件扩展了哪些界面元素，然后再根据界面元素去看其对应的代码。&lt;br /&gt;&lt;br /&gt;于是我们先看&lt;a href="http://www.mozdev.org/source/browse/pasteandgo2/src/content/pasteandgo2Overlay.xul?rev=1.8&amp;content-type=text/x-cvsweb-markup"&gt;content/pasteandgo2Overlay.xul&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E2PlYwJOK5I/Rk8zQWqiWgI/AAAAAAAAA1c/NjUiCAeA3Ok/s1600-h/pasteandgo2-overlay.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_E2PlYwJOK5I/Rk8zQWqiWgI/AAAAAAAAA1c/NjUiCAeA3Ok/s800/pasteandgo2-overlay.png" alt="" id="BLOGGER_PHOTO_ID_5066324461870012930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;这里定义了这个插件的stringbundle, key, command, broadcaster以及firefox特有的toolbarpalette配置。快捷键、命令这些都不是界面控件，但却是一个GUI程序所不可缺少的元素，mozilla/xul把这些功能都拆分了，可以通过overlay来添加和扩展，相当方便。&lt;br /&gt;&lt;br /&gt;* 通过脚本动态创建界面元素&lt;br /&gt;但这里没有见到右键点击地址栏时出现的那个Paste and Go菜单项，它是通过脚本&lt;a href="http://www.mozdev.org/source/browse/pasteandgo2/src/content/pasteandgo2.js?rev=1.40&amp;content-type=text/x-cvsweb-markup"&gt;content/pasteandgo2.js&lt;/a&gt;动态添加的(因为有个添加到"粘贴"后面还是菜单最后的选项):&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; pgInstallMenuItem(e, aID, aLabel, aCommand, aAccesskey) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  item = &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;document&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.createElement(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"menuitem"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  item.setAttribute(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"id"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, aID);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  item.setAttribute(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"label"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, aLabel);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  item.setAttribute(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"command"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, aCommand);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  item.setAttribute(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"accesskey"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, aAccesskey);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (pgPrefsObserver.pgPlaceAtBottom) { &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;// place at bottom&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   menu.appendChild(item);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  } &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;else&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; { &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;// else place next to paste&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; items = menu.childNodes;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; i=items.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;length&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;; i &gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;; i--) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; targetCmd = items[i].getAttribute(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"cmd"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(targetCmd == &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"cmd_paste"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;) { &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;// find out paste&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;     menu.insertBefore(item, items[i+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;这就是mozilla/xul相当方便的一个地方: 通过脚本可以动态地创建、删除界面元素或者设置它们的属性，并且代码相当简洁直观。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-6049698713846825814?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/6049698713846825814/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=6049698713846825814' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6049698713846825814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/6049698713846825814'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/05/mozillaxul-paste-and-go-2.html' title='Firefox扩展实例分析: Paste and Go 2'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E2PlYwJOK5I/Rk8zQWqiWgI/AAAAAAAAA1c/NjUiCAeA3Ok/s72-c/pasteandgo2-overlay.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5183030196980335806</id><published>2007-05-18T21:20:00.000+08:00</published><updated>2007-05-18T23:38:20.081+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Mozilla的可扩展性(开篇?)</title><content type='html'>本来我是很少买&lt;a href="http://blog.csdn.net/programmer_editor"&gt;《程序员》杂志&lt;/a&gt;的，主要是能力有限，大都看不懂:-(，所以一向只是在书店里站着翻翻，免得买回去占地方。不过&lt;a href="http://blog.csdn.net/programmer_editor/archive/2007/04/24/1579375.aspx"&gt;第五期&lt;/a&gt;上面居然有一篇《&lt;span style="font-size:100%;"&gt;Mozilla的架构设计》，Mozilla的中文文章向来比较少，难得有人肯研究这个啊。于是就买了一本，没想到文章看完，发现居然是&lt;a href="http://blog.csdn.net/absurd/"&gt;absurd&lt;/a&gt;写的，呵呵，也是，还能有谁。&lt;br /&gt;&lt;br /&gt;俺&lt;/span&gt;&lt;span style="font-size:100%;"&gt;开始是被firefox的扩展所吸引，加上工作上也需要类似地扩展能力，于是&lt;/span&gt;&lt;span style="font-size:100%;"&gt;从去年底开始看一些mozilla/xul方面的资料，慢慢地发现了xul, xbl, xpcom的魅力，于是打算系统地学习一下。&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;春节前后把&lt;a style="font-style: italic;" href="http://books.mozdev.org/"&gt;Creating Applications With Mozilla&lt;/a&gt;这本书草草看了一遍，有了大致的了解；&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;通过&lt;a href="http://blog.donews.com/limodou"&gt;limodou的学习笔记&lt;/a&gt;将XUL Tutorial看了一遍&lt;/span&gt;&lt;span style="font-size:100%;"&gt;(英文原文在&lt;a href="http://developer.mozilla.org/en/docs/XUL_Tutorial"&gt;MDC&lt;/a&gt;和&lt;a href="http://xulplanet.mozdev.org/tutorials/xultu/"&gt;XUL Planet&lt;/a&gt;上都有)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;，好在有他的帖子啊，否则RDF这个东西看英文还真头大；&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-style: italic;" href="http://www.informit.com/bookstore/product.asp?isbn=0131423436&amp;rl=1"&gt;Rapid Application Development with Mozilla&lt;/a&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;是第二本关于Mozilla开发的书，曾在amazon上获得五颗星的评价(可惜作者过世了，再也没有第二版)。我看了几章，感觉细节讲得比较多，而且很多地方会用类比的方式来讲解为什么要这样设计，不是太适合初学，尤其是英文不太好的朋友很难抓住重点。这本书的PDF版本可以从&lt;a href="http://www.mozillazine.org/talkback.html?article=4600"&gt;这里&lt;/a&gt;下载到。&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;absurd是从mozilla的核心代码角度入手来分析的，但我的习惯是从功能应用的角度来入手，可能是跟我的阅读代码的能力比较差有关:-(。而且我目前主要关心的是这个平台怎么就能够方便地扩充功能。我打算近期从一些Firefox扩展入手，来分析一下mozilla/xul的可扩展性。尽量选取一些在扩展性上有代表性的扩展。&lt;br /&gt;&lt;br /&gt;先概括地介绍一下mozilla/xul的扩展能力:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;通过overlay技术可以对一个已有界面进行重新定义，这也使得对于一个界面可以先写一个框架，再用overlay来逐步细化；&lt;/li&gt;&lt;li&gt;每个窗口的界面元素也有一个DOM结构，完全可以通过脚本来操纵它，修改其属性，甚至动态地创建和删除控件；&lt;/li&gt;&lt;li&gt;可以用XBL来绑定一组XUL元素组成，对行为和风格也可以包装，更方便复用；&lt;/li&gt;&lt;li&gt;可以自己来写xpcom组件(components)来扩展一些功能，尤其是与操作系统或者外部程序交互的地方，这些控件注册后就可以在脚本中使用；甚至可以用javascript来写组件&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5183030196980335806?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5183030196980335806/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5183030196980335806' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5183030196980335806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5183030196980335806'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/05/mozilla.html' title='Mozilla的可扩展性(开篇?)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-1657119715724180286</id><published>2007-05-12T00:35:00.000+08:00</published><updated>2007-11-17T23:46:06.754+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='sci.fi'/><category scheme='http://www.blogger.com/atom/ns#' term='movie'/><title type='text'>菲利普·K·迪克(Philip K. Dick)</title><content type='html'>&lt;a href="http://www.douban.com/subject/1462329/"&gt;Do Androids Dream of Electric Sheep ?(机器人会梦见电绵羊吗)&lt;/a&gt;    -&gt;  &lt;a href="http://www.douban.com/subject/1291839/"&gt;Blade Runner(银翼杀手, 1982)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.douban.com/subject/1297689/"&gt;&lt;/a&gt;We Can Remember It for You Wholesale(记忆公司) -&gt; &lt;a href="http://www.douban.com/subject/1295870/"&gt;Total Recall (全面回忆/宇宙威龙, 1990)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Second Variety(第二类型) -&gt; &lt;a href="http://www.douban.com/subject/1305672/"&gt;Screamers(异型终结, 1995)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Impostor -&gt; &lt;a href="http://www.douban.com/subject/1304209/"&gt;Imposter(强殖入侵/冒名顶替, 2002)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.douban.com/subject/1123418/"&gt;Minority Report(少数派报告)&lt;/a&gt; -&gt; &lt;a aiotarget="false" aiotitle="Minority Report (少数派报告)" href="http://www.douban.com/subject/1297689/"&gt;少数派报告(2002)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;这两天看见说又有两部小说要改编成电影了(有一部好像是叫《遇见未来》，据说是尼古拉斯-凯奇主演)，天才啊。据说他之所以能想像力如此丰富，与他嗑药的经历有很大关系。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-1657119715724180286?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/1657119715724180286/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=1657119715724180286' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1657119715724180286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/1657119715724180286'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/05/kphilip-k-dick.html' title='菲利普·K·迪克(Philip K. Dick)'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-5546797435525384627</id><published>2007-04-24T21:55:00.000+08:00</published><updated>2007-04-24T22:01:08.170+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>firefox两个设置问题</title><content type='html'>&lt;a href="http://kb.mozillazine.org/Browser.backspace_action"&gt;Browser.backspace_action&lt;/a&gt;&lt;br /&gt;0: Backspace历史记录中前一网页, Shift-Backspace后一网页&lt;br /&gt;1: Backspace向上一页 Shift-Backspace向下一页&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kb.mozillazine.org/Browser.tabs.closeButtons"&gt;Browser.tabs.closeButtons&lt;/a&gt;&lt;br /&gt;0: 只在激活的tab上有关闭按钮&lt;br /&gt;1: 在所有tab上有关闭按钮&lt;br /&gt;2: 没有关闭按钮&lt;br /&gt;3: 只在最后有一个关闭按钮，用于关闭当前激活tab (firefox 1.x行为)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-5546797435525384627?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/5546797435525384627/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=5546797435525384627' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5546797435525384627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/5546797435525384627'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/04/firefox.html' title='firefox两个设置问题'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-9206742087172175961</id><published>2007-03-27T22:09:00.000+08:00</published><updated>2007-04-22T20:56:10.870+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>我的学习方法，呵呵</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);"&gt;16:24:43 (F)深南大道走到黑 ~ .. says:&lt;/span&gt; 又在跑牛么&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;16:25:00 菠萝油王子 says:&lt;/span&gt;  跑牛？&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;16:25:31 (F)深南大道走到黑 ~ .. says: &lt;/span&gt;你稍微想想难道还不懂么&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;16:25:53 菠萝油王子 says:&lt;/span&gt;   没有，在翻以前泡妞的消息日志&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;16:26:04 (F)深南大道走到黑 ~ .. says:&lt;/span&gt; ....&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;16:26:20 菠萝油王子 says:  &lt;/span&gt;是MSN的 xml格式&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;16:26:34 菠萝油王子 says: &lt;/span&gt; 打算写个小脚本转换成html格式&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;16:26:46 (F)深南大道走到黑 ~ .. says:&lt;/span&gt; 你打算给我看么&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;16:27:04 菠萝油王子 says: &lt;/span&gt; 然后学习了一下python的xml.dom.minidom库的用法&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;16:27:34 (F)深南大道走到黑 ~ .. says:&lt;/span&gt; 你别逗我笑了&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;16:27:53 菠萝油王子 says:&lt;/span&gt;  发现整个库用起来相当麻烦，又到python网站上看哪些xml库比较有名/好用&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;16:28:11 菠萝油王子 says:&lt;/span&gt;  初步选定了elementtree/lxml&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-9206742087172175961?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/9206742087172175961/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=9206742087172175961' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/9206742087172175961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/9206742087172175961'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/03/blog-post_27.html' title='我的学习方法，呵呵'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28306324739809077.post-4169085565632448006</id><published>2007-03-25T22:33:00.000+08:00</published><updated>2007-03-27T22:56:53.138+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech.misc'/><title type='text'>FBReader: 电子书阅读器</title><content type='html'>&lt;a href="http://only.mawhrin.net/fbreader/"&gt;FBReader – e-book reader for Linux/Windows XP computers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;只所以感兴趣，是因为它&lt;a href="http://only.mawhrin.net/fbreader/motorola/"&gt;支持俺的E680i&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://only.mawhrin.net/fbreader/motorola/screenshot1.png"&gt;&lt;img style="cursor: pointer; width: 240px;" src="http://only.mawhrin.net/fbreader/motorola/screenshot1.png" alt="" border="0" /&gt;   &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://only.mawhrin.net/fbreader/motorola/screenshot2.png"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://only.mawhrin.net/fbreader/motorola/screenshot2.png" alt="" border="0" /&gt;  &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28306324739809077-4169085565632448006?l=bamanzi3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bamanzi3.blogspot.com/feeds/4169085565632448006/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28306324739809077&amp;postID=4169085565632448006' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4169085565632448006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28306324739809077/posts/default/4169085565632448006'/><link rel='alternate' type='text/html' href='http://bamanzi3.blogspot.com/2007/03/fbreader.html' title='FBReader: 电子书阅读器'/><author><name>Ba Manzi</name><uri>https://profiles.google.com/114280070737334142636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
