<?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>Cognition &#187; admin</title>
	<atom:link href="http://www.cognition.ca/author/admin/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cognition.ca</link>
	<description>Balls-in-the-air Entrepreneurship and Juggling.</description>
	<lastBuildDate>Tue, 14 Jun 2011 10:04:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>What It Means to be OpenStack</title>
		<link>http://www.cognition.ca/2011/06/what-it-means-to-be-openstack.html</link>
		<comments>http://www.cognition.ca/2011/06/what-it-means-to-be-openstack.html#comments</comments>
		<pubDate>Tue, 14 Jun 2011 10:02:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[openstack]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=260</guid>
		<description><![CDATA[What does it mean to be OpenStack? OpenStack has become something of a lightning rod for media attention &#8211; attention which, sadly, focuses reliably on the fear, uncertainty and doubt that any disruptive ecosystem will naturally produce. Much like the eddies that form on the edges of fast-moving water, this open-source project throws off a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What does it mean to be OpenStack?</strong></p>
<p>OpenStack has become something of a lightning rod for media attention &#8211; attention which, sadly, focuses reliably on the fear, uncertainty and doubt that any disruptive ecosystem will naturally produce. Much like the eddies that form on the edges of fast-moving water, this open-source project throws off a fair amount of confusion, conjecture and rumor.</p>
<p>I&#8217;m hoping to get in front of the upcoming round of media frenzy (which is certain to spin out as soon as someone from the Register, CIO Magazine or Network World bothers to skim <a title="OpenStack PPB Mailing List Archive" href="https://lists.launchpad.net/openstack-poc/">recent posts to the OpenStack-PPB list</a>), and try to answer a simple question &#8211; what does it mean for a project to be &#8220;part of&#8221; OpenStack?</p>
<p>Ignoring, for just a moment, the eloquent-but-high-level mission statement of the OpenStack project, I will make three simple observations:</p>
<p><strong>1. OpenStack means: a cloud operating system that meets Rackspace&#8217;s needs.</strong><br />
<strong> 2. OpenStack means: a cloud operating system that meets NASA&#8217;s needs.</strong><br />
<strong> 3. OpenStack means: a community effort that meets the needs of its&#8217; members.</strong></p>
<p>While the relative *order* of these observations is likely to provoke outrage from many members of the OpenStack community, I think it&#8217;s still reasonably fair to describe it in this fashion &#8211; if OpenStack ceases to meet the needs of Rackspace or of NASA, the founding partners, then it will cease to be OpenStack.</p>
<p>What constraints does this put on new projects?</p>
<p>Many.</p>
<p>What has been talked about, at length and by many of the most prominent members of our community, is scale. Rackspace (and indeed many others in our ecosystem) is a service provider, with (at least) tens of thousands of customer accounts. OpenStack has got to scale.</p>
<p>Also discussed, at least in the earliest days, is development philosophy and methods. No, I&#8217;m not talking about &#8220;development in the open&#8221; (although I think it&#8217;s generally a good idea), I&#8217;m talking about agile, fail-fast, and test-driven development. I&#8217;m talking about continuous integration and good unit test coverage. I&#8217;m talking about a working-code-trumps-designs-or-promises attitude.</p>
<p>One thing that *hasn&#8217;t* been discussed much, is language. Or more precisely, language consistency. Yes, a foolish consistency is the hobgoblin of little minds &#8211; and yet, I think it&#8217;s no accident that OpenStack is, thus far, 98% Python (plus or minus a smattering of bash).</p>
<p>I sit on the OpenStack Project Policy Board, and I&#8217;m getting ready to make myself fairly unpopular. There are a *large* number of projects in the &#8220;affiliated with OpenStack&#8221; phase, and a few of them are gearing up to apply for official OpenStack status.</p>
<p>Which brings me back to what it *means* to be OpenStack, and particularly NASA&#8217;s needs.<br />
<em>(DISCLAIMER: I no longer work for, at, or in any particular association with NASA. I&#8217;m speaking merely from my historical position as the architect of the NASA Nebula project, the precursor to OpenStack.)</em></p>
<p>NASA, like any US Federal agency, is under near-constant IT attack. Far more than any service provider, we have had to focus on the security of our platform. No, I&#8217;m not saying that python is more secure than any other language (and NASA has had its share of security issues with EVERY language and platform) &#8211; simply that limiting OpenStack to *as few languages as necessary* keeps the strike surface smaller. It keeps system complexity down. And it makes OpenStack monitoring and maintenance a more straightforward process.</p>
<p>Which brings me back to the process of becoming unpopular.</p>
<p>To the best of my knowledge, there are &#8220;related&#8221; projects in:</p>
<ul>
<li>PHP</li>
<li>JAVA</li>
<li>Erlang</li>
<li>Ruby</li>
<li>C++(?)</li>
</ul>
<p>Every one of these projects will be considered on the basis of its own merits, by the Project Policy Board and in good time. But for my part, I&#8217;ll be looking at security. I&#8217;ll be looking at test coverage. I&#8217;ll be looking at scale and, yes, I&#8217;ll be looking at language.</p>
<p>This applies equally to new project submissions, as well as to legacy projects from both Rackspace and NASA &#8211; even a few that I had always thought *were* part of OpenStack.</p>
<p>Oh, and a final thought &#8211; to me, OpenStack has always been about being *pythonic*, even in the rare case when we weren&#8217;t (yet) writing Python. Which means, as opposed to Perl, there really is &#8220;one way to do it&#8221;. I love the fact that OpenStack supports every possible hypervisor &#8211; but I hate the fact that the test coverage is not equal for each. I love that we have several (many?) different network models available &#8211; but I find the current proposal to write, big-design-up-front, a new-from-scratch OpenStack network component misguided at best, and counter-productive at worst. Ditto for the efforts to write a new-from-scratch replacement for the nova-volumes component. Again back to the principles of agile, test-driven development &#8211; unless there&#8217;s something fundamentally *wrong* with the architecture of the existing components, this strikes me as a bit of NIH syndrome. Iterative improvement, a long set of carefully reviewed changes to an existing codebase, will keep code quality high and interface pain down.</p>
<p>So if I vote against your project tomorrow &#8211; it&#8217;s not personal. Really. I&#8217;ll be voting against some of my own as well &#8211; and yes, that really *is* as weird as it sounds.</p>
<span class="akst_link"><a href="http://www.cognition.ca/?p=260&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_260"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2011/06/what-it-means-to-be-openstack.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Build something you care about</title>
		<link>http://www.cognition.ca/2011/02/build-something-you-care-about.html</link>
		<comments>http://www.cognition.ca/2011/02/build-something-you-care-about.html#comments</comments>
		<pubDate>Mon, 14 Feb 2011 23:49:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[entrepreneurs]]></category>
		<category><![CDATA[openstack]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=257</guid>
		<description><![CDATA[Many of you are probably expecting me to say something about my new venture, Piston. You might be expecting some discussion of the Rackspace acquisition of Anso Labs, or why I left Anso. In fact, you might (quite reasonably) be expecting me to talk about why I left NASA. Too bad. Have I lost my [...]]]></description>
			<content:encoded><![CDATA[<p>Many of you are probably expecting me to say something about my new venture, <a title="Piston Cloud Computing - High Performance Enterprise OpenStack" href="http://www.piston.cc">Piston</a>. You might be expecting some discussion of the <a href="http://www.eweek.com/c/a/Cloud-Computing/Rackspace-Acquires-Anso-Labs-Affirms-Open-Source-Commitment-355956/">Rackspace acquisition of Anso Labs</a>, or why I left <a href="http://www.ansolabs.com">Anso</a>. In fact, you might (quite reasonably) be expecting me to talk about <a href="http://twitter.com/#!/jmckenty/status/18949317581">why I left NASA</a>.</p>
<p>Too bad.</p>
<p>Have I lost my passion for open source, open data, open science or open government?</p>
<p>Certainly not.</p>
<p>I&#8217;m still on the OpenStack Project Oversight Committee, and I plan on kicking ass, now more than ever. At the same time, I have never seen a conflict between a capitalist agenda, and a social agenda &#8211; and I&#8217;ve now got a great occasion to prove that.</p>
<p><img class="alignnone" title="Pompeii Columns" src="http://farm6.static.flickr.com/5097/5446098651_fd95e362b9_z_d.jpg" alt="Pompeii Columns" width="640" height="478" /></p>
<p>While I was tripping around Italy over new years, I had a chance to tour Pompeii with my children. It&#8217;s a great place to pause for a moment and appreciate <em>permanence</em>, and the idea of building something to last.</p>
<p>What are *you* working on? If it was dug out of the ashes 1,000 years from now, would you feel proud of it?</p>
<span class="akst_link"><a href="http://www.cognition.ca/?p=257&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_257"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2011/02/build-something-you-care-about.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better Integration of Jpype and Log4J</title>
		<link>http://www.cognition.ca/2010/11/better-integration-of-jpype-and-log4j.html</link>
		<comments>http://www.cognition.ca/2010/11/better-integration-of-jpype-and-log4j.html#comments</comments>
		<pubDate>Sat, 06 Nov 2010 12:15:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[entrepreneurs]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=240</guid>
		<description><![CDATA[We&#8217;ve been using JPype at GEM to integrate some existing legacy Java libraries with the new Python code in OpenQuake. Until today, one of the ugliest parts of this integration has been logging &#8211; although we&#8217;re using the popular Log4J library to manage log output within the Java code, the Jpype JVM has a separate [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been using JPype at GEM to integrate some existing legacy Java libraries with the new Python code in OpenQuake. Until today, one of the ugliest parts of this integration has been logging &#8211; although we&#8217;re using the popular Log4J library to manage log output within the Java code, the Jpype JVM has a separate file descriptor for the console from the Python environment.</p>
<p>To deal with this, I whipped up a quick OutputStream and matching Proxy interface:</p>
<blockquote>
<pre>
<div id="_mcePaste">package org.gem;</div>
<div id="_mcePaste">import java.io.IOException;</div>
<div id="_mcePaste">import java.io.OutputStream;</div>
<div id="_mcePaste">public class PythonOutputStream extends OutputStream {</div>
<div>    private IPythonPipe thispipe;</div>
<div>    public void setPythonStdout(IPythonPipe mypipe) {</div>
<div id="_mcePaste">        thispipe = mypipe;</div>
<div id="_mcePaste">    }</div>
<div id="_mcePaste">    @Override</div>
<div id="_mcePaste">    public void write(int arg0) throws IOException {</div>
<div id="_mcePaste">        thispipe.write((char) arg0);</div>
<div id="_mcePaste">    }</div>
</pre>
<pre>
<div>package org.gem;</div>
<div>public interface IPythonPipe {</div>
<div>    public void write(char output);</div>
<div>}</div>
</pre>
</blockquote>
<div>This interface ends up having the same interface as the python sys.stdout pipe, making the connection between Java and Python as simple as the following:</div>
<div></div>
<blockquote>
<pre>
<div>mystream = jpype.JProxy("org.gem.IPythonPipe", inst=sys.stdout)</div>
<div>errstream = jpype.JProxy("org.gem.IPythonPipe", inst=sys.stderr)</div>
<div>outputstream = jpype.JClass("org.gem.PythonOutputStream")()</div>
<div>err_stream = jpype.JClass("org.gem.PythonOutputStream")()</div>
<div>outputstream.setPythonStdout(mystream)</div>
<div>err_stream.setPythonStdout(errstream)</div>
<div>ps = jpype.JClass("java.io.PrintStream")</div>
<div>jpype.java.lang.System.setOut(ps(outputstream))</div>
<div>jpype.java.lang.System.setErr(ps(err_stream))</div>
</pre>
</blockquote>
<div>Up next time &#8211; how we managed using the same JVM in many modules, plus some bonus notes on setting Java system settings in Jpype.</div>
<span class="akst_link"><a href="http://www.cognition.ca/?p=240&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_240"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2010/11/better-integration-of-jpype-and-log4j.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come to Switzerland and Save the World (with Software)</title>
		<link>http://www.cognition.ca/2010/08/come-to-switzerland-and-save-the-world-with-software.html</link>
		<comments>http://www.cognition.ca/2010/08/come-to-switzerland-and-save-the-world-with-software.html#comments</comments>
		<pubDate>Mon, 23 Aug 2010 23:38:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[disaster risk reduction]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=227</guid>
		<description><![CDATA[EDIT: Feel free to contact me by twitter DM as well: http://twitter.com/jmckenty As most of you have by now figured out from my FourSquare stream, I&#8217;ve been spending a fair bit of time in Europe. In fact, I&#8217;ve taken a sabbatical from NASA to work on the Global Earthquake Model. This international project is headquartered [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 410px"><img class=" " title="Zurich, on the River" src="http://farm5.static.flickr.com/4080/4921841668_fffa770998_d.jpg" alt="Zurich on the River" width="400" height="300" /><p class="wp-caption-text">The view from the office</p></div>
<p>EDIT: Feel free to contact me by twitter DM as well: <a href="http://twitter.com/jmckenty">http://twitter.com/jmckenty</a></p>
<p>As most of you have by now figured out from my FourSquare stream, I&#8217;ve been spending a fair bit of time in Europe. In fact, I&#8217;ve taken a sabbatical from NASA to work on the <a href="http://globalquakemodel.org">Global Earthquake Model</a>. This international project is headquartered in Pavia, Italy, with the bulk of the development team in Zurich, Switzerland, at the <a href="http://en.wikipedia.org/wiki/ETH_Zurich">ETH university</a>.</p>
<p>I&#8217;m helping to reboot the project. In fact, we&#8217;re changing everything &#8211; language (from exclusively Java to mostly Python), methodology (from a traditional waterfall approach to agile using Scrum), and development approach (continuous integration and test-driven development FTW).</p>
<p>Everyone, by now, has heard about the Haiti earthquake. You know that more than 250,000 people (roughly 40% of the affected population) died. What you might not have realized, is that similar sized earthquakse in California routinely kill only dozens. The difference?</p>
<p>Without earthquake models, you can&#8217;t assess hazard.</p>
<p>Without hazard assessment, you can&#8217;t make building codes that are appropriate for the seismic risk.</p>
<p>Without building codes (and the right kind of building reinforcement, even for traditional construction techniques), most of a large city turns into rubble.</p>
<p>Without software, people die.</p>
<p>Here&#8217;s a quote from our <a href="http://www.globalquakemodel.org/system/files/SED_GEM-Software_Engineer.pdf">job posting</a> (full link at http://www.globalquakemodel.org/system/files/SED_GEM-Software_Engineer.pdf):</p>
<blockquote><p>GEM, the Global Earthquake Model, is a non-profit, international effort to tackle the understanding of earthquake risk worldwide. In parallel with our scientific and diplomatic efforts, we are developing a unique, open-source software system that computes all aspects of earthquake hazard, risk, and impact. This is high-performance, scientific computing at its finest. And you could be a part of it.</p>
<p>We&#8217;re looking for only the best and brightest, regardless of where you currently are in the world, to come to Zurich and join a small, tight-knit team of engineers, scientists, and software developers. If you&#8217;ve got the aptitude and attitude, we&#8217;ll train you in the rest.</p></blockquote>
<p>That&#8217;s right &#8211; we&#8217;re writing open-source software to save lives. Who&#8217;s with me?</p>
<span class="akst_link"><a href="http://www.cognition.ca/?p=227&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_227"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2010/08/come-to-switzerland-and-save-the-world-with-software.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenStack &#8211; Where we&#8217;re going, and why</title>
		<link>http://www.cognition.ca/2010/07/openstack-nasa-nebula-joshua-mckenty-and-history.html</link>
		<comments>http://www.cognition.ca/2010/07/openstack-nasa-nebula-joshua-mckenty-and-history.html#comments</comments>
		<pubDate>Thu, 22 Jul 2010 06:34:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=225</guid>
		<description><![CDATA[I didn&#8217;t sleep much on Sunday night. By the time I headed for bed, the news was out, and the twittubes were flooded. Desperate to get sleep, but I&#8217;m terrified to wake up to 1,000 new bug reports. It&#8217;s like streaking the quad, but with code. #openstack @jmckenty There was a video up from an [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t sleep much on Sunday night. By the time I headed for bed, the news was out, and the twittubes were flooded.</p>
<blockquote><p>Desperate to get sleep, but I&#8217;m terrified to wake up to 1,000 new bug reports. It&#8217;s like streaking the quad, but with code. #openstack <a title="Twitter Status for @jmckenty" href="http://twitter.com/jmckenty/status/18898545442">@jmckenty</a></p></blockquote>
<p>There was <a title="NASA Chief Cloud Architect discusses Open Stack" href="http://bartongeorge.net/2010/07/16/nasa%E2%80%99s-chief-cloud-architect-talks%C2%A0openstack/">a video up from an interview</a> I had given the week before.</p>
<p>There were over 100 developers camped out in the <a href="irc://irc.freenode.net/#openstack">#openstack</a> channel, asking probing questions. Most of them were politely worded versions of: &#8220;What the hell were you thinking?&#8221;</p>
<p>Patches started coming in. Then <a href="http://bits.blogs.nytimes.com/2010/07/20/the-recipe-for-clouds-goes-open-source/">a New York Times blog post</a>. More bug reports. More patches. More press.</p>
<div class="wp-caption alignleft" style="width: 135px"><img title="Original Nebula Logo" src="http://www.cloudbook.net/images/companies/nebula_logo.jpg" alt="Original Nebula Logo" width="125" height="125" /><p class="wp-caption-text">Original Nebula Logo</p></div>
<p>I&#8217;d love to say that we shared a moment of solidarity as a team, toasted ourselves, and wrote more code. But truthfully, half of the NASA Nebula team were on a red-eye flight to DC, to run another set of training workshops for new Nebula users. Some were holed up with the legal teams, trying to figure out how to take the Nova example (brute-force software release) and use it to reshape NASA&#8217;s open source software release policy. Vish was bravely manning IRC, answering the flood of questions.</p>
<p>And in a classic case of nostalgia, I started thinking back over the crazy history of this &#8220;thing&#8221; that has had more names, than developers.</p>
<p>The code name of the &#8220;compute&#8221; component in Open Stack is called &#8220;Nova&#8221;. While, if you had the appropriate access to NASA internal systems, you could find early references to the &#8220;Novae&#8221; task in Nebula development (which was originally the PXE and Puppet-based configuration management system we used for deploying Nebula to physical hardware), the earliest public record of nova is this:</p>
<p><a href="http://www.flickr.com/photos/rocketqueen/3596245017/" title="NASA nebula bonding lunch by rr0cketqueen, on Flickr"><img src="http://farm3.static.flickr.com/2462/3596245017_69dc40455f.jpg" width="500" height="375" alt="NASA nebula bonding lunch - We Are the Nova" /></a></p>
<p>&#8220;NASA Nebula Bonding Lunch &#8211; We Are the Nova&#8221;</p>
<p>Which is possibly one of the worst photos of me on the internet. C&#8217;est la via.</p>
<p>While in Austin, Texas last week, at the first Open Stack Developer&#8217;s Summit, I had an opportunity to give a brief presentation about NASA Nebula &#8211; why we were in the Cloud business, some of the history that led us to this point, etc. While I never prepare slide decks to be standalone (I prefer to use them as audio-visual aids to the substance of the event, which is obviously paying attention to <em>me</em>), you can have a look at the whole thing:</p>
<div id="__ss_4796103" style="width: 425px;"><strong><a title="The Space Penguin Odyssey" href="http://www.slideshare.net/joshuamckenty/the-space-penguin-odyssey">The Space Penguin Odyssey</a></strong><object id="__sse4796103" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=openstackkeynote-small2-100720081410-phpapp01&amp;stripped_title=the-space-penguin-odyssey" /><param name="name" value="__sse4796103" /><param name="allowfullscreen" value="true" /><embed id="__sse4796103" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=openstackkeynote-small2-100720081410-phpapp01&amp;stripped_title=the-space-penguin-odyssey" name="__sse4796103" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p>It was based, loosely, on an internal memo I sent a while back to some members of the Nebula team (excerpts below):</p>
<blockquote>
<div>There are, literally, a ton of people on the Nebula team now. Which is awesome. But it also mean there are dozens of you that I&#8217;ve never had a chance to interact with personally, who may have missed a lot of our early (ancient) discussions about WHY we&#8217;re all working so damn hard.</div>
<div><strong>It&#8217;s not about the money.</strong></div>
<div>Which is to say, Nebula is not, primarily, about cost recovery. It&#8217;s not (mostly) about saving money, for missions, projects, or the Agency at large.</div>
<div>And on the flip side, we&#8217;re not DOING this just because it&#8217;s our job. Nebula is not the place for &#8220;work to rule&#8221; &#8211; if you don&#8217;t wake up every morning with a burning desire to get to your keyboard and roll the Nebula ball forward, then there are honestly better places and projects for you to be working on.</div>
<div><strong>It&#8217;s not about being on the &#8220;cutting edge</strong>&#8220;.</div>
<div>We get a ton of press on Nebula, most of it excited over how <em>innovative NASA</em>has become, how we&#8217;re embracing new technologies, how we&#8217;re leading the government forward. And all of that is great &#8211; but that&#8217;s not why we&#8217;re doing it. This is not innovation, for the sake of innovation.</div>
<div><strong>It&#8217;s about the Science.</strong></div>
<div>I haven&#8217;t really been at NASA long enough to have a good grasp of its long and illustrious history. So in the same fashion that I get away with practicing Computer Science without having formally <em>studied </em>it, I have to work from first principles. In this case, the first principles are a happy little document titled, the &#8220;Space Act&#8221; (Specifically the Declaration of Policy and Purpose, section 102):</div>
<div>Sec. 102.  (a) The Congress hereby declares that it is the policy of the United States that activities in space should be devoted to <strong>peaceful purposes for the benefit of all mankind.</strong></div>
<div>(7) Cooperation by the United States with other nations and groups of nations in work done pursuant to this Act and in the peaceful application of the results thereof;</div>
<div><strong>(8) The most effective utilization of the scientific and engineering resources of the United States, with close cooperation among all interested agencies of the United States in order to avoid unnecessary duplication of effort, facilities, and equipment;</strong></div>
<div>So I&#8217;d just like to point out that the <em>mission statement of the Agency, includes specifically section 102(d)(8) &#8211; </em>is to cooperate with other agencies in order to make effective utilization of scientific and engineering resources. AKA&#8230; Cloud Computing.</div>
<div>Open Source, by which I mean participation in an open source <em>process</em>, as well as the release of source code under an open license, is an activity NASA can partake of under section 102(a). It is <em>way more meaningful</em> than most of the rest of what we&#8217;re doing.</div>
</blockquote>
<div>Some of you may have noticed that I&#8217;m no longer involved with NASA Nebula in a full-time capacity. They don&#8217;t need me anymore. But I&#8217;ve still got a two-year roadmap of challenges that I&#8217;d love to see Open Stack address, and I&#8217;ll be posting that to <a href="https://blueprints.launchpad.net/openstack">Launchpad</a> and the <a href="http://wiki.openstack.org/">Open Stack wiki</a> just as soon as I can.</div>
<div><strong>We ain&#8217;t done yet.</strong></div>
<span class="akst_link"><a href="http://www.cognition.ca/?p=225&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_225"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2010/07/openstack-nasa-nebula-joshua-mckenty-and-history.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launched NOVA &#8211; Apache-Licensed Cloud Computing, in Python</title>
		<link>http://www.cognition.ca/2010/05/launched-nova-apache-licensed-cloud-computing-in-python.html</link>
		<comments>http://www.cognition.ca/2010/05/launched-nova-apache-licensed-cloud-computing-in-python.html#comments</comments>
		<pubDate>Fri, 28 May 2010 07:40:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[entrepreneurs]]></category>
		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/2010/05/launched-nova-apache-licensed-cloud-computing-in-python.html</guid>
		<description><![CDATA[It&#8217;s live, it&#8217;s buggy, it&#8217;s beta. Check it out: http://novacc.org From the website: Nova is a cloud computing fabric controller (the main part of an IaaS system) built to match the popular AWS EC2 and S3 APIs. It is written in Python, using the Tornadoand Twisted frameworks, and relies on the standard AMQP messaging protocol, and the Redis distributed KVS. Nova is intended [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s live, it&#8217;s buggy, it&#8217;s beta.<br />
Check it out:</p>
<p><a href="http://novacc.org">http://novacc.org</a></p>
<p>From the website:</p>
<blockquote><p>Nova is a cloud computing fabric controller (the main part of an <a href="http://en.wikipedia.org/wiki/IaaS" target="_blank">IaaS</a> system) built to match the popular AWS <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/" target="_blank">EC2</a> and <a href="http://docs.amazonwebservices.com/AmazonS3/latest/API/" target="_blank">S3</a> APIs. It is written in <a href="http://python.org/" target="_blank">Python</a>, using the <a href="http://www.tornadoweb.org/" target="_blank">Tornado</a>and <a href="http://twistedmatrix.com/trac/wiki/TwistedProject" target="_blank">Twisted</a> frameworks, and relies on the standard <a href="http://www.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol" target="_blank">AMQP messaging protocol</a>, and the <a href="http://code.google.com/p/redis/" target="_blank">Redis</a> distributed KVS.</p>
<p>Nova is intended to be easy to extend, and adapt.</p></blockquote>
<span class="akst_link"><a href="http://www.cognition.ca/?p=222&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_222"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2010/05/launched-nova-apache-licensed-cloud-computing-in-python.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A WebHook named &#8216;Jeff&#8217;</title>
		<link>http://www.cognition.ca/2009/04/a-webhook-named-jeff.html</link>
		<comments>http://www.cognition.ca/2009/04/a-webhook-named-jeff.html#comments</comments>
		<pubDate>Sun, 26 Apr 2009 02:56:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[entrepreneurs]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[webhooks]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=191</guid>
		<description><![CDATA[  PROBLEM: Help people understand how cool webhooks are. PROBLEM: Find out when there&#8217;s new content on a site. SOLUTION: Put a webhook into the site&#8217;s search indexing tool &#8211; SOLR. SOLUTION: Custom SOLR Token Filter.       WHY? Every cool web app (sooner or later) has some cool content in it. So you [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<div id="attachment_199" class="wp-caption aligncenter" style="width: 364px"><img class="size-full wp-image-199  " title="picture-28" src="http://www.cognition.ca/wp-content/uploads/2009/04/picture-28.png" alt="Jeff as a webhook" width="354" height="507" /><p class="wp-caption-text">Jeff as a webhook</p></div>
<p>PROBLEM: Help people understand how cool webhooks are.<br />
PROBLEM: Find out when there&#8217;s new content on a site.</p>
<p>SOLUTION: Put a webhook into the site&#8217;s search indexing tool &#8211; SOLR.<br />
SOLUTION: Custom SOLR Token Filter.</p>
<div id="attachment_195" class="wp-caption alignright" style="width: 531px"><img class="size-full wp-image-195" title="picture-27" src="http://www.cognition.ca/wp-content/uploads/2009/04/picture-27.png" alt="The code, while JAVA and therefore evil, is trivial." width="521" height="305" /><p class="wp-caption-text">The code, while JAVA and therefore evil, is trivial.</p></div>
<p> </p>
<p> </p>
<p> </p>
<p><strong>WHY?</strong></p>
<p>Every cool web app (sooner or later) has some cool content in it. So you add a search engine. When your users want to build mashups with that content, you add webhooks to that engine. And you&#8217;re done.</p>
<p><img class="size-full wp-image-194" title="picture-26" src="http://www.cognition.ca/wp-content/uploads/2009/04/picture-26.png" alt="Webhooks hitting a remote server, shown in Apache log." width="531" height="365" /><br />
Starting point: http://e-mats.org/2008/06/writing-a-solr-analysis-filter-plugin/</p>
<p><strong>GOTCHAS:</strong><br />
JAVA &#8211; Evil and Stupid<br />
Java classpath (on Mac) &#8211; also Evil and Stupid<br />
Java permissions (to connect to remote servers) &#8211; http://forums.sun.com/thread.jspa?threadID=5309619</p>
<p><strong>WHERE IS THIS GOING TO LIVE?</strong></p>
<p> </p>
<div id="attachment_203" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-203" title="picture-30" src="http://www.cognition.ca/wp-content/uploads/2009/04/picture-30-300x163.png" alt="Webhooks coming to NASA soon..." width="300" height="163" /><p class="wp-caption-text">Webhooks coming to NASA soon...</p></div>
<p> </p>
<p><strong>FINAL TAKEAWAY: Fitz was right &#8211; everything should be HTTP.</strong></p>
<span class="akst_link"><a href="http://www.cognition.ca/?p=191&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_191"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2009/04/a-webhook-named-jeff.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8220;Rabbits FTW&#8221; &#8211; The Mark Cuban Stimulus Package Needs Meat</title>
		<link>http://www.cognition.ca/2009/02/rabbits-ftw-the-mark-cuban-stimulus-package-needs-meat.html</link>
		<comments>http://www.cognition.ca/2009/02/rabbits-ftw-the-mark-cuban-stimulus-package-needs-meat.html#comments</comments>
		<pubDate>Mon, 23 Feb 2009 16:15:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[carbon]]></category>
		<category><![CDATA[entrepreneurs]]></category>
		<category><![CDATA[contests]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[FTW]]></category>
		<category><![CDATA[global warming]]></category>
		<category><![CDATA[mark cuban]]></category>
		<category><![CDATA[methane]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[rabbits]]></category>
		<category><![CDATA[stimulus package]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=174</guid>
		<description><![CDATA[Most of my (non-work-related) thinking these days circles around how we, as a species, a culture, or a geographical collection of human flesh, can make a smooth recovery from our petroleum addiction. I read a fair bit on the subject, from the &#8220;Post-Petroleum Survival Guide and Cookbook&#8221;, to my current muse, &#8220;Peak Everything&#8221;. As is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/0865715688?ie=UTF8&amp;tag=cognition-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0865715688"><img class="alignright size-full wp-image-175" title="51jzv-1ou-l_sl160_" src="http://www.cognition.ca/wp-content/uploads/2009/02/51jzv-1ou-l_sl160_.jpg" alt="51jzv-1ou-l_sl160_" width="129" height="160" /></a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=googlatr-20&amp;l=as2&amp;o=1&amp;a=0865715688" border="0" alt="" width="1" height="1" /><br />
Most of my (non-work-related) thinking these days circles around how we, as a species, a culture, or a geographical collection of human flesh, can make a smooth recovery from our petroleum addiction. I read a fair bit on the subject, from the <a href="http://www.amazon.com/gp/product/0865715688?ie=UTF8&amp;tag=cognition-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0865715688">&#8220;Post-Petroleum Survival Guide and Cookbook&#8221;</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=cognition-20&amp;l=as2&amp;o=1&amp;a=0865715688" border="0" alt="" width="1" height="1" />, to my current muse, <a href="http://www.amazon.com/gp/product/086571598X?ie=UTF8&amp;tag=googlatr-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=086571598X">&#8220;Peak Everything&#8221;</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=googlatr-20&amp;l=as2&amp;o=1&amp;a=086571598X" border="0" alt="" width="1" height="1" />.</p>
<p>As is often the case with the large, complex issues facing humanity, most of our effort is (dare I say it?) wasted on trying to fix the wrong things. Like changing our lightbulbs. Even changing our cars is, most of the time, the wrong thing. Why?<span id="more-174"></span></p>
<p>Making a thing, almost ANY thing, takes an enormous amount of energy input. These days, most of that energy input is petroleum, generating huge amounts of waste carbon. So regardless of how much BETTER the end product is, it needs to fulfill two criteria to justify the switch:</p>
<p>1. It needs to last forever (or some reasonable facsimile).<br />
2. It needs to use so much less carbon, that it offsets the output of buying something NEW in the first place.<a href="http://www.amazon.com/gp/product/0865715688?ie=UTF8&amp;tag=cognition-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0865715688"></a></p>
<p><a href="http://www.amazon.com/gp/product/0865715688?ie=UTF8&amp;tag=cognition-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0865715688"> </a></p>
<p><strong>Our problem, as a culture, is less an OIL addiction, as it is an addiction to CONSUMING. Endlessly.</strong><a href="http://www.amazon.com/gp/product/086571598X?ie=UTF8&amp;tag=googlatr-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=086571598X"><img class="size-full wp-image-178 alignright" title="41un9bgh5ql_sl160_" src="http://www.cognition.ca/wp-content/uploads/2009/02/41un9bgh5ql_sl160_.jpg" alt="Peak Everything" width="107" height="160" /></a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=googlatr-20&amp;l=as2&amp;o=1&amp;a=086571598X" border="0" alt="" width="1" height="1" /></p>
<p>Let&#8217;s take the principles of the &#8220;<a href="http://en.wikipedia.org/wiki/1948_Tucker_Sedan">Tucker</a>&#8221; automobile, and apply them to all consumer goods. Do away with &#8220;<a href="http://en.wikipedia.org/wiki/Planned_obsolescence">designed obsolescence</a>&#8220;, and try building things to LAST, for a change.</p>
<p>My favorite example of this? A Stanley #2 plane.</p>
<p><strong><em>(&#8216;But wait!&#8217; you cry. &#8216;What about the Rabbits?&#8217;)</em></strong></p>
<p>Ah yes. The Rabbits.</p>
<p>Even in &#8220;Peak Everything&#8221;, when the author discusses how America may need to shift back to a nation with 20-40% of our workforce involved directly in agriculture (in a move called re-ruralization), which mimics much of what Cuba did after the trade embargo was put into place &#8211; there&#8217;s still too much emphasis on simple vegetables and grain. As a passionate carnivore, I have to ask &#8211; <strong>Where&#8217;s the beef?!?</strong></p>
<p><strong>What&#8217;s wrong with cows, anyway?</strong> A lot, as it turns out.</p>
<p>1. They produce tons of methane, a greenhouse gas that&#8217;s hundreds of times worse than simple carbon dioxide.<br />
2. They&#8217;re horribly inefficient at converting feed or pasture to meat.<br />
3. They&#8217;re grazed at great distances from where they&#8217;re processed, and then transported great distances AGAIN to where they&#8217;re consumed.</p>
<dl class="wp-caption alignright" style="width: 190px;">
<dt class="wp-caption-dt"><a href="http://flickr.com/photos/tetradite/838503953/"><img title="Stanley Plane" src="http://farm2.static.flickr.com/1269/838503953_da388bacfe_m.jpg" alt="Copyright by Tetradite" width="180" height="240" /></a></dt>
</dl>
<p>4. They require relatively high-quality rangeland, and human-edible feed &#8211; which contributes directly to the worldwide shortage of arable land.</p>
<p><strong>What&#8217;s better?</strong> Locally-grown, locally-processed rabbits. Why?</p>
<p>1. Rabbits are incredibly efficient at converting vegetable scraps, and simple non-human-edible vegetation (dandelions, for instance) into meat.<br />
2. Their meat is lean, perhaps cutting down on the obesity endemic.<br />
3. They&#8217;re fast and simple to process, with very little toxic byproduct from slaughtering.<br />
4. They breed like, well, like rabbits.<br />
5. They&#8217;re simple to breed on a highly-localized scale, reducing transport and attendant fuel costs, pollution, etc.</p>
<p><strong>So <a href="http://blogmaverick.com/2009/02/09/the-mark-cuban-stimulus-plan-open-source-funding/">here&#8217;s my pitch, Mr. Cuban</a></strong> &#8211; strike some direct-to-restaurant business deals with major fast-food chains (I&#8217;m thinking Wendy&#8217;s or McD-scale) for the &#8220;Bunny Burger&#8221;. Work with <a href="http://www.jdk.com/live/home.html">these guys</a> on some compelling branding to take the stigma away from breaking fast on the bunny scramble, and put together massively distributed production of bunnies (and their attendant feed). Compost and sell the manure. Feed them kitchen scraps from the same restaurants that are buying your bunny burgers.</p>
<p>Hire the homeless as Neo-shepherds, to keep stray dogs and eagles away from your flock. And where do you put them? How bout the parking garages that will be abandoned as our global economy (and our ability to make ridiculous monthly payments) hits the toilet?</p>
<p>Rabbits. FTW.</p>
<span class="akst_link"><a href="http://www.cognition.ca/?p=174&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_174"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2009/02/rabbits-ftw-the-mark-cuban-stimulus-package-needs-meat.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Cool things I&#8217;ve discovered recently</title>
		<link>http://www.cognition.ca/2009/02/cool-things-ive-discovered-recently.html</link>
		<comments>http://www.cognition.ca/2009/02/cool-things-ive-discovered-recently.html#comments</comments>
		<pubDate>Thu, 19 Feb 2009 08:14:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[entrepreneurs]]></category>
		<category><![CDATA[dd-wrt]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=167</guid>
		<description><![CDATA[I&#8217;ve never done a round-up post before, so now must be a good time. Here are a few cool things I&#8217;ve found recently: How to use VPN to solve VoIP problems As some of you may be aware, when I&#8217;m not busy with my day job at NASA, I run a small VoIP company. The [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve never done a round-up post before, so now must be a good time. Here are a few cool things I&#8217;ve found recently:</p>
<h2>How to use VPN to solve VoIP problems</h2>
<p>As some of you may be aware, when I&#8217;m not busy with my day job at NASA, I run <a href="http://www.natel.ca">a small VoIP company</a>. The why and when of this company is a story for another day, with intrigue, betrayal, ex-CIA agents, con artists, lawsuits and utter, utter sleep deprivation. But, as I said, that will have to wait.</p>
<p><a href="http://www.natel.ca"><img class="alignright" title="The Green Phone" src="http://farm1.static.flickr.com/208/471663573_5e720ebeb4.jpg" alt="" width="301" height="225" /></a>It&#8217;s a simple enough business &#8211; multi-line phone service for homes and offices, complete with distinctive ring, cool automated phone trees, time-of-day dialing, etc. And it has always had one nasty technology problem in it &#8211; NAT.</p>
<p>Anyone who has ever dealt with VoIP has run into all the various ways that NAT can go wrong. And I thought I had worked out ways to deal with most of them &#8211; at least, until I started working with some new hardware.</p>
<p>Let&#8217;s skip the gory details, and summarize by saying that I&#8217;ve been forced to deal with this problem in a decisive, and final, fashion.<span id="more-167"></span></p>
<p>No more NAT. Instead &#8211; <a href="http://openvpn.net/">OpenVPN</a>.</p>
<p>There are usually two different ways to handle getting a VoIP phone connected to a remote VPN server &#8211; either connect the phone directly (if it supports that), or put in some sort of VPN concentrator. There are even routers that support VPN tunneling &#8211; if you&#8217;re willing to pay for it.</p>
<p>There&#8217;s also another way &#8211; a happy story called <a href="http://www.dd-wrt.com">DD-WRT</a>. This is an alternative, open-source firmware for many of today&#8217;s most common hardware routers &#8211; including the WRT54G2 that I&#8217;ve been dealing with. Along with being just really cool, it offers both a VoIP SIP Proxy (which I opted against), and an OpenVPN implementation.</p>
<p>So this is what I&#8217;ve ended up with &#8211; an office LAN full of happy telephones, connected through a VPN tunnel that originates in their gateway device, and terminates in my Asterisk Server. No muss, no fuss.</p>
<p>And a few happy side effects, to boot:</p>
<ul>
<li>Because the VPN traffic is encrypted (and prioritized by the ISP), I&#8217;m no longer vulnerable to any nasty stateful packet inspection and downgrading of third-party VoIP (see the <a href="http://www.ip97.com/shaw_takes_action_against_vonage_ebhi.aspx">lawsuit between Vonage and Shaw</a> for details).</li>
<li>This VPN link works both ways &#8211; I can remotely configure all those phones without having to expose them to the public internet. Goodbye, site visits.</li>
</ul>
<p>(Some credit for this solution goes to Chiral Software &#8211; although I didn&#8217;t find <a href="http://chiralsoftware.com/asterisk-article/voip-sip-asterisk-configuration-part-1.jsp">this post</a> until after I had decided on an OpenVPN solution, it still had some helpful hints. But I believe using DD-WRT makes the whole thing more elegant.)</p>
<h2>Turning 404 Errors into &#8220;I&#8217;m Feeling Lucky&#8221; Searches</h2>
<p><a href="http://overstimulate.com">Jesse Andrews</a> and I often take turns copying each other. (Of course, since he&#8217;s <a href="http://blog.wired.com/business/2009/02/wanna-play-clik.html">ridiculously famous</a>, and I&#8217;m only mildly annoying, people usually notice me copying him. Alas). Anyway, Jesse was the first one to point out <a href="http://humanized.com/weblog/2006/09/11/monolog_boxes_and_transparent_messages/">Humanized Messages</a> to me. After which, I used (and modified) a <a href="http://code.google.com/p/humanmsg/">jQuery plugin to put Humanized Messages</a> into a <a href="http://spandexfox.com/googazon/">Firefox Extension</a>.</p>
<p><a href="http://www.flickr.com/photos/massenpunkt/91952193/"><img class="size-medium wp-image-170 alignright" title="404" src="http://www.cognition.ca/wp-content/uploads/2009/02/picture-1-300x265.png" alt="404" width="300" height="265" /></a></p>
<p>Jesse had to go one better, and built almost the same effect into <a href="http://overstimulate.com/articles/search-results-in-firefox">Searchy</a>, one of HIS Firefox Extensions. But he wrote it from scratch, and made it actually much nicer.</p>
<p>Anyway, I had been hacking on various ways to monetize browser extensions at the time, and harking back to the days when we wrote the &#8220;HP Browser Booster&#8221; at Mercurial. One of the many things it did, was to redirect 404 errors to the AOL Search Page. I figured I could do better than that &#8211; and I wrote &#8220;Four-Oh&#8221;.</p>
<p>This happy extension detects a 404 error (well before the 404 page is displayed, which was a happy little piece of coding), strips the requested path off the base domain name, converts slashes into spaces, and then uses that as an &#8220;I&#8217;m feeling lucky&#8221; query for the site:&lt;domainname.com&gt; of the original request.</p>
<p>Lost?</p>
<p>It means that trying to go to <a href="http://overstimulate.com/taboo">http://overstimulate.com/taboo</a> &#8211; will automatically land you on <a href="http://overstimulate.com/projects/taboo">http://overstimulate.com/projects/taboo</a>.</p>
<p>Not satisfied with simply a useful little utility, I also parse an RSS feed of random jokes, and pop one of them up on top of the resulting page &#8211; in a Humanized Message window that looks remarkably like Searchy.</p>
<p>Jesse, your turn.</p>
<span class="akst_link"><a href="http://www.cognition.ca/?p=167&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_167"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2009/02/cool-things-ive-discovered-recently.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Make $1 on The Internet</title>
		<link>http://www.cognition.ca/2009/02/how-to-make-1-on-teh-intertubes.html</link>
		<comments>http://www.cognition.ca/2009/02/how-to-make-1-on-teh-intertubes.html#comments</comments>
		<pubDate>Tue, 17 Feb 2009 07:18:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[entrepreneurs]]></category>
		<category><![CDATA[affiliate]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[gold bars]]></category>
		<category><![CDATA[make money]]></category>

		<guid isPermaLink="false">http://www.cognition.ca/?p=156</guid>
		<description><![CDATA[Growing up in the Gen-X / Gen-Y, post-TV world of my youth has obvious advantages. But it lacks some of the nuance of yesteryear &#8211; like a framed copy of your first dollar. Making money on the internet, at least at a small scale, is exactly the opposite of making money in the real world. [...]]]></description>
			<content:encoded><![CDATA[<p>Growing up in the Gen-X / Gen-Y, post-TV world of my youth has obvious advantages. But it lacks some of the nuance of yesteryear &#8211; like a framed copy of your first dollar.</p>
<p><img class="alignright" title="Gold Bars" src="http://goldprice.org/buying-gold/uploaded_images/gold-bars-775426.jpg" alt="" width="300" height="237" />Making money on the internet, at least at a small scale, is exactly the opposite of making money in the real world. Trying something is so cheap, you should just keep trying things until something works. Unfortunately, just because it works a little bit &#8211; doesn&#8217;t mean it&#8217;ll work much more than that.</p>
<p>I started writing software when I was seven years old. Most of the years I clung to the idea that, someday, I would write a piece of software that people would pay money to OWN. When I began working, first as a coder and then later as a software architect, I still held out dreams of building the next Google &#8211; a gigantic, brilliant piece of engineering that would make me the richest man in the world.</p>
<p>And then<a href="http://www.slideshare.net/mgrtbx/elegant-solutions-breaktrough-thinking-the-toyota-way-a-changethis-manifesto-by-matthew-e-mat-presentation"> I discovered Toyota.</a></p>
<p>This was also just about the time I was going broke, chasing one of these big, complicated visions.<span id="more-156"></span></p>
<p>To take my mind off things, I decided to start copying <a href="http://overstimulate.com">Jesse Andrews</a> (the godfather of <a href="http://userscripts.org">UserScripts.org</a>). Build simple, clean, simple, tiny, simple&#8230; really SIMPLE pieces of software that do only one thing.</p>
<p>But I took a little twist on Jesse&#8217;s way of doing it &#8211; I would only work on things that I could code, test, and ship &#8211; in one sitting.</p>
<p>And we called it &#8220;<a href="http://www.cognition.ca/tinyapps">Tiny Apps</a>&#8220;. And it was good.</p>
<p>But not that good. A great little app, thrown together in a few hours and tossed out into the surf of the Intarwebs, is a bit of a sitting duck. People started shooting them &#8211; by which, I mean ripping our ideas off EXACTLY &#8211; and then getting tons of press.</p>
<p>US: <a title="Whois Social" href="http://Whoissocial.com">Whoissocial.com</a>. Four days later: <a title="UserNameCheck.com" href="http://usernamecheck.com">usernamecheck.com</a></p>
<p>US: <a title="Gastracker.cognition.ca" href="http://Gastracker.cognition.ca">Gastracker.cognition.ca</a>. Several months later: <a href="http://mashable.com/2008/10/15/car-fuel-maintenance/">A whole bunch of them.<img class="alignright" title="Microsoft Gold Bag" src="http://www.josmaco.com.my/catalog/images/non-woven%20bag/gold%20nonwoven%20bag.jpg" alt="" width="300" height="300" /></a></p>
<p>My original tiny app, a <a title="Buy Later - Amazon Price Watch" href="http://buylatr.com">grid-computer-powered price-watching service</a>, remains the only Tiny App to make much money. Okay, any money. Really. Freddy Mangum and I worked on developing this concept further, and prototyped a few variants &#8211; <a href="http://spandexfox.com">GoogAzon</a>, which adds Amazon and eBay search results to google pages; and &#8220;<a href="https://addons.mozilla.org/en-US/firefox/addon/9857">The Kraken</a>&#8220;, which was a tongue-in-cheek response to the &#8220;<a href="http://pirates-of-the-amazon.com/">Pirates of the Amazon</a>&#8221; extension that came out late last year.</p>
<p>The Kraken was notable enough to get us <a href="http://www.download.com/8301-2007_4-10113715-12.html">some substantial press</a> (and a fair number of downloads, too) &#8211; but it&#8217;s never made a cent.</p>
<p><strong>Here&#8217;s how I&#8217;ve made money on teh internet:</strong></p>
<ul>
<li><a href="https://www.google.com/adsense">Google Adsense</a>. But only a little. ($46 in three years, roughly).</li>
<li><a title="Amazon's Affiliate Program" href="http://affiliate-program.amazon.com">Amazon Affiliate</a> revenue &#8211; both embedded in software, and in blog posts. (Some many bunches of dollars).</li>
<li><a href="https://ebaypartnernetwork.com/files/hub/en-US/index.html">eBay Affiliate</a> revenue &#8211; About $3.</li>
</ul>
<p>Now, if you&#8217;ve bothered to read all the way down here, this is where I&#8217;m going to give away a little secret. And by secret, I don&#8217;t mean something really clever that I dreamed up on my own &#8211; I mean a strange and lucky coincidence that happened to lead to something cool.</p>
<p>As of right now, I make more money from my blog, than from anything else.</p>
<p>Seriously.</p>
<p>Actually, to be fair &#8211; I make more money off of a single post on my blog.</p>
<p><a href="http://www.cognition.ca/2008/02/facebook-application-development-how-to-11-tips-you-dont-want-to-miss.html">This post.</a></p>
<p>Which brings me back to <a href="http://www.sethgodin.com/purple/">Seth Godin</a>, and <a href="http://www.bookburro.org/">Jesse Andrews</a>. Just build cool stuff, solve your own problems &#8211; and share.</p>
<p>Oh, and get an Amazon Affiliate account.</p>
<span class="akst_link"><a href="http://www.cognition.ca/?p=156&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_156"  class="akst_share_link">Share This</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.cognition.ca/2009/02/how-to-make-1-on-teh-intertubes.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

