<?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>Coding Loudly &#187; Write-up</title>
	<atom:link href="http://www.charlesmerriam.com/blog/category/write-up/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.charlesmerriam.com/blog</link>
	<description>Charles Merriam&#039;s loud tales of coding and technology</description>
	<lastBuildDate>Sun, 05 Sep 2010 09:35:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>7 minute talk follow-up</title>
		<link>http://www.charlesmerriam.com/blog/2008/08/7-minute-talk-follow-up/</link>
		<comments>http://www.charlesmerriam.com/blog/2008/08/7-minute-talk-follow-up/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 22:50:20 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Write-up]]></category>
		<category><![CDATA[Google App Engine]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=160</guid>
		<description><![CDATA[Some follow-ups, corrections, and expansions.  Being correct takes effort. First, someone very knowledgeable on the internals noted that I was sloppy with the terms &#8216;datastore&#8216;, &#8216;GBase&#8216;, &#8216;GoogleBase&#8216;, &#8216;GQL&#8216;, and &#8216;BigTable&#8216;.  Mea culpa.  Datastore is the most generic term and the specific one for Google App Engine is referred to as the &#8220;App Engine datastore&#8220;.  The [...]]]></description>
			<content:encoded><![CDATA[<p>Some follow-ups, corrections, and expansions.  Being correct takes effort.</p>
<p>First, someone very knowledgeable on the internals noted that I was sloppy with the terms &#8216;<em>datastore</em>&#8216;, &#8216;<em>GBase</em>&#8216;, &#8216;<em>GoogleBase</em>&#8216;, &#8216;<em>GQL</em>&#8216;, and &#8216;<em>BigTable</em>&#8216;.  Mea culpa.  <strong>Datastore</strong> is the most generic term and the specific one for Google App Engine is referred to as the &#8220;<a href="http://code.google.com/appengine/docs/gettingstarted/usingdatastore.html"><strong>App Engine datastore</strong></a>&#8220;.  The App Engine datastore is accessed through <strong><a href="http://code.google.com/appengine/docs/datastore/gqlreference.html">GQL</a></strong>, a language reminiscent of SQL.  The App Engine datastore is built on BigTable and exposes some of BigTable&#8217;s capabilities (see <a href="http://en.wikipedia.org/wiki/BigTable">Wikipedia</a>, a <a href="http://labs.google.com/papers/bigtable-osdi06.pdf">formal paper</a>,  or <a href="http://video.google.com/videoplay?docid=7278544055668715642">video</a> documentation).    <a href="http://www.google.com/base">GoogleBase</a> is an independent Google product that is also built on BigTable.  GBase is a guitar search engine and the naturally elided form of &#8220;GoogleBase&#8221; after saying it a hundred times.   Whew!  Terms.</p>
<p>Speaking of terms, the contract term dealing with indemnification in the <a href="http://code.google.com/appengine/terms.html">Terms of Service</a>:</p>
<p><em>13.1. You agree to hold harmless and indemnify Google, and its subsidiaries, affiliates, officers, agents, employees, advertisers, licensors, suppliers or partners, (collectively &#8220;Google and Partners&#8221;) from and against any third party claim arising from or in any way related to (a) your breach of the Terms, (b) your use of the Service, (c) your violation of applicable laws, rules or regulations in connection with the Service, or (d) your Content or your Application, including any liability or expense arising from all claims, losses, damages (actual and consequential), suits, judgments, litigation costs and attorneys&#8217; fees, of every kind and nature. In such a case, Google will provide you with written notice of such claim, suit or action.</em></p>
<p>The annoying clause is <em>&#8220;(b) your use of the Service&#8221;</em>.   Given how claims are written in patents, it is entirely likely that use of the API would be an actionable breach if the Google App Engine violated patents.  Google could require indemnification by users of the API.  For most people and smaller companies, the reputation of Google and pledges to &#8220;not be evil&#8221; should be sufficient.</p>
<p>Speaking of evil (<em>note the clever transistion</em>), the lazy index evaluation that makes the database look like &#8220;read committed&#8221; is discussed <a href="http://code.google.com/appengine/articles/transaction_isolation.html">here</a>.</p>
<p>Finally, high availability is hard, and &#8220;9&#8242;s&#8221; go faster than you remember.</p>
<p>90% (1-nine) is a downtime of 36.5 days per year.<br />
99% (2-nines) is a downtime of 3.65 days per year.<br />
99.9% (3-nines) is a downtime of 8.65 hours per year.<br />
99.99% (4 nines) is a downtime of 52 minutes per year.<br />
99.999% (5 nines) is a downtime of 5.2 minutes per year, or six seconds per week.</p>
<p>A claim of about 2-nines reliability is reasonable.  Google App Engine was launched around four months ago <a href="http://news.cnet.com/8301-10784_3-9913631-7.html">in mid-April</a>, so about a day of downtime is 2-nines.  It was down on June 17 for some unreported number of hours, and was down again on June 19 and June 25.  Add in little outages where various features broke, blocking PayPal, and other nits.  There is <a href="http://groups.google.com/group/google-appengine-downtime-notify">a list</a> that occasionally reports downtime, but no exact statistics are available.  If there were no future outages, and you wanted to demonstrate four nines reliability, it would need to take years to overcome the existing outages.</p>
<p>Keep on working on it.  I hope that Google App Engine will be more fun in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2008/08/7-minute-talk-follow-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google App Engine &#8211; 7 minute talk</title>
		<link>http://www.charlesmerriam.com/blog/2008/08/google-app-engine-7-minute-talk/</link>
		<comments>http://www.charlesmerriam.com/blog/2008/08/google-app-engine-7-minute-talk/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 10:18:08 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Write-up]]></category>
		<category><![CDATA[Google App Engine]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=155</guid>
		<description><![CDATA[[I gave this talk at the BayPiggies Meeting on August 14, 2008.  The 'Newbie Nugget' talk ran about seven minutes and used only spoken words.  This is my recollection of what I said.] I drove here today.  I got in my car, used the six speed manual transmission, steering wheel, and pedals.  I had to [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://flickr.com/photos/erica_marshall/2737425814/"><img class="aligncenter size-full wp-image-158" title="Stopwatch" src="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/08/stopw.jpg" alt="" width="160" height="240" /></a></p>
<p><em>[I gave this talk at the BayPiggies Meeting on August 14, 2008.  The 'Newbie Nugget' talk ran about seven minutes and used only spoken words.  This is my recollection of what I said.]</em></p>
<p>I drove here today.  I got in my car, used the six speed manual transmission, steering wheel, and pedals.  I had to know how to change lanes and the rules of the road.  I needed to know traffic patterns, and directions from my house to Google.  I got here.</p>
<p>It was the most dangerous thing I did today.  Traffic accidents kill about 40,000 people a year in the U.S. alone.   It&#8217;s the number one cause of death for everyone from age five to about my age where heart disease and cancer start catching up.  We just take it for granted.   That&#8217;s not the car I want.</p>
<p>I Want My Autodriving Car!  I want to push a button on my cell phone, walk out the door a minute later, and hop into the open door of a car.  It would take me where I want to go, take the best route given current traffic, and drop me in front of the door.   It would never crash.  It would just work.  That&#8217;s what I want in a car.</p>
<p>Here&#8217;s what I want in an application engine.   I want to write in one language.  I want one set of tools.  One naming convention.  I want to be able to translate my thoughts into code cleanly.  I want the application to be on the Internet and scale and to share that application with everyone through a url or something like the IPhone App Store.   That&#8217;s what I want in an application server.</p>
<p>Google App Engine is not there yet.   Google App Engine is a step along that path, and lets you see where application engines are headed.  For the first time, you can see that installing and configuring MySQL on a server and then renting space in a rack for the server will someday sound the same as someone talking about pulling the engine in his car and changing out the rings in the driveway.  I guess you could do that yourself, but why?  You still need to work in the soup of languages:  HTML, CSS, JavaScript, HTTP headers, Flash, Python, and more.   You still need to coordinate your tools for each language:  editor coloring, debugger, make system, test harness, code coverage, and documentation.  It does us good to keep our eyes on the App Engine we want.</p>
<p>So, let&#8217;s talk about Google App Engine:  what is does, how to write for it, where you would use it and not.</p>
<p>Google App Engine is fundamentally a deployment engine.  After you write your application, it provides that application out on the Internet.  It&#8217;s also very early technology.  It sort of supports Django (&#8216;jango&#8217; for those who talk; &#8216;d-jango&#8217; for those who read), but using the latest version runs up against its thousand file limit.  Fully half of the seventy posts a day on the mailing list are about deployment quotas or looking for workarounds to deployment limits.  You cannot run any long job that takes more than a few seconds.  Still, it&#8217;s free.</p>
<p>Writing for Google App Engine is much like writing for any other application engine.  You use the WSGI interface, which someone taught me is pronounced &#8216;whiskey&#8217;, that provides a mapping between the requested URLs and the classes to serve them.  You write a class that has methods to respond to HTTP messages like get and put.  Your codes spits out the HTML and whatever to respond.  Sometimes you trigger urlfetch, from urllib, of your own application like remote procedure calls to avoid hitting computation time request limits.  You store your data in the Google Base data store.</p>
<p>Google Base can be a problem.  The Google Base datastore is not a relational database.  It&#8217;s a great database for working data you collect from all over the web, like web pages or screen scraping, where you are working with massive amounts of data and some of it is always aging out.  It should never be used for accounting.  For example, you can&#8217;t just run a GBase query to update the total invoices for a month.  You need to walk through all the records.  If you update the date on an invoice and then retotal the invoices, you might get the wrong answer.  GBase doesn&#8217;t guarantee the invoices index is immediately updated.  It would probably work, but if you were to try running tests to see how often it fails you&#8217;d use up your quota and be locked out for a few days.</p>
<p>So where is Google App Engine the right choice?  First, it&#8217;s free.   It&#8217;s a good way of learning how to write for application servers.  There are some good tutorials and videos and off you go.  If your application needs a lot of bandwidth downloading from elsewhere on the internet, it&#8217;s probably a good choice.  So if you want to try out an idea that&#8217;s not for making money, go for it.</p>
<p>Where is Google App Engine the wrong choice?  If you are trying to make money, it&#8217;s right out.   First, the license includes clauses that require you to indemnify Google if the API infringes patents.  A Fortune 500 company won&#8217;t let you agree to that.  Second, its reliability wants to get up to five nine&#8217;s (.99999) but is hovering between one and two nines.  Third, it&#8217;s really early tech.  You can watch lots of  bugs get filed and occasionally fixed, but they are in the stage of getting it feature complete first.</p>
<p>In conclusion,  I want an auto-driving car and I want my great application engine.  Google App Engine is like getting a taxi.   A taxi does the driving, but I still need to know directions and road conditions, and I still get into car accidents.   With Google App Engine, I still need to know the whole stack of languages, my site still gets hacked, and it still goes down a lot.  But you can see the future in Google App Engine, and it may turn into something great.</p>
<p><em>[Clarifications and follow-ups for this article got a bit long.  I added some expansions on <a href="http://www.charlesmerriam.com/blog/?p=160">this blog post</a>.]</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2008/08/google-app-engine-7-minute-talk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>KDE 4:  Crud and the Quest for &#8220;The One Last and True Windowing System&#8221;</title>
		<link>http://www.charlesmerriam.com/blog/2008/07/kde-4-crud-and-the-quest-for-the-one-last-and-true-windowing-system/</link>
		<comments>http://www.charlesmerriam.com/blog/2008/07/kde-4-crud-and-the-quest-for-the-one-last-and-true-windowing-system/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 20:26:13 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Write-up]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=145</guid>
		<description><![CDATA[80% of effects come from 20% of causes &#8212; Pareto Principle by Vilfredo Frederico Damaso Pareto, 1906 90% of Everything is Crud &#8211; Sturgeon&#8217;s Law by Theodore Sturgeon, 1956 100% of Everything is Crud &#8211; Linear extrapolation of above, 2006. There seems to have been a natural tendency for us to look at past as [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://kde.org"><img class="size-medium wp-image-146 aligncenter" title="klogo-official-oxygen" src="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/07/klogo-official-oxygen.png" alt="" width="80" height="80" /></a></p>
<p><strong>80% of effects come from 20% of causes</strong><br />
<em> &#8212; Pareto Principle by Vilfredo Frederico Damaso Pareto, 1906</em></p>
<p><strong>90% of Everything is Crud</strong><br />
<em>&#8211; <a href="http://en.wikipedia.org/wiki/Sturgeon%27s_law">Sturgeon&#8217;s Law</a> by Theodore Sturgeon, 1956</em></p>
<p><strong>100% of Everything is Crud</strong><br />
<em>&#8211; Linear extrapolation of above, 2006.</em></p>
<p>There seems to have been a natural tendency for us to look at past as some magical time when quality mattered.   Really, only the pure quality of finished work survived.  We forget the uncountable steps towards quality.</p>
<p>In the world of desktop environments, the journey towards quality continues.  KDE 4.1 makes a step, following trends, and aiming to be The One Last and True Windowing System.</p>
<p><strong>Quality Steps and Missteps</strong></p>
<p>I installed Kubuntu with KDE 4 on my laptop, and am using it to write this post.   That it is written at all shows a minunum level of quality.  That the post starts with these quotes shows a maximum level.</p>
<p>I find immediate problems when installing.  The very first action, the &#8220;Read Me&#8221; during the LiveCD boot,<a href="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/07/5.png"><img class="alignright size-medium wp-image-150" title="5" src="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/07/5-300x225.png" alt="" width="300" height="225" /></a> comes up in a clipped and illegible font.  During partitioning the disks, the progress bar hangs at 0% for ten minutes.  The task bar lacks resizing and basic functionality.  The quick launcher, <a href="http://en.wikipedia.org/wiki/Katapult">Katapult</a>, disappeared.  A new program launcher experiment falls flat with some buttons activating by click and other by hovering the mouse.  Konquer still crashes.    I discover new bugs a few times per hour.  These are the the nits and bugs of a new system.</p>
<p>The subtle problems are the problems repeated from previous years:  the LILO boot system that unhelpfully refers to Vista as &#8220;longhorn&#8221; and Kubuntu as &#8220;generic Ubuntu core&#8221;; the cobbleware of screen layout that has fonts too big for buttons, text too wide for dialogs, and odd alignments; the usual flakiness with power and wireless management.  These problems persist for ages from expectation, difficulty, or blindness.</p>
<p>So quality is a step downward while the easy bugs are fixed.  Some nice features, like <a href="http://en.wikipedia.com/filelight">FileLight</a> <a href="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/07/filelight-10.png"><img class="alignright size-medium wp-image-148" title="filelight-10" src="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/07/filelight-10-300x277.png" alt="" width="300" height="277" /></a>are a definite step up that I expect every other distribution to copy soon.  KDE did buck the trend in releasing a quality downgrade.</p>
<p><strong>Trends in Window Managers </strong></p>
<p>KDE 4 follows the collective wisdom of other software competitors including GNOME, Sugar, Microsoft&#8217;s Windows line, and Apple&#8217;s OS X line.  It tries to be different just like everyone else.  It adds new functionality in pieces and parts.  The hodgepodge of bundling, or smush, that make up windowing systems includes GUI and interface candy, applications, and APIs.</p>
<p>Smush is not pejorative.  Open source swaps in and out competing components and the windowing system selects components under its seal of approval and delinates APIs outside its control.  Quality for each component is involved at several layers.  When the power management on my laptop fails to hibernate before powering off, I could file a bug with KDE, Ubuntu (link to shuttleworth), Debian, the Linux ACPI mailing list, hardware discovery, or just fix it myself.  When searching for a workaround, it could exist anywhere.</p>
<p>KDE is following the trend towards aggressively  cross platform deployment.   By using Qt 4 as it&#8217;s underlying graphics engine, KDE hopes to deploy on desktops (Linux, MS Windows, and OS/X), cellular phones, and some embedded devices.   It is currently hampered by Qt 4 having no LGPL or BSD license, requiring a special licensing cycle to deploy any commercial application.  The previous Qt 4 copyright holder, TrollTech needed this revenue to continue operations.  The new holder, Nokia, may free the code in order to encourage wider adoption and easier developer migration to its cellular phones.</p>
<p>KDE also follows the practice of wrapping more and more functionality into API layer plug-ins.  Rather than commit to a scripting language, <a href="http://kross.dipe.org/">Kross</a> wraps or interfaces to Python, Ruby and JavaScript.   Rather than commit to a multimedia engine, Phonon creates one more layer of indirection for a common interface to GStreamer, QuickTime, DirectShow, and others.  The new release switches many of the wrappers so now it is Phonon (multimedia), Solid (device integration), Plasma (a new desktop), Kross (scripting), DXS (application data updates), Decibel (human communications), and D-BUS replacing DCOP (application messaging).  It is unclear if &#8220;one more layer of indirection&#8221; will be the correct solution in the long run.</p>
<p>In the long run, of course, KDE hopes to birth &#8220;The One Last and True Windowing System.&#8221;</p>
<p><strong>The One Last and True Windowing System</strong></p>
<p><strong><em>Results 1 &#8211; 10 of about 1,040</em></strong><br />
&#8211;<em> Google search for <a href="http://www.google.com/search?q=&quot;one+api+to+rule+them+all&quot;">&#8220;One API to Rule Them All&#8221;</a></em></p>
<p>Windowing systems race towards the goals of full functionality, sweet abstractions, and wide deployment with the winner creating a work that will last decades.  Each release brings new experiments and implements growing standards.  Implementations trump ideas. Differing implementations get abstracted and merged.  Engineers have always raced towards sweet solutions.</p>
<p>Software does get finished.  We still use the C programming language after more than a third of a century.  The syntax, style, and assumptions are passed to new languages such as C++, Python and Ruby.  Other contenders failed.  Hardware architectures now handle pointer indirections, sequential arrays, and null terminated strings.  C goes through occasional updates and forks, but it endures.  Also enduring are the most of the Internet stack including TCP/IP, DNS/Bind, and packet switching; HTTP protocols, SQL, and many more.  These become the common parts upon which we solve new problems.  Many hope to finish writing the desktop software.</p>
<p>FreeDesktop.org gently pushes towards standardization by facilitating discussion.  It speeds the process of making compatible, then integrating, then merging competitng development that has become similar.  It&#8217;s influence on KDE is unmistakable.</p>
<p>So, will KDE give birth to the &#8220;One Last and True Windowing System&#8221; that lasts for decades?</p>
<p><strong>Conclusions </strong></p>
<p>KDE took a significant risk.  It&#8217;s adoption of Qt 4, dropping of DCOP, and making so many changes significantly hurt its quality.  On the other hand, it might provide a new level of functionality to catapult into the top three windowing systems.  Time will tell.  For people just wanting a desktop to work, stay away for six months.<span id="more-145"></span><!--more--><!--more--><!--more--><!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2008/07/kde-4-crud-and-the-quest-for-the-one-last-and-true-windowing-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with Programming a Technology Tree</title>
		<link>http://www.charlesmerriam.com/blog/2008/04/fun-with-programming-a-technology-tree/</link>
		<comments>http://www.charlesmerriam.com/blog/2008/04/fun-with-programming-a-technology-tree/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 19:00:04 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Write-up]]></category>
		<category><![CDATA[civ2]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[technology tree]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=123</guid>
		<description><![CDATA[I spent over a day writing a silly Python program to read in a Civilization 2 Technology Tree. I learned: Python assert statements tend to fail silently during common misuse. Blogged about it. Suggested fixing it on the Py3k mailing list. Guido says there is a SyntaxWarning now. Google docs appears to use the python [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.civfanatics.com/civ2/downloads/poster/"><img class="aligncenter size-medium wp-image-127" title="civ2chart" src="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/04/civ2chart-300x243.jpg" alt="Technology Tree for Civilization version 2" width="300" height="243" /></a></p>
<p>I spent over a day writing a silly Python program to read in a Civilization 2 Technology Tree.</p>
<p>I learned:</p>
<ul>
<li>Python assert statements tend to fail silently during common misuse.  Blogged about it.  Suggested fixing it on the Py3k mailing list.  Guido says there is a SyntaxWarning now.</li>
<li>Google docs appears to use the python csv module to export to csv.  Their spreadsheet works fairly well.  I like the auto-save/auto-versioning.</li>
<li>The csv package is pretty inflexible.   It cannot discover the dialect of comma-separated-vague file it is passed.  It works for, and is designed for, times when the export is either excel or Python.  The Dialects do allow you to set some other basic options.</li>
<li><a href="http://www.somethingaboutorange.com/mrl/projects/nose/">nose</a> is a great testing tool.  nose.tools confuses pylint because of its on-the-fly playing with __all__.  I should probably write a Wikipedia article on it.</li>
<li>Whenever debugging recursion, make a note both when calling the recursed function and when returning.  It makes digging through the log much easier.</li>
<li>Nothing tests your code like a large, real world, example.</li>
<li>The logging function rocks far less well.  I filed <a href="http://bugs.python.org/issue2684">bug</a> on it:  it picks up the wrong %(filename)s.  This bug has apparently been going back and forth for years.</li>
<li>Reading a correctly validated input file is about 10x the effort of reading an incorrectly validated one.</li>
<li>Testing code is fairly easy and a bit bulky.  It&#8217;s real cost is that it forces that 10x effort in validating the input in order to pass the tests.  I could get behind Test Driven Development.</li>
<li>The<a href="http://www.civfanatics.com/images/civ2/poster/civ2chart.jpg"> Civilization 2 Technology Tree</a> has five errors, including two &#8220;Destroyer&#8221; units and a bunch of redundant dependencies, such as Fusion Power doesn&#8217;t need to depend on Nuclear Power.</li>
<li>Sets in Python work well.</li>
<li>WordPress has syntax coloring plug-ins that work fairly well, and it can handle arbitrary files.</li>
<li>Programming is still fun.</li>
</ul>
<p>So, with no plans to do anything with this:</p>
<p><a href="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/04/techpy.txt">tech.py</a> &#8212; This is Python code.  It loads the technology tree and doesn&#8217;t do anything with it.</p>
<p><a href="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/04/civtech.csv">civtech.csv</a> &#8212; A CSV file with the <a href="http://www.civfanatics.com/images/civ2/poster/civ2chart.jpg">Civilization 2 technology tree</a></p>
<p><a href="http://spreadsheets.google.com/pub?key=p3clPOmjOp6gFMAiXDIfUIw">CivChart</a> &#8212; A GoogleDoc spreadsheet with that same technology tree</p>
<p><em>This post cleverly delayed for a few days to space out my postings. <img src='http://www.charlesmerriam.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2008/04/fun-with-programming-a-technology-tree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patent Auction Advice:  My Experience at the Ocean Tomo Intellectual Property Auction</title>
		<link>http://www.charlesmerriam.com/blog/2008/04/patent-auction-advice-my-experience-at-the-ocean-tomo-intellectual-property-auction/</link>
		<comments>http://www.charlesmerriam.com/blog/2008/04/patent-auction-advice-my-experience-at-the-ocean-tomo-intellectual-property-auction/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 19:49:22 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Write-up]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[IP auction]]></category>
		<category><![CDATA[ocean tomo]]></category>
		<category><![CDATA[patent; patent auction]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=110</guid>
		<description><![CDATA[I was there at Ocean Tomo&#8216;s Spring 2008 Live IP Auction, as a last minute assistant to a bidder. My role was to fetch and carry, drive, navigate, hunt for power outlets, obtain lunch, chase Ocean Tomo minions, and generally clear away all the little things that might get in the way of spending a [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://flickr.com/photos/wordfreak/260291990/" title="auct.jpg"><img src="http://www.charlesmerriam.com/blog/wp-content/uploads/2008/04/auct.jpg" alt="auct.jpg" /></a></p>
<p>I was there at <a href="http://www.oceantomo.com">Ocean Tomo</a>&#8216;s Spring 2008 Live IP Auction, as a last minute assistant to a bidder.   My role was to fetch and carry, drive, navigate, hunt for power outlets, obtain lunch, chase Ocean Tomo minions, and generally clear away all the little things that might get in the way of spending a million dollars.  It was an experience.</p>
<p><strong>The Auction Layout</strong></p>
<p>Arriving at the Ritz-Carlton, the oddly lax layout immediately struck me as odd.   There would be real money being spent, and Ocean Tomo would be keeping 25% of each auction as its take.  A throng of black suited, white shirt lawyers shmoozed before being let into the room.   They were there to witness an auction; the actual bidders often wore business casual attire.  Watchers outnumbered bidders by many to one.  Ocean Tomo dove-tailed their IP Strategy conference to the auction and invited all the conference attendees.</p>
<p>The thronged room included several strange little booths pimping specific patents and lots.  Inventors were often on hand with little binders of information.  News clips alleging greatness and multiple infringers were blown up for even the poorest eyesight.  Little dishes of chocolate were available.  All this was standard for a high value auction, but all wrong.  The booths should be pimping for the next auction, not this one.</p>
<p>Patent auctions are not like auctions for artwork, automobiles, or fancy jewelery:  there are no impulse purchases.   Valuation, the guessing at a patent&#8217;s value, take time.  After about forty hours of patent attorney time, reports from outside search firms, and understanding what engineering details could be worked around, then one can make fuzzy guess of the strength of the patent in litigation and a rough number for value generated.  Also, Ocean Tomo requires you to specify what lots you are bidding on in advance and see some guarantees that you can pay your bid.  Even the crazed executive could not impulse buy.</p>
<p><strong>The Auction Itself</strong></p>
<p>The auction was managed by an auctioneer, surprise!  The auction process was never quite clear and evolved during use.  Somewhere in the middle, the auctioneer started using the &#8220;going once, going twice, gone&#8221; model well known to everyone.  Still, there were oddities.  Starting prices were strange and somewhat random and would be reduced if there was no bid at that price.   About half of the auctions sold to a sole bidder.  There were hidden reserve amounts below which the lot would not be sold:  one lot bid up to $700,000 and was below reserve.  There was at least one &#8220;after gavel absentee bid&#8221; which was announced only after the gavel signaled the end of bidding and then opened up bidding again.  Of more concern was the bidding on &#8216;our&#8217; lot.</p>
<p>We were at the back of the room when the lot came up.  We ended up bidding against two other bidders in ever increasing amounts.  Several of the intermediate bids were off a bit:  raises of $25,000 taken as raises of $10,000; a sign for &#8220;more time please&#8221; taken as a raise for $10,000.  The final bid was heard correctly after being repeated, so no harm done.</p>
<p>There was a slightly slimy feel to all the gawkers.  We had one person who moved behind us to try to puzzle out who we represented and tried asking when that failed.  Anonymity had been promised, though no one stopped the press guy taking photos through the auction.  I got the impression that most experienced bidders used the phone bank.  They had people on platforms who would call registered buyers just before the lot came up, rely the bidding to them and correctly relay bids back to auctioneer.</p>
<p>Some lots traded for a millions.  Several lots couldn&#8217;t get the minimum bid of $10,000:  junk patents are not worth much.   This auction seemed to favor computer hardware and software patents with less interest in materials and power technology.</p>
<p><strong>Planning to Buy A Patent?</strong></p>
<p>I have three pieces of advice if you plan to buy a patent at auction&#8230;</p>
<p>First, plan on time to evaluate the patent.  It will take about two weeks and $30,000 to get ready.   It will take a day or two getting your accounting department enough money to your intermediary.   It will take a night&#8217;s sleep to decide if your decision is correct.</p>
<p>Second, use an intermediary.  Have an agent or your outside counsel actually register and bid.  You *really* do not want anyone to know you bid on a patent and failed to acquire it.   It is worth the hassle to provide a back-up to the confidentiality policy of Ocean Tomo</p>
<p>Finally, bid on the phone.  Being there in person makes you possible to recognize, makes it harder to bid correctly, and forgoes the option of a group sitting around a comfortable conference room table making the best decisions.</p>
<p><strong>It was Fun</strong></p>
<p>It was a fun day.  I got to be an unpaid gopher and observer without stress.   I gained an experience point:  my expected  behavior for buying or selling patents at auction changed.  And I got to take home a bidding paddle used to spend over a million dollars.  According to <a href="http://questionablecontent.net/view.php?comic=715">QFM</a>, someone might be very interested in this paddle.   I wonder what it&#8217;s worth on Ebay?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2008/04/patent-auction-advice-my-experience-at-the-ocean-tomo-intellectual-property-auction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TED Talk Video Write-up:  African fractals, in buildings and braids</title>
		<link>http://www.charlesmerriam.com/blog/2007/12/ted-talk-video-write-up-african-fractals-in-buildings-and-braids/</link>
		<comments>http://www.charlesmerriam.com/blog/2007/12/ted-talk-video-write-up-african-fractals-in-buildings-and-braids/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 19:58:52 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[SelfEd]]></category>
		<category><![CDATA[Society]]></category>
		<category><![CDATA[Ted]]></category>
		<category><![CDATA[Write-up]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[fractal]]></category>
		<category><![CDATA[fractals]]></category>
		<category><![CDATA[Ted Talks]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=84</guid>
		<description><![CDATA[Ron Eglash makes a strong case for fractals being the dominant art form of Africa in this Ted Talk. He explores villages showing a fractal nature far beyond the accidental. Art and religion drive village architectures that repeat into small objects at the heart of the village. His discussions with tribal leaders show the deep [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.rpi.edu/~eglash/eglash.htm" title="Ron Eglash" target="_blank"><img src="http://www.charlesmerriam.com/blog/wp-content/uploads/2007/12/ethiop.thumbnail.gif" alt="ethiop.gif" /></a></p>
<p>Ron Eglash makes a strong case for fractals being the dominant art form of Africa in <a href="http://www.ted.com/talks/view/id/198">this Ted Talk</a>.</p>
<p>He explores villages showing a fractal nature far beyond the accidental.  Art and religion drive village architectures that repeat into small objects at the heart of the village.  His discussions with tribal leaders show the deep meanings of these choices, and a continuance of these themes into African life.</p>
<p>Fractals are explained, and the theme is shown in the <a href="http://en.wikipedia.org/wiki/Mancala">Mancala</a> games, fence construction, tapestry, and aspects of religion.  Binary patterning, as part of mysticism, produce a good random number generator.  Finally, some efforts are shown as incorporating this heritage into an educational system.</p>
<p>This is a fascinating 15 minute video.  Also, he provides <a href="http://www.ccd.rpi.edu/Eglash/csdt/">software for exploring fractals</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2007/12/ted-talk-video-write-up-african-fractals-in-buildings-and-braids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EngEdu Video Write-up:  Google Test Automation Lightning Talks</title>
		<link>http://www.charlesmerriam.com/blog/2007/10/engedu-video-review-google-test-automation-lightning-talks/</link>
		<comments>http://www.charlesmerriam.com/blog/2007/10/engedu-video-review-google-test-automation-lightning-talks/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 08:42:55 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[EngEdu]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[SelfEd]]></category>
		<category><![CDATA[Write-up]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=70</guid>
		<description><![CDATA[Google Test Automation Conference Lightning Talks Good and excellent short talks from the 2006 conference covering many testing topics. Slides are available. 01:20 Dan North from Thoughtworks on Getting Lean Automated Testing has the secondary effect of enabling two of the Lean Principles: Lean Product Design (maximize discovery by faster releases) and Lean Manufacturing (low [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><strong><a href="http://video.google.com/videoplay?docid=-2861921619273058431" title="The Video">Google Test Automation Conference Lightning Talks</a></strong></p>
<p>Good and excellent short talks from the 2006 conference covering many testing topics.  <a href="http://www.google.co.uk/intl/en/events/londontesters/speakers.html" title="Slides">Slides are available</a>.</p>
<p><strong>01:20 Dan North from Thoughtworks on Getting Lean</strong></p>
<ul>
<li>Automated Testing has the secondary effect of enabling two of the Lean Principles:  Lean Product Design (maximize discovery by faster releases) and Lean Manufacturing (low variance repeatable testing).</li>
<li>Sort of supply chain management because design is just before coding is just before release.</li>
<li>Automated Testing allows for frequent shipping of high quality product.</li>
</ul>
<p><strong>06:00 Steve Freeman  JMock I Done By Five Minutes</strong></p>
<ul>
<li>JMock is a library for using mock objects in the test-driven development of Java code.</li>
<li>JMock&#8217;s types allows IDE to expose just right spots.  Good error reporting.</li>
</ul>
<p><strong>10:50  Nat Pryce, The JMock II update</strong></p>
<ul>
<li>Update is Java 5, JMock library is framework independent</li>
<li>Cleaner testing code, better IDE autocomplete</li>
<li>New refactoring support</li>
</ul>
<p><strong>15:01  Christine Newman from Progressive Insurance, Getting More Funding for Automated Testing</strong></p>
<ul>
<li>Quantify the value of automated testing with numbers like &#8220;Production Problems Prevented; Risks Mitigated (by severity); or Hours Saved&#8221;</li>
</ul>
<p><strong>18:20 Andrin von Rechenberg, Google Intern, Improving WURFL data</strong></p>
<ul>
<li>Database mobile phone capabilities are hard to test for 8500 user agents.</li>
<li>Check your logs to see how they navigate, e.g., to find HTTPS capability</li>
</ul>
<p><strong>23:30  Ade Oshineye from ThoughtWorks, Five Heresies in Five Minutes</strong></p>
<ul>
<li>Convert your logs of real people into test cases</li>
<li>Mutation Testing works (change code, if test passes then test is bad) for high risk, about to be refactored, or bug-prone sections.</li>
<li>Run actual tests on production hardware with production systems for new release or when making a dummy is hard.</li>
<li>Test your vendor&#8217;s code lest their upgrades break you or you are afraid to upgrade.</li>
<li>Static analysis works now.  Use FindBugs or PyChecker or IntelliJ&#8217;s stack analysis server to find bugs people won&#8217;t find or broken language idioms.</li>
</ul>
<p><strong>29:00 Timur Hairullin for Vandex (Russian Search Engine)</strong></p>
<ul>
<li>Had unexplained performance problems on an update.</li>
<li>Measure performance from time between first byte of request to something happening inside browser of older computers; not just to server sending last byte of response.</li>
</ul>
<p><strong>32:00 James Richardson on Automated Testing:  Why Bother?</strong></p>
<ul>
<li>    How do I quantify Automated Testing?  I missed Christine Neuman&#8217;s lecture.</li>
</ul>
<p><strong>34:00 James Lyndsay for Workroom Productions, Automated Tricks for Manual Testors</strong></p>
<ul>
<li>Some tests must be manual and observed by good testers; they look for surprisers and emergent behaviors.</li>
<li>Use snippets of code (your manual testers should code and use Unix)</li>
<li>Use virtual machine images to hand over bugs.</li>
</ul>
<p><strong>38:26 Jordon Dea-Mattson, some radiation treatment machine firm</strong></p>
<ul>
<li>Working on client/server in life-critical, highly regulated systems.</li>
<li>Most testing strategies have single points of failure; try thinking of testing defense in depth.</li>
<li>Collect more data in the (wild) field instead than just crashes.</li>
<li>Think of software ERP, integrating the whole requirement to delivery chain.</li>
<li>Strong recommendaton for TestQuest; UI testing tool.</li>
</ul>
<p><strong>42:10 Curtis &#8220;Ovid&#8221; Poe with the Perl Foundation, TAP</strong></p>
<ul>
<li>TAP (Test Anything Protocol) is a human and machine readable protocol for test output.</li>
<li>TAP is simple, line oriented, and implemented in C/Perl/Python/Ruby/JavaScript/PostgresSQL</li>
<li>Driven by PerlQA team and a new language agnostic list is forming.</li>
</ul>
<p>Overall, a great video.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2007/10/engedu-video-review-google-test-automation-lightning-talks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BayPiggies Write-up:  9/13 SnapLogic Talk</title>
		<link>http://www.charlesmerriam.com/blog/2007/09/913-snaplogic-talk-at-baypiggies/</link>
		<comments>http://www.charlesmerriam.com/blog/2007/09/913-snaplogic-talk-at-baypiggies/#comments</comments>
		<pubDate>Fri, 14 Sep 2007 10:06:47 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Write-up]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=66</guid>
		<description><![CDATA[Mike Pittaro, a founder at SnapLogic, spoke on &#8220;An Open Source Data Integration Project using Python&#8221; at BayPiggies. Slides are available as a PDF. Mike spoke primarily about the issues building the team, infrastructure, and installer for a large Python project. The SnapLogic product is a data munging and translation application aimed at developers. While [...]]]></description>
			<content:encoded><![CDATA[<p>Mike Pittaro, a founder at <a href="http://www.snaplogic.org/">SnapLogic</a>, spoke on &#8220;An Open Source Data Integration Project using Python&#8221; at <a href="http://www.baypiggies.net/">BayPiggies</a>.  Slides are <a href="http://blog.snaplogic.org/wp-content/uploads/2007/09/snaplogicproject.pdf">available as a PDF</a>. Mike spoke primarily about the issues building the team, infrastructure, and installer for a large Python project.</p>
<p>The SnapLogic product is a data munging and translation application aimed at developers.  While the source code is under a GPL license, professional support and service are available for a fee.  It has taken about one year to develop.  Hiring Python developers was difficult, and eventually good programmers were hired that then learned Python.   They are still hiring.</p>
<p>The development infrastructure came together quickly using primarily open source tools written in <a href="http://www.python.org/">Python</a>: <a href="http://www.gnu.org/software/mailman/index.html">mailman</a>, <a href="http://subversion.tigris.org/">subversion</a>, <a href="http://trac.edgewall.org/">trac</a>, and <a href="http://moinmoin.wikiwikiweb.de/MoinMoin">moinmoin</a>.  The team uses both Linux and Windows (using <a href="http://www.samba.org/">Samba</a> partitions) and both <a href="http://www.eclipse.org/">Eclipse</a>/<a href="http://pydev.sourceforge.net/">Pydev</a> and vi/emacs.  The build process uses <a href="http://buildbot.net/trac">buildbot</a> to kick off builds, <a href="http://epydoc.sourceforge.net/">epydoc</a> and <a href="http://epydoc.sourceforge.net/epytext.html">epytext</a> for documentation,<a href="http://darcs.idyll.org/~t/projects/figleaf/README.html">figleaf</a> for code coverage, <a href="http://docs.python.org/lib/module-unittest.html">unittest</a> for testing, and (closed source) <a href="http://bitrock.com/">bitrock</a> for installation.  This led to a 11.5 <a href="http://www.joelonsoftware.com/articles/fog0000000043.html">Joel Score</a>.</p>
<p>They learned some rules about coding standards, keeping control of import statements, and wrapping really complex libraries with getattr() tricks.  Mostly, they fought with the installation problems of installation of an open source project that requires Python, C, databases, lots of interactions, and also needs to deploy on Windows. They are still fighting with parallelization.</p>
<p>Mike suggested several sources of information.  First, keep reading the <a href="http://docs.python.org/lib/lib.html">library reference</a> over and over.  He also recommended <a href="http://www.dirtsimple.org/2004/12/python-is-not-java.html">Python Is Not Java</a> and <a href="http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html">Code Like a Pythonista</a>.</p>
<p>Thanks again to Mike for a great talk!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2007/09/913-snaplogic-talk-at-baypiggies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EngEdu Video Write-up: &#8220;A New Way to Look at Networking&#8221;</title>
		<link>http://www.charlesmerriam.com/blog/2007/03/review-of-a-new-way-to-look-at-networking/</link>
		<comments>http://www.charlesmerriam.com/blog/2007/03/review-of-a-new-way-to-look-at-networking/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 19:16:09 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[EngEdu]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[SelfEd]]></category>
		<category><![CDATA[Write-up]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=51</guid>
		<description><![CDATA[&#8220;A New Way to Look at Networking&#8221; by Van Jacobson This is great video on the history of voice and TCP/IP networking. Van Jacobson shows the telephone network solved the problems of its day and framed out thinking. He then shows how TCP/IP packet switching solved more problems and framed our thinking again. He then [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://video.google.com/videoplay?docid=-6972678839686672840&amp;q=engEDU" title="Video of the talk">&#8220;A New Way to Look at Networking&#8221; by Van Jacobson</a></p>
<p>This is great video on the history of voice and TCP/IP networking.   Van Jacobson shows the telephone network solved the problems of its day and framed out thinking.  He then shows how TCP/IP packet switching solved more problems and framed our thinking again.  He then suggests we should be thinking about a data centric view of networking, and that our problems warrant another generation of networking.  Then the talk falls down.</p>
<p>[00:00]</p>
<p>Van Jacobson&#8217;s resume is impressive:  he solved many of the Internet congestion problems, worked on the MBONE, wrote early whiteboard software, and generally knows his packets.</p>
<p>[07:00]  History of Telecommunications, the Phone System</p>
<p>The telephone system, Ma Bell, emphasized wires and connecting wires to each other.  A telephone number is just a program for which wires to connect to build a path, committing each segment before the next segment is parsed.  Reliability was enforced by a centralized architecture with extremely reliable components.  The pipes were smart because the end points were dumb.   This view of the world really did work for phone conversations and got wires pulled everywhere.</p>
<p>[17:20] History of Telecommunications, the Packet Generation</p>
<p>In about 1964, Paul  Baran and Don Davies publiched a paper on breaking data into small packets and passing them from link to link in a communications system that could be less than fully interconnected.  The paper was denounced by all, and the ARPANet was built anyway.  At first, this looked like an inefficient way to use the wires already in place courtesy of the telephone generation.  With practice, it proved useful.</p>
<p>[24:53]   CateNet and TCP/IP (1971 paper, 1977 demo) improve the Packet Generation</p>
<p>ARPANet worked, and by the early 1970&#8242;s there were a dozen incompatible packet switched networks.  Vint Cerf and  Bob ? from Stanford took the viewpoint that only the endpoints mattered, not the topology of the networks.  A common encapsulation and addressing scheme suffice to concatenate networks using the encapsulation and addressing only at thenetwork edges.  They demonstrated moving bits from packet radio, through satelites, telephone lines, and other networks.  Bits were bits, and reliability *increases* exponentially with system size.  No path set-ups, no scheduling issues; just an address.</p>
<p>[31:10] The Success Catastrophe of TCP/IP Packet Generation.</p>
<p>The TCP/IP data model works for conversations between computers and has made a world rich in devices, connections, and information.  The challenges of firewalls, VPNs, ad-hoc synchronization, and NATs are symptoms of the success and of changing problems.  The Internet is binary; you are connected with a global address that lasts in the minutes or hours or you are not.  We now face problems with many machines per devices, and those devices are moving between networks quickly.</p>
<p>[38:25]  The Data Generation; a coming generation based on finding and replicating data.</p>
<p>Almost all requests today are for named blocks of data.   Downstream switches are often processing many copies of the same video stream.  Radio based networks target individual receivers by broadcasting the same data to all and having most ignore it.  The TCP/IP protocols are based on one-to-one conversations between computers; we should research fetching and caching data.</p>
<p>New data chunks would include validation hashes, providence hashes, sequence information, and a degree of permanance.  Every cachable device would be a vehicle for data.</p>
<p>[44:53] The descent into unorganized ideas.</p>
<p>That said, the talk descends into unorganized ideas.  There is a short thought demonstration of fetching the NYTimes headline with validation and providence hashes.  There are complaints about lack of multicasting; good things to say about BitTorrent and SnakeBite; ideas of moving QoS to the endpoints and progating back to the core; requests for fast set up times and for alternatives to DSL; wishes to have cached repositories in the local area; instant PKI and webs of trust beating certificate authorities; and a host of complaints about our current infrastructure.</p>
<p>Most of these ideas about data centric networking are not well thought out, which may the point of the talk.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2007/03/review-of-a-new-way-to-look-at-networking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EngEdu Video Write-up: &#8220;Unit Test Automation for Drupal, Google Summer of Code&#8221;</title>
		<link>http://www.charlesmerriam.com/blog/2007/03/review-of-unit-test-automation-for-drupal-google-summer-of-code/</link>
		<comments>http://www.charlesmerriam.com/blog/2007/03/review-of-unit-test-automation-for-drupal-google-summer-of-code/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 20:27:28 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[EngEdu]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[SelfEd]]></category>
		<category><![CDATA[Write-up]]></category>

		<guid isPermaLink="false">http://www.charlesmerriam.com/blog/?p=49</guid>
		<description><![CDATA[Lightning Talk on my Google Summer of Code by Rok Zendler Rok Zendler describes his summer internship project:  creating automated unit tests of Drupal. Drupal is a PHP based, LAMP architecture, content manager used by non-profits and various other websites. Rok created a web interface for submitting a patch set to some Drupal project. His [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://video.google.com/videoplay?docid=-3470092839333505537&amp;q=engedu&amp;hl=en" title="A Google Video">Lightning Talk on my Google Summer of Code by Rok Zendler</a></p>
<p>Rok Zendler describes his summer internship project:  creating automated unit tests of Drupal.  Drupal is a PHP based, LAMP architecture, content manager used by non-profits and various other websites.  Rok created a web interface for submitting a patch set to some Drupal project.   His system then creates a new Drupal site, applies the submitted patches, runs unit tests, and provides a report.   This provides a sanity check to submitted patches.</p>
<p>Rok could be a better speaker, could use fonts that are readable and large, and be a more ambitious.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charlesmerriam.com/blog/2007/03/review-of-unit-test-automation-for-drupal-google-summer-of-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

