<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.fclose.com/~d/styles/itemcontent.css"?><rss version="2.0"><channel><title>Fclose.com Posts</title><link>http://fclose.com/b/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.fclose.com/fclosefeed" /><description>Fclose.com posts on Linux, Virtualization, Cloud Computing, Web and Programming</description><language>en</language><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.fclose.com/fclosefeed" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="fclosefeed" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><meta xmlns="http://pipes.yahoo.com" name="pipes" content="noprocess" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">fclosefeed</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.fclose.com/fclosefeed" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.fclose.com%2Ffclosefeed" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item><title>Installing WhatsApp on iPod Touch</title><link>http://fclose.com/b/software/3073/installing-whatsapp-on-ipod-touch/</link><category>Mobile</category><category>black berry</category><category>configuration utility</category><category>editor</category><category>ipa</category><category>iPhone</category><pubDate>Wed, 16 May 2012 10:16:00 PDT</pubDate><description>&lt;p&gt;&lt;a href="http://fclose.com/b/software/3073/installing-whatsapp-on-ipod-touch/ipod-whatsapp/" rel="attachment wp-att-3080"&gt;&lt;img class="size-full wp-image-3080 alignright" title="ipod-whatsapp" src="http://fclose.com/b/software/files/2012/05/ipod-whatsapp.png" alt="ipod-whatsapp" width="320" height="480" /&gt;&lt;/a&gt;WhatsApp is a great messenger for various platforms, such as iPhone, Android, Black Berry. However, it does not support iPod touch. Since, iPod touch and iPhone share the very similar iOS, there is tricks to install and use WhatsApp on iPod touch. I ever installed WhatsApp on iPod touch 3 (actually version 2) with plist editor and iPhone Configuration utility and enjoy it a lot.&lt;/p&gt;
&lt;p&gt;This is the information of my iPod touch and WhatsApp I used:&lt;/p&gt;
&lt;p&gt;iOS 4.2.1 + WhatsApp 2.6.7&lt;/p&gt;
&lt;p&gt;A brief list of the steps are as follows (please also refer to the tutorials) :&lt;/p&gt;
&lt;p&gt;0. JailBreak (seems no need to jailbreak it for newer iPod touch, please also refer to the tutorials)&lt;/p&gt;
&lt;p&gt;1. Buy Whatsapp from App Store on your laptop&lt;/p&gt;
&lt;p&gt;2. Find whatsapp.ipa&lt;/p&gt;
&lt;p&gt;Open it with WinRAR&lt;/p&gt;
&lt;p&gt;Use plist editor for windows to edit the plist file&lt;/p&gt;
&lt;p&gt;Delete &lt;strong&gt;telephone &lt;/strong&gt;and&lt;strong&gt; true&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Update the file in whatsapp.ipa.&lt;/p&gt;
&lt;p&gt;3. Install whatsapp.ipa using iPhone Configuration utility.&lt;/p&gt;
&lt;p&gt;4. In cydia, install whatspad&lt;/p&gt;
&lt;p&gt;5. Open Whatsapp&lt;/p&gt;
&lt;p&gt;Verify phone number and then enjoy it.&lt;/p&gt;
&lt;p&gt;For later version, that&amp;#8217;s much easier, I find two some good tutorials on the Web and do not bother writing the details:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/ipod-touch-whatsapp/" rel="nofollow"&gt;Tutorial 1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/ipod-touch-whatsapp2/" rel="nofollow"&gt;Tutorial 2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C0HS2BiRNWYDlmttBiGJpxysKm0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C0HS2BiRNWYDlmttBiGJpxysKm0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C0HS2BiRNWYDlmttBiGJpxysKm0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C0HS2BiRNWYDlmttBiGJpxysKm0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/SU9_20DQE00" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/SU9_20DQE00" height="1" width="1"/&gt;</description></item><item><title>Floating Point in Bash Shell</title><link>http://fclose.com/b/programming/3068/floating-point-in-bash-shell/</link><category>Linux</category><category>arbitrary precision calculator</category><category>Auto</category><category>Bash</category><category>Draft</category><category>result</category><category>scale</category><category>semi colons</category><category>shell</category><pubDate>Mon, 14 May 2012 22:11:00 PDT</pubDate><description>&lt;p&gt;Integers are natively supported in Bash shell. However, what if we use floating point in Bash shell?&lt;/p&gt;
&lt;p&gt;The short and direct answer is using &lt;a href="http://fclose.com/t/go/man-bc/"&gt;&amp;#8216;&lt;em&gt;bc&lt;/em&gt;&amp;#8216; command&lt;/a&gt; &amp;#8211; &amp;#8220;An arbitrary precision calculator language.&amp;#8221;&lt;/p&gt;
&lt;p&gt;Just run &lt;em&gt;bc&lt;/em&gt;  and enter some floating point calculation expression, such as &amp;#8220;1.2+8.2&amp;#8243;, bc will give the result.&lt;/p&gt;
&lt;p&gt;In a script, we certainly need a more automatic way. This is a piece of simple script:&lt;/p&gt;
&lt;pre&gt;$ echo "scale=4; $*" | bc -q&lt;/pre&gt;
&lt;p&gt;For example, to calculate &amp;#8220;1.2+8.2&amp;#8243;&lt;/p&gt;
&lt;pre&gt;$ echo "scale=4; 1.2+8.2" | bc -q&lt;/pre&gt;
&lt;p&gt;and you will get 9.4 .&lt;/p&gt;
&lt;p&gt;&amp;#8220;By default &lt;tt&gt;bc&lt;/tt&gt; outputs its result with no digits to the right of the decimal point and without a decimal point. To change this you have to change one of &lt;tt&gt;bc&lt;/tt&gt;&amp;#8216;s builtin variables: &lt;tt&gt;scale&lt;/tt&gt;. This is where the &amp;#8220;language&amp;#8221; features of &lt;tt&gt;bc&lt;/tt&gt; are relevant, in &lt;tt&gt;bc&lt;/tt&gt; as in C statements are separated by semi-colons.&amp;#8221;&lt;/p&gt;
&lt;p&gt;For more detailed tutorial on bc, I suggest: &lt;a href="http://fclose.com/t/go/floating-point-math-bash/" rel="nofollow"&gt;Floating Point Math in Bash&lt;/a&gt; by Mitch Frazier.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/ZmtTHMn_AEM" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/ZmtTHMn_AEM" height="1" width="1"/&gt;</description></item><item><title>GNU C Reference Manual</title><link>http://fclose.com/b/programming/3058/gnu-c-reference-manual/</link><category>Language</category><category>Linux</category><category>Programming</category><category>C</category><category>c reference manual</category><category>GNU</category><category>gnu c compiler</category><category>hand</category><pubDate>Tue, 08 May 2012 10:28:00 PDT</pubDate><description>&lt;p&gt;When we program in C, a C reference by hand is usually useful. The GNU C Reference Manual provides us a good reference for the C programming language implemented by the GNU C Compiler.&lt;/p&gt;
&lt;p&gt;&amp;#8220;This manual is strictly a reference, not a tutorial. Its aim is to cover every linguistic construct in GNU C.&amp;#8221;&lt;/p&gt;
&lt;p&gt;GNU also provides a&lt;a href="http://fclose.com/b/programming/3006/gnu-glibc-manual/"&gt; reference manual for C library&lt;/a&gt; in separated documents.&lt;/p&gt;
&lt;h3&gt;The GNU C Reference Manual&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/gnu-c-refer-html/" rel="nofollow"&gt;HTML version&lt;/a&gt; or a &lt;a href="http://fclose.com/t/go/gnu-c-refer-pdf/" rel="nofollow"&gt;PDF version&lt;/a&gt; of the manual.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/3006/gnu-glibc-manual/" rel="bookmark" title="GNU glibc Manual"&gt;GNU glibc Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/1419/vim-formatting-cc-code/" rel="bookmark" title="Vim Formatting C/C++ Code"&gt;Vim Formatting C/C++ Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/CjyzHdk9XdY" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/CjyzHdk9XdY" height="1" width="1"/&gt;</description></item><item><title>MPlayer Playing DVD Directories / ISO Files / Disks</title><link>http://fclose.com/b/linux/3588/mplayer-playing-dvd-directories-iso-files-disks/</link><category>Linux</category><category>Software</category><category>button right</category><category>iso files</category><category>keyboard shortcuts</category><category>mouse movements</category><category>mplayer</category><category>time cycle</category><pubDate>Tue, 24 Apr 2012 11:16:00 PDT</pubDate><description>&lt;p&gt;MPlayer is a universal (nearly) movie/music player on Linux and many more systems. It&amp;#8217;s also &lt;a href="http://fclose.com/b/linux/1493/mplayer-on-fedora/"&gt;my favourite player&lt;/a&gt; and MPlayer plays movie or music files in any format that I drop to it. Now, let&amp;#8217;s take a look at how to use MPlayer play DVD. MPlayer plays &amp;#8220;DVD&amp;#8221; in many formats: DVD disks, ISO files, or DVD directory (the files we directly copied from a DVD disk).&lt;/p&gt;
&lt;h3&gt;The MPlayer command to play DVD&lt;/h3&gt;
&lt;p&gt;The MPlayer command to play a DVD device (directores, iso files, or disks):&lt;/p&gt;
&lt;pre&gt;$ mplayer dvdnav:// -mouse-movements -dvd-device /path/to/dvd/directory-or-iso-or-disk&lt;/pre&gt;
&lt;h3&gt;The MPLayer options for playing DVD&lt;/h3&gt;
&lt;pre&gt;&lt;strong&gt;-dvd-device &amp;lt;path to device&amp;gt;&lt;/strong&gt;&lt;/pre&gt;
&lt;p&gt;Specify the DVD device or .iso filename (default: /dev/dvd).  You can also  specify  a  directory  that contains files previously copied directly from a DVD (with e.g. vobcopy).&lt;/p&gt;
&lt;pre&gt;&lt;strong&gt;-mouse-movements&lt;/strong&gt;&lt;/pre&gt;
&lt;p&gt;Permit MPlayer to receive pointer events reported by the video output driver.  Necessary to select  the buttons  in  DVD menus.  Supported for X11-based VOs (x11, xv, xvmc, etc) and the gl, gl2, direct3d and corevideo VOs.&lt;/p&gt;
&lt;h3&gt;Keyboard shortcuts that can be used when playing DVD in MPlayer&lt;/h3&gt;
&lt;p&gt;One beautiful feature of MPlayer is the various shortcuts that can be used. Here is a list of shortcuts for playing DVD.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;v&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Toggle subtitle visibility.&lt;br /&gt;
&lt;strong&gt;&lt;em&gt;j&lt;/em&gt;&lt;/strong&gt; &amp;#8212; Cycle through the available subtitles.&lt;br /&gt;
&lt;em&gt;&lt;strong&gt;o&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Toggle OSD states: none / seek / seek + timer / seek + timer + total time.&lt;br /&gt;
&lt;strong&gt;&lt;em&gt;#&lt;/em&gt;&lt;/strong&gt; &amp;#8212; Cycle through the available audio tracks.&lt;br /&gt;
&lt;em&gt;&lt;strong&gt;f&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Toggle fullscreen&lt;br /&gt;
&lt;strong&gt;&lt;em&gt;A&lt;/em&gt;&lt;/strong&gt; &amp;#8212; Cycle through the available DVD angles.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;keypad 8&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Select button up.&lt;br /&gt;
&lt;em&gt;&lt;strong&gt;keypad 2&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Select button down.&lt;br /&gt;
&lt;em&gt;&lt;strong&gt; keypad 4&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Select button left.&lt;br /&gt;
&lt;em&gt;&lt;strong&gt; keypad 6&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Select button right.&lt;br /&gt;
&lt;em&gt;&lt;strong&gt; keypad 5&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Return to main menu.&lt;br /&gt;
&lt;em&gt;&lt;strong&gt; keypad 7&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Return to nearest menu (the order of preference is: chapter-&amp;gt;title-&amp;gt;root).&lt;br /&gt;
&lt;em&gt;&lt;strong&gt; keypad ENTER&lt;/strong&gt;&lt;/em&gt; &amp;#8212; Confirm choice.&lt;/p&gt;
&lt;p&gt;Of course, you can use the common &lt;a href="http://fclose.com/b/linux/663/mostly-used-mplayer-keyboard-control/"&gt;MPlayer keyborad shutcuts&lt;/a&gt; in addition to the DVD-related ones.&lt;/p&gt;
&lt;p&gt;Now, find out your favourite DVDs and enjoy them with MPlayer ;)&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/260/create-iso-image-on-linux/" rel="bookmark" title="Create ISO Image on Linux"&gt;Create ISO Image on Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/1493/mplayer-on-fedora/" rel="bookmark" title="MPlayer on Fedora"&gt;MPlayer on Fedora&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/663/mostly-used-mplayer-keyboard-control/" rel="bookmark" title="Mostly Used MPlayer Keyboard Control"&gt;Mostly Used MPlayer Keyboard Control&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Nau8WLuIF_yUaiNsFHro0fRoT7g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Nau8WLuIF_yUaiNsFHro0fRoT7g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Nau8WLuIF_yUaiNsFHro0fRoT7g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Nau8WLuIF_yUaiNsFHro0fRoT7g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/KeRsvnIMlxI" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/KeRsvnIMlxI" height="1" width="1"/&gt;</description></item><item><title>Tutorials for Linux Beginners</title><link>http://fclose.com/b/linux/3423/tutorials-for-linux-beginners/</link><category>Linux</category><category>apparent complexity</category><category>Bash</category><category>bash shell scripting</category><category>Beginner</category><category>Beginners</category><category>Command line</category><category>Course</category><category>guide</category><category>linux beginners</category><category>linux operation system</category><category>post</category><category>shell</category><category>Tutorial</category><category>unix tutorial</category><pubDate>Mon, 26 Mar 2012 19:32:00 PDT</pubDate><description>&lt;p&gt;This post compiles a list of tutorials on the Internet for Linux beginners. Linux beginners usually get headache from the &amp;#8220;seemed&amp;#8221; complexity of the Linux operation system. But once they get into the gate and get familiar with Linux, they will love it.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.ee.surrey.ac.uk/Teaching/Unix/" rel="nofollow"&gt;UNIX Tutorial for Beginners&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&amp;#8220;A beginners guide to the &lt;strong&gt;Unix&lt;/strong&gt; and &lt;strong&gt;Linux&lt;/strong&gt; operating system. Eight simple tutorials which cover the basics of UNIX / Linux commands.&amp;#8221;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://tldp.org/LDP/gs/node5.html" rel="nofollow"&gt;Linux Tutorial section of &amp;#8220;Linux Installation and Getting Started&amp;#8221;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&amp;#8220;If you&amp;#8217;re new to UNIX and Linux, you may be a bit intimidated by the size and apparent complexity of the system before you. This chapter does not go into great detail or cover advanced topics. Instead, we want you to hit the ground running.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&amp;#8220;And, before we begin: &lt;em&gt;Don&amp;#8217;t be afraid to experiment.&lt;/em&gt; The system won&amp;#8217;t bite you. You can&amp;#8217;t destroy anything by working on the system. Linux has built-in security features to prevent &amp;#8220;normal&amp;#8221; users from damaging files that are essential to the system. Even so, the worst thing that can happen is that you may delete some or all of your files and you&amp;#8217;ll have to re-install the system. So, at this point, you have nothing to lose.&amp;#8221;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html" rel="nofollow"&gt;Bash Shell Scripting &amp;#8211; 10 Seconds Guide&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&amp;#8220;This Bash shell scripting guide is not a detailed study but a quick reference to the BASH syntax.&amp;#8221;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.linux-tutorial.info/modules.php?name=MContent&amp;amp;pageid=224" rel="nofollow"&gt;Linux Tutorial&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A tutorial introduces concepts about operation systems and aspects of Linux.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3557/howto-ssh-to-linux-hosts-for-beginners/" rel="bookmark" title="How to SSH to Linux Hosts for Beginners"&gt;How to SSH to Linux Hosts for Beginners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3376/install-ns-2-and-ns-3-on-fedora-linux/" rel="bookmark" title="Installing ns-2 and ns-3 on Fedora Linux"&gt;Installing ns-2 and ns-3 on Fedora Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3583/changing-hostname-of-fedora-linux/" rel="bookmark" title="Changing Hostname of Fedora Linux"&gt;Changing Hostname of Fedora Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Nx01p3u_r1ZB5DN1VjvlmKR1UQc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Nx01p3u_r1ZB5DN1VjvlmKR1UQc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Nx01p3u_r1ZB5DN1VjvlmKR1UQc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Nx01p3u_r1ZB5DN1VjvlmKR1UQc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/Hs8TJfMxxYE" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/Hs8TJfMxxYE" height="1" width="1"/&gt;</description></item><item><title>Vim as KMail’s External Editor</title><link>http://fclose.com/b/linux/3533/vim-as-kmails-external-editor/</link><category>Linux</category><category>Software</category><category>Client config</category><category>Command line</category><category>KMail</category><category>shell</category><category>Tip</category><category>vim</category><pubDate>Thu, 08 Mar 2012 06:47:00 PST</pubDate><description>&lt;p&gt;&lt;a href="http://fclose.com/b/linux/files/2012/03/kmail-external-editor-vim-konsole.png"&gt;&lt;img class="alignright" title="kmail-external-editor-vim-konsole" src="http://fclose.com/b/linux/files/2012/03/kmail-external-editor-vim-konsole-300x266.png" alt="kmail-external-editor-vim-konsole" width="300" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vim is my favourite text editor and I also prefer to use Vim to compose Email. I ever used &lt;a href="http://fclose.com/b/linux/3301/vim-as-thunderbirds-external-editor-in-linux/"&gt;Vim as Thunderbird&amp;#8217;s External editor&lt;/a&gt; with the help of plugin. I started to use KMail as my email client on KDE and I find it is not hard to configure KMail to use Vim as email editor with a little help from Konsole and shell.&lt;/p&gt;
&lt;p&gt;KMail has a nice feature that can use external editor to compose email. In &amp;#8220;Settings-&amp;gt;Configure Kmail-&amp;gt;Composor-&amp;gt;General&amp;#8221;, there is a option to &amp;#8220;Use external editor instead of composer&amp;#8221;, and we can specify the editor we like to use. The %f will be replaced with the file name of the email to edit which is copied to a temporary location.&lt;/p&gt;
&lt;p&gt;It is possible to use KWrite as the editor and configure KWrite to use &amp;#8220;Vi input mode&amp;#8221;, but that is not convenient enough for geeks like me&amp;#8212;I prefer the Vim in a shell/terminal!&lt;/p&gt;
&lt;p&gt;Now, let&amp;#8217;s see how I use Vim in the shell as KMail&amp;#8217;s external editor.&lt;/p&gt;
&lt;h3&gt;A small script as the wrapper to call Vim&lt;/h3&gt;
&lt;p&gt;Vim is a command line tool and we can not directly run it. Instead, we should run Vim in a shell. In KDE, let&amp;#8217;s just use Konsole. The external editor is actually a instance of Konsole with Vim as its command. Below is the script I wrote to invoke Konsole and Vim. Let&amp;#8217;s call it &lt;em&gt;kcallvim&lt;/em&gt;:&lt;/p&gt;
&lt;pre&gt;#!/bin/bash

email=$1.eml
cp $1 $email

# --nofork is needed, otherwise the content is not updated
# no other konsole instance running
konsole --nofork --geometry 1000x600 -e vim $email

