<?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>eriksmartt.com</title>
	<atom:link href="http://www.eriksmartt.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.eriksmartt.com/blog</link>
	<description>my little chunk of bandwidth, since 1999</description>
	<lastBuildDate>Thu, 05 Apr 2012 17:08:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-beta4-20738</generator>
		<item>
		<title>Google Glass as an Apple strategy</title>
		<link>http://www.eriksmartt.com/blog/archives/1645</link>
		<comments>http://www.eriksmartt.com/blog/archives/1645#comments</comments>
		<pubDate>Thu, 05 Apr 2012 17:08:52 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[technolust]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1645</guid>
		<description><![CDATA[If the recently hyped Google Goggles (AKA Project Glass) aren&#8217;t vaporware, they represent a classic move from the Apple playbook: Invent the products that replace your best-sellers I&#8217;m thinking of this in terms of Glass replacing Android handsets. Apple doesn&#8217;t &#8230; <a href="http://www.eriksmartt.com/blog/archives/1645">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If the recently hyped Google Goggles (AKA <a href="https://plus.google.com/111626127367496192147/posts">Project Glass</a>) aren&#8217;t vaporware, they represent a classic move from the Apple playbook:</p>
<h3>Invent the products that replace your best-sellers</h3>
<p>I&#8217;m thinking of this in terms of Glass replacing Android handsets.  Apple doesn&#8217;t wait for a competitor to offer something better than their products &#8212; they control the killing-off of their best-sellers with each next-generation release.  While some companies delay innovation in attempt to extract every ounce of profit (and increasing margins) out of their products, Apple doesn&#8217;t leave their timelines, forecasting, and supply-chain in the hands on it&#8217;s competitors.</p>
<h3>Don&#8217;t compete head-on (Android v. iOS)</h3>
<p>Android is making great progress, but it&#8217;s an head-on fight; and advancements are always compared to the iPhone.  Sure, there&#8217;s money to be made with Android handsets &#8212; but it&#8217;s a &#8220;me too&#8221; game.</p>
<h3>Change the conversation (iPad vs. everything else)</h3>
<p>Tablet computing is hot right now; but so far, trying to capture a piece of the iPad market (AKA the Tablet market), is a losing proposition.  Apple <i>owns</i> this segment.  Instead of playing catch-up, change the conversion.  Invent a new platform, and own it&#8217;s market segment instead.</p>
<p>&nbsp; </p>
<p>Of course, as nice as all of this sounds, <a href="http://daringfireball.net/linked/2012/04/04/project-glass">daringfireball</a> has the right interpretation: This vaporware R&amp;D fluff looks more like Microsoft or Nokia than Apple.  Apple wouldn&#8217;t say &#8220;we&#8217;re exploring ideas for a future product that will change the world.&#8221;  Apple would just do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1645/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python decorator to perma-cache method results</title>
		<link>http://www.eriksmartt.com/blog/archives/1599</link>
		<comments>http://www.eriksmartt.com/blog/archives/1599#comments</comments>
		<pubDate>Mon, 19 Mar 2012 21:30:22 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1599</guid>
		<description><![CDATA[I was generating some reports recently that involved accessing expensive object methods whose results were known to not change on subsequent calls; However, instead of using local variables, I sketched-out this quick decorator to save method responses as variables on &#8230; <a href="http://www.eriksmartt.com/blog/archives/1599">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was generating some reports recently that involved accessing expensive object methods whose results were known to not change on subsequent calls; However, instead of using local variables, I sketched-out this quick decorator to save method responses as variables on the object (using a leading &#8216;_&#8217; followed by the method-name as the variable name):</p>
<pre><code>
def cache_method_results(fn):
    def _view(self, *args, **kwargs):
        var_name = '_{n}'.format(n=fn.__name__)

        if var_name in self.__dict__:  # Return the copy we have
            return self.__dict__[var_name]

        else:  # Run the function and save its result
            self.__dict__[var_name] = fn(self, *args, **kwargs)
            return self.__dict__[var_name]

    return _view
</code></pre>
<p>You might use it like this:</p>
<pre><code>
class Foo(object):
    @cache_method_results
    def some_expensive_operation(self):
        ...calculate something big and unchanging...
        return results


f = Foo()
print(f.some_expensive_operation())  # This first call will run the calculation
...
print(f.some_expensive_operation())  # but this one will used the cached result instead
</code></pre>
<p>It&#8217;s not rocket science, but these little tricks add to the fun of using Python.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1599/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leanpub</title>
		<link>http://www.eriksmartt.com/blog/archives/1556</link>
		<comments>http://www.eriksmartt.com/blog/archives/1556#comments</comments>
		<pubDate>Thu, 30 Jun 2011 15:16:54 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1556</guid>
		<description><![CDATA[Leanpub &#8211; Neat ebook publishing service that uses a shared Dropbox, and Markdown (or HTML) files. &#160;Geeky, but amazingly self-service and easy.]]></description>
			<content:encoded><![CDATA[<div class="bookmark"><a href="http://leanpub.com/">Leanpub</a> &#8211; Neat ebook publishing service that uses a shared Dropbox, and Markdown (or HTML) files. &nbsp;Geeky, but amazingly self-service and easy.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1556/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing Hadoop jobs as shell commands</title>
		<link>http://www.eriksmartt.com/blog/archives/1532</link>
		<comments>http://www.eriksmartt.com/blog/archives/1532#comments</comments>
		<pubDate>Thu, 09 Jun 2011 03:31:57 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1532</guid>
		<description><![CDATA[parbash &#8211; Parallel BASH &#8211; Google Project Hosting &#8211; Looks like an interesting project &#8212; it allows writing/running Hadoop jobs as shell commands (grep, awk, perl, etc.) for text processing.]]></description>
			<content:encoded><![CDATA[<div class="bookmark"><a href="http://code.google.com/p/parbash/">parbash &#8211; Parallel BASH &#8211; Google Project Hosting</a> &#8211; Looks like an interesting project &#8212; it allows writing/running Hadoop jobs as shell commands (grep, awk, perl, etc.) for text processing.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1532/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python library for auto-tagging text</title>
		<link>http://www.eriksmartt.com/blog/archives/1516</link>
		<comments>http://www.eriksmartt.com/blog/archives/1516#comments</comments>
		<pubDate>Tue, 24 May 2011 16:59:18 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1516</guid>
		<description><![CDATA[Here&#8217;s an interesting text-classifying library that extracts/computes &#8220;tags&#8221; for a given piece of text: apresta/tagger &#8211; GitHub &#8211; Python library that generates &#039;tags&#039; for a piece of text (i.e., useful for auto-tagging, or classifying an article.)]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an interesting text-classifying library that extracts/computes &#8220;tags&#8221; for a given piece of text:</p>
<div class="bookmark"><a href="https://github.com/apresta/tagger">apresta/tagger &#8211; GitHub</a> &#8211; Python library that generates &#039;tags&#039; for a piece of text (i.e., useful for auto-tagging, or classifying an article.)</div>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1516/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Mining of Massive Datasets&#8221;</title>
		<link>http://www.eriksmartt.com/blog/archives/1518</link>
		<comments>http://www.eriksmartt.com/blog/archives/1518#comments</comments>
		<pubDate>Tue, 24 May 2011 16:56:24 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1518</guid>
		<description><![CDATA[My earlier work with Social Book Club, and current work with Kirkus Reviews, has me spending a fair amount of time exploring and developing recommendation systems. There are a variety of good books and papers on the subject, but I &#8230; <a href="http://www.eriksmartt.com/blog/archives/1518">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My earlier work with <a href="http://www.socialbookclub.com/">Social Book Club</a>, and current work with <a href="http://www.kirkusreviews.com/">Kirkus Reviews</a>, has me spending a fair amount of time exploring and developing recommendation systems.  There are a variety of good books and papers on the subject, but I recently finished reading &#8220;<a href="http://infolab.stanford.edu/~ullman/mmds.html">Mining of Massive Datasets</a>&#8221; (a free ebook that accompanies a Stanford CS course on Data Mining), and it was a surprisingly good read.</p>
<p>The book covers a number of topics that come up frequently in data mining: reworking algorithms into a map-reduce paradigm, finding similar items, mining streams of data, finding frequent items, clustering, and recommending items.  Unlike many texts on the subject, you won&#8217;t find source-code in this book; but rather, extensive explanations of multiple techniques and algorithms to address each topic.  This lends itself to a better understanding of the theory, so that you understand the trade-offs you might be making when implementing your own systems.</p>
<p>There are easier texts to get through, but if you&#8217;re getting started with recommendation or data-mining systems, and haven&#8217;t read this book, I&#8217;d encourage you to do so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1518/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cleaning an Idle Air Control Value (IACV) on a Subaru</title>
		<link>http://www.eriksmartt.com/blog/archives/1504</link>
		<comments>http://www.eriksmartt.com/blog/archives/1504#comments</comments>
		<pubDate>Tue, 17 May 2011 03:22:56 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[automotive]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[motorsports]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1504</guid>
		<description><![CDATA[My &#8217;02 WRX started-up with a wandering (and lean) idle this morning. Thankfully, all it took was a $6 gasket and 20-minutes of pulling, cleaning, and re-installing the IACV. So far, it seems to have worked. See the following for &#8230; <a href="http://www.eriksmartt.com/blog/archives/1504">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My &#8217;02 WRX started-up with a wandering (and lean) idle this morning.  Thankfully, all it took was a $6 gasket and 20-minutes of pulling, cleaning, and re-installing the IACV.  So far, it seems to have worked.  See the following for detailed instructions:</p>
<div class="bookmark"><a href="http://forums.nasioc.com/forums/showthread.php?t=781242">Cleaning And Reattaching The IACV (Idle Air Control Valve) &#8211; NASIOC</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1504/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last day at Optaros&#8230;</title>
		<link>http://www.eriksmartt.com/blog/archives/1493</link>
		<comments>http://www.eriksmartt.com/blog/archives/1493#comments</comments>
		<pubDate>Fri, 19 Nov 2010 23:47:26 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/1493</guid>
		<description><![CDATA[Last day at Optaros. New world awaits on Monday. Exciting times!]]></description>
			<content:encoded><![CDATA[<p>Last day at Optaros. New world awaits on Monday. Exciting times!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1493/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mint offering a free view into aggregate spending patterns</title>
		<link>http://www.eriksmartt.com/blog/archives/1486</link>
		<comments>http://www.eriksmartt.com/blog/archives/1486#comments</comments>
		<pubDate>Mon, 01 Nov 2010 02:10:03 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/1486</guid>
		<description><![CDATA[One of the most fascinating aspects of http://data.mint.com/ is that it&#8217;s public. CC companies have had similar data, but never shared it.]]></description>
			<content:encoded><![CDATA[<p>One of the most fascinating aspects of <a href="http://data.mint.com/" rel="nofollow">http://data.mint.com/</a> is that it&#8217;s public. CC companies have had similar data, but never shared it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1486/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mr. Job: A python framework for writing Hadoop jobs</title>
		<link>http://www.eriksmartt.com/blog/archives/1483</link>
		<comments>http://www.eriksmartt.com/blog/archives/1483#comments</comments>
		<pubDate>Sat, 30 Oct 2010 18:02:09 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/1483</guid>
		<description><![CDATA[mrjob at master &#8211; GitHub &#8211; A python framework for writing/deploying jobs to a Hadoop cluster or Amazon Elastic MapReduce service.]]></description>
			<content:encoded><![CDATA[<div class="bookmark"><a href="http://github.com/Yelp/mrjob">mrjob at master &#8211; GitHub</a> &#8211; A python framework for writing/deploying jobs to a Hadoop cluster or Amazon Elastic MapReduce service.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1483/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using progressive enhancement for mobile/web layout</title>
		<link>http://www.eriksmartt.com/blog/archives/1463</link>
		<comments>http://www.eriksmartt.com/blog/archives/1463#comments</comments>
		<pubDate>Tue, 12 Oct 2010 04:00:25 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/1463</guid>
		<description><![CDATA[&#34;Rethinking the Mobile Web&#34; by Yiibu &#8211; Contains some nice examples on using progressive enhancement to skin a website for a wide variety of devices (desktop, mobile, etc.)]]></description>
			<content:encoded><![CDATA[<div class="bookmark"><a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">&quot;Rethinking the Mobile Web&quot; by Yiibu</a> &#8211; Contains some nice examples on using progressive enhancement to skin a website for a wide variety of devices (desktop, mobile, etc.)</div>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1463/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You can&#8217;t (afford to) innovate like Apple</title>
		<link>http://www.eriksmartt.com/blog/archives/1461</link>
		<comments>http://www.eriksmartt.com/blog/archives/1461#comments</comments>
		<pubDate>Wed, 06 Oct 2010 14:00:44 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/1461</guid>
		<description><![CDATA[You Can&#8217;t Innovate Like Apple &#8212; by Pragmatic Marketing &#8211; A great piece on Apple design and experience, and what it takes to achieve it.]]></description>
			<content:encoded><![CDATA[<div class="bookmark"><a href="http://www.pragmaticmarketing.com/publications/magazine/6/4/you_cant_innovate_like_apple">You Can&#8217;t Innovate Like Apple &mdash; by Pragmatic Marketing</a> &#8211; A great piece on Apple design and experience, and what it takes to achieve it.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1461/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

