<?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>Scott Means</title>
	<atom:link href="http://smeans.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://smeans.com</link>
	<description>Ripping the envelope of software development, one technology at a time.</description>
	<lastBuildDate>Sun, 18 Nov 2012 21:10:58 +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>Pride &amp; Prejudice (&amp; WordPress)</title>
		<link>http://smeans.com/2012/11/18/pride-prejudice-wordpress/</link>
		<comments>http://smeans.com/2012/11/18/pride-prejudice-wordpress/#comments</comments>
		<pubDate>Sun, 18 Nov 2012 21:10:58 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=367</guid>
		<description><![CDATA[A lot of developers seem to have it in for WordPress. They use it dismissively, such as &#8220;It&#8217;s just a WordPress site.&#8221; The idea being that a serious website couldn&#8217;t be built using a blogging platform. If you&#8217;re serious, you&#8217;d use a heavyweight content management system (CMS) or just code it from scratch. That might [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of developers seem to have it in for WordPress. They use it dismissively, such as &#8220;It&#8217;s just a <em>WordPress</em> site.&#8221; The idea being that a serious website couldn&#8217;t be built using a blogging platform. If you&#8217;re serious, you&#8217;d use a heavyweight content management system (CMS) or just code it from scratch.</p>
<p>That might have been true when it was launched in 2003, but WordPress has evolved far beyond its humble blogging origins. So much so, that when one of our larger clients wanted to completely redo their website, we recommended WordPress as the core platform. Yes, WordPress. This is a client that sells thousands of different products, has hundreds of customers, and even has an international presence. So why choose WordPress, when something like Drupal would seem to offer more functionality out-of-the-box?</p>
<p>The primary advantage is this: WordPress evolved from a tool for non-technical users. It started life as a blogging tool. WordPress does a great job of making the most common user-initiated tasks (updating pages, posting blog entries, etc.) simple and painless. The 22,000+ plugins gave us rapid access to great search-engine optimization features, calendar management, etc. We were also able to take a commercial WordPress theme and easily adapt it to suit our customer&#8217;s branding guidelines. Launching a full-featured corporate website couldn&#8217;t have been easier.</p>
<p>But the public-facing website isn&#8217;t the complete story. A $200+ million company needs to provide access to business information to its employees and customers. Authentication and authorization are critical areas of functionality that need to be addressed. Then the real power of WordPress as an enterprise platform became apparent. There are currently 1,600+ hooks built-in to WordPress, which means that developers are able to control virtually every aspect of site operation.</p>
<p>Rather than looking at WordPress as an anemic enterprise CMS platform, we chose to look at it as a remarkably lightweight and flexible launchpad for our own custom enterprise functionality. And out of our development work, we developed what we call the WordPress Enterprise Framework (the WEF). It currently consists of a plugin, some theme elements, and some auxiliary code that runs on our client&#8217;s public-facing IIS site.</p>
<p>Using the WEF, we&#8217;ve implemented a single sign-on function using Active Directory that synchronizes user information from the client&#8217;s corporate network into WordPress. We&#8217;ve also developed a native PHP IDE that lets us use WordPress post features (such as draft and versioning) to develop and deploy new enterprise functionality in a controlled manner in our actual production environment.</p>
<p>I&#8217;m sure everyone is tired of hearing the &#8220;less-is-more&#8221; aphorism, but when choosing a platform for a new enterprise-wide web portal it&#8217;s definitely something to keep in mind. Any non-trivial project will eventually require custom coding, so as a technical decision maker you just have to think: is it better to start out with a complex (but full-featured) system that will be difficult to extend later, or a simpler (but very easy to modify) system?</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2012/11/18/pride-prejudice-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dealing with Google App Engine development datastore.</title>
		<link>http://smeans.com/2011/10/30/dealing-with-google-app-engine-development-datastore/</link>
		<comments>http://smeans.com/2011/10/30/dealing-with-google-app-engine-development-datastore/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 20:19:20 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[database]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=358</guid>
		<description><![CDATA[Make managing your development datastore in Google App Engine much easier.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using GAE for a couple of years now, and I&#8217;ve become pretty much accustomed to its foibles, except for one: it occasionally wipes out my development datastore for no apparent reason. It always happens when I have to restart the dev. server application, and it usually happens when I switch between two of my applications. But whatever the cause, it can be <em>really</em> annoying. So I&#8217;ve found a workaround of sorts.</p>
<p>Digging thorough the development server documentation, I found two options that are making my life <u>much</u> easier:</p>
<dl>
<dt>&#8211;use_sqlite</dt>
<dd>Use <a href="http://www.sqlite.org/">sqlite</a> for the local datastore.</dd>
<dt>&#8211;datastore_path=[path to datastore file]</dt>
<dd>Keep the datastore in the file specified.</dd>
</dl>
<p>By doing these two things, you can now see where GAE is keeping your datastore and you can make intermediate backups and restore them at will. You can also view your datastore using the command line sqlite client. Just add these two parameters to the Extra Flags box in your app&#8217;s info in the App Engine Launcher (or to the command line) and you&#8217;re good to go. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2011/10/30/dealing-with-google-app-engine-development-datastore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Review of iOS 4 Programming Cookbook</title>
		<link>http://smeans.com/2011/02/16/my-review-of-ios-4-programming-cookbook/</link>
		<comments>http://smeans.com/2011/02/16/my-review-of-ios-4-programming-cookbook/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 14:26:43 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://smeans.com/2011/02/16/my-review-of-ios-4-programming-cookbook/</guid>
		<description><![CDATA[Originally submitted at O&#8217;Reilly You can build a variety of amazing apps on the iOS platform&#8212;and every one of them presents a unique set of problems. With the recipes in this cookbook, you&#39;ll go beyond theory to solve the vexing, real-life issues you&#8217;re likely to face when creating apps for the iPhone, iPad, or &#8230; [...]]]></description>
			<content:encoded><![CDATA[<div class="hreview">
<div class="item">
<p><a href="http://oreilly.com/catalog/0636920010180">Originally submitted at O&#8217;Reilly</a></p>
<div><img src="http://images.powerreviews.com/images_products/06/47/11118851_100.jpg" class="photo" align="left" style="margin: 0 0.5em 0 0">
<p style="margin-top:0">
<p>You can build a variety of amazing apps on the iOS platform&#8212;and every one of them presents a unique set of problems. With the recipes in this cookbook, you&#39;ll go beyond theory to solve the vexing, real-life issues you&#8217;re likely to face when creating apps for the iPhone, iPad, or &#8230;                            </p>
</div>
<p><a href="http://oreilly.com/catalog/0636920010180" style="display: none;" class="url fn"><span class="fn">iOS 4 Programming Cookbook</span></a></div>
<p><br clear="left">
<p><strong class="summary">Chock full of code.</strong></p>
<div>By <strong>W. Scott Means</strong> from <strong>Columbia, SC</strong> on <strong><abbr title="2011216T1200-0800" class="dtreviewed" style="border: none; text-decoration: none;">2/16/2011</abbr></strong></div>
<p>
<div style="margin: 0.5em 0; height: 15px; width: 83px; background-image: url(http://images.powerreviews.com/images/stars_small.gif); background-position: 0px -144px;" class="prStars prStarsSmall">&nbsp;</div>
</p>
<div style="display: none"><span class="rating">4</span>out of 5</div>
<p><strong>Pros: </strong>Helpful examples</p>
<p><strong>Best Uses: </strong>Intermediate, Expert</p>
<p><strong>Describe Yourself: </strong>Developer, Educator</p>
<p style="margin-top:1em" class="description">Disclosure: I&#8217;m an O&#8217;Reilly Author and developer of the Great iPhone Development Video series. That being said, I&#8217;m not one for pulling punches when I see issues with with people&#8217;s code (ask anyone I&#8217;ve ever code reviewed <img src='http://smeans.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br xmlns:pr="xalan://com.pufferfish.core.beans.xmlbuilders.xsl.Functions"><br />This is the book I wish I&#8217;d had when I started developing for the iPhone. I started writing apps about two weeks after the infamous Apple Developer NDA was lifted and information started trickling out onto the Internet. If I&#8217;d have had a book like the iOS Cookbook I could have saved myself many hours of painful trial and error while learning Objective C and what is now the iOS API.<br /><br />This is not really a book for a beginning iOS programmer. It&#8217;s a book for someone who&#8217;s done a couple of simple apps and has the basic idiom down. If you&#8217;re looking to learn Objective-C or the mechanics of writing an iPhone app, this book will not help you. But if you can already write a functional app, the code snippets in this book will trim lots of time off of your learning curve when it comes to implementing more sophisticated features like Core Data, gestures, etc.<br /><br />There are a few areas where the examples could be clearer, and it&#8217;s clearly impossible to cover some of the more sophisticated functions of areas like Core Data in 620 pages. But overall this is an excellent REFERENCE for new and experienced app developers alike, and I&#8217;d recommend adding it to your library.</p>
<p style="margin-top:0.5em">(<a href="http://www.powerreviews.com/legal/terms_of_use.html" rel="license">legalese</a>)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2011/02/16/my-review-of-ios-4-programming-cookbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Core Data/undo gotcha of the day.</title>
		<link>http://smeans.com/2011/02/02/iphone-core-dataundo-gotcha-of-the-day/</link>
		<comments>http://smeans.com/2011/02/02/iphone-core-dataundo-gotcha-of-the-day/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 18:26:00 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=283</guid>
		<description><![CDATA[In general, I like the NSUndoManager functionality in iOS, but sometimes the secret handshakes you need to know can really get me down. For example, I needed to disable undo/redo when setting a particular property of a model entity. Reading the documentation, this seemed pretty straightforward: [[theApp.managedObjectContext undoManager] disableUndoRegistration]; detailItem.fieldImageFile = relativePath; [[theApp.managedObjectContext undoManager] enableUndoRegistration]; [...]]]></description>
			<content:encoded><![CDATA[<p>In general, I like the <span class="code">NSUndoManager</span> functionality in iOS, but sometimes the secret handshakes you need to know can really get me down. For example, I needed to disable undo/redo when setting a particular property of a model entity. Reading the documentation, this seemed pretty straightforward:</p>
<pre class="prettyprint">
	[[theApp.managedObjectContext undoManager] disableUndoRegistration];
	detailItem.fieldImageFile = relativePath;
	[[theApp.managedObjectContext undoManager] enableUndoRegistration];
</pre>
<p>Seemed very clear, but it didn&#8217;t work! So, after much poking around on the Internet, I found a posting that alluded to the fact that changes to undo don&#8217;t occur until the run loop executes. So, to get the desired effect, I ended up with the following code:</p>
<pre class="prettyprint">
	<strong>[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate:[NSDate date]];</strong>
	[[theApp.managedObjectContext undoManager] disableUndoRegistration];
	detailItem.fieldImageFile = relativePath;
	<strong>[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate:[NSDate date]];</strong>
	[[theApp.managedObjectContext undoManager] enableUndoRegistration];
</pre>
<p>Yet another head-scratching API decision from Apple.</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2011/02/02/iphone-core-dataundo-gotcha-of-the-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Key-value Observer (KVO) on the iPhone.</title>
		<link>http://smeans.com/2011/01/13/key-value-observer-kvo-on-the-iphone/</link>
		<comments>http://smeans.com/2011/01/13/key-value-observer-kvo-on-the-iphone/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 03:49:19 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=250</guid>
		<description><![CDATA[Here&#8217;s one for the you-learn-something-new-every-day file. Objective C supports a key-value-observer model that lets you monitor changes on an object&#8217;s property values. Unfortunately, I found this out the hard way while working on a MKMapKit project. What I wanted to do seemed simple: have a map view with a bunch of moving objects on it. [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s one for the you-learn-something-new-every-day file. Objective C supports a key-value-observer model that lets you monitor changes on an object&#8217;s property values. Unfortunately, I found this out the hard way while working on a <span class="code">MKMapKit</span> project.</p>
<p>What I wanted to do seemed simple: have a map view with a bunch of moving objects on it. Each object pulls its current position from an XML document on the web. I already had my XML-wrapper object written when I wanted to display it on the map, so I simply implemented the <span class="code">MKAnnotation</span> protocol. All of my objects appeared, and all seemed to be right with the world.</p>
<p>Then, I started updating my objects and found that the annotations didn&#8217;t move. At all. I found a bunch of people on the web trying to solve the same problem, but I wasn&#8217;t very happy with the solutions I found. Most of them involved removing the annotations and adding them back into the map view. But, thankfully, I found one article that mentioned KVO on the iPhone. I was pretty familiar with KVO from my Flex projects, but didn&#8217;t even realize it was supported in Objective C.</p>
<p>To make a long story short, if you don&#8217;t use the <span class="code">willChangeValueForKey</span> and <span class="code">didChangeValueForKey</span> before and after updating your <span class="code">coordinate</span> property on your annotation object, the <span class="code">MKMapView</span> will not be aware that it has moved. After bracketing my XML update code with those two calls, all of a sudden my annotations started moving around.</p>
<pre class="prettyprint">
-(void)xmlProperty:(NSString *)newXml
{
	[self willChangeValueForKey:@"coordinate"];
	[xml release];
	xml = [newXml retain];
	[self didChangeValueForKey:@"coordinate"];
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2011/01/13/key-value-observer-kvo-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exporting from Core Data on iOS.</title>
		<link>http://smeans.com/2011/01/07/exporting-from-core-data-on-ios/</link>
		<comments>http://smeans.com/2011/01/07/exporting-from-core-data-on-ios/#comments</comments>
		<pubDate>Sat, 08 Jan 2011 03:59:40 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=238</guid>
		<description><![CDATA[So, I&#8217;m working on the latest release of our scrapbooking app (Coolibah) and I needed to export some objects that are stored in SQLLite through Core Data to my server. After googling around for a while (and finding not much, it seems like search results have started to really suck lately) I had to strike [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;m working on the latest release of our scrapbooking app (<a href="http://blog.coolibah.me/">Coolibah</a>) and I needed to export some objects that are stored in SQLLite through Core Data to my server. After googling around for a while (and finding not much, it seems like search results have started to really suck lately) I had to strike out on my own and work something up. I got to use a very cool Objective C feature that I&#8217;ve only recently discovered: <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCategories.html#//apple_ref/doc/uid/TP30001163-CH20-TPXREF139">categories</a>.</p>
<p>I was able to extend the <span class="code">NSManagedObject</span> class and add a new <span class="code">xmlString</span> property. By using the <span class="code">entity</span> property to do some simple introspection, I was able to write a serialization function in about 50 lines of code. Enjoy!</p>
<h2>NSManagedObject+XMLSync.h</h2>
<pre class="prettyprint">//
//  Created by Scott Means on 1/5/11.
//  Released into the public domain without warranty.
#import &lt;CoreData/CoreData.h&gt;
#import &lt;Foundation/Foundation.h&gt;

@interface NSManagedObject (XMLSync)

@property (nonatomic, readonly) NSString *xmlString;

@end
</pre>
<h2>NSManagedObject+XMLSync.m</h2>
<pre class="prettyprint">//
//  Created by Scott Means on 1/5/11.
//  Released into the public domain without warranty.

#import "NSManagedObject+XMLSync.h"

@implementation NSManagedObject (XMLSync)

- (NSString *)xmlString
{
	NSEntityDescription *ed = self.entity;
	NSURL *uri = self.objectID.URIRepresentation;
	NSMutableString *x = [NSMutableString stringWithFormat:@"<%@ id=\"/%@%@\"",
                ed.name, uri.host, uri.path];

	for (NSString *a in ed.attributesByName.allKeys) {
		id value = [self valueForKey:a];

		if (value) {
			if ([value isKindOfClass:[NSString class]]) {
				[x appendFormat:@" %@=\"%@\"", a, value];
			} else {
				if (![value respondsToSelector:@selector(stringValue)]) {
					NSLog(@"no stringValue");
				}
				[x appendFormat:@" %@=\"%@\"", a, [value stringValue]];
			}
		}
	}

	bool hasChildren = NO;

	for (NSString *r in ed.relationshipsByName) {
		if (!hasChildren) {
			[x appendString:@"/>"];
			hasChildren = YES;
		}

		NSRelationshipDescription *rd = [ed.relationshipsByName objectForKey:r];

		if (rd.isToMany) {
			hasChildren = YES;
			[x appendFormat:@"<%@>", r];

			for (NSManagedObject *c in [self valueForKey:r]) {
				[x appendString:c.xmlString];
			}

			[x appendFormat:@"</%@>", r];
		}
	}

	if (hasChildren) {
		[x appendFormat:@"</%@>", ed.name];
	}

	return x;
}

@end
</pre>
<p>Next project: figure out how to do better code formatting in WordPress!</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2011/01/07/exporting-from-core-data-on-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Merry Christmas! Have an XML parser :-)</title>
		<link>http://smeans.com/2010/12/25/merry-christmas-have-an-xml-parser/</link>
		<comments>http://smeans.com/2010/12/25/merry-christmas-have-an-xml-parser/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 02:41:32 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[picoSax]]></category>
		<category><![CDATA[SAX]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=226</guid>
		<description><![CDATA[So, after the entire Santa experience and after my kids left to be with their mother, I decided to pay a visit to the ghost of Source Code past. I dug up a little XML parser I wrote to accompany the Book of Sax. I was amazed that the code built and ran the first [...]]]></description>
			<content:encoded><![CDATA[<p>So, after the entire Santa experience and after my kids left to be with their mother, I decided to pay a visit to the ghost of Source Code past. I dug up a little XML parser I wrote to accompany the <a href="http://www.amazon.com/Book-SAX-Simple-API-XML/dp/1886411778/ref=sr_1_13?ie=UTF8&#038;qid=1293331059&#038;sr=8-13">Book of Sax</a>. I was amazed that the code built and ran the first time (with several warnings that show how the Java language has changed in the past 10 years or so.) So, if you need a very small and pretty fast XML parser in Java, go to github and clone <a href="https://github.com/smeans/picoSax">picoSax</a>. If you go in and clean up all of the warnings, I&#8217;ll even send you a copy of the book!</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2010/12/25/merry-christmas-have-an-xml-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Notebook: first impressions.</title>
		<link>http://smeans.com/2010/12/20/google-notebook-first-impressions/</link>
		<comments>http://smeans.com/2010/12/20/google-notebook-first-impressions/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 03:15:42 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[Google Notebook]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=225</guid>
		<description><![CDATA[I&#8217;m typing this on my shiny new Google Notebook, which I found sitting on my front steps when I got back from a weekend in the mountains with my family. I filled out the form with Google on December 7th, and to be honest I&#8217;d kind of forgotten about doing it. So when I brought [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m typing this on my shiny new Google Notebook, which I found sitting on my front steps when I got back from a weekend in the mountains with my family. I filled out the form with Google on December 7th, and to be honest I&#8217;d kind of forgotten about doing it. So when I brought the box inside I checked it for leaking fluids or ticking noises. It had neither, but when I opened the outer box I was confronted with this:<br />
<a href="http://smeans.com/wp-content/uploads/2010/12/GoogleNotebookMousetrap-e1292900705168.jpg"><img src="http://smeans.com/wp-content/uploads/2010/12/GoogleNotebookMousetrap-e1292900705168-300x225.jpg" alt="" title="GoogleNotebookBox" width="300" height="225" class="aligncenter size-medium wp-image-227" /></a><br />
(note: I tried to rotate this image using the image editor in WordPress, but for some reason the rotate button wasn&#8217;t working in Chrome)<br />
I took some pictures of the box and the documentation, and I tried to get a picture of the screen as it booted up. To do this, I opened and closed the laptop a few times. Big mistake, because pretty soon I saw this:<br />
<a href="http://smeans.com/wp-content/uploads/2010/12/photo.jpg"><img src="http://smeans.com/wp-content/uploads/2010/12/photo-300x225.jpg" alt="" title="photo" width="300" height="225" class="aligncenter size-medium wp-image-231" /></a><br />
So, before I&#8217;d even logged in, I had a bricked Google Notebook. Bummer. But, fortunately the recovery process was pretty painless. One 4GB thumb drive (and some tedious command line shennanigans) later, and I&#8217;m now working in the cloud.</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2010/12/20/google-notebook-first-impressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preserving good code for posterity.</title>
		<link>http://smeans.com/2010/10/15/preserving-good-code-for-posterity/</link>
		<comments>http://smeans.com/2010/10/15/preserving-good-code-for-posterity/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 15:09:18 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=212</guid>
		<description><![CDATA[I&#8217;ve recently had to learn a couple of new programming languages in a hurry. I&#8217;m a pretty fair programmer in half-a-dozen other languages, but starting from scratch is always difficult. Even though flow control and syntax might be similar to something you already know (&#8220;is it for each or foreach?&#8221;) there is definitely a &#8220;natural&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently had to learn a couple of new programming languages in a hurry. I&#8217;m a pretty fair programmer in half-a-dozen other languages, but starting from scratch is always difficult. Even though flow control and syntax might be similar to something you already know (&#8220;is it for each or foreach?&#8221;) there is definitely a &#8220;natural&#8221; way to do things in every language. Some of the worst coding train-wrecks I&#8217;ve seen (and I&#8217;ve seen some doozies) happen when a programmer attempts to do something complex in a language they barely understand. They might know a way to do it in another language and try to map that knowledge into the target language, but that rarely leads to a clean solution.</p>
<p>So, wanting to do my bit, I created a new website called <a href="http://www.nativecode.org">Native Code</a> to try to make this easier. My goal is to create a database of common low-level coding idioms (micro-patterns, if you like) and then have them expressed in as many programming languages as possible. And not just expressed, but expressed <b>well</b>. So, please feel free to add your own contributions, create your own idioms, and otherwise capture your coding know-how for the ages. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2010/10/15/preserving-good-code-for-posterity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m a guest blogger!</title>
		<link>http://smeans.com/2009/10/06/im-a-guest-blogger/</link>
		<comments>http://smeans.com/2009/10/06/im-a-guest-blogger/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 13:47:26 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[guest]]></category>
		<category><![CDATA[quintesocial]]></category>

		<guid isPermaLink="false">http://smeans.com/2009/10/06/im-a-guest-blogger/</guid>
		<description><![CDATA[Check it out, I&#8217;m on the Quintesocial blog: http://www.meetbarb.com/2009/10/guest-blogger-scott-means.html]]></description>
			<content:encoded><![CDATA[<p>Check it out, I&#8217;m on the Quintesocial blog:</p>
<p>http://www.meetbarb.com/2009/10/guest-blogger-scott-means.html</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2009/10/06/im-a-guest-blogger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
