<?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>WoogaLog &#187; General</title>
	<atom:link href="http://camz.wordpress.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://camz.wordpress.com</link>
	<description>Various Ramblings &#38; Commentary</description>
	<lastBuildDate>Wed, 18 Jun 2008 18:10:51 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='camz.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/88347e88432a6a88c9ff93ef9b462f6e?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>WoogaLog &#187; General</title>
		<link>http://camz.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://camz.wordpress.com/osd.xml" title="WoogaLog" />
		<item>
		<title>Anything but Cheap</title>
		<link>http://camz.wordpress.com/2008/06/14/when-cheap-isnt/</link>
		<comments>http://camz.wordpress.com/2008/06/14/when-cheap-isnt/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 15:04:36 +0000</pubDate>
		<dc:creator>camz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://camz.wordpress.com/?p=18</guid>
		<description><![CDATA[I often hear statements in the form of &#8220;X is cheap, don&#8217;t worry about it&#8221;.  This usually comes up in design sessions, software or infrastructure, it doesn&#8217;t matter, you can usually find or hear a statement in this form in either type of design session.
The most common versions would be in reference to disk [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=18&subd=camz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I often hear statements in the form of <em>&#8220;X is cheap, don&#8217;t worry about it&#8221;</em>.  This usually comes up in design sessions, software or infrastructure, it doesn&#8217;t matter, you can usually find or hear a statement in this form in either type of design session.</p>
<p>The most common versions would be in reference to disk space, bandwidth, and CPU.</p>
<p>I suppose this type of thinking is a result of the effects of <a href="http://www.intel.com/technology/mooreslaw/">Moore&#8217;s Law</a>.  One of the troubling things about this sort of thinking is that it is frequently wrong and is indicative of someone with a closed mind, an inability to see the big picture, lack of insight, short-sightedness, or any other similar phrases.  In all cases, when someone makes an X is cheap statement it&#8217;s a safe bet that they haven&#8217;t really thought things through.  These statements are very dangerous, particularly if you happen to be in a design session when someone says this and is of particular concern if that someone is a team leader or manager.</p>
<p>The most dangerous aspect of these statements is that on the surface they may appear to be accurate and correct.  Unfortunately, unless we are designing as system that people will only look at (ie. the surface), rather than actually <em>use</em>, it is rarely correct.</p>
<p><span id="more-18"></span>I&#8217;ll make an attempt to examine the most common of these statements to show how and why they are incorrect and assumptions.  The analysis will be from a business/enterprise perspective rather than a personal/consumer one.  You might be surprised to see how inter-related these can be!  Let&#8217;s start with:</p>
<p><strong>Disk is cheap, don&#8217;t worry about size</strong></p>
<p>I will have to start by conceding the fact that disk storage has gotten very cheap indeed.  The average consumer can put a <a href="http://en.wikipedia.org/wiki/Terabyte">terabyte</a> of disk into their PC for less than $200.  So how can that NOT be cheap?</p>
<p>We first need to understand what is <em>really</em> being said here.  This usually isn&#8217;t a reference to disks and storage in general, it will be in reference to data files or databases.</p>
<p>So lets talk about files&#8230; in the past files weren&#8217;t that big, they were text files or word documents, and although the word documents were bigger, the size was still reasonable.  This is no longer true, text files are rarely used anymore, the same information is now in a PDF file, or word document, an image, or a multi-media file.  Those PDF and word files usually have graphics in them too, and to ensure that they look good when they print the graphics are stored at full resolution, even if they are only displayed thumbnail-sized in the document itself.  The average document size is now measured in MB instead of KB, and for media files, GB is becoming more and more common.</p>
<p>So, what am I trying to say?  The amount of storage that is available at a reasonable cost has increased by orders of magnitude, but so has the average size of the files that we store.  The net result is that we can store about  the same number of files as we used to before.</p>
<p>Even if we can store more files there is another cost involved. The more files and directories we have on our disks, the more difficult it becomes to find a file when we need it.  If a user can&#8217;t remember where they put a file on a file server and they have to search for it, that potentially ties up a lot of I/O and CPU resources as the server scans all the files.  That results in slower performance for all the other users relying on that server.  That same server could be hosting a database, or a VM, or even just the virtual disk of a VM, and each of those would be affected by this search.   Even if you don&#8217;t search for files very often because you are so well organized&#8230; those files are getting scanned anyway a couple times a day by your anti-virus and anti-spyware software.</p>
<p>Now lets look at databases&#8230;  Modern database servers make them easy to use, quick to access, all those good things.  So where is the problem.  Let&#8217;s look at how a real production database gets used.  To start with, you don&#8217;t just put a production database on disk, that&#8217;s too risky, disks can fail.  You put it on a raid array instead, using mirroring, or striping, or whatever.  The end result is that we now have two or possibly three (depending on the level of raid) copies of that database.  We need to back up the database, that&#8217;s another copy&#8230; but in today&#8217;s web-enabled global economy, we can&#8217;t take the database server offline to back it up.  So we have to take a snapshot to another disk so that we can make a backup of it without it changing while we write to tape, that&#8217;s another copy.  Add some developers into the mix, any system that has a database probably has some developers working on new versions of the software and they need working copies of those databases to use for testing and development.  That&#8217;s another copy (per developer) for each database.  What are we up to now? 5 or 6 copies?  Once again, the way we use that so-called cheap disk space quickly changes the cost per MB when each MB that we use is actually stored multiple times.</p>
<p>Backups become important too.  Bigger databases take longer to backup, which also means they take longer to restore too.  That can be crucial when the database for a web-commerce site goes down and we need to restore it.   The companies that chose to believe the &#8220;disk is cheap&#8221; myth will be offline waiting for the restore a lot longer than the company that chose to use their disk space more wisely.</p>
<p>Storage in general is no longer local in a business environment.  Files get shared on file servers, as well as through the use of SAN and NAS devices.  This means that accessing the data on those &#8220;cheap&#8221; disks is now over a network and now bandwidth enters into the equation.  A perfect segue into&#8230;</p>
<p><strong>Bandwidth is cheap, don&#8217;t worry about the size of your data</strong></p>
<p>Once again, we start with trying to understand what is really being said here.  This is typically the speed of the available network rather than the cost of the network, although it can easily refer to both.</p>
<p>The speed and cost of networks has improved dramatically over the years.  They have gone from 300 baud modems to 1200, and on and on up to 14400 and 56Kbps only to be replaced by broadband connections anywhere from 128Kbps to 10Mbps.  Local networks went from proprietary systems to 10Mbps Ethernet, then 100Mbps, and now 1Gbps or wireless networks that started at 11Mbps and are now 54Mbps or 108Mbps.</p>
<p>What was once inconceivable to transmit over a network is now commonplace.  So where is the problem here?</p>
<p>The first misconception comes from a single user perspective of the network.  This is easiest to explain with an example.  A typical office will have a 100Mbps network, providing 100Mbps of network bandwidth to each user.  Sounds pretty good and we don&#8217;t use hubs anymore everyone uses switches, so user A doesn&#8217;t get impacted by what user B is doing on his segment of the network.  Or does he?  That depends, although in most cases the answer is yes, they are affected.  Those network switches only isolate traffic between two end points.  So, I might have 100Mbps between me and the switch, but ultimately I don&#8217;t need anything from the switch, I need it from some resource on the network.  That resource might be a file server, or a database, or a website.  There is a significant chance that I&#8217;ll be competing with the other user to connect to the same end point.  So while we both have 100Mbps to the switch, we are sharing the 100Mbps from the switch to the common end point, so we&#8217;ve effectively been reduced to 50% of the &#8220;perceived&#8221; bandwidth.  Chances are that it won&#8217;t be just two users connecting to that common end point, but a lot more.  In a small company, you are probably competing will ALL the other users, so divide that 100Mbps by 10 or 20, bringing us down to 10Mbps or 5Mbps, certainly not the amount of bandwidth that you expected to get.</p>
<p>I will admit that I&#8217;m not being completely fair in my calculation, its far to primitive to be accurate, everyone would have to be accessing the same server at the same time for those numbers to be correct.  Statistically we will get much better performance, exactly how much better is harder to predict since it depends on what is being accessed.  Of course, the bigger the files we are after, the longer we send transferring their data, the more likely we are to be affected.  This is where we can start to see the impact of the &#8220;disk is cheap&#8221; mindset on other (seemingly unrelated) areas of computing.</p>
<p>So, I haven&#8217;t proven anything other than you won&#8217;t see 100% of your bandwidth.  We&#8217;ve only been talking about an typical office LAN, lets examine networked applications.</p>
<p>There are two typical varieties of networked applications.  Those that explicitly use the network by implementing some form of protocol, and those that indirectly use a network through file sharing, web-services, SOA, or database connections.  If a protocol is designed with the &#8220;bandwidth is cheap&#8221; thinking, you&#8217;ll probably find that it sends and receives lots of data.  The networks are indeed fast enough to make this appear to be a non-issue.  Unless you happen to be the the sysadmin or the hosting provider.  More efficient use of bandwidth translates directly into more users, which translates directly into revenue.  Once you max out your bandwidth with users, you might also need to buy/build new servers to handle more customers.</p>
<p>The more customers you can fit into the same bandwidth, the fewer servers and infrastructure you need, which directly affects the capital investment required (which again, affects Time-To-Revenue, since you have to recoup the infrastructure cost to become profitable).</p>
<p>More and more often you will find servers running in VMs, which wind up aggregating network traffic from all VMs to a single physical network.  Applications running in VM servers that don&#8217;t make efficient use of the network could find the VMs running out of available network bandwidth before they run out of available CPU.  If we have network traffic between two VMs, it never hits the physical network, but it does wind up consuming additional CPU possibly impacting performance of the other VMs.</p>
<p>When we introduce wireless and cellular networks to the mix the impact is more easily observed.  Sure that new 802.11n wireless is fast, but when you have an office full of users streaming video over the same shared wireless bandwidth&#8230;</p>
<p>So if you encounter someone that suggests<em> &#8220;X is cheap, don&#8217;t worry about it&#8221;</em> in your next design session or troubleshooting discussion, you will know that what they are really saying is that they probably don&#8217;t understand the issue at all.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/camz.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/camz.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/camz.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/camz.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/camz.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/camz.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/camz.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/camz.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/camz.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/camz.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/camz.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/camz.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=18&subd=camz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://camz.wordpress.com/2008/06/14/when-cheap-isnt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c0f9ae6afbe7d95ff1107cdd09781c9c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">camz</media:title>
		</media:content>
	</item>
		<item>
		<title>Platform Apple</title>
		<link>http://camz.wordpress.com/2007/09/08/platform-apple/</link>
		<comments>http://camz.wordpress.com/2007/09/08/platform-apple/#comments</comments>
		<pubDate>Sun, 09 Sep 2007 05:57:20 +0000</pubDate>
		<dc:creator>camz</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://camz.wordpress.com/2007/09/08/platform-apple/</guid>
		<description><![CDATA[I have a confession, I&#8217;ve fallen victim to the power of Steve Jobs&#8217; Reality Distortion Field.  I&#8217;ve been glued to the live &#8220;blogcasts&#8221; of his keynotes from MacWorld, Apple WWDC, and the special event announcements/presentations.  I don&#8217;t even own a Mac!  &#8230;but now I know I want one.
Now that I have that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=25&subd=camz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I have a confession, I&#8217;ve fallen victim to the power of Steve Jobs&#8217; Reality Distortion Field.  I&#8217;ve been glued to the live &#8220;blogcasts&#8221; of his keynotes from MacWorld, Apple WWDC, and the special event announcements/presentations.  I don&#8217;t even own a Mac!  &#8230;but now I <em>know</em> I want one.</p>
<p>Now that I have that off my chest&#8230;</p>
<p>I was extremely pleased as I watched the keynote from the September 5th Apple Special Event.  What pleased me the most was confirmation of some of my previous musings by the announcement of the new iPod Touch.  This device confirms what I suspected, the &#8220;touch&#8221; is the first of Apple&#8217;s embedded hardware platforms.  When the iPhone was announced, it was the fact that this platform was running OS X, enabling Apple to leverage a self-hosted environment in Mac OS X.  This has been a competitive [and strategic] advantage that QNX enjoyed in the past.  The iPod touch is using the same platform and derives the same benefits.</p>
<p>Apple has proven they have the ability to leverage this platform, I think we are going to see some interesting products emerge from this more rapidly than anyone expected.  The iPod touch was announced only 3 months after the release of the iPhone, that is an insanely short period of time between products.  It also means that in order to even get the device manufactured in time for the announce availability, that the hardware had to have already been <em>in</em> manufacturing when the iPhone was announced.<br />
<span id="more-25"></span><br />
Self-hosted development is a huge advantage that Apple now has over its competition.  They can develop new applications on desktop mac computers long before any target hardware is even available.  This improves time to market tremendously, a key advantage in the cut-throat consumer device markets that Apple is playing in.  With an embeddable OS X as the core, handling all the hardware differences behind standardized APIs, and the ability to re-use application from previous products, this is a killer environment.  Developing and debugging a WinCE device (which are the guts in many iphone competitors like the HTC TyTn, Samsung Blackjack, Motorola Q, as well as devices from Audiovox, Symbol, HP and others) is a painful experience.  Much of the pain experienced with the WinCE development model is all the time spent waiting to deploy a new build of an application to the device, it&#8217;s slow, even when on a fast/powerful developer workstation.  Sure there are emulators, but they are no faster when deploying or debugging an application, and networking (wired and wireless) doesn&#8217;t work at all in the emulator.  A developer at Apple will be able to develop an application for the &#8220;touch&#8221; platform in easily one half or one quarter the time required for a similar app on a WinCE smartphone.</p>
<p>I don&#8217;t think the rest of the embedded world has much to worry about from Apple though.  They aren&#8217;t likely to be sharing their hardware platform with anyone else.  They might need to be worried if they are making consumer devices and Apple decides to enter their market.</p>
<p>I think we are going to be seeing some interesting products from Apple in the future some of which are sure to take them in directions that will be quite unexpected from the outside.</p>
<p>I&#8217;ll be staying turned and keeping an eye on Apple, I suggest you do the same.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/camz.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/camz.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/camz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/camz.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/camz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/camz.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/camz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/camz.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/camz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/camz.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/camz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/camz.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=25&subd=camz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://camz.wordpress.com/2007/09/08/platform-apple/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c0f9ae6afbe7d95ff1107cdd09781c9c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">camz</media:title>
		</media:content>
	</item>
		<item>
		<title>Tomorrow&#8217;s Apple</title>
		<link>http://camz.wordpress.com/2007/06/22/tomorrows-apple/</link>
		<comments>http://camz.wordpress.com/2007/06/22/tomorrows-apple/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 07:44:53 +0000</pubDate>
		<dc:creator>camz</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://camz.wordpress.com/2007/06/22/tomorrows-apple/</guid>
		<description><![CDATA[I&#8217;ve been thinking about Apple recently, just like everyone else many thoughts have been provoked by the upcoming iPhone release as well as the latest beta release of Safari.  I don&#8217;t own a Mac, and I&#8217;m not a Windows fan either, my background is in embedded systems and software, I run QNX, Linux, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=23&subd=camz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been thinking about Apple recently, just like everyone else many thoughts have been provoked by the upcoming iPhone release as well as the latest beta release of Safari.  I don&#8217;t own a Mac, and I&#8217;m not a Windows fan either, my background is in embedded systems and software, I run QNX, Linux, and Windows on my network.</p>
<p>The most interesting things that I have noticed seem to have been missed by the mainstream, or at least I haven&#8217;t seen or heard a lot of commentary on the things I&#8217;ve noticed.<br />
<span id="more-23"></span></p>
<p><strong>Embedded Apple</strong><br />
The first thing that struck me about the announcement of the iPhone was the mention that it is running OS X.  The iPhone is certainly not running an x86 processor, or even a PPC one, it&#8217;s closer to the iPod than it is to a Mac, and the iPod uses an ARM processor.  Apple has not officially revealed which CPU is powering the iPhone, although this <a href="http://arstechnica.com/journals/apple.ars/2007/01/30/6824">ars technica</a> article is rumored to be correct.</p>
<p>Which means that Apple has a version of OS X for ARM.  That&#8217;s a big deal.  A <em>really</em> big deal.  ARM is one of the predominate CPUs for low-power embedded systems.  Apple now has OS X running on three CPU families: PPC, x86, and now ARM.  To make this even more significant, is that the development environment is self-hosted.  Developers (at least the one @ Apple) can code, develop, build, test, and debug their applications on their Macs, and once they have it working, and assuming they&#8217;ve allowed for the difference in pixel resolution, can recompile for the iPhone and have a running application.  Of course this doesn&#8217;t have to be for the iPhone, the Apple division that is responsible for developing the iPhone is actually a consumer products group, and the iPhone is merely their first product.  There are countless consumer devices that Apple can build using the ARM processor and their new embedded OS X.</p>
<p>Yeah, I&#8217;m making a big deal of this.  Self-hosted development represents incredible productivity when developing software for embedded platforms.  Not only has Apple boldly entered a new tier of consumer devices, but it has done so by equipping itself with a huge time-to-market advantage over it&#8217;s competitors.</p>
<p><strong>Carrier 180°</strong><br />
Apple will have done something remarkable when they release the iPhone, and surprisingly, it has nothing to do with the iPhone itself.  The market dynamic between wireless carrier and handset manufacturers has been distorted by the carriers for many years.  Typically the carriers will dictate to the handset manufacturer which features they want in a handset and specifically how they want to be able to control those features.  This is the concept of a &#8220;carrier lock&#8221; on a phone.  Consumers don&#8217;t like it, but by providing the ability to control features and/or lock them to the carrier allows the carriers to subsidize the handsets since they have a reasonable guarantee of revenue stream from the device.  Control of this revenue is huge factor in how much a carrier will be willing to subsidize a handset.  It&#8217;s quite common for carriers to offer some handsets at ridiculously low prices or even for free with fixed-term contract.</p>
<p>Apple turned this dynamic around 180° on AT&amp;T when they chose them as the provider.  Steve Jobs knows that much of the success of Apple products is a direct result of the &#8220;Apple experience&#8221;.  The engineering of the UI usually makes an Apple product much easier to use than the competition, and when combined with the elegant and sleek physical designs Apple is known for, the result is very high customer loyalty.  That loyalty makes Apples customers quite willing to pay a higher price, a nice payback for the design effort.  So, it should come as no surprise that the experience is paramount with the iPhone as well. If Apple were to allow the carriers to dictate what features could be controlled, it would negatively impact the experience.  As an example, in the traditional model, many carriers might restrict the WiFi capabilities to file transfer, and prevent its use for VoIP applications to protect their revenue stream from airtime.</p>
<p>With the iPhone, Apple calls the shots, and leaves everything enabled.  This too is a big deal, it is a complete 180° change in the dynamic between device/handset manufacturer and carrier.  The effects of this change are much larger than the effect of the iPhone in the handset market.  I&#8217;ll definitely be watching that to see how it turns out.</p>
<p><strong>Windows Target</strong><br />
The last thing I want to mention is in regards to the beta release of Safari for windows.  Ignoring the bugs and other issues that numerous others have found and discussed, what caught my attention was how much of the Apple GUI was present.  I will openly admit that I don&#8217;t know a lot about the application development environment on the Mac, so I could be dead wrong on my interpretation here.</p>
<p>Jobs has talked a lot in his keynotes about core animation as a key feature in OS X, which I found interesting in the context of Safari.  Now, I know that Safari has little use for core animation when rendering web sites, since web sites don&#8217;t do anything with it.  When I went to a site that was password protected though, the dialog box that appear for the login credentials had some slick 3D animation as appeared and disappeared.  Certainly looked like core animation to me, but I could be wrong.  Others have noted that the font rendering in Safari differs from Windows.  I won&#8217;t get into the debate over whether it is better to honor the font design or the pixel grid, that isn&#8217;t the important part of this.  The important part is that the graphics rendering in OS X is display postscript, of which font rendering is a component.  Does the presence of the Apple-style font rendering indicate that the GUI API includes Apple&#8217;s display postscript too?  To me, the (apparent) presence of core animation and the Apple graphics render engine are significant.  Display postscript provides an excellent hardware abstraction layer for graphics rendering, the presence of Apple&#8217;s DP in a Windows application would mean a low barrier for ALL Mac OS X graphics on Windows.  I really have to wonder how much of the Mac OS X GUI / Windowing API is now available in a DLL for Windows.</p>
<p>As I mentioned previously, this is the one thing that I have less confidence in due to my lack of knowledge of the Mac OS X application development environment.  If I am right though, the existence of core animation and the Mac OS X GUI API &amp; render engine on Windows makes the possibility of windows as an cross-dev target quite high.  Apple already has a universal binary that can carry PPC and x86 binaries simultaneously, it wouldn&#8217;t take much to extend this to also include x86/Win32 as well.</p>
<p><strong>Tomorrow&#8217;s Apple</strong><br />
All of these things together have Apple well positioned to dramatically change the landscape for embedded device/application development as well as windows application development.  The appeal of being able to produce Mac and Windows software with only a recompile would be a strong incentive to bring significant numbers of developers to the Mac platform.  Could tomorrow&#8217;s Apple be the next Windows dev platform?  I don&#8217;t know, but it seems to be within the realm of possibility, and that will make the future of software development very interesting indeed.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/camz.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/camz.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/camz.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/camz.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/camz.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/camz.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/camz.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/camz.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/camz.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/camz.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/camz.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/camz.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=23&subd=camz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://camz.wordpress.com/2007/06/22/tomorrows-apple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c0f9ae6afbe7d95ff1107cdd09781c9c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">camz</media:title>
		</media:content>
	</item>
		<item>
		<title>Many Thanks</title>
		<link>http://camz.wordpress.com/2007/04/04/many-thanks/</link>
		<comments>http://camz.wordpress.com/2007/04/04/many-thanks/#comments</comments>
		<pubDate>Thu, 05 Apr 2007 05:40:54 +0000</pubDate>
		<dc:creator>camz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://camz.wordpress.com/2007/04/04/many-thanks/</guid>
		<description><![CDATA[While I was fumbling around attempting to recover the few posts from my original blog, Trever managed to find that the Way Back Machine aka Internet Archive not only managed to index my site, but it had a complete copy of the original postings.  I have transcribed them into the new blog, which was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=17&subd=camz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>While I was fumbling around attempting to recover the few posts from my original blog, Trever managed to find that the <a href="http://web.archive.org/">Way Back Machine</a> aka Internet Archive not only managed to index my site, but it had a complete copy of the <a href="http://web.archive.org/web/20051122084730/http://blog.qnxzone.com/">original postings</a>.  I have transcribed them into the new blog, which was nice enough to let me back date them so that the appear in their original order.</p>
<p>Three posts have been recovered, hopefully they are still of some interest and relevance to others.</p>
<p>To Trev:<br />
<code>for( i = 0 ; i &lt; 100 ; i++ ) printf( "Thank you!\n" );</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/camz.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/camz.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/camz.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/camz.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/camz.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/camz.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/camz.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/camz.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/camz.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/camz.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/camz.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/camz.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=17&subd=camz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://camz.wordpress.com/2007/04/04/many-thanks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c0f9ae6afbe7d95ff1107cdd09781c9c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">camz</media:title>
		</media:content>
	</item>
		<item>
		<title>Recovering Data</title>
		<link>http://camz.wordpress.com/2007/03/25/recovering-data/</link>
		<comments>http://camz.wordpress.com/2007/03/25/recovering-data/#comments</comments>
		<pubDate>Sun, 25 Mar 2007 20:49:10 +0000</pubDate>
		<dc:creator>camz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://camz.wordpress.com/2007/03/25/recovering-data/</guid>
		<description><![CDATA[&#8230;just isn&#8217;t as much fun as it used to be.  I managed to recover the titles of the posts that I wanted to recover, 3 out of the 5 that I had posted (yeah, I know not an overly impressive count by any measure).  After several attempts to recover the text from the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=12&subd=camz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>&#8230;just isn&#8217;t as much fun as it used to be.  I managed to recover the titles of the posts that I wanted to recover, 3 out of the 5 that I had posted (yeah, I know not an overly impressive count by any measure).  After several attempts to recover the text from the disk, I gave up, I have no idea what postgresql did but it sure didn&#8217;t put all the text contiguous on the disk.  I was able to recover a couple of comments, and that was it.</p>
<p>So, I have decided to just start over.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/camz.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/camz.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/camz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/camz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/camz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/camz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/camz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/camz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/camz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/camz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/camz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/camz.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=12&subd=camz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://camz.wordpress.com/2007/03/25/recovering-data/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c0f9ae6afbe7d95ff1107cdd09781c9c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">camz</media:title>
		</media:content>
	</item>
		<item>
		<title>Back Online</title>
		<link>http://camz.wordpress.com/2006/09/23/hello-world/</link>
		<comments>http://camz.wordpress.com/2006/09/23/hello-world/#comments</comments>
		<pubDate>Sat, 23 Sep 2006 06:54:27 +0000</pubDate>
		<dc:creator>camz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[After an unfortunate corruption of the database that was running the original blog, we are now back online.  This time though, I decided that I would let the folks @ WordPress.com host the site.  Uploading the new header image seems to have made it blurry, not sure why, I guess I will have to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=1&subd=camz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After an unfortunate corruption of the database that was running the original blog, we are now back online.  This time though, I decided that I would let the folks @ WordPress.com host the site.  Uploading the new header image seems to have made it blurry, not sure why, I guess I will have to play around with that some more.</p>
<p>I will try to recover the original posts (I know there weren&#8217;t that many) and get them back online in this new location.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/camz.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/camz.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/camz.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/camz.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/camz.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/camz.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/camz.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/camz.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/camz.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/camz.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/camz.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/camz.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=camz.wordpress.com&blog=431845&post=1&subd=camz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://camz.wordpress.com/2006/09/23/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c0f9ae6afbe7d95ff1107cdd09781c9c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">camz</media:title>
		</media:content>
	</item>
	</channel>
</rss>