<?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>Nothing and more</title>
	<atom:link href="http://xmonk.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://xmonk.wordpress.com</link>
	<description>Not much, not less</description>
	<lastBuildDate>Wed, 20 Jun 2007 21:27:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='xmonk.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Nothing and more</title>
		<link>http://xmonk.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://xmonk.wordpress.com/osd.xml" title="Nothing and more" />
	<atom:link rel='hub' href='http://xmonk.wordpress.com/?pushpress=hub'/>
		<item>
		<title>My blog has moved&#8230;&#8230;.</title>
		<link>http://xmonk.wordpress.com/2007/06/20/my-blog-has-moved/</link>
		<comments>http://xmonk.wordpress.com/2007/06/20/my-blog-has-moved/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 21:25:50 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/06/20/my-blog-has-moved/</guid>
		<description><![CDATA[I&#8217;ve been toying with moving my blog to my own domain, that way I have more control, and can use plugins that are not available here. So I present you the now permanent home of my blog  http://www.xmonk.org.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=49&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been toying with moving my blog to my own domain, that way I have more control, and can use plugins that are not available here.</p>
<p>So I present you the now permanent home of my blog  http://www.xmonk.org.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/49/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/49/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=49&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/06/20/my-blog-has-moved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>Bill Gates finally gets his Harvard degree</title>
		<link>http://xmonk.wordpress.com/2007/06/08/bill-gates-finally-gets-his-harvard-degree/</link>
		<comments>http://xmonk.wordpress.com/2007/06/08/bill-gates-finally-gets-his-harvard-degree/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 19:39:34 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/06/08/bill-gates-finally-gets-his-harvard-degree/</guid>
		<description><![CDATA[Yes, that&#8217;s right, Mr. Bill Gates, holds a Doctorate degree from Harvard University, In what major you ask? Wait for it&#8230;&#8230;&#8230;&#8230;. well read it for yourself. I don&#8217;t know much of Mr. Gates life, or what his major was, when in Harvard, but if I were the Dean, and trustees I would give him the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=46&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yes, that&#8217;s right, Mr. Bill Gates, holds a Doctorate degree from Harvard University, In what major you ask? Wait for it&#8230;&#8230;&#8230;&#8230;. well read it for <a href="http://news.monstersandcritics.com/usa/news/article_1314921.php/Dropout_Bill_Gates_returns_to_Harvard_for_degree" title="Harvard nuts?" target="_blank">yourself</a>. I don&#8217;t know much of Mr. Gates life, or what his major was, when in Harvard, but if I were the Dean, and trustees I would give him the Degree, but not in that major.</p>
<p>That&#8217;s just me, opinions are more than welcome, in the comment section.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/46/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/46/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=46&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/06/08/bill-gates-finally-gets-his-harvard-degree/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>Source code management crazyness</title>
		<link>http://xmonk.wordpress.com/2007/06/08/source-code-management-crazyness/</link>
		<comments>http://xmonk.wordpress.com/2007/06/08/source-code-management-crazyness/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 15:49:13 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/06/08/source-code-management-crazyness/</guid>
		<description><![CDATA[What the hell is going on? I am totally for competition, variety and completeness, but the surge of source code management tools is getting out of hand! Git: According to Linus and some kernel developers, it&#8217;s IT. There is nothing better, oh and SVN and CVS suck and you are either a sucker or a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=45&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>What the hell is going on? I am totally for competition, variety and completeness, but the surge of source code management tools is getting out of hand!</p>
<ul>
<li><a href="http://git.or.cz/" title="GIT" target="_blank">Git</a>: According to Linus and some kernel developers, it&#8217;s IT. There is nothing better, oh and SVN and CVS suck and you are either a sucker or a moron if you are using CVS or SVN! (That&#8217;s the gospel of Linus, not mine.) He has a point merging is the key.</li>
<li><a href="http://www.abridgegame.org/darcs/" title="Darcs" target="_blank">Darcs</a>: Is another distributed SCM, this one uses smart, which according to the site, is a unique algebra of patches.</li>
<li><a href="http://www.selenic.com/mercurial/wiki/" title="Mercurial" target="_blank">Mercurial</a>: Yet another distributed SCM, there are quite a few projects using it.</li>
<li><a href="http://www.bazaar-vcs.org" title="Bazaar">Bzr</a>: Which is yet another, though I find it quite nice in Linux, because it lets you work with existing CVS and SVN repositories, of course you need a plugin that only works in Linux.</li>
</ul>
<p>And there are many, many, more, commercial, shareware, open source, etc.. The premise of all this, is that CVS sucks, and SVN is not good enough, to tell you the truth I feel these guys are making CVS a more desirable alternative, because while CVS has a lot of issues, they are well known and documented issues, with well known and documented work arounds.  I feel more attached to CVS every passing day, It&#8217;s true that I&#8217;m used to CVS, but I have and still am giving the SCM mention above a shot, and I&#8217;m currently using SVN too.</p>
<p>I used to love SVN, until I had to do some real work, that needed to use the full power of the SVN, and it worked ok, but things that I was told were easy, were in fact hackish, and not all that simple. Setting SVN up is a simple affair, but the way to manage keywords and properties is not trivial, as it should be, and there are a few others things that should be simple and easy to use or administer, but in turn are quite difficult.</p>
<p>CVS is alive and well on many projects, both Open and closed, and I believe, it will keep a good share of the market. I&#8217;m not saying the above software is not good, it is, but they are bombarding us, and some projects are using different SCM for different modules for reasons I don&#8217;t know and will probably wont understand.</p>
<p>I do agree that the distributed model is very appealing and in theory is ideal, that git and the others like it, make merging trivial, and it&#8217;s quite smart too.</p>
<p>But that does not mean CVS or SVN is less than the above, in fact some of the largest code bases are served and managed in CVS and SVN (Yes code bases bigger than the linux kernel, a lot bigger), without problems, yes they have policies and standards in place to minimize issues, but that&#8217;s not because of CVS, it&#8217;s the nature of a big project, you need consistency, and safe guards. So in a organized work model, the distributed system may be more chaotic, and inefficient than CVS or SVN.</p>
<p>The sad part, is the new crop of SCM looks more of a recursive re-envention of the wheel, with very little new or unique features, that would merit one over the other. It&#8217;s like a collective exercise on how to make a distributed SCM.</p>
<p>Let&#8217;s see what will come out of all this SCM crazyness, hopefully something will make our collective life easier.</p>
<p>Here is the video of Linus on Git.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='600' height='368' src='http://www.youtube.com/embed/4XpnKHJAok8?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent' frameborder='0'></iframe></span>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=45&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/06/08/source-code-management-crazyness/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>Long time no write&#8230;.</title>
		<link>http://xmonk.wordpress.com/2007/06/08/long-time-no-write/</link>
		<comments>http://xmonk.wordpress.com/2007/06/08/long-time-no-write/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 13:49:37 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/06/08/long-time-no-write/</guid>
		<description><![CDATA[It&#8217;s been a while since my last post, alas a lot of things have change since then. To start I&#8217;ve become formally unemployed, I say formally, because I am freelancing, and I&#8217;m trying to start a company. On the time I was working for my last employer I was physically and mentally exhausted, so much [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=44&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since my last post, alas a lot of things have change since then.</p>
<p>To start I&#8217;ve become formally unemployed, I say formally, because I am freelancing, and I&#8217;m trying to start a company. On the time I was working for my last employer I was physically and mentally exhausted, so much so, that I&#8217;ve spent the last month and half being poked in every way a living human being can be poked (Well almost every way, no prostate exam for me yet. yay!).</p>
<p>One of the things that really made me happy, was that I was able to play guitar again, I had to stop due to tendinitis, as I reduced my computer use quite a bit, it seemed to be better. Sadly it only seemed, because tests discovered that my tendons are in very bad shape, and the Doctor recommended I stop playing, as it was hurting not only my tendons, but I had pinch nerve, which cause occasional discomfort, and I had developed a triggered finger, which didn&#8217;t manifest itself while playing,  but if I used the computer right after playing, my index finger would start dancing on it&#8217;s own, not fun I tell you. The doctors advised that if I needed to use a computer, to use a ergonomic keyboard  which I have, but don&#8217;t use (I use my laptop 100% of the time, so that&#8217;s is a bit of a pain to have an external keyboard)  and to get an ergonomic mouse, to alleviate trigger finger (which can cause focal dystonia) *sigh*. There other medical issues but those are under control for the most part.</p>
<p>Now this has made me think and study the way I interact with a computer, you see this days we are mostly mouse driven, most application don&#8217;t have key bindings for the most important features, and when they do, they can be quite uncomfortable. The web is basically mouse driven, with the exception of gmail, and google reader, that have sane key bindings, although gmail key bindings could be a bit more extensive. I&#8217;m sure there are other sites, that have sane and useful key bindings but those are not among the sites I use. Their are a few firefox plugins that make firefox to be more keyboard driven and that is nice. Windows for the most part is quite usable with a keyboard, ironically Linux with gnome and kde, are not as keyboard driven or friendly, and can be a pain to navigate sans mouse.</p>
<p>As I dabble with programming I have come to really valued the old editors, I&#8217;ve always been a big fan of both emacs and vi (yes that sounds weird, but I believe they are both good, and they are both worth learning) this editors were made at a time where computing was keyboard oriented, so they have amazing keyboard support, you can make your own key mappings, or re-map the existing ones (which I&#8217;ve done in emacs, to avoid doing chords).</p>
<p>On the whole, I&#8217;m happy, I have time to play with my kids, I have little to no stress, and will do everything I can to keep it that way, It would had been nice not to have the tendinitis, and be able to play, but as they say you can&#8217;t have everything.</p>
<p>So in conclusion I am in fact alive for those who care, and for those who don&#8217;t well, you know &#8230;&#8230;&#8230;.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=44&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/06/08/long-time-no-write/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>Secure programming</title>
		<link>http://xmonk.wordpress.com/2007/03/28/secure-programming/</link>
		<comments>http://xmonk.wordpress.com/2007/03/28/secure-programming/#comments</comments>
		<pubDate>Wed, 28 Mar 2007 23:03:51 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/03/28/secure-programming/</guid>
		<description><![CDATA[Programming is a complex task, and it&#8217;s even more complex when you add security to the equation, there are lots of manuals on the Internet, and books on amazon that deal with secure programming, mostly they either geared to web developers or C programmers. What has prompted me to write this is the fact that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=43&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Programming is a complex task, and it&#8217;s even more complex when you add security to the equation, there are lots of manuals on the Internet, and books on amazon that deal with secure programming, mostly they either geared to web developers or C programmers. What has prompted me to write this is the fact that I&#8217;ve been tasked with working on a application that will be used to performance test a system, now this little tool needs to simulate 1,000,000 transactions, everything is OK until I see the code.</p>
<p>The first thing out of my mouth was WTF! I&#8217;m not very good at this programming stuff I&#8217;ll admit it up front, but what I saw was disturbing. I can not show you the code, because well I&#8217;m bound by NDA&#8217;s. Nn a few hours of reading I found out the following:</p>
<ul>
<li>Authentication routine is completely and utterly useless.</li>
<li>There are several exploitable buffer overflow.</li>
<li>Memory leaks, that make Niagara falls look like a dry pond.</li>
<li> String format vulnerabilities.</li>
<li>Among many others.</li>
</ul>
<p>In short this a good example of how not to code! All the above issues could have been solved with simple common sense tips:</p>
<ul>
<li>In a routine, always check that the parameters passed, are what you are expecting, do this before anything else. Most Java programmers that I know suffer from this.</li>
<li>Make sure that the buffer being passed to your method is of the correct/expected size before doing a strcpy() or strncpy(). Here is a little well known fact, strncpy() is safer than strcpy(), but it&#8217;s not safe from misuse, so double check the size/length of the destination where strings are being copied, specially if they&#8217;re passed as a parameter to a method, typo&#8217;s, miscalculation can make your code vulnerable to a buffer overflow, or in a better case corrupt your stack.</li>
<li>Don&#8217;t malloc a static variable inside a method, that is going to return said variable, just don&#8217;t! &#8230;.. alright I&#8217;ll explain the reason is very simple, you cannot free the variable, because you need to return it, so the caller of the method needs to take that responsibility, in some cases it might be the only way to go, and you document it, so you don&#8217;t forget to free() it, but if it&#8217;s not imperative don&#8217;t do it!</li>
<li>Do not down cast, casting a long to a short might seem exciting, but there are some things that you shouldn&#8217;t want to do, or find out why you shouldn&#8217;t do it. If you know what you are doing, then you do not need to downcast, if you don&#8217;t know what you are doing then I suggest: You walk away from your keyboard slowly.</li>
<li> For the love of God, I know you are smarter than me, I admit it, but please, please, just because you got an A on your algorithm class, does not mean you can take a MD5 Hash, slice it in sequence of 8 bits, compress it to a 8 char string using a pad, and expect it to be secure.  If you are spending the CPU cycles generating the MD5 hash for pits sake, use the damn hash!!! While established you are smarter than me, chances are you are not smarter than Bruce Schneider or Donald Knuth. Slicing a hash using the above method as a password encryption mechanism, is a open invitation for deep anal probing by the l33t in this internet world. If you don&#8217;t know why it is insecure, think about it for a bit, you&#8217;ll get it, believe me If I found it you&#8217;ll understand it.</li>
</ul>
<p>There is another trend that annoys me greatly, it has nothing to do with security, it&#8217;s just most programmers, do not put their name and date on the code they&#8217;ve just written. I can forgive not putting your name specially if you are not proud of the code, or if it&#8217;s company policy, but the date of creation and date of modification? It is quite useful specially when you have to track down a change.</p>
<p>It&#8217;s been a while since I blogged, but hey I&#8217;m sure I was not missed.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=43&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/03/28/secure-programming/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>Metaprogramming (The one true editor?)</title>
		<link>http://xmonk.wordpress.com/2007/02/03/metaprogramming-the-one-true-editor/</link>
		<comments>http://xmonk.wordpress.com/2007/02/03/metaprogramming-the-one-true-editor/#comments</comments>
		<pubDate>Sat, 03 Feb 2007 15:16:13 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/02/03/metaprogramming-the-one-true-editor/</guid>
		<description><![CDATA[Metaprogramming, is in some circles a lost art. When I started programming one of the first thing I was asked to do, was to make a program, that would modify it&#8217;s own code base dynamically, depending on a set of rules (the rules could change over time, and the program should be smart enough to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=40&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Metaprogramming_(programming)">Metaprogramming</a>, is in some circles a lost art. When I started programming one of the first thing I was asked to do, was to make a program, that would modify it&#8217;s own code base dynamically, depending  on a set of rules (the rules could change over time, and the program should be smart enough to conform) I don&#8217;t have to tell you this was a very hard problem, so my boss gave me the first major advice I have ever received: &#8220;Use the right tool for the problem&#8221;, at that time the right tool was <a href="http://en.wikipedia.org/wiki/Lisp_%28programming_language%29">Lisp</a> &#8211;not because it&#8217;s the best language, but because it had the resources needed to solve the problem in a fast and painless fashion.</p>
<p>Forward to 2007, and very few software engineers, have written metaprograms, and even less know about metaprogramming. The truth is that most of the code I write for work &#8220;Simulators&#8221; have the ability to modify thy self, on command. Why in the world you ask? Simply because we have a very stupid chain of command, and usually what they say they want, it&#8217;s not what they really want, so given, that I am a lazy bastard, I use metaprogramming to my advantage.</p>
<p>Now, I can&#8217;t tell you how many times, I&#8217;ve seen some of my co-workers, curse our (bosses|users|clients), when they realize, they just wrote x lines of code that it&#8217;s not needed, and they have to write (* x x) in minutes. I feel for them, I really do.</p>
<p>What does all this have to do with editors? Well one of the main tools of a programmer (the main tool actually) is it&#8217;s editor. Today we have editors or IDE&#8217;s that specialize in certain languages, or technologies related to a language, and you see how some developers jump from one to the other clumsily, this reminds me of something my dad always told me when I was growing up (and religiously tell his grandchildren still) &#8220;<em>Johannes factotum&#8221;  </em>That translates to &#8220;John does all&#8221;, or more colloquially  &#8220;Jack of all trades, master of none, though ofttimes better than master of one&#8221;, another of his favorite quotes is &#8220;A chisel and hammer in the wrong hands, destroys in the right hands with get <a href="http://en.wikipedia.org/wiki/David_%28Michelangelo%29">David</a>&#8220;.</p>
<p>It does not matter what your tools are, if you can solve the problems at hand with them.  In my particular case my programming editor, because of today&#8217;s demands needs to be a &#8220;Johannes factotum&#8221;.</p>
<p>I&#8217;m not saying specialised IDE&#8217;s are bad, I for example think eclipse is a very good IDE, and they are working to become a &#8220;Johannes factotum&#8221; tool.  In my opinion a good editor or IDE should be able too:</p>
<ul>
<li>Metaprogramming friendly, meaning you can change or add features or trigger certain logic, in a programmatic form.</li>
<li>Source code management tools, to make your life easier.</li>
<li>Addition of new language syntax, should be easy to add or modify (by &amp; for) the user specific need.</li>
<li>Re-factoring easy and painless</li>
<li>provide the ability be it programmatic or by built in feature of code snippets, and templates.</li>
<li>Do not get in the way of writing code.</li>
</ul>
<p>If you look closely an editor that posses a powerful configuration language you can do all of the above, even if it&#8217;s not a default feature on the editor, making it extensible by you.  There are other features that are important to most users, I find them distracting,  some are built in, into my editor of choice, others can be added with a few lines of elisp code, some of those features are:</p>
<ul>
<li>Code completion.</li>
<li>Error detection.</li>
<li>Automatic syntax correction, or the code clippy as I call it.</li>
<li>Wizards</li>
</ul>
<p>You might be thinking, you are contradicting yourself, you said: &#8220;use the right tool for the right job&#8221; how can one editor be the right tool for all languages or jobs? Well one editor can be the right tool, if it&#8217;s flexible enough, that you can add the features necessary for the work at hand. I prefer one editor, because It let&#8217;s me concentrate on the problem at hand, I don&#8217;t have to be going back to the help menu, to find out how to activate this or that, or have to learn different key schemes,  I make my own, that are comfortable to my hand and easy for my brain to remember.</p>
<p>I&#8217;m not saying: &#8220;X&#8221; is better than &#8220;Y&#8221; that&#8217;s for each individual to decide on their own, my goal here is to make you think a little about your choice, and why it is your choice.</p>
<p>Is it because everyone is using it? or maybe because it looks cool? or maybe it&#8217;s the standard in your work place? or I don&#8217;t care about extensibility I am an X programmer and I want an X editor? or maybe I prefer to use specialized editors for the language?</p>
<p>If you feel comfortable and productive using the tools you are using, that&#8217;s good, but if you find a tool that makes you more productive, and comfortable, don&#8217;t set it aside just because everyone uses &#8220;X&#8221; and you will be mocked if you use &#8220;Y&#8221;.</p>
<p>I&#8217;m mocked mostly every day for my choice, and frankly I don&#8217;t care, It helps me get the job done, and that&#8217;s  because it does not get in my way.</p>
<p>This not meant to bring a flame war, this is not a &#8220;Y&#8221; is better than &#8220;X&#8221; post, it&#8217;s about I like &#8220;Y&#8221;  because of this and that. <strong>Don&#8217;t tell me what you don&#8217;t like or what you don&#8217;t use</strong>  <strong>or why you don&#8217;t use it</strong>.</p>
<p>That said. What are your tools of choice and why? Do you metaprogram?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=40&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/02/03/metaprogramming-the-one-true-editor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>Prototyping</title>
		<link>http://xmonk.wordpress.com/2007/01/17/prototyping/</link>
		<comments>http://xmonk.wordpress.com/2007/01/17/prototyping/#comments</comments>
		<pubDate>Wed, 17 Jan 2007 18:53:56 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/01/17/prototyping/</guid>
		<description><![CDATA[Prototyping is not a new concept, nor the sole domain of computer science; it&#8217;s one that&#8217;s been used outside the computing field, even before computers ever existed. It is a try and tested way of working, that concentrate on moving forward, with the premise, that the result, will be revised and even re-written if deemed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=39&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Prototyping is not a new concept, nor the sole domain of computer science; it&#8217;s one that&#8217;s been used outside the computing field, even before computers ever existed. It is a try and tested way of working, that concentrate on moving forward, with the premise, that the result, will be revised and even re-written if deemed necessary.</p>
<p>Prototyping, let&#8217;s the programmer find and solve problems, that were not factored into the implementation of the application, it is mostly done using tools that are not as time consuming, as the target tool to be used,.</p>
<p>In music, composers usually make a orchestra sketch with the lines that each instrument part, they do this because it is easier to work with than an orchestral score, and because it affords the composer flexibility to play around with different instrumental combination. When they are happy with the sketch, they will then start working on revision, and yet again everything might change, until he&#8217;s satisfied with the outcome.</p>
<p>In computing, we don&#8217;t tend to prototype as much, there are others but I leave you to add them and comment on them, but we usually take one of two roads:</p>
<ol>
<li>We do a formal design, and implement it.</li>
<li>We hack until we get what we want.</li>
</ol>
<p>This options are not good or bad, it all depend on what we are doing; but those two are potentially inefficient.</p>
<p>With the first option, you might find yourself in the middle of your implementation, and realizing there is a fundamental mistake on the design, that makes everything you&#8217;ve done until now useless trash.</p>
<p>With the second option you might find yourself hacking away and loosing sight of the main goals, and the outcome is no where near, what you intended to achieve.</p>
<p>With prototyping, we can actually find the problem in the first item, sooner, giving us time to either re-design or work around the problem, adding new features we overlooked, etc. With prototyping we avoid the problem in the second item because we are working towards a goal, with the aid of a sketch design, our goal is to make our prototype be a functional representation of what are design, or goal is, while at the same time confirming it&#8217;s viability.</p>
<p>Prototyping is a good proposition, given that you have enough time to do the prototype &#8211;you need to factor this in, when setting deadlines. It is also important to have a good grasp of the tools you are going to use to build the prototype, because the goal is to build it fast and as bug free as possible.</p>
<p>In my experience the best languages for prototyping are scripting languages. It does not matter what language you use, as long as you have a good grasp, this bear repeating, don&#8217;t do a prototype in a language you are just learning, do it with the tools you already know and comfortable with.  There is nothing wrong in prototyping in a non-scripting language, as long as you can do it fast, and you know your way around it.</p>
<p>So to conclude, the benefits of prototyping a problem are:</p>
<ul>
<li> A better outlook of the problems and their solutions.</li>
<li>You get to test the design, in a fast non-obtrusive way.</li>
<li>Helps in bringing the number of bugs down.</li>
<li>Helps making the code writing faster.</li>
<li>Gives you a demo to show the client.</li>
<li>Helps you see the big picture.</li>
</ul>
<p>For a better more detailed explanation check out: <a href="http://www.pragmaticprogrammer.com/community/index.html" target="_blank">Pragmatic Programming site.</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=39&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/01/17/prototyping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>Martin Luther King Jr. Day</title>
		<link>http://xmonk.wordpress.com/2007/01/15/martin-luther-king-jr-day/</link>
		<comments>http://xmonk.wordpress.com/2007/01/15/martin-luther-king-jr-day/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 21:04:19 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/01/15/martin-luther-king-jr-day/</guid>
		<description><![CDATA[Today, were released by Stanford University&#8217;s King Paper Project, a collection of writings that documents Rev. King thoughts from 1948 to 1963. Martin Luther King Jr. was a very important figure for me. At high school I read some of his sermons, and was introduced to a sane, coherent interpretation and implementation of Christian thought [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=38&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today, were released by <a href="http://www.amazon.com/Papers-Martin-Luther-King-Jr/dp/0520248740/sr=1-1/qid=1168894693/ref=sr_1_1/105-9733344-9447615?ie=UTF8&amp;s=books">Stanford University&#8217;s King Paper Project</a>, a collection of writings that documents Rev. King thoughts from 1948 to 1963.</p>
<p>Martin Luther King Jr. was a very important figure for me. At high school I read some of his sermons, and was introduced to a sane, coherent interpretation and implementation of Christian thought and life.</p>
<p>Rev. King, is an example for all Christians to follow, not being a conformist christian, defending those too weak to defend themselves, all while dealing with violent opposition, and never surrendering to fear, or threats.</p>
<p>Christianity, has broad history, some of which is rather grim. Rev. King was a ray of light amidst a very dark world, a man who stood up, not in arms, but in peace.</p>
<p>The following quote is an extract of the published text.</p>
<p><strong><em><font size="2">&#8220;Any religion that professes to be concerned about the souls of men and  not concerned about the city government that damns the soul, the economic  conditions that corrupt the soul, the slum conditions, the social evils that  cripple the soul, is a dry, dead, do-nothing religion in need of new blood,&#8221;  King preached in 1962 to his congregation at Ebenezer Baptist Church in  Atlanta.</font></em></strong></p>
<p>It is my hope that his message of peace, and social justice, one day become a reality.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=38&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/01/15/martin-luther-king-jr-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>To Gmail or not to Gmail, that is the question</title>
		<link>http://xmonk.wordpress.com/2007/01/15/to-gmail-or-not-to-gmail-that-is-the-question/</link>
		<comments>http://xmonk.wordpress.com/2007/01/15/to-gmail-or-not-to-gmail-that-is-the-question/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 00:41:48 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/01/15/to-gmail-or-not-to-gmail-that-is-the-question/</guid>
		<description><![CDATA[I have a mostly hate relationship with gmail, the only things I love &#8211;like is the more accurate term&#8211; is the storage, and the free pop3, that&#8217;s it. I know, gmail is the best web email client around right now, I know they have done much better than their competition, but they are not better [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=36&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a mostly hate relationship with gmail, the only things I love &#8211;like is the more accurate term&#8211; is the storage, and the free pop3, that&#8217;s it. I know, gmail is the best web email client around right now, I know they have done much better than their competition, but they are not better than an email desktop client.</p>
<p>In my case my email client is mutt, I&#8217;ve been using it for so long I don&#8217;t remember. I pair it with procmail, I&#8217;m in email heaven.</p>
<p>So why do I use gmail? The answer is simple and yet complex; where I live the bandwidth is very limited, and expensive. There is an issue with blackouts, yes we get a couple of hours of blackouts daily, so I can&#8217;t host my own blog, and email, even though I own a more than capable server. So, in my case there is no way around it, I use gmail pop3 service, and very rarely do I login to the website.</p>
<p>I hear you saying, no, gmail is more than that, you get the ability to search your emails by different search criterias, and you have labels, that are so much better to the stupid mail folders, and filter rules. I can search for email in mutt, just as you do it in gmail, even better, I can implement my own search application and call it from within mutt, and I like having mail folders. I do think labels are a very good idea, and make navigating and handling email easier in gmail, but I don&#8217;t miss them at all when using mutt.</p>
<p>So, you are a google hater then? Nope. I&#8217;m not a google hater, in fact, I quite like google reader, I use it a lot, go figure. I also like google groups, and google search of course. I do think google is,  a dangerous proposition when it comes to privacy (yes, I&#8217;m paranoid). I don&#8217;t care much for the archiving they do of my emails, but right now it&#8217;s a trade off I have to live with.</p>
<p>So there, that&#8217;s why I&#8217;m not a &#8220;gmail is the gratest thing since slice bread&#8221; proponent, and see google as whole, with mild trepidation.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/36/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/36/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=36&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/01/15/to-gmail-or-not-to-gmail-that-is-the-question/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
		<item>
		<title>Users vs. Developers (Users are Stupid)</title>
		<link>http://xmonk.wordpress.com/2007/01/14/users-vs-developers-users-are-stupid/</link>
		<comments>http://xmonk.wordpress.com/2007/01/14/users-vs-developers-users-are-stupid/#comments</comments>
		<pubDate>Sun, 14 Jan 2007 23:45:59 +0000</pubDate>
		<dc:creator>xmonk</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://xmonk.wordpress.com/2007/01/14/users-vs-developers-users-are-stupid/</guid>
		<description><![CDATA[I can&#8217;t tell you how many times, I&#8217;ve heard a developer, shout those words; with a additional words for color and effect. I admit, I&#8217;ve had my share of user issues, and to be perfectly honest, most of the times, it was not because they were stupid, in fact it&#8217;s the complete opposite. The problem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=35&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t tell you how many times, I&#8217;ve heard a developer, shout those words; with a additional words for color and effect. I admit, I&#8217;ve had my share of user issues, and to be perfectly honest, most of the times, it was not because they were stupid, in fact it&#8217;s the complete opposite. The problem and I believe most of us in the software field share this problem, is, requirements, users can talk about features, they can talk about cool  ideas, but most, can&#8217;t tell you in a coherent fashion, what they need.</p>
<p>The approach I have used in the last couple of years, have been to go over the tasks that users do in a daily basis, I try to understand fully, before moving on to the features that are not part of the day to day routine, but that are sporadically used. It is only after the above requirement is met, that I discuss enhancements, and cool features, etc. It&#8217;s important to spend time with them during their work day, taking notes of what they do, and how they do it, and try to find ways of making them more efficient without sacrificing ease of use.</p>
<p>It is imperative for us to understand, that software, is a tool. It might be a work of art for us, but for the users it&#8217;s a tool, that exists for a purpose. If a tool doesn&#8217;t do what the user needs, then there is no two ways about it, it&#8217;s bad, and they will move along. I for one have done this numerous time, in my computing life. I have gone through, some very cool editors, ide&#8217;s, you name it I&#8217;ve probably tried it. All of those tools had strengths, but for my need, they either were overkill, or just to bloated and slow.</p>
<p>If we, that are knowledgeable, go through this ordeal to find a tool that meet our needs; how can we be so deluded to think our software, is the panacea our users have been craving?</p>
<p>Talk to your users, put yourself in their shoes, learn their business model, ask them what their vision for the future is, plan for scalability. Don&#8217;t try to make the application they will be using in 2 years, make the application they need, to do their work now. This is a sound business model for the developer, if you did your job well, come 2 years they will be ready for your uber cool enhancements, and guess what, you will be ready to implement them in efficient and correct manner.</p>
<p>There are your PEBKAC cases, still you should never call them stupid, you need them, as much as they need you, in fact you need them more. Imagine a world, where everyone could develop their own applications, fix their own computer issues; that is a world where you, flip burgers for a living.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/xmonk.wordpress.com/35/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/xmonk.wordpress.com/35/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xmonk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xmonk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xmonk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xmonk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xmonk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xmonk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xmonk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xmonk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xmonk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xmonk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xmonk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xmonk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xmonk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xmonk.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xmonk.wordpress.com&amp;blog=504354&amp;post=35&amp;subd=xmonk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xmonk.wordpress.com/2007/01/14/users-vs-developers-users-are-stupid/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003de189fb9495dc2fe68b89b1b04171?s=96&#38;d=identicon" medium="image">
			<media:title type="html">xmonk</media:title>
		</media:content>
	</item>
	</channel>
</rss>