cp $email $1 &amp;amp;&amp;amp; rm -f $email&lt;/pre&gt;
&lt;p&gt;One tricky thing here is the &amp;#8220;&amp;#8211;nofork&amp;#8221; option when invoking konsole. This option make the konsole command not return until Vim exits.&lt;/p&gt;
&lt;p&gt;Put this script to a directory in the $PATH, or use the full path when invoking this script in Kmail.&lt;/p&gt;
&lt;h3&gt;Configure KMail to use &lt;em&gt;kcallvim&lt;/em&gt; as the external editor&lt;/h3&gt;
&lt;p&gt;In KMail&amp;#8217;s configuration tool, select the option of &amp;#8220;Use external editor instead of composer&amp;#8221;, and, in the &amp;#8220;external editor&amp;#8221; field, fill&lt;/p&gt;
&lt;pre&gt;kcallvim %f&lt;/pre&gt;
&lt;p&gt;as shown in the figure.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/b/linux/files/2012/03/kmail-external-editor-vim.png"&gt;&lt;img title="kmail-external-editor-vim" src="http://fclose.com/b/linux/files/2012/03/kmail-external-editor-vim-300x226.png" alt="kmail-external-editor-vim" width="300" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s it. When composing or editing email, hit Enter or any key, the Vim will start in a Konsole. Then you can edit the email in Vim as editing any other text files. After you save the email and exit Vim, the Konsole will close automatically and the email will appear in KMail.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3301/vim-as-thunderbirds-external-editor-in-linux/" rel="bookmark" title="Vim as Thunderbird’s External Editor in Linux"&gt;Vim as Thunderbird&amp;#8217;s External Editor in Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/398/my-vim-emacs-configuration-files/" rel="bookmark" title="My Vim Emacs Configuration Files"&gt;My Vim Emacs Configuration Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/99/vim-tips/" rel="bookmark" title="Vim Tips"&gt;Vim Tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hPZH2nDtrWqikT5rhp-4JApuTIg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hPZH2nDtrWqikT5rhp-4JApuTIg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hPZH2nDtrWqikT5rhp-4JApuTIg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hPZH2nDtrWqikT5rhp-4JApuTIg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/rMfAhw5UOQM" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/rMfAhw5UOQM" height="1" width="1"/&gt;</description></item><item><title>Changing Hostname of Fedora Linux</title><link>http://fclose.com/b/linux/3583/changing-hostname-of-fedora-linux/</link><category>Linux</category><category>Network</category><category>Bash</category><category>Client config</category><category>Command line</category><category>Fedora</category><category>Server config</category><category>shell</category><category>Tutorial</category><pubDate>Tue, 28 Feb 2012 05:58:00 PST</pubDate><description>&lt;p&gt;Different Linux distros have different method to set the hostname. On Fedora Linux, it is quite simple.&lt;/p&gt;
&lt;p&gt;Open the &lt;em&gt;/etc/sysconfig/network&lt;/em&gt; file&lt;/p&gt;
&lt;p&gt;# vim /etc/sysconfig/network&lt;/p&gt;
&lt;p&gt;Find the line starting with&lt;/p&gt;
&lt;pre&gt;HOSTNAME=&lt;/pre&gt;
&lt;p&gt;Assign the hostname for this computer to this variable. For example, to set the hostname to ericpc.fclose.com, just set&lt;/p&gt;
&lt;pre&gt;HOSTNAME=ericpc.fclose.com&lt;/pre&gt;
&lt;p&gt;Save the file and it should take effect. If the machine uses the &lt;em&gt;network&lt;/em&gt; service, restarting the network may be needed:&lt;/p&gt;
&lt;pre&gt;# service network restart&lt;/pre&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/1764/changing-mac-address-in-linux-aka-mac-spoofing/" rel="bookmark" title="Changing MAC Address in Linux aka. MAC Spoofing"&gt;Changing MAC Address in Linux aka. MAC Spoofing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3198/changing-linux-users-password-in-one-command-line/" rel="bookmark" title="Changing Linux User’s Password in One Command Line"&gt;Changing Linux User&amp;#8217;s Password in One Command Line&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3376/install-ns-2-and-ns-3-on-fedora-linux/" rel="bookmark" title="Installing ns-2 and ns-3 on Fedora Linux"&gt;Installing ns-2 and ns-3 on Fedora Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kmX2uYM4WE8wPexrHU67ZLqX0Dk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kmX2uYM4WE8wPexrHU67ZLqX0Dk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kmX2uYM4WE8wPexrHU67ZLqX0Dk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kmX2uYM4WE8wPexrHU67ZLqX0Dk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/kXzZ244LkEk" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/kXzZ244LkEk" height="1" width="1"/&gt;</description></item><item><title>Extending a LVM Volume Group</title><link>http://fclose.com/b/linux/3569/extending-a-lvm-volume-group/</link><category>Linux</category><category>Software</category><category>Client config</category><category>Command line</category><category>LVM</category><category>Server config</category><category>shell</category><category>Tutorial</category><category>xen</category><pubDate>Thu, 23 Feb 2012 00:09:00 PST</pubDate><description>&lt;p&gt;We introduced &lt;a href="http://fclose.com/b/linux/2640/creating-lvm-volume-group/"&gt;how to create a LVM group with two hard disk partitions&lt;/a&gt;, which the LVM group can be used for &lt;a href="http://fclose.com/2544/setting-up-lvm-backed-xen-domu/"&gt;installing LVM backed Xen DomUs&lt;/a&gt;. The LVM volume can have large capacity from several hard disks. However, we may use all the disk space after some time and we may need to extend the capacity. In this post, we introduce how to extend a LVM group with a new hard disk.&lt;/p&gt;
&lt;p&gt;Assume we have created one LVM volume group vg_xen and we have plugged a new disk &lt;em&gt;sdd&lt;/em&gt; to the server. Now we will extend the volume group with the new hard disk &lt;em&gt;sdd&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;Create a partition on the new hard disk&lt;/h3&gt;
&lt;p&gt;We can use &lt;em&gt;fdisk&lt;/em&gt; to create a new partition:&lt;/p&gt;
&lt;pre&gt;# fdisk /dev/sdd&lt;/pre&gt;
&lt;p&gt;Add a new partition by command: n&lt;/p&gt;
&lt;p&gt;Select primary partition by: p&lt;/p&gt;
&lt;p&gt;Select partition number 1: 1&lt;/p&gt;
&lt;p&gt;Then select from the first section to the last one.&lt;/p&gt;
&lt;p&gt;Write table to disk and exit by command: w&lt;/p&gt;
&lt;p&gt;We can find out the new partition in /dev/ directory:&lt;/p&gt;
&lt;pre&gt;$ ls /dev/sd*&lt;/pre&gt;
&lt;p&gt;We can find:&lt;/p&gt;
&lt;pre&gt;/dev/sdd1&lt;/pre&gt;
&lt;h3&gt;Initialize the disk partition&lt;/h3&gt;
&lt;p&gt;Create a volume group descriptor at the starts of the partition and create a new physical volume:&lt;/p&gt;
&lt;pre&gt;# pvcreate /dev/sdd1&lt;/pre&gt;
&lt;h3&gt;Add the new physical volume to the volume group&lt;/h3&gt;
&lt;p&gt;Now we can add the new physical volume to the volume group:&lt;/p&gt;
&lt;pre&gt;# vgextend vg_xen /dev/sdd1&lt;/pre&gt;
&lt;p&gt;The vg_xen LVM group&amp;#8217;s capacity is extended. We can display the information of the volume group by&lt;/p&gt;
&lt;pre&gt;# vgdisplay&lt;/pre&gt;
&lt;p&gt;and the information of the logical volumes by&lt;/p&gt;
&lt;pre&gt;# lvdisplay&lt;/pre&gt;
&lt;p&gt;and the information of the physical volumes by&lt;/p&gt;
&lt;pre&gt;# pvdisplay&lt;/pre&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/2640/creating-lvm-volume-group/" rel="bookmark" title="Creating LVM Volume Group"&gt;Creating LVM Volume Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/2613/xen-with-lvm/" rel="bookmark" title="Xen with LVM"&gt;Xen with LVM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/2546/duplicating-lvm-backed-xen-domu/" rel="bookmark" title="Duplicating LVM Backed Xen DomU"&gt;Duplicating LVM Backed Xen DomU&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oGrZ4ZSNsX0Ckrz_yST_wcz8WH8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oGrZ4ZSNsX0Ckrz_yST_wcz8WH8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oGrZ4ZSNsX0Ckrz_yST_wcz8WH8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oGrZ4ZSNsX0Ckrz_yST_wcz8WH8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/wxxF-yKyqhQ" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/wxxF-yKyqhQ" height="1" width="1"/&gt;</description></item><item><title>An Online JPG to EPS Converter</title><link>http://fclose.com/b/web/3112/an-online-jpg-to-eps-converter/</link><category>Programming</category><category>Web</category><category>EPS</category><category>JPG</category><category>Tool</category><pubDate>Mon, 20 Feb 2012 11:29:00 PST</pubDate><description>&lt;p&gt;Converting the JPG images to EPS is frequently need especially when write documents in LaTeX. I introduced how to &lt;a href="http://fclose.com/b/linux/3549/converting-jpg-images-to-eps/" rel="bookmark"&gt;Convert JPG Images to EPS&lt;/a&gt; on Linux. However, not everyone have a Linux box available at any time. I write this &lt;a href="http://fclose.com/t/jpg2eps/"&gt;Online JPG to EPS Converter&lt;/a&gt; to help people convert JPG to EPS.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://fclose.com/t/jpg2eps/"&gt;JPG to EPS Converter&lt;/a&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;This tool converts JPG images to EPS images. Upload your JPG image then you can download the converted image in EPS format.&lt;/p&gt;
&lt;p&gt;Although named &amp;#8220;JPG to EPS Converter&amp;#8221;, this tool can also convert: PNG to EPS, GIF to EPS, BMP to EPS, etc.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MVYU67D2EjRNaZRPxGaMpAA4k6w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MVYU67D2EjRNaZRPxGaMpAA4k6w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MVYU67D2EjRNaZRPxGaMpAA4k6w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MVYU67D2EjRNaZRPxGaMpAA4k6w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/1hJgwlA5CDI" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/1hJgwlA5CDI" height="1" width="1"/&gt;</description></item><item><title>How to SSH to Linux Hosts for Beginners</title><link>http://fclose.com/b/linux/3557/howto-ssh-to-linux-hosts-for-beginners/</link><category>Linux</category><category>Software</category><category>PuTTY</category><category>SSH</category><category>Tutorial</category><pubDate>Sat, 18 Feb 2012 11:08:00 PST</pubDate><description>&lt;p&gt;This is a simple tutorial for beginners to SSH to a Linux host. This is quite easy with the easy-to-use software freely available but the beginners need a tutorials to start with. Hence, I write this tutorial about how to ssh to a Linux host. This tutorial is for users on Windows.&lt;/p&gt;
&lt;h3&gt;1. Download a SSH client&lt;/h3&gt;
&lt;p&gt;I suggest PuTTY. The download link can be found in &lt;a href="http://fclose.com/b/linux/2931/open-source-and-portable-ssh-scp-sftp-and-vnc-clients-for-windows-to-remote-control-linux/"&gt;Open Source and Portable SSH, SCP, SFTP and VNC Clients for Windows to Remote Control Linux&lt;/a&gt; (this post also provides links to other software that may be usefull).&lt;/p&gt;
&lt;h3&gt;2. SSH to the Linux host&lt;/h3&gt;
&lt;p&gt;At least, the user should already get the host&amp;#8217;s name and port for SSH along with the username and password from the administrators.&lt;/p&gt;
&lt;p&gt;Then SSH to the Linux host following &lt;a href="http://fclose.com/t/go/howto-putty" rel="nofollow"&gt;this tutorial&lt;/a&gt; (it is short and easy to follow).&lt;/p&gt;
&lt;p&gt;Now, you should have logged in to the Linux host with access to a shell (such as bash) and achieved the goal in this tutorial.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3423/tutorials-for-linux-beginners/" rel="bookmark" title="Tutorials for Linux Beginners"&gt;Tutorials for Linux Beginners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/1500/enabling-password-less-ssh-login/" rel="bookmark" title="Enabling Linux Automatic Password-less SSH Login"&gt;Enabling Linux Automatic Password-less SSH Login&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/638/how-to-remote-control-linux-server-using-vnc-through-ssh-tunnel/" rel="bookmark" title="How to Remote Control Linux Server Using VNC through SSH Tunnel"&gt;How to Remote Control Linux Server Using VNC through SSH Tunnel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_r-BqnzO4QinsdjgoM5z46AsYuQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_r-BqnzO4QinsdjgoM5z46AsYuQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_r-BqnzO4QinsdjgoM5z46AsYuQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_r-BqnzO4QinsdjgoM5z46AsYuQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/qFjw0ro0dXM" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/qFjw0ro0dXM" height="1" width="1"/&gt;</description></item><item><title>Converting JPG Images to EPS</title><link>http://fclose.com/b/linux/3549/converting-jpg-images-to-eps/</link><category>Linux</category><category>Software</category><category>convert</category><category>eps</category><category>image</category><category>jpg</category><category>Latex</category><pubDate>Wed, 08 Feb 2012 22:49:00 PST</pubDate><description>&lt;p&gt;I write a lot latex documents and most of the documents have images in it. Latex deals EPS very well, while sometimes we need to add JPG / PNG images to it. I find converting the JPG images to EPS ones is the most convenient way to embed JPG images to latex documents. On Linux, this is quit easy with ImageMagick.&lt;/p&gt;
&lt;p&gt;An online tool is available: &lt;a href="http://fclose.com/t/jpg2eps/"&gt;JPG to EPS Converter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You need to install ImageMagick if it is not already installed in the system:&lt;/p&gt;
&lt;pre&gt;# yum install ImageMagick&lt;/pre&gt;
&lt;p&gt;Convert image image.jpg from JPG to EPS format:&lt;/p&gt;
&lt;pre&gt;$ convert image.jpg image.eps&lt;/pre&gt;
&lt;p&gt;For other image formats, the command is similar.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3540/converting-video-files-for-ipod-iphone-ipad/" rel="bookmark" title="Converting Video Files for iPod/iPhone/iPad"&gt;Converting Video Files for iPod/iPhone/iPad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/1643/a-simple-makefile-for-latex/" rel="bookmark" title="A Simple Makefile for Latex"&gt;A Simple Makefile for Latex&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7SHAtTCgMylhOv1nrOdxRMm83Go/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7SHAtTCgMylhOv1nrOdxRMm83Go/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7SHAtTCgMylhOv1nrOdxRMm83Go/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7SHAtTCgMylhOv1nrOdxRMm83Go/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/l8kUZChS1ds" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/l8kUZChS1ds" height="1" width="1"/&gt;</description></item><item><title>Converting Video Files for iPod/iPhone/iPad</title><link>http://fclose.com/b/linux/3540/converting-video-files-for-ipod-iphone-ipad/</link><category>Linux</category><category>Software</category><category>Apple</category><category>ffmpeg</category><category>iPhone</category><category>ipod</category><category>mp4</category><category>video</category><category>wmv</category><pubDate>Fri, 03 Feb 2012 08:40:00 PST</pubDate><description>&lt;p&gt;We usually have video files in .wmv .mpg .rmvb or .mkv formats. The iPod, iPhone or iPad only accept a limited number of video file types, such as .mov and .mp4. To play these video files in .wmv .mpg or .rmvb format, we should first convert them to .mov or .mp4 files that can played by iTune or other video players on these Apple devices that use the same codec engine. We may possibly convert video files for iPod or iPhone with &lt;a href="http://fclose.com/b/linux/1671/useful-mplayermencoder-commands/"&gt;mplayer/mencoder&lt;/a&gt; but it may have some problems, such as the audio and video do not synchronize very well for some videos.ffmpeg can convert video files from various formats to others and most of the time ffmpeg works very well. This post introduces how to convert the video files in common formats (.wmv, .mpg, .rmvb, .mkv, .etc.) to .mp4 format for iPod/iPhone/iPad.&lt;/p&gt;
&lt;h3&gt;Install ffmpeg&lt;/h3&gt;
&lt;p&gt;First, we should install the ffmpeg package. The Fedora Linux does not include ffmpeg in its repository for some reasons but the RPM Fusion repository provides it for us. To install the ffmpeg package, &lt;a href="http://fclose.com/t/go/enable-rpmfusion/"&gt;add RPM Fusion repository first&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The install the ffmpeg package:&lt;/p&gt;
&lt;pre&gt;# yum install ffmpeg&lt;/pre&gt;
&lt;p&gt;Convert video file format with ffmpeg&lt;/p&gt;
&lt;p&gt;The basic command to convert video file input.wmv to onput.mp4 is as follows.&lt;/p&gt;
&lt;pre&gt;# ffmpeg -i input.wmv output.mp4&lt;/pre&gt;
&lt;p&gt;Or other format (such as .mov) by:&lt;/p&gt;
&lt;pre&gt;# ffmpeg -i input.wmv output.mov&lt;/pre&gt;
&lt;p&gt;ffmpeg determines the output video&amp;#8217;s format by its file name extersion.&lt;/p&gt;
&lt;h3&gt;Convert video file format with ffmpeg for iPod/iPhone/iPad&lt;/h3&gt;
&lt;p&gt;The files in .mp4 format can be played on Apples devices. The iPod/iPhone/iPad have specific resolution, so we need to to convert the video files to a very high resolution since the devices can only display a limited one. We use the iPod generation 2 as the example, its screen resolution is 480&amp;#215;320. Hence, we can only convert the video to this resolution for smaller video file size. Similarly, the bitrate can also be set accordingly. The default one of ffmpeg (200 kb/s) is too low. To improve the quality of the converted video, we can set it to a larger one.&lt;/p&gt;
&lt;p&gt;One good configuration for me is:&lt;/p&gt;
&lt;pre&gt;# ffmpeg -i input.wmv -s 480x320 -b 1000k output.mp4&lt;/pre&gt;
&lt;p&gt;-s sets the frame size of the video. -b sets the bitrate of the video.&lt;/p&gt;
&lt;h3&gt;Convert video file format with ffmpeg for iPod/iPhone/iPad in one command&lt;/h3&gt;
&lt;p&gt;More conveniently, we can form this command to a script convert2mp4.sh:&lt;/p&gt;
&lt;pre&gt;#!/bin/bash
ffmpeg -i $1 -s 480x320 -b 1000k /tmp/$1.mp4&lt;/pre&gt;
&lt;p&gt;Each time to convert a video file video.wmv, we can simply run:&lt;/p&gt;
&lt;pre&gt;$ convert2mp4.sh video.wmv&lt;/pre&gt;
&lt;p&gt;and the converted file is /tmp/video.wmv.mp4 after the script finishes.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/2199/jailbreaking-apple-ipod-touch-with-spirit-in-linux/" rel="bookmark" title="Jailbreaking Apple iPod Touch with Spirit in Linux"&gt;Jailbreaking Apple iPod Touch with Spirit in Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/1497/linux-desktop-video-capture/" rel="bookmark" title="Linux Desktop Video Capture"&gt;Linux Desktop Video Capture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/2218/configuration-of-linux-kernel-video-mode/" rel="bookmark" title="Configuration of Linux Kernel Video Mode"&gt;Configuration of Linux Kernel Video Mode&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jS2C3Gkh-Avv3O7y8BHpdCpxJHg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jS2C3Gkh-Avv3O7y8BHpdCpxJHg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jS2C3Gkh-Avv3O7y8BHpdCpxJHg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jS2C3Gkh-Avv3O7y8BHpdCpxJHg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/85Pl5fCM0_E" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/85Pl5fCM0_E" height="1" width="1"/&gt;</description></item><item><title>Hadoop Default Ports</title><link>http://fclose.com/b/cloud-computing/3101/hadoop-default-ports/</link><category>Cloud Computing</category><category>Programming</category><category>Cloud computing</category><category>Hadoop</category><category>Linux</category><category>MapReduce</category><category>Tutorial</category><pubDate>Sat, 14 Jan 2012 11:18:00 PST</pubDate><description>&lt;p&gt;Hadoop&amp;#8217;s namenode and datanodes expose a bunch of TCP ports used by Hadoop’s daemons to communicate to each other or listen directly to users&amp;#8217; requests. These ports information are needed by both the Hadoop users and cluster administrators to write programs or configure firewalls/gateways accordingly.&lt;/p&gt;
&lt;p&gt;A post written by &lt;a title="Posts by Philip Zeyliger" href="http://fclose.com/t/go/philip-zeyliger/" rel="nofollow"&gt;Philip Zeyliger&lt;/a&gt; from Cloudera&amp;#8217;s blog summarizes the default ports used by Hadoop:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/hadoop-default-ports/" rel="nofollow"&gt;Hadoop Default Ports Quick Reference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Please note that these ports are also configuration through Hadoop&amp;#8217;s configuration, such as the DFS and jobtracker&amp;#8217;s ports in conf/core-site.xml conf/mapred-site.xml as used in the &lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/"&gt;Hadoop Installation Tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/" rel="bookmark" title="Hadoop Installation Tutorial"&gt;Hadoop Installation Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3094/simple-sort-benchmark-on-hadoop/" rel="bookmark" title="Simple Sort Benchmark on Hadoop"&gt;Simple Sort Benchmark on Hadoop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3008/setting-up-standalone-local-hadoop/" rel="bookmark" title="Setting Up Standalone (Local) Hadoop"&gt;Setting Up Standalone (Local) Hadoop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pfOL9i6e5I7k7FK_aRZFyNt9I7g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pfOL9i6e5I7k7FK_aRZFyNt9I7g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pfOL9i6e5I7k7FK_aRZFyNt9I7g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pfOL9i6e5I7k7FK_aRZFyNt9I7g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/CloudComputing/~4/Fn1DT4Fqjs8" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/Fn1DT4Fqjs8" height="1" width="1"/&gt;</description></item><item><title>Simple Sort Benchmark on Hadoop</title><link>http://fclose.com/b/cloud-computing/3094/simple-sort-benchmark-on-hadoop/</link><category>Cloud Computing</category><category>Programming</category><category>Hadoop</category><category>java</category><category>Linux</category><category>MapReduce</category><category>Tutorial</category><pubDate>Fri, 06 Jan 2012 00:55:00 PST</pubDate><description>&lt;p&gt;After &lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/"&gt;installing Hadoop&lt;/a&gt;, we usually run some benchmark programs to test whether the system works well. In the post of &lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/"&gt;Hadoop install tutorial&lt;/a&gt;, we show a very simple to grep strings from a simple sets of files. In this post, we introduce the Sort for testing and benchmarking Hadoop. The Sort program is also included in the Hadoop distribution package, and the package also includes a input data generator which generate 10 GB * (number of slave nodes) input data to sort. This program processes larger a datasets, which gives some strength to Hadoop including the execution engine and HDFS.&lt;/p&gt;
&lt;p&gt;The Sort example program simply uses the MapReduce framework to sort the input directory into the output directory. The mapper is the predefined IdentityMapper and the reducer is the predefined IdentityReducer, both of which just pass their inputs directly to the output. The inputs and outputs must be Sequence files where the keys and values are BytesWritable.&lt;/p&gt;
&lt;p&gt;The RandomWriter example program writes 10 GB (by default) of random data per host to HDFS using MapReduce. Each map takes a single file name as input and writes random BytesWritable keys and values to the DFS sequence file. The maps do not emit any output and the reduce phase is not used.&lt;/p&gt;
&lt;p&gt;For a quick test of the Sort benchmark, just execute these two commands after &lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/"&gt;setting up and starting the Hadoop&lt;/a&gt; (here we are in the Hadoop directory. If run the commands outside the Hadoop directory, simply use the full/relative path for the jar file):&lt;/p&gt;
&lt;pre&gt;# hadoop jar hadoop-*-examples.jar randomwriter rand
# hadoop jar hadoop-*-examples.jar sort rand rand-sort&lt;/pre&gt;
&lt;p&gt;The first command generates the random data into rand and the second commands sorts the generated data in rand and the result is put into rand-sort.&lt;/p&gt;
&lt;p&gt;For more details and more options of the Sort and RandomWriter example programs, please refer to the Hadoop Wiki: &lt;a href="http://wiki.apache.org/hadoop/Sort" rel="nofollow"&gt;Sort&lt;/a&gt; and &lt;a href="http://wiki.apache.org/hadoop/RandomWriter" rel="nofollow"&gt;RandomWriter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/" rel="bookmark" title="Hadoop Installation Tutorial"&gt;Hadoop Installation Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3008/setting-up-standalone-local-hadoop/" rel="bookmark" title="Setting Up Standalone (Local) Hadoop"&gt;Setting Up Standalone (Local) Hadoop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3101/hadoop-default-ports/" rel="bookmark" title="Hadoop Default Ports"&gt;Hadoop Default Ports&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gxqE0_Jv8xckYBMPbTP0nS4u7aE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gxqE0_Jv8xckYBMPbTP0nS4u7aE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gxqE0_Jv8xckYBMPbTP0nS4u7aE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gxqE0_Jv8xckYBMPbTP0nS4u7aE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/CloudComputing/~4/XLzzK0h3Hfg" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/XLzzK0h3Hfg" height="1" width="1"/&gt;</description></item><item><title>Hosting from Dreamhost</title><link>http://fclose.com/b/web/3095/hosting-from-dreamhost/</link><category>Web</category><pubDate>Thu, 24 Nov 2011 00:19:00 PST</pubDate><description>&lt;p&gt;I just registered an account on &lt;a href="http://fclose.com/t/go/dreamhost/" rel="nofollow"&gt;dreamhost&lt;/a&gt; with this year&amp;#8217;s Black Friday promotion.&lt;/p&gt;
&lt;p&gt;One-year hosting plus one free .com domain costs me only $9.24. Super good!&lt;/p&gt;
&lt;p&gt;Just created a free new domain name (&lt;a href="http://gopeta.com"&gt;GoPeta.com&lt;/a&gt;) with this one-year hosting plan. Will report more details about my experience with &lt;a href="http://fclose.com/t/go/dreamhost/" rel="nofollow"&gt;dreamhost.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/750/start-to-use-the-new-hosting-service/" rel="bookmark" title="Starting to use the new hosting service"&gt;Starting to use the new hosting service&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/E6RnpBDTgXpX7DxolTMPweitOMI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E6RnpBDTgXpX7DxolTMPweitOMI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/E6RnpBDTgXpX7DxolTMPweitOMI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E6RnpBDTgXpX7DxolTMPweitOMI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/8A-r5Ncur9I" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/8A-r5Ncur9I" height="1" width="1"/&gt;</description></item><item><title>Upgrading Fedora to Newer Version with Yum</title><link>http://fclose.com/b/linux/3429/upgrading-fedora-to-newer-version-with-yum/</link><category>Linux</category><category>Command line</category><category>Fedora</category><category>Server config</category><category>shell</category><category>Tutorial</category><pubDate>Sun, 20 Nov 2011 21:16:00 PST</pubDate><description>&lt;p&gt;Please consider &lt;a href="http://fclose.com/t/go/preupgrade-fedora/" rel="nofollow"&gt;PreUpgrade&lt;/a&gt; for upgrading Fedora. This is the recommended method.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This post makes a list of actions should be done to upgrade Fedora using yum. Please note that this is for experienced users only, if you are not sure what you are doing and what do these commands mean, please stop here and read the manuals first, or go to Fedora&amp;#8217;s Wiki about &lt;a href="http://fclose.com/t/go/upgrading_fedora_using_yum/" rel="nofollow"&gt;upgrading Fediora using yum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This post aims to be a general method, although we use Fedora 15 to Fedora 16 as the example. We configure and install grub2 as the bootloader.&lt;/p&gt;
&lt;h3&gt;Clean Stuff&lt;/h3&gt;
&lt;p&gt;It is a good time to remove packages we don&amp;#8217;t use. These packages could be candidates for removal, but check to see whether you use them directly or if they are used by applications not backed by rpm packages.&lt;/p&gt;
&lt;pre&gt;# package-cleanup --leaves&lt;/pre&gt;
&lt;p&gt;You can find orphaned packages (i.e. packages not in the repositories anymore). This will also show packages which have been partially uninstalled but where the &amp;#8220;%postun&amp;#8221; script failed.&lt;/p&gt;
&lt;pre&gt;# package-cleanup --orphans&lt;/pre&gt;
&lt;h3&gt;Do the upgrade&lt;/h3&gt;
&lt;h4&gt;Go to a text console and run in level 3&lt;/h4&gt;
&lt;pre&gt;ctrl + alt + F2&lt;/pre&gt;
&lt;pre&gt;init 3&lt;/pre&gt;
&lt;h4&gt;Update yum first&lt;/h4&gt;
&lt;pre&gt;yum update yum&lt;/pre&gt;
&lt;h4&gt;Clean all cached meta data and packages&lt;/h4&gt;
&lt;pre&gt;yum clean all&lt;/pre&gt;
&lt;h4&gt;Import the key for the newer version&amp;#8217;s repository&lt;/h4&gt;
&lt;p&gt;For Fedora 16, it is&lt;/p&gt;
&lt;pre&gt;rpm --import https://fedoraproject.org/static/A82BA4B7.txt&lt;/pre&gt;
&lt;h4&gt;Synchronizes the installed package set with the latest packages available&lt;/h4&gt;
&lt;pre&gt;yum --releasever=&amp;lt;release_number_you_want_to_sync_to&amp;gt; distro-sync&lt;/pre&gt;
&lt;p&gt;For upgrading Fedora 15 to Fedora 16:&lt;/p&gt;
&lt;pre&gt;yum --releasever=16 --disableplugin=presto  distro-sync&lt;/pre&gt;
&lt;p&gt;Double check the updated repositories after distro-sync&lt;/p&gt;
&lt;pre&gt;yum repolist&lt;/pre&gt;
&lt;h4&gt;Update groups&lt;/h4&gt;
&lt;pre&gt;yum groupupdate Base&lt;/pre&gt;
&lt;p&gt;List all other groups&lt;/p&gt;
&lt;pre&gt;yum grouplist&lt;/pre&gt;
&lt;p&gt;and also update them&lt;/p&gt;
&lt;pre&gt;yum groupupdate ALL GROUPS LISTED&lt;/pre&gt;
&lt;h4&gt;Use grub2 instead of grub&lt;/h4&gt;
&lt;p&gt;Make configuration for grub2&lt;/p&gt;
&lt;pre&gt;/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg&lt;/pre&gt;
&lt;p&gt;Install grub2&lt;/p&gt;
&lt;pre&gt;/sbin/grub2-install BOOTDEVICE&lt;/pre&gt;
&lt;p&gt;For example, to install grub2 on sda:&lt;/p&gt;
&lt;pre&gt;/sbin/grub2-install /dev/sda&lt;/pre&gt;
&lt;h4&gt;Reset services start/stop priorities&lt;/h4&gt;
&lt;pre&gt;cd /etc/rc.d/init.d; for f in *; do /sbin/chkconfig $f resetpriorities; done&lt;/pre&gt;
&lt;h4&gt;Reboot the system now&lt;/h4&gt;
&lt;p&gt;After reboot, you may see new kernel version on new Fedora version. For example, kernel 3.1.1 on Fedora 16&lt;/p&gt;
&lt;pre&gt;[root@localhost ~]# uname -a
Linux localhost.localdomain 3.1.1-1.fc16.x86_64 #1 SMP Fri Nov 11 21:47:56 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux&lt;/pre&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/2346/yum-installing-old-packages-from-the-repository/" rel="bookmark" title="Yum Installing Old Packages from the Repository"&gt;Yum Installing Old Packages from the Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/53/yum-使用代理的设置/" rel="bookmark" title="yum 使用代理的设置"&gt;yum 使用代理的设置&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/2497/how-to-find-out-the-firmware-version-in-linux/" rel="bookmark" title="How to Find Out the Firmware Version in Linux"&gt;How to Find Out the Firmware Version in Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/X1en7_p5NkaZ9ruwZvDr86QlO5E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X1en7_p5NkaZ9ruwZvDr86QlO5E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/X1en7_p5NkaZ9ruwZvDr86QlO5E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X1en7_p5NkaZ9ruwZvDr86QlO5E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/-F8IaCMrp5s" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/-F8IaCMrp5s" height="1" width="1"/&gt;</description></item><item><title>Additional Repositories for Fedora Linux</title><link>http://fclose.com/b/linux/3471/additional-repositories-for-fedora-linux/</link><category>Linux</category><category>Client config</category><category>Command line</category><category>Fedora</category><category>rpmfusion</category><category>yum</category><pubDate>Thu, 17 Nov 2011 07:32:00 PST</pubDate><description>&lt;p&gt;Fedora&amp;#8217;s repositories provide most of the software packages needed when using Linux. However, for various consideration, they do not provide some packages, such as MPlayer, ffmpeg. Fortunately, some community maintained repository provides these software. And they may also package propriety software, , such as ATI fglrx dive, NVIDIA driver, into rpm packages. In this post, we introduce theses additional repositories and how to install them into Fedora.&lt;/p&gt;
&lt;h3&gt;RPM Fusion&lt;/h3&gt;
&lt;p&gt;&amp;#8220;RPM Fusion provides software that the Fedora Project or Red Hat doesn&amp;#8217;t want to ship. That software is provided as precompiled RPMs for all current Fedora versions and Red Hat Enterprise Linux 5 and 6; you can use the RPM Fusion repositories with tools like yum and PackageKit.&amp;#8221;&lt;/p&gt;
&lt;p&gt;RPM Fusion has two separate software repositories&lt;strong&gt;. &lt;/strong&gt;The&lt;strong&gt; free&lt;/strong&gt; for Open Source Software (as defined by the Fedora Licensing Guidelines) which the Fedora project cannot ship due to other reasons. The &lt;strong&gt;nonfree&lt;/strong&gt; for redistributable software that is not Open Source Software (as defined by the Fedora Licensing Guidelines); this includes software with publicly available source-code that has &amp;#8220;no commercial use&amp;#8221;-like restrictions.&lt;/p&gt;
&lt;p&gt;To enable access to both the &lt;strong&gt;free&lt;/strong&gt; and the &lt;strong&gt;nonfree&lt;/strong&gt; repository use the following command.&lt;/p&gt;
&lt;p&gt;Released and currently supported Fedora versions:&lt;/p&gt;
&lt;pre&gt;# yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
# yum localinstall --nogpgcheck http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm&lt;/pre&gt;
&lt;p&gt;Fedora Rawhide and what will become the next Fedora version (Alpha, Beta and snapshots):&lt;/p&gt;
&lt;pre&gt;# yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-rawhide.noarch.rpm
# yum localinstall --nogpgcheck http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-rawhide.noarch.rpm&lt;/pre&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/1434/managing-repositories-on-git-server-using-gitosis/" rel="bookmark" title="Managing Repositories on Git Server Using Gitosis"&gt;Managing Repositories on Git Server Using Gitosis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/2405/setting-up-stable-xen-dom0-with-fedora-xen-3-4-3-with-xenified-linux-kernel-2-6-32-13-in-fedora-12/" rel="bookmark" title="Setting up Stable Xen Dom0 with Fedora: Xen 3.4.3 with Xenified Linux Kernel 2.6.32.13 in Fedora 12"&gt;Setting up Stable Xen Dom0 with Fedora: Xen 3.4.3 with Xenified Linux Kernel 2.6.32.13 in Fedora 12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/linux/3376/install-ns-2-and-ns-3-on-fedora-linux/" rel="bookmark" title="Installing ns-2 and ns-3 on Fedora Linux"&gt;Installing ns-2 and ns-3 on Fedora Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/74UEl0hZg-YhMfSuBfFXdoiTtDQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/74UEl0hZg-YhMfSuBfFXdoiTtDQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/74UEl0hZg-YhMfSuBfFXdoiTtDQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/74UEl0hZg-YhMfSuBfFXdoiTtDQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/LinuxandVirtualization/~4/9EtViDPGHUM" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/9EtViDPGHUM" height="1" width="1"/&gt;</description></item><item><title>Inline Assembly with GCC on Linux</title><link>http://fclose.com/b/programming/3035/inline-assembly-with-gcc-on-linux/</link><category>Linux</category><category>Programming</category><category>Assembly</category><category>C</category><category>gcc</category><pubDate>Tue, 08 Nov 2011 08:06:00 PST</pubDate><description>&lt;p&gt;One cool feature of gcc is that it can inline assembly into C code. With inline assembly, the programmer can precisely control the execution of the processor, such as forcing variables to use registers, getting special processor state efficiently, and writing critical efficient code in assembly by hand.&lt;/p&gt;
&lt;p&gt;I compile a list of tutorials from the Internet about inline assembly with gcc on Linux. These tutorials use AT&amp;amp;T syntax for assembly on x86 system. For x86-64, the difference with x86 is small. The method is similar, just the type of instructions and registers, such as movq, %rax, %r15.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/programming/gcc-inline-assembly/" rel="nofollow"&gt;GCC-Inline-Assembly-HOWTO&lt;/a&gt; by Sandeep.S&lt;/p&gt;
&lt;p&gt;&amp;#8220;This HOWTO explains the use and usage of the inline assembly feature provided by GCC. There are only two prerequisites for reading this article, and that’s obviously a basic knowledge of x86 assembly language and C.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/programming/brennan-inline/" rel="nofollow"&gt;Brennan&amp;#8217;s Guide to Inline Assembly&lt;/a&gt; by Brennan &amp;#8220;Bas&amp;#8221; Underwood&lt;/p&gt;
&lt;p&gt;&amp;#8220;This is meant to be an introduction to inline assembly under DJGPP. DJGPP is based on GCC, so it uses the AT&amp;amp;T/UNIX syntax and has a somewhat unique method of inline assembly.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/programming/linasm/" rel="nofollow"&gt;Using Assembly Language in Linux&lt;/a&gt;. by Phillip&lt;/p&gt;
&lt;p&gt;&amp;#8220;This article will describe assembly language programming under Linux. Contained within the bounds of the article is a comparison between Intel and AT&amp;amp;T syntax asm, a guide to using syscalls and a introductory guide to using inline asm in gcc.&lt;/p&gt;
&lt;p&gt;This article was written due to the lack of (good) info on this field of programming (inline asm section in particular), in which case i should remind thee that this is not a shellcode writing tutorial because there is no lack of info in this field.&amp;#8221;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/240/generate-a-mixed-source-and-assembly-listing-using-gcc/" rel="bookmark" title="Generating a Mixed Source and Assembly List Using GCC"&gt;Generating a Mixed Source and Assembly List Using GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/3024/x86-64-isa-assembly-references/" rel="bookmark" title="x86-64 ISA / Assembly Programming References"&gt;x86-64 ISA / Assembly Programming References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/6Uf9qWopREA" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/6Uf9qWopREA" height="1" width="1"/&gt;</description></item><item><title>x86-64 ISA / Assembly Programming References</title><link>http://fclose.com/b/programming/3024/x86-64-isa-assembly-references/</link><category>Programming</category><category>Assembly</category><category>x86-64</category><pubDate>Tue, 25 Oct 2011 03:24:00 PDT</pubDate><description>&lt;p&gt;This post collect the reference resource for x86-64 (also know as Intel 64, AMD 64) ISA / assembly language programming. x86-64 is a 64-bit extension of the Intel x86 instruction set.&lt;/p&gt;
&lt;h3&gt;x86-64 Assembly Programming&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.cs.cmu.edu/~fp/courses/15213-s07/resources.html" rel="nofollow"&gt;Introduction to Computer Systems Resources&lt;/a&gt; (15-213 Introduction to Computer Systems Resources from CMU) Lots materials for learning machine-level programming on the x86-64 machines.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cs.cmu.edu/~fp/courses/15213-s07/misc/asm64-handout.pdf" rel="nofollow"&gt;x86-64 Machine-Level Programming&lt;/a&gt; This document supplements Chapter 3 of the CS:APP book.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.x86-64.org/documentation/assembly.html" rel="nofollow"&gt;Gentle Introduction to x86-64 Assembly&lt;/a&gt; This document summarizes differences between x86-64 and i386 assembly. The readers should already know the i386 gas syntax.&lt;/p&gt;
&lt;h3&gt;x86-64 (and x86) ISA Reference&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html" rel="nofollow"&gt;Intel® 64 and IA-32 Architectures Software Developer Manuals&lt;/a&gt; Official reference from Intel.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://developer.amd.com/documentation/guides/Pages/default.aspx#developer_guides" rel="nofollow"&gt;AMD64 Architecture Programmer&amp;#8217;s&lt;/a&gt; Manual Official reference from AMD.&lt;/p&gt;
&lt;h3&gt;Others&lt;/h3&gt;
&lt;h4&gt;&lt;a href="http://fclose.com/t/go/programming/softwareoptimization/" rel="nofollow"&gt;Software Optimization Resources&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Software optimization resources. Optimization manual for advanced assembly language programmers and compiler makers, details about the internal working of various microprocessors, instruction latencies, execution unit throughputs, micro-operation breakdown and other details for all application instructions of most microprocessors from Intel, AMD and VIA.&lt;/p&gt;
&lt;h4&gt;i386 References and Learning Resource&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/book/csapp/" rel="nofollow"&gt;Computer Systems: A Programmer&amp;#8217;s Perspective, 2/E (CS:APP2e)&lt;/a&gt; This text book introduces assembly programming on x86 machines.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sourceware.org/binutils/docs-2.20/as/i386_002dDependent.html#i386_002dDependent" rel="nofollow"&gt;80386 Dependent Features of &lt;em&gt;as&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.drpaulcarter.com/pcasm/" rel="nofollow"&gt;PC Assembly Tutorial&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sandpile.org/" rel="nofollow"&gt;x86 processor information&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Binary interface&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://www.sco.com/developers/gabi/latest/contents.html" rel="nofollow"&gt;System V Application Binary Interface&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Update history:&lt;/strong&gt; Nov. 11, 2011. Add optimization resource.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/240/generate-a-mixed-source-and-assembly-listing-using-gcc/" rel="bookmark" title="Generating a Mixed Source and Assembly List Using GCC"&gt;Generating a Mixed Source and Assembly List Using GCC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/5vF0aw66ISc" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/5vF0aw66ISc" height="1" width="1"/&gt;</description></item><item><title>New Blog Address</title><link>http://fclose.com/b/web/3014/new-blog-address/</link><category>Site Related</category><pubDate>Fri, 19 Aug 2011 09:41:00 PDT</pubDate><description>&lt;p&gt;The blog domain is changed to fclose.com on Oct 20, 2010.&lt;/p&gt;
&lt;p&gt;The latest address is pkill.info&lt;/p&gt;
&lt;p&gt;The blog is moved to zhiqiangma.info from Jan. 22 2010.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/3012/a-free-personal-wordpress-blog-solution/" rel="bookmark" title="A Free Personal WordPress Blog Solution"&gt;A Free Personal WordPress Blog Solution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/3010/this-blog-passes-w3c-xhtml-1-0-transitional-validation/" rel="bookmark" title="This Blog Passes W3C XHTML 1.0 Transitional Validation"&gt;This Blog Passes W3C XHTML 1.0 Transitional Validation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TJeNOs83CS7IDltIjAalua_FIkU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TJeNOs83CS7IDltIjAalua_FIkU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TJeNOs83CS7IDltIjAalua_FIkU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TJeNOs83CS7IDltIjAalua_FIkU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/H30ssZ1v6wA" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/H30ssZ1v6wA" height="1" width="1"/&gt;</description></item><item><title>A Free Personal WordPress Blog Solution</title><link>http://fclose.com/b/web/3012/a-free-personal-wordpress-blog-solution/</link><category>Site Related</category><pubDate>Fri, 19 Aug 2011 09:39:00 PDT</pubDate><description>&lt;p&gt;If you want to have a wordpress blog for FREE co.cc + x10hosting is the best choice. I will introduce both in this post.&lt;/p&gt;
&lt;p&gt;I will briefly introduce how to set up a wordpress blog like my blog. The overall that I paid for this blog is only $0.89. I can say that it is nearly free. And the 5G traffic is enough for my blog. There are many free blog service providers such as wordpress.com and blogger. But I prefer to set up it by myself because I can control the domain name, the program and the content of my site and I can bakup the site very easily.&lt;/p&gt;
&lt;p&gt;1. Domain registration:&lt;/p&gt;
&lt;p&gt;Ff you do not want to pay for the domain you can also get a CO.CC domain for FREE from www.co.cc. You will have full dns or forwarding control of the co.cc domain you have. Dns server, CNAME, MX record, forwarding are all available. They provides an easy configuration choice for google application.&lt;/p&gt;
&lt;p&gt;I register my domain at the low price of $0.89 from&lt;a href="http://fclose.com/t/go/godaddy/" rel="nofollow"&gt; GoDaddy.com&lt;/a&gt; .info domain is very cheap for registration. And the annual renew fee is $7.9. If the .com domain is more convenient, you can register one at the price about $10/year.&lt;/p&gt;
&lt;p&gt;2. Hosting service:&lt;/p&gt;
&lt;p&gt;I am now using hostso&amp;#8217;s HK$48/y plan. I decide to pay for a good hosting service to host my blog. With a hosting service that I pay I can get a better service.&lt;/p&gt;
&lt;p&gt;If a free hosting service is needed, I still give my recommendations:&lt;/p&gt;
&lt;p&gt;When considering the free hosting service, I have several rules:&lt;br /&gt;
* It should have some way for earning money. I don&amp;#8217;t like to see that my site disappear because the site runs out of their money.&lt;br /&gt;
* It should provides PHP + MySQL solution. I mainly using WordPress.&lt;br /&gt;
* It should allow ad-free. I don&amp;#8217;t like to have a big banner on top or at the bottom of my site.&lt;br /&gt;
* It should have a good availability rate and performance.&lt;br /&gt;
* It will be better if my friends in China can also browse the site on there servers.&lt;/p&gt;
&lt;p&gt;x10Hosting.com is the best free hosting service I have ever found. My blog &lt;del&gt;is&lt;/del&gt; was running on their servers&lt;del&gt; now&lt;/del&gt;. Their service can fulfil all my requirements listed above ;) . They provides 500MB disk space 10G bandwidth and 3 MySQL database, which is far enough for my personal blog. They provides .htaccess support and FTP account. And what&amp;#8217;s best is that my friends in China can also browse my blog directly now. Their control panel and web design are much professional, I like it very much. Compared to the other free hosting service, I highly recommend x10hosting. But if you think you are going to need much more disk space and bandwidth, I suggest getting at least a shared hosting or better yet a &lt;a href="http://www.webhostingsearch.com/dedicated-server.php"&gt;dedicated server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Before x10hosting, I used the free hosting plan of freehostia.com. I don&amp;#8217;t recommend the service of 000webhost.com now even they offer a &amp;#8220;1500 MB Disk Space, 100 GB Data Transfer&amp;#8221; plan at the price of $0.00. I like the 000webhost&amp;#8217;s service plan and the user interface better. But it seems they don&amp;#8217;t accept new application now. I thought I wouldn&amp;#8217;t spend time on transferring my site because their free 5G traffic plan is enough for me. If more disk space or traffic is needed for your site, you can consider the paid service plan. But the x10hosting&amp;#8217;s service is good enough for persuading me to transfer ;)&lt;/p&gt;
&lt;p&gt;So, with overall fee of $0.89, I get a personal blog. And I thank the guys that make wordpress and it&amp;#8217;s useful plugins available to us for free! WordPress is my favourite blog. I can choose any theme that I like and the most beautiful thing is that there are all kinds of plugins ready for using!&lt;/p&gt;
&lt;p&gt;The theme and plugins I ever used are:&lt;br /&gt;
Theme: iBlog2 (A MacOS X style theme)&lt;br /&gt;
Plugins: Akismet (Anti spam), All in One SEO Pack (SEO plugin), KB Robots.txt (Edit robots.txt file), Sociable (Add share and enjoy), WP Super Cache (Save CPU usage of the server), Yet Another Related Posts Plugin (Recommend related posts).&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/3014/new-blog-address/" rel="bookmark" title="New Blog Address"&gt;New Blog Address&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/3010/this-blog-passes-w3c-xhtml-1-0-transitional-validation/" rel="bookmark" title="This Blog Passes W3C XHTML 1.0 Transitional Validation"&gt;This Blog Passes W3C XHTML 1.0 Transitional Validation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/758/change-wordpresss-excerpt-length/" rel="bookmark" title="Change WordPress’s Excerpt Length"&gt;Change WordPress’s Excerpt Length&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/chUsW4mkvshfbIeZw_QuVuM8qPk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/chUsW4mkvshfbIeZw_QuVuM8qPk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/chUsW4mkvshfbIeZw_QuVuM8qPk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/chUsW4mkvshfbIeZw_QuVuM8qPk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/TmTlM7Qw6E8" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/TmTlM7Qw6E8" height="1" width="1"/&gt;</description></item><item><title>This Blog Passes W3C XHTML 1.0 Transitional Validation</title><link>http://fclose.com/b/web/3010/this-blog-passes-w3c-xhtml-1-0-transitional-validation/</link><category>Site Related</category><category>Blog</category><pubDate>Fri, 19 Aug 2011 09:38:00 PDT</pubDate><description>&lt;p&gt;I have made this blog pass the W3C XHTML 1.0 transitional validation! I changed the theme code and made sure the theme have pass it. I also test the homepage and most of the links that can find on the homepage. Some of the post may not pass the validation because of the post content. If you find some post that can not pass it, please kindly notify me by comments or email :) .&lt;/p&gt;
&lt;p&gt;Cheers!&lt;/p&gt;
&lt;p&gt;&lt;!-- XHTML pass --&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://validator.w3.org/check?uri=referer"&gt;&lt;img src="http://www.w3.org/Icons/valid-xhtml10-blue.png" alt="Valid XHTML 1.0 Transitional" width="88" height="31" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- End XHTML pass --&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- CSS3 pass --&gt;&lt;/p&gt;
&lt;p&gt;CSS level 3 validation is also passed after changing the CSS file of the theme and the plugins.&lt;a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"&gt;&lt;br /&gt;
&lt;img style="border: 0pt none;width: 88px;height: 31px" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS!" /&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- End CSS3 pass --&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Updated on 5 Mar. 2010. CSS3 validation passed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/3014/new-blog-address/" rel="bookmark" title="New Blog Address"&gt;New Blog Address&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/3012/a-free-personal-wordpress-blog-solution/" rel="bookmark" title="A Free Personal WordPress Blog Solution"&gt;A Free Personal WordPress Blog Solution&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WnJNpmCTdenPxzLswSNyjL48-uo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WnJNpmCTdenPxzLswSNyjL48-uo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WnJNpmCTdenPxzLswSNyjL48-uo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WnJNpmCTdenPxzLswSNyjL48-uo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/ZxsCxGdKkAQ" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/ZxsCxGdKkAQ" height="1" width="1"/&gt;</description></item><item><title>Google PageRank Update 2011</title><link>http://fclose.com/b/web/3002/google-pagerank-update-2011/</link><category>Site Related</category><category>Web</category><category>google</category><category>PageRank</category><pubDate>Mon, 27 Jun 2011 10:11:00 PDT</pubDate><description>&lt;p&gt;Update 3: Fclose.com sees minor PageRank updates on November 8, 2011. For example, some tooles (&lt;a href="http://fclose.com/t/proxy/"&gt;Web Proxy&lt;/a&gt;, &lt;a href="http://fclose.com/p/lyrics/"&gt;Lyrics&lt;/a&gt;, &lt;a href="http://fclose.com/p/gold-price/"&gt;Gold Price&lt;/a&gt;, &lt;a href="http://fclose.com/t/search/"&gt;Fclose.com Search&lt;/a&gt;, etc.) and some posts (&lt;a href="http://fclose.com/b/linux/3358/howto-for-new-git-user/"&gt;Howto for New Git Users&lt;/a&gt;, &lt;a href="http://fclose.com/b/linux/3185/installing-the-flash-plugin-for-64-bit-firefox-in-linux-x86-64/"&gt;Installing the Flash Plugin for 64-bit Firefox in Linux x86-64&lt;/a&gt;, etc.) get PageRank of 3 from 0. Update: Confirmed that Google updates the PageRank in toolbar on November 8 2011.&lt;/p&gt;
&lt;p&gt;Update 2: Google updates the PageRank in toolbar on August 05 2011.&lt;/p&gt;
&lt;p&gt;Update 1: Google updates the PageRank in toolbar on July 18 2011.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Google updates the PageRank displayed in toolbar on Jun. 27, 2011. Google PageRank is just one of factors that determine the position of the page in the search result page. But seeing the growth of Google PageRank is fun for webmasters. The fclose.com&amp;#8217;s PageRank is 0 from its birth after the site moves from pkill.info and the changing is done after the first Google PageRank update in January 2011. However, I believe the PageRanks of fclose.com should be quite good after it updates since the PageRank of pkill.info and original one at blog.ust.hk is around 3 and 4.&lt;/p&gt;
&lt;p&gt;Today, when I open my site, I am still surprised, the &lt;a href="http://fclose.com/b/linux/"&gt;Linux homepage&lt;/a&gt; and &lt;a href="http://fclose.com/zma/"&gt;my homepage&lt;/a&gt;&amp;#8216;s PageRank changes to 4 and the other for blogs (&lt;a href="http://fclose.com/b/cloud-computing/"&gt;Cloud Computing&lt;/a&gt;, &lt;a href="http://fclose.com/b/web/"&gt;Web&lt;/a&gt;, &lt;a href="http://fclose.com/b/programming/"&gt;Programming&lt;/a&gt;, &lt;a href="http://fclose.com/b/software/"&gt;Software&lt;/a&gt;) has PageRank of 3 in homepage. In addition, and most important, a large number of posts (especially the ones that are linked to from the homepage) get the PageRank of 3 or 2.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s a fun thing (although it is not so important) which is a prize of writing blogs. And I also thank for my readers support to this site.&lt;/p&gt;
&lt;p&gt;Summary of the Google PageRank updates in 2011:&lt;/p&gt;
&lt;p&gt;PageRank updated on November 08 2011&lt;br /&gt;
PageRank updated on August 05 2011&lt;br /&gt;
PageRank updated on July 18 2011&lt;br /&gt;
PageRank updated on June 27 2011&lt;br /&gt;
PageRank updated on January 20 2011&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/152/verifying-wordpress-blogs-with-google-webmasters/" rel="bookmark" title="Verifying WordPress Blogs with Google Webmasters"&gt;Verifying WordPress Blogs with Google Webmasters&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fcGcr-hJXGYJKAifEXKqMveQNRo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fcGcr-hJXGYJKAifEXKqMveQNRo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fcGcr-hJXGYJKAifEXKqMveQNRo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fcGcr-hJXGYJKAifEXKqMveQNRo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/KjWOUW1TPXA" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/KjWOUW1TPXA" height="1" width="1"/&gt;</description></item><item><title>GNU glibc Manual</title><link>http://fclose.com/b/programming/3006/gnu-glibc-manual/</link><category>Linux</category><category>Programming</category><category>C</category><category>Manual</category><pubDate>Wed, 08 Jun 2011 09:13:00 PDT</pubDate><description>&lt;p&gt;&amp;#8220;The C language provides no built-in facilities for performing such common operations as input/output, memory management, string manipulation, and the like. Instead, these facilities are defined in a standard &lt;dfn&gt;library&lt;/dfn&gt;, which you compile and link with your programs. &lt;a name="index-library-1"&gt;&lt;/a&gt; The GNU C library, described in this document, defines all of the library functions that are specified by the ISO C standard, as well as additional features specific to POSIX and other derivatives of the Unix operating system, and extensions specific to the GNU system.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&amp;#8220;The GNU C library includes several &lt;dfn&gt;header files&lt;/dfn&gt;, each of which provides definitions and declarations for a group of related facilities; this information is used by the C compiler when processing your program. For example, the header file&lt;samp&gt;stdio.h&lt;/samp&gt;declares facilities for performing input and output, and the header file&lt;samp&gt;string.h&lt;/samp&gt;declares string processing utilities. The organization of this manual generally follows the same division as the header files.&amp;#8221;&lt;/p&gt;
&lt;p&gt;The manual for glibc on gnu.org:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.gnu.org/s/libc/manual/html_mono/libc.html"&gt;HTML &lt;/a&gt; version with entirely on one web page.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.gnu.org/s/libc/manual/html_node/index.html"&gt;HTML&lt;/a&gt; version with one web page per node.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.gnu.org/s/libc/manual/pdf/libc.pdf"&gt;PDF version&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/131/convert-string-to-int-and-reverse/" rel="bookmark" title="Convert string to int and Reverse"&gt;Convert string to int and Reverse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/1352/the-c-programming-style-that-i-follow/" rel="bookmark" title="The C Programming Style that I Follow"&gt;The C Programming Style that I Follow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/2775/fclose-close-a-stream/" rel="bookmark" title="fclose – Close a Stream"&gt;fclose &amp;#8211; Close a Stream&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/IM6Wkazizkg" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/IM6Wkazizkg" height="1" width="1"/&gt;</description></item><item><title>Conferences on Cloud Computing 2012</title><link>http://fclose.com/b/cloud-computing/3027/conferences-on-cloud-computing-2012/</link><category>Cloud Computing</category><pubDate>Wed, 11 May 2011 05:50:00 PDT</pubDate><description>&lt;p&gt;This post lists important conferences on Cloud Computing in year 2012. This post is kept updating.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.usenix.org/events/osdi12/" rel="nofollow"&gt;OSDI 2012&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;10th USENIX Symposium on Operating Systems Design and Implementation (OSDI &amp;#8217;12)&lt;/p&gt;
&lt;p&gt;October 8–10, 2012, Hollywood, CA&lt;/p&gt;
&lt;p&gt;&amp;#8220;The tenth OSDI seeks to present innovative, exciting research in computer systems. OSDI brings together professionals from academic and industrial backgrounds in what has become a premier forum for discussing the design, implementation, and implications of systems software.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Important Dates&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Complete paper submissions: Thursday, May 3, 2012, 9:00 p.m. PDT&lt;/p&gt;
&lt;p&gt;Notification of acceptance: Friday, July 20, 2012&lt;/p&gt;
&lt;p&gt;Final papers: Wednesday, September 5, 2012&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://eurosys2012.unibe.ch/home" rel="nofollow"&gt;EuroSys 2012&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;April 11–13, 2012. &lt;a href="http://www.bern.ch/" rel="nofollow"&gt;Bern&lt;/a&gt;, Switzerland.&lt;/p&gt;
&lt;p&gt;&amp;#8220;It has a strong focus on systems research and development: operating systems, data base systems, real-time systems and middleware for networked, distributed, parallel, or embedded computing systems.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Important Dates&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Paper pre-submission: September 20, 2011&lt;/p&gt;
&lt;p&gt;Abstract submission: October 14, 2011&lt;/p&gt;
&lt;p&gt;Full paper submission: October 20, 2011&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.usenix.org/event/atc12/" rel="nofollow"&gt;USENIX ATC &amp;#8217;12&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;2012 USENIX Annual Technical Conference (USENIX ATC &amp;#8217;12)&lt;/p&gt;
&lt;p&gt;June 13–15, 2012, Boston, MA&lt;/p&gt;
&lt;p&gt;&amp;#8220;USENIX ATC has always been the place to present groundbreaking research and cutting-edge practices in a wide variety of technologies and environments. USENIX ATC &amp;#8217;12 will be no exception. &amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Important Dates&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Paper titles and abstracts: January 10, 2012, 11:59 p.m. EST&lt;/p&gt;
&lt;p&gt;Complete paper submissions: January 17, 2012, 11:59 p.m. EST&lt;/p&gt;
&lt;p&gt;Notification to authors: March 26, 2012&lt;/p&gt;
&lt;p&gt;Final papers due: May 2, 2012&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://research.microsoft.com/en-us/um/cambridge/events/asplos_2012/" rel="nofollow"&gt;ASPLOS 2012&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Architectural Support for Programming Languages and Operating Systems.&lt;/p&gt;
&lt;p&gt;&amp;#8220;ASPLOS is a multi-disciplinary conference for research that spans the boundaries of hardware, computer architecture, compilers, languages, operating systems, networking, and applications. ASPLOS provides a high quality forum for scientists and engineers to present their latest research findings in these rapidly changing fields. It has captured some of the major computer systems innovations of the past two decades (e.g., RISC and VLIW processors, small and large-scale multiprocessors, clusters and networks-of-workstations, optimizing compilers, RAID, and network-storage system designs).&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Important Dates&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;London, UK, March 3–7 2012&lt;/p&gt;
&lt;p&gt;Abstract deadline: Monday, July 18, 2011 (noon, EDT)&lt;/p&gt;
&lt;p&gt;Full paper deadline: Monday, July 25, 2011 (noon, EDT)&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.cl.cam.ac.uk/research/srg/netos/vee_2012/" rel="nofollow"&gt;VEE 2012&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Eighth Annual International Conference on Virtual Execution Environments (VEE 2012)&lt;/p&gt;
&lt;p&gt;&amp;#8220;Virtualization has a central role on modern systems, nowadays being a key aspect of how systems are developed, executed, and managed in environments ranging from mobile computing devices to large-scale data centers. Virtualization techniques are applied at many interfaces, from hardware, to OS system calls, to high-level language run times, to cloud management stacks. While these approaches differ dramatically in implementation, they target similar benefits and often must tackle related challenges.&lt;/p&gt;
&lt;p&gt;The 2012 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments brings together researchers across the many applications of virtualization in today&amp;#8217;s systems. We invite original papers on topics relating to virtualization – especially those that will have broad appeal across these approaches.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Important Dates&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;London, UK, March 3–4 2012&lt;/p&gt;
&lt;p&gt;Full paper deadline: Wednesday, November 2, 2011 (midnight, PST)&lt;/p&gt;
&lt;p&gt;Author Rebuttal Period: December 8-9, 2011&lt;/p&gt;
&lt;p&gt;Notification of acceptance: December 19, 2011&lt;/p&gt;
&lt;p&gt;Final copy deadline: January 11, 2012&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.usenix.org/events/nsdi12/"&gt;NSDI 2012&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;9th USENIX Symposium on Networked Systems Design and Implementation&lt;/p&gt;
&lt;p&gt;&amp;#8220;NSDI &amp;#8217;12 focuses on the design principles, implementation, and practical evaluation of large-scale networked and distributed systems.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Important Dates&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;April 25–27, 2012, San Jose, CA&lt;/p&gt;
&lt;p&gt;Paper titles and abstracts: September 27, 2011, 5:00 p.m. PDT&lt;/p&gt;
&lt;p&gt;Complete paper submissions: October 4, 2011, 5:00 p.m. PDT&lt;/p&gt;
&lt;p&gt;Notification of acceptance: December 20, 2011&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://fclose.com/t/go/hotpar12/" rel="nofollow"&gt;HotPar &amp;#8217;12&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;4th USENIX Workshop on Hot Topics in Parallelism (HotPar &amp;#8217;12)&lt;/p&gt;
&lt;p&gt;June 7–8, 2012, Berkeley, CA&lt;/p&gt;
&lt;p&gt;&amp;#8220;HotPar &amp;#8217;12 will bring together researchers and practitioners doing innovative work in the area of parallel computing. HotPar recognizes the broad impact of multicore computing and seeks relevant contributions in all fields, including application design, languages and compilers, systems, and architecture.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Important Dates&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Paper registration (abstract submission): Tuesday, January 24, 2012, 11:59 p.m. PST&lt;/p&gt;
&lt;p&gt;Paper submissions: Tuesday, January 31, 2012, 11:59 p.m. PST&lt;/p&gt;
&lt;p&gt;Notification to authors: Late March 2012&lt;/p&gt;
&lt;p&gt;Electronic files of final papers due: Monday, April 30, 2012&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://fclose.com/t/go/socc2012/" rel="nofollow"&gt;SOCC 2012&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;ACM Symposium on Cloud Computing 2012&lt;/p&gt;
&lt;p&gt;October 14th-17th, 2012 &amp;#8211; San Jose, CA&lt;/p&gt;
&lt;p&gt;&amp;#8220;The ACM Symposium on Cloud Computing 2012 is the third in a new series of symposia that brings together researchers, developers, users, and practitioners interested in cloud computing.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Important Dates&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Abstracts due: June 8, 2012&lt;/p&gt;
&lt;p&gt;Papers due: June 15, 2012&lt;/p&gt;
&lt;p&gt;Accepted papers notified: September 3, 2012&lt;/p&gt;
&lt;p&gt;Camera ready copy due: September 28, 2012&lt;/p&gt;
&lt;p&gt;Conference: October 14-17, 2012&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/2989/conferences-on-cloud-computing/" rel="bookmark" title="Conferences on Cloud Computing 2011"&gt;Conferences on Cloud Computing 2011&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xBAIa12lK_NiAnM6nTkbuMrZWnY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xBAIa12lK_NiAnM6nTkbuMrZWnY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xBAIa12lK_NiAnM6nTkbuMrZWnY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xBAIa12lK_NiAnM6nTkbuMrZWnY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/CloudComputing/~4/i1YmEKY0PqM" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/i1YmEKY0PqM" height="1" width="1"/&gt;</description></item><item><title>Pitfalls and Lessons on Configuing and Tuning Hadoop</title><link>http://fclose.com/b/cloud-computing/3022/pitfalls-and-lessons-on-configuing-and-tuning-hadoop/</link><category>Cloud Computing</category><category>Linux</category><category>Programming</category><pubDate>Mon, 25 Apr 2011 18:41:00 PDT</pubDate><description>&lt;p&gt;This post lists pitfalls and lessons learning when configuring and tuning Hadoop.&lt;/p&gt;
&lt;h3&gt;Hadoop with IPv6&lt;/h3&gt;
&lt;p&gt;Hadoo doesn&amp;#8217;t support IPv6 currently (up to 0.20.2 and 0.21.0): &lt;a rel="nofollow" href="http://wiki.apache.org/hadoop/HadoopIPv6"&gt;Hadoop and IPv6&lt;/a&gt;. The performance of the cluster may suffer from turning IPv6 on in clusters: &lt;a rel="nofollow" href="http://old.nabble.com/Warning-on-turning-on-ipv6-on-your-Hadoop-clusters-td21064533.html"&gt;mail archive&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One good practice is to&lt;a href="http://fclose.com/b/linux/3232/disable-ipv6-on-linux/"&gt; disable IPv6&lt;/a&gt; on servers in the Hadoop cluster.&lt;/p&gt;
&lt;h3&gt;Hostname vs. IP&lt;/h3&gt;
&lt;p&gt;Hostname is preferred. Using hostname instead of IP address may possible &lt;a rel="nofollow" href="http://www.prohadoopbook.com/forum/topics/reduce-tasks-failing-regularly?commentId=3280390%3AComment%3A3322"&gt;solve some problem magically&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/" rel="bookmark" title="Hadoop Installation Tutorial"&gt;Hadoop Installation Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3008/setting-up-standalone-local-hadoop/" rel="bookmark" title="Setting Up Standalone (Local) Hadoop"&gt;Setting Up Standalone (Local) Hadoop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3094/simple-sort-benchmark-on-hadoop/" rel="bookmark" title="Simple Sort Benchmark on Hadoop"&gt;Simple Sort Benchmark on Hadoop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/01k5pchv3ZTSxV_szv8VSKrAZoo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/01k5pchv3ZTSxV_szv8VSKrAZoo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/01k5pchv3ZTSxV_szv8VSKrAZoo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/01k5pchv3ZTSxV_szv8VSKrAZoo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/CloudComputing/~4/A8EefL_UAio" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/A8EefL_UAio" height="1" width="1"/&gt;</description></item><item><title>Hostgator Coupon</title><link>http://fclose.com/b/web/2997/hostgator-coupon/</link><category>Web</category><category>hosting</category><pubDate>Wed, 06 Apr 2011 01:43:00 PDT</pubDate><description>&lt;p&gt;This post contains collection of coupons for Hostgator hosting service.&lt;/p&gt;
&lt;p&gt;Enter Code &lt;strong&gt;FCLOSECOM25OFF&lt;/strong&gt; and save 25% on all plans.&lt;/p&gt;
&lt;p&gt;This coupon applies only to your first billing cycle. For more details about the Hosting  packages, please visit &lt;a href="http://fclose.com/t/g/hostgator/" rel="nofollow"&gt;HostGator’s website&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;25% off Hostgator coupon:&lt;/h3&gt;
&lt;pre&gt;&lt;span&gt;&lt;strong&gt;FCLOSECOM25OFF&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;The price is&lt;span&gt; $3.71/month&lt;/span&gt; which is much lower than Hostgator&amp;#8217;s default price 3.96/month.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/750/start-to-use-the-new-hosting-service/" rel="bookmark" title="Starting to use the new hosting service"&gt;Starting to use the new hosting service&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_BUT-txpDl7qyPsxWXWQZd5Wrrc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_BUT-txpDl7qyPsxWXWQZd5Wrrc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_BUT-txpDl7qyPsxWXWQZd5Wrrc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_BUT-txpDl7qyPsxWXWQZd5Wrrc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/ip4zoAQlqi0" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/ip4zoAQlqi0" height="1" width="1"/&gt;</description></item><item><title>Setting Up Standalone (Local) Hadoop</title><link>http://fclose.com/b/cloud-computing/3008/setting-up-standalone-local-hadoop/</link><category>Programming</category><category>Hadoop</category><category>MapReduce</category><category>Tutorial</category><pubDate>Tue, 05 Apr 2011 02:56:00 PDT</pubDate><description>&lt;p&gt;Hadoop is designed to run on &lt;a href="http://fclose.com/b/290/hadoop-tutorial/"&gt;hundreds to thousands of computers&lt;/a&gt; inside cluster. However, Hadoop is configured to run things in a non-distributed        mode as a single Java process by default. This is specially useful for debugging since distributed debugging is really a nightmare. This post introduces how to set up a standalone Hadoop environment.&lt;/p&gt;
&lt;h3&gt;1. Hadoop package and software installation&lt;/h3&gt;
&lt;p&gt;Follow the instruction of &amp;#8220;1. Install needed packages&amp;#8221; part in &lt;a href="http://fclose.com/b/290/hadoop-tutorial/"&gt;Hadoop Installation Tutorial&lt;/a&gt; to install packages. Fllow &amp;#8220;4. Hadoop Concigurations&amp;#8221; to configure hadoop-env.sh (this file only).&lt;/p&gt;
&lt;h3&gt;2. Just run Hadoop!&lt;/h3&gt;
&lt;p&gt;Just run hadoop jobs whose input and output is in local directories. We use a simple example to show how to start a Hadoop job.&lt;/p&gt;
&lt;p&gt;The example finds and displays every match of the given regular          expression. Output is written to the given output directory.&lt;/p&gt;
&lt;pre&gt;$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-mapred-examples-0.21.0.jar grep input output '[a-z.]+'
$ cat output/*
&lt;/pre&gt;
&lt;p&gt;The jar file&amp;#8217;s name may be different depending on the Hadoop distribution&amp;#8217;s version.&lt;/p&gt;
&lt;p&gt;Is it simple? Enjoy it and go further to play  &lt;a href="http://fclose.com/b/290/hadoop-tutorial/"&gt; Fully-distributed Hadoop Installation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/" rel="bookmark" title="Hadoop Installation Tutorial"&gt;Hadoop Installation Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3094/simple-sort-benchmark-on-hadoop/" rel="bookmark" title="Simple Sort Benchmark on Hadoop"&gt;Simple Sort Benchmark on Hadoop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3101/hadoop-default-ports/" rel="bookmark" title="Hadoop Default Ports"&gt;Hadoop Default Ports&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pUyUw8vlw7zKnZIxN98_Fb7lPxI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pUyUw8vlw7zKnZIxN98_Fb7lPxI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pUyUw8vlw7zKnZIxN98_Fb7lPxI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pUyUw8vlw7zKnZIxN98_Fb7lPxI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/CloudComputing/~4/9mCJ134S22k" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/9mCJ134S22k" height="1" width="1"/&gt;</description></item><item><title>Conferences on Cloud Computing 2011</title><link>http://fclose.com/b/cloud-computing/2989/conferences-on-cloud-computing/</link><category>Cloud Computing</category><category>Cloud computing</category><category>Conference</category><category>Research</category><pubDate>Mon, 28 Mar 2011 04:15:00 PDT</pubDate><description>&lt;p&gt;This post lists important conferences on Cloud Computing in year 2011.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://socc2011.gsd.inesc-id.pt/"&gt;ACM Symposium on Cloud Computing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;October 27 and 28, 2011, Cascais, Portugal&lt;/p&gt;
&lt;p&gt;Submission Deadline: April 30, 2011&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://sosp2011.gsd.inesc-id.pt/"&gt;23rd ACM Symposium on Operating Systems Principles (SOSP)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;October 23-26, 2011, Cascais, Portugal&lt;/p&gt;
&lt;p&gt;Submission deadline: March 18, 2011, 11:59 PM GMT&lt;/p&gt;
&lt;h3&gt;&lt;a rel="nofollow" href="http://eurosys2011.cs.uni-salzburg.at/welcome.php"&gt;EuroSys 2011&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;April 10-13, 2011. Salzburg, Austria.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.iaria.org/conferences2011/CLOUDCOMPUTING11.html"&gt;CLOUD COMPUTING   2011&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The Second International Conference on Cloud Computing, GRIDs, and Virtualization&lt;/p&gt;
&lt;p&gt;September 25-30, 2011 &amp;#8211; Rome, Italy&lt;/p&gt;
&lt;p&gt;Submission (full paper):                 April 20, 2011&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3027/conferences-on-cloud-computing-2012/" rel="bookmark" title="Conferences on Cloud Computing 2012"&gt;Conferences on Cloud Computing 2012&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/" rel="bookmark" title="Hadoop Installation Tutorial"&gt;Hadoop Installation Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3101/hadoop-default-ports/" rel="bookmark" title="Hadoop Default Ports"&gt;Hadoop Default Ports&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DAKO02r5nvqdzFgcjVYm3Y4Ovn4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DAKO02r5nvqdzFgcjVYm3Y4Ovn4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DAKO02r5nvqdzFgcjVYm3Y4Ovn4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DAKO02r5nvqdzFgcjVYm3Y4Ovn4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/CloudComputing/~4/oQfQyoWT9R8" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/oQfQyoWT9R8" height="1" width="1"/&gt;</description></item><item><title>Printing Notes on a PDF File</title><link>http://fclose.com/b/software/3040/printing-notes-on-a-pdf-file/</link><category>Software</category><pubDate>Sat, 19 Mar 2011 05:39:00 PDT</pubDate><description>&lt;p&gt;I tried several software on Windows and Linux to print notes, especially sticky notes on a PDF file. Finally, I find the only working software is Adobe Acrobat. Unfortunately, Adobe Reader doesn&amp;#8217;t provide a way to print sticky notes.&lt;/p&gt;
&lt;p&gt;The detailed method is posted on Adobe&amp;#8217;s blog: &lt;a href="http://fclose.com/t/go/software/printing-notes-on-a-pdf-file/"&gt;Printing Sticky Notes on a PDF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qg0ETA1SMoD6cvU-04WzaHLgsVs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qg0ETA1SMoD6cvU-04WzaHLgsVs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qg0ETA1SMoD6cvU-04WzaHLgsVs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qg0ETA1SMoD6cvU-04WzaHLgsVs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/URmrw0U_go8" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/URmrw0U_go8" height="1" width="1"/&gt;</description></item><item><title>GDB Cheat Sheet</title><link>http://fclose.com/b/programming/2995/gdb-cheat-sheet/</link><category>Programming</category><pubDate>Sat, 12 Mar 2011 22:36:00 PST</pubDate><description>&lt;p&gt;Here is a collection of good &lt;strong&gt;GDB Cheat Sheets&lt;/strong&gt; from the Internet.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" href="http://users.ece.utexas.edu/~adnan/gdb-refcard.pdf"&gt;&lt;strong&gt;&lt;a href="http://www.digilife.be/quickreferences/QRC/GDB%20Quick%20Reference.pdf"&gt;GDB QUICK REFERENCE GDB Version 5&lt;/a&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CCgQFjAD&amp;amp;url=http%3A%2F%2Fdarkdust.net%2Ffiles%2FGDB%2520Cheat%2520Sheet.pdf&amp;amp;ei=Mcd8TfjtHoGycbnd-LcG&amp;amp;usg=AFQjCNHCDpbVUfxmJyacITfnesZ0PKBKqg&amp;amp;sig2=wXR-SQSy07X6-aP4jTEFyg"&gt;GDB Cheat Sheet&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=6&amp;amp;ved=0CDgQFjAF&amp;amp;url=http%3A%2F%2Fwww.cs.cmu.edu%2Fafs%2Fcs.cmu.edu%2Facademic%2Fclass%2F15213-f99%2Fhandouts%2Fgdbnotes.pdf&amp;amp;ei=Mcd8TfjtHoGycbnd-LcG&amp;amp;usg=AFQjCNE3A76IgT8OS1dUJ4Rby3vU1BrHeQ&amp;amp;sig2=KpQcz-qjR6uzP1IdEeIuEQ"&gt;gdb Cheatsheet&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://web.cecs.pdx.edu/~jrb/cs201/lectures/handouts/gdbcomm.txt"&gt;GDB commands by function &amp;#8211; simple guide&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/324/vim-cgdb/" rel="bookmark" title="Vim + cgdb"&gt;Vim + cgdb&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/sqr3Kz0XYXY" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/sqr3Kz0XYXY" height="1" width="1"/&gt;</description></item><item><title>HP Compaq BIOS Crisis Recovery from a Failed BIOS Flashing</title><link>http://fclose.com/b/software/3022/hp-compaq-bios-crisis-recovery-from-a-failed-bios-flashing/</link><category>Software</category><category>compaq bios</category><category>hp compaq laptop</category><category>Tip</category><category>Tutorial</category><pubDate>Wed, 02 Feb 2011 21:07:00 PST</pubDate><description>&lt;p&gt;I tried to flash my HP Compaq CQ35-240TX&amp;#8217;s BIOS to F.15 but unfortunately failed. The computer turned to white screen. When I restarted (powered off then boot again), this is no response any more: the hard disk and caps lock&amp;#8217;s LED keep blinding. I thought &amp;#8220;Oh my God! I must send it to HP to repair it!&amp;#8221;.&lt;/p&gt;
&lt;p&gt;But after searching on the Internet and find there is a &amp;#8220;crisis recovery&amp;#8221; mechanism to recovery the BIOS even the CMOS don&amp;#8217;t work. I finally managed to recovery the BIOS with a help of USB flash disk. I will introduce the procedure to crisis recovery my HP Compaq laptop. You need to prepare a USB flash disk and another computer that is connected to the Internet (we need to download the BIOS image from HP).&lt;/p&gt;
&lt;p&gt;The steps to recovery the BIOS are as follows.&lt;/p&gt;
&lt;p&gt;1. Format the USB flash disk&amp;#8217;s filesystem to FAT16 on another computer.&lt;/p&gt;
&lt;p&gt;2. Get the BIOS image from HP&amp;#8217;s website (I use F15 version).&lt;/p&gt;
&lt;p&gt;Download the BIOS update file from HP&amp;#8217;s website (an exe file). Execute the BIOS update file on another computer. It will decompress the files. Select a directory to store the files and you can close the program. In the directory selected, we can get WinFlash.exe. Unzip WinFlash.exe using a program like WinRAR. We can find two .FD files. For my computer and the BIOS version I use, the two files are 306DF15.FD and 306EF15.FD. There are two model for Compaq CQ35 computers, so there are two .FD files. You may try one by one to see which model your computer use. Actually this model can be found in &amp;#8220;BIOS Setup&amp;#8221; (we can&amp;#8217;t start it as the CMOS is bad)&lt;/p&gt;
&lt;p&gt;3. Copy the file 306DF15.FD to USB disk&amp;#8217;s root directory and rename it to 306D.bin. (the file may be different depending on the model)&lt;/p&gt;
&lt;p&gt;4. Remove the AC power and battery from the lapttop.&lt;/p&gt;
&lt;p&gt;5. Plug in the USB flash disk to the laptop.&lt;/p&gt;
&lt;p&gt;6. Hold two keys: WinKey + B.&lt;/p&gt;
&lt;p&gt;7. Plug in the AC power.&lt;/p&gt;
&lt;p&gt;8. Hold the Power Button for 5 seconds, then release.&lt;/p&gt;
&lt;p&gt;9. Push the Power button as normal to power on the computer.&lt;/p&gt;
&lt;p&gt;10. After the laptop starts short beeping, release WinKey+B.&lt;/p&gt;
&lt;p&gt;11. The laptop will keep short beeping for about one minute, it will power off itself after recovering the BIOS.&lt;/p&gt;
&lt;p&gt;If the laptop keeps long beeping or beeping for more than 3 minutes, the recovery fails, possibly because of the wrong image file or the USB flash disk doesn&amp;#8217;t work on the laptop. In this case, you may try another image file or another USB flash disk.&lt;/p&gt;
&lt;p&gt;12. Normally power on the laptop after recovering the BIOS and you will see the Compaq logo appearing again.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XiIyzKgoAvb6bJDuSm4CO9ju_MY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XiIyzKgoAvb6bJDuSm4CO9ju_MY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XiIyzKgoAvb6bJDuSm4CO9ju_MY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XiIyzKgoAvb6bJDuSm4CO9ju_MY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/ZO2rvZ4PtUI" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/ZO2rvZ4PtUI" height="1" width="1"/&gt;</description></item><item><title>Latex Cheat Sheet</title><link>http://fclose.com/b/software/2902/latex-cheat-sheet/</link><category>Software</category><category>Latex</category><pubDate>Thu, 23 Dec 2010 09:44:00 PST</pubDate><description>&lt;p&gt;Latex cheat sheet by Winston Chang (www.stdout.org/~winston/):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/latexsheet/"&gt;Download latex cheat sheet&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ny-JbwRkIOAalalDGg3iYDte7xY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ny-JbwRkIOAalalDGg3iYDte7xY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ny-JbwRkIOAalalDGg3iYDte7xY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ny-JbwRkIOAalalDGg3iYDte7xY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/vE4tcU7CcrA" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/vE4tcU7CcrA" height="1" width="1"/&gt;</description></item><item><title>fclose – Close a Stream</title><link>http://fclose.com/b/programming/2775/fclose-close-a-stream/</link><category>Programming</category><category>C</category><pubDate>Mon, 15 Nov 2010 01:33:00 PST</pubDate><description>&lt;p&gt;&lt;em&gt;fclose&lt;/em&gt; is a frequently used C standard library which closes the file associated with the &lt;em&gt;stream&lt;/em&gt; and disassociates it.&lt;/p&gt;
&lt;h3&gt;NAME&lt;/h3&gt;
&lt;p&gt;fclose &amp;#8211; close a stream&lt;/p&gt;
&lt;h3&gt;SYNOPSIS&lt;/h3&gt;
&lt;pre&gt;#include &amp;lt;stdio.h&amp;gt;
int fclose(FILE *fp);&lt;/pre&gt;
&lt;h3&gt;DESCRIPTION&lt;/h3&gt;
&lt;p&gt;The fclose() function will flushes the stream pointed to by fp (writing any buffered output data using fflush()) and closes the underlying file descriptor.&lt;/p&gt;
&lt;h3&gt;RETURN VALUE&lt;/h3&gt;
&lt;p&gt;Upon successful completion 0 is returned.  Otherwise, EOF is returned and errno is set to indicate the error.  In either  case any further access (including another call to fclose()) to the stream results in undefined behaviour.&lt;/p&gt;
&lt;h3&gt;ERRORS&lt;/h3&gt;
&lt;p&gt;EBADF  The file descriptor underlying fp is not valid.&lt;/p&gt;
&lt;p&gt;The fclose() function may also fail and set errno for any of the errors  specified  for  the  routines  close(),&lt;br /&gt;
write() or fflush().&lt;/p&gt;
&lt;h3&gt;CONFORMING TO&lt;/h3&gt;
&lt;p&gt;C89, C99.&lt;/p&gt;
&lt;h3&gt;NOTES&lt;/h3&gt;
&lt;p&gt;Note  that  fclose()  only  flushes the user space buffers provided by the C library.  To ensure that the data is physically stored on disk the kernel buffers must be flushed too, for example, with sync() or fsync().&lt;/p&gt;
&lt;p&gt;From Linux Programmer&amp;#8217;s Manual&lt;/p&gt;
&lt;h3&gt;EXAMPLE&lt;/h3&gt;
&lt;pre&gt;#include &amp;lt;stdio.h&amp;gt;
int main(int argc, char* args[])
{
  FILE * fp;
  pFile = fopen ("file_to_write.txt","wt");
  fprintf (fp, "fclose example");
  fclose (fp);
  return 0;
}&lt;/pre&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/131/convert-string-to-int-and-reverse/" rel="bookmark" title="Convert string to int and Reverse"&gt;Convert string to int and Reverse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/1352/the-c-programming-style-that-i-follow/" rel="bookmark" title="The C Programming Style that I Follow"&gt;The C Programming Style that I Follow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/107/iostream中输入输出十六进制数/" rel="bookmark" title="iostream中输入输出十六进制数"&gt;iostream中输入输出十六进制数&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/5N6xomwdHrM" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/5N6xomwdHrM" height="1" width="1"/&gt;</description></item><item><title>Speeding Up the Site With Apache GZIP Compression</title><link>http://fclose.com/b/web/2503/speeding-up-the-site-with-apache-gzip-compression/</link><category>Web</category><category>Apache</category><category>gzip</category><pubDate>Tue, 14 Sep 2010 02:01:00 PDT</pubDate><description>&lt;p&gt;We can speed up the site with compression while save bandwidth at the same time. As most of the modern browsers support gzip encoding, we can set it up to let the users enjoy faster speed. The Apache &lt;em&gt;mod_deflate&lt;/em&gt; is easy to set up and standard. It compress the content on the fly.&lt;/p&gt;
&lt;p&gt;We can enable output compression in Apache by adding the following into the &lt;em&gt;.htaccess&lt;/em&gt; file in the root directory of the website:&lt;/p&gt;
&lt;pre&gt;# Compress html, text, javascript, css and xml content:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/x-javascript&lt;/pre&gt;
&lt;p&gt;If the .htaccess file can&amp;#8217;t be edited or the mode isn&amp;#8217;t enabled, there is another alternative solution for php supported environment:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/b/1194/speeding-up-the-site-by-using-php-gzip-compression/"&gt;Speeding Up the Site by Using PHP GZIP Compression&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/1194/speeding-up-the-site-by-using-php-gzip-compression/" rel="bookmark" title="Speeding Up the Site by Using PHP GZIP Compression"&gt;Speeding Up the Site by Using PHP GZIP Compression&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/666/how-to-change-the-sites-default-404-error-not-found-page/" rel="bookmark" title="How to Change the Site’s Default 404 Error Not Found Page"&gt;How to Change the Site’s Default 404 Error Not Found Page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gPVl2xCwzCJOlWglQU2gdJWbnoQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gPVl2xCwzCJOlWglQU2gdJWbnoQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gPVl2xCwzCJOlWglQU2gdJWbnoQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gPVl2xCwzCJOlWglQU2gdJWbnoQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/wW1xb3W2llI" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/wW1xb3W2llI" height="1" width="1"/&gt;</description></item><item><title>Changing the Font Size of WordPress’s Visual Editor</title><link>http://fclose.com/b/web/2320/changing-the-font-size-of-wordpresss-visual-editor/</link><category>Web</category><category>CSS</category><category>html</category><category>wordpress</category><pubDate>Sat, 07 Aug 2010 05:17:00 PDT</pubDate><description>&lt;p&gt;The font size of WordPress&amp;#8217;s visual editor is too small for me on my screen display. The default font size is 13px which is hard for my eye on my screen. There are two ways to change the default font size in the visual editor. One is changing WordPress&amp;#8217;s css file for the editor while the other is using a plugin.&lt;/p&gt;
&lt;h3&gt;Method 1: Change WordPress&amp;#8217;s CSS file&lt;/h3&gt;
&lt;p&gt;This is the most direct way. This method will apply to all the contributors&amp;#8217; editors.&lt;/p&gt;
&lt;p&gt;The CSS file for the visual editor&amp;#8217;s font is: &lt;em&gt;wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css&lt;/em&gt; in WordPress&amp;#8217;s installation directory.&lt;/p&gt;
&lt;p&gt;First download this file and open if with an text editor that you like. Then find these lines:&lt;/p&gt;
&lt;pre&gt;body.mceContentBody {
    font: 13px/19px Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
    padding: 0.6em;
    margin: 0;
}
&lt;/pre&gt;
&lt;p&gt;The &lt;em&gt;font&lt;/em&gt; here specifies the font size of WordPress&amp;#8217;s visual editor. If we want to change the font size to 16px, just change that line to:&lt;/p&gt;
&lt;pre&gt;font: 16px/19px Georgia, "Times New Roman", "Bitstream Charter", Times, serif;&lt;/pre&gt;
&lt;p&gt;Then save this CSS file and uploaded to the hosting server. It&amp;#8217;s done!&lt;/p&gt;
&lt;h3&gt;Method 2: Use WordPress plugin&lt;/h3&gt;
&lt;p&gt;This method will not modify WordPress&amp;#8217;s files. But it requires us to install a plugin: &lt;a rel="external nofollow" href="http://wordpress.org/extend/plugins/visual-editor-font-size/"&gt;Visual Editor Font Size&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After installing this plugin, you will find a &amp;#8220;Visual Editor Font Size&amp;#8221; tool bar under the editor (maybe a little far away from it). You can click the &amp;#8220;+&amp;#8221; and the &amp;#8220;-&amp;#8221; button to make the font larger or smaller.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/1333/wordpress-theme-zm-theme/" rel="bookmark" title="WordPress Theme: ZM Theme"&gt;WordPress Theme: ZM Theme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/110/html-special-characters/" rel="bookmark" title="Some HTML Special Characters"&gt;Some HTML Special Characters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/152/verifying-wordpress-blogs-with-google-webmasters/" rel="bookmark" title="Verifying WordPress Blogs with Google Webmasters"&gt;Verifying WordPress Blogs with Google Webmasters&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a1gDlnm6JxKhBSYWW_QN4PXIj7g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a1gDlnm6JxKhBSYWW_QN4PXIj7g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a1gDlnm6JxKhBSYWW_QN4PXIj7g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a1gDlnm6JxKhBSYWW_QN4PXIj7g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/0s_xCHpjvKQ" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/0s_xCHpjvKQ" height="1" width="1"/&gt;</description></item><item><title>RGBlite WordPress Theme</title><link>http://fclose.com/b/web/1728/rgblite-wordpress-theme/</link><category>Project</category><category>Web</category><pubDate>Sat, 29 May 2010 00:39:00 PDT</pubDate><description>&lt;p&gt;&lt;img class="alignnone size-full wp-image-3116" title="rgblite-wordpress-theme-screenshot" src="http://fclose.com/b/web/files/2010/05/rgblite-wordpress-theme-screenshot.png" alt="rgblite-wordpress-theme-screenshot" width="400" height="244" /&gt;&lt;/p&gt;
&lt;h3&gt;About RGBlite Theme&lt;/h3&gt;
&lt;p&gt;RGBlite Theme is a simple and light-weight theme for WordPress. RGBlite Theme provides a green-red-blue mixed style, bright view and fast rendering experience to the users.&lt;/p&gt;
&lt;p&gt;RGBlite Theme passes W3C XHTML 1.0 and W3C CSS level 3 validation. This theme works well on WordPress 2.9.x and WordPress 3.0.&lt;/p&gt;
&lt;p&gt;RGBlite theme is among the top 10 most fastest WordPress themes in one measurement. Here is the overall rank image from the result:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://fclose.com/f/2011/rgblite-nostats-allrank.png" alt="WordPress theme graph" width="400" height="200" /&gt;&lt;/p&gt;
&lt;h3&gt;How to install&lt;/h3&gt;
&lt;p&gt;Download the theme from the link below. Then upload it to the /wp-content/themes/ directory and select it in WordPress console will make this theme work.&lt;/p&gt;
&lt;h3&gt;Build in support for plugins&lt;/h3&gt;
&lt;p&gt;It is recommended to install these plugins while using this theme and the page template:&lt;br /&gt;
&lt;a href="http://wordpress.org/extend/plugins/wordpress-popular-posts/" rel="nofollow"&gt;WordPress Popular Posts&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.dagondesign.com/articles/sitemap-generator-plugin-for-wordpress/" rel="nofollow"&gt;Sitemap Generator for WordPress&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please install these plugins when you using this theme. These plugins will make this theme function well as the &lt;a href="http://fclose.com/b/"&gt;blog&lt;/a&gt; it is originally designed to.&lt;/p&gt;
&lt;h3&gt;Preview, download and Licence&lt;/h3&gt;
&lt;p&gt;Free to download, free to use, free to customize.&lt;br /&gt;
Released under the &lt;a href="http://www.gnu.org/licenses/gpl.html" rel="nofollow" target="_blank"&gt;GPL License&lt;/a&gt; (&lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" rel="nofollow" target="_blank"&gt;What is the GPL&lt;/a&gt;?)&lt;/p&gt;
&lt;p&gt;Preview is available: on &lt;a href="http://wordpress.org/extend/themes/rgblite" target="_blank"&gt;WordPress.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Download: &lt;a href="http://fclose.com/t/go/rgblite-theme-1-3/" rel="nofollow"&gt;RGBlite WP Theme&lt;/a&gt;.(Version 1.3, Feb. 3, 2012)&lt;/p&gt;
&lt;h3&gt;How to get the homepage like the demo screenshot&lt;/h3&gt;
&lt;p&gt;If you like the homepage style in the demo screenshot which is different from the default recent posts list, you can easily follow these steps:&lt;/p&gt;
&lt;p&gt;1. Create a page for the homepage. The content of this page will disappear on the top side. Select &lt;strong&gt;&amp;#8220;Homepage&amp;#8221;&lt;/strong&gt; for the template on the right side of the page editing page.&lt;/p&gt;
&lt;p&gt;2. In &amp;#8220;Settings-&amp;gt;Reading&amp;#8221; in WordPress&amp;#8217;s control panel, select &amp;#8220;A static page&amp;#8221; in the &amp;#8220;Front page displays&amp;#8221; section. Select the page you have created in step 1 for the &amp;#8220;front page&amp;#8221;.&lt;/p&gt;
&lt;p&gt;3. The &amp;#8220;Featured posts&amp;#8221; part in the homepage requires &amp;#8220;WordPress Popular Posts&amp;#8221; plugin. After install this plugin, the &amp;#8220;Featured posts&amp;#8221; will appear.&lt;/p&gt;
&lt;p&gt;The top part of the right sidebar is actually a &amp;#8220;Text widget&amp;#8221; which can be designed by yourself.&lt;/p&gt;
&lt;h3&gt;Translation&lt;/h3&gt;
&lt;p&gt;Thanks to the people that translate this theme to other languages:&lt;/p&gt;
&lt;p&gt;Romanian, Alexander Ovsov (&lt;a href="http://fclose.com/t/go/alexanderovsov/" rel="nofollow"&gt;Web Geek Sciense&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;Change Logs&lt;/h3&gt;
&lt;p&gt;Feb. 3, 2012. Update to version 1.3.&lt;br /&gt;
Feb. 1, 2011. Add page load speed measurement result.&lt;br /&gt;
Version 1.1.3. Fix lots bugs; delete archive.php, missing.php; use add_theme_support(&amp;#8216;automatic-feed-links&amp;#8217;); smaller footer font;&lt;br /&gt;
Jul. 22, 2010 Add &amp;#8220;How to get the homepage like the demo screenshot&amp;#8221; part.&lt;br /&gt;
Version 1.1.2. Prettied default sidebar; Search form always stays on top of the sidebar; Search functions run now.&lt;br /&gt;
Version 1.1.1 Add nav menu support; Add body_class(); add wp_link_page(); Add default sidebar; Add search form in default sidebar;&lt;br /&gt;
Version 1.1.0   Change post meta in post to two lines and add the right part of first line; Add text before content; Move post meta from file to function; No border between content and sidebar; Homepage has page number; no border-bottom for header; post font 12px; h2 28px; h3 22px; h4 16px; Change title format. Head logo and the menu is on two lines; Change tag cloud line-height to 2em;&lt;br /&gt;
May 31, 2010. Change index.php.&lt;br /&gt;
May 29, 2010. The first version 1.0.0 released.&lt;/p&gt;
&lt;div&gt;https://docs.google.com/leaf?id=0BxXe2zOqYbxmNmIxZDhmZmEtMWY3Mi00MWVhLThlMjgtMzU5NmZlZmVmZDQ4&amp;amp;hl=en&lt;/div&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/1333/wordpress-theme-zm-theme/" rel="bookmark" title="WordPress Theme: ZM Theme"&gt;WordPress Theme: ZM Theme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/758/change-wordpresss-excerpt-length/" rel="bookmark" title="Change WordPress’s Excerpt Length"&gt;Change WordPress’s Excerpt Length&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/web/812/get-the-number-of-all-posts-in-wordpress/" rel="bookmark" title="Get the Number of All Posts in WordPress"&gt;Get the Number of All Posts in WordPress&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aJZ58mAMWbEd_eOFf9w8c3g3eYo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aJZ58mAMWbEd_eOFf9w8c3g3eYo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aJZ58mAMWbEd_eOFf9w8c3g3eYo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aJZ58mAMWbEd_eOFf9w8c3g3eYo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Web/~4/zImOuFxI14s" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/zImOuFxI14s" height="1" width="1"/&gt;</description></item><item><title>Setting Up POP3/IMAP Email Box on Nokia E71</title><link>http://fclose.com/b/software/1533/setting-up-pop3imap-email-box-on-nokia-e71/</link><category>Mobile</category><pubDate>Wed, 12 May 2010 03:27:00 PDT</pubDate><description>&lt;p&gt;The software in Nokia E71 already support POP3 and IMAP email box. But we may lead to install Nokia messaging and setting up account of Nokia messaging. Storing our emails in remote servers isn&amp;#8217;t a secure way. And why not use IMAP directly if it is supported by the system software? How to set up POP3 or IMAP email box on Nokia E71 will be introduced in this post.&lt;/p&gt;
&lt;p&gt;First create a new mailbox by select:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Menu -&amp;gt; Communic. -&amp;gt; Messaging -&amp;gt; Optioins -&amp;gt; Settings -&amp;gt; E-mail -&amp;gt; Options -&amp;gt; New mailbox -&amp;gt; Start&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Allow connection?&lt;/em&gt; select &lt;strong&gt;&lt;em&gt;NO&lt;/em&gt;&lt;/strong&gt;. This is the &lt;strong&gt;most important&lt;/strong&gt; part. Otherwise, we will be lead to install Nokia Messaging again.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;E-mail address:&lt;/em&gt; your email address&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Password:&lt;/em&gt; password&lt;/p&gt;
&lt;p&gt;&lt;em&gt;User name:&lt;/em&gt; user name&lt;/p&gt;
&lt;p&gt;Then you will get a message that the account can&amp;#8217;t be defined. It will ask us for the email client:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/uO5Ukt4foZJvLXklNSTGiA?feat=embedwebsite" rel="nofollow"&gt;&lt;img src="http://lh6.ggpht.com/_9GCSB4c6Upw/TAnhqeE72bI/AAAAAAAAA70/-JnKiKBi7zk/s400/IMG_0589.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Select POP3/IMAP in the next screen:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Af1se2bFPxhBRR-m7dr08Q?feat=embedwebsite" rel="nofollow"&gt;&lt;img src="http://lh5.ggpht.com/_9GCSB4c6Upw/TAnhqgJtVmI/AAAAAAAAA74/PuE5amJqdVE/s400/IMG_0591.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You will get a wizard after that:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/zATsUZK3W9mGROBFIV8RVQ?feat=embedwebsite" rel="nofollow"&gt;&lt;img src="http://lh3.ggpht.com/_9GCSB4c6Upw/TAnhqoDHESI/AAAAAAAAA78/iYgs20DsNVc/s400/IMG_0592.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then just follow the wizard and you will set up a email account using POP3 or IMAP.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uvul26l1pgVWObUOCDcBHEAHEbw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uvul26l1pgVWObUOCDcBHEAHEbw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uvul26l1pgVWObUOCDcBHEAHEbw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uvul26l1pgVWObUOCDcBHEAHEbw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/wFbybitIZ30" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/wFbybitIZ30" height="1" width="1"/&gt;</description></item><item><title>Vim Formatting C/C++ Code</title><link>http://fclose.com/b/programming/1419/vim-formatting-cc-code/</link><category>Linux</category><category>Programming</category><category>C</category><category>Tip</category><category>Tutorial</category><category>vim</category><pubDate>Fri, 12 Mar 2010 21:55:00 PST</pubDate><description>&lt;p&gt;Vim provides some basic formatting commands. A combination of these commands with the editing commands will make the programmer happy.&lt;/p&gt;
&lt;p&gt;A list of basic text formatting commands in Vim:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;tt&gt;=&lt;/tt&gt;&lt;/strong&gt; is an operator that formats/indents text.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;tt&gt;i{&lt;/tt&gt;&lt;/strong&gt; is a text object that specifies the surrounding code block. It should be used together with &lt;strong&gt;&lt;em&gt;v&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;=&lt;/em&gt;&lt;/strong&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some basic but useful operation that are combination of the two basic ones above:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;tt&gt;vi{&lt;/tt&gt;&lt;/strong&gt; visually selects the inner code block around the cursor.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;tt&gt;=i{&lt;/tt&gt;&lt;/strong&gt; formats the code block.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;tt&gt;=2i{&lt;/tt&gt;&lt;/strong&gt; formats the current block and the block around it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;tt&gt;==&lt;/tt&gt;&lt;/strong&gt; formats current line.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The method to format a block of C/C++ or Java code:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First, go to the start point of codes to be formatted, then press &lt;strong&gt;&lt;em&gt;v&lt;/em&gt;&lt;/strong&gt; to start selection.&lt;/li&gt;
&lt;li&gt;Second, go to the end point.&lt;/li&gt;
&lt;li&gt;Third, press &lt;strong&gt;&lt;em&gt;=&lt;/em&gt;&lt;/strong&gt; to format the codes that have been selected. All braces and indentations will be aligned.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A short way to format the whole buffer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gg=G&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/324/vim-cgdb/" rel="bookmark" title="Vim + cgdb"&gt;Vim + cgdb&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/240/generate-a-mixed-source-and-assembly-listing-using-gcc/" rel="bookmark" title="Generating a Mixed Source and Assembly List Using GCC"&gt;Generating a Mixed Source and Assembly List Using GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/153/send-messages-to-other-windows/" rel="bookmark" title="Send Messages to Other Windows Using Win32 API"&gt;Send Messages to Other Windows Using Win32 API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/KLDMkFacnP4" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/KLDMkFacnP4" height="1" width="1"/&gt;</description></item><item><title>The C Programming Style that I Follow</title><link>http://fclose.com/b/programming/1352/the-c-programming-style-that-i-follow/</link><category>Programming</category><category>C</category><category>style</category><pubDate>Thu, 04 Mar 2010 11:54:00 PST</pubDate><description>&lt;p&gt;C programming language allow any style the programmer like. A good style can make the code easy to understand and maintain, while a bad style will make the project a nightmare.&lt;/p&gt;
&lt;p&gt;This is the C programming styles that I follows:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. For each source file (*.c), there is a header file (*.h) that have the same name with it as it&amp;#8217;s interface.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. The header file starts with&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;#ifndef _HEADER_NAME_H
#  define  _HEADER_NAME_H
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt; And end with:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;#endif // _HEADER_NAME_H&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;3. #include is only used in source file usually.  ONLY when it is really necessary, #include can be used in header file.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. There is NO definition in header file. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Global variable defined in source file that is visible outside the module is declared as extern variable in the relevant header file. Global variable is used only when it is really necessary.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An example that follow this style is &lt;a href="http://fclose.com/p/mrcc/"&gt;mrcc&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/240/generate-a-mixed-source-and-assembly-listing-using-gcc/" rel="bookmark" title="Generating a Mixed Source and Assembly List Using GCC"&gt;Generating a Mixed Source and Assembly List Using GCC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/iYi7BajFe00" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/iYi7BajFe00" height="1" width="1"/&gt;</description></item><item><title>Keep Firefox Open After Closing the Last Tab</title><link>http://fclose.com/b/software/1248/keep-firefox-open-after-closing-the-last-tab/</link><category>Software</category><category>firefox</category><category>Tip</category><pubDate>Sun, 21 Feb 2010 23:49:00 PST</pubDate><description>&lt;p&gt;Firefox should always be ready there for us, right? Even after we closing the last tab, we would like firefox to be still open. At least I like to treat it in this way.&lt;/p&gt;
&lt;p&gt;But unfortunately, Firefox will close after we closing the last tab as default in version 3.5. But the good news is that this behaviour is configurable  through Firefox&amp;#8217;s configuration editor. Now, let&amp;#8217;s open it:&lt;/p&gt;
&lt;p&gt;Type in this into the address bar and hit enter:&lt;/p&gt;
&lt;pre&gt;about:config
&lt;/pre&gt;
&lt;p&gt;Firefox will warn us changing these configuration may be harmful. Okay, tell it we&amp;#8217;ll be careful by clicking the button.&lt;/p&gt;
&lt;p&gt;The type in this in to the filter field:&lt;/p&gt;
&lt;pre&gt;LastTab
&lt;/pre&gt;
&lt;p&gt;You will find this item with name:&lt;/p&gt;
&lt;pre&gt;browser.tabs.closeWindowWithLastTab
&lt;/pre&gt;
&lt;p&gt;That&amp;#8217;s exactly what we are looking for! Double click it to change it&amp;#8217;s value to &lt;em&gt;&amp;#8220;false&amp;#8221;&lt;/em&gt;.&lt;br /&gt;
Okay, that&amp;#8217;s it. Close this tab now and try closing all the tabs by using lots of &amp;#8220;CTRL + w&amp;#8221;. See what? Firefox is still there open even after we closing the last tab.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/software/186/firefox-add-ons-for-easier-and-happier-web-life/" rel="bookmark" title="Firefox Add-ons For Easier and Happier Web Life"&gt;Firefox Add-ons For Easier and Happier Web Life&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ezVvwxSyL08oIe3froiL0fL70os/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ezVvwxSyL08oIe3froiL0fL70os/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ezVvwxSyL08oIe3froiL0fL70os/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ezVvwxSyL08oIe3froiL0fL70os/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/eCryJqt96Cs" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/eCryJqt96Cs" height="1" width="1"/&gt;</description></item><item><title>mrcc – A Distributed C Compiler System on MapReduce</title><link>http://fclose.com/b/cloud-computing/699/mrcc-a-distributed-c-compiler-system-on-mapreduce/</link><category>Article</category><category>Cloud Computing</category><category>Project</category><pubDate>Fri, 15 Jan 2010 23:18:00 PST</pubDate><description>&lt;p&gt;The mrcc project&amp;#8217;s homepage is here:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://fclose.com/p/mrcc/"&gt;mrcc project&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Abstract&lt;/h3&gt;
&lt;p&gt;mrcc&lt;sup&gt;[3]&lt;/sup&gt; is an open source compilation system that uses MapReduce&lt;sup&gt;[1]&lt;/sup&gt; to distribute C code compilation across the servers of the cloud computing platform. mrcc is built to use Hadoop&lt;sup&gt;[2] &lt;/sup&gt;by default, but it is easy to port it to other could computing platforms, such as MRlite&lt;sup&gt;[8]&lt;/sup&gt;, by only changing the interface to the platform. The mrcc project homepage is &lt;a href="http://fclose.com/p/mrcc/"&gt;http://fclose.com/p/mrcc/&lt;br /&gt;
&lt;/a&gt; and the source code is public available.&lt;/p&gt;
&lt;h3&gt;Introduction&lt;/h3&gt;
&lt;p&gt;Compiling a big project such as Linux may cost much time. Usually, a big project consists of many small source code files and many of these source files can be compiled simultaneously. Parallel compilation on distributed servers is a way to accelerate the compilation.&lt;/p&gt;
&lt;p&gt;In this project, we build a compilation system on top of MapReduce for distributed compilation.&lt;/p&gt;
&lt;h3&gt;Design and architecture&lt;/h3&gt;
&lt;p&gt;The system of mrcc consists of one master server that controls the job and many slave servers that do the compilation work as shown in Figure 1. The master and the slaves can be one of the jobtracker or the tasktracker of the MapReduce system.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lh5.ggpht.com/_9GCSB4c6Upw/S1HXGh-9FoI/AAAAAAAAAyw/QfiwMoQnTU4/s400/mrcc_f1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Figure 1: The architecture of mrcc&lt;/p&gt;
&lt;p&gt;&lt;em&gt;mrcc&lt;/em&gt; runs as a front end of &lt;em&gt;cc&lt;/em&gt;. When compiling one project, the user only need to add &lt;em&gt;“-jN”&lt;/em&gt; parameter and &lt;em&gt;“CC=mrcc”&lt;/em&gt; at the end of the normal &lt;em&gt;“make”&lt;/em&gt; arguments and make the project on the master server. make will build a dependency tree of the project source files and then fork multiple &lt;em&gt;mrcc&lt;/em&gt; instances when several source files can be compiled in parallel.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;mrcc&lt;/em&gt; will first do preprocessing such as expanding the options and inserting the header files into the source file. Then &lt;em&gt;mrcc&lt;/em&gt; will determines whether the job can be done on MapReduce depending on the compiler&amp;#8217;s options. For ensuring the correctness of the compilation, mrcc only distributes the jobs to slaves when they are safe. The other jobs are done on the master server locally.&lt;/p&gt;
&lt;p&gt;When doing remote compilation, &lt;em&gt;mrcc&lt;/em&gt; first put the preprocessed source file into the network file system which is HDFS when using Hadoop, then it runs the job on MapReduce. Only the mapper which is called &lt;em&gt;mrcc-map&lt;/em&gt; is used in this system. &lt;em&gt;mrcc-map&lt;/em&gt; first gets the source file from the network file system, and then it calls the compiler locally on the slave. After the compilation finished, &lt;em&gt;mrcc-map&lt;/em&gt; puts the object file which is the result of the compilation back into the network file system. After &lt;em&gt;mrcc-map&lt;/em&gt; finished, &lt;em&gt;mrcc&lt;/em&gt; on the master server get the object file from network file system and puts it into the local file system on the master node. By now, the compilation of one source file is finished. &lt;em&gt;make&lt;/em&gt; can go on to compile the other files that depends on the completed one.&lt;/p&gt;
&lt;h3&gt;Implementation&lt;/h3&gt;
&lt;p&gt;The mrcc compilation system consists of two core parts: the main program &lt;em&gt;mrcc&lt;/em&gt; and the mapper for MapReduce called &lt;em&gt;mrcc-map&lt;/em&gt;. This project is open source and all the source code can be downloaded from [3].&lt;/p&gt;
&lt;p&gt;The overall system consists of seven parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The main program &lt;em&gt;mrcc&lt;/em&gt; (mrcc.c, compile.c, remote.c, safeguard.c, exec.c);&lt;/li&gt;
&lt;li&gt;The mapper &lt;em&gt;mrcc-map&lt;/em&gt; (mrcc-map.c);&lt;/li&gt;
&lt;li&gt;The compiler options processing part (args.c);&lt;/li&gt;
&lt;li&gt;The logging part (trace.c, traceenv.c);&lt;/li&gt;
&lt;li&gt;The network file system and MapReduce interface part (netfsutils.c, mrutils.c);&lt;/li&gt;
&lt;li&gt;The temporary files cleaning up part (tempfile.c, cleanup.c);&lt;/li&gt;
&lt;li&gt;Some other utilities for processing string, file path and name, and I/O operation (utils.c, files.c, io.c).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this report, we only introduce the two core parts of this system: &lt;em&gt;mrcc&lt;/em&gt; and &lt;em&gt;mrcc-map&lt;/em&gt;.&lt;/p&gt;
&lt;h4&gt;mrcc&lt;/h4&gt;
&lt;p&gt;The work flow is shown as Figure 2. There are five time lines in the process: mrcc is called, begins to compile locally or remotely while source file is being preprocessed, the preprocessing finishes, mrcc returns and mrcc finishes. During this process one or two new process is created by mrcc for source preprocessing or compiling. And some other works such as logging are done which we will not introduce. In the work flow graph, only the core functions are shown.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lh4.ggpht.com/_9GCSB4c6Upw/S1HXGpLkElI/AAAAAAAAAy0/iJLK35_NbL0/s400/mrcc_f2.png" alt="" /&gt;&lt;br /&gt;
Figure 2: Work flow of mrcc&lt;/p&gt;
&lt;p&gt;When mrcc is called, it first preprocesses the compiler options by functions such as &lt;em&gt;expand_preprocessor_options()&lt;/em&gt; which expands the arguments passed to preprocessor. Then&lt;em&gt; make_tmpnam()&lt;/em&gt; is called to creates a temporary file inside the temporary directory and registers it for later cleanup. In &lt;em&gt;make_tmpnam()&lt;/em&gt; a random number is generated for the temporary file. We use this random number as the id of the job and the object file name. The temporary output directory of the MapReduce job will be generated from this id to avoid name conflict ion. For example, if the temporary file name for storing a preprocessed source file is “/tmp/mrcc_36994a30.i”, the object file name and the output directory name are “/tmp/mrcc_36994a30.o” and “/tmp/mrcc_36994a30.odir” on the network file system.&lt;/p&gt;
&lt;p&gt;mrcc then scans the options to determine whether this job can be done on remote server by calling scan_args&lt;em&gt;()&lt;/em&gt;. While scanning the arguments, mrcc should also determine the default output file name according to the input source name. It is a little hard because the cc option rules are pretty complex. After that, mrcc calls the &lt;em&gt;cpp_maybe()&lt;/em&gt; function to fork another process to run the preprocessor. The preprocessor insert header files into the source file. So the compiler version on the master and slaves needn&amp;#8217;t to be identical since the remote server needn&amp;#8217;t to do preprocessing.&lt;/p&gt;
&lt;p&gt;Then &lt;em&gt;mrcc&lt;/em&gt; compiles the source remotely or locally depending on the compiler options. Local compilation is straight forward. mrcc wait for the preprocessor process to complete and fork another process to do the compilation.&lt;/p&gt;
&lt;p&gt;If the source file can be compiled on remote server, mrcc calls the function &lt;em&gt;compile_remote()&lt;/em&gt;. mrcc should first wait for preprocessor to complete. Then mrcc put the preprocessed file into the network file system. After that, mrcc calls &lt;em&gt;call_mapper()&lt;/em&gt; to generate relevant options and arguments from the id of the temporary file and the options and arguments of the compiler. The it runs the job on MapReduce. In this project, we use Hadoop Streaming to run the mrcc-map on the slaves. The options for mrcc-map are passed with the streaming job options.&lt;/p&gt;
&lt;p&gt;After mrcc-map successfully finishes the job, the object file now exists on the network file system. mrcc generates the output file name from the id of the temporary file and calls &lt;em&gt;get_result_fs()&lt;/em&gt; to retrieve the object file from the network file system.&lt;/p&gt;
&lt;p&gt;As soon as mrcc gets the object file, it returns so that &lt;em&gt;make&lt;/em&gt; can continue to compile other source files that may depend on the completed one. But there are still several temporary files and directories on the network file system and local disk that needed to be cleaned up. We use a tricky function &lt;em&gt;atexit()&lt;/em&gt; to do the cleaning up work after mrcc returns. By using &lt;em&gt;atexit()&lt;/em&gt; some of the clean up I/O operation are done while the next compilation is running to improve the overall performance.&lt;/p&gt;
&lt;h4&gt;mrcc-map&lt;/h4&gt;
&lt;p&gt;mrcc-map is put in local directories on all the slaves servers. We doing this to avoid distributing the mrcc-map when the job is called because the mrcc-map does not changed during compiling one project. The flow of mrcc-map is simpler than mrcc as shown in Figure 3.&lt;/p&gt;
&lt;p&gt;mrcc-map first parse it&amp;#8217;s arguments and finds out the file id generated by mrcc and the compilation options and arguments. Then mrcc-map gets the preprocessed file from net file system according to the id. After getting the preprocessed file, mrcc-map calls the local gcc/cc compiler and passes the compilation options and arguments to it. Then mrcc-map puts the object file to the netwrok file system and returns immediately. The clean up work is done after mrcc-map finishes to parallel I/O operation and the compilation in the same way that mrcc does.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lh5.ggpht.com/_9GCSB4c6Upw/S1HXG5NErUI/AAAAAAAAAy4/W78Q1TRPP44/s400/mrcc_f3.png" alt="" /&gt;&lt;br /&gt;
Figure 3: mrcc-map work flow&lt;/p&gt;
&lt;h3&gt;Evaluation&lt;/h3&gt;
&lt;p&gt;Please refer to this paper for the evaluation experiments and results:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Z. Ma&lt;/strong&gt; and L. Gu.&lt;em&gt;The Limitation of MapReduce: A Probing Case and a Lightweight Solution&lt;/em&gt;. In Proc. of the 1st Intl. Conf. on Cloud Computing, GRIDs, and Virtualization (CLOUD COMPUTING 2010). Nov. 21-26, 2010, Lisbon, Portugal. (&lt;a href="http://www.cse.ust.hk/~zma/publication/ma2010mrlite.pdf"&gt;PDF&lt;/a&gt; from one author&amp;#8217;s homepage)&lt;/p&gt;
&lt;p&gt;&lt;a name="installation"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Installation and configuration&lt;/h3&gt;
&lt;h4&gt;Install hadoop&lt;/h4&gt;
&lt;p&gt;Install Hadoop into a directory, such as /lhome/zma/hadoop and start Hadoop.&lt;/p&gt;
&lt;p&gt;Please refer to this tutorial for how to install and start Hadoop: &lt;a href="http://fclose.com/b/cloud-computing/290/hadoop-tutorial/"&gt;Hadoop Installation Tutorial&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Configuration&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;In netfsutils.c:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As an example, we assume hadoop command&amp;#8217;s full path is: /lhome/zma/hadoop/bin/hadoop&lt;/p&gt;
&lt;p&gt;Set the variables as follows (We use the full path to avoid bad PATH environment).&lt;/p&gt;
&lt;pre&gt;const char* put_file_fs_cmd = "/lhome/zma/hadoop/bin/hadoop dfs -put";
const char* get_file_fs_cmd = "/lhome/zma/hadoop/bin/hadoop dfs -get";
const char* del_file_fs_cmd = "/lhome/zma/hadoop/bin/hadoop dfs -rm";
const char* del_dir_fs_cmd = "/lhome/zma/hadoop/bin/hadoop dfs -rmr";&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;In mrutils.c&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Set the variables and We also use the full path.&lt;/p&gt;
&lt;pre&gt;const char* mr_exec_cmd_prefix = "/lhome/zma/hadoop/bin/hadoop jar /lhome/zma/hadoop/contrib/streaming/hadoop-0.20.2-streaming.jar -mapper ";
const char* mr_exec_cmd_mapper = "/home/zma/bin/mrcc-map ";
const char* mr_exec_cmd_parameter = "-numReduceTasks 0 -input null -output ";&lt;/pre&gt;
&lt;h4&gt;Compile and install:&lt;/h4&gt;
&lt;pre&gt;$ make
# make install&lt;/pre&gt;
&lt;h3&gt;How to use it&lt;/h3&gt;
&lt;h4&gt;Compile the project using mrcc on MapReduce&lt;/h4&gt;
&lt;p&gt;As building a project:&lt;/p&gt;
&lt;pre&gt;$ make -j16 CC=mrcc&lt;/pre&gt;
&lt;p&gt;-jN: N is the maximum parallel compilation number. N may be set to the number of CPUs in the cluster.&lt;/p&gt;
&lt;h4&gt;Enable detailed logging if needed&lt;/h4&gt;
&lt;p&gt;On master node in the same shell where mrcc runs:&lt;/p&gt;
&lt;pre&gt;$ . docs/mrcc.export&lt;/pre&gt;
&lt;p&gt;Or set environment variables:&lt;/p&gt;
&lt;pre&gt;MRCC_LOG=./mrcc.log
MRCC_VERBOSE=1
export MRCC_LOG
export MRCC_VERBOSE&lt;/pre&gt;
&lt;h3&gt;Related work&lt;/h3&gt;
&lt;p&gt;GNU make&lt;sup&gt;[7]&lt;/sup&gt; can execute many commands simultaneously by using “-j” option. But make can only execute many commands on local machine. mrcc makes use of this feature of make and distributed these commands (compilation) across servers on MapReduce.&lt;/p&gt;
&lt;p&gt;distcc&lt;sup&gt;[6]&lt;/sup&gt; is a program to distribute compilation of C/C++ Objective C/C++ code between several machines on a network. distcc must use a daemon on every slaves and the master must controls all the jobs details such as load balance and failure tolerance. distcc is easy to set up and fast in a cluster with a small amount of machines, but it will be hard to manage this system when distcc is running on a computing platform with thousands of machines.&lt;/p&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;[1] Dean, J. and Ghemawat, S. 2004. MapReduce: simplified data processing on large clusters. In Proceedings of the 6th Conference on Symposium on Operating Systems Design &amp;amp; Implementation &amp;#8211; Volume 6 (San Francisco, CA, December 06 &amp;#8211; 08, 2004).&lt;br /&gt;
[2] Hadoop project. &lt;a rel="nofollow" href="http://hadoop.apache.org/"&gt;http://hadoop.apache.org/&lt;br /&gt;
&lt;/a&gt;[3] mrcc project. &lt;a href="http://fclose.com/p/mrcc/"&gt;http://fclose.com/p/mrcc/&lt;/a&gt;&lt;br /&gt;
[4] Hadoop 0.20.1. &lt;a rel="nofollow" href="http://hadoop.apache.org/common/releases.html#Download"&gt;http://hadoop.apache.org/common/releases.html#Download&lt;/a&gt;&lt;br /&gt;
[5] Linux. &lt;a rel="nofollow" href="http://www.kernel.org"&gt;http://www.kernel.org&lt;/a&gt;&lt;br /&gt;
[6] distcc project. &lt;a rel="nofollow" href="http://code.google.com/p/distcc/"&gt;http://code.google.com/p/distcc/&lt;/a&gt;&lt;br /&gt;
[7] GNU make. &lt;a rel="nofollow" href="http://www.gnu.org/software/make/"&gt;http://www.gnu.org/software/make/&lt;br /&gt;
&lt;/a&gt;[8] Zhiqiang Ma and Lin Gu.&lt;em&gt;The Limitation of MapReduce: A Probing Case and a Lightweight Solution&lt;/em&gt;. In Proc. of the 1st Intl. Conf. on Cloud Computing, GRIDs, and Virtualization (CLOUD COMPUTING 2010). Nov. 21-26, 2010, Lisbon, Portugal.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qLXP2JprbPFmHpbjR-TMFKQwk88/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qLXP2JprbPFmHpbjR-TMFKQwk88/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qLXP2JprbPFmHpbjR-TMFKQwk88/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qLXP2JprbPFmHpbjR-TMFKQwk88/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/CloudComputing/~4/BwE1PDiAyNg" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/BwE1PDiAyNg" height="1" width="1"/&gt;</description></item><item><title>Vim + cgdb</title><link>http://fclose.com/b/programming/324/vim-cgdb/</link><category>Linux</category><category>Programming</category><category>cgdb</category><category>Client config</category><category>gdb</category><category>Tip</category><category>vim</category><pubDate>Mon, 14 Dec 2009 20:33:00 PST</pubDate><description>&lt;p&gt;I begin to use vim for programming. I like the tools that focus on one function. I used to use emacs. But I think I like vim more.&lt;/p&gt;
&lt;p&gt;For debugging, I use gdb. But I use the front end cgdb. I can see the codes with the cursor when debugging. I can use F8 for next instead of n + enter. And F10 for step instead of s + enter. i is the key for enter gdb command mode. And ESC can change the user to command mode. But ESC is too far away from my finger, so I prefer &amp;#8220;Ctrl + [&amp;#8221; to ESC ;)&lt;/p&gt;
&lt;p&gt;My configuration files can be found here if they are useful for someone:&lt;br /&gt;
&lt;a href="http://github.com/zma/config_files"&gt;http://github.com/zma/config_files&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the config file of cgdb:&lt;br /&gt;
&amp;#8220;set winsplit=top_big: is for letting the code window bigger than the gdb command windows, which is convenient for debugging.&lt;/p&gt;
&lt;p&gt;A list of useful cgdb shortcuts:&lt;/p&gt;
&lt;pre&gt;`F5'
     Send a run command to GDB.
`F6'
     Send a continue command to GDB.
`F7'
     Send a finish command to GDB.
`F8'
     Send a next command to GDB.
`F10'
     Send a step command to GDB.
`spacebar'
     Sets a breakpoint at the current line number.
`t'
     Sets a temporary breakpoint at the current line number.
`i'
     Puts the user into "GDB mode".
`I'
     Puts the user into "TTY mode".
&lt;/pre&gt;
&lt;p&gt;These short cuts is available in cgdb 0.6.5.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Updated on Apr. 2 2010. Short cuts are added.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/240/generate-a-mixed-source-and-assembly-listing-using-gcc/" rel="bookmark" title="Generating a Mixed Source and Assembly List Using GCC"&gt;Generating a Mixed Source and Assembly List Using GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/programming/100/vc2005常用快捷键/" rel="bookmark" title="VC2005常用快捷键"&gt;VC2005常用快捷键&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/programming/~4/q71Zhx_N07k" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/q71Zhx_N07k" height="1" width="1"/&gt;</description></item><item><title>Default Descending Sort Order and Inline Quote When Reply in Thunderbird</title><link>http://fclose.com/b/software/310/default-descending-sort-order-and-inline-quote-when-reply-in-thunderbird/</link><category>Software</category><category>thunderbird</category><category>Tip</category><pubDate>Thu, 03 Dec 2009 08:53:00 PST</pubDate><description>&lt;p&gt;I like to descending sort order when read mails. And I like inline quote when reply.&lt;/p&gt;
&lt;p&gt;This is the configuration:&lt;/p&gt;
&lt;pre&gt;mail.reply_quote_inline = true
mailnews.default_sort_order = 2
&lt;/pre&gt;
&lt;p&gt;Here: mailnews.default_sort_order: ascending 1, descending 2&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YakSLMF4tdBOWwVHj1YRePIIWPA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YakSLMF4tdBOWwVHj1YRePIIWPA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YakSLMF4tdBOWwVHj1YRePIIWPA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YakSLMF4tdBOWwVHj1YRePIIWPA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/bLpyJiTCyI4" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/bLpyJiTCyI4" height="1" width="1"/&gt;</description></item><item><title>Hadoop Installation Tutorial</title><link>http://fclose.com/b/cloud-computing/290/hadoop-tutorial/</link><category>Cloud Computing</category><category>Cloud computing</category><category>Hadoop</category><category>java</category><category>MapReduce</category><category>Programming</category><category>Tutorial</category><pubDate>Mon, 23 Nov 2009 17:48:00 PST</pubDate><description>&lt;p&gt;Hadoop mainly consists of two parts: Hadoop MapReduce and HDFS. Hadoop MapReduce is a programming model and software framework for writing applications, which is an open-source variant of MapReduce that is initially designed and implemented by Google for processing and generating large data sets [1]. HDFS is Hadoop&amp;#8217;s underlying data persistency layer, which is loosely modelled after Google file system GFS [2]. Hadoop has seen active development activities and increasing adoption. Many cloud computing services, such as Amazon EC2, provide MapReduce functions, and the research community uses MapReduce and Hadoop to solve data-intensive problems in bioinformatics, computational finance, chemistry, and environmental science [3]. Although MapReduce has its limitations [3], it is an important framework to process large data sets.&lt;/p&gt;
&lt;p&gt;How to set up a Hadoop environment in a cluster is introduced in this tutorial. In this tutorial, we set up a Hadoop cluster, one node runs as the NameNode, one node runs as the JobTracker and many nodes runs as the TaskTracker (slaves).&lt;/p&gt;
&lt;p&gt;First we assume we have created a Linux user &amp;#8220;hadoop&amp;#8221; on each nodes that we use and the &amp;#8220;hadoop&amp;#8221; user&amp;#8217;s home directory is &amp;#8220;/home/hadoop/&amp;#8221;.&lt;/p&gt;
&lt;h3&gt;Enable &amp;#8220;hadoop&amp;#8221; user to password-less SSH login to slaves&lt;/h3&gt;
&lt;p&gt;Just for our convenience, make sure the &amp;#8220;hadoop&amp;#8221; user from NameNode and JobTracker can ssh to the slaves without password so that we need not to input the password every time.&lt;/p&gt;
&lt;p&gt;Details about password-less SSH login can be found &lt;a href="http://fclose.com/b/linux/1500/enabling-password-less-ssh-login/"&gt;Enabling Password-less ssh Login&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Install softwared needed by Hadoop&lt;/h3&gt;
&lt;h4&gt;Java JDK:&lt;/h4&gt;
&lt;p&gt;Java JDK can be downloaded form: http://java.sun.com/. Then we can install (actually copy the jdk directory) Java JDK on all nodes of the Hadoop cluster.&lt;/p&gt;
&lt;p&gt;As an example in this tutorial, the JDK is installed into&lt;/p&gt;
&lt;pre&gt;/home/hadoop/jdk1.6.0_24&lt;/pre&gt;
&lt;p&gt;I provide a simple bash script to duplicate the JDK directory to all nodes:&lt;/p&gt;
&lt;pre&gt;$ for i in `cat nodes`; do scp -rq /home/hadoop/jdk1.6.0_24 hadoop@$i:/home/hadoop/; done;&lt;/pre&gt;
&lt;p&gt;&amp;#8216;nodes&amp;#8217; is a file that contains all the nodes IPs or host names, one in one line.&lt;/p&gt;
&lt;h4&gt;Hadoop&lt;/h4&gt;
&lt;p&gt;Hadoop softwar can be downloaded from &lt;a href="http://fclose.com/t/go/hadoop/" rel="nofollow"&gt;here&lt;/a&gt;. In this tutorial, we use Hadoop 0.20.203.0.&lt;/p&gt;
&lt;p&gt;Then we can install Hadoop on all nodes of the Hadoop cluster.&lt;/p&gt;
&lt;p&gt;We can directly unpack it to a directory. In this example, we store it in&lt;/p&gt;
&lt;pre&gt;/home/hadoop/hadoop/&lt;/pre&gt;
&lt;p&gt;which is a directory under the hadoop Linux user&amp;#8217;s home directory.&lt;/p&gt;
&lt;p&gt;The hadoop directory can also be duplicated to all nodes using the script above.&lt;/p&gt;
&lt;h3&gt;Configure environment variables of &amp;#8220;hadoop&amp;#8221; user&lt;/h3&gt;
&lt;p&gt;We assume the &amp;#8220;hadoop&amp;#8221; user use bash as its shell.&lt;/p&gt;
&lt;p&gt;Add these two lines at the bottom of ~/.bashrc on all nodes:&lt;/p&gt;
&lt;pre&gt;export HADOOP_COMMON_HOME="/home/hadoop/hadoop/"
export PATH=$HADOOP_COMMON_HOME/bin/:$PATH&lt;/pre&gt;
&lt;p&gt;The HADOOP_COMMON_HOME environment variable is used by Hadoop&amp;#8217;s utility scripts, and it must be set, otherwise the scripts may report an error message &amp;#8220;Hadoop common not found&amp;#8221;.&lt;/p&gt;
&lt;p&gt;The second line adds hadoop&amp;#8217;s bin directory to the PATH sothat we can directly run hadoop&amp;#8217;s commands without specifying the full path to it.&lt;/p&gt;
&lt;h3&gt;Configure Hadoop&lt;/h3&gt;
&lt;h4&gt;conf/hadoop-env.h&lt;/h4&gt;
&lt;p&gt;Add or change these lines to specify the JAVA_HOME and directory to store the logs:&lt;/p&gt;
&lt;pre&gt;export JAVA_HOME=/home/hadoop/jdk1.6.0_24
export HADOOP_LOG_DIR=/home/hadoop/data/logs&lt;/pre&gt;
&lt;h4&gt;conf/core-site.xml&lt;/h4&gt;
&lt;p&gt;Here the NameNode runs on 10.1.1.30.&lt;/p&gt;
&lt;pre&gt;&amp;lt;configuration&amp;gt;
&amp;lt;property&amp;gt;
&amp;lt;name&amp;gt;fs.default.name&amp;lt;/name&amp;gt;
&amp;lt;value&amp;gt;hdfs://10.1.1.30:9000&amp;lt;/value&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;
&lt;h4&gt;conf/hdfs-site.xml&lt;/h4&gt;
&lt;pre&gt;&amp;lt;configuration&amp;gt;

&amp;lt;property&amp;gt;
&amp;lt;name&amp;gt;dfs.replication&amp;lt;/name&amp;gt;
&amp;lt;value&amp;gt;3&amp;lt;/value&amp;gt;
&amp;lt;/property&amp;gt;

&amp;lt;property&amp;gt;
&amp;lt;name&amp;gt;dfs.name.dir&amp;lt;/name&amp;gt;
&amp;lt;value&amp;gt;/lhome/hadoop/data/dfs/name/&amp;lt;/value&amp;gt;
&amp;lt;/property&amp;gt;

&amp;lt;property&amp;gt;
&amp;lt;name&amp;gt;dfs.data.dir&amp;lt;/name&amp;gt;
&amp;lt;value&amp;gt;/lhome/hadoop/data/dfs/data/&amp;lt;/value&amp;gt;
&amp;lt;/property&amp;gt;

&amp;lt;/configuration&amp;gt;&lt;/pre&gt;
&lt;p&gt;dfs.replication is the number of replicas of each block. dfs.name.dir is the path on the local filesystem where the NameNode stores the namespace and transactions logs persistently. dfs.data.dir is comma-separated list of paths on the local filesystem of a DataNode where it stores its blocks.&lt;/p&gt;
&lt;h4&gt;conf/mapred-site.xml&lt;/h4&gt;
&lt;p&gt;Here the JobTracker runs on 10.1.1.2.&lt;/p&gt;
&lt;pre&gt;&amp;lt;configuration&amp;gt;

&amp;lt;property&amp;gt;
&amp;lt;name&amp;gt;mapred.job.tracker&amp;lt;/name&amp;gt;
&amp;lt;value&amp;gt;10.1.1.2:9001&amp;lt;/value&amp;gt;
&amp;lt;/property&amp;gt;

&amp;lt;property&amp;gt;
&amp;lt;name&amp;gt;mapred.system.dir&amp;lt;/name&amp;gt;
&amp;lt;value&amp;gt;/hadoop/data/mapred/system/&amp;lt;/value&amp;gt;
&amp;lt;/property&amp;gt;

&amp;lt;property&amp;gt;
&amp;lt;name&amp;gt;mapred.local.dir&amp;lt;/name&amp;gt;
&amp;lt;value&amp;gt;/lhome/hadoop/data/mapred/local/&amp;lt;/value&amp;gt;
&amp;lt;/property&amp;gt;

&amp;lt;/configuration&amp;gt;&lt;/pre&gt;
&lt;p&gt;mapreduce.jobtracker.address is host or IP and port of JobTracker. mapreduce.jobtracker.system.dir is the path on the HDFS where where the Map/Reduce framework stores system files. mapreduce.cluster.local.dir is comma-separated list of paths on the local filesystem where temporary MapReduce data is written.&lt;/p&gt;
&lt;h4&gt;conf/slaves&lt;/h4&gt;
&lt;p&gt;Delete &lt;em&gt;localhost&lt;/em&gt; and add all the names of the TaskTrackers, each in on line. For example:&lt;/p&gt;
&lt;pre&gt;jobtrackname1
jobtrackname2
jobtrackname3
jobtrackname4
jobtrackname5
jobtrackname6&lt;/pre&gt;
&lt;h3&gt;Duplicate Hadoop configuration files to all nodes&lt;/h3&gt;
&lt;p&gt;We may duplicate the configuration files under conf diretory to all nodes. The script mentioned above can be used.&lt;/p&gt;
&lt;p&gt;By now, we have finished copying Hadoop softwares and configuring the Hadoop. Now let&amp;#8217;s have some fun with Hadoop.&lt;/p&gt;
&lt;h3&gt;Start Hadoop&lt;/h3&gt;
&lt;p&gt;We need to start both the HDFS and MapReduce to start Hadoop.&lt;/p&gt;
&lt;h4&gt;Format a new HDFS&lt;/h4&gt;
&lt;p&gt;On NameNode (10.1.1.30):&lt;/p&gt;
&lt;pre&gt;$ hadoop namenode -format&lt;/pre&gt;
&lt;p&gt;Remember to delete HDFS&amp;#8217;s local files on all nodes before re-formating it:&lt;/p&gt;
&lt;pre&gt;$ rm /home/hadoop/data /tmp/hadoop-hadoop -rf&lt;/pre&gt;
&lt;h4&gt;Start HDFS&lt;/h4&gt;
&lt;p&gt;On NameNode (10.1.1.30):&lt;/p&gt;
&lt;pre&gt;$ start-dfs.sh&lt;/pre&gt;
&lt;h4&gt;Check the HDFS status:&lt;/h4&gt;
&lt;p&gt;On NameNode (10.1.1.30):&lt;/p&gt;
&lt;pre&gt;$ hadoop dfsadmin -report&lt;/pre&gt;
&lt;p&gt;There may be less nodes listed in the report than we actually have. We can try it again.&lt;/p&gt;
&lt;h4&gt;Start mapred:&lt;/h4&gt;
&lt;p&gt;On JobTracker (10.1.1.2):&lt;/p&gt;
&lt;pre&gt;$ start-mapred.sh&lt;/pre&gt;
&lt;h4&gt;Check job status:&lt;/h4&gt;
&lt;pre&gt;$ hadoop job -list&lt;/pre&gt;
&lt;h3&gt;Run Hadoop jobs&lt;/h3&gt;
&lt;h4&gt;A simple example&lt;/h4&gt;
&lt;p&gt;We run a simple example built in Hadoop&amp;#8217;s distribution. For easy-to-run and more larger tests, please consider the &lt;a href="http://fclose.com/b/cloud-computing/3094/simple-sort-benchmark-on-hadoop/"&gt;Simple Sort Benchmark on Hadoop&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Copy the input files into the distributed filesystem:&lt;/p&gt;
&lt;pre&gt;$ hadoop fs -put /home/hadoop/hadoop/conf input&lt;/pre&gt;
&lt;p&gt;Run some of the examples:&lt;/p&gt;
&lt;pre&gt;$ hadoop jar /home/hadoop/hadoop/hadoop-examples-*.jar grep input output 'dfs[a-z.]+'&lt;/pre&gt;
&lt;p&gt;Examine the output files:&lt;/p&gt;
&lt;p&gt;Copy the output files from the distributed filesystem to the local&lt;br /&gt;
filesytem and examine them:&lt;/p&gt;
&lt;pre&gt;$ hadoop fs -get output output
$ cat output/*&lt;/pre&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;View the output files on the distributed filesystem:&lt;/p&gt;
&lt;pre&gt;$ hadoop fs -cat output/*&lt;/pre&gt;
&lt;h3&gt;Shut down Hadoop cluster&lt;/h3&gt;
&lt;p&gt;We can stop Hadoop when we no long use it.&lt;/p&gt;
&lt;p&gt;Stop HDFS on NameNode (10.1.1.30):&lt;/p&gt;
&lt;pre&gt;$ stop-dfs.sh&lt;/pre&gt;
&lt;p&gt;Stop JobTracker and TaskTrackers on JobTracker (10.1.1.2):&lt;/p&gt;
&lt;pre&gt;$ stop-mapred.sh&lt;/pre&gt;
&lt;h3&gt;Some possible problems&lt;/h3&gt;
&lt;h4&gt;Firewall blocks connections&lt;/h4&gt;
&lt;p&gt;Configure &lt;em&gt;iptables&lt;/em&gt;: We can configure &lt;em&gt;iptables&lt;/em&gt; to allow all connections, if these nodes are in a secure local area network which is most of the situation, by this command on all nodes:&lt;/p&gt;
&lt;pre&gt;# iptables -F
# service iptables save&lt;/pre&gt;
&lt;p&gt;For a list of the default ports used by Hadoop, please refer to: &lt;a href="http://fclose.com/b/cloud-computing/3101/hadoop-default-ports/"&gt;Hadoop Default Ports&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://fclose.com/b/3022/pitfalls-and-lessons-on-configuing-and-tuning-hadoop/"&gt;Pitfalls and Lessons&lt;/a&gt;&lt;/h4&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;[1] J. Dean and S. Ghemawat, &amp;#8220;MapReduce: simplified data processing on large clusters.&amp;#8221; in the 6th Conference on Symposium on Operating Systems Design &amp;amp; Implementation, vol. 6, San Francisco, CA, 2004, pp. 137–150.&lt;br /&gt;
[2] S. Ghemawat, H. Gobioff, and S.-T. Leung, &amp;#8220;The Google filesystem,&amp;#8221; in Proc. of the 9th ACM Symposium on Operating Systems Principles (SOSP’03), 2003, pp. 29–43.&lt;br /&gt;
[3] Z. Ma and L. Gu. The limitation of MapReduce: A probing case and a lightweight solution. In CLOUD COMPUTING 2010: Proc. of the 1st Intl. Conf. on Cloud Computing, GRIDs, and Virtualization, pages 68–73, 2010.&lt;/p&gt;
&lt;h3&gt;Other Hadoop tutorials&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://hadoop.apache.org/common/docs/current/cluster_setup.html" rel="nofollow"&gt;Cluster Setup&lt;/a&gt; from Apache.&lt;br /&gt;
&lt;a href="http://developer.yahoo.com/hadoop/tutorial/module7.html" rel="nofollow"&gt;Managing a Hadoop Cluster&lt;/a&gt; from Yahoo.&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3094/simple-sort-benchmark-on-hadoop/" rel="bookmark" title="Simple Sort Benchmark on Hadoop"&gt;Simple Sort Benchmark on Hadoop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3008/setting-up-standalone-local-hadoop/" rel="bookmark" title="Setting Up Standalone (Local) Hadoop"&gt;Setting Up Standalone (Local) Hadoop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/cloud-computing/3101/hadoop-default-ports/" rel="bookmark" title="Hadoop Default Ports"&gt;Hadoop Default Ports&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/o5NhRuZD8g60nqn4zl-3VlGOAJE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o5NhRuZD8g60nqn4zl-3VlGOAJE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/o5NhRuZD8g60nqn4zl-3VlGOAJE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o5NhRuZD8g60nqn4zl-3VlGOAJE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/CloudComputing/~4/xy2fSVvygnM" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/xy2fSVvygnM" height="1" width="1"/&gt;</description></item><item><title>Set Up SSH Server on Windows XP</title><link>http://fclose.com/b/software/191/set-up-ssh-server-on-windows-xp/</link><category>Software</category><category>Linux</category><category>sshd</category><category>Tutorial</category><pubDate>Fri, 18 Sep 2009 05:18:00 PDT</pubDate><description>&lt;p&gt;It is useful sometimes to set up a sshd server on a Windows. One example is using remote forwards tunnel to pass through the firewall.&lt;/p&gt;
&lt;p&gt;My platform is Windows XP SP3.&lt;/p&gt;
&lt;p&gt;The sshd server is sshwindows. It can be dowloaded from here: http://sshwindows.sourceforge.net/. The version I use here is 3.8p1-1 20040709.&lt;/p&gt;
&lt;p&gt;It is really easy:&lt;/p&gt;
&lt;p&gt;1) Run sshwindows installer and click OK and OK&amp;#8230;&lt;/p&gt;
&lt;p&gt;2) Run cmd.exe:&lt;/p&gt;
&lt;p&gt;3) cd C:Program FilesOpenSSHbin (it depends on the sshd&amp;#8217;s install location)&lt;/p&gt;
&lt;p&gt;4) mkgroup -l &amp;gt;&amp;gt; ..etcgroup&lt;/p&gt;
&lt;p&gt;5) mkpasswd -l &amp;gt;&amp;gt; ..etcpasswd&lt;br /&gt;
Now all local users are added to the sshd users list. More details can be found in the readme.txt file.&lt;/p&gt;
&lt;p&gt;6) Configuration the firewall and let it allow the sshd service listening on port 22&lt;/p&gt;
&lt;p&gt;7) Start the sshd service: &amp;#8220;net start &amp;#8220;OpenSSH Server&amp;#8221;"&lt;/p&gt;
&lt;p&gt;Now it is OK ;) Try to ssh to the windows and have fun.&lt;/p&gt;
&lt;p&gt;There are some problems such as the default home is &amp;#8220;/home/USERNAME&amp;#8221;, but you just get a warning and you can change to the directory by yourself. At least, it works.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Updated on 7 Mar. 2010.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fclose.com/b/software/106/windows-server-2008-开启休眠功能/" rel="bookmark" title="Windows Server 2008 开启休眠功能"&gt;Windows Server 2008 开启休眠功能&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FM6MIqLVd249Loi5F4YPNoD8mgM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FM6MIqLVd249Loi5F4YPNoD8mgM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FM6MIqLVd249Loi5F4YPNoD8mgM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FM6MIqLVd249Loi5F4YPNoD8mgM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/beXUNFd5U7w" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/beXUNFd5U7w" height="1" width="1"/&gt;</description></item><item><title>Firefox Add-ons For Easier and Happier Web Life</title><link>http://fclose.com/b/software/186/firefox-add-ons-for-easier-and-happier-web-life/</link><category>Software</category><category>firefox</category><pubDate>Thu, 03 Sep 2009 19:59:00 PDT</pubDate><description>&lt;p&gt;Firefox is highly configurable and there are lots add-ons for it. I compile a list of the add-ons that make my life easier and happier.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/software/firegestures/" rel="nofollow"&gt;&lt;strong&gt;FireGestures&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;A customizable mouse gestures extension which enables to execute various commands and user scripts with five types of gestures.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/software/adblockplus/" rel="nofollow"&gt;&lt;strong&gt;Adbock Plus&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;Annoyed by adverts? Troubled by tracking? Bothered by banners? Install Adblock Plus now to regain control of the internet and change the way that you view the web.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/software/flashblock/" rel="nofollow"&gt;&lt;strong&gt;Flashblock&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;#8220;Never be annoyed by a Flash animation again! Blocks Flash so it won&amp;#8217;t get in your way, but if you want to see it, just click on&amp;#8230;&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/software/foxyproxy/" rel="nofollow"&gt;&lt;strong&gt;FoxyProxy&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;FoxyProxy is an advanced proxy management tool that completely replaces Firefox&amp;#8217;s limited proxying capabilities. It offers more features than SwitchProxy, ProxyButton, QuickProxy, xyzproxy, ProxyTex, TorButton, etc.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/software/firebug/" rel="nofollow"&gt;&lt;strong&gt;Firebug&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page&amp;#8230;&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fclose.com/t/go/software/screenshoter/" rel="nofollow"&gt;&lt;strong&gt;Screenshoter&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;Pretty simple and sexy screen capturing tool&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Obsolete ones&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I list some add-ons that I ever used but not using now.&lt;/p&gt;
&lt;p&gt;&lt;del&gt;&lt;strong&gt;Google Toolbar&lt;/strong&gt;: I use it to check the site&amp;#8217;s PageRank (PR) and bookmark my favourite site to Google bookmark.&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;&lt;del datetime="2011-10-15T19:11:18+00:00"&gt;&lt;strong&gt;Hide Menubar&lt;/strong&gt;: Hide the menubar which are not used most of the time.&lt;br /&gt;
or Compact Menu 2: Duplicates the menubar on the toolbar&lt;/del&gt;&lt;br /&gt;
The newer version of Firefox can do this natively.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eSSNiL7Q-2592AxLpK36gCQfzzI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eSSNiL7Q-2592AxLpK36gCQfzzI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eSSNiL7Q-2592AxLpK36gCQfzzI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eSSNiL7Q-2592AxLpK36gCQfzzI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/9jqnidsU3oU" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/9jqnidsU3oU" height="1" width="1"/&gt;</description></item><item><title>Thunderbird中使用Google Calendar及它的SMS功能</title><link>http://fclose.com/b/software/183/thunderbird中使用google-calendar及它的sms功能/</link><category>Software</category><category>thunderbird</category><category>Tip</category><pubDate>Tue, 25 Aug 2009 07:44:00 PDT</pubDate><description>&lt;p&gt;Google Calendar可以自动发短信提醒,这是一个非常棒的功能.为何不把它集成到Thunderbird中来呢.&lt;/p&gt;
&lt;p&gt;首先安装Thunderbird的插件:&lt;br /&gt;
Lightning 0.9&lt;/p&gt;
&lt;p&gt;然后下载:&lt;br /&gt;
Provider for Google Calendar 0.5.2&lt;/p&gt;
&lt;p&gt;provider默认加入的提醒是pop-up.其实要把它改成sms非常简单:&lt;/p&gt;
&lt;p&gt;将下载下来的.xpi文件unzip, 它就是一个zip包:)&lt;/p&gt;
&lt;p&gt;然后修改其中的calGoogleUtils.js JavaScript文件, 将其中的两个pop-up修改为sms.&lt;/p&gt;
&lt;p&gt;然后打包,再到Thunderbird下安装即可.&lt;/p&gt;
&lt;p&gt;这样就把Google Calendar和Thunderbird集成到一直来啦.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dyoVl-z_5jdv9Pa-1dZsgjFTk6g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dyoVl-z_5jdv9Pa-1dZsgjFTk6g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dyoVl-z_5jdv9Pa-1dZsgjFTk6g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dyoVl-z_5jdv9Pa-1dZsgjFTk6g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/fclose/Software/~4/vnnAab5qXjc" height="1" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/fclosefeed/~4/knwk8aURDTQ" height="1" width="1"/&gt;</description></item></channel></rss>

