<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Eddie's blog won't bomb you with updates</title>
	<atom:link href="http://edipage.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://edipage.wordpress.com</link>
	<description>Carpe Diem</description>
	<lastBuildDate>Tue, 20 Sep 2011 20:34:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='edipage.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Eddie's blog won't bomb you with updates</title>
		<link>http://edipage.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://edipage.wordpress.com/osd.xml" title="Eddie&#039;s blog won&#039;t bomb you with updates" />
	<atom:link rel='hub' href='http://edipage.wordpress.com/?pushpress=hub'/>
		<item>
		<title>4 years on, still love every bit of it</title>
		<link>http://edipage.wordpress.com/2010/07/08/4-years-on-still-love-every-bit-of-it/</link>
		<comments>http://edipage.wordpress.com/2010/07/08/4-years-on-still-love-every-bit-of-it/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 23:10:20 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Softwares]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/?p=78</guid>
		<description><![CDATA[To quote abigor on slashdot In all fairness, no platform is perfect, let&#8217;s face it. You seem to be commenting on OS X (hard drives, 3d performance, etc.), so let&#8217;s see: If you want non-working cut and paste (the general case is it only works for text), no 3d performance at all, barely any wireless [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=78&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>To quote abigor on slashdot</p>
<blockquote><p>In all fairness, no platform is perfect, let&#8217;s face it. You seem to be commenting on OS X (hard drives, 3d performance, etc.), so let&#8217;s see:</p>
<p>If you want non-working cut and paste (the general case is it only works for text), no 3d performance at all, barely any wireless support, no commercial software support including de facto standards like MS Office and Photoshop, no games, amateurish and inconsistent guis, etc. ad infinitum, then run desktop Linux.</p>
<p>If you don&#8217;t mind a pretty substandard operating system in return for all the software you could ever want and you don&#8217;t need Unix, run Windows.</p>
<p>If you want a usable, well thought-out desktop Unix with lots of commercial software (though much less than Windows), good open source and open standards support, and you don&#8217;t care about games, run OS X.</p>
<p>As cliche as it sounds, it&#8217;s all about what works best for you.</p></blockquote>
<p>It has been almost four years since I first moved my personal computing to Mac OS X &#8211; during the tiger years &#8211; and I have enjoyed every bit of the experience. After two more major OS releases and several flawless &#8220;migration assistance&#8221; experiences, I find I have had a reliable platform I could accumulate personal data over years. Long gone the old time of messing around custom Linux kernels, crafting scripts to migrate data from mbox to maildir and building custom .deb to enable 3D effect in my favorite window managers. Though I&#8217;ve had some fun and killed some lonely moments, this constant dissatisfaction with the system and nonstop changes to it not only are distractive but also put my valuable data in refugee status all the time. At the end of the day, computer is just a tool. Enjoy many years of photos well organized in iPhoto and ready to be used in whatever document you are creating; have a short coffee break after unpacking your shinny new iMac 27 before the system is ready to be used with all your settings and data automatically migrated in an hour; or fire up Terminal.app, MacVim and Espressor and get some work done.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=78&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2010/07/08/4-years-on-still-love-every-bit-of-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
		<item>
		<title>I am not with Adobe</title>
		<link>http://edipage.wordpress.com/2010/04/10/i-am-not-with-adobe/</link>
		<comments>http://edipage.wordpress.com/2010/04/10/i-am-not-with-adobe/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 02:48:01 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[Softwares]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/?p=71</guid>
		<description><![CDATA[It seems everybody has weighed it in with this controversy about the new Section 3.3.1 of iPhone SDK agreement. This change effectively bans the use of “applications that link to Documented APIs through an intermediary translation or compatibility layer”, which nullifies Adobe’s upcoming Flash-to-iPhone conversion tool.First, Adobe was angry, really angry. In its official Flash [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=71&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It seems everybody has weighed it in with this controversy about the new Section 3.3.1 of iPhone SDK agreement. This change effectively bans the use of “applications that link to Documented APIs through an intermediary translation or compatibility layer”, which nullifies Adobe’s upcoming Flash-to-iPhone conversion tool.First, Adobe was angry, really angry. In its official Flash blog, concerned that their sentiment would not be loud and clear enough, it said out loud, &#8220;<a href="http://theflashblog.com/?p=1888">Go screw yourself Apple</a>&#8220;. It is not a surprise to see Apple bans Flash on iPhone OS, and everybody hates Flash &#8211; at least everybody on non-Windows platform does &#8211; and would typically show no sympathy when Adobe cries about it. And, gee, not a single one has built any iPhone application with this yet-to-release feature to convert Flash content to an iPhone app, and who but Adobe cares about that this change of SDK agreement would ban this feature. However, it was tacky that Adobe by pointing out this would affect not only Adobe but also Unity3D &#8211; it might not be true, since Unity3D works as a precompiler &#8211; was able to unite a big force of outraged developers. Over 2,000 has joined the facebook group named &#8220;I&#8217;m with Adobe&#8221; in support of Adobe. Considering this group also said Apple&#8217;s next move was &#8220;banning bands from iTunes who used PCs to mix their albums&#8221;, I would not believe anything they would say. Unfortunately, Adobe was surely committed enough to steer online discussion and to generate a huge wave of sentiment against Apple and App Store across the blogsphere. Protesters with the revenge-kind or adandonism tones are everywhere, and it is extremely difficult to find anyone with any insight. But I believe this is not like it appears from seeing the blogs and comments.</p>
<p>As always, slashdot community has <a href="http://apple.slashdot.org/comments.pl?sid=1613816">better discussions</a> worth reading. One slashdotter pointed this interesting point about history:</p>
<blockquote><p>Although I strongly condemn Apple&#8217;s bullying tactics, I can only say that Adobe had this coming for a long time.</p>
<p>Back in the 80s, at the dawn of desktop publishing, Apple held a kind of symbiotic relationship with Adobe, Aldus, and Macromedia, the once-competing companies that eventually merged into today&#8217;s Adobe. But somewhere in the late 90s Adobe started to drop the ball on Apple as they saw greener pastures in Windows Land. They started to invest much more in the development of the Windows versions of many of their products and Mac versions started to become second-class products.</p>
<p>Adobe even used Premiere as leverage against Apple, threatening to stop its development for the Mac, something that would have essentially kicked Apple out of the video editing market. That&#8217;s why Apple bought and started heavy development of Final Cut (1999?). Adobe in fact pulled the plug from Premiere (2003?) until they realized that this has backfired on them making them loose a lot of the video market (2007?).</p>
<p>But perhaps the epitome of Adobe&#8217;s contempt for Apple is Flash. if you think Flash for windows is crappy, you haven&#8217;t seen the Mac version (or for that matter the Linux one). Macromedia Flash was equally good for Mac and Windows, but while the performance of the Windows version was kept almost acceptable, the Mac version became even more sluggish, processor intensive, and buggy.</p>
<p>Furthermore, Flash became probably the biggest security hole in Mac OS X. in the security update for January, 12 vulnerabilities were plugged. But seven of them were not really in the operating system but in the flash pluggin!</p></blockquote>
<p>If I was Apple, I would also be very concerned that Adobe, with its Army of Flash developers and its crappy implementation of Flash platform, would soon flood the App Store with apps, which arguably would be alien-ware and sub-standard. I believe the original iPhone developer community would be a minority by then. iPhone SDK would soon be irrelevant. Adobe would effective take control of the platform. The cross-platform nature of the flash platform would mean Apple would be at Adobe&#8217;s mercy to remain in the smartphone business. And if history is any indication, Adobe would not play nice by then. And it has already turned its back on Apple, as one pointed out</p>
<blockquote><p>Many of us who do have noticed a distinct shift in [Adobe's] design philosophy away from making a Mac program for graphic designers towards making a PC program for graphic designers which happens to run on the Mac. The examples are small yet numerous and it paints a clear picture, to anyone who actually thinks about it for a second, that Adobe was the first to turn their backs on the Mac community. I believe there&#8217;s been a cold war brewing behind closed doors for years now and, while Apple may have been the most obvious about bringing it into the light, Adobe was the first to act on it with their shift in design philosophy with CS3.</p></blockquote>
<p>That reminded me the time when Microsoft had to hijack the Java development on Windows with its own JVM and Visual J++. It&#8217;s either Java destroying Windows or Microsoft destroying Java on Windows. It looked evil, but at least Java was something nice and worth looking at especially in those years. But with Flash, Apple could easily ban it without losing much, as one pointed out</p>
<blockquote><p>If Adobe want to play, they need to bring something that excites the user-base, and that Apple can&#8217;t refute. So far they&#8217;ve *not* done that, and childish rants aren&#8217;t going to persuade me that they can, in fact, do that. I do love the &#8220;comments are disabled because someone might disagree with me&#8221; as well [grin] &#8211; that just smacks of someone firmly convinced they&#8217;re in the right&#8230;</p></blockquote>
<p>And after reading the following comment, I really think it is time to forget about this whole discussion and move on.</p>
<blockquote><p>You know, everyone keeps complaining about all this &#8220;control&#8221; apple has on the iphone. And now, to read how they are worse than Microsoft.</p>
<p>First, Flash sucks for me as a user so I am thrilled it&#8217;s going to die. Sorry if a few developers love it, but that&#8217;s not my problem nor do I care if they have to learn new things. Thank you Apple.</p>
<p>Second, as an iPhone user there is nothing I miss on a daily basis being able to do with the iPhone. Do I wish that there was more flexibility with some apps? Yes. Do I think it&#8217;s this huge deal, no. Fact is the control Apple is doing has benefits and negatives. For most people the benefits of a closed community, screened apps that haven&#8217;t had viruses or malware, and a wonderful intuitive GUI (IMHO, Android is getting closer but is still not consistent nor as intuitive as iphone or Palm WebOs) and easy upgrades that actually are released to the phones (as opposed to the fragmentation that&#8217;s Android) is worthwhile. Fact is Android Droid are STILL waiting for Verizon to let them get 2.1 of Android. How&#8217;s that for control? If you want control, get yourself an out of contract pay as you go GSM type phone (like the Nokia or somethiing). But for the rest of us people who just need a smartphone and not a portable computer, the iphone is a great device.</p></blockquote>
<p>Oh, for the record, I am not with Adobe, solely because their applications do not live to my standard.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=71&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2010/04/10/i-am-not-with-adobe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
		<item>
		<title>Finally found those websafe fonts, sort of&#8230;</title>
		<link>http://edipage.wordpress.com/2010/02/03/finally-found-those-websafe-fonts/</link>
		<comments>http://edipage.wordpress.com/2010/02/03/finally-found-those-websafe-fonts/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 01:53:06 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[Softwares]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/?p=65</guid>
		<description><![CDATA[My job involves creating web pages, and though that does not mean I need to make them beautiful, I sure like to make things look nice. Ever time I come across some magazines and especially those well-designed advertisements in them, I wonder to myself, &#8220;man, I wish I could use those fonts for my websites.&#8221; Unfortunately, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=65&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My job involves creating web pages, and though that does not mean I need to make them beautiful, I sure <em>like</em> to make things look nice. Ever time I come across some magazines and especially those well-designed advertisements in them, I wonder to myself, &#8220;man, I wish I could use those fonts for my websites.&#8221; Unfortunately, it would always end up with disappointment, especially in the days when my boss was sticking to Debian with its very limited default collection of fonts. Though everybody in the lab has since switched to Mac, making sure things that look nice look equally nice for most of our users would still limit us to <a href="http://www.codestyle.org/css/font-family/sampler-Serif.shtml">very</a> <a href="http://www.codestyle.org/css/font-family/sampler-SansSerif.shtml">few</a><a href="http://www.codestyle.org/css/font-family/sampler-Monospace.shtml"> options</a>.</p>
<p>That&#8217;s changed by <a href="http://en.wikipedia.org/wiki/Web_typography">web typography</a>, and for me, by a neat website called <a href="http://typekit.com">typekit</a>, brought to us by a small startup called Small Batch. The same talented team was behind the acclaimed <a href="http://www.veen.com/jeff/archives/000799.html">Measure Map</a>, better known as <a href="http://www.google.com/analytics/">Google Analytics</a> since Google <a href="http://googleblog.blogspot.com/2006/02/here-comes-measure-map.html">acquired</a> it. With CSS 2.0 providing <a href="https://developer.mozilla.org/en/CSS/@font-face">features</a> to enable web typography, typekit fills the gap of commercial font distribution. If the Web is a platform, then typekit is the <code>/Libary/Fonts</code>. By patching your webapge on the fly using JavaScript, typekit tries to be unobtrusive as possible. And you won&#8217;t get your hands dirty by writing those patchy JavaScript, as typekit provides a very friendly editor to express how you want to dress up your page with its collection of hundreds of nice-looking fonts in its <a href="http://typekit.com/libraries/full">library</a>. Oh, yes, you can <a href="https://typekit.com/plans">try it for free</a> for an unlimited time.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=65&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2010/02/03/finally-found-those-websafe-fonts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
		<item>
		<title>Centering a block using CSS</title>
		<link>http://edipage.wordpress.com/2010/01/17/centering-a-block-using-css/</link>
		<comments>http://edipage.wordpress.com/2010/01/17/centering-a-block-using-css/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 21:06:09 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/?p=63</guid>
		<description><![CDATA[Many times, I&#8217;ve found myself in the need of a solution to center a block in a webpage. This problem is complicated if the parent block has a variable width, for example, when the parent block is body. In the past, I used the trick of negative margin. For example, if the block has a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=63&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Many times, I&#8217;ve found myself in the need of a solution to center a block in a webpage. This problem is complicated if the parent block has a variable width, for example, when the parent block is <code>body</code>. In the past, I used the trick of negative margin. For example, if the block has a width of 500px, I would do:</p>
<pre>.centered-block {
  width:500px;
  margin-left: -250px;
  position:relative;
  left: 50%;
}</pre>
<p>The negative margin puts exactly half the block off the left border of parent block, effectively aligning the center of the block at the left border of the parent block. Moving the block to the right by 50% will now place the center at the center of the parent block. The combination effect of the two is that the block is center aligned to the parent block.</p>
<p>I sometimes see undesired horizontal scroll bar when using this method, possibly due to the last line in the CSS code, which could potentially increase size of the canvas.</p>
<p>I have found a better solution that uses <code>inline-block</code>. The corresponding code for the above scenario using <code>inline-block</code> can be:</p>
<pre>.parent-of-centered-block {
  text-align:center
}
.centered-block {
  width:500px;
  display:inline-block;
  text-align:left
}</pre>
<p>Using this method, I have never seen undesired horizontal scrollbar. There is an extra benefit. You could now eliminate the <code>width</code> property if you want the centered block to have a flexible width, meaning it can be as small as possible but grow when necessary to accommodate content in one line if possible. In one of my cases, I wanted to place a line of several icons in the center. I removed the <code>width</code> property, and let the block to figure out its best width by trying to put all icons on the same line. See it works in <a href="http://www.cs.ucr.edu/~ycao/social.html">a real case</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=63&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2010/01/17/centering-a-block-using-css/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
		<item>
		<title>Poor man&#8217;s daemonizing scheme</title>
		<link>http://edipage.wordpress.com/2009/10/20/poor-mans-daemonizing-scheme/</link>
		<comments>http://edipage.wordpress.com/2009/10/20/poor-mans-daemonizing-scheme/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 18:50:33 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/?p=61</guid>
		<description><![CDATA[About a year ago, I wrote about daemonizing some python script for a web application. Today I encountered similar problems when I was fixing some migration issues when we retired an old server and moved some services to a OpenVZ container. Technology moves fast. What was large now has become small. Data that would have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=61&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>About a year ago, I <a href="http://edipage.wordpress.com/2008/09/18/daemonize-python-script/">wrote</a> about daemonizing some python script for a web application. Today I encountered similar problems when I was fixing some migration issues when we retired an old server and moved some services to a <a href="http://wiki.openvz.org/Main_Page">OpenVZ</a> container. Technology moves fast. What was large now has become small. Data that would have required a dedicated computer cluster to crunch years ago would now be processed quite comfortably on a single virtual machine. We decided to replace our <code>qsub</code>-based approach by running the job locally. It was as simple as replacing the <code>qsub</code> command by <code>bash</code>, plus the extra effort to daemonize the script so that it won&#8217;t hang our web application.</p>
<p>Looking for a quick fix, I thought about <code>nohup</code>. After a failed attempt, I discovered a <a href="http://books.google.com/books?id=Qu6H8fnAvGoC&amp;lpg=PA199&amp;ots=CgiU2jsH6X&amp;dq=bash%20daemon%20session&amp;pg=PA199#v=onepage&amp;q=bash%20daemon%20session&amp;f=false">recipe</a> to make it work flawlessly. That is so simple and handy, and can replace <code>become_daemon</code> in <code>django.utils.daemonize</code> for many of my needs.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=61&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2009/10/20/poor-mans-daemonizing-scheme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
		<item>
		<title>I am loving snow</title>
		<link>http://edipage.wordpress.com/2009/09/24/i-am-loving-snow/</link>
		<comments>http://edipage.wordpress.com/2009/09/24/i-am-loving-snow/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 15:33:31 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/?p=56</guid>
		<description><![CDATA[Coz it&#8217;s light!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=56&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Coz it&#8217;s light!<br />
<img class="aligncenter size-full wp-image-57" title="Picture 1" src="http://edipage.files.wordpress.com/2009/09/picture-12.png?w=500&#038;h=287" alt="Picture 1" width="500" height="287" /><img class="aligncenter size-full wp-image-58" title="Screen shot 2009-09-24 at 8.08.54 AM" src="http://edipage.files.wordpress.com/2009/09/screen-shot-2009-09-24-at-8-08-54-am2.png?w=500&#038;h=302" alt="Screen shot 2009-09-24 at 8.08.54 AM" width="500" height="302" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=56&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2009/09/24/i-am-loving-snow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>

		<media:content url="http://edipage.files.wordpress.com/2009/09/picture-12.png" medium="image">
			<media:title type="html">Picture 1</media:title>
		</media:content>

		<media:content url="http://edipage.files.wordpress.com/2009/09/screen-shot-2009-09-24-at-8-08-54-am2.png" medium="image">
			<media:title type="html">Screen shot 2009-09-24 at 8.08.54 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>Caja and JavaScript Security</title>
		<link>http://edipage.wordpress.com/2008/11/03/caja-and-javascript-security/</link>
		<comments>http://edipage.wordpress.com/2008/11/03/caja-and-javascript-security/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 01:01:40 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[Softwares]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/?p=45</guid>
		<description><![CDATA[People have been worrying about cross-site scripting, and have been careful in dealing with user input data, typically by filtering out undesired HTML elements. There are now certain applications that cannot afford to filter out user-generated scripts, such as gadgets in iGoogle and OpenSocial, and facebook applications. These applications must run user-submitted JavaScript, often inside [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=45&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>People have been worrying about <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">cross-site scripting</a>, and have been careful in dealing with user input data, typically by filtering out undesired HTML elements. There are now certain applications that cannot afford to filter out user-generated scripts, such as gadgets in iGoogle and OpenSocial, and facebook applications. These applications must run user-submitted JavaScript, often inside the same webpages that are linked to very sensitive information. It would be a disaster if iGoogle gadgets get access to your GMail account, or a facebook application access your profile when you don&#8217;t want it to.</p>
<p>The sandbox feature of JavaScript language was <a href="http://due-diligence.typepad.com/blog/2008/04/web-20-investor.html">not designed to handle this situation</a>. IFrame can offer desired isolation of untrusted code, if you do it carefully, but it offers no granularity in control and it cannot stop some behavior such as redirecting page and initiating installation of plugins. <a href="http://code.google.com/p/google-caja/">Caja</a>, which stands for capability JavaScript, is an emerging technique to &#8220;put untrusted third-party HTML and JavaScript inline in your page and still be secure&#8221;. There are similar offerings like Facebook&#8217;s <a href="http://wiki.developers.facebook.com/index.php/FBJS">FBJS</a>, <a href="http://www.adsafe.org/">ADsafe</a>, and also Microsoft&#8217;s <a href="http://websandbox.livelabs.com/">Web SandBox</a>. Similar <a href="http://en.wikipedia.org/wiki/Object-capability_model">concept</a> is also applied to <a href="http://wiki.erights.org/wiki/Object-capability_languages">other programming languages</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=45&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2008/11/03/caja-and-javascript-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
		<item>
		<title>What&#8217;s new in Python 2.6</title>
		<link>http://edipage.wordpress.com/2008/10/12/whats-new-in-python-26/</link>
		<comments>http://edipage.wordpress.com/2008/10/12/whats-new-in-python-26/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 21:40:12 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[Softwares]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/2008/10/12/whats-new-in-python-26/</guid>
		<description><![CDATA[Full release notes are here. Here are something that catch my eyes. with statement with is a statement that simplifies the task of elegantly acquiring and releasing resources, and moves the task of handling exception to the resource manager author. For example, the file object now supports with statement, and when using this statement, the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=42&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Full release notes are <a href="http://docs.python.org/dev/whatsnew/2.6.html">here</a>. Here are something that catch my eyes.</p>
<ul>
<li><code>with</code> statement<code> with</code> is a statement that simplifies the task of elegantly acquiring and releasing resources, and moves the task of handling exception to the resource manager author. For example, the file object now supports with statement, and when using this statement, the job of closing the file on regularly releasing the object or on an exception will be the task of the file object itself. It also makes locking/unlocking a resource amazingly intuitive, by moving the real (and repeated) job to the resource manager author.</li>
<li>per-user site-packages. Without this, I have always been making my own per-user site-pacakages. Handling different versions of packages for different Python versions is not an easy task. Now it&#8217;s automatically done. No need to sudo when installing a package!</li>
<li><code>multiprocessing</code> package. I have had some very bad experience with Python&#8217;s <code>threading</code> module. Python threading is useless in many cases when your code enters a chunk of time-consuming C code: even when the C code is blocked by I/O, the other Python threads will not be waken up if the C code is not Python-aware. This issue is made worse by the <a href="http://www.grouplens.org/node/244">infamous</a> <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=214235">GIL</a>, which means your program will always be executed serially no matter how nice your multi-threading code skill is or how many CPUs you have. Multiprocessing is way out of this, though it consumes a bit more resources. It also has the advantage of being transparently distributed: you can run multiple processes across a cluster of computer very easily.</li>
<li>Advanced string formatting. Now you can have many nice features found in <a href="http://www.djangoproject.com/">Django</a>&#8216;s template engine.</li>
<li><code>print</code> is now a function. This allows you disable all <code>print</code>s  in your program by redefining it. I was typically too lazy to use the <code>logging</code> module for debugging purpose, and now this change to <code>print</code> saves me some time from removing all debugging print statements. While, logging is still better.</li>
<li>New I/O library, which looks so similar to Java&#8217;s I/O library.</li>
<li>Abstract Classes. Now if you want to build some extensible/customizable software, you have an easy way to specify which methods must be defined instead of just saying it in the document.</li>
<li><code>fractions</code> module. I like Python&#8217;s support for long integer, decimal and now fraction data type. <code>double</code> is evil in many cases despite its efficiency.</li>
<li><code>json</code> module is now part of Python standard library.</li>
<li>Now both <code>md5</code> and <code>sha</code> modules have been removed. Use <code>hashlib</code> instead.</li>
</ul>
<p><!-- technorati tags end --></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=42&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2008/10/12/whats-new-in-python-26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
		<item>
		<title>Quickly secure CentOS 5 by enabling sudo, disabling root, and limiting access</title>
		<link>http://edipage.wordpress.com/2008/09/30/quickly-secure-centos-5-by-enabling-sudo-disabling-root-and-limiting-access/</link>
		<comments>http://edipage.wordpress.com/2008/09/30/quickly-secure-centos-5-by-enabling-sudo-disabling-root-and-limiting-access/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 17:54:55 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/2008/09/30/quickly-secure-centos-5-by-enabling-sudo-disabling-root-and-limiting-access/</guid>
		<description><![CDATA[CentOS differs from many other distros by enabling root account during setup. I prefer the Ubuntu&#8217;s (and OS X&#8217;s) way of using a separate admin account and having root account disabled. When there is a need to perform administrative task, just run the command with sudo and easily prevent the risk of abusing root privileges [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=38&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>CentOS differs from many other distros by enabling root account during setup. I prefer the Ubuntu&#8217;s (and OS X&#8217;s) way of using a separate admin account and having root account disabled. When there is a need to perform administrative task, just run the command with <code>sudo</code> and easily prevent the risk of abusing root privileges and doing stupid things. Following this <a href="http://wiki.archlinux.org/index.php/Disable_root_password_and_gain_su_sudo_with_no_password">guide</a>, I was able to make this work on CentOS.</p>
<ol>
<li>First, log in as root account. You can switch to root account from any account by running <code>su</code> and typing the root password.</li>
<li>
    <b>Enabling sudo</b>. If you are not comfortable with <code>vim</code>, run</p>
<pre>
export EDITOR=gedit
</pre>
<p>first. Now run</p>
<pre>
/usr/sbin/visudo
</pre>
<p>The lines starting with <code>#</code> are comment lines and will be ignored. Just uncomment the following line:</p>
<pre>
# %wheel  ALL=(ALL)       ALL
</pre>
<p>by removing the <code>#</code> at the beginning. This line means that anybody in the group <code>wheel</code> can use <code>sudo</code> to run anything from anywhere.
  </li>
<li>
    <b>Add an account to group wheel</b>. For example, if the account you use to perform administrative task is <code>isteering</code>, run</p>
<pre>
gpasswd -a isteering wheel
</pre>
<p>Now you can sudo from user <code>isteering</code>
  </li>
<li>
    <b>Disable root account</b>. This is done by running <code>passwd</code> to lock the account:</p>
<pre>
passwd -l root
</pre>
</li>
</ol>
<p>It is quite obvious after we perform the above steps, we have just created a second root account: the user <code>isteering</code> is exactly the same as root user, just having a different name. So we have not added much protection, if the attacker can guess the name of this new account. So you might want to consider limiting where the user can log in from. Use your favorite editor to edit file <code>/etc/security/access.conf</code>. Add the following lines for the admin group:</p>
<pre>
-:wheel:ALL EXCEPT LOCAL 192.168.1. 72.14.207.99
</pre>
<p>This will deny user in group <code>wheel</code> to log in from anywhere but <code>192.168.1.</code> subnetwork (note the suffix dot) or host <code>72.14.207.99</code>. You still need to add this line</p>
<pre>
auth       required     pam_access.so
</pre>
<p>to <code>/etc/pam.d/sshd</code> to tell SSH server to consult the access control, otherwise SSH server by default will ignore this access control mechanism built in PAM.<br />
<strong>References</strong>:</p>
<ul>
<li><a href="http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlpam.html">More advanced information on PAM</a></li>
<li>A <a href="http://atlee.ca/software/pam/module-index.html">python module</a> to access PAM</li>
</ul>
<p></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=38&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2008/09/30/quickly-secure-centos-5-by-enabling-sudo-disabling-root-and-limiting-access/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
		<item>
		<title>Comparison of Android and iPhone SDK</title>
		<link>http://edipage.wordpress.com/2008/09/25/comparison-of-android-and-iphone-sdk/</link>
		<comments>http://edipage.wordpress.com/2008/09/25/comparison-of-android-and-iphone-sdk/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 17:31:19 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[Softwares]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://edipage.wordpress.com/2008/09/25/comparison-of-android-and-iphone-sdk/</guid>
		<description><![CDATA[In developer-friendly versus customer-friendly, the author made a really good point about Apple&#8217;s controversial stance in many of its recent decisions. A follow-up made it even clearer using OS X application development as an example. Though I still prefer to code in an environment that is developer friendly, which I think both Linux and OS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=37&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://slashdot.org/comments.pl?sid=975815&amp;cid=25152387">developer-friendly versus customer-friendly</a>, the author made a really good point about Apple&#8217;s controversial stance in many of its recent decisions.</p>
<p> A <a href="http://slashdot.org/comments.pl?sid=975815&amp;cid=25153745">follow-up</a> made it even clearer using OS X application development as an example. Though I still prefer to code in an environment that is <i>developer friendly</i>, which I think both Linux and OS X are (at least for my quick prototyping needs), for real-life applications I depend on, I&#8217;d appreciate quality of Apple products.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipage.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipage.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipage.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipage.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipage.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipage.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipage.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipage.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipage.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipage.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipage.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipage.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipage.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipage.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipage.wordpress.com&amp;blog=21284&amp;post=37&amp;subd=edipage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipage.wordpress.com/2008/09/25/comparison-of-android-and-iphone-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35063d160edebda78724514a5864d205?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipage</media:title>
		</media:content>
	</item>
	</channel>
</rss>
