<?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-6523230460872601144</id><updated>2011-10-25T02:53:31.072+08:00</updated><category term='GCC'/><category term='virtualbox'/><category term='android'/><category term='git'/><category term='Archlinux'/><category term='shell'/><category term='python'/><category term='tool'/><category term='non-Tech'/><category term='web'/><category term='English'/><category term='nginx'/><category term='Linux'/><category term='programming'/><category term='script'/><category term='qemu'/><category term='Chinese'/><category term='vim'/><category term='Windows'/><category term='blogging'/><category term='book'/><category term='misc'/><title type='text'>Yuanjie's Tech Blog</title><subtitle type='html'>a blog on compilers, Linux, software and other technological stuff</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default?start-index=101&amp;max-results=100'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>178</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1779074037076706041</id><published>2010-11-02T20:06:00.002+08:00</published><updated>2010-11-02T20:16:42.961+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>My favorite android apps</title><content type='html'>&lt;p&gt;I have been using android for a month, and I do think it a great OS, from a geek perspective, of cause ;) Since Google does not provide paid app in Chinese market, I got only free apps, however some of them are already great, let me name some of them:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;AndFTP&lt;/strong&gt; is a powerful yet easy to use FTP client.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Android Terminal Emulator&lt;/strong&gt; is definitely essential on rooted box (oops, can I call a mobile phone as box just like a PC?) Without it customizing your system would be much tougher.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Barcode Scannner&lt;/strong&gt; by ZXing Team is the fastest scanner I found in market, and recognizing URI with camera is such a great invention!&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Batteryminder&lt;/strong&gt; tells me in percentage how much battery left, which is a must on a phone with a power-hungry large screen just like my milestone...&lt;/li&gt;&lt;li&gt;&lt;strong&gt;diviClock&lt;/strong&gt; is a cute desktop clock widget offering shortcuts to your alarm clock and calendar&lt;li&gt;&lt;li&gt;&lt;strong&gt;NetCounter&lt;/strong&gt; is used to track how much traffic is spend in a day/week/month because CMCC's traffice is so expensive - 7MB for 1 USD!!!&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Jorte&lt;/strong&gt; provides various widget and calendar view, and connects to both Google calendar and a Japanese(?) calendar service.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;TaskOS To Do List&lt;/strong&gt;: writing TODO list in voice is great, hopefully web syn feature will be available soon.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Vplayer&lt;/strong&gt;, though still in alpha stage, plays a great range of format of video.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;At last I would be very happy if Google brings paid games, though I can get &lt;strong&gt;robo defense free&lt;/strong&gt; and &lt;strong&gt;Angry Birds&lt;/strong&gt; from Chinese market, and they are very interesting (and very time-consuming, too).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1779074037076706041?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1779074037076706041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/11/my-favorite-android-apps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1779074037076706041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1779074037076706041'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/11/my-favorite-android-apps.html' title='My favorite android apps'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-760094137932833726</id><published>2010-08-02T03:07:00.001+08:00</published><updated>2010-08-02T03:07:50.368+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>web is a mess…where is the hope?</title><content type='html'>&lt;p&gt;Recently I am helping designing and coding a web site, which I thought would be a small project… I did know about the difference between old IE and other “standard” browsers and some hacks and work-arounds, but I failed to realize it would be so painful to do all things “right”.&lt;/p&gt;  &lt;p&gt;In stead of insisting everything should look exactly the same in all browsers, I think it is natual that some design details could degrade in older browsers, like round corners and text shadow. The real troublemaker turns form elements, each browser (depending on the operating system and even system theme) displays them differently – an awful nightmare :( There aren’t any standard to style them, the only solution is to employ JavaScript to hide the original form and render a fake one with div and spans. Thus select element becomes an unsorted list with a CSS’s and scripts, which seems very bizarre…&lt;/p&gt;  &lt;p&gt;Maybe it is time to re-invent the web. People have been talking about this for decades, but I see little progress. I don’t believen HTML5 is a solution, though it’s really hot. &lt;strong&gt;Semantics is important, but I don’t believe it the key issue. Web pages are no longer simply documents, but applications, and we are distributing service instead of content.&lt;/strong&gt; JavaScript has many bad parts but is blessed as well, devil or angel, it should be the core of web. HTML should be fundamentally changed to be a better present layer of JavaScript. A lot of functions carried out by browser natively should be given to JavaScript or other future client-side code. With more power and freedom of client code, coding for web could certainly bring more good things to users.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-760094137932833726?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/760094137932833726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/08/web-is-messwhere-is-hope.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/760094137932833726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/760094137932833726'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/08/web-is-messwhere-is-hope.html' title='web is a mess…where is the hope?'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1416640080502062548</id><published>2010-05-31T16:02:00.001+08:00</published><updated>2010-05-31T16:02:07.543+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nginx'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Serving static file in nginx with a some check</title><content type='html'>&lt;p&gt;Recently I developed&amp;#160; a small web site for my lab, and we are hosting it on Google App Engine (GAE), as Google provides quite enough resources for a site of several pages ;)&lt;/p&gt;  &lt;p&gt;However we also need to provide download of huge files, which can not be store in GAE, thus we had to host it in one of our severs. Initially we do not want our content directly accessible, so we want to use dynamic URL but we don’t want to loose the performance of nginx.&lt;/p&gt;  &lt;p&gt;My final solution is use &lt;a href="http://stuvel.eu/rsa"&gt;rsa module&lt;/a&gt; by Sybren A. Stuvel (which is pure python) to encrypt the real url (with fixed private key) in GAE, and give the encrypted url to user. In the file host, I use &lt;a href="http://wiki.nginx.org/NginxXSendfile"&gt;nginx’s X-Accel-Redirect feature&lt;/a&gt; and a tiny cherrypy server to decrypt the url (with corresponding pub key), and simply set the &lt;strong&gt;X-Accel-Redirect&lt;/strong&gt; header to the real internal path of nginx.&lt;/p&gt;  &lt;p&gt;This solution works well in my case :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1416640080502062548?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1416640080502062548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/05/serving-static-file-in-nginx-with-some.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1416640080502062548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1416640080502062548'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/05/serving-static-file-in-nginx-with-some.html' title='Serving static file in nginx with a some check'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4092793963469436178</id><published>2010-05-12T06:21:00.001+08:00</published><updated>2010-05-12T06:21:13.988+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qemu'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Mount qemu harddisk image in host system</title><content type='html'>&lt;p&gt;Recently I got to copy a lot of files from a qemu guest, and I think using network is too slow, so I googled for solutions to mount qemu image in host system (when guest is shutdown). And it turns out that only raw images are supported, therefore the first step is to convert the image format:&lt;/p&gt;  &lt;p&gt;qemu-img convert –f qcow2 origin.qcow –O raw temp.raw&lt;/p&gt;  &lt;p&gt;Then I fount in &lt;a href="http://wiki.archlinux.org/index.php/QEMU#Mounting_the_hard_disk_image"&gt;archlinux wiki&lt;/a&gt; that I should mount with &lt;code&gt;–loop,offset=32256&lt;/code&gt; option, but I fail to figure out where 32256 comes. Luckily I remenbered how I delt with dd images. Just get the offset with fdisk:&lt;/p&gt;  &lt;pre&gt;fdisk –u –l temp.raw&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Then I have the sector size (512 in my case) and the offset (2048, start sector of my partation), so the offset should be 512*2048=1048576. (btw, you can calculate with bc: &lt;code&gt;echo ‘512*2048’ | bc)&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;mount –t ext4 –o loop,offset=1048576 temp.raw /mnt/some-path&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;That’s it :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4092793963469436178?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4092793963469436178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/05/mount-qemu-harddisk-image-in-host.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4092793963469436178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4092793963469436178'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/05/mount-qemu-harddisk-image-in-host.html' title='Mount qemu harddisk image in host system'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8972021515329369023</id><published>2010-04-12T19:02:00.001+08:00</published><updated>2010-04-12T19:02:45.608+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Win 7 Knows Every Mouse?</title><content type='html'>&lt;p&gt;Even my scope node?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_IstqspdHEiI/S8L9z6OcVwI/AAAAAAAAAgs/xxFFRRBANKU/s1600-h/win7knows%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="win7knows" border="0" alt="win7knows" src="http://lh6.ggpht.com/_IstqspdHEiI/S8L909MsP7I/AAAAAAAAAgw/DwkTCPcLk7k/win7knows_thumb%5B6%5D.png?imgmax=800" width="264" height="273" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cool!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8972021515329369023?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8972021515329369023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/04/win-7-knows-every-mouse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8972021515329369023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8972021515329369023'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/04/win-7-knows-every-mouse.html' title='Win 7 Knows Every Mouse?'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_IstqspdHEiI/S8L909MsP7I/AAAAAAAAAgw/DwkTCPcLk7k/s72-c/win7knows_thumb%5B6%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1136366336191669244</id><published>2010-04-08T21:05:00.002+08:00</published><updated>2010-04-08T21:09:43.785+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Link for X, HAL &amp; udev</title><content type='html'>&lt;p&gt;It seems we could thank HAL for all these years of great work and say goodbye in a short period of time (source below). &lt;/p&gt;&lt;p&gt;To be honest I still feel confused now and then about what (fill this blank) is doing for me. My understanding is:&lt;/p&gt;  &lt;pre&gt;linux kernel ─&amp;gt;─ udev ─&amp;gt;─ &lt;strike&gt;HAL&lt;/strike&gt; ─&amp;gt;─ X server&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; │&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; │&lt;br /&gt;                   └────────&amp;gt;───────┘&lt;br /&gt;                         libudev&lt;/pre&gt;&lt;p&gt;So I just try to find more about X/Hal/udev thing, and keep some links here. (Remember the best source of information is always the official web sites and the mailing list). &lt;/p&gt;&lt;p&gt;&lt;a href="http://who-t.blogspot.com/2009/07/not-blaming-hal.html"&gt;(Not) blaming HAL&lt;/a&gt; by Keith Packard (explains what X.org X server needs from HAL before 1.8)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.enterprisenetworkingplanet.com/nethub/article.php/3635686"&gt;Manage Linux Hardware with udev&lt;/a&gt; by Carla Schroder (tells a little history of udev and HAL, and how /dev, /sys works.)&lt;/p&gt;&lt;p&gt;* source: &lt;a href="http://www.linux-magazine.com/Online/News/Free-X.org-Server-1.8.0-with-udev-to-replace-HAL"&gt;Free X.org Server 1.8.0 with udev to replace HAL&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1136366336191669244?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1136366336191669244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/04/link-for-x-hal-udev.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1136366336191669244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1136366336191669244'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/04/link-for-x-hal-udev.html' title='Link for X, HAL &amp;amp; udev'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-573212271939892677</id><published>2010-04-02T05:28:00.000+08:00</published><updated>2010-04-02T05:28:05.098+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>How to delete last 10 lines in a file with script</title><content type='html'>&lt;p&gt;I find this question asked very frequently... So here is the present of day(not for the April 1st, it's already 2nd in China now ;)&lt;/p&gt;&lt;pre&gt;$ tac file.in | sed '1,10d' | tac &gt; file.out&lt;/pre&gt;&lt;p&gt;Obviously, you could replace &lt;tt&gt;10&lt;/tt&gt; with any number you like, Cheers!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-573212271939892677?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/573212271939892677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/04/how-to-delete-last-10-lines-in-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/573212271939892677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/573212271939892677'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/04/how-to-delete-last-10-lines-in-file.html' title='How to delete last 10 lines in a file with script'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1696853013589399145</id><published>2010-03-23T18:34:00.004+08:00</published><updated>2010-03-23T18:42:27.909+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Archlinux'/><title type='text'>Use LibSVM in WEKA in an Archlinux box</title><content type='html'>I found both WEKA and libSVM in AUR, however, neither maintainer considered that a user might use them together... It seem we Archie got to work it out ourselves, so here is what I did:&lt;p&gt;Dowload &lt;a href="http://aur.archlinux.org/packages.php?ID=6778"&gt;WEKA tarball from AUR&lt;/a&gt;, and Change &lt;tt&gt;weka.sh&lt;/tt&gt; to&lt;p&gt;&lt;pre&gt;#! /bin/sh&lt;br /&gt;# Note: the &amp;#39;-Xmx256m&amp;#39; flag is used to set the maximum memory that the java&lt;br /&gt;# program is allowed. When working with large data sets, this number may need&lt;br /&gt;# to be increased based on how much memory you wish to allow weka to have.&lt;br /&gt;# Specifying command line arguments will override the defaults shown here.&lt;br /&gt;# Example: &amp;#39;-Xmx512m&amp;#39;&lt;br /&gt;DEFAULT_ARGS=&amp;#39;-Xms32m -Xmx256m&amp;#39;&lt;br /&gt;if [ $# -gt 0 ]; then&lt;br /&gt;ARGS=&amp;quot;$@&amp;quot;&lt;br /&gt;else&lt;br /&gt;ARGS=&amp;quot;$DEFAULT_ARGS&amp;quot;&lt;br /&gt;fi&lt;br /&gt;java -classpath&lt;br /&gt;&amp;quot;${CLASSROOT+CLASSROOT:}/usr/share/java/weka/weka.jar:/usr/share/java/libsvm.jar&amp;quot;&lt;br /&gt;weka.gui.GUIChooser $ARGS&lt;/pre&gt;&lt;p&gt;Do not forget to change the MD5SUM of weka.sh in PKGBUILD file :)Modify LibSVM PKGBUILD to:&lt;/p&gt;&lt;pre&gt;# Contributor: Pierre Gueth&lt;br /&gt;# Modified by: Yuanjie Huang&lt;br /&gt;pkgname=libsvm&lt;br /&gt;pkgver=2.9&lt;br /&gt;pkgrel=2&lt;br /&gt;pkgdesc=&amp;quot;A library for Support Vector Machines classification, include&lt;br /&gt;binaries and python bindings.&amp;quot;&lt;br /&gt;arch=(x86_64 i686)&lt;br /&gt;url=&amp;quot;http://www.csie.ntu.edu.tw/~cjlin/libsvm/&amp;quot;&lt;br /&gt;license=(&amp;#39;GPL&amp;#39;)&lt;br /&gt;groups=()&lt;br /&gt;depends=()&lt;br /&gt;makedepends=()&lt;br /&gt;optdepends=()&lt;br /&gt;provides=()&lt;br /&gt;conflicts=()&lt;br /&gt;replaces=()&lt;br /&gt;backup=()&lt;br /&gt;options=()&lt;br /&gt;install=&lt;br /&gt;source=(&amp;quot;http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz&amp;quot;)&lt;br /&gt;noextract=()&lt;br /&gt;md5sums=(&amp;#39;c48109c825d8326d71c8c8564589736d&amp;#39;)&lt;br /&gt;build() {&lt;br /&gt;cd &amp;quot;$srcdir/$pkgname-$pkgver&amp;quot;&lt;br /&gt;make || return 1&lt;br /&gt;install -D -m755 svm-train $pkgdir/usr/bin/svm-train&lt;br /&gt;install -D -m755 svm-predict $pkgdir/usr/bin/svm-predict&lt;br /&gt;install -D -m755 svm-scale $pkgdir/usr/bin/svm-scale&lt;br /&gt;install -D -m644 java/libsvm.jar $pkgdir/usr/share/java/libsvm.jar&lt;br /&gt;cd &amp;quot;python&amp;quot;&lt;br /&gt;python setup.py build || return 1&lt;br /&gt;python setup.py install --root $pkgdir&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;Then makepgk and install, have fun.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1696853013589399145?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1696853013589399145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/03/use-libsvm-in-weka-in-archlinux-box.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1696853013589399145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1696853013589399145'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/03/use-libsvm-in-weka-in-archlinux-box.html' title='Use LibSVM in WEKA in an Archlinux box'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4553755879671027789</id><published>2010-03-22T23:13:00.000+08:00</published><updated>2010-03-22T23:13:24.278+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Where is mendeley user config stored?</title><content type='html'>&lt;p&gt;&lt;a href="http://www.mendeley.com/"&gt;Mendeley Desktop&lt;/a&gt; is a nice academic research resource management tool. However I messed its configuration up, and got to reset it. But there is no such a directory as &lt;tt&gt;.mendeley&lt;/tt&gt; as I expect in my home directory, so I got to find it like this:&lt;/p&gt;&lt;pre&gt;for f in `ls -a1F | grep -E '^\.[A-Za-z]+/$'`; \&lt;br /&gt;do find $f -print | grep -E '[Mm]endeley'; done&lt;/pre&gt;&lt;p&gt;Then simply delete everything I got, and bring Mendeley back happily ;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4553755879671027789?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4553755879671027789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/03/where-is-mendeley-user-config-stored.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4553755879671027789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4553755879671027789'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/03/where-is-mendeley-user-config-stored.html' title='Where is mendeley user config stored?'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5436136234599696523</id><published>2010-03-18T23:30:00.001+08:00</published><updated>2010-03-18T23:41:51.676+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux Hibernation in short</title><content type='html'>&lt;p&gt;In order to hibernate in Linux, you need a user space script and an backend. Two User space scirpts widely used are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://pm-utils.freedesktop.org"&gt;pm-utils&lt;/a&gt; : used in OpenSuse, Ubuntu, etc &lt;/li&gt;    &lt;li&gt;hibernation-scirpt : used by gentoo, etc &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The linux kernel comes with hibernate backend named swsusp but you can also try other tool, so your options are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://suspend.sourceforge.net/"&gt;uswsusp&lt;/a&gt; : need to be installed &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.tuxonice.net"&gt;tuxonice&lt;/a&gt; : you got to patch the kernel &lt;/li&gt;    &lt;li&gt;swsusp : comes without extra effords &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;My choise is pm-utils + uswsusp for I’m too lazy to patch and compile a kernel, and I’ve been using pm-utils for a long time.&lt;/p&gt;  &lt;p&gt;And one more thing to mention, even hibernation-script comes with tuxonice, it can use uswsusp as backend.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5436136234599696523?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5436136234599696523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/03/linux-hibernation-in-short.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5436136234599696523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5436136234599696523'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/03/linux-hibernation-in-short.html' title='Linux Hibernation in short'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1040255535066615801</id><published>2010-03-18T17:24:00.002+08:00</published><updated>2010-03-22T23:16:13.280+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>GAE Hello world error</title><content type='html'>&lt;p&gt;Google App Engine supports SSL now, however Python 2.5 does not come with SSL socket in stock :(&lt;/p&gt;&lt;pre&gt;gae$ /usr/local/bin/dev_appserver.py \&lt;br /&gt;~/projects/hello/&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;File &amp;quot;/usr/local/bin/dev_appserver.py&amp;quot;, line 50, in &amp;lt;module&amp;gt;&lt;br /&gt;execfile(script_path, globals())&lt;br /&gt;File &amp;quot;/usr/local/google_appengine/google/appengine/tools/dev_appserver_main.py&amp;quot;, line 338, in &amp;lt;module&amp;gt;&lt;br /&gt;sys.exit(main(sys.argv))&lt;br /&gt;File &amp;quot;/usr/local/google_appengine/google/appengine/tools/dev_appserver_main.py&amp;quot;, line 297, in main&lt;br /&gt;server = MakeRpcServer(option_dict)&lt;br /&gt;File &amp;quot;/usr/local/google_appengine/google/appengine/tools/dev_appserver_main.py&amp;quot;, line 259, in MakeRpcServer&lt;br /&gt;host_override=option_dict[ARG_ADMIN_CONSOLE_HOST])&lt;br /&gt;File &amp;quot;/usr/local/google_appengine/google/appengine/tools/appcfg.py&amp;quot;, line 114, in __init__&lt;br /&gt;self.opener = self._GetOpener()&lt;br /&gt;File &amp;quot;/usr/local/google_appengine/google/appengine/tools/appcfg.py&amp;quot;, line 317, in _GetOpener&lt;br /&gt;opener.add_handler(urllib2.HTTPSHandler())&lt;br /&gt;AttributeError: 'module' object has no attribute 'HTTPSHandler'&lt;/pre&gt;&lt;p&gt;To resovle the problem you got to recomile Python with SSL support as &lt;a href="http://paltman.com/2007/nov/15/getting-ssl-support-in-python-251/"&gt;instructed by Patrick Altman&lt;/a&gt; and then follow a regular&amp;#160; configure – make – make install routine.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Then you need to Edit the Modules/Setup.dist to uncomment a couple of lines: &lt;/p&gt;&lt;pre&gt;# Socket module helper for SSL support; you must comment out the other&lt;br /&gt;# socket line above, and possibly edit the SSL variable:&lt;br /&gt;SSL=/usr/local/ssl&lt;br /&gt;_ssl _ssl.c &lt;br /&gt;-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl &lt;br /&gt;-L$(SSL)/lib -lssl -lcrypto&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1040255535066615801?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1040255535066615801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/03/gae-hello-world-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1040255535066615801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1040255535066615801'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/03/gae-hello-world-error.html' title='GAE Hello world error'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5223977637014782400</id><published>2010-02-26T22:32:00.002+08:00</published><updated>2010-02-26T22:39:02.292+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>links for customizing GNOME menu</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://library.gnome.org/admin/system-admin-guide/stable/menustructure-0.html.en"&gt;Customizing Menus&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://standards.freedesktop.org/menu-spec/latest/"&gt;Desktop Menu Specification&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://library.gnome.org/devel/hig-book/stable/desktop-application-menu.html.en"&gt;Placing Entries in the Applications Menu&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://live.gnome.org/ThemableAppSpecificIcons"&gt;Themable Application-specific Icons&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout"&gt;Icon Theme Specification / Directory Layout&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines#Small"&gt;Tango Icon Theme Guidelines (to make 24x24 icons from 22x22 ones)&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/6523230460872601144-5223977637014782400?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5223977637014782400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/02/links-for-customizing-gnome-menu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5223977637014782400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5223977637014782400'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/02/links-for-customizing-gnome-menu.html' title='links for customizing GNOME menu'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-2855109329142753179</id><published>2010-02-25T07:33:00.003+08:00</published><updated>2010-02-25T07:44:47.171+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Archlinux'/><title type='text'>libpng12.so.0 missing problem in Archlinux</title><content type='html'>&lt;p&gt;Archlinux has been offering libpng14 recently, however if some self-compiled packages are used in the system, it may turn out an disaster :(&lt;/p&gt;&lt;p&gt;I had cario, freetype2 &amp;amp; libxft compiled from abs so as to enable sort of cleartype effect in type rendering, however, after I updated libpng recently from version 12 to 14,  I cannot boot into gdm correctly. I cannot even run vim in a console for it complains that libpng12.so.0 cannot be found.&lt;/p&gt;&lt;p&gt;So I have to:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;boot with run level 3 (adding 3 at the end of grub's kernel line);&lt;/li&gt;&lt;li&gt;login as root and remove self-compiled packages that require libpng12, cario, freetype2 &amp;amp; libxft in my case (I found -d option useful since I will soon reinstall these packages); &lt;/li&gt;&lt;li&gt;recompile new versions with libpng14;&lt;/li&gt;&lt;li&gt;install those packages.&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-2855109329142753179?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/2855109329142753179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/02/libpng12so0-missing-problem-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2855109329142753179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2855109329142753179'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/02/libpng12so0-missing-problem-in.html' title='libpng12.so.0 missing problem in Archlinux'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-3397752587484198448</id><published>2010-02-21T04:35:00.001+08:00</published><updated>2010-02-21T04:39:09.710+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Using English fonts in Windows 7 with Chinese local setting</title><content type='html'>&lt;p&gt;Windows 7 comes with Lucida Console and Consolas as its default console  fonts, but I find no option to enable either of them when my location is set to  China. After a few tries, I managed to get them via the following steps: &lt;/p&gt; &lt;ol&gt; &lt;li&gt;Right click the console icon and go to the default menu item; &lt;/li&gt;&lt;li&gt;Set the default code page to &amp;#39;437 OEM&amp;#39;; &lt;/li&gt;&lt;li&gt;Switch to the font tab, and change the font to &lt;i&gt;Lucida Console&lt;/i&gt;, press  OK button; &lt;/li&gt;&lt;li&gt;Restart the console and go to the code page setting back to &amp;#39;936  Chinese&amp;#39;.&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/6523230460872601144-3397752587484198448?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/3397752587484198448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/02/using-english-fonts-in-windows-7-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3397752587484198448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3397752587484198448'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2010/02/using-english-fonts-in-windows-7-with.html' title='Using English fonts in Windows 7 with Chinese local setting'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7734217546386127652</id><published>2009-12-14T21:52:00.001+08:00</published><updated>2009-12-14T21:52:56.429+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Idea for a simple bib tool</title><content type='html'>&lt;p&gt;I was using Zotero for my research readings, however, it is a bit too heavy for me, and I want a tool that can be portable across machines. So I am planning to write a bib tool for myself when I am a bit free sometime next spring.&lt;/p&gt;  &lt;p&gt;The most important concept in this tool:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;Keep it Simple&lt;/em&gt;: there will NOT be fancy setup interface, but a config XML; there will not be many export styles for that is latex’s business. &lt;/li&gt;    &lt;li&gt;&lt;em&gt;Depend less&lt;/em&gt;: there is already many advanced tools for bib organization, but they depend on this and that. I plan to implement all this tool with &lt;em&gt;Python and sqlite3&lt;/em&gt;, so it can be put into U-key/Dropbox, and used anywhere. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The basci senarios is:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;User start the tool, which set up a local web sever at a high port (eg: 8080), and open any browser to land on the interface. &lt;/li&gt;    &lt;li&gt;To add a new paper, user have to      &lt;ol&gt;       &lt;li&gt;upload a pdf file &lt;/li&gt;        &lt;li&gt;add bibtex info by          &lt;ol&gt;           &lt;li&gt;upload a crospending a bibtex file &lt;/li&gt;            &lt;li&gt;fill a form to generate bibtex info &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;        &lt;li&gt;add optional tags &lt;/li&gt;        &lt;li&gt;add optional note &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;To view paper:      &lt;ol&gt;       &lt;li&gt;start a search (empty field means any) &lt;/li&gt;        &lt;li&gt;a list of reference is returned &lt;/li&gt;        &lt;li&gt;(optional) open pdf file &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;To export      &lt;ol&gt;       &lt;li&gt;start a search &lt;/li&gt;        &lt;li&gt;select paper and add to “basket” &lt;/li&gt;        &lt;li&gt;go to export folder and get a sorted bib for all and BIB’s for each files and copies of PDF’s &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Suggestions are always welcomed :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7734217546386127652?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7734217546386127652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/12/idea-for-simple-bib-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7734217546386127652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7734217546386127652'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/12/idea-for-simple-bib-tool.html' title='Idea for a simple bib tool'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1378659358783920374</id><published>2009-12-09T21:22:00.001+08:00</published><updated>2009-12-09T21:22:06.469+08:00</updated><title type='text'>SumatraPDF is really FAST</title><content type='html'>&lt;p&gt;I have reading a lot of pdf files recently, and I often open a file, read a handful paragraphs and close the file. While Adobe Reader provides great render quality, it is a bit slow.&lt;/p&gt;  &lt;p&gt;So I turned to SumatraPDF, which is an open source pdf reader based on MuPDF and brings several useful functionalities, such as searching and copy. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1378659358783920374?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1378659358783920374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/12/sumatrapdf-is-really-fast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1378659358783920374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1378659358783920374'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/12/sumatrapdf-is-really-fast.html' title='SumatraPDF is really FAST'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-2933461200908162346</id><published>2009-12-03T23:51:00.002+08:00</published><updated>2009-12-04T00:06:33.343+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GCC'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>What in_lto_p has _p suffix in GCC 4.5</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Curiosity killed the cat XD&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Usually we use &lt;code&gt;_p&lt;/code&gt; suffix to pointers in C language, but it is not the case for &lt;code&gt;in_lto_p&lt;/code&gt; in GCC 4.5, so I searched for the reason, and according to &lt;&lt;a href="http://www.stanford.edu/%7Eblp/writings/blp-stds/blp-stds_4.html" target="_blank"&gt;http://www.stanford.edu/~blp/writings/blp-stds/blp-stds_4.html&lt;/a&gt;&gt; :&lt;/p&gt; &lt;dl&gt;&lt;blockquote&gt;&lt;dt&gt;&lt;strong&gt;p-convention&lt;/strong&gt; &lt;/dt&gt; &lt;dd&gt;A &lt;code&gt;_p&lt;/code&gt; suffix indicates a boolean test for the  condition  described by the rest of the name.  (This comes from Lisp.) &lt;/dd&gt; &lt;/blockquote&gt;&lt;/dl&gt; &lt;p&gt;And it can be supported by this wiki page&lt;&lt;a href="http://en.wikipedia.org/wiki/P_convention" target="_blank"&gt;http://en.wikipedia.org/wiki/P_convention&lt;/a&gt;&gt; :&lt;br /&gt;&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;This practice originated among users of the &lt;a title="Lisp programming language" href="http://en.wikipedia.org/wiki/Lisp_programming_language"&gt;Lisp  programming  language&lt;/a&gt;, in which there is the convention of appending  the letter  “P” on elements to denote a &lt;a title="Predicate (logic)" href="http://en.wikipedia.org/wiki/Predicate_%28logic%29"&gt;predicate&lt;/a&gt;  (a yes or no  question). It is most commonly used at &lt;a title="MIT" href="http://en.wikipedia.org/wiki/MIT"&gt;MIT&lt;/a&gt; and the &lt;a title="University of California, Berkeley" href="http://en.wikipedia.org/wiki/University_of_California,_Berkeley"&gt;University  of California,  Berkeley&lt;/a&gt;, or among computer scientists working in &lt;a title="Artificial intelligence" href="http://en.wikipedia.org/wiki/Artificial_intelligence"&gt;Artificial  intelligence&lt;/a&gt; (which  frequently uses Lisp).&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;So &lt;code&gt;_p&lt;/code&gt; for &lt;strong&gt;predicate&lt;/strong&gt; not pointer here :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-2933461200908162346?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/2933461200908162346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/12/what-inltop-has-p-suffix-in-gcc-45.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2933461200908162346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2933461200908162346'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/12/what-inltop-has-p-suffix-in-gcc-45.html' title='What in_lto_p has _p suffix in GCC 4.5'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1263373437264085947</id><published>2009-12-02T13:02:00.004+08:00</published><updated>2009-12-02T13:37:00.399+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Bash environment memo: profile, bash_profile &amp; bashrc</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;I'm trying to explain the process of bash setup in this article.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Keywords:&lt;/strong&gt;bash, shell, environment&lt;/p&gt;&lt;/div&gt;&lt;p&gt;It is usually hard to answer the question where this variable is set, because there is SO many different files involved. So let's start with some concepts:&lt;/p&gt;&lt;dl&gt;&lt;dt&gt;interactive login shell&lt;/dt&gt;&lt;dd&gt;The shell started after a successful login, using /bin/login, by reading the /etc/passwd file.&lt;/dd&gt;&lt;dt&gt;interactive non-login shell&lt;/dt&gt;&lt;dd&gt;It is normally started at the command-line using a shell program (eg.&lt;code&gt;$/bin/bash&lt;/code&gt;) or by the &lt;code&gt;/bin/su&lt;/code&gt; command. It is also started with a terminal program within a graphical environment.&lt;/dd&gt;&lt;dt&gt;non-interactive shell&lt;/dt&gt;&lt;dd&gt;It's usually used to execute a shell script&lt;/dd&gt;&lt;/dl&gt;&lt;p&gt;An &lt;strong&gt;interactive login shell&lt;/strong&gt; generally initializes with the following configuration files:&lt;/p&gt;&lt;pre&gt;/etc/profile -&gt; [~/.bash_profile] -&gt; [~/.bash_login] -&gt; [~/.profile]&lt;/pre&gt;&lt;p&gt;In some systems,  the &lt;code&gt;/etc/profile&lt;/code&gt; script will look for additional settings in &lt;code&gt;/etc/profile.d/*.sh&lt;/code&gt;, and the &lt;code&gt;~/.bash_profile&lt;/code&gt; usually sources &lt;code&gt;~/.bashrc&lt;code&gt;.&lt;/code&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;When an &lt;strong&gt;interactive non-login shell&lt;/strong&gt; starts, it first copies the environment of its parent shell and then reads its settings in the following order:&lt;/p&gt;&lt;pre&gt;/etc/bash.bashrc -&gt; [~/.bashrc]&lt;/pre&gt;&lt;p&gt;Remember that &lt;em&gt;only exported variables&lt;/em&gt; of its parent shell is copied, functions and aliases of its parent are &lt;em&gt;NOT&lt;/em&gt; inherited.&lt;/p&gt;&lt;p&gt;A &lt;strong&gt;non-interactive shell&lt;/strong&gt; simply copies environment from its parent, and does not read any configuration files.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1263373437264085947?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1263373437264085947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/12/bash-environment-memo-profile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1263373437264085947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1263373437264085947'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/12/bash-environment-memo-profile.html' title='Bash environment memo: profile, bash_profile &amp; bashrc'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-3701146038042375039</id><published>2009-11-05T16:29:00.008+08:00</published><updated>2011-10-25T02:53:31.094+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Archlinux'/><title type='text'>Mount internal filesystem without passwd with udisk (formerly devicekit-disk)</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Use policykit to avoid root password for mount an internal filesystem.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Last week, I updated my Arch Linux laptop, and got the new deviekit-disk. Then I found that the authorizations set with gnome interface, which actually sets the&lt;code&gt;org.freedesktop.hal.storage...&lt;/code&gt;, stops work. I have to give the root passwd when I try to mount an internal filesystem, which is really bothering:( &lt;/p&gt;&lt;p&gt;Luckly it is not hard to solve this problem with Policykit, though there dosen't seem to be a sweet GUI to help. All you have to do is simply create a text file named anything with suffix &lt;strong&gt;&lt;code&gt;.pkla&lt;/code&gt;&lt;/strong&gt; in &lt;code&gt;/etc/polkit-1/localauthority/50-local.d/&lt;/code&gt; and fill it with the content below:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;[filesystems mount internal privs]&lt;br /&gt;Identity=unix-group:disk&lt;br /&gt;Action=org.freedesktop.devicekit.disks.filesystem-mount-system-internal&lt;br /&gt;ResultAny=no&lt;br /&gt;ResultInactive=no&lt;br /&gt;ResultActive=yes&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here I allow all users in group &lt;code&gt;disk&lt;/code&gt; to mount internal filesystem without root password. &lt;code&gt;disk&lt;/code&gt; is the default group of storage devices, you should add yourself to this group. Otherwise you can specify your login name:&lt;/p&gt;&lt;pre&gt;Identity=unix-user:yourname&lt;/pre&gt;&lt;p&gt;You can always &lt;code&gt;man pklocalauthority&lt;/code&gt; for more info:)&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;strong&gt;Update (Oct 25th, 2011)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Latest &lt;code&gt;udev&lt;/code&gt; will set storage devices of group &lt;code&gt;disk&lt;/code&gt;. So I specify group &lt;code&gt;disk&lt;/code&gt; instead of &lt;code&gt;storage&lt;/code&gt; now.&lt;/p&gt;&lt;p&gt;PS: I moved to &lt;a href="http://yuanjie.name/"&gt;a new blog&lt;/a&gt;.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Update (April 3rd 2010)&lt;/p&gt;&lt;p&gt;People from freedesktop.org are making a great progress - by renaming &lt;tt&gt;devicekit-disk&lt;/tt&gt; as &lt;tt&gt;udisk&lt;/tt&gt; (Sounds talking about flash disk, isn't it?)... So you got to change &lt;tt&gt;Action=org.freedesktop.devicekit.disks.filesystem-mount-system-internal&lt;/tt&gt; to &lt;tt&gt;Action=org.freedesktop.udisks.filesystem-mount-system-internal&lt;/tt&gt;.&lt;/p&gt;&lt;p&gt;Dear sirs/madams from freedesktop.org, will you please stop renaming things? It's not fun, at all :(&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;strong&gt;Update (April 16th, 2010)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;It seems &lt;code&gt;/etc/polkit-1/localauthority/50-local.d/&lt;/code&gt; is a better place to apply your own settings.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;strong&gt;Update (Nov 2nd, 2010)&lt;/strong&gt;&lt;p&gt;&lt;p&gt;The configuration file has to be named with suffix &lt;code&gt;.pkla&lt;/code&gt; to be recognized, for more details you can &lt;code&gt;man pklocalauthority&lt;/code&gt;. And lots of thanks goes to Awebb who kindly points this out :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-3701146038042375039?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/3701146038042375039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/11/mount-internal-filesystem-without.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3701146038042375039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3701146038042375039'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/11/mount-internal-filesystem-without.html' title='Mount internal filesystem without passwd with udisk (formerly devicekit-disk)'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-2550111879243306753</id><published>2009-09-27T13:55:00.003+08:00</published><updated>2009-09-27T14:08:37.699+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>looking for a web software for knowlege sharing</title><content type='html'>&lt;p&gt;I am currently looking for a web-based software for knowledge sharing in our lab, I've investigated some blog, cms and also wiki softwares, but none seems to fit :(&lt;/p&gt;&lt;p&gt;We just want something which is easy to setup and maintain, and can organize different kind of materials. CMS's are powerful, but relatively hard to used...Wiki seems to lack some kind of structure. Blogs are easy to use, but does not organize resources well.&lt;/p&gt;&lt;p&gt;So what do you use in your lab, my dear readers?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-2550111879243306753?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/2550111879243306753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/09/looking-for-web-software-for-knowlege.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2550111879243306753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2550111879243306753'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/09/looking-for-web-software-for-knowlege.html' title='looking for a web software for knowlege sharing'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-2501172306722985901</id><published>2009-09-16T22:59:00.002+08:00</published><updated>2009-09-16T23:09:16.727+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qemu'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>QEMU "host only network"</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Setup an LAN network of only the host and guest.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Recently I'm trying something on qemu and want to access the guest from the host more freely than user mod port redirect, but I do not want to expose my guest to the host network. All I did is to wrap everything into a script:&lt;/p&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;HOSTIP="192.168.1.250"&lt;br /&gt;GUESTIP="192.168.2.10"&lt;br /&gt;NETMASK="255.255.255.0"&lt;br /&gt;USERID=`whoami`&lt;br /&gt;IFNAME=`sudo tunctl -b -u $USERID`&lt;br /&gt;&lt;br /&gt;sudo ifconfig $IFNAME $HOSTIP netmask $NETMASK up&lt;br /&gt;&lt;br /&gt;echo ":: Host IP is $HOSTIP"&lt;br /&gt;echo ":: Run the follwing command in guest to set IP and gateway:"&lt;br /&gt;echo " # ifconfig eth0 $GUESTIP"&lt;br /&gt;echo " # route add default gw $HOSTIP"&lt;br /&gt;echo ":: Starting QEMU with TUN/TAP network..."&lt;br /&gt;&lt;br /&gt;qemu -hda webdev.qcow \&lt;br /&gt;     -boot c -m 256 \&lt;br /&gt;     -k en-us -localtime\&lt;br /&gt;     -net nic,vlan=0,model=rtl8139 \&lt;br /&gt;     -net tap,vlan=0,ifname=$IFNAME,script=no,downscript=no&lt;br /&gt;&lt;br /&gt;sudo tunctl -d $IFNAME&lt;br /&gt;HOSTIP="19&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Btw, I find &lt;strong&gt;sticky note gadget on iGoogle&lt;/strong&gt; a great tool to share a couple of lines between machines - I'm writing on my Windows laptop and the script is in my Linix desktop, just a few paste and copy brings the script here :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-2501172306722985901?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/2501172306722985901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/09/qemu-host-only-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2501172306722985901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2501172306722985901'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/09/qemu-host-only-network.html' title='QEMU &quot;host only network&quot;'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5484652661749056447</id><published>2009-09-07T12:11:00.003+08:00</published><updated>2009-09-07T12:27:19.962+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>VIM Modeline is your friend</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Add modeline to a file can help VIM remember file-specific options.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;I've got to port some application to another arch these days, so I have to deal with a lot of files that does not follow my usual coding standards, and I don't want to edit my VIM settings now and then, so I turned to &lt;a href="http://vimdoc.sourceforge.net/htmldoc/options.html#modeline"&gt;modeline&lt;/a&gt; for help.&lt;/p&gt;&lt;p&gt;To add modeline to all the files, I simply did a find &amp;amp; echo like this:&lt;/p&gt;&lt;pre&gt;for f in `find . -name '*.cpp' -o -name '*.h' -print0| xargs -0i echo {}`;do echo -e "\n/* vim: set ts=2: */" &gt;&gt; $f;done&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5484652661749056447?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5484652661749056447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/09/vim-modeline-is-your-friend.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5484652661749056447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5484652661749056447'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/09/vim-modeline-is-your-friend.html' title='VIM Modeline is your friend'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-3283325209198744778</id><published>2009-09-05T18:26:00.005+08:00</published><updated>2009-09-05T18:40:39.059+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>How to insert formatted date in VIM</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Remember to escape the percent sign&lt;/p&gt;&lt;/div&gt;&lt;p&gt;I find that I cannot simply prefix a &lt;code&gt;r! &lt;/code&gt;before plain date command to insert a date in VIM today, When I tried to insert date with&lt;/p&gt;&lt;pre&gt;:r !date +%u&lt;/pre&gt;&lt;p&gt;I got an error, the reason lies in the percent sign, which stands for the current file in VIM ex-mode. For example, you can count the current file like this:&lt;/p&gt;&lt;pre&gt;:! wc %&lt;/pre&gt;&lt;p&gt;Thus to insert a formatted date, you have to run:&lt;/p&gt;&lt;pre&gt;:r !date +\%u&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-3283325209198744778?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/3283325209198744778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/09/how-to-insert-formatted-date-in-vim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3283325209198744778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3283325209198744778'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/09/how-to-insert-formatted-date-in-vim.html' title='How to insert formatted date in VIM'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-854219923888157247</id><published>2009-08-13T16:27:00.002+08:00</published><updated>2009-08-13T16:33:08.309+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Good Book: CERT C Secure Coding Standard</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;a good reference book on coding in C&lt;/p&gt;&lt;/div&gt;&lt;p&gt;It's a good reference book on coding nicely in C, which is the most &lt;em&gt;dangerous&lt;/em&gt; programming language I know except for brain-f*ck...&lt;/p&gt;&lt;p&gt;Another good point is that you can read it free online: &lt;a href="https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard"&gt;https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-854219923888157247?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/854219923888157247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/08/good-book-cert-c-secure-coding-standard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/854219923888157247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/854219923888157247'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/08/good-book-cert-c-secure-coding-standard.html' title='Good Book: CERT C Secure Coding Standard'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1393976644790732091</id><published>2009-07-30T21:17:00.001+08:00</published><updated>2009-07-30T21:21:03.342+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Backup with Acronis and without CD</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Boot Acronis True Image from grub.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Acronis True Image features online backup, however sometimes you may still want to do a off-line one, then normally you have to either install Acronis to hard disk or use a rescue media CD. Since I have both Arch Linux and Windows installed, I do not want to install Acronis to hard disk because I want to have grub in MBR. But I cannot use rescue cd either, because my cd has already been dead for years.&lt;/p&gt;&lt;p&gt;I've tried to make a usb disk rescue media, but it simply does not boot :(&lt;/p&gt;&lt;p&gt;So here's what I did:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Generate a rescue ISO with Acronis;&lt;/li&gt;&lt;li&gt;Expand ISO file and copy all in &lt;code&gt;Recovery Manager&lt;/code&gt; to a directory on hard disk;&lt;/li&gt;&lt;li&gt;Write in Grub's menu.lst:&lt;br /&gt;&lt;pre&gt;title Acronis&lt;br /&gt;root (hdX,Y)&lt;br /&gt;kernel /acronis/kernel.dat quiet vga=0x317&lt;br /&gt;initrd /acronis/ramdisk.dat&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Reboot and select Acronis from grub&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Now you see, Acronis Rescue CD is actually Linux :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1393976644790732091?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1393976644790732091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/backup-with-acronis-and-without-cd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1393976644790732091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1393976644790732091'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/backup-with-acronis-and-without-cd.html' title='Backup with Acronis and without CD'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1269767642885094184</id><published>2009-07-28T18:53:00.003+08:00</published><updated>2009-07-28T19:10:25.036+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>bool &amp; GCC</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;I'll try to clear up confusion about bool for non-compiler people;)&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Even some of my teammate on compiler would misunderstand bool with GCC some times. So I'm trying to make it a bit clear:&lt;/p&gt;&lt;p&gt;bool is &lt;em&gt;not&lt;/em&gt; an valid type in C89, which is referred as ANSI C sometimes. Therefore, if you are working on a project that is supposed to be compiled with an ANSI C compiler, &lt;em&gt;do not&lt;/em&gt; use bool type. However, bool is valid in C99 as _Bool, so you can use it safely if your code is not expected to be compiled with an ancient compiler;)&lt;/p&gt;&lt;p&gt;In GCC code, you can see 'bool' here and there, but bear in mind that it's &lt;em&gt;fake&lt;/em&gt; - it's actually &lt;code&gt;unsigned char&lt;/code&gt;, defined in &lt;code&gt;gcc/system.h&lt;/code&gt;. This is because GCC is expected to bootstrap with an ANSI C compiler.&lt;/p&gt;&lt;p&gt;In C++, bool is always valid, you don't have to worry about bool.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1269767642885094184?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1269767642885094184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/bool-gcc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1269767642885094184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1269767642885094184'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/bool-gcc.html' title='bool &amp; GCC'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8317658796629055943</id><published>2009-07-28T18:40:00.002+08:00</published><updated>2009-07-28T18:52:48.652+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>SnipMate is fabulous</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;A textmate-like snippet script for VIM.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;I've been using &lt;a href="http://vim.sourceforge.net/scripts/script.php?script_id=1318"&gt;snippetemu&lt;/a&gt; for about one year and happen to find another snippet script for vim - snipMate. After a try, I do think snipMate is much better than snippetemu, for tow reasons:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Its snippet format is simple and clear.&lt;/li&gt;&lt;li&gt;No placeholder.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I do suggest give it a try even if you're not a fan of TextMate, because it really makes coding easier.&lt;/p&gt;&lt;p&gt;You can find &lt;a href="http://www.vim.org/scripts/script.php?script_id=2540"&gt;snipMate's VIM page here.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8317658796629055943?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8317658796629055943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/snipmate-is-fabulous.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8317658796629055943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8317658796629055943'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/snipmate-is-fabulous.html' title='SnipMate is fabulous'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1161260377450551720</id><published>2009-07-21T19:12:00.003+08:00</published><updated>2010-02-25T07:44:41.278+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Archlinux'/><title type='text'>Firefox 3.5.1 (Shiretoko) fails to launch in Arch Linux</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Firefox 3.5.1 needs libjpeg.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;After updating my Firefox (Shiretoki) to version 3.5.1 in Arch Linux, I cannot launch it. When I tried to start it from command line, it says:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ firefox&lt;br /&gt;Coundn't load XPCOM&lt;br /&gt;$ &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then I tried to run xulrunner directly, I got a Error message saying that libjpeg cannot be found. So I installed &lt;code&gt;libjpeg-7-1&lt;/code&gt;, and Firefox is back again. Hopefully the Arch people can add &lt;code&gt;libjpeg&lt;/code&gt; to Firefox's dependency.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1161260377450551720?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1161260377450551720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/firefox-351-shiretoko-fail-to-launch-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1161260377450551720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1161260377450551720'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/firefox-351-shiretoko-fail-to-launch-in.html' title='Firefox 3.5.1 (Shiretoko) fails to launch in Arch Linux'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-81361423424418323</id><published>2009-07-20T11:52:00.005+08:00</published><updated>2009-07-21T19:23:39.240+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Pm-hibernate with MX440</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Some tweaks to avoid black screen after resume from hibernation with old nVidia MX440 graphic card and Intel motherboard.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;First edit the setting for pm-utils in &lt;code&gt;/etc/pm/config.d/config&lt;/code&gt;(you can name this file whatever you like).&lt;/p&gt;&lt;pre&gt;&lt;code&gt;HIBERNATE_MODE="shutdown"&lt;br /&gt;S2RAM_OPTS="-f"&lt;br /&gt;DISPLAY_QUIRK_VBE_POST=false&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then I edit &lt;code&gt;/etc/modprobe.d/modprobe.conf&lt;/code&gt;(the modprobe.conf is here for Arch Linux, but may lies in different place in other distros):&lt;/p&gt;&lt;pre&gt;&lt;code&gt;blacklist intel_agp&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then reboot the computer, and try hibernate again, everything goes well :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-81361423424418323?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/81361423424418323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/pm-hibernate-with-mx440.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/81361423424418323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/81361423424418323'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/pm-hibernate-with-mx440.html' title='Pm-hibernate with MX440'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-3718533959537955433</id><published>2009-07-13T19:58:00.003+08:00</published><updated>2009-07-13T20:10:01.987+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><title type='text'>How to Compact Virtualbox vdi</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;a memo on how to compact virtualbox vdi files.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;VirtualBox comes with a utility to compact vdi files which drops zero block. So the problem is how to write zero to unused blocks. If you have a windows guest, run the following command in cmd:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;sdelete -c&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you have a linux guest, run this:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And in the host run:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;VBoxManage modifyvdi harddisk.vdi compact&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;These may reduce the size of vdi files considerably if it has been used for a long time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-3718533959537955433?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/3718533959537955433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/how-to-compact-virtualbox-vdi.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3718533959537955433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3718533959537955433'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/how-to-compact-virtualbox-vdi.html' title='How to Compact Virtualbox vdi'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7518454715903386293</id><published>2009-07-07T22:49:00.004+08:00</published><updated>2009-07-13T20:16:17.393+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>"The greeter application appears to be crashing"</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Resolved "The greeter application appears to be crashing" problem after updating Linux system.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;I don't know whether this could be called a solution... actually just a tip if you happened to come across a same problem. I updated my Arch Linux, and after reboot this dialog box jumps up and gdm could not start normally. I checked the system and found the problem was caused by a &lt;strong&gt;full filesystem.&lt;/strong&gt; I cleaned up some old files and then everything goes right.&lt;/p&gt;&lt;p&gt;So I guess I should give more disk space to / in the future.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7518454715903386293?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7518454715903386293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/greeter-application-appears-to-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7518454715903386293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7518454715903386293'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/07/greeter-application-appears-to-be.html' title='&quot;The greeter application appears to be crashing&quot;'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8232012282242255478</id><published>2009-06-24T21:44:00.001+08:00</published><updated>2009-06-24T21:49:57.736+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='non-Tech'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Google Service Blocked by Chinese Gov</title><content type='html'>&lt;p&gt;It seems the Chinese government is now crazy about blocking foreign websites, now www.google.com, and all services of Google except www.google.cn are now blocked by the Great FireWall.&lt;/p&gt;&lt;p&gt;Web censorship ans secrete police are now bringing the country back to the bad old days :(&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8232012282242255478?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8232012282242255478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/06/google-service-blocked-by-chinese-gov.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8232012282242255478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8232012282242255478'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/06/google-service-blocked-by-chinese-gov.html' title='Google Service Blocked by Chinese Gov'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-460389773343441691</id><published>2009-06-09T22:18:00.000+08:00</published><updated>2009-06-09T22:23:53.190+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Sigh...blocked again :(</title><content type='html'>&lt;p&gt;As everybody knows, there is a Great Firewall(usually called GFW for short) between we Chinese internet users and the 'out side world'. Unluckily for some unknown reason, blogger and blogspot is blocked by GFW recently which does cause me a lot of trouble to keep blogging here... Anyway, I will try hard to keep this site updated.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-460389773343441691?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/460389773343441691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/06/sighblocked-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/460389773343441691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/460389773343441691'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/06/sighblocked-again.html' title='Sigh...blocked again :('/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5116091302089509145</id><published>2009-06-09T22:14:00.003+08:00</published><updated>2010-06-13T11:24:25.728+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Get Chrome Work in Arch Linux</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;several steps to get chrome working on Arch linux&lt;/p&gt;&lt;/div&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Google only provides deb pkg officially, damn... &lt;/li&gt;&lt;br /&gt;&lt;li&gt;download the deb pkg from:&lt;br&gt;http://www.google.com/chrome/intl/en/eula_dev.html?dl=unstable_i386_deb &lt;/li&gt;&lt;br /&gt;&lt;li&gt;unpack, copy everything in opt to /opt &lt;/li&gt;&lt;br /&gt;&lt;li&gt;mkdir lib32 in /opt/google/chrome, and make symbol links as:&lt;br&gt;http://code.google.com/p/chromium/issues/detail?id=13425 &lt;/li&gt;&lt;br /&gt;&lt;li&gt;enjoy chrome...though I can't input Chinese in its linux version...wtf...&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;p&gt;&lt;b&gt;Update Jun 13, 2010: &lt;/b&gt; Now chromium is in the official repo, and if you'd like to use Google Chrome(beta), it's in &lt;a href="http://aur.archlinux.org/packages.php?ID=32530"&gt;the AUR.&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5116091302089509145?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5116091302089509145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/06/get-chrome-work-in-arch-linux.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5116091302089509145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5116091302089509145'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/06/get-chrome-work-in-arch-linux.html' title='Get Chrome Work in Arch Linux'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5418283104051380461</id><published>2009-05-19T18:50:00.003+08:00</published><updated>2009-07-13T20:19:35.772+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>The problem of pm-hibernate solved</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Solve the problem of pm-hibernate restarts computer.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;When I try to hibernate my laptop running Arch Linux with pm-hibernate which is also used by GNOME behind the scene, it restarts immediately after hibernate to disk. I checked Arch wiki and find a link to opensuse wiki &lt;a href="http://en.opensuse.org/pm-utils"&gt;Pm-Utils&lt;/a&gt;. After add a s2ram force option as instructed, the problem is solved. I added the following lins to /etc/pm/config.d/config&lt;/p&gt;&lt;pre&gt;HIBERNATE_MODE="shutdown"&lt;br /&gt;S2RAM_OPTS="-f -p -m"&lt;/pre&gt;&lt;p&gt;The "-p" parameter was the key to a successful hibernate for me.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5418283104051380461?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5418283104051380461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/problem-of-pm-hibernate-solved.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5418283104051380461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5418283104051380461'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/problem-of-pm-hibernate-solved.html' title='The problem of pm-hibernate solved'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1726703673811300825</id><published>2009-05-17T23:04:00.003+08:00</published><updated>2009-07-13T20:20:02.394+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Script to synchronize VIM settings</title><content type='html'>&lt;div class="post-abstract"&gt;&lt;p&gt;&lt;b&gt;Abstract: &lt;/b&gt;My scripts to backup vim setting and synchonize between Windows and Linux.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Finally I cannot bare the boring work of copying my vim settings around my labtop(with both windows and linux installed), lab pc and working server. So I write a few scripts to automatic this work for me:)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The first script is used to copy the scirpts to a certain dir on my laptop that can be share accross Windows and Linux systems. &lt;b&gt;tr&lt;/b&gt; and &lt;b&gt;sed&lt;/b&gt; are used to convert file format and handle some syntax difference.&lt;/p&gt;&lt;pre&gt;#!/bin/bash&lt;br /&gt;CURDIR=`pwd`&lt;br /&gt;BACKDIR="/cygdrive/e/vim-setting"&lt;br /&gt;if [ -d $BACKDIR ] ; then&lt;br /&gt;    echo "Backup to $BACKDIR"&lt;br /&gt;else&lt;br /&gt;    mkdir "$BACKDIR"&lt;br /&gt;    echo "Make backup dir $BACKDIR"&lt;br /&gt;fi&lt;br /&gt;cd "$BACKDIR"&lt;br /&gt;rm .vimrc&lt;br /&gt;rm .gvimrc&lt;br /&gt;rm -rf .vim&lt;br /&gt;cp '/cygdrive/c/Documents and Settings/Yuanjie/_vimrc' .vimrc&lt;br /&gt;tr -d '\15\32' &amp;lt; '/cygdrive/c/Documents and Settings/Yuanjie/_gvimrc' | sed 's/set guifont=\([^:]*\):h\([0-9]*\)/set guifont=\1\\ \2/' &amp;gt;.gvimrc&lt;br /&gt;cp -r '/cygdrive/c/Documents and Settings/Yuanjie/vimfiles' .vim&lt;br /&gt;cd $CURDIR &lt;/pre&gt;&lt;br /&gt;&lt;p&gt;After files are moved to the synchronize folder, I init a git repo and push it to a host. The synchronize script on the Linux side goes like this:&lt;/p&gt;&lt;pre&gt;#!/bin/bash&lt;br /&gt;CURDIR=`pwd`&lt;br /&gt;EMOUNT=0&lt;br /&gt;BACKDIR="/media/e/vim-setting"&lt;br /&gt;if [ ! -d "$BACKDIR" ] ; then&lt;br /&gt;  echo "trying to mount drive e ..."&lt;br /&gt;  pmount /dev/sda9&lt;br /&gt;  if [ "$?"=0 ] ; then&lt;br /&gt;    echo "drive e mounted"&lt;br /&gt;    EMOUNT=1&lt;br /&gt;  else&lt;br /&gt;    echo "drive e cannot be mounted"&lt;br /&gt;    exit&lt;br /&gt;  fi&lt;br /&gt;fi&lt;br /&gt;cd $HOME&lt;br /&gt;tar cjf .vim-setting.$(date +%F).tar.bz2 .vim/ .vimrc .gvimrc&lt;br /&gt;rm -rf .vim/ .vimrc .gvimrc&lt;br /&gt;cp -r $BACKDIR/.vim $HOME&lt;br /&gt;cp $BACKDIR/.vimrc $HOME&lt;br /&gt;cp $BACKDIR/.gvimrc $HOME&lt;br /&gt;if [ "$EMOUNT"=1 ] ; then&lt;br /&gt;  pumount /dev/sda9&lt;br /&gt;  if [ "$?"=0 ] ; then&lt;br /&gt;    echo "drive e unmounted"&lt;br /&gt;  else&lt;br /&gt;    echo "drive e cannot be unmounted"&lt;br /&gt;    exit&lt;br /&gt;  fi&lt;br /&gt;fi&lt;br /&gt;cd $CURDIR &lt;/pre&gt;&lt;br /&gt;&lt;p&gt;The scirpt above tar the original setting files and copy the new settings from the synchronize dir. Since the drive is not always mount, a dir test is used and drive will be mounted with &lt;b&gt;pmount&lt;/b&gt;. The synchonize scirpt on Windows is similar but simpler than this, but guifont setting in gvimrc will have to be changed back like this:&lt;/p&gt;&lt;pre&gt;sed 's/set guifont=\([A-Za-z\\ ]*\)\\ \([0-9]*\)/set guifont=\1:h\2/'&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Notice that you may have to modify this in case there's number in your font name...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1726703673811300825?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1726703673811300825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/script-to-synchronize-vim-settings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1726703673811300825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1726703673811300825'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/script-to-synchronize-vim-settings.html' title='Script to synchronize VIM settings'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7840888816876975538</id><published>2009-05-14T02:09:00.002+08:00</published><updated>2009-05-14T02:19:10.800+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>EE in side?</title><content type='html'>&lt;p style="color:#C0C0C0;"&gt;Well I promised that I will blog about technique-related stuffs in  English, but that is NOT always easy, especially when I want to talk about  something not exactly technical… So let me try ;)&lt;/p&gt; &lt;p&gt;Today I helped Emma understand the confusing chip manual from TI, which is  actually quite ordinary for a guy who was majored in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;EE&lt;/span&gt; – like me ;) Computers,  cellphones, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PDA&lt;/span&gt;’s and all lovely electronic gadgets are just chips connected  on PCB in my eyes, and all programs to me are just bit streams flowing on the  binary circuit… Parallelism has never be something hard for me since all the  parts on a circuit should be working simultaneously (though some of the chips  can be disabled to save energy or for some other reason…)&lt;/p&gt; &lt;p&gt;I do find some differences between me and those ‘genuine CS’ guys &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;XD&lt;/span&gt; – What  occurs to me when I meet difficulty in my experiments is to build a ‘lab-made’  hardware environments of my own instead of buying from some vendor; CS people  say that this CPU features loading 8 instructions a time, while I say this CPU  could work better with block-reading storage devices since reading multiple  continuously stored instructions at a time is more efficient...&lt;/p&gt; &lt;p&gt;Currently I’m working on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;GCC&lt;/span&gt; and studying machine learning and data mining  techniques, which are all interesting,  but sometimes I do miss those days with  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;FPGA&lt;/span&gt; and various chips and I’m still dreaming of building my CPU (perhaps with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;FPGA&lt;/span&gt;) which  implements my instruction set, designing a circuit to support it, and finally  writing a kernel, a compiler and several applications to form a minimal environment in my programming language for it. I don't believe this will be of any academic significance... but it really sounds &lt;b&gt;INTERESTING&lt;/b&gt;~&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7840888816876975538?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7840888816876975538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/ee-in-side.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7840888816876975538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7840888816876975538'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/ee-in-side.html' title='EE in side?'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4180389391353156398</id><published>2009-05-10T23:24:00.002+08:00</published><updated>2009-05-10T23:39:10.708+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Converting between WAV and MP3 with simple open source tools</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A short memo on converting between mp3 and wav files&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Today I find some conf call audio records are so big for my little hard disk so I decided to convert them from WAV to MP3 format. I make use of a simple (more precisely, simple to use) tools to do the job -- &lt;strong&gt;lame&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Since all my wav files to convert sit in the same folder, I make use of a little bash:&lt;/p&gt;&lt;pre&gt;$ for f in `ls -1 *.wav | sed s/\.wav$//` ; do lame $f.wav $f.mp3 ; rm -v $f.wav ; done&lt;/pre&gt;&lt;p&gt;Easy, isn't it?&lt;/p&gt;&lt;p&gt;Converting mp3 files back is just as easy, though there should be some quarlity loss which I don't believe can be noticed for a conf call record;) The &lt;strong&gt;mpg123&lt;/strong&gt; is as simple as its name 123, you just have to give it the name of the file to convert&lt;/p&gt;&lt;pre&gt;$ for f in `ls -1 *.mp3 | sed s/\.mp3$//` ; do mpg123 -w $f.wav $f.mp3 ; done&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4180389391353156398?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4180389391353156398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/converting-between-wav-and-mp3-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4180389391353156398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4180389391353156398'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/converting-between-wav-and-mp3-with.html' title='Converting between WAV and MP3 with simple open source tools'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8373682964828041319</id><published>2009-05-10T04:14:00.004+08:00</published><updated>2009-05-10T23:40:35.090+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Tux Drawing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IstqspdHEiI/SgXkTCKd8-I/AAAAAAAAAXg/ZIYLyZqmYDU/s1600-h/tux.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 288px; height: 330px;" src="http://1.bp.blogspot.com/_IstqspdHEiI/SgXkTCKd8-I/AAAAAAAAAXg/ZIYLyZqmYDU/s400/tux.gif" alt="" id="BLOGGER_PHOTO_ID_5333920349339644898" border="0" /&gt;&lt;/a&gt;&lt;p&gt;I'm not sure whether is a good idea to put it here, anyway, I think Tux is technique-related...&lt;/p&gt;&lt;p&gt;Done in OpenCavas(Maybe I should use Linux and GIMP to do this, but I really don't like GIMP)... This took me several minutes after a pencil sketch on real paper.&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/6523230460872601144-8373682964828041319?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8373682964828041319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/tux-drawing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8373682964828041319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8373682964828041319'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/tux-drawing.html' title='Tux Drawing'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IstqspdHEiI/SgXkTCKd8-I/AAAAAAAAAXg/ZIYLyZqmYDU/s72-c/tux.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-398213164054340162</id><published>2009-05-09T23:20:00.006+08:00</published><updated>2009-05-10T21:00:32.768+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>How to use git-http-fetch with a proxy</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;This post offers a tip on how to use git with a http proxy&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I noticed a mail in the Chinese Google Summer of Code mail list today, which askes how to use git-http-fetch when a http proxy have to be used to access the git host. I don't believe there is any way to do so with GIT, but I don't think this should be a tough problem either. Remember git is only a &lt;strong&gt;common program&lt;/strong&gt;, though it does many &lt;strong&gt;magic&gt;&lt;/strong&gt;. So it should work with http proxy just as other programs do.&lt;/p&gt;&lt;p&gt;Remember how we access the internet with a proxy in bash? &lt;strong&gt;All we have to do is to set the http_proxy environment variable&lt;/strong&gt;.In bash we simply do:&lt;/p&gt;&lt;pre&gt;export http_proxy=”http://&amp;lt;proxy-&lt;wbr&gt;server-ip&amp;gt;:&amp;lt;port&amp;gt;”&lt;/pre&gt;&lt;p&gt;Or you may:&lt;/p&gt;&lt;pre&gt;http_proxy=”http://&amp;lt;proxy-&lt;wbr&gt;server-ip&amp;gt;:&amp;lt;port&amp;gt;” git http-fetch &amp;lt;your-params&amp;gt;&lt;/pre&gt;&lt;p&gt;And be aware that the name of the environment variable is in &lt;strong&gt;lower case&lt;/strong&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-398213164054340162?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/398213164054340162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/how-to-use-git-http-fetch-with-proxy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/398213164054340162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/398213164054340162'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/how-to-use-git-http-fetch-with-proxy.html' title='How to use git-http-fetch with a proxy'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4421637178861193155</id><published>2009-05-06T02:09:00.003+08:00</published><updated>2009-05-06T02:43:22.564+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>How to process large text file efficiently in Python</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Three different ways of processing text file line by line are given in the order of increasing efficiency.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I have to handle a large text file of space-separated data in python, and the data goes like this:&lt;/p&gt;&lt;pre&gt;tag1 tag2 tag3&lt;br /&gt;12 34 12&lt;br /&gt;123 345 12&lt;/pre&gt;&lt;p&gt;the first line is tags for each column, and the rest lines hold data. Since the tags are fixed, I can code it directly in to my script, that is to say the first line should be skipped. My first script goes like this:&lt;/p&gt;&lt;pre&gt;file = open('foo.txt', 'r')&lt;br /&gt;for line in file.readlines()[1:]:&lt;br /&gt;  #do something&lt;/pre&gt;&lt;p&gt;This script requires a vast amount of RAM, since it has to store a list of all lines! So it is wise to use iterator:&lt;/p&gt;&lt;pre&gt;file = open('foo.txt', 'r')&lt;br /&gt;first = True&lt;br /&gt;for line in file:&lt;br /&gt;  if first:&lt;br /&gt;    first = False&lt;br /&gt;  else:&lt;br /&gt;    #do something&lt;/pre&gt;&lt;p&gt;The second script works much better than the first one, because the lines are read one by one from the file by using a iterator. However, the first flag is not a neat way to skip the first line for we have to test the flag many times, which makes no sense. And the problem is solved in the third script:&lt;/p&gt;&lt;pre&gt;file = open('foo.txt', 'r')&lt;br /&gt;file.readline()&lt;br /&gt;for line in file:&lt;br /&gt;  #do something&lt;/pre&gt;&lt;p&gt;the 'fileread.line()' command will perfectly move the file position one line forward, and the iter will then start from the second line:)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4421637178861193155?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4421637178861193155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/how-to-process-large-text-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4421637178861193155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4421637178861193155'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/how-to-process-large-text-file.html' title='How to process large text file efficiently in Python'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5234804260415712814</id><published>2009-05-04T03:11:00.003+08:00</published><updated>2009-05-04T03:29:46.765+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>How many lines does it take to learn a new language?</title><content type='html'>&lt;p&gt;It seems to be impossible for me to learn a new programing language by  reading books without practice,  so the question in the title occurs to me – how  many lines does it take to learn a language?&lt;/p&gt; &lt;p&gt;The number obviously depends on many factors:  whether it is the first  programming language to me, if I have learned a language with similar  grammar/design before, the size of the standard library… and a lot!&lt;/p&gt; &lt;p&gt;And it’s even harder to define when I should say I have learned a programming  language… Having been programming in C for years, I still check the standard library now and then :(&lt;/p&gt; &lt;p&gt;Maybe I should define a metric of the familiarity of a programming language,  ask all my friends in this trade to help me collect data, and take some  statistical approach to obtain a equation of lines needed to practice a language... Hmm, a lot work to answer this simple question, isn't it  XD&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5234804260415712814?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5234804260415712814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/how-many-lines-does-it-take-to-learn.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5234804260415712814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5234804260415712814'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/how-many-lines-does-it-take-to-learn.html' title='How many lines does it take to learn a new language?'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-2619124349939746108</id><published>2009-05-04T02:58:00.003+08:00</published><updated>2009-05-05T04:01:31.258+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>a python script to generate cue file</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A python script to generate cue file from file names in a same folder is given.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Sometimes we have lessless music (ape, flac…) split in to different files,  and a cue file may help orgnize them in some music jukebox application, i.e  foobar2000. so I create a really silly script to help me…&lt;/p&gt;&lt;code&gt;#!/usr/bin/env python&lt;br /&gt;# -*- coding: UTF-8 -*-&lt;br /&gt;&lt;br /&gt;import os&lt;br /&gt;import sys&lt;br /&gt;import glob&lt;br /&gt;from string import Template&lt;br /&gt;from optparse import OptionParser&lt;br /&gt;&lt;br /&gt;cue_head='''REM GENRE $GENRE&lt;br /&gt;REM DATE $DATE&lt;br /&gt;REM DISCID $DISCID&lt;br /&gt;PERFORMER "$PERFORMER"&lt;br /&gt;TITLE "$ALBUMTITLE"'''&lt;br /&gt;&lt;br /&gt;cue_file='''&lt;br /&gt;FILE "$FILE" WAVE&lt;br /&gt;TRACK $TRACK AUDIO&lt;br /&gt; TITLE "$TRACKTITLE"&lt;br /&gt; INDEX 01 00:00:00'''&lt;br /&gt;&lt;br /&gt;def cue_gen():&lt;br /&gt; """&lt;br /&gt; generate cue file&lt;br /&gt; """&lt;br /&gt; parser = OptionParser()&lt;br /&gt; parser.add_option('-d', dest='dir',&lt;br /&gt;                   type='string')&lt;br /&gt; parser.add_option('-s', dest='sfx',&lt;br /&gt;                   type='string', default='ape')&lt;br /&gt; options, args = parser.parse_args()&lt;br /&gt;&lt;br /&gt; if options.dir is None:&lt;br /&gt;     directory = os.getcwd()&lt;br /&gt; else:&lt;br /&gt;     directory = options.dir&lt;br /&gt; suffix = options.sfx&lt;br /&gt; print directory,  suffix&lt;br /&gt;&lt;br /&gt; files = glob.glob(os.path.join(directory, '*.'+suffix))&lt;br /&gt; files = [ff[1] for ff in [os.path.split(f) for f in files]]&lt;br /&gt; files.sort()&lt;br /&gt; for file in files:&lt;br /&gt;     print file&lt;br /&gt; begin = int(raw_input('Title offset? '))&lt;br /&gt;&lt;br /&gt; genre = raw_input('Genre? ')&lt;br /&gt; date  = raw_input('Date? ')&lt;br /&gt; discId  = raw_input('DiscId? ')&lt;br /&gt; performer = raw_input('Performer? ')&lt;br /&gt; albumTitle = raw_input('Title? ')&lt;br /&gt; d1 = dict(GENRE = genre,&lt;br /&gt;           DATE = date,&lt;br /&gt;           DISCID = discId,&lt;br /&gt;           PERFORMER = performer,&lt;br /&gt;           ALBUMTITLE = albumTitle)&lt;br /&gt; head = Template(cue_head).substitute(d1)&lt;br /&gt; cuepath = os.path.join(directory, (albumTitle+'.cue'))&lt;br /&gt;&lt;br /&gt; f = open(cuepath, 'w')&lt;br /&gt; f.write(head)&lt;br /&gt;&lt;br /&gt; track = 0&lt;br /&gt; for file in files:&lt;br /&gt;     trackTitle = file[begin:-(len(suffix)+1)]&lt;br /&gt;     track = track + 1&lt;br /&gt;     d2 = dict(FILE = file,&lt;br /&gt;               TRACK = track,&lt;br /&gt;               TRACKTITLE = trackTitle)&lt;br /&gt;     body = Template(cue_file).substitute(d2)&lt;br /&gt;     f.write(body)&lt;br /&gt;&lt;br /&gt; f.close()&lt;br /&gt;&lt;br /&gt;if __name__ == '__main__':&lt;br /&gt; cue_gen()&lt;br /&gt;&lt;br /&gt;&lt;/code&gt; &lt;p&gt;I know it’s quite rough and a lot of enhancement can be made… maybe it should  search for the right file extension automatically or even search the genre for  the internet, and that’s just why I put it here, hopefully some of you would  help to improve it XD&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-2619124349939746108?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/2619124349939746108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/silly-script-to-generate-cue-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2619124349939746108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2619124349939746108'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/silly-script-to-generate-cue-for.html' title='a python script to generate cue file'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4018179439203014057</id><published>2009-05-03T03:11:00.003+08:00</published><updated>2009-05-03T03:23:44.181+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Migrate to a blog is just like move to a new house...</title><content type='html'>&lt;p&gt;It's tiring, but offers a great opportunity to review my stuffs - what I have been writing about, what kind of blog I hope to have, whether my posts are well tagged...&lt;/p&gt;&lt;p&gt;And when I was trying to make a list of all programing/makeup languages I've used, I found some of them get so rusty that I cannot even remember how to define a function in it...Hmm it doesn't sound good :(&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4018179439203014057?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4018179439203014057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/migrate-to-blog-is-just-like-move-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4018179439203014057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4018179439203014057'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/migrate-to-blog-is-just-like-move-to.html' title='Migrate to a blog is just like move to a new house...'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5684318437973307884</id><published>2009-05-03T01:23:00.000+08:00</published><updated>2009-05-03T01:46:47.005+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Fresh New Blog for Tech blogging =)</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;Finally I've decided to write a new blog for my technological posts, and all posts related to technology (software,  Linux system, web technology...)  will be migrate here in a short period of time =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5684318437973307884?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5684318437973307884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/fresh-new-blog-for-tech-blogging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5684318437973307884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5684318437973307884'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/05/fresh-new-blog-for-tech-blogging.html' title='Fresh New Blog for Tech blogging =)'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-119384521734343991</id><published>2009-04-30T03:30:00.004+08:00</published><updated>2009-05-04T21:07:11.527+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>My Comments on Books about Shell Programming</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Abastract&lt;/span&gt;&lt;br /&gt;In this article I shall introduce several books about shell programming and hopefully it will help you to determine the right one for you.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I have to learn shell to carry out some of my experiments recently, and to be  honest, I don’t feel like shell very much since there are so many modern script  languages out there… Anyway, as shell is so widely used,  it’s not too bad to  spend some time on it.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;em style="font-weight: bold;"&gt;A Practical Guide to Linux Commands, Editors, and Shell Programming&lt;/em&gt;  is a nice book to start for newbies :)&lt;/li&gt;&lt;li&gt;&lt;em style="font-weight: bold;"&gt;Unix Shell Programming&lt;/em&gt; is the best book on shell programming I’ve  found, which explains how shell works clearly&lt;/li&gt;&lt;li&gt;&lt;em style="font-weight: bold;"&gt;Classic Shell Scripting&lt;/em&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;is not structured as well as the the  previous one,  but it has a chapter on security and explains some basic ideas in more details. If you get confused while reading the previous book, check this one.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Unix Shell by Example&lt;/span&gt; explains all popular shells, including sh, bash , csh and ksh, if you are going to script for different shells you may very likely find this book useful.&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/6523230460872601144-119384521734343991?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/119384521734343991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/learning-shell-recently-some-comments.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/119384521734343991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/119384521734343991'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/learning-shell-recently-some-comments.html' title='My Comments on Books about Shell Programming'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4206066664821606404</id><published>2009-04-27T13:06:00.000+08:00</published><updated>2009-05-03T01:54:49.650+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Google logo today is so~ COOL!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/logos/samuelmorse09.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 110px;" src="http://www.google.com/logos/samuelmorse09.gif" border="0" alt="" /&gt;&lt;/a&gt;So impressive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4206066664821606404?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4206066664821606404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/google-logo-today-is-so-cool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4206066664821606404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4206066664821606404'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/google-logo-today-is-so-cool.html' title='Google logo today is so~ COOL!'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7522152763532086533</id><published>2009-04-27T12:47:00.001+08:00</published><updated>2009-05-05T03:55:25.782+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Finally get Xorg-1.6 work with nVidia MX440</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I describe a solution to the problem that Xorg 1.6 fails to work with Mx440 and kernel 2.6.29 in Arch Linux&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I'm currently using an old PC in the lab, which features a MX440 video card,  last week I updated my Arch Linux and got Xorg 1.6, and that was the start of a  nightmare...&lt;/p&gt; &lt;p&gt;Xorg refuse to work with the legacy driver (nvidia-96xx), and won't start if the xorg.conf  file exists, which is used to specify the screen resolution(though the pc is quite old,  I got a big widescreen monitor…). I browsed the Arch user forum and tried all  the solutions given, and finally get it work with add “nopat” option to the  kernel in the grub munu.lst like this:&lt;/p&gt; &lt;p&gt;&lt;code&gt;title  Arch Linux&lt;br /&gt;root   (hd0,4)&lt;br /&gt;kernel /vmlinuz26  root=/dev/disk/by-uuid/99b8f60e-c1eb-4482-a22f-6a49a5572401 ro vga=0x317  nopat&lt;br /&gt;initrd /kernel26.img&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Hopefully this can be useful ;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7522152763532086533?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7522152763532086533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/finally-get-xorg-16-work-with-nvidia.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7522152763532086533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7522152763532086533'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/finally-get-xorg-16-work-with-nvidia.html' title='Finally get Xorg-1.6 work with nVidia MX440'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4831332664970360452</id><published>2009-04-25T02:56:00.000+08:00</published><updated>2009-05-04T03:10:11.457+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Linux is neither heaven nor hell (3)</title><content type='html'>&lt;p&gt;前两天开始写这个系列，本来是打算先写天堂的，不过我刚刚写完天堂的信仰之后就发生了无法配置X的惨剧，所以我决定先写“地狱“……&lt;br /&gt;&lt;/p&gt;&lt;p&gt;在Linux下，一个十分重大的问题就是升级。因为我们总是希望Linux更加的好用，所以大家弄出了各种各样的新鲜东西，引诱你升级。而现实的另一面是可能过去遇到的一个一直没有解决的问题一直在折磨你，而据说新版本解决了这个问题，所以需要升级。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;在Linux升级的时候，需要首先做好搞砸整个系统再也看不到可爱的GUI界面的心理准备，备份好自己的文件，向图灵、冯诺依曼等计算机史上的贤者祷告，祈求得到他们的祝福。然后毕恭毕敬小心翼翼的输入升级的命令，接着就是听天由命了……可惜这些神明并不好伺候，有的时候他们会莫名其妙的降罪于我。比如我今天在笔记本电脑和台式机上同时升级我的arch Linux，笔记本上的表现很好（尽管Root Terminal不能用了，我的触摸板却神奇的好了，经过我的配置还支持了连为windos都不曾支持过的双指触控-_-b），而台式机则直接出现了最恶心的xorg错误，目前连正确的分辨率都无法设置。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Linux像地狱，因为我总是生活在恐惧之中，常常因为一个小小的贪心，陷入系统无数细节的深深泥沼……如果幸运的话还可以抓住manual、wiki、google和bbs这些救命稻草，如果不幸的话常常会花去数个小时也没有挣脱出来。在Linux这个原始蛮荒的丛林里，只有熟悉环境经验丰富的家伙才能像山猫一样游刃有余的穿行，很可惜我至今还是一个时常掉进坑里头破血流还半天爬不出来的小白鼠……&lt;br /&gt;&lt;/p&gt;&lt;p&gt;在这片丛林中，你脚下的土地都不是坚实而值得信任的；很多问题和硬件有关的。我不知道这种现状应该归罪于什么人，毕竟对于硬件厂商来说，支持纷繁复杂变幻迅速的Linux比支持用一只手的指头都能数过来的微软Windows要困难多了。这个社区缺乏一个强大的力量，了解并统一大家的意见提出一个清晰的标准；而没有这样一个清晰的标准，社区和外界的交流就会有很多困难。自由和效率不仅仅是一个政治问题，在很多地方都能看到这种博弈的影子。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;有人说没必要这么复杂，装一个Ubuntu就好了，可就像在树林边的草地上散步，终归会因为窥见的诱惑或是其他的原因走进这篇丛林……复杂的系统软件如参天巨树遮天蔽日让人难辨方向，依赖关系的藤蔓纵横交错将人包围，脚下的硬件支持如同泥沼不知道什么时候就会陷进去，这就是Linux的地狱印象。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;不过着绝望的印象中还有一丝的希冀：当最终穿过这片林子时，当初因好奇而迷失其中的小白鼠应该已经变成主宰丛林的大象了吧。&lt;br /&gt;&lt;/p&gt;&lt;p&gt; ［ to be continued... ］&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4831332664970360452?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4831332664970360452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/linux-is-neither-heaven-nor-hell-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4831332664970360452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4831332664970360452'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/linux-is-neither-heaven-nor-hell-3.html' title='Linux is neither heaven nor hell (3)'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6301023235070181690</id><published>2009-04-24T01:32:00.000+08:00</published><updated>2009-05-04T03:10:11.457+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Linux is neither heaven nor hell (2)</title><content type='html'>&lt;p&gt;昨天说了我在Linux下混的短短历史，其实没什么值得参考的，今天说说我对于类Unix系统和GNU/Linux的感想。&lt;/p&gt; &lt;p&gt;说到学习Linux，我觉得这个说法本身就有一点问题，尤其是对于绝大多数从Windows过去的童鞋（按理说从mac过去的同学应该问题小很多）不是学习一个操作系统如何使用，更主要的是在Linux背后的一些逻辑。没有这些逻辑，就会觉得始终不得要领，而这些逻辑不是Linus自创出来的，而是来源于光辉伟大千秋万岁的Unix系统。&lt;/p&gt; &lt;p&gt;Unix的逻辑是简单的逻辑。（尽管Linux有时候会让人觉得很复杂，这只是因为nix系的操作系统对于消费用户来说暴露了太多的细节，没有做到所谓的傻瓜化隔离）&lt;/p&gt; &lt;p&gt;Unix系统里很多东西都是保存在纯文本文件里的，软件的源代码，软件的设置，甚至软件的本身也很少包括不是从源代码来的东西。比如windows程序多数都会内置一个图标，而Unix程序一般会使用一个外部的单独的图片文件。这种看似原始的方式其实还是蛮有好处的，你可以方便的使用你喜欢的工具编辑你的软件的设置；而且即使你搞砸了，也只是破坏了一个软件的设置，试想如果你把Windows的注册表搞砸了是什么后果……（我记得某文科女生说过她的一个师兄告诉她改注册表就会死机，呵呵……）&lt;/p&gt; &lt;p&gt;Linux继承了这种简单，和所有类Unix系统一样，计算机的文件组织方式是一棵树，这棵树只有一个根，不论你有多少个硬盘，多少个设备，都是这个根上的分支而已。（而Windows呢？我的文件夹还有C盘都是什么关系？正是因为搞不清楚我的文件夹实际上是C盘上若干文件夹内容的映射，多少小白再重装电脑之后痛失桌面上刚刚写好的作业啊……）更好的是所有的类Unix系统的磁盘都是可以挂载在任一文件夹的。如果你希望在Windows上把某软件的缓存设置到内存上，那么你只能祈祷该软件可以设置缓存地址，否则没戏。而在Unix上你可以把内存变成ramdisk挂载在任何你觉得合适的地方。逻辑简单，用法灵活。&lt;/p&gt; &lt;p&gt;很多人提到Linux相到的就是free，可惜理解的意思往往是“不要钱”。卓越上一份Windows也就是几百块，我还真不相信那些叫嚣着微软黑我屏我就跟盖茨拼命的家伙们拿不出来这个钱；把盗版微软觉得理所应当的人，几乎一定认为Linux社区应该把什么都给他免费准备好，生怕他不用……GNU/Linux的free更多的含义应该是自由，作为万灵之长了解并操作一个机器的自由。&lt;/p&gt; &lt;p&gt;有些人会说了，我们不是学计算机的，我就是一个OL，我搞不定C语言，弄不明白算法啦，我只想知道如何写报表怎么办呢？——这些都对，可是这不是褫夺自由和权力的理由。我们的自由和权力与生俱来，我们使用软件是委托其他人帮助我们实现我们的权利，而不是放弃我们的自由和权力。假如因为你扭了脚，要求我代你去超市买只菠萝，我说从此你的钱包就归我，你一定不会答应。所以拥有操作你的电脑的权利的人永远是你而不是某软。所以用某软的东西不是大问题，觉得电脑只有靠某软才能转就不对了。&lt;/p&gt; &lt;p&gt;某软的系统的逻辑也是简单——用户的头脑应该是简单的。于是某软私自做了很多的决定，既不告诉你为什么这么决定，也不说好处是什么，甚至不告诉你它做了决定。客观地说我不认为某软那些家伙们没能力做一个更好的系统出来，不过他们都忙着防范假象中的傻瓜用户把事情搞砸了。（这就和“为了防止你们把不靠谱的人选为xx代表，我熬夜把你们的选票上的圈都画好了，你们到时候拿过来直接扔到投票箱里就好了”是一个逻辑）微软的消费市场操作系统通过图形界面能干很多事情，但是没了图形界面基本干不了啥事情。&lt;/p&gt; &lt;p&gt;我认为Linux的桌面应用永远也不会成为主流，甚至可能在这个脑残和娱乐化的时代用户越来越少；但愿若干年后，还有一种叫做自由的精神香火不灭吧。&lt;/p&gt; &lt;p&gt;【 to be continued… 】&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6301023235070181690?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6301023235070181690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/linux-is-neither-heaven-nor-hell-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6301023235070181690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6301023235070181690'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/linux-is-neither-heaven-nor-hell-2.html' title='Linux is neither heaven nor hell (2)'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5184192193051353866</id><published>2009-04-23T03:34:00.000+08:00</published><updated>2009-05-04T03:10:11.457+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Linux in neither heaven nor hell (1)</title><content type='html'>&lt;p&gt;今天Emma童鞋问我用Linux多久了，我说这要看从什么开始算起，是第一次虚拟机安装？第一次在电脑上安装？还是最近的一次开始使用。于是Emma童鞋创造性的提出了应该看总时间，那么把若干次尝试零零星星的合计起来大概应该是一年吧。&lt;/p&gt; &lt;p&gt;这“一年”里我用过很多发行版，最开始是Ubuntu，因为据说用户多资料多中文社区好，后来发现用户多和中文社区都是很不本质的问题，资料还不怎么好（当时ubuntu的wiki里面有很多陈旧的东西）。尽管当时我还是离开了Gnome或者KDE什么都干不了的超级小白，还是果决的走上了一条漫漫长路——换发行版。&lt;/p&gt; &lt;p&gt;在Ubuntu之后，我现跳到了openSUSE。我用SUSE的原因十分值得鄙视，就是当时的SUSE的grub界面和KDE界面比较好看——我后来才知道这些都是很不本质的问题，换起来很容易（现在偶尔还听到有人说Ubuntu/SUSE/Fedora好看或者不好看，就会想起当初白白的我呀……很傻很好奇，呵呵）。不过openSUSE的教育网源是不大容易找的，在T大那个上国外网无比困难的情况下（在国内网络噪音远远大于信息的条件下，还让学生只能上国内网，T校真的是太没眼界了；单单知道怕国外势力毒害大好青年，不知道有金盾护卫祖国未来么；百年名校落得如此畏畏缩缩，唉），我的“华丽革命”没多久就华丽丽的收场了T___T&lt;/p&gt; &lt;p&gt;SUSE之后换了据说用户也很多的Fedora Core（当时还是叫做Fedora  Core的，后来才改名叫作Fedora），可是我很快就被rpm打败了，依赖关系这个概念对小白太复杂了……&lt;/p&gt; &lt;p&gt;在然后我又一次回到了apt的怀抱，不过不是ubuntu，也不是加强版ubuntu——Mint，而是ubuntu的嗲地——debian。有科大的教育网源，有舒适的apt，于是我安顿很长时间。不过呢，debian太有当爹的感觉了，等一个软件进testing都得半年，进stable就更漫长了……这对于服务器不是问题，但是对于桌面应用这个就是问题了，毕竟Linux桌面上很多东西就靠等新品了呢……&lt;/p&gt; &lt;p&gt;后来我搞了一次debian的dist update，把它搞死了……然后也懒得修理，就抛在那里去用cygwin了……&lt;/p&gt; &lt;p&gt;再后来就是今年开始的arch冲击了，呵呵。从只有bash, ssh, wget, ftp, make, gcc, tar, pacman,  vim等几十个小工具开始的系统建造之旅。这是我第一次下了决心要把该知道的都知道了，告别没了X就完蛋的时代。一路走来，我认识了以前不认识的/etc里的大部分文件，我知道了HAL的设计思想，我知道了Gnome中挂载硬盘分区是通过pmount的……后来我发现原来系统是可以通过tar备份迁移的，再后来知道原来神奇的ZFS文件系统有snapshot功能……&lt;/p&gt; &lt;p&gt;不过在我的笔记本上我还是没搞明白如何启用我的触摸板……我不知道如何让系统支持我的笔记本的Fn组合键……我更不知道如何让openoffice.org在绘制三维图表的时候不卡……最主要的问题是我现在没有充裕的时间来研究这些奇怪的问题=(  &lt;/p&gt; &lt;p&gt;【 to be continued… 】&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5184192193051353866?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5184192193051353866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/linux-in-neither-heaven-nor-hell-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5184192193051353866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5184192193051353866'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/linux-in-neither-heaven-nor-hell-1.html' title='Linux in neither heaven nor hell (1)'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1768025860731549411</id><published>2009-04-15T14:18:00.000+08:00</published><updated>2009-05-03T01:54:49.651+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>面对网页的遐思</title><content type='html'>&lt;p&gt;本来我认为技术应该是越来越方便的，可是忽然想到网页制作，发现不是那么回事。  &lt;/p&gt;&lt;p&gt;当年dreamweaver横空出世，与frontpage争锋“用table布局的最强大工具”；而今虽然土坯还在孜孜不倦的出dw cs2, dw cs3,  dw cs4  实际上严肃的实用网页基本上都变成用文本编辑器（比如记事本）写代码的了（不知道T大的计算机文化基础课程还要不要大家做网页了，当年会有dreamweaver可是个“先进”工具的说……如果还在教dreamweaver我就不的不鄙视一下母校何其土鳖……当然作为一个第三世界国家我没指望大学教学能引领研究和产业发展，至少也得跟上时代步伐）   &lt;/p&gt;&lt;p&gt;的确上来就教如何手写代码看起来很是不人性化，大有要非ECS系童鞋小命的感觉，不过从只有head, title, body,  p标签开始学习做其实还挺有趣的，比一个一对按钮面板不知道怎么用的dw强多了；当今网页创作工具再次倒退回到了文本编辑器时代。  &lt;/p&gt;&lt;p&gt;想想技术变化真是无情，当年一统江湖的大杀气如今成了土老冒的象征……如今漫天的div盒子在html5的语义标签下是不是也很快就要黯然落幕了呢？&lt;strong&gt;这个产业真的够残忍，几年时间就把认识颠覆一遍，知识淘汰一遍，一不小心没跟上趋势就被拍死在沙滩上了……&lt;/strong&gt;   &lt;/p&gt;&lt;p&gt;&lt;strong&gt;退化进化终究都是变化啊&lt;/strong&gt;  &lt;/p&gt;&lt;p&gt;btw，忽然回想起大四上的一门完全没花心思的课——貌似叫做网络信息论——想起樊平毅老师，当时很不愿意去翻找论文和经典教材，现在才恍然发现追本溯源，看清时下纷繁技术的前世今生，判断它未来，是如此的重要。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1768025860731549411?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1768025860731549411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/blog-post_14.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1768025860731549411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1768025860731549411'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/04/blog-post_14.html' title='面对网页的遐思'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5317853124498392299</id><published>2009-03-30T18:21:00.000+08:00</published><updated>2009-05-03T01:54:49.652+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Clone Arch Linux to another computer</title><content type='html'>&lt;p&gt;I’ve just cloned my arch linux installation from my lab pc to my laptop, and it is much easier than I’ve expected. First I packed every thing up into a tar in a removable disk like this: (you need to change sdxx and sdyy below to your corresponding partition)&lt;/p&gt;&lt;pre&gt;#mount the backup disk&lt;br /&gt;mkdir /mnt/backup&lt;br /&gt;mount /dev/&lt;span style="color:red;"&gt;sdxx&lt;/span&gt; /mnt/backup&lt;br /&gt;cd /&lt;br /&gt;tar -cvpzf /mnt/backup/BACKUP_FILE.tar.gz --exclude=/{dev,lost+found,mnt,proc,sys,tmp,}/* / &lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Then in my laptop:&lt;/p&gt;&lt;pre&gt;# boot with arch iso&lt;br /&gt;# mount the dest partition&lt;br /&gt;mkdir /mnt/arch&lt;br /&gt;mount –t ext3 /dev/&lt;span style="color:red;"&gt;sdyy&lt;/span&gt; /mnt/arch&lt;br /&gt;# mount the backup disk&lt;br /&gt;mkdir /mnt/backup&lt;br /&gt;mount –t vfat /dev/&lt;span style="color:red;"&gt;sdxx&lt;/span&gt; /mnt/backup&lt;br /&gt;# expand the installation tar&lt;br /&gt;cd /mnt/arch&lt;br /&gt;tar –xvpzf /mnt/backup/BACKUP_FILE.tar.gz&lt;br /&gt;# something necessary to boot&lt;br /&gt;chroot /mnt/arch&lt;br /&gt;cd /dev&lt;br /&gt;mknod -m 660 console c 5 1&lt;br /&gt;mknod -m 660 null c 1 3&lt;br /&gt;# modify the /etc/fstab&lt;br /&gt;# make a new boot ramdisk&lt;br /&gt;mkinitcpio -p kernel26&lt;br /&gt;# install grub&lt;br /&gt;# modify /boot/grub/menu.lst&lt;br /&gt;exit&lt;br /&gt;umount /dev/sdxx&lt;br /&gt;umount /dev/sdyy&lt;br /&gt;shutdown –r now&lt;br /&gt;# have fun&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Besides what are listed here, I also changed my video card driver and edited my /etc/xorg.conf file. The workflow works well for Arch Linux, but might not work exactly with other distro(e.g. mkinicpio seems to be Arch-only), in this case you may need to consult the all-mighty adviser – Google ;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5317853124498392299?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5317853124498392299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/clone-arch-linux-to-another-computer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5317853124498392299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5317853124498392299'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/clone-arch-linux-to-another-computer.html' title='Clone Arch Linux to another computer'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7203760489638601746</id><published>2009-03-23T12:04:00.000+08:00</published><updated>2009-05-04T03:10:11.458+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Cannot use visudo?</title><content type='html'>&lt;p&gt;Su is not always the best tool to grand permission to users, so I installed sudo on my Arch Linux system. However when I tried to issue visudo, I got the following error:&lt;br /&gt;&lt;/p&gt;&lt;pre style="background-color: #ffd;"&gt;bash-3.2# visudo&lt;br /&gt;bash: visudo: command not found&lt;/pre&gt;The reason of this is quite simple - &lt;span style="color: rgb(51, 102, 255);"&gt;/usr/sbin&lt;/span&gt; is not in the PATH environment variable by default, and you can locate the visudo command by:&lt;br /&gt;&lt;pre style="background-color: #ffd;"&gt;bash-3.2# whereis visudo&lt;br /&gt;visudo: /usr/sbin/visudo /usr/share/man/man8/visudo.8.gz&lt;br /&gt;&lt;/pre&gt;so just use the full path to visudo:&lt;br /&gt;&lt;pre style="background-color: #ffd;"&gt;bash-3.2# /usr/sbin/visudo&lt;br /&gt;&lt;/pre&gt;then everything goes right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7203760489638601746?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7203760489638601746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/cannot-use-visudo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7203760489638601746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7203760489638601746'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/cannot-use-visudo.html' title='Cannot use visudo?'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-77437338029374056</id><published>2009-03-22T19:30:00.000+08:00</published><updated>2009-05-03T01:54:49.652+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Script to set all pdf bookmarks to zoom: inherit</title><content type='html'>&lt;p&gt;When you create a bookmark in Acrobat, it automaticly sets the current zoom setting to te bookmark. This may be smart and sweet for someone, but to me it's stupid and annoying. Since when I read a file in a large screen, I want a greater zoom, while on a smaller screen, I wanna save space and see more content; setting a zoom for bookmarks screws things up. Finally I found {&lt;a href="http://maba.wordpress.com/2005/05/12/how-to-remove-a-pdf-certificatesignature-that-disallow-any-document-changes/"&gt;&lt;b&gt;a great perl script&lt;/b&gt;&lt;/a&gt;} that can convert all pdf bookmark to zoom: inherit.&lt;/p&gt;&lt;p&gt;Use the bookmarks-fitpage.pl script from the zip, which set all bookmarks to zoom: inherit (the script is named as fitpage, which is a bit confusing...)&lt;/p&gt;&lt;p&gt;Notice that the script only works for PDF version 1.4 or earlier, if you're using Acrobat 9, you can convert the file to pdf-1.4 (Acrobat 5) by going to menu: advanced&gt;print production&gt;preflight, the wizard will do a nice convert job for you.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-77437338029374056?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/77437338029374056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/script-to-set-all-pdf-bookmarks-to-zoom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/77437338029374056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/77437338029374056'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/script-to-set-all-pdf-bookmarks-to-zoom.html' title='Script to set all pdf bookmarks to zoom: inherit'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6701421397492601701</id><published>2009-03-22T16:22:00.000+08:00</published><updated>2009-05-03T01:54:49.652+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>VIM in GNU coding style</title><content type='html'>I guess I'll start working on GCC recently, so I tried to prepare my VIM for GNU coding style. However, it's not as easy as I hoped, since VIM seems to favor BSD style more than GNU style which is a great waste of screen space in my view...Anyway, after a vast amount of Googling and attempts, it works now. Here's what I did to VIM: create a file named c.vim in my "~/.vim/after/ftplugin" directory, with the following content:&lt;div&gt;&lt;blockquote&gt;&lt;pre&gt;"GNU Coding Standards&lt;br /&gt;setlocal cindent&lt;br /&gt;setlocal cinoptions=&gt;4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1&lt;br /&gt;setlocal expandtab&lt;br /&gt;setlocal shiftwidth=2&lt;br /&gt;setlocal tabstop=8&lt;br /&gt;setlocal softtabstop=2&lt;br /&gt;setlocal textwidth=80&lt;br /&gt;setlocal fo-=ro fo+=cql&lt;/pre&gt;&lt;/blockquote&gt;I have to put it here otherwise the settings might be overrode by VIM's default ftplugin settings.&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/6523230460872601144-6701421397492601701?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6701421397492601701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/vim-in-gnu-coding-style.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6701421397492601701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6701421397492601701'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/vim-in-gnu-coding-style.html' title='VIM in GNU coding style'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5666705762845006194</id><published>2009-03-21T23:37:00.000+08:00</published><updated>2009-05-03T01:54:49.652+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>My Score Summary as a Nerd…</title><content type='html'>&lt;p&gt;I came accross this quiz (&lt;a href="http://www.nerdtests.com/ft_nq.php"&gt;nerd  quiz&lt;/a&gt;) when I was browsing my RSS feeds -____-b &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Overall, you scored as follows:&lt;/strong&gt;&lt;br /&gt;&lt;table width="360" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="89%" bgcolor="#66cc00"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td valign="top" width="1%" bgcolor="#ffcc00"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td valign="top" width="10%" bgcolor="#ff3300"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;strong&gt;10&lt;/strong&gt;% scored higher (more nerdy),&lt;br /&gt;&lt;strong&gt;1&lt;/strong&gt;%  scored the same, and&lt;br /&gt;&lt;strong&gt;89&lt;/strong&gt;% scored lower (less nerdy). &lt;/p&gt;&lt;p&gt;&lt;strong&gt;What does this mean? &lt;/strong&gt;Your nerdiness is:&lt;br /&gt;High-Level Nerd.  You are definitely MIT material, apply now!!!.&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/6523230460872601144-5666705762845006194?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5666705762845006194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/my-score-summary-as-nerd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5666705762845006194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5666705762845006194'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/my-score-summary-as-nerd.html' title='My Score Summary as a Nerd…'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8540735576653620519</id><published>2009-03-18T12:49:00.000+08:00</published><updated>2009-05-03T01:54:49.653+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Vim春季新装面世</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IstqspdHEiI/ScB9WRUTD7I/AAAAAAAAAWc/DhMI5dC73rY/s1600-h/090318_vim.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 360px;" src="http://3.bp.blogspot.com/_IstqspdHEiI/ScB9WRUTD7I/AAAAAAAAAWc/DhMI5dC73rY/s400/090318_vim.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5314385381856317362" /&gt;&lt;/a&gt;&lt;br /&gt;Vim是什么？Vim是一种异空间里的宗教……那就让我来展示一下我看到的Vim世界的样子吧=)&lt;div&gt;color scheme: &lt;a href="http://www.vim.org/scripts/script.php?script_id=2340"&gt;molokai&lt;/a&gt;&lt;/div&gt;&lt;div&gt;guifont: &lt;a href="http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released"&gt;Envy Code R (preview 7)&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8540735576653620519?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8540735576653620519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/vim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8540735576653620519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8540735576653620519'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/03/vim.html' title='Vim春季新装面世'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IstqspdHEiI/ScB9WRUTD7I/AAAAAAAAAWc/DhMI5dC73rY/s72-c/090318_vim.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6974486466042324536</id><published>2009-02-27T00:40:00.000+08:00</published><updated>2009-05-03T01:54:49.653+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Tip：如何让Acrobat不提示阅读未标记文档</title><content type='html'>&lt;p&gt;今天发现用Acrobat打开某课件的时候总是提示如何阅读未标记文档的对话框，十分的恼人。再选项里面找了一圈都没有发现有能够关掉这个功能的方法。（看来因为关掉阅读功能作为给残障人士带来不便，所以“政治不正确”，所以没有这个选项）&lt;/p&gt; &lt;p&gt;于是我很愤愤，不过最后还是用一个十分山寨的办法解决了。到acrobat的目录里，把一个叫做的Accessibility.api东西重命名成了Accessibility.api.damn，于是这个烦人的提示终于不再出现了=)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6974486466042324536?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6974486466042324536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/02/tipacrobat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6974486466042324536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6974486466042324536'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/02/tipacrobat.html' title='Tip：如何让Acrobat不提示阅读未标记文档'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-918768705941395045</id><published>2009-02-22T03:59:00.000+08:00</published><updated>2009-05-04T03:10:11.458+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>虚拟机学Linux的悲剧</title><content type='html'>&lt;p&gt;今天从实验室回来忽然发现在虚拟机里的arch linux上不去网了，而我还没装上图形界面呢……于是翻了俩个小时的wiki也没查出个啥问题，一直"ping  &lt;a href="http://www.google.com"&gt;www.google.com&lt;/a&gt;”都是丢包100%&lt;/p&gt; &lt;p&gt;怀疑来怀疑去，终于想起来好像在实验室用ping命令也是不成功的，但是可以连接源，晚上折腾的时候手上连文本的浏览器lynx都没有，所以用ping来测试。查看了一下VirtualBox  2.1.4的help文件发现原来在vbox的NAT模式下ping不通才是常态-____-b&lt;/p&gt; &lt;p&gt;于是我晚上都是在瞎忙活了&gt;_&lt; 剩下的未解决的问题是在vbox里的arch不能访问ipv6的源，问题在哪里……&lt;/p&gt; &lt;p&gt;【更新&lt;br /&gt;刚才装上了lynx浏览器，终于有了访问web的方式了，哈哈，连接&lt;a href="http://www.kame.net"&gt;www.kame.net&lt;/a&gt;，得到不动的海龟（图片名称，嗯）证明ipv6访问有问题而不是源的问题。&lt;/p&gt; &lt;p&gt;又在vbox里启动了windows xp，安装IPv6支持，还是不能看到会动的可爱小海龟:(  于是&lt;strong&gt;我暂时的结论就是vbox的NAT模式不能使用IPV6……&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;如果我是一个第一次接触linux的小朋友，一定被弄跑了，所以为了避免因为虚拟机带来的不确定性，除了实验分区等危险操作，还是老实的用真机器吧。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-918768705941395045?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/918768705941395045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/02/linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/918768705941395045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/918768705941395045'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/02/linux.html' title='虚拟机学Linux的悲剧'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8489035288976670070</id><published>2009-02-20T02:04:00.000+08:00</published><updated>2009-05-04T03:10:11.458+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Arch貌似不错啊</title><content type='html'>今天开始在虚拟机里面折腾 Arch，发现Arch的wiki的质量很是不错（比某U的强多了），直追gentoo呀～默认安装的Arch是没有图形界面的（这么“反动”的发行版似乎已然不常见了），而阅读wiki中关于GNOME的安装的部分才发现该发行版的GNOME的安装被分解的如此详细，一大堆早就看不顺眼的组件都可以不装:) &lt;span style="color: rgb(153, 153, 153);font-size:85%;" &gt;对于GNOME的废物组件我是很有怨念的，当年俺还是特白的小白鼠的时候（现在是比较白的小白鼠-__-b），装了某U没事干就想在新立得里面把Gnome-games卸载掉，结果哗啦哗啦一大堆我不太明白的东西滚过后，重启后发现没图形界面了T__T 当时一点法子都没有呀，只好重装了一次某U ~&gt;_&lt;~&lt;/span&gt; 往事不堪回首（尽管至今也没啥数据放在nix下，浪费点时间而已），我不禁想如果我当初早知道有种叫做Arch的发行版，那么有可能： &lt;ol&gt;&lt;li&gt;我现在对linux了如指掌，成为开源应用强人&lt;/li&gt;&lt;li&gt;我认为这个东西太可怕了，我不想RTFM，于是至今视linux为异端&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;第一种情况的可能性……呃，可以忽略了……所以尽管某U发行版对kernel等贡献比较少，还多少能拉点人来看看linux的：大部分对社区意义不大（如我），很少部分成了开源生力军；所以基数还是蛮有意义的。&lt;br /&gt;&lt;br /&gt;但愿本周末能在虚拟机上把KDE 4.2完整的运行起来……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8489035288976670070?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8489035288976670070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/02/arch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8489035288976670070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8489035288976670070'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/02/arch.html' title='Arch貌似不错啊'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8198220056835113455</id><published>2009-02-19T03:36:00.000+08:00</published><updated>2009-05-04T03:10:11.459+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>damned linux distros:(</title><content type='html'>&lt;div&gt;前两天在debian lenny下发现有个东西死活装不上（谁让debian的口号是稳定呢，某些发行版current里面到东西都要比debian experimental里面都要新……而我用debian是当桌面用的，偶尔一两个程序crash一下我是不在乎的，而现在linux桌面到发展速度还是很不容小视），于是就英勇到跳槽到了fedora 10（还好我的home是个单独到分区，跳槽方便快捷）。&lt;/div&gt;&lt;div&gt;可是开始看起来很美的（尤其是启动界面不错，视觉系一下，咔咔）fedora用着发现也不怎么样……比如说Yum装东西到速度实在是比aptitude慢多了，在漫长到安装程序过程中干别的事情还卡:(  我的fedora是用liveCD安装的，安装后发现有网络设置不长记性到毛病，每次开机后都会自动设置成DHCP……吐血ing&lt;/div&gt;&lt;div&gt;……&lt;/div&gt;&lt;div&gt;于是就有了更加bt的念头，我想尝试一下传说中的小众发行版了，比如说Arch Linux（本来也挺向往gentoo的，不过现在手里没有一台”现代“配置的机器，非要用legacy machine运行这个需要自己编译一大堆东西到系统实在是太sm向了=_=）虽然bsd风格的简洁优雅到启动脚本比起sysV风格的更加适合俺这种简洁直白控，可是我不能没事去对着启动脚本发呆吧-__-||&lt;/div&gt;&lt;div&gt;……&lt;/div&gt;&lt;div&gt;这两天实在是没有什么动力干正事，于是就拜读了Filesystem Hierarchy Standard，还是蛮有收获的，推荐茶余饭后阅读之（现在有些发行版装软件到时候乱塞，不过其实社区的维护者也不容易，那么多包能稳定运行就不错了，何况某些路径还是hard code在代码里）&lt;/div&gt;&lt;div&gt;……&lt;/div&gt;&lt;div&gt;话说回来fedora毕竟是大户人家的小姐，虽然难伺候了一点，还是很知道如何待人接物的——比如默认的中文字体蛮好看，而且把firefox的默认保存路径设为/home/&lt;yourname&gt;/Download，自动挂载非*nix分区做的也不错:)&lt;/div&gt;&lt;div&gt;……&lt;/div&gt;&lt;div&gt;等周末了在virtualbox里面装个arch linux试试，如果有人用过给点提示哈～&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8198220056835113455?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8198220056835113455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/02/damned-linux-distros.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8198220056835113455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8198220056835113455'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2009/02/damned-linux-distros.html' title='damned linux distros:('/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-3084514115629262707</id><published>2008-12-24T02:35:00.000+08:00</published><updated>2009-05-03T01:54:49.654+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>技术性水文一篇</title><content type='html'>&lt;p&gt;非无聊者免进……说是技术性，是因为这篇里面会出现比较多的技术词汇，可能给非技术人士的思维构造成混乱；说是水文，是因为看了以后即学不到知识，也总结不出经验。&lt;/p&gt;&lt;p&gt;今天上午终于搞定了算法考试（我对于一学期来除了写作业时间认真看讲义以外就没干过跟算法课相关的事情深表遗憾），原来挺水的，很多东西讲义上都是有的:) 高高兴兴考完，打开实验室的电脑不相干正事，于是又折腾一番。&lt;/p&gt;&lt;p&gt;首先终于解决了一直无法通过aptitude安装linux-kernel-headers这个包的问题，原来是忘了update源仓库的列表，在aptitude界面下u一下就好了。&lt;/p&gt;&lt;p&gt;安装了kernel header后一鼓作气解决nv显卡驱动的问题（其实在我实验室的破显卡上用mesa驱动挺好的，不过屏幕总是往一侧偏，需要调整显示器不爽）傻瓜式的安装，其中编译kernel module的时候提示CC环境变量不对，说指向GCC4.1，需要GCC4.3，可是我echo $CC得到的是空，很奇怪的说。不过export CC=“/usr/bin/GCC4.3” （好像是这个路径哈，我记不清楚的……）之后就好了。&lt;/p&gt;&lt;p&gt;装好之后说要帮我自动修改xorg.conf，挺好，结果改过之后分辨率不对了，ft。还好俺是从手动写xorg.conf的石器时代过来的，知道该改哪儿，嘿嘿:) 改好，重启X，一切正常了了了～&lt;/p&gt;&lt;p&gt;进了桌面想起来opera 10应该可以试试，于是下回来。（btw，opera中国版的朱雀皮肤，还挺入眼的）然后就是字体修改……居然需要自己去写/usr/share/opera/font.ini文件里的字体优先顺序，太土了:( 使用从android系统上搞过来的免费字体Droid，显示中英文都挺好看的（可惜其中的中文字体好像不能弄到win上来，不过win上有雅黑也不错）。&lt;/p&gt;&lt;p&gt;用了opera就开始怀念Firefox的adblock插件，我已经好久好久没看到过广告了，突然看到一堆很不习惯呀。于是urlfilter和自定义站点css一起用上，搞定了xiaonei等一堆访问比较频繁的站点。其间发现dragonfly还是不如Fx的插件Firebug强大，而且这种还需要服务器支持的模式我很不喜欢，希望opera能把它做成离线功能。&lt;/p&gt;&lt;p&gt;在不修改代码，只修改设置的情况下似乎现在linux已经没啥特别的了……难道这意味着我该向源码级进军了？有空我打算想写一个转换adblock的规则到opera的user.css和urlfilter的python脚本。&lt;/p&gt;&lt;p&gt;晚上和Shine聊天，得知mac下的msn客户端还处在Windows messeger的水平上。经过简单“G式调查”发现上面可用的第三方似乎也不是特别的完善，而且依赖关系很恐怖adium就和pidgin剪不断，当然从好处说这是体现了软件开发发展的重大进步——“不重做轮子”可是如果大家都在不是圆型的轮子上造车子就有点……如果哪位高人黑盒或者反汇编一下搞出最新版msn的协议就好了，这样随便Qt什么的搭个界面就是一个不错的聊天程序。Windows有微软，*nix上从来不缺geek，这么说mac最可怜，只有一个不怎么考虑用户意见的Jobs XD&lt;/p&gt;&lt;p&gt;软件课上老师一直讲如何设计对用户有value的软件，有很多能给用户value的软件需要写，可是不能带给开发者value（安家糊口所需的￥），总就还是没有人做。三十年前，Knuth可以说我不爽，于是我自己写个软件还分享给全世界人用；而三十年后计算机产业的个人英雄主义时代已然落幕，不爽了该怎么办涅？&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-3084514115629262707?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/3084514115629262707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/12/blog-post_23.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3084514115629262707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3084514115629262707'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/12/blog-post_23.html' title='技术性水文一篇'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6340915843946440222</id><published>2008-09-24T23:28:00.000+08:00</published><updated>2009-05-03T01:54:49.654+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>信息多了也不好</title><content type='html'>最近我向geek的方向发展的比较快，当然这也和我本来的专业就是一个有点geek的玩意儿有关系。不知道什么是编译器的请&lt;a href="http://baike.baidu.com/view/487018.htm"&gt;点击链接&lt;/a&gt;。当然像我这样的还在看GCC  internals的家伙都算是门外汉……用我老师的话说，“GCC的结构比较简单”-_-b&lt;br /&gt;言归正传，为了做一个合格的说“外星语言”的geek，我最近在研究geek们喜欢的工具（当然这也和师兄至今也没有给我分配什么需要做的工作有关系，呵呵）。表面上看是出于崇拜伟大的&lt;a href="http://baike.baidu.com/view/1374762.html"&gt;Eric S.  Raymond&lt;/a&gt;，因而学习他喜欢的编程语言，实际上是因为实验室已有一些python脚本，我这种懒人自然是抱定了继承师兄师姐工作成果的信念。不管怎样，我是下了决心要买进python的大门了。&lt;br /&gt;要学一门编程语言对我来说实在不应该是一个问题，虽然我还刚刚是编译器的入门级研究者，编程语言在我眼里已经是基本上差不多了——只是表达结构不太一样，最后都会变成三地址码的。可是既然是自学就要找书看吧。python的书籍其实还是很多的。各大出版社从O’Reilly到Sam都有书讲python，还有很多开源的书籍文档。这时候看什么呢？&lt;br /&gt;最开始看的是O’Reilly的Learning Python，这个系列的书总体是质量还是不太差的，不过却也不是很容易的样子。后来看上了Dive into  Python，这本书看了大概几百页的样子就看不下去了，它的结构实在是有些诡异，既有点像给编程新手的又有些像是给python老手的，总之觉得它不对我的胃口。&lt;br /&gt;今天又在smth的python版上发现了一本叫做A Byte of  Python的书，感觉相当的平易啊，虽然是英文的一样可以看得飞快，而且也很有收获，顿时有点相见恨晚的感觉。&lt;br /&gt;到Amazon.com上敲一个python进去，二十多本书跳出来，还有主页上的开源文档十余篇，在这里到底哪个才是适合我的？现在感觉很多领域都是，有太多的资料可以看，已经不是找不到书看的时代了，是书太多不知道看哪一个的时代……有什么好的解决方案呢？这是一个复杂的问题啊，谁想好了如何解决信息质量的问题我一定先要个签名，以后见人就说我认识当下如日中天的xxx公司的xxx呢;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6340915843946440222?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6340915843946440222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/09/blog-post_24.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6340915843946440222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6340915843946440222'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/09/blog-post_24.html' title='信息多了也不好'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1187274088082001179</id><published>2008-09-21T23:00:00.000+08:00</published><updated>2009-05-03T01:54:49.654+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Matlab 2007a崩溃问题解决办法</title><content type='html'>为了做统计学习装了Matlab，做程序没有问题，可是当我想修改一下编辑器的字体的时候缺崩溃了，再尝试再崩溃。于是我认识到这是一个必然问题了。仔细检查了我的字体目录，没有发现畸形的文件啊。&lt;br /&gt;这种情况下只好求助于Mighty的Google了，搜索中文没找到有用信息（sigh，中文互联网的知识含量真可怜），搜索英文在一个mail  list里面发现有人提到在Linux平台下面也有崩溃问题，可以通过重定向Matlab的JRE来解决。于是照猫画虎的在Windows试验，安装jre  1.6，把安装目录里面的jre1.6.0_07目录拷贝到Matlab\R2007a\sys\java\jre\win32\目录下，然后修改这个目录里jre.cfg文件为1.6.0_07，保存，启动Matlab，再试，都好了:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1187274088082001179?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1187274088082001179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/09/matlab-2007a.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1187274088082001179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1187274088082001179'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/09/matlab-2007a.html' title='Matlab 2007a崩溃问题解决办法'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8381056074868786401</id><published>2008-08-27T04:22:00.000+08:00</published><updated>2009-05-03T01:54:49.655+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>推荐一个小的休息提醒软件</title><content type='html'>&lt;p&gt;发现自己在电脑前面时间越长脖子越是疲劳（当然这也是笔记本这种看起来很美的东西的影响啦……），所以四处寻找一种比较顺手的时间提醒软件，提醒自己适时的休息放松一下。看到了很多的软件，最后多数合适的不免费，免费的不太合适；也想过自己写一个，毕竟这种比较简单东西用C#或者C++/CLI也就是几个小时的事情，但是又实在懒得动手:(  不过今天我找到了一个很不错的开源软件——Work&lt;span style="color: rgb(255, 0, 0);"&gt;rave&lt;/span&gt;。郑重的推荐一下，嗯。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8381056074868786401?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8381056074868786401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/08/blog-post_26.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8381056074868786401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8381056074868786401'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/08/blog-post_26.html' title='推荐一个小的休息提醒软件'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-898824935724218167</id><published>2008-08-19T03:39:00.000+08:00</published><updated>2009-05-03T01:54:49.655+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>啥是战胜病毒的关键？</title><content type='html'>啥是战胜病毒的关键？个人认为最关键的是对于系统的熟悉。电脑好比一个小村子，里面的程序就是村民，如果你认识所有的好村民（就是exe文件），那么外来的坏家伙（也就是病毒）就很容易揪出来了。&lt;p&gt;另外凡是坏家伙，一定是起早的（也就是随系统启动的），所以把启动项列一遍就应该知道怀疑对象是谁了。&lt;/p&gt; &lt;p&gt;最后，不要迷信杀毒软件，它在怎么也是个程序，说是有害的不一定真的有害，说没有病毒更是千万不要相信。务必坚持“我的电脑我做主”:)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-898824935724218167?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/898824935724218167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/08/blog-post_18.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/898824935724218167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/898824935724218167'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/08/blog-post_18.html' title='啥是战胜病毒的关键？'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4464830668370938437</id><published>2008-08-16T05:39:00.000+08:00</published><updated>2009-05-03T01:54:49.655+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>blogger后台改版还是不错的</title><content type='html'>新的后台页面看起来还是很清爽了，最常用的&lt;span style="background-color: rgb(51, 102, 255); color: rgb(255, 255, 255);"&gt;new post&lt;/span&gt;十分的醒目，这点还是不错的。和Google的结合也更加的紧密了，嵌入广告或者其他小玩意儿都容易了许多，也算是一个进步吧:)&lt;br /&gt;基本上对于blogger没有什么不满意的地方了，不过还是贪心的想如果google弄个类似live writer一样的东西就更好了，或者给blogger的wysiwyg编辑器增强一下，连上面的new post的背景指定都需要手写代码有点不够人性化……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4464830668370938437?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4464830668370938437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/08/blogger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4464830668370938437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4464830668370938437'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/08/blogger.html' title='blogger后台改版还是不错的'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7996308786438413565</id><published>2008-08-16T05:32:00.000+08:00</published><updated>2009-05-03T01:54:49.655+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>fs2U不灵了</title><content type='html'>&lt;p&gt;金色盾牌血汗铸就～&lt;/p&gt; &lt;p&gt;然而还是有好多好东东是需要下载的，活人不能被D憋死，据说这个是通过dns搞得，于是自然就用本地dns的办法解决它。网上有个脚本效果还行，自己处理其实也就是那个法子（传说中的本地域名解析——hosts文件）。&lt;/p&gt; &lt;p&gt;又可以用了，速度还不错的说;) &lt;/p&gt; &lt;p&gt;btw，另外在卓越亚马逊看到有买开幕式DVD的，没看到而且对那个特别有爱的可以考虑一下哈。bt上据说有个NBC版本高清的流传，不过我这旧电脑和窄带宽就不尝试了……&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7996308786438413565?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7996308786438413565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/08/fs2u.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7996308786438413565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7996308786438413565'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/08/fs2u.html' title='fs2U不灵了'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4863530794976869761</id><published>2008-07-17T13:46:00.000+08:00</published><updated>2009-05-03T01:54:49.655+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>SF居然还没有解封！</title><content type='html'>今天需要下载MinGW才发现这个郁闷的问题，十分的想骂人了……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4863530794976869761?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4863530794976869761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/07/sf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4863530794976869761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4863530794976869761'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/07/sf.html' title='SF居然还没有解封！'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7140311619720582028</id><published>2008-05-22T12:48:00.000+08:00</published><updated>2009-05-03T01:54:49.655+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>总结一下FPGA开发调试经验</title><content type='html'>&lt;p&gt;Warning: 本篇文章话题很学术，内容很业余，仅供个人总结缅怀之用。游客止步。&lt;/p&gt;  &lt;p&gt;设计FPGA电路时参考Altera或者Xilinx的公制开发板是很有裨益的。&lt;/p&gt;  &lt;p&gt;设计电路前先泛泛的搜索一下想要的器件类型，不要直接寻找特定器件。比如搜索NVM就比直接去找某种ROM好，有一些新的器件可以在合理的价格上提供替代传统器件的解决方案，并大大简化设计复杂度，提高稳定性。&lt;/p&gt;  &lt;p&gt;有时候简单的设计会更好。比如八分频时钟，可以用Altera提供的PLL，也可以自己写行波计数器，事实证明对于特定环境自己写模块更好，一是方便移植，二是减少资源消耗。&lt;/p&gt;  &lt;p&gt;伪码和流程图对于基于硬件描述语言的开发和基于PC的软件开发一样不可或缺。带着清晰的设计思路写代码比摸索中写更快（即使算上画图和写伪码的时间），也更不容易犯错。&lt;/p&gt;  &lt;p&gt;对于每个寄存器都应该给予复位信号。这样能避免上电后电路进入不可知状态。case语句中的default项不是摆设，if语句一定要有else，如果不执行操作就写个&amp;#8220;;&amp;#8221;。&lt;/p&gt;  &lt;p&gt;逐模块逐功能的调试能够避免陷入一团糟的状态。&lt;/p&gt;  &lt;p&gt;最后，调不出来歇一会&amp;#8230;&amp;#8230;昨晚调不出来就回来喝汽水看《死后文》；临睡觉又看了一眼代码，忽然发现了一个查找已久的问题所在:)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7140311619720582028?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7140311619720582028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/05/fpga.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7140311619720582028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7140311619720582028'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/05/fpga.html' title='总结一下FPGA开发调试经验'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7898713962698340686</id><published>2008-04-23T12:12:00.000+08:00</published><updated>2009-05-03T01:54:49.656+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>装上了Windows XP SP3 :)</title><content type='html'>没啥感觉……就是变了一些字符而已&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IstqspdHEiI/SA630cna8TI/AAAAAAAAALQ/3z4LNmUakmk/s1600-h/sp3.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_IstqspdHEiI/SA630cna8TI/AAAAAAAAALQ/3z4LNmUakmk/s400/sp3.png" alt="" id="BLOGGER_PHOTO_ID_5192289532067377458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&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/6523230460872601144-7898713962698340686?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7898713962698340686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/windows-xp-sp3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7898713962698340686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7898713962698340686'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/windows-xp-sp3.html' title='装上了Windows XP SP3 :)'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IstqspdHEiI/SA630cna8TI/AAAAAAAAALQ/3z4LNmUakmk/s72-c/sp3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6869927281460791448</id><published>2008-04-12T04:36:00.000+08:00</published><updated>2009-05-03T01:54:49.656+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>更新后的Live Writer能支持自定义模板的Blogger预览了</title><content type='html'>&lt;p&gt;这个实在是个不错的进步，现在能够更加轻松的用Windows Live Writer写blog了，完全不必登录网页后台来编辑啦^_^&lt;/p&gt;  &lt;p&gt;其实我自定义的模板是非常非常简单的，只是定义了title背景色和鼠标悬浮变化而已，没有图片（我觉得简单就是美观，嗯）当然你要是说我在给自己的懒惰寻找理由我也不是很反对;)&lt;/p&gt;  &lt;p&gt;其实不少朋友都是有Blog的，不论是Sina还是Blogger的博客，模板差不多的（sohu的特别一点，也更不标准一些，用w3标准卡的话惨不忍睹&amp;#8230;&amp;#8230;）都是CSS的变形而已。于是就有了讨论如何美化博客的共同基础啦，欢迎对此有爱的人和我讨论~&lt;/p&gt;  &lt;p&gt;btw, 有本叫做《css之禅》（&lt;em&gt;The Zen of CSS Design&lt;/em&gt;）的书，相当的不错，去年秋天出了中文版，我只看过英文的电子书，很不满足，谁有借我看几天吧&amp;#8230;&amp;#8230;这本书的好处是插图相当的多，很多成功页面布局的例子，代码相当的简洁易懂，所以适合各种水平的读者啦^_~。&lt;/p&gt;  &lt;p&gt;如果一个人做的网页可以反映他的性格的话，从我的blogspot看我应该是&amp;#8220;率真而灵动&amp;#8221;的，自我陶醉ing~~&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6869927281460791448?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6869927281460791448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/live-writerblogger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6869927281460791448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6869927281460791448'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/live-writerblogger.html' title='更新后的Live Writer能支持自定义模板的Blogger预览了'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-3855547811633076966</id><published>2008-04-12T04:17:00.000+08:00</published><updated>2009-05-03T01:54:49.656+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>推荐一个免费小巧的刻录软件——Ashampoo Burning Studio Free</title><content type='html'>&lt;p&gt; Ashampoo的软件界面一贯做的很好，即使对电脑很白很无知也一般能用，这款也不例外:)&lt;/p&gt;  &lt;p&gt;所谓免费版本其实就是旧版（Ashampoo Burning Studio 6）改了一下界面而已。比现在的新版（7）少了Joliet等选项，不过一般用户倒是也用不着和这些高级选项打交道吧。5.5M的安装文件，和Nero几百M的比实在是太小巧了，不过必要功能都是有的（数据烧录，音乐CD烧录，音乐CD抓轨，ISO镜像文件烧录）。&lt;/p&gt;  &lt;p&gt;下载地址没有找到官方的，官网上的链接直接连到了Download.com（相当有名的软件大站，可信可靠^_^）&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.download.com/Ashampoo-Burning-Studio-Free/3000-2646_4-10776287.html" href="http://www.download.com/Ashampoo-Burning-Studio-Free/3000-2646_4-10776287.html"&gt;http://www.download.com/Ashampoo-Burning-Studio-Free/3000-2646_4-10776287.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;------&lt;/p&gt;  &lt;p&gt;PS: 本来不打算写软件相关的日志的，不过我正在为软件正版化做努力，而且好东西要大家分享嘛~&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-3855547811633076966?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/3855547811633076966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/ashampoo-burning-studio-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3855547811633076966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/3855547811633076966'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/ashampoo-burning-studio-free.html' title='推荐一个免费小巧的刻录软件——Ashampoo Burning Studio Free'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1529324544078211735</id><published>2008-04-09T14:17:00.000+08:00</published><updated>2009-05-03T01:54:49.656+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Quartus 7绑定管脚的一个trick</title><content type='html'>&lt;p&gt;看了标题不知道Altera Quartus 7是什么的人们到此止步啦;)&lt;/p&gt; &lt;p&gt;很多人从Quaruts 6升级到Quartus 7以后都发现管脚绑定变得不能只用键盘就完成了。在Quartus 6中，只需选定管脚那个格子，回车，输入部分管脚名称再回车就可以完成一个管脚的绑定；完全不需要动鼠标。而到了Quartus 7中，这种方便的操作特性没有了，回车后出现的窗口一闪即逝，根本用不了。于是只能通过双击来绑定管脚，很烦不是？&lt;/p&gt; &lt;p&gt;这是个bug吗？&lt;/p&gt; &lt;p&gt;也许是，但是不是没有解决方法的，解决方案只是一个简单的拖拉——把管脚绑定窗口变成一行高，然后再把鼠标挪到管脚栏，ok，像以前一样舒服的用吧。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1529324544078211735?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1529324544078211735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/quartus-7trick.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1529324544078211735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1529324544078211735'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/quartus-7trick.html' title='Quartus 7绑定管脚的一个trick'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8481431537457504793</id><published>2008-04-09T13:54:00.000+08:00</published><updated>2009-05-03T01:54:49.656+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>flash player更新了</title><content type='html'>&lt;p&gt;flash player，就是那个让我们的浏览器能够显示flash的插件，今天更新了。本来这是一件蛮平常的事情，可是今天这次更新的时间比较有趣——刚好在在黑客大会之后。联系到在黑客大会上，Windows Vista正是因为flash player的问题被攻破……大家还是做一次软件追新族比较好啦;)&lt;/p&gt; &lt;p&gt;更新链接→ &lt;a href="http://www.adobe.com/go/getflashplayer"&gt;&lt;strong&gt;点我&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8481431537457504793?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8481431537457504793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/flash-player.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8481431537457504793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8481431537457504793'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/flash-player.html' title='flash player更新了'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4532597643633724083</id><published>2008-04-04T13:07:00.000+08:00</published><updated>2009-05-03T01:54:49.657+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>OniBlade English Language pack re-upload</title><content type='html'>&lt;p&gt;&lt;a title="http://huangyuanjie.googlepages.com/RU2EN.ZIP" href="http://huangyuanjie.googlepages.com/RU2EN.ZIP"&gt;http://huangyuanjie.googlepages.com/RU2EN.ZIP&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Extract the zip into the game install dir, and have fun:)&lt;/p&gt; &lt;p&gt;There is not any changes made, just 'cause I found the original download link fail to work.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;There could be countless errors... so if you do love the game, wait for the official English release.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4532597643633724083?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4532597643633724083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/oniblade-english-language-pack-re.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4532597643633724083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4532597643633724083'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/oniblade-english-language-pack-re.html' title='OniBlade English Language pack re-upload'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-138513058831802132</id><published>2008-04-03T01:04:00.000+08:00</published><updated>2009-05-03T01:54:49.657+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>小红伞Avira AntiVir Personal Edition Premium免费送三个月的序列号</title><content type='html'>&lt;p&gt;这次小红伞比较大方，直接送了收费版三个月的序列号，获得网址如下：&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="https://license.avira.com/en/promotion-6dl7vtc3unbw2mzefr1b?id=5xJVVxx5Os"&gt;Avira AntiVir PersonalEdition Premium&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;扫描做的很不错的一款杀毒软件。检出率很让人满意，不过组件防护稍微做的不是那么好，如果配合一个像样的HIPS似乎更加合理。在360的免费卡巴用完之后似乎是个很好的解决方案。不过我对能一直免费用的AntiVir Personal Classic更有好感，嘻嘻:)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-138513058831802132?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/138513058831802132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/avira-antivir-personal-edition-premium.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/138513058831802132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/138513058831802132'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/04/avira-antivir-personal-edition-premium.html' title='小红伞Avira AntiVir Personal Edition Premium免费送三个月的序列号'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8004370115814862020</id><published>2008-03-29T05:15:00.000+08:00</published><updated>2009-05-03T01:54:49.657+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Comodo的免费防火墙不错</title><content type='html'>&lt;p&gt;至少可以和ZoneAlarm Free媲美了。&lt;/p&gt; &lt;p&gt;考虑到comodo firewall&amp;nbsp; pro v3提供了完整的classic HIPS功能，应该比ZA Free强大得多。具体的配置倒是十分的简单，基本上用wizard都能搞定，人性化程度还可以。对于我这个HIPS爱好者来说已经很有吸引力了;) &lt;/p&gt; &lt;p&gt;如果搭配免费的红伞倒是可以组成免费电脑安全组合，这点其实还是有不小的吸引力的（谁爱过那种整天找key的日子啊……）。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8004370115814862020?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8004370115814862020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/comodo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8004370115814862020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8004370115814862020'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/comodo.html' title='Comodo的免费防火墙不错'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-4184708543117143753</id><published>2008-03-26T22:38:00.000+08:00</published><updated>2009-05-03T01:54:49.657+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>百度hi还不错</title><content type='html'>&lt;p&gt;有点像qq，有点像tm，有点像msn，还有点像gtalk……&lt;br&gt;传文件速度相当的生猛，从紫荆到老楼7M/s；界面没有广告，很清爽；语音聊天不知道，我还没试验。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-4184708543117143753?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/4184708543117143753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/hi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4184708543117143753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/4184708543117143753'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/hi.html' title='百度hi还不错'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7781611161734724515</id><published>2008-03-19T23:39:00.000+08:00</published><updated>2009-05-03T01:54:49.657+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>衰败的C++.NET</title><content type='html'>&lt;p&gt;近日需要写一个C++/CLI .NET 2.0的小程序。可是一直找不到比较浅显易懂（或者是例子多多）的书，有些郁闷。&lt;/p&gt; &lt;p&gt;Apress的Pro C++/CLI .NET 2.0看了一些，书不错，可是我现在的状态也比较急功近利，需要一本看着更快实例更多的书。如果大家有好的请推荐给我，这里拜谢了。&lt;/p&gt; &lt;p&gt;c++ c++ c++ c++ c++ c++ c++ c++ c++ c++ c++&lt;/p&gt; &lt;p&gt;上面的分割线有创意吧，嘿嘿;)&lt;/p&gt; &lt;p&gt;发现图书馆里.NET的书几乎都是C#的，这让我有些郁闷，为啥不是C++的呢，明明C++ .NET也是不错的嘛……上网搜发现图书馆没有是不能怪学校的，因为貌似本来这种书就少的可怜:(&lt;/p&gt; &lt;p&gt;唉，一种如此强大的语言的.NET版本竟然衰败成这个样子。&lt;/p&gt; &lt;p&gt;实际开始动手写.NET程序以后发现，总是感觉很不爽，这个是不安全的，那个是由运行时操心的，不好玩呀不好玩。&lt;/p&gt; &lt;p&gt;c++ c++ c++ c++ c++ c++ c++ c++ c++ c++ c++&lt;/p&gt; &lt;p&gt;我发现最近我有崇拜简单事物的倾向，喜欢命令行、快捷键、经典主题、纯C代码等。&lt;/p&gt; &lt;p&gt;小软啊小软，赶紧开发一个轻便型的C++扩展吧（白日梦加强版祈愿）&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7781611161734724515?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7781611161734724515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/cnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7781611161734724515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7781611161734724515'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/cnet.html' title='衰败的C++.NET'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6620057646610182750</id><published>2008-03-19T22:04:00.000+08:00</published><updated>2009-05-03T01:54:49.657+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Linux用户原来是这样多起来的</title><content type='html'>&lt;p&gt;眼看着就要被大学扫地出门了，忽然发现同学们使用Linux原来越多了。然而我却看不出一点点的“开源复兴”的味道……&lt;/p&gt; &lt;p&gt;几乎所有人装上Linux的原因都是“毕设老师给了某某软件得安在Linux上”，ok，于是他们就这样不情愿的成为了Linuxer。不是我想装圣人，我实实在在的有了种悲悯的情感。某人跑来问我有Linux盘没有，于是我问你是想要啥发行版的？我有Fedora, openSUSE, 还有白申请的Ubuntu。然后我看到的就是让人绝望的迷茫了……于是我开始问你要装的软件是啥发行方式？源码，RPM还是DEB？——不知道。就这样我无语的看着他拿着我的openSUSE走了，愿上帝保佑他不要在安装的时候别把整个硬盘的东西弄没了。&lt;/p&gt; &lt;p&gt;不用Linux不知道Windows的好，我对此深有体会。windows装个软件就只要双击，然后一路next；想要在debian系上用rpm包好歹也得知道alien。啥叫make，安装缺少某文件能从啥网站下？这都让我想到“一直跟着Windows混，现在该还了”&lt;/p&gt; &lt;p&gt;我很想调查一下，到底有多少linuxer是自愿来这篇自由却荒凉新大陆的，又有多少人是被流放到这里的。我更好奇有多少linux高手曾经是这样如黑奴般被贩卖来的。&lt;/p&gt; &lt;p&gt;================================&lt;/p&gt; &lt;p&gt;说到Linux，昨天在虚拟机里瞅了一眼hardy，貌似不错的样子，也不知道ATI闭源驱动下休眠的问题搞好了没有。我有点想搬回Ubuntu一段时间了=)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6620057646610182750?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6620057646610182750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6620057646610182750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6620057646610182750'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/linux.html' title='Linux用户原来是这样多起来的'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6598301231400594098</id><published>2008-03-11T22:25:00.000+08:00</published><updated>2009-05-03T01:54:49.658+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>体验了一把MSN-Gtalk互通，很刺激</title><content type='html'>&lt;p&gt;今天上网的时候偶然看到已经可以通过“某些手段”实现MSN-Gtalk的互联互通了，遂体验了一把：&lt;/p&gt; &lt;p&gt;为了使用这个互联互通的功能，我们需要利用Jabber Transport来作为桥接，可以理解成把你的帐号交给一个bot去登录msn，然后把消息转发给使用jabber协议的Gtalk。具体方法为了方便使用了一种常见的Jabber协议的IM软件（但是不是Gtalk，sigh…）Psi。&lt;/p&gt; &lt;p&gt;安装psi 0.11 windows版后直接就可以使用Google的账户登录，登录后点坐下的那个按钮，选择service discovery，然后在上面一个框中填入:&lt;br&gt;jabbernet.dk&lt;br&gt;当然，如果你使用其他的jabber im transport server也没问题，然后browse&lt;/p&gt; &lt;p&gt;这时候会列出可用的服务，选择msn，填入账户密码，ok了~&lt;/p&gt; &lt;p&gt;从此Psi就没用了，不用再理他了，嘿嘿。登录Gtalk，看到MSN的联系人了吧？（应该会看到不少邀请，嗯）&lt;/p&gt; &lt;p&gt;=======================================&lt;/p&gt; &lt;p&gt;当然貌似是Jabber Transport Server的设计问题，所以有时候联系人的在线状态会显示成离线……&lt;/p&gt; &lt;p&gt;=======================================&lt;/p&gt; &lt;p&gt;再后来就该说怎么停止Jabber Transport Server上的MSN服务了……（不然一登录Gmail MSN就掉了太傻了&amp;gt;_&amp;lt;）&lt;/p&gt; &lt;p&gt;在主界面你的Jabber帐号上（也就是xxx[at]gmail.com）上点击右键，然后选择XML console，输入以下内容：&lt;/p&gt; &lt;p&gt;&amp;lt;iq type='set' to='msn.jabbernet.dk'&amp;gt;&lt;br&gt;&amp;lt;query xmlns='jabber:iq:register'&amp;gt;&lt;br&gt;&amp;lt;remove/&amp;gt;&lt;br&gt;&amp;lt;/query&amp;gt;&lt;br&gt;&amp;lt;/iq&amp;gt;  &lt;p&gt;原理上其实就是一次空注册操作，嗯&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6598301231400594098?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6598301231400594098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/msn-gtalk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6598301231400594098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6598301231400594098'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/msn-gtalk.html' title='体验了一把MSN-Gtalk互通，很刺激'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5183360365434085764</id><published>2008-03-06T11:25:00.000+08:00</published><updated>2009-05-03T01:54:49.658+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>我发现的第一个ie8不兼容网站——Google Scholar……</title><content type='html'>&lt;p&gt;PDF阅读界面上部完全乱掉了，换到ie7兼容模式就正常了。比如这个页面：&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/patents?id=zvELAAAAEBAJ&amp;amp;printsec=abstract&amp;amp;zoom=4&amp;amp;dq=fpga+usb"&gt;http://www.google.com/patents?id=zvELAAAAEBAJ&amp;amp;printsec=abstract&amp;amp;zoom=4&amp;amp;dq=fpga+usb&lt;/a&gt;&lt;/p&gt; &lt;p&gt;有趣的是不论ie8如何设置，调用ie内核的theWorld，Maxthon等浏览器显示的都是正常的。看来穿马甲还是有用的，哈哈:D&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5183360365434085764?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5183360365434085764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/ie8google-scholar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5183360365434085764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5183360365434085764'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/ie8google-scholar.html' title='我发现的第一个ie8不兼容网站——Google Scholar……'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-983902171469960690</id><published>2008-03-06T10:56:00.000+08:00</published><updated>2009-05-03T01:54:49.658+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>ie8 beta很不错</title><content type='html'>&lt;p&gt;今天下载了ie8的测试版，实际使用了一下感觉还是不错的。首先是和Live系统的集成更加的紧密了，但是也提供了其他provider支援的可能性。比如翻译功能，比如blog都可以定义为自己喜欢的供应商（不过估计还是需要一定的时间才会有足够多的供应商跟上微软的趋势，嗯）。现在在ie8中开始写blog真是容易多了，不过我还是喜欢打开live writer（都是微软家的宝贝儿……）。&lt;br&gt;另外一个感受是界面响应速度似乎要比ie7快一些，这个比较主观，可能是心理因素。现在的收藏工具栏感觉也还好。&lt;br&gt;在第一次使用的时候出现的向导要比过去强制去微软网站设置人性化多了，也简要的让用户了解了有什么新鲜的玩意儿出现。ie7模拟功能也是很有趣，至少能够糊弄网银，嘿嘿。&lt;br&gt;开发人员视图是个新东西，还没有仔细研究不过我感觉应该是对于整日和页面代码纠缠的人的好消息。可能对于平均水平的用户日常使用意义不大。&lt;br&gt;～～～～～～～～～～～～～～～～～～～～&lt;br&gt;另外现在我正在下载传说中的Photoshop CS4 beta，晚上的时候应该能够完成下载，明天来看本人自己的试用体验吧:)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-983902171469960690?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/983902171469960690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/ie8-beta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/983902171469960690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/983902171469960690'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/ie8-beta.html' title='ie8 beta很不错'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8281199237604830105</id><published>2008-03-02T05:58:00.000+08:00</published><updated>2009-05-03T01:54:49.658+08:00</updated><title type='text'>三天不练，功夫丢一半啊……</title><content type='html'>&lt;p&gt;sketched in Ps, traced &amp;amp; colored in Ai&lt;br&gt;a lot of time ... 1.5 hour(?)&lt;/p&gt; &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="320" alt="piggy-bird" src="http://lh5.google.com/huangyuanjie/R8nRbw2AtmI/AAAAAAAAAKw/nDKpi-lEU1M/piggy-bird%5B12%5D" width="320" border="0"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8281199237604830105?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8281199237604830105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/blog-post_01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8281199237604830105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8281199237604830105'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/03/blog-post_01.html' title='三天不练，功夫丢一半啊……'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-122464926009851576</id><published>2008-02-24T09:23:00.000+08:00</published><updated>2009-05-03T01:54:49.658+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Arial和Verdana一样吗？</title><content type='html'>&lt;p&gt;在Windows系统里面最常见的两种无衬线字体就是Arial和Verdana，这两种字体看起来差不多，其实仔细看细节还是很不一样的，而且连历史渊源都不一样。过去我在某博客上看到过一篇提到这两种字体对比的文章，可惜说的不是很详细，所以最近又认真了一回:)&lt;/p&gt; &lt;p&gt;首先我来分辨一下细节：（使用最常见的e o d T四个字母来总结字体的特征）&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.google.com/huangyuanjie/R8DG_Md-uwI/AAAAAAAAAKQ/bw67ckh0oK4/ArialVerdana4"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" alt="ArialVerdana" src="http://lh4.google.com/huangyuanjie/R8DG_cd-uxI/AAAAAAAAAKY/1-YuOLdkRQY/ArialVerdana_thumb2" width="325" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;e的开口处Verdana和Arial有明显的不同，Arial是平头而Verdana则是斜口  &lt;li&gt;Arial的d内部构成了一个完整的圆，而Verdana甚至和它的前辈Frutiger都不一样有一个直线边。  &lt;li&gt;另外Verdana的x-height也比Helevitica要低。&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;虽然有燕环之差，两个字体却都“系出名门”：Arial是由著名的Monotype公司制作的Windows版Helvetica，而Verdana则是微软对于Frutiger这位20世纪字体大师作品的计算机时代演绎。（尽管窃以为Arial看起来有点不像，而Verdana就……了）&lt;/p&gt; &lt;p&gt;以下是这个几个字体的历史和作者：&lt;/p&gt; &lt;p&gt;Helvetica (1956, Max Miedinger) → Arial (1990, Robin Nicholas and Patricia Saunders)&lt;/p&gt; &lt;p&gt;Frutiger (1973, Adrien Frutiger)→ Verdana (1996, Matthew Carter)&lt;/p&gt; &lt;p&gt;最后补充字体学的一个名词x-height: 简单的说x-height就是小写字体的上沿到基线的高度，x-height越高小写字体和大些字体大小上的分别就越小。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-122464926009851576?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/122464926009851576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/02/arialverdana.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/122464926009851576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/122464926009851576'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/02/arialverdana.html' title='Arial和Verdana一样吗？'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6313067366169304121</id><published>2008-01-20T02:20:00.000+08:00</published><updated>2009-05-03T01:54:49.659+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>opera 9.5 build9745的外观有变化啊</title><content type='html'>&lt;p&gt;tab条现在是比较好的兼容了win系统的默认的tab形式，过去是按钮控件的外观，这算是一个易用性上的进步吧。&lt;/p&gt; &lt;p&gt;这个版本的RSS目录里标示的未读文件数目的更新速度有点慢，需要重启浏览器才会刷新。&lt;/p&gt; &lt;p&gt;应该快要final了吧，感觉现在的bug已经比较少了:)&lt;/p&gt; &lt;p&gt;===============================================&lt;/p&gt; &lt;p&gt;周一就回家啦，嗯，我会怀念大家的~~&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6313067366169304121?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6313067366169304121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/opera-95-build9745.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6313067366169304121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6313067366169304121'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/opera-95-build9745.html' title='opera 9.5 build9745的外观有变化啊'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-693221449391165850</id><published>2008-01-16T05:28:00.000+08:00</published><updated>2009-05-03T01:54:49.659+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>土坯公司真强大</title><content type='html'>&lt;p&gt;这两天借到一个小活，一个二三十秒的flash，于是又把荒废了许多年的flash捡了回来，呵呵。&lt;/p&gt; &lt;p&gt;如今CS3 suite里的flash和以前真是大不一样了，甚至使用的方式上都不一样了。过去flash主要是用来做做小广告什么的（当然现在的flash多数也是广告）可是现在有了action script的支持，已然有了很多怪兽级的应用，各种online application层出不穷。&lt;/p&gt; &lt;p&gt;比起过去来说flash的基本上向着一个纯粹的脚本执行体过度了，本身的画图功能基本上就没有进步-_-b。当然它的画图我觉得都不需要进步了，拿我做的这个小东西来说，基本上形状都是在illustrator里完成的，因为现在土坯的整合很成功，无缝协作指日可待啊。再也不用忍受flash那些奇怪的画图工具了，illustrator至于flash内置画图工具就像豪华的湾流喷气机之于后轮不圆的自行车:D&lt;/p&gt; &lt;p&gt;除了ai和flash，我觉得其他不是土坯亲生的孩子就融合的不是这么好了，比如fireworks，soundbooth（从cooledit演变过来）都在和其他工具的融合上有一些感觉不到位的地方，不过我相信在cs4，cs5里面土坯大家族会更亲密:)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;今天ssm帅哥还问我要源文件给他gf学习来着……上帝保佑她看到我那堆illustrator勾出的图形不要晕过去……&lt;/p&gt; &lt;p&gt;刚出cs(creative suite)的时候我觉得土坯搞什么名堂，想捆绑销售也不用这样；现在我终于明白了土坯的战略，整合，将单个软件的学习成本降低，帮助设计师横向成长，也通过这种一致的用户体验把他们绑定在土坯的钱袋子上。我现在才领会土坯战略的奥义是因为过去我只是浅浅的会用一少部分土坯软件，现在土坯家的东东我都会了个大概……将来有钱了一定多支持土坯，呵呵;)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-693221449391165850?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/693221449391165850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/blog-post_15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/693221449391165850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/693221449391165850'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/blog-post_15.html' title='土坯公司真强大'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8767510304762040382</id><published>2008-01-14T06:43:00.000+08:00</published><updated>2009-05-03T01:54:49.659+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>又被Starforce害了</title><content type='html'>&lt;p&gt;晚上在清理硬盘，打算把一些不用常的东西挪到光盘媒介上，空出我宝贵的硬盘来弄些新鲜东西，可是忽然刻录一半系统失去响应，接着就蓝屏了真是十分的愤愤……&lt;/p&gt; &lt;p&gt;查看系统Log，恰在出错的时间有一个错误，错误由一个名称很奇怪的东西引起，貌似是随机名称，这显然是一个驱动问题（和0x00000077蓝屏错误的硬件访问不能的详细代码刚好匹配），而且一定与防拷贝系统有关——不是防考的问题就是deamon的问题。&lt;/p&gt; &lt;p&gt;于是用autoruns查看系统的驱动，果然找到了这个名称的一个驱动，签名和说明显示这个文件某starforce加密游戏。于是从starforce官网给出的链接下载starforce driver removal tool，卸载游戏移除了驱动。&lt;/p&gt; &lt;p&gt;再次尝试刻，很顺利。这里问候Starforce和它全家，咔咔&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;~"~"~"~"~"~"~"~"~插入花边新闻"~"~"~"~"~"~"~"~"~&lt;/p&gt; &lt;p&gt;今日某同学拎着两台本回来了，花生给出了一句经典生动的形容——左拥右抱，哈哈，太传神了（看到这里的小朋友们一定要注意思无邪，嘿嘿）&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8767510304762040382?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8767510304762040382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/starforce.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8767510304762040382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8767510304762040382'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/starforce.html' title='又被Starforce害了'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-756498831960399882</id><published>2008-01-13T04:22:00.000+08:00</published><updated>2009-05-03T01:54:49.659+08:00</updated><title type='text'>怨念之物——KDE4</title><content type='html'>&lt;p&gt;写下这个标题以后忽然觉得不是很合适，&lt;strong&gt;不仅KDE4是怨念之物，KDE全家都是……&lt;/strong&gt;（啊，这个很暴力的表述方式我是从小妖那里学来的）&lt;/p&gt; &lt;p&gt;如果看过Qt和GTk的文档，或者写过KDE或者Gnome程序的话，估计没有人会觉得Gnome有什么相比KDE可爱的地方，然而Qt不总是像GTk那样白用的，所以Linux厂商自然比较青睐Gnome，尽管它样子丑陋，体系混乱，不思进取。&lt;/p&gt; &lt;p&gt;KDE就像是过去加入了tg的富家子弟，终不像Gnome这个泥腿子一般受人待见，咔咔&lt;/p&gt; &lt;p&gt;今天去看了KDE4的Visual Guide，深受毒害啊，非常的想借此把丑陋的Gnome一脚踢飞（嗯？谁说我看东西只看外表来着？哼哼~）不管如何，KDE发展方向很明确，&lt;strong&gt;易用性研究很上心（再不拿用户当人看的Linux届这是多么难能可贵的啊）&lt;/strong&gt;。虽然多少有些仿照Mac系统的嫌疑，不过我们是唯物论者好东西的就要借鉴吸收啊。&lt;/p&gt; &lt;p&gt;然而我却在社区里听到了一片关于不兼容性，不稳定性的哭喊声……看来受到这个年轻小美女（KDE4于1月11日发布）蛊惑的人真是不少，吓得我也不敢做升级这么危险的动作了……&lt;/p&gt; &lt;p&gt;怨念啊怨念，长久的期盼，就是这个结果么……&lt;/p&gt; &lt;p&gt;Linux老鸟教育我们，对于Linux的问题第一要忍，忍不了了就自己动手……不过我实在没有参加KDE项目这么高深的实力，而且也不喜欢不稳定的系统，so……我只好等了，呜呜:'(&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.google.com/huangyuanjie/R4khdZrXVSI/AAAAAAAAAKA/95W9updUNvs/image%5B8%5D"&gt;&lt;img height="100" alt="image" src="http://lh5.google.com/huangyuanjie/R4kheJrXVTI/AAAAAAAAAKI/HLsFjhOBgbQ/image_thumb%5B6%5D" width="240" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;（上图转自kde.org）&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-756498831960399882?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/756498831960399882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/kde4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/756498831960399882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/756498831960399882'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/kde4.html' title='怨念之物——KDE4'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6554703556773977444</id><published>2008-01-04T14:00:00.000+08:00</published><updated>2009-05-03T01:54:49.659+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Windows Live Writer 2008真的已经很实用了</title><content type='html'>&lt;p&gt;和早年需要自己指定ftp发布照片相比，现在发布格式内容竟然是这样的简单。支持向多数的weblog程序提交照片，比如我用的blogspot和live space都是被支持的^^&lt;/p&gt; &lt;p&gt;以前在日志里面贴个照片多么的艰难啊，现在终于不用登陆网页去贴照片啦，真让人高兴。另外现在对于blog的标签的支持也让这个程序实用性极大的增强了，可以说是目前所有的通用独立blog发布程序里最好的了。&lt;/p&gt; &lt;p&gt;对于我这样的同样的内容两次发布来说，生活真是从此轻松愉快~~&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6554703556773977444?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6554703556773977444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/windows-live-writer-2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6554703556773977444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6554703556773977444'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2008/01/windows-live-writer-2008.html' title='Windows Live Writer 2008真的已经很实用了'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-605068732325569311</id><published>2007-12-30T04:18:00.000+08:00</published><updated>2009-05-03T01:54:49.659+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>关于msn messenger假死的问题</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;msn messenger假死的情况相信很多人都遇到过，就是刚刚装好messenger以后一登录就失去响应，这个郁闷坏了很多人。今天听说了一个终极解决方案——屏蔽crl.microsfot.com这个网站。具体方法是修改windows的host文件。这是一个隐藏文件，位于&lt;br/&gt;c:\WINDOWS\system32\drivers\etc\hosts&lt;br/&gt;如果是xp修改起来难度比较小，如果是vista貌似得先把文件的相应权限抢过来。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;用记事本打开这个host文件，在最后添加这样一行&lt;br/&gt;127.0.0.1  crl.microsfot.com&lt;br/&gt;保存，关闭，上msn，是不是没问题了，呵呵。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;另外据我的经验，校园网内只要开放登录msn基本上都是没有问题的。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;最后说点原理性的东西，不然把这个搞得和个妖术一样:P&lt;br /&gt;&lt;/p&gt;&lt;p&gt; That is Microsoft's certificate authority server (CRL stands for "Certificate Revocation List"), which is used to verify whether the certificate for an application (or website) is legitimate or not. Microsoft applications have certificates associated with them and they can be check for validity at crl.microsoft.com.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;简单说就是微软要验证certificate，半天验证不成功就假死了，用了上述修改就不让验证了。&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-605068732325569311?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/605068732325569311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/msn-messenger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/605068732325569311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/605068732325569311'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/msn-messenger.html' title='关于msn messenger假死的问题'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-5988559562311393426</id><published>2007-12-30T03:18:00.000+08:00</published><updated>2009-05-03T01:54:49.660+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>一些软件更新</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;WW编译版的mplayer，感觉这次他对KK的代码吃得透彻多了，新的配置面板也很实用（不厚道得说如果这个和主程序一样支持i18n就好了……）配置直观，播放流畅，★★★★☆！&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Debian 4.0r2，这个就轮不到我多嘴了，虽然现在ubuntu如日中天，但是其实我多少对于ubuntu的开发不是很放心，还是老家伙稳重。等ftp3的源更新了弄回来装个虚拟机，嗯。★★★★&lt;br /&gt;&lt;/p&gt;&lt;p&gt;emule新的反leecher模块出来了，干掉了迅雷，呃，我不知道该说些什么……我不是故意做leecher的，要是xtreme连的上我才不用破迅雷呢。这个怎么算呢……★★☆？&lt;br /&gt;&lt;/p&gt;&lt;p&gt;EmEditor Professional 7.00.1 RC……好吧，我服了，我们都服了……这团队圣诞也不多歇两天，又出来混淆nightly built与release candidate的界限；最近还带坏了daemon tools，老是有事没事瞎更新版号。"○"（除了打零分我不知道该说啥了）&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-5988559562311393426?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/5988559562311393426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/blog-post_29.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5988559562311393426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/5988559562311393426'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/blog-post_29.html' title='一些软件更新'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-8668834402774778776</id><published>2007-12-29T02:51:00.000+08:00</published><updated>2009-05-03T01:54:49.660+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>发现还是常看校内的，于是</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;于是我在我的两个主浏览器里都把广告干掉了，wahaha&lt;br /&gt;&lt;/p&gt;&lt;p&gt;对于firefox，用的当然是轻松方便的adblock插件，规则如下：&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new;"&gt;http://gg.xiaonei.com/*&lt;/span&gt;&lt;span style="font-family:Courier;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;xiaonei.com#*(id*=banner)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;xiaonei.com#div(class*=announcement)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;xiaonei.com#*(id*=p44)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;这四条把校内的广告干干净净的干掉了，嘿嘿嘿&lt;br /&gt;&lt;/p&gt;&lt;p&gt;至于opera稍微有点技巧（虽然很通俗，很平凡，很多人都知道）就是自定义user css我专门用记事本写了个xiaonei.css放在opera 的profile\styles\user\目录下，内容这样写&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: courier new;"&gt;/* Xiao Nei AD-remove*/&lt;br /&gt;#dashGift, #dashIm, #p44&lt;br /&gt;{ display: none !important }&lt;br /&gt;[id="banner"]&lt;br /&gt;{ display: none !important }&lt;br /&gt;[class="block announcement link"]&lt;br /&gt;{ display: none !important }&lt;/p&gt;&lt;p&gt;然后访问校内，右键选择站点属性，显示选项卡的自定义层叠样式表选择上述的xiaonei.css，重启opera，打开校内……Bingo！广告每咯=)&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-8668834402774778776?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/8668834402774778776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/blog-post_2460.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8668834402774778776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/8668834402774778776'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/blog-post_2460.html' title='发现还是常看校内的，于是'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7685926945621773760</id><published>2007-12-29T00:18:00.000+08:00</published><updated>2009-05-03T01:54:49.660+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>iGoogle的Holiday Village主题真pp</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;感觉iGoogle的品位最近好得多了，不知道是不是请了更强大的设计师（或者是换了恰好符合我口味的设计师，嘿嘿）&lt;br /&gt;&lt;/p&gt;&lt;p&gt;没pp没真相，呵呵，上图一个：&lt;br /&gt;&lt;/p&gt;&lt;p&gt;（以下图片转自google）&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IstqspdHEiI/R3UihZrXVJI/AAAAAAAAAII/FPMLnKjWGhw/s1600-h/header_bg.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_IstqspdHEiI/R3UihZrXVJI/AAAAAAAAAII/FPMLnKjWGhw/s400/header_bg.jpg" alt="" id="BLOGGER_PHOTO_ID_5149059706191828114" border="0" /&gt;&lt;/a&gt;&lt;p&gt;宁静的小村庄，温暖的灯光，纷纷扬扬的雪花，清凉的月光～&lt;br /&gt;&lt;/p&gt;&lt;p&gt;这个图片是个非常有意思的结构，中间的小村庄是永远居中的，两遍的树林是可以tile的，也就是说这景致横向多长看起来都是很连贯的，相当的不错。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;（用firefox找出网页中图果然比较方便，用opera就差得多了，sigh，期待fx3中）&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7685926945621773760?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7685926945621773760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/igoogleholiday-villagepp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7685926945621773760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7685926945621773760'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/igoogleholiday-villagepp.html' title='iGoogle的Holiday Village主题真pp'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IstqspdHEiI/R3UihZrXVJI/AAAAAAAAAII/FPMLnKjWGhw/s72-c/header_bg.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-2400042422857381554</id><published>2007-12-23T05:05:00.000+08:00</published><updated>2009-05-03T01:54:49.660+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>OniBlade English Translation Pack v0.2</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Finally it's done. The translation work really exhausted me… &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Download: http://www.isload.com.cn/store/5xz0q8gzxim8p&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Put the pack in the folder that holds oniblade.exe, run and play.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Notice: This is only an unofficial translation pack, with countless errors =( &lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you do love the game, I strongly advise you to wait for the official English release.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-2400042422857381554?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/2400042422857381554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/oniblade-english-translation-pack-v02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2400042422857381554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/2400042422857381554'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/oniblade-english-translation-pack-v02.html' title='OniBlade English Translation Pack v0.2'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-6859456468462325687</id><published>2007-12-22T05:10:00.000+08:00</published><updated>2009-05-03T01:54:49.660+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>我把 OniBlade英文化了^^</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;OniBlade是一款新出的ARPG游戏，目前只有俄文版的。今天发现这个游戏的资源格式非常的开放，直白的文本文件，于是在google和babylon的帮助下把这个游戏英文化了=)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;目前还有很多翻译的不是很到位的地方，用google语言工具翻译得到的英文的语法问题不少，我还没时间一一核准，不过大意是没有问题了。目前游戏整个主程序已经"英文化完成"，&lt;br /&gt;&lt;/p&gt;&lt;p&gt;程序主界面完成，技能树已经基本核实，怪物图鉴的文字量比较大，还在纠正语法用词中……游戏文字部分英文化指日可待ヘ(^_^ヘ)(ノ^_^)ノ&lt;br /&gt;&lt;/p&gt;&lt;p&gt;要不是快考试了，一定今晚就搞出个汉化版来，sigh……&lt;br /&gt;&lt;/p&gt;&lt;p&gt;过场动画的语音没法子了，听不懂俄文是一点办法都没有滴:'(&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-6859456468462325687?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/6859456468462325687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/oniblade.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6859456468462325687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/6859456468462325687'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/oniblade.html' title='我把 OniBlade英文化了^^'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-1148864798681736952</id><published>2007-12-20T11:33:00.000+08:00</published><updated>2009-05-03T01:54:49.660+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Launchy 2.0 横空出世</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Launchy是一个通过快捷键启动的用来开启程序的小软件（开源，免费的哦^^）。当你装了大量的程序的时候，每次在开始菜单中找到某个程序都是一件需要多次鼠标点击才能完成的事情吧，这样是不是很烦人？有了Lauchy就没有了这个麻烦^^，通过你指定的快捷键启动Launchy窗口（比如我设置成Win+Space）然后输入程序名字中的关键字（比如我要启动Firefox就可以输入fire或者fox或者fx）回车就可以启动所要的程序啦。如果你键盘用的比较流畅的话，这个过程的速度可是远比用鼠标点击快的，试试就知道啦。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;经过长久的等待以后终于我们在2007年的圣诞前收到了这份礼物——Launchy 2.0 。经过早上的试用目前发现的特点：&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1 能够设置为始终居中了&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2 预览皮肤很好，可惜皮肤比较少，不过开发皮肤的难度并不大，原有的皮肤如果喜欢只要&lt;br /&gt;&lt;/p&gt;&lt;p&gt;写个css就可以变成launchy 2的皮肤了，&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3 能够整体半透明了，有些人可能觉得这样很好看吧&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4 weby貌似是重写了，在launchy中启动搜索比以前设置起来更灵活方便了。可以自定义搜索引擎，搜索字符串。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;看不到的包括新的皮肤引擎和功能扩展插件接口，由于使用了Qt4重写了整个外壳，感觉还是很不错的，Qt程序给我的印象一贯是不错的（作为欧洲的产品Qt果然有不同的品位，嘿嘿）。&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-1148864798681736952?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/1148864798681736952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/launchy-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1148864798681736952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/1148864798681736952'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/launchy-20.html' title='Launchy 2.0 横空出世'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523230460872601144.post-7773600934675910629</id><published>2007-12-20T00:35:00.000+08:00</published><updated>2009-05-03T01:54:49.661+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>修改Firefox缓存的位置</title><content type='html'>&lt;span xmlns=''&gt;&lt;p style='margin-left: 21pt'&gt;为啥要修改呢？这个理由太多了，比如说你想把造成碎片的该死东西都放到C盘以外的地方就是一个不错的理由。&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 21pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;打开Firefox浏览器，在地址栏输入  &lt;strong&gt;about:config&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;查找  &lt;strong&gt;browser.cache.disk.parent_directory&lt;/strong&gt;，如果没有找到  browser.cache.disk.parent_directory ，则通过右键新建这个"&lt;strong&gt;字符串&lt;/strong&gt;"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;修改到你需要存放的位置，例如X:\mozilla&lt;br /&gt;&lt;/li&gt;&lt;li&gt;重启 Firefox 程序&lt;br /&gt;&lt;/li&gt;&lt;li&gt;最后验证一下是不是生效了&lt;br/&gt;在地址栏输入  &lt;strong&gt;about:cache&lt;/strong&gt; ，可以发现Cache位置已经成功修改&lt;br/&gt;     Cache Directory:    X:\mozilla\Cache&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523230460872601144-7773600934675910629?l=yuanjie-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuanjie-huang.blogspot.com/feeds/7773600934675910629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7773600934675910629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523230460872601144/posts/default/7773600934675910629'/><link rel='alternate' type='text/html' href='http://yuanjie-huang.blogspot.com/2007/12/firefox.html' title='修改Firefox缓存的位置'/><author><name>Yuanjie</name><uri>http://www.blogger.com/profile/01219802908509243136</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_IstqspdHEiI/SGvaBw4HJ0I/AAAAAAAAAMM/ZGZTJvnPsPY/S220/Me~-painter-1.01p.gif'/></author><thr:total>0</thr:total></entry></feed>
