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

<channel>
	<title>e-huned.com</title>
	<atom:link href="http://e-huned.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://e-huned.com</link>
	<description>huned botee</description>
	<pubDate>Sun, 06 Jul 2008 16:27:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>extract links from craigslist rdf feeds with python</title>
		<link>http://e-huned.com/2008/07/02/extract-links-from-craigslist-rdf-feeds-with-python/</link>
		<comments>http://e-huned.com/2008/07/02/extract-links-from-craigslist-rdf-feeds-with-python/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 04:52:00 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/?p=172</guid>
		<description><![CDATA[note the use of urlfetch &#8212; i&#8217;m using this in an app engine application.

from BeautifulSoup import BeautifulSoup

class RDF(dict):
  def __init__(self, url):
    try:
      self['contents'] = BeautifulSoup(urlfetch.fetch(url).contents)
    except:
      self['contents'] = &#8221;
  def links(self):
    [ item['rdf:about'] for [...]]]></description>
			<content:encoded><![CDATA[<p>note the use of urlfetch &mdash; i&#8217;m using this in an app engine application.</p>
<pre>
from BeautifulSoup import BeautifulSoup

class RDF(dict):
  def __init__(self, url):
    try:
      self['contents'] = BeautifulSoup(urlfetch.fetch(url).contents)
    except:
      self['contents'] = &#8221;
  def links(self):
    [ item['rdf:about'] for item in self['contents'].findAll(&#8217;item&#8217;) ] 

if __name__ == &#8216;__main__&#8217;
  from __main__ import RDF
  url = &#8216;http://sfbay.craigslist.org/search/apa/sfc?format=rss&#038;bedrooms=2&#038;s=0&#038;maxAsk=3000&#8242;
  print RDF(url).links
</pre>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/07/02/extract-links-from-craigslist-rdf-feeds-with-python/feed/</wfw:commentRss>
		</item>
		<item>
		<title>problems with google app engine</title>
		<link>http://e-huned.com/2008/07/02/problems-with-google-app-engine/</link>
		<comments>http://e-huned.com/2008/07/02/problems-with-google-app-engine/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 04:14:11 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/?p=171</guid>
		<description><![CDATA[
if you&#8217;re just getting started with app engine, you&#8217;ll encounter limitations, some more debilitating than others.  i&#8217;ll keep a list of those i encounter.


currently, you can&#8217;t import urllib2.  you&#8217;re limited to using urlfetch.  urlfetch is decent, but you&#8217;d have to re-write/tweak parts of existing libraries that use the ubiquitious urllib2.  for [...]]]></description>
			<content:encoded><![CDATA[<p>
if you&#8217;re just getting started with app engine, you&#8217;ll encounter limitations, some more debilitating than others.  i&#8217;ll keep a list of those i encounter.
</p>
<ol>
<li>currently, you can&#8217;t import urllib2.  you&#8217;re limited to using urlfetch.  urlfetch is decent, but you&#8217;d have to re-write/tweak parts of existing libraries that use the ubiquitious urllib2.  for example, say goodbye to using the <a href="http://feedparser.org">Universal Feed Parser</a> without significant hacking. in the interim, i&#8217;m able to use a slightly hacked copy of <a href="http://www.crummy.com/software/BeautifulSoup">BeautifulSoup</a> to suck down a feed and parse it out.  (2008-07-02, see <a href="http://code.google.com/p/googleappengine/issues/detail?id=61">issue 61</a>)</li>
<li>if your requests are running for a while, you&#8217;ll get an google3.apphosting.runtime.DeadlineExceededError exception.  this isn&#8217;t anything new in the world of the internet, but app engine seems to be a little less lenient in allowing slower code.  i think this is a good thing, overall, because it forces you to make web apps that aren&#8217;t sucky. (2008-07-03)</li>
<li>difficult to get sane URLs if you&#8217;re referring to a single object because str(db.Model.key()) is so awfully long.  i actually want some kind of short-ish id with which to build permalinks.  but, now, that&#8217;s yet *another* thing i have to write code for.  how annoying. (2005-07-04)</li>
<li>i can&#8217;t use db.ReferenceProperty() with one of my custom classes.  I have to db.ReferenceProperty(db.Key), which is ok.  but gross. (2008-07-05)</li>
<li>the handlers are pretty basic.  maybe that&#8217;s good.  but i find myself having to decorate handlers with richer functionality so i can write more succint higher-level code. (2008-07-05)</li>
<li>python.  i find it limiting in comparison to ruby.  maybe i&#8217;m still a bit green with it.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/07/02/problems-with-google-app-engine/feed/</wfw:commentRss>
		</item>
		<item>
		<title>nil.nil? # =&gt; false</title>
		<link>http://e-huned.com/2008/07/01/nilnil-false/</link>
		<comments>http://e-huned.com/2008/07/01/nilnil-false/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 00:16:51 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/?p=170</guid>
		<description><![CDATA[this is good if you&#8217;re sadist.  (never, ever do this if you work with me.)

class NilClass
 def nil?
   false
 end
end

(via conversation with visnu.  he has more.)
]]></description>
			<content:encoded><![CDATA[<p>this is good if you&#8217;re sadist.  (never, ever do this if you work with me.)</p>
<pre>
class NilClass
 def nil?
   false
 end
end
</pre>
<p>(via conversation with <a href="http://me.visnup.com">visnu</a>.  <a href="http://me.visnup.com/entries/7648-fucking-up-ruby">he has more</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/07/01/nilnil-false/feed/</wfw:commentRss>
		</item>
		<item>
		<title>is that string a number? (in ruby)</title>
		<link>http://e-huned.com/2008/06/30/is-that-string-a-number-in-ruby/</link>
		<comments>http://e-huned.com/2008/06/30/is-that-string-a-number-in-ruby/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 21:35:09 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/?p=169</guid>
		<description><![CDATA[sometimes it&#8217;s nice to determine if the content of a String is numeric.  String#to_i and String#to_f don&#8217;t really help because they&#8217;ll silently coerce stuff into zero (e.g., &#8220;huned&#8221;.to_i # => 0).  so here&#8217;s a little thing i built a long time ago.  i updated it today to handle commas and parenthesis, which [...]]]></description>
			<content:encoded><![CDATA[<p>sometimes it&#8217;s nice to determine if the content of a String is numeric.  String#to_i and String#to_f don&#8217;t really help because they&#8217;ll silently coerce stuff into zero (e.g., &#8220;huned&#8221;.to_i # => 0).  so here&#8217;s a little thing i built a long time ago.  i updated it today to handle commas and parenthesis, which are often used in financial data.</p>
<pre>
class Regexp
  NUMERIC = Regexp.union(%r{^-?\d{1,3}(,\d{3}|\d+)*(\.\d+)*$},
    %r{^\(?\d{1,3}(,\d{3}|\d+)*(\.\d+)*\)?$})
end

class String
  def numeric?
    match(Regexp::NUMERIC) != nil
  end
end
</pre>
<p>examples!</p>
<ul>
<li>&#8220;1.234&#8243;.numeric? # => true</li>
<li>&#8220;1,234,567&#8243;.numeric? # => true</li>
<li>&#8220;1,234,567.23583&#8243;.numeric? # => true</li>
<li>&#8220;1234567&#8243;.numeric? # => true</li>
<li>&#8220;(1,234)&#8221;.numeric? # => true</li>
<li>&#8220;-1,234&#8243;.numeric? # => true</li>
<li>etc</li>
</ul>
<p>it works, but i&#8217;m not totally happy with the regular expression.  who has a better one?</p>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/06/30/is-that-string-a-number-in-ruby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>the nimble start-up</title>
		<link>http://e-huned.com/2008/06/26/the-nimble-start-up/</link>
		<comments>http://e-huned.com/2008/06/26/the-nimble-start-up/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 17:38:53 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/?p=168</guid>
		<description><![CDATA[you are the nimble start-up.  so, why not spend your energy on top notch product development?  without that, sales, marketing, support, strategic hiring, are all for naught.  for now, just concentrate on building unequivocal value.  do it quickly, because yesterday is already gone.
]]></description>
			<content:encoded><![CDATA[<p>you are the nimble start-up.  so, why not spend your energy on top notch product development?  without that, sales, marketing, support, strategic hiring, are all for naught.  for now, just concentrate on building unequivocal value.  do it quickly, because yesterday is already gone.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/06/26/the-nimble-start-up/feed/</wfw:commentRss>
		</item>
		<item>
		<title>use the flickr api with javascript</title>
		<link>http://e-huned.com/2008/06/16/use-the-flickr-api-with-javascript/</link>
		<comments>http://e-huned.com/2008/06/16/use-the-flickr-api-with-javascript/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 22:12:25 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/2008/06/16/use-the-flickr-api-with-javascript/</guid>
		<description><![CDATA[
.flickr-photo { border: solid 2px #000000; }
.flickr-yourcomment { }
.flickr-frame { text-align: left; padding: 3px; }
.flickr-caption { font-size: 0.8em; margin-top: 0px; }


	

	flickr api with javascript, originally uploaded by hunedx.


]]></description>
			<content:encoded><![CDATA[<style type="text/css">
.flickr-photo { border: solid 2px #000000; }
.flickr-yourcomment { }
.flickr-frame { text-align: left; padding: 3px; }
.flickr-caption { font-size: 0.8em; margin-top: 0px; }
</style>
<div class="flickr-frame">
	<a href="http://www.flickr.com/photos/huned/2584707705/" title="photo sharing"><img src="http://farm4.static.flickr.com/3026/2584707705_81f0638bf0_m.jpg" class="flickr-photo" alt="" /></a><br />
<br />
	<span class="flickr-caption"><a href="http://www.flickr.com/photos/huned/2584707705/">flickr api with javascript</a>, originally uploaded by <a href="http://www.flickr.com/people/huned/">hunedx</a>.</span>
</div>
<p class="flickr-yourcomment">
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/06/16/use-the-flickr-api-with-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>proxying the flickr api</title>
		<link>http://e-huned.com/2008/06/15/proxying-the-flickr-api-2/</link>
		<comments>http://e-huned.com/2008/06/15/proxying-the-flickr-api-2/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 19:40:32 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/2008/06/15/proxying-the-flickr-api-2/</guid>
		<description><![CDATA[
.flickr-photo { border: solid 2px #000000; }
.flickr-yourcomment { }
.flickr-frame { text-align: left; padding: 3px; }
.flickr-caption { font-size: 0.8em; margin-top: 0px; }


	

	proxying the flickr api, originally uploaded by hunedx.

]]></description>
			<content:encoded><![CDATA[<style type="text/css">
.flickr-photo { border: solid 2px #000000; }
.flickr-yourcomment { }
.flickr-frame { text-align: left; padding: 3px; }
.flickr-caption { font-size: 0.8em; margin-top: 0px; }
</style>
<div class="flickr-frame">
	<a href="http://www.flickr.com/photos/huned/2581641816/" title="photo sharing"><img src="http://farm3.static.flickr.com/2182/2581641816_db1323cb11_m.jpg" class="flickr-photo" alt="" /></a><br />
<br />
	<span class="flickr-caption"><a href="http://www.flickr.com/photos/huned/2581641816/">proxying the flickr api</a>, originally uploaded by <a href="http://www.flickr.com/people/huned/">hunedx</a>.</span>
</div>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/06/15/proxying-the-flickr-api-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>today, i have eaten&#8230;</title>
		<link>http://e-huned.com/2008/06/13/today-i-have-eaten/</link>
		<comments>http://e-huned.com/2008/06/13/today-i-have-eaten/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 22:32:11 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/?p=162</guid>
		<description><![CDATA[thus far&#8230;

a smallish homemade cookie
a coffee on the way to work
green tea x 2
a safeway cookie from the work kitchen
earl grey tea

i should be hungry, but i&#8217;m not at all.
]]></description>
			<content:encoded><![CDATA[<p>thus far&#8230;</p>
<ul>
<li>a smallish homemade cookie</li>
<li>a coffee on the way to work</li>
<li>green tea x 2</li>
<li>a safeway cookie from the work kitchen</li>
<li>earl grey tea</li>
</ul>
<p>i should be hungry, but i&#8217;m not at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/06/13/today-i-have-eaten/feed/</wfw:commentRss>
		</item>
		<item>
		<title>faster scriptaculous visual effects by default</title>
		<link>http://e-huned.com/2008/06/13/faster-scriptaculous-visual-effects-by-default/</link>
		<comments>http://e-huned.com/2008/06/13/faster-scriptaculous-visual-effects-by-default/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 16:03:47 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/?p=161</guid>
		<description><![CDATA[if you think the default visual effects for scriptaculous are too painfully slow, use this chunk of code to speed it up.  (from visnu.

if (typeof(Effect) != "undefined" &#038;&#038; Effect.DefaultOptions) {
  // speed up animations
  Effect.DefaultOptions.duration = 0.2;
}

]]></description>
			<content:encoded><![CDATA[<p>if you think the default visual effects for scriptaculous are too painfully slow, use this chunk of code to speed it up.  (from <a href="http://me.visnup.com">visnu</a>.</p>
<pre>
if (typeof(Effect) != "undefined" &#038;&#038; Effect.DefaultOptions) {
  // speed up animations
  Effect.DefaultOptions.duration = 0.2;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/06/13/faster-scriptaculous-visual-effects-by-default/feed/</wfw:commentRss>
		</item>
		<item>
		<title>commodities</title>
		<link>http://e-huned.com/2008/06/11/commodities/</link>
		<comments>http://e-huned.com/2008/06/11/commodities/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 14:50:45 +0000</pubDate>
		<dc:creator>huned</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://e-huned.com/?p=160</guid>
		<description><![CDATA[had this saved on my computer, but moving it here.
commodities

undifferentiated.  you buy based on price.
characterized by me-too products, overcapacity, price wars
drucker: &#8220;In a commodity market, you can only be as good as your dumbest competitor.&#8221;

commodity products

airline seats
RAM
gasoline

danger of commmoditization

harder to build revenue stream
harder to invest in innovation
customer base prone to churn

solutions against commoditization?

innovate
bundle
segment - [...]]]></description>
			<content:encoded><![CDATA[<p>had this saved on my computer, but moving it here.</p>
<p>commodities</p>
<ul>
<li>undifferentiated.  you buy based on price.</li>
<li>characterized by me-too products, overcapacity, price wars</li>
<li>drucker: &#8220;In a commodity market, you can only be as good as your dumbest competitor.&#8221;</li>
</ul>
<p>commodity products</p>
<ul>
<li>airline seats</li>
<li>RAM</li>
<li>gasoline</li>
</ul>
<p>danger of commmoditization</p>
<ul>
<li>harder to build revenue stream</li>
<li>harder to invest in innovation</li>
<li>customer base prone to churn</li>
</ul>
<p>solutions against commoditization?</p>
<ul>
<li>innovate</li>
<li>bundle</li>
<li>segment - find customers who are less sensitive to high prices (e.g., lock a multinational into an expensive multi-year contract)</li>
</ul>
<p>so, if you find yourself building a commodity product it would make sense to step back and revisit some of your assumptions about who your customers are, what their needs are, and why they&#8217;ll buy from you as opposed to brand x. (and, no, lower cost doesn&#8217;t count unless it&#8217;s something obscene like an order of magnitude &#8212; but even then, how do you scale your business up?)</p>
]]></content:encoded>
			<wfw:commentRss>http://e-huned.com/2008/06/11/commodities/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
