<?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/"
	>

<channel>
	<title>makeshiftmind &#187; Technology</title>
	<atom:link href="http://blog.nicholascloud.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nicholascloud.com</link>
	<description>Balancing the signal-to-noise ratio.</description>
	<lastBuildDate>Wed, 28 Apr 2010 00:59:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>The Matrix Runs Windows</title>
		<link>http://blog.nicholascloud.com/2008/11/13/the-matrix-runs-windows/</link>
		<comments>http://blog.nicholascloud.com/2008/11/13/the-matrix-runs-windows/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 14:06:15 +0000</pubDate>
		<dc:creator>ncloud</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.nicholascloud.com/?p=208</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/yX8yrOAjfKM&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/yX8yrOAjfKM&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicholascloud.com/2008/11/13/the-matrix-runs-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntocalypse Has Dawned!</title>
		<link>http://blog.nicholascloud.com/2008/04/24/ubuntocalypse-has-dawned/</link>
		<comments>http://blog.nicholascloud.com/2008/04/24/ubuntocalypse-has-dawned/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 16:01:12 +0000</pubDate>
		<dc:creator>ncloud</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.nicholascloud.com/?p=186</guid>
		<description><![CDATA[Today is the official launch of Ubuntu 8.04. Ubuntu is a Linux operating system that is developed by a strong open source community, and is freely available to download, use, and distribute. An operating system is the software on your computer that allows you to run programs. Windows is an operating system, and so is [...]]]></description>
			<content:encoded><![CDATA[<p>Today is the official launch of <a title="Ubuntu 8.04. Get it now." href="http://www.ubuntu.com/getubuntu/download">Ubuntu 8.04</a>.  Ubuntu is a Linux operating system that is developed by a strong open source community, and is freely available to download, use, and distribute.  An operating system is the software on your computer that allows you to run programs.  Windows is an operating system, and so is Mac OSX.  Ubuntu is, arguably, the most popular Linux operating system for desktop PCs, and is steadily encroaching on the server market as well.</p>
<p>Some reasons to download and use Ubuntu:</p>
<ol>
<li>You can&#8217;t afford (or refuse to pay for) Windows Vista or Mac OSX Leopard</li>
<li>You want to learn how computers work (Linux hides nothing from you &#8212; you can literally find out how everything works)</li>
<li>You&#8217;re a mad h@X0r and want to show off your sKI11z</li>
<li>You like to try new things, and aren&#8217;t afraid to reinstall your operating system a few times just to get the hang of it</li>
<li>You want to be part of a helpful community of computer geeks who enjoy tinkering as much as you do</li>
<li>You like the word &#8220;Ubuntocalypse&#8221;</li>
<li>You feel peer pressure from this blog post</li>
<li>You loathe M$ and wish IE would die a slow, painful digital death</li>
<li>You like pretty graphics, but really get excited when you see white text on a black background and a blinking cursor</li>
<li>You want to court the favor of the gods</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicholascloud.com/2008/04/24/ubuntocalypse-has-dawned/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UTF-8, for Those Who Care</title>
		<link>http://blog.nicholascloud.com/2008/04/14/utf-8-for-those-who-care/</link>
		<comments>http://blog.nicholascloud.com/2008/04/14/utf-8-for-those-who-care/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 22:23:21 +0000</pubDate>
		<dc:creator>ncloud</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://blog.nicholascloud.com/?p=179</guid>
		<description><![CDATA[I found a great technical article the other day on UTF-8 character encoding.  In case you didn&#8217;t know, when computers first started to become mainstream they only worked with the English alphabet and a small subset of numbers and symbols (this is called ASCII text).  Computer resources were quite limited back in The Day, and [...]]]></description>
			<content:encoded><![CDATA[<p>I found a <a title="UTF-8: The Secret of Character Encoding" href="http://htmlpurifier.org/docs/enduser-utf8.html">great technical article</a> the other day on UTF-8 character encoding.  In case you didn&#8217;t know, when computers first started to become mainstream they only worked with the English alphabet and a small subset of numbers and symbols (this is called ASCII text).  Computer resources were quite limited back in The Day, and since only English-speaking countries had computers, it made sense to condense the character pool.  Now, computers are much more powerful, and span countries, cultures, and languages.  The creation of the Internet has opened communication channels between different people groups at an astounding rate.  It only made sense, then, to expand the set of printable characters that a computer can display.   This is why UTF-8 is so important &#8212; it supports a very large number of printable characters (including numbers and symbols) from many different languages.  This article explains the history of UTF-8, and how to use it in your own projects (web development, database work, etc.).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicholascloud.com/2008/04/14/utf-8-for-those-who-care/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mental Version Control</title>
		<link>http://blog.nicholascloud.com/2008/03/06/mental-version-control/</link>
		<comments>http://blog.nicholascloud.com/2008/03/06/mental-version-control/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 02:01:37 +0000</pubDate>
		<dc:creator>ncloud</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[psychology]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.nicholascloud.com/?p=153</guid>
		<description><![CDATA[When I work on software projects, I use a tool commonly known as &#8220;version control&#8221; to help me keep track of changes I make to my code (or that other people make), so I have a &#8220;history&#8221; of my code over time. Version control is especially useful in group settings, where two people could potentially [...]]]></description>
			<content:encoded><![CDATA[<p>When I work on software projects, I use a tool commonly known as &#8220;version control&#8221; to help me keep track of changes I make to my code (or that other people make), so I have a &#8220;history&#8221; of my code over time.  Version control is especially useful in group settings, where two people could potentially be changing the same files and not know it.  Typically the version control repository is located on a server, and developers check out files from the server to work on them.  When the files are checked back into the repository, version control is usually smart enough to see potential differences and attempt to reconcile them.  If the differences can&#8217;t be reconciled, the files get flagged to indicate manual intervention is necessary to resolve the problem.</p>
<p>After the code has been stabilized for a scheduled release,  it is then <em>branched</em>.  Branches are important because they allow the developers to continue adding improvements to the main body of code (often referred to as the <em>trunk</em>), while having an exact copy of the released version of the code to which they can make bug fixes while new features are developed independently.  When the new enhancements are ready to be released, the bug fixes in the branch are merged into the trunk, and a new branch is created from the merged files.  And the cycle continues.</p>
<p>The interesting thing about version control systems is how they handle differences, both between individual files and entire branches.  If version control made a copy of a file every time it was changed in order to keep a history of all changes to that file, the repository would grow to an unmanageable size.  Most small/medium size software projects are literally composed of thousands of files.  Instead of making copies each time something is changed (or branched), version control simply catalogs the actual <em>differences</em> that are introduced with the change.  So if I add a single line of code to a file and commit the change to the repository, version control notes the original state of the file, and then notes the one line difference in that file&#8217;s history.</p>
<p>I wonder if our minds work like version control.  We experience an enormous amount of mental stimulation every day, though our raw sense experience, and through the activity of learning new things.  Perhaps our brains take the new information we receive daily, compare it to the information we already know, and make note of only the <em>difference</em> in the information in order to conserve &#8220;space&#8221;.  This would explain why, at times, we have problems recalling details for a specific experience &#8212; because our brains never recorded the details, only the unique elements the experience provided.  Our memory then, would operate recursively, starting with a particular experience and moving backwards to reconstruct it based on the other memory references the brain has created.</p>
<p>In primary schools we are introduced to basic concepts like shape and color, and from that point our learning becomes ever more refined, until we can exercise the ability to think in abstractions.  Perhaps abstractions are difficult for us precisely because the brain must perform so much recursion &#8212; it must constantly work &#8220;backwards&#8221; to find the concrete origins for each abstraction.</p>
<p>What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicholascloud.com/2008/03/06/mental-version-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Our Country is Like Bad Software</title>
		<link>http://blog.nicholascloud.com/2008/03/06/our-country-is-like-bad-software/</link>
		<comments>http://blog.nicholascloud.com/2008/03/06/our-country-is-like-bad-software/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 01:36:47 +0000</pubDate>
		<dc:creator>ncloud</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.nicholascloud.com/?p=152</guid>
		<description><![CDATA[Our country kind of reminds me of a really nasty software project. In the beginning, everyone is psyched. The client, developers, and managers all sit down at a meeting, draw up a solid spec, do some story-boarding, develop a data model and an architecture plan. They *know* that the system will work, and are confident [...]]]></description>
			<content:encoded><![CDATA[<p>Our country kind of reminds me of a really nasty software project.</p>
<p>In the beginning, everyone is psyched. The client, developers, and managers all sit down at a meeting, draw up a solid spec, do some story-boarding, develop a data model and an architecture plan. They *know* that the system will work, and are confident that they can deliver on time and under budget. They have their &#8220;constitution&#8221;, and if adhered to, they will be successful.</p>
<p>As time goes on, the client begins to get antsy. They want to see something *now*. They come up with a bunch of &#8220;nice-to-haves&#8221; that weren&#8217;t in the original spec and begin to pressure management to give in to scope creep, oh, and to still deliver on time and under budget. If management had any balls, they would insist on a meeting with the developers to generate a revised spec and time and cost estimates. But management ignores best practice and gives in, a little at first (because, hey, it can&#8217;t hurt to bend the rules a little bit), a little more later, and so on. Eventually management begins writing change orders as fast as the customer demands them, throwing them to frightened developers who wonder who will bear the cost of catering to special interests. And of course, the developers end up paying the cost. They begin working longer hours, forfeiting their spouses and children, perhaps even loosing their marriages to the pressure. The bonuses that were promised never come, the vacations all get canceled, and benefits decrease&#8230; except, of course, for management, who have insulated themselves from the consequences of their own choices.</p>
<p>Eventually the software is delivered, most likely late and over-budget, but the developers suck it up and breathe a sigh of releif because at least it&#8217;s over now. Until the customer wants *more* enhancements and features, and now the developers have to plow back through the garbage heap of sloppy code, hacks, work-arounds, &#8220;cheats&#8221;, and other heinous aberrations that they dumped into the source because management decided that revising a spec and thinking about the legitimacy of each change request was too much work. In their infinite wisdom, management bends over and takes it from the client, yet again, and holds the whip over the developers who now go home and drink themselves to sleep at night because they have come to hate what they do, hate their managers, hate the client, and pretty much hate life in general. And they are reminded, when they complain to management about throwing process to the wind that, hey, &#8220;you chose this career&#8230;&#8221;.</p>
<p>Now, the moral of the story is pretty simple. If you compare the size and scope of our government operations today to the size and scope of the original government drafted in 1776, the growth magnitude is frightening. Instead of sticking to the plan, and modifying the Constitution legally if needed, our &#8220;leaders&#8221; decided to pander to special interests and increase the reach of the federal government in the name of meeting the &#8220;needs of the people&#8221;. And who ends up paying the price in the end? The hard-working citizens who produce the real wealth and value in our country. But the bigger tragedy is this &#8212; some of those hard-working people (developers) will begin to believe the lie that the &#8220;customer is always right&#8221;, and will themselves want to get their &#8220;share&#8221; &#8212; after all, if they are busting their nuts for every other parasite who wants something from Congress, then surely they should be entitled to the same treatment. And so the beast continues to grow, the &#8220;source code&#8221; becomes fragile and unstable until no one is happy. The clients are never satisfied, the developers begin leaving en masse, and management makes sure their resumes are up to date and they&#8217;ve cashed in whatever options they had before the company collapses under its own weight.</p>
<p>I don&#8217;t know if the comparison is a stretch &#8212; maybe so &#8212; but I *do* know that the problem can&#8217;t be corrected by hiring management with more charisma, talent, or charm. Instead, you need management who understands *how* processes work, and *why* they are important, and who will stand against the tide of angry customers who throw fits about their wants and needs and demand special treatment. You need management who will go back to the original spec and say, &#8220;no, this is what we agreed to. If you want to change it, we need compelling reasons. And just so you know, it will take longer than you&#8217;d like and cost more than you think, so be prepared to jettison the idea that you can have your cake and eat it too.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicholascloud.com/2008/03/06/our-country-is-like-bad-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
