<?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/blog &#187; software</title>
	<atom:link href="http://www.eriksmartt.com/blog/archives/tag/software/feed" rel="self" type="application/rss+xml" />
	<link>http://www.eriksmartt.com/blog</link>
	<description>my little chunk of bandwidth</description>
	<lastBuildDate>Thu, 30 Jun 2011 15:17:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19854</generator>
		<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 recently finished reading &#8220;Mining of Massive Datasets&#8221; (a free ebook that accompanies a Stanford CS [...]]]></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>JavaScript on the Server, and conversations at TXJS</title>
		<link>http://www.eriksmartt.com/blog/archives/1344</link>
		<comments>http://www.eriksmartt.com/blog/archives/1344#comments</comments>
		<pubDate>Fri, 11 Jun 2010 19:22:19 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1344</guid>
		<description><![CDATA[We&#8217;ve seen various attempts at using JavaScript on the server over the last decade. Mozilla&#8217;s Rhino (Java) engine fueled most of it. However, with the release of Google&#8217;s V8 (C++) engine (and the networking performance example set by Node.js), the conversation is gaining traction. The motivation for a 100% JavaScript stack, per conversations at Texas [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve seen various attempts at using JavaScript on the server over the last decade.  Mozilla&#8217;s <a href="http://www.mozilla.org/rhino/">Rhino</a> (Java) engine fueled most of it.  However, with the release of Google&#8217;s <a href="http://code.google.com/p/v8/">V8</a> (C++) engine (and the networking performance example set by <a href="http://nodejs.org">Node.js</a>), the conversation is gaining traction.</p>
<p>The motivation for a 100% JavaScript stack, per conversations at Texas JavaScript Conference (<a href="http://texasjavascript.com/">TXJS</a>) last weekend, is the desire to use a single programming language when developing web applications, rather than the mix of technologies we use today.  It&#8217;s not so much that JavaScript is the best language for application development (contrary to the JS fanboys), but since it&#8217;s what we&#8217;re stuck with on the client-side, it&#8217;s worth considering on the server-side.  With a single language, business logic can be reused on the client and the server (think form validation), and you avoid bugs caused by frequent language switching (i.e., using, or forgetting semi-colons, putting commas after the last item in an array, using the wrong comment delimiter, etc.)</p>
<p>The wrinkle in the 100% JavaScript argument, is whether JavaScript is actually the language you want to write your back-end in.  The language lacks package management standards (though <a href="http://commonjs.org/">CommonJS</a> is working to change that); It lacks the standard libraries and tools that the incumbents offer (i.e., no batteries included);  Maybe people who use it don&#8217;t actually know the language very well;  And it suffers from the multitude of bad examples and advice freely available online.</p>
<p>There have been some interesting Node-based applications developed already (i.e., <a href="http://mnutt.github.com/hummingbird/">Hummingbird</a>), and the JavaScript on App Engine efforts (i.e., <a href="http://www.appenginejs.org/">AppEngineJS</a>) will be interesting to watch as well.  (I expect both to foster more mature development patterns for large applications written in JavaScript.)  However, in the near term, the 100% JavaScript stack will likely remain as niche as the Erlang, Haskel, Lisp, etc. web frameworks (as interesting as they may be.)</p>
<p>The question for you (Mr./Mrs. web developer/web-savvy business person), is whether JavaScript on the back-end offers a competitive advantage.  Can you execute on an idea faster/better/cheaper than your competition because of your technology stack?</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1344/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8220;Coders at Work&#8221;</title>
		<link>http://www.eriksmartt.com/blog/archives/1270</link>
		<comments>http://www.eriksmartt.com/blog/archives/1270#comments</comments>
		<pubDate>Wed, 17 Feb 2010 16:02:23 +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=1270</guid>
		<description><![CDATA[I finished reading &#8220;Coders at Work&#8220; last night. In it, author Peter Seibel interviews 15 legendary programmers, discussing how they got started with computers, how they learned to program, how they read and debug code, etc. The interviews cover a wide range of opinions and approaches, and offers a fascinating look at &#8220;computer science&#8221; history. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/1430219483?ie=UTF8&#038;tag=eriksmarttcom&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1430219483"><img src="http://www.eriksmartt.com/blog/wp-content/uploads/2010/02/51DEnAtKzBL._SL160_.jpg" width="111" height="160" border="0" alt="Coders at Work book cover" /></a></p>
<p>I finished reading &#8220;<a href="http://www.amazon.com/gp/product/1430219483?ie=UTF8&#038;tag=eriksmarttcom&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1430219483">Coders at Work</a>&#8220;<img src="http://www.assoc-amazon.com/e/ir?t=eriksmarttcom&#038;l=as2&#038;o=1&#038;a=1430219483" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> last night.  In it, author <a href="http://www.gigamonkeys.com/blog/">Peter Seibel</a> interviews 15 legendary programmers, discussing how they got started with computers, how they learned to program, how they read and debug code, etc.  The interviews cover a wide range of opinions and approaches, and offers a fascinating look at &#8220;computer science&#8221; history.</p>
<p>The format of the book is a little unusual, in that it&#8217;s entirely interview transcripts.  No analysis.  No author-interpretation.  Just recorded conversations.  At first it&#8217;s a little surprising that one can publish a book like this; But then you get into the content and it&#8217;s wonderfully engaging.  Analysis and interpretation would just get in the way of letting these folks talk.  Reading direct quotes makes the content all the more exciting.</p>
<p>The book isn&#8217;t for everyone (obviously), but I rather enjoyed it.  There&#8217;s some great stories about the history of our profession, and many topics raised that inspired additional research.  (I went out and found a number of research papers referenced in the interviews, and bookmarked a lot of content for further exploration.)  There&#8217;s also a fair amount on the history of different programming languages, and I have a fascination with programming languages, so it was a great fit.</p>
<p>A few take-away themes and ideas:</p>
<ul>
<li>While programming was no easy task in the early days, at least it was possible to fully-understand the hardware and all the software running it (as opposed to modern computers.)  The modern computing environment presents very different challenges to present-day programmers, especially those new to the field.</li>
<li>Even some of best use print statements.</li>
<li>Passion and enthusiasm separate good programmers from great ones.</li>
<li>In academia, you have time to think about the &#8220;best&#8221; solution, without the deadlines imposed on commercial developers.</li>
<li>There&#8217;s certainly a component of &#8220;doing great work&#8221; that requires being in the right place at the right time &#8212; sometimes it&#8217;s just a matter of getting staffed on the right project.</li>
<li>There&#8217;s some negativity towards C/C++ in here, mostly due to it&#8217;s negative impact on compiler and high-level language development.  (i.e., one school of thought is that you give people a high-level language and make the compiler smart.  The other is that you give people a low-level language and let them do the work.  Unfortunately, humans aren&#8217;t so good at hand-writing code optimized for concurrency, but once you have a language that let&#8217;s them try, it&#8217;s hard to fund compiler research.)</li>
</ul>
<p>Here&#8217;s a few of the quotes I highlighted while reading:</p>
<blockquote><p>&#8220;One of the most important things for having a successful project is having people that have enough experience that they build the right thing. And barring that, if it’s something that you haven’t built before, that you don’t know how to do, then the next best thing you can do is to be flexible enough that if you build the wrong thing you can adjust.&#8221; &#8212; Peter Norvig</p></blockquote>
<blockquote><p>&#8220;&#8230;there are user-interface things where you just don’t know until you build it. You think this interaction will be great but then you show it to the user and half the users just can’t get it.&#8221; &#8212; Peter Norvig</p></blockquote>
<blockquote><p>&#8220;I get so much of a thrill bringing things to life that it doesn’t even matter if it’s wrong at first. The point is, that as soon as it comes to life it starts telling you what it is.&#8221; &#8212; Dan Ingalls</p></blockquote>
<blockquote><p>&#8220;&#8230;a complex algorithm requires complex code. And I’d much rather have a simple algorithm and simple code&#8230;&#8221; &#8212; Ken Thompson</p></blockquote>
<blockquote><p>&#8220;If you can really work hard and get some little piece of a big program to run twice as fast, then you could have gotten the whole program to run twice as fast if you had just waited a year or two.&#8221; &#8212; Ken Thompson</p></blockquote>
<blockquote><p>&#8220;if they’d have asked, &#8216;How did you fix the bug?&#8217;my answer would have been, &#8216;I couldn’t understand the code well enough to figure out what it was doing, so I rewrote it.&#8217;&#8221; &#8212; Bernie Cosell</p></blockquote>
<blockquote><p>&#8220;You have to supplement what your job is asking you to do. If your job requires that you do a Tcl thing, just learning enough Tcl to build the interface for the job is barely adequate. The right thing is, that weekend start hacking up some Tcl things so that by Monday morning you’re pretty well versed in the mechanics of it.&#8221; &#8212; Bernie Cosell</p></blockquote>
<blockquote><p>&#8220;&#8230;computer-program source code is for people, not for computers. Computers don’t care.&#8221; &#8212; Bernie Cosell</p></blockquote>
<blockquote><p>&#8220;if you rewrite a hundred lines of code, you may well have fixed the one bug and introduced six new ones.&#8221; &#8212; Bernie Cosell</p></blockquote>
<blockquote><p>&#8220;I had two convictions, which actually served me well: that programs ought to make sense and there are very, very few inherently hard problems. Anything that looks really hard or tricky is probably more the product of the programmer not fully understanding what they needed to do&#8221; &#8212; Bernie Cosell</p></blockquote>
<blockquote><p>&#8220;You never, ever fix the bug in the place where you find it. My rule is, &#8216;If you knew then what you know now about the fact that this piece of code is broken, how would you have organized this piece of the routine?&#8217;&#8221; &#8212; Bernie Cosell</p></blockquote>
<blockquote><p>&#8220;Part of what I call the artistry of the computer program is how easy it is for future people to be able to change it without breaking it.&#8221; &#8212; Bernie Cosell</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1270/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recovering deleted images from a Nokia N90 (Symbian OS)</title>
		<link>http://www.eriksmartt.com/blog/archives/414</link>
		<comments>http://www.eriksmartt.com/blog/archives/414#comments</comments>
		<pubDate>Thu, 24 Jan 2008 02:30:51 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/414</guid>
		<description><![CDATA[Over the holidays we had an accidental deletion of every image on one of our phones (a Nokia N90, Symbian OS device.) Mild panic was quickly replaced with a gentle pondering on the difference between what a normal person would do in this situation vs. what a geek would do. The geek process goes something [...]]]></description>
			<content:encoded><![CDATA[<p>Over the holidays we had an accidental deletion of every image on one of our phones (a Nokia N90, Symbian OS device.)  Mild panic was quickly replaced with a gentle pondering on the difference between what a normal person would do in this situation vs. what a geek would do.  The geek process goes something like this:</p>
<h3>Step 1: Get the memory card out of the phone as quickly as possible</h3>
<p>Either shut the phone down and pull the card, or use the super-secret combo hidden within the profile-switching shortcut to have the phone un-mount the card.</p>
<h3>Step 2: Obtain a USB memory card reader</h3>
<p>I&#8217;ve needed a reason to buy one of these for a long time.  Good thing I had a gift card left from the holidays.  I went with a <a href="http://www.dynexproducts.com/">Dynex</a> gazillion-to-one card reader, not for it&#8217;s technical superiority, but because it was the only thing the shop nearby had.</p>
<h3>Step 3: Stick the memory card into the reader, and plug the reader into your Linux box</h3>
<p>Mine happens to run <a href="http://www.ubuntu.com/">Ubuntu</a> at the moment, but the results will likely be similar on other distros.</p>
<h3>Step 4: sudo apt-get install testdisk</h3>
<p><a href="http://en.wikipedia.org/wiki/TestDisk">Testdisk</a> &#8220;was primarily designed to help recover lost data storage partitions&#8230;&#8221; and includes a utility called &#8220;<a href="http://en.wikipedia.org/wiki/PhotoRec">PhotoRec</a>&#8220;, which is what you want.</p>
<h3>Step 5: Run photorec</h3>
<p>PhotoRec is a data recovery tool designed specifically for recovering files from digital camera media.  It supports a number of file-system formats, including the FAT format that Symbian OS uses on it&#8217;s memory cards. PhotoRec is a text-based, terminal application, but it does the job perfectly.</p>
<p>Select the mounted memory card from the list of drives (which should be easy to spot given how small memory cards are relative to modern hard drives), and send it scanning.  PhotoRec can be told to look for specific file types (you want JPG&#8217;s, in this case), but by default it will look for just about any media file format that you&#8217;re likely to have on your phone.  Files will be recovered and written to a local directory.</p>
<h3>Step 6: Sigh in relief when you see your beloved cat pictures returned to you</h3>
<p>PhotoRec isn&#8217;t going to restore the images to the memory card&#8217;s file system such that the phone can see them again, but you&#8217;ll have the pictures on your Linux box now, and can copy them back over if you choose to.  The naming scheme will be different, but that&#8217;s an acceptable compromise.</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/414/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lily: Visual programming in JavaScript</title>
		<link>http://www.eriksmartt.com/blog/archives/416</link>
		<comments>http://www.eriksmartt.com/blog/archives/416#comments</comments>
		<pubDate>Wed, 23 Jan 2008 06:19:24 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hci]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/416</guid>
		<description><![CDATA[I have an odd fascination with Visual Programming languages, and while I&#8217;ve gotten so far as sketching out some UI concepts and object models for a text-processing focused, web-mashing, visual programming environment, I&#8217;m a long way from having anything that works. Much to my surprise then when David Ascher dropped a link to the Lily [...]]]></description>
			<content:encoded><![CDATA[<p>I have an odd fascination with <a href="http://en.wikipedia.org/wiki/Visual_programming_language">Visual Programming</a> languages, and while I&#8217;ve gotten so far as sketching out some UI concepts and object models for a text-processing focused, web-mashing, visual programming environment, I&#8217;m a long way from having anything that works.  Much to my surprise then when <a href="http://ascher.ca/blog/">David Ascher</a> dropped a link to the <a href="http://www.lilyapp.org/">Lily</a> project on his blog today.  Holy cow this is sweet.  Think <a href="http://puredata.info/">PD</a> or Max/MSP written in JavaScript, running in a browser, with modules for popular Web API&#8217;s and JavaScript frameworks (ex., &#8220;Amazon, Flickr, Wikipedia, Yahoo; UI modules that wrap widgets from YUI, Scriptaculous, JQuery, Google Maps&#8230;.&#8221;)</p>
<p>Check out one of the <a href="http://blog.lilyapp.org/lily/demo/">demo&#8217;s</a> here:</p>
<p><a target="_blank" href="http://www.lilyapp.org/flickr-yui-lightbox.mov"><img width="450" src="http://blog.lilyapp.org/images/flickr.jpg"/></a></p>
<p>(Via: <a href="http://ascher.ca/blog/2008/01/22/lily-javascript-visual-programming-fun/">Lily: JavaScript, visual programming, fun</a>.)</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/416/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.lilyapp.org/flickr-yui-lightbox.mov" length="3437978" type="video/quicktime" />
		</item>
		<item>
		<title>Ubuntu + Hildon UI = in-Car PC UI</title>
		<link>http://www.eriksmartt.com/blog/archives/380</link>
		<comments>http://www.eriksmartt.com/blog/archives/380#comments</comments>
		<pubDate>Thu, 21 Jun 2007 04:31:03 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[automotive]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[transportation]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/380</guid>
		<description><![CDATA[Awhile back, Ubuntu announced a mobile and embedded edition of it&#8217;s popular Linux distribution. The buzz was around the possibility of Ubuntu Mobile showing up on future UMPCs. The news caught my eye, but didn&#8217;t really get my attention until the plans for Ubuntu 7.10 (Gutsy Gibbon) were announced: &#8220;Ubuntu 7.10 will be the first [...]]]></description>
			<content:encoded><![CDATA[<p>Awhile back, <a href="http://www.ubuntu.com/">Ubuntu</a> announced a <a href="http://arstechnica.com/news.ars/post/20070507-ubuntu-announces-mobile-and-embedded-edition.html">mobile and embedded edition</a> of it&#8217;s popular Linux distribution.  The buzz was around the possibility of Ubuntu Mobile showing up on future <a href="http://en.wikipedia.org/wiki/UMPC">UMPC</a>s.  The news caught my eye, but didn&#8217;t really get my attention until the <a href="http://arstechnica.com/news.ars/post/20070620-plans-for-ubuntu-7-10-gutsy-gibbon-revealed.html">plans for Ubuntu 7.10 (Gutsy Gibbon)</a> were announced:</p>
<blockquote><p>&#8220;Ubuntu 7.10 will be the first Ubuntu release to offer a complete mobile and embedded edition built with the Hildon user interface components&#8221; (developed by Nokia for the <a href="http://maemo.org/">Maemo</a> platform.)</p></blockquote>
<p>Now that&#8217;s interesting.  Could it be that we&#8217;ll see Ubuntu Mobile booting on Nokia N800&#8242;s?  It&#8217;s certainly a possibility &#8212; and one that could bring a larger breadth of software to Nokia&#8217;s mobile Linux tablets.</p>
<p>However, as interesting as it may be if Nokia adopts Ubuntu, the possibilities for wider Hildon support didn&#8217;t hit me until my drive home today.  It was one of those obvious moments.  I had been using my Nokia N800 while walking to my car, so the touch- and small-screen friendly UI was fresh in my mind.  Then I started thinking about my Car PC.  It uses a 7&#8243; touch screen and runs Ubuntu (a full distribution, with a UI designed for full-size monitors.)  Running Gnome on my cheap, in-car 7&#8243; monitor makes for a pretty lousy experience.  Text is hard to read, and everything is too small to click on.  However, if this news is right, Ubuntu 7.10 will change all of that.  I&#8217;ll be able to run Hildon on my Car PC!  That&#8217;s killer.  Imagine having <a href="http://openbossa.indt.org/canola/">Canola</a> running in-car, sitting on 100GB of multimedia&#8230;</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/380/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone development platform will wake up the mobile industry</title>
		<link>http://www.eriksmartt.com/blog/archives/379</link>
		<comments>http://www.eriksmartt.com/blog/archives/379#comments</comments>
		<pubDate>Wed, 20 Jun 2007 05:48:58 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[gadgets]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/379</guid>
		<description><![CDATA[One of the most interesting topics of iPhone speculation is the choice of interpreted, web technologies as the development platform. I greeted the news with a big smile, and a sigh of obviousness. Having spent a few frustrating years preaching the potential of agile mobile development platforms, it sits near and dear to me to [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most interesting topics of iPhone speculation is the choice of interpreted, web technologies as the development platform.  I greeted the news with a big smile, and a sigh of obviousness.  Having spent a few frustrating years preaching the potential of agile mobile development platforms, it sits near and dear to me to here that Apple is paying attention to a bigger market.</p>
<p>Of course, the old-school, &#8220;Mobile 1.0&#8243; crowd&#8217;s reaction is just as I would expect.  Some of the claims make me laugh, so I felt motivated to chime in on the topic.  Let&#8217;s break down the big three that I&#8217;m hearing:</p>
<p><i>&#8220;No SDK means no killer apps.&#8221;</i>  There are two issues here: (1) That there <i>are</i> &#8216;killer&#8217;mobile apps that aren&#8217;t already included in the iPhone; and (2) That killer apps can&#8217;t be built with web technologies.  For the first bit, ask yourself what the killer mobile apps are?  Number One is voice&#8230; Number Two is SMS&#8230; Number Three varies, but support for syncing PIM data, taking pictures, listening to music, checking email, and browsing the web, pretty much covers it.  For the second part, to assume that killer apps can&#8217;t be built with web technologies would require denying the last ten years of Internet development.  The Web has changed everything &#8212; and it was built with web technologies ;-)  Besides, Apple hasn&#8217;t commented yet on whether they&#8217;re exposing select native API&#8217;s via JavaScript.</p>
<p><i>&#8220;No clear revenue stream (for developers and operators) means no developers.&#8221;</i>  Stop thinking Mobile 1.0.  Stop thinking traditional channels.  Stop thinking about the Operators and Manufacturers &#8220;owning a customer&#8221;.  Drop all this telcom baggage and start looking at the Web.  There are plenty of companies making significant revenue simply because a large number of people have a browser and a data connection to their PCs.  If anything, the mobile market becomes <b>more</b> interesting (and potentially more lucrative) when application development is cheap and the legacy mobile bureaucracy is out of the way.</p>
<p><i>&#8220;Developers need low-level access to the hardware.&#8221;</i>  This actually came up in a recent conversation, and I just about walked away at that point.  Are you kidding?  Do you have any idea how much of a PITA (and HUGE waste of time) it is to develop high-quality, reliable, usable, native applications on embedded hardware?  I do.  And I can assure you that you want no part of it.  I appreciate the occasional need, and I&#8217;m sure Apple can give the John Carmack&#8217;s and Google&#8217;s of the world a l33t SDK; but if you&#8217;re looking to develop innovative, profitable mobile applications, there&#8217;s no reason for you to be tracking down memory leaks and hardware bugs.  The less time you waste fighting the hardware, the more time you&#8217;ll have to launch new software.  (If you don&#8217;t believe me, compare the rates of software and business model innovation that happens on the Web vs. on mobile phones.  Mobile phones have done wonders for flattening the world, but they can&#8217;t compare to the Web as an environment for cheap, rapid innovation.)</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/379/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Offline web app with Google Gears</title>
		<link>http://www.eriksmartt.com/blog/archives/374</link>
		<comments>http://www.eriksmartt.com/blog/archives/374#comments</comments>
		<pubDate>Thu, 31 May 2007 16:45:49 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/374</guid>
		<description><![CDATA[The blogosphere is already lit up with posts about Google Gears, and for good reason. Solving the offline/local-storage problem for web applications has been a hot topic &#8212; it&#8217;s one of those glaring voids in the web stack that keeps web applications from replacing desktop applications completely. So what is Google Gears? It&#8217;s an Open [...]]]></description>
			<content:encoded><![CDATA[<p>The blogosphere is already lit up with posts about <a href="http://gears.google.com/">Google Gears</a>, and for good reason.  Solving the offline/local-storage problem for web applications has been a hot topic &#8212; it&#8217;s one of those glaring voids in the web stack that keeps web applications from replacing desktop applications completely.</p>
<p>So what is Google Gears?  It&#8217;s an Open Source browser plugin that provides services (via JavaScript) for offline storage, data recovery, and synchronization.  And here&#8217;s the best part: it works on Mac, Linux, and Windows&#8230; on Firefox 1.5+ and IE 6+ (with Safari support in development.)  With such a huge support base, combined with the benefit of being a cross-browser solution and being open source, Gears has the right ingredients to become a defacto solution for offline web applications.</p>
<p>For more details, check out:</p>
<ul>
<li><a href="http://gears.google.com/">Google Gears</a> Project page</li>
<li><a href="http://code.google.com/apis/gears/">Google Gears API Developer&#8217;s Guide</a></li>
<li><a href="http://www.techcrunch.com/2007/05/30/google-gears-lets-developers-take-apps-offline/">Google Gears Lets Developers Take Apps Offline</a> (via Techcrunch)</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/374/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photosynth &#8212; Navigating 2D photos in 3D space</title>
		<link>http://www.eriksmartt.com/blog/archives/329</link>
		<comments>http://www.eriksmartt.com/blog/archives/329#comments</comments>
		<pubDate>Tue, 27 Mar 2007 19:03:42 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[hci]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/329</guid>
		<description><![CDATA[Interesting video demonstrating Photosynth, an application for navigating 2D photos in 3D space: &#8220;Dive into the world of Photosynth.&#8221; From the site: &#8220;Our software takes a large collection of photos of a place or an object, analyzes them for similarities, and displays them in a reconstructed three-dimensional space.&#8221; &#8220;Each photo is processed by computer vision [...]]]></description>
			<content:encoded><![CDATA[<p>Interesting video demonstrating Photosynth, an application for navigating 2D photos in 3D space: &#8220;<a href="http://labs.live.com/photosynth/videodemo.html">Dive into the world of Photosynth</a>.&#8221;</p>
<p>From the site:<br />
<blockqoute cite="http://labs.live.com/photosynth/whatis/">&#8220;Our software takes a large collection of photos of a place or an object, analyzes them for similarities, and displays them in a reconstructed three-dimensional space.&#8221;</blockqoute></p>
<p><blockqoute cite="http://labs.live.com/photosynth/whatis/howdoyou.html">&#8220;Each photo is processed by computer vision algorithms to extract hundreds of distinctive features, like the corner of a window frame or a door handle. Photos that share features are then linked together in a web. When the same feature is found in multiple images, its 3D position can be calculated. It&#8217;s similar to depth perception &#8211; what your brain does to perceive the 3D positions of things in your field of view based on their images in both of your eyes. Photosynth&#8217;s 3D model is just the cloud of points showing where those features are in space.&#8221;</blockqoute></p>
<p>(Via: <a href="http://www.janchipchase.com/blog/archives/2007/03/my_icon_your_ic.html">My Icon. Your Icon?</a>.)</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/329/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ColorZilla conflict causes FireBug 1.0 to not display on FF 2.x on Ubuntu (update: getting better)</title>
		<link>http://www.eriksmartt.com/blog/archives/315</link>
		<comments>http://www.eriksmartt.com/blog/archives/315#comments</comments>
		<pubDate>Tue, 06 Feb 2007 23:13:33 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/315</guid>
		<description><![CDATA[Just wanted to share this find: After the 1.0 update of FireBug last month, the extension stopped working for me on Firefox 2.0.x on Ubuntu. Thanks to a quick Google search, I found that FireBug conflicts with ColorZilla. After disabling ColorZilla, FireBug now works again. (Via the comments in: Firebug 1.0: Public Beta, Still Free, [...]]]></description>
			<content:encoded><![CDATA[<p>Just wanted to share this find:  After the 1.0 update of <a href="http://www.getfirebug.com/">FireBug</a> last month, the extension stopped working for me on Firefox 2.0.x on Ubuntu.  Thanks to a quick Google search, I found that FireBug conflicts with <a href="https://addons.mozilla.org/firefox/271/">ColorZilla</a>.  After disabling ColorZilla, FireBug now works again.</p>
<p>(Via the comments in: <a href="http://ajaxian.com/archives/firebug-10-public-beta-still-free-and-a-lite-version-for-other-browsers">Firebug 1.0: Public Beta, Still Free, and a Lite version for other browsers</a>.)</p>
<p>&#8212;<br />
Update 2007-02-08: The author of ColorZilla contacted me, and while we still haven&#8217;t isolated the problem, we did find that my ColorZilla extension was at version 0.8.x, and wasn&#8217;t finding the 1.0 update.  After un-installing and re-installing ColorZilla, it is now somewhat more compatible with FireBug.  Both extensions load, and everything except the ColorZilla Eyedropper works.<br />
&#8212;<br />
Update: It&#8217;s broken again&#8230; And once again, disabling ColorZilla got my FireBug working again.  I don&#8217;t know which extension is causing the problem, but there seems to be a conflict.</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/315/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Putting the metadata back on Google Image Search</title>
		<link>http://www.eriksmartt.com/blog/archives/313</link>
		<comments>http://www.eriksmartt.com/blog/archives/313#comments</comments>
		<pubDate>Thu, 25 Jan 2007 20:09:19 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/313</guid>
		<description><![CDATA[For anyone else who needs it, I found a user script (here) that re-enables the metadata on Google Image Search. (The &#8220;redesign&#8221; of Google Image Search no longer includes the image size, format, and dimensions.) The script requires the Stylish Firefox extension. (Via: Google Image Search Has a Cleaner Look)]]></description>
			<content:encoded><![CDATA[<p>For anyone else who needs it, I found a user script (<a href=" <a href="http://userstyles.org/style/show/1711" rel="nofollow">http://userstyles.org/style/show/1711</a>">here</a>) that re-enables the metadata on <a href="http://images.google.com/">Google Image Search</a>.  (The &#8220;redesign&#8221; of Google Image Search no longer includes the image size, format, and dimensions.)  The script requires the <a href="https://addons.mozilla.org/firefox/2108/">Stylish</a> Firefox extension.</p>
<p>(Via: <a href="http://googlesystem.blogspot.com/2007/01/google-image-search-has-cleaner-look.html">Google Image Search Has a Cleaner Look</a>)</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/313/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thunderbird 2.0 Beta 1 available</title>
		<link>http://www.eriksmartt.com/blog/archives/303</link>
		<comments>http://www.eriksmartt.com/blog/archives/303#comments</comments>
		<pubDate>Thu, 14 Dec 2006 22:23:32 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/archives/303</guid>
		<description><![CDATA[I just saw the news that Thunderbird 2.0 Beta 1 is now available. The link was hard to find off mozilla.com, but a quick google turned up the Release Notes page which contains the download link. So why am I mentioning this? Well, because I haven&#8217;t been able to get Thunderbird 1.5 to run reliably [...]]]></description>
			<content:encoded><![CDATA[<p>I just saw the news that Thunderbird 2.0 Beta 1 is now available. The link was hard to find off mozilla.com, but a quick google turned up the <a href="http://www.mozilla.com/en-US/thunderbird/releases/2.0b1.html">Release Notes</a> page which contains the download link.</p>
<p>So why am I mentioning this? Well, because I haven&#8217;t been able to get Thunderbird 1.5 to run reliably on my new laptop (a Dell running <a href="http://www.ubuntu.com/">Ubuntu</a> Edgy), but I&#8217;m not exactly thrilled with Evolution just yet either.  (I&#8217;ve actually been using <a href="http://www.mutt.org/">mutt</a> lately, if you can believe that; though it&#8217;s not the silver bullet either.)  I haven&#8217;t spent much time in Thunderbird, but I&#8217;m hoping that it&#8217;s extensibility helps the customization a bit. (At the moment, I&#8217;m really missing <a href="http://www.indev.ca/MailActOn.html">Mail-Act On</a>&#8216;s ability to bind a filter to a key-command in Apple&#8217;s Mail.app.)</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/303/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

