<?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>Dave W. Smith</title>
	<atom:link href="http://www.davewsmith.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.davewsmith.com/blog</link>
	<description>This could all be a lot simpler.</description>
	<lastBuildDate>Sun, 01 Aug 2010 01:42:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Brooks on &#8220;Plan to Throw One Away&#8221;</title>
		<link>http://www.davewsmith.com/blog/?p=320</link>
		<comments>http://www.davewsmith.com/blog/?p=320#comments</comments>
		<pubDate>Sat, 31 Jul 2010 23:50:47 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=320</guid>
		<description><![CDATA[In an excellent short interview by Kevin Kelly, Fred Brooks, author of The Mythical Man-Month, has this to say when asked how his thinking has changed:

&#8220;When I first wrote The Mythical Man-Month in 1975, I counseled programmers to &#8220;throw the first version away,&#8221; then build a second one. By the 20th-anniversary edition, I realized that [...]]]></description>
			<content:encoded><![CDATA[<p>In an excellent <a href="http://www.wired.com/magazine/2010/07/ff_fred_brooks/">short interview by Kevin Kelly</a>, Fred Brooks, author of <a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/">The Mythical Man-Month</a>, has this to say when asked how his thinking has changed:</p>
<blockquote><p>
&ldquo;When I first wrote <i>The Mythical Man-Month</i> in 1975, I counseled programmers to &ldquo;throw the first version away,&rdquo; then build a second one. By the 20th-anniversary edition, I realized that constant incremental iteration is a far sounder approach. You build a quick prototype and get it in front of users to see what they do with it. You will always be surprised.&rdquo;
</p></blockquote>
<p>The 20th-anniversary edition was 15 years ago, yet I still hear &ldquo;plan to throw one away&rdquo; quoted and attributed to Brooks. True, but way out of date.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=320</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress Plugin Hell</title>
		<link>http://www.davewsmith.com/blog/?p=313</link>
		<comments>http://www.davewsmith.com/blog/?p=313#comments</comments>
		<pubDate>Mon, 26 Apr 2010 05:26:49 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[Technical Stuff]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=313</guid>
		<description><![CDATA[You&#8217;re going slowly mad wrestling with Wordpress plugins. You might have gotten to this point by deciding to fancy up your own blog, or you might have volunteered to help a friend out with theirs. Either way, you&#8217;ve found yourself neck deep in sorting out some bizarre interactions between third-party plugins, and have been cursing [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;re going slowly mad wrestling with Wordpress plugins. You might have gotten to this point by deciding to fancy up your own blog, or you might have volunteered to help a friend out with theirs. Either way, you&#8217;ve found yourself neck deep in sorting out some bizarre interactions between third-party plugins, and have been cursing both PHP and the lack of good PHP debugging tools.</p>
<p>And, you probably never read the documentation. Documentation? Yeah, that.</p>
<p>Here&#8217;s what you need:</p>
<ul>
<li>The <a href="http://codex.wordpress.org/Plugin_API">Wordpress Plugin API doc</a></li>
<li>A <a href="http://adambrown.info/p/wp_hooks">database of Wordpress hooks</a></li>
</ul>
<p>The API doc lays out the theory of Wordpress hooks, which&#8217;ll give you insight into the &#8220;how the heck did <i>that</i> get called, and from where?!?&#8221; question that you&#8217;ve probably been asking yourself. Much will become clearer. Then it&#8217;s a matter of having documentation for the hundreds of Wordpress hooks within quick reach.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=313</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Technology Radar for 2010</title>
		<link>http://www.davewsmith.com/blog/?p=285</link>
		<comments>http://www.davewsmith.com/blog/?p=285#comments</comments>
		<pubDate>Thu, 28 Jan 2010 08:06:09 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[Technical Stuff]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=285</guid>
		<description><![CDATA[ThoughtWorks recently published their Technology Radar for 2010. I liked the format, and borrowed it to organize and prioritize my own Technology Radar.
Here&#8217;s where I plan to invest learning time this year.

1. I&#8217;m continuing to actively explore how non-trivial relational data models can be mapped on to distributed data stores. I&#8217;ve seen relational databases pushed [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thoughtworks.com">ThoughtWorks</a> recently published their <a href="http://www1.vtrenz.net/imarkownerfiles/ownerassets/1013/Technology%20Radar%20Jan%202010.pdf">Technology Radar for 2010</a>. I liked the format, and borrowed it to organize and prioritize my own Technology Radar.</p>
<p>Here&#8217;s where I plan to invest learning time this year.</p>
<p><img src="/blog/wp-content/uploads/2010/01/Radar2010.png" alt="My Tech Radar for 2010" /></p>
<p>1. I&#8217;m continuing to actively explore how non-trivial relational data models can be mapped on to distributed data stores. I&#8217;ve seen relational databases pushed to their limits, and need to look beyond that. There&#8217;s a gap. The non-relational (e.g., NoSQL) work I&#8217;ve seen so far hasn&#8217;t gotten beyond simple data models. What do do about large, transactional schemas remains a puzzle worth investigating.</p>
<p>If this moves from &#8216;assess&#8217; to &#8216;trial&#8217;, it&#8217;ll probably involve Google&#8217;s <a href="http://en.wikipedia.org/wiki/BigTable">Big Table</a>, by way of <a href="http://code.google.com/appengine/">Google App Engine</a>.</p>
<p>2. When building web apps, making them look good is my weak point. It&#8217;s time to get better. That means some deliberate design experiments and exercise time with <a href="http://www.w3.org/Style/CSS/">CSS</a>, followed by cleaning up the UI on a Google App Engine hack from last year.</p>
<p>3. I&#8217;ve been using <a href="http://git-scm.com/">git</a> as a CVS/Subversion replacement, and not much more. It&#8217;s time now to get serious and master the rest of git, and to level up by branch fu.</p>
<p>4. Some of the data analysis problems that I run into could benefit from a good statistics package. <a href="http://www.r-project.org/">R</a> seems like a useful tool to get acquainted with. I can see this getting bumped from &#8216;assess&#8217; to &#8216;trial&#8217;.</p>
<p>5. The Silicon Valley Patterns Group&#8217;s current track is on <a href="http://haskell.org/">Haskell.</a> So far, it&#8217;s been mind-bending in the same way that Smalltalk was on first encounter. There&#8217;s depth to Haskell that&#8217;s worth experimenting with, though I don&#8217;t yet see using Haskell for production work.</p>
<p>6. Colleagues are doing some very cool stuff with <a href="http://clojure.org/">Clojure</a>, a LISP for the JVM. My plate is too full to be spending time with Clojure right now, so it&#8217;s on the radar as a hold.</p>
<p>7. <a href="http://arduino.cc/">Arduino</a> is there for the fun of building something tangible, and for the opportunity to re-learn some basic Electronics. This is a hold-over from last year, and is the most likely thing to remain undone at the end of this year.</p>
<p>As with any plan, this will likely be completely upended by year-end.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=285</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Out with the old theme, in with the temporary one</title>
		<link>http://www.davewsmith.com/blog/?p=280</link>
		<comments>http://www.davewsmith.com/blog/?p=280#comments</comments>
		<pubDate>Mon, 04 Jan 2010 21:39:00 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=280</guid>
		<description><![CDATA[&#8216;New blog theme&#8217; has been on my TO DO list for a lot longer than I&#8217;d like to admit. I&#8217;ve made several starts at building one from scratch, but an honest look at priorities pushed that off the back burner. So, I picked simple, clean theme from elsewhere as a starting point, and will fix [...]]]></description>
			<content:encoded><![CDATA[<p>&#8216;New blog theme&#8217; has been on my TO DO list for a lot longer than I&#8217;d like to admit. I&#8217;ve made several starts at building one from scratch, but an honest look at priorities pushed that off the back burner. So, I picked simple, clean theme from elsewhere as a starting point, and will fix breakage and iterate as time allows.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=280</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scoring My 2009 Predictions</title>
		<link>http://www.davewsmith.com/blog/?p=273</link>
		<comments>http://www.davewsmith.com/blog/?p=273#comments</comments>
		<pubDate>Fri, 01 Jan 2010 02:24:21 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=273</guid>
		<description><![CDATA[For the past few years, my reading group has started the year by making predictions. These were mine:
1. This year I will finally see a Zune in the wild.
Unless there&#8217;s one at the New Year&#8217;s Eve party tonight, this gets scored as WRONG.
I&#8217;ve been puzzled and amused that the huge amount of marketing and advertising [...]]]></description>
			<content:encoded><![CDATA[<p>For the past few years, my <a href="http://c2.com/cgi/wiki?SiliconValleyPatternsGroup">reading group</a> has started the year by making predictions. These were mine:</p>
<p><b>1. This year I will finally see a Zune in the wild.</b></p>
<p>Unless there&#8217;s one at the New Year&#8217;s Eve party tonight, this gets scored as WRONG.</p>
<p>I&#8217;ve been puzzled and amused that the huge amount of marketing and advertising money that Microsoft has poured into the Zune has yielded a complete absence of the devices in my corner of the world, except on a few store shelves. Granted, I live near the Apple mothership, but I do travel, and do noticed what people are plugged in to. When I asked around, friends who had seen Zunes had only seen them in possession of friends of theirs who work for Microsoft.</p>
<p><b>2. There will be a very public failure of &#8216;Cloud Computing&#8217;.</b></p>
<p>This was a &#8217;shooting fish in a barrel&#8217; prediction, since something, somewhere, was bound to happen. I was thinking along the lines of a cascading set of accidents involving a backhoe and a washed out bridge taking a data center offline, but the Microsoft/Danger/Sidekick fiasco lost a huge amount of &#8216;trust us, it&#8217;s safe in the cloud&#8217; user data. This prediction gets scored as RIGHT.</p>
<p><b>3. Congress will step in, on the wrong side, to correct the Bilski ruling.</b></p>
<p><a href="http://en.wikipedia.org/wiki/In_re_Bilski">In re Bilski</a>, the Supreme Court, in a moment of apparent sanity, threw a wet blanket on business practice patents. The ruling has since been used to toss out claims in several software patents.</p>
<p>I guessed that since so much money was on the line, and the players who stood to lose had so much political clout, that Congress would act. I underestimated both how long it would take for challenges to work their way through the courts, and how distracted Congress appears to have been by the huge food fight they&#8217;re engaged in.</p>
<p>I still think that Congress will get involved, but it&#8217;ll be a few years before this one makes it back on to my list of predictions. For 2009, unless I missed something in the news, this prediction was WRONG.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=273</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The View From Jerry&#8217;s Shoulders</title>
		<link>http://www.davewsmith.com/blog/?p=260</link>
		<comments>http://www.davewsmith.com/blog/?p=260#comments</comments>
		<pubDate>Mon, 16 Nov 2009 02:24:26 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[Recommendations]]></category>
		<category><![CDATA[Technical Stuff]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=260</guid>
		<description><![CDATA[In the software community, when we speak of the giants on whose shoulders we aspire to perch, names like Turing, Dijkstra, Wirth, and Knuth are often mentioned&#8211;names associated with the Computer Science side of software development. And there are giants on the hardware side: Von Neumann, and, if you want to go a lot farther [...]]]></description>
			<content:encoded><![CDATA[<p>In the software community, when we speak of the giants on whose shoulders we aspire to perch, names like Turing, Dijkstra, Wirth, and Knuth are often mentioned&#8211;names associated with the Computer Science side of software development. And there are giants on the hardware side: Von Neumann, and, if you want to go a lot farther back, Babbage.</p>
<p>There&#8217;s also a side of software development that doesn&#8217;t get enough attention, but is nonetheless critically important: The side that&#8217;s about people. Until some distant future when software development is fully automated, it will remain an endeavor that includes humans. And, by extension, our imperfections and foibles.</p>
<p>One of the giants on the people side of software is Gerald M. (Jerry) Weinberg. If you&#8217;re not familiar with Jerry&#8217;s writings, I envy the discoveries you have ahead.</p>
<p>Full disclosure: I&#8217;ve been a student of Jerry&#8217;s for many years, first through his books, then through his workshops, and finally through working with him on the <a href="http://www.ayeconference.com">AYE Conference</a>. His teachings, wisdom, and subtle wit have had a profound impact on my career and life.</p>
<p>Where to start reading Weinberg depends on where you are in your career.</p>
<p>I came to know of Jerry&#8217;s work through the chance discovery of <a href="http://www.amazon.com/Psychology-Computer-Programming-Silver-Anniversary/dp/0932633420">The Psychology of Computer Programming</a>, a book that introduced many to the idea that there&#8217;s much more to programming than languages and algorithms. It&#8217;s a timeless book; human nature evolves much slower than technology. This is where I learned about &#8216;goal displacement&#8217;, which you&#8217;ve seen if you&#8217;ve ever been puzzled why it&#8217;s become more important to some developer that a system runs fast than it is that it works right. I&#8217;m not sure this book is the best place to start if you haven&#8217;t read Weinberg, but do read it at some point.</p>
<p>If you&#8217;re just starting out, <a href="http://www.amazon.com/Becoming-Technical-Leader-Problem-Solving-Approach/dp/0932633021">Becoming a Technical Leader</a> is full of excellent advise for planning and managing the external and internal aspects of your career. The idea that there&#8217;s internal stuff to be managed is a surprise to some, but if you&#8217;re going to be a leader, you&#8217;re going to have to learn to cope with a whole range of emotions, including frustration, anger, and hopefully elation. It&#8217;s worth re-reading every five years or so, if only to see how far you&#8217;ve come. This is the book that I gave away the most copies of when I was a manager.</p>
<p>If you&#8217;re a bit further along, <a href="http://www.amazon.com/Are-Your-Lights-Figure-Problem/dp/0932633161">Are Your Lights On? How to Figure Out What the Problem Really Is</a> (with Don Gause) can help you avoid solving the wrong problems. <a href="http://www.amazon.com/Exploring-Requirements-Quality-Before-Design/dp/0932633137">Exploring Requirements: Quality Before Design</a> will change the way you look at requirements. Though both were written before Agile, both still apply, since much can be lost in imperfect communication between customers and developers. The perils of mind reading remain even when there&#8217;s a Product Owner colocated with the team.</p>
<p>If you aspire to lead projects, any or all of Jerry&#8217;s four volume &#8220;Quality Software Management&#8221; series are a great investment. Volume 1, <a href="http://www.dorsethouse.com/books/qsm1.html">Systems Thinking</a>, is one of the best introductions to a this very powerful technique that I&#8217;ve found (Senge&#8217;s <a href="http://www.amazon.com/Fifth-Discipline-Practice-Learning-Organization/dp/0385517254">The Fifth Discipline</a> being the other). Volume 3, <a href="http://www.dorsethouse.com/books/qsm3.html">Congruent Action</a> is especially good if your career path leads to management. It&#8217;s all about dealing with people effectively.</p>
<p>If you consult or advise for a living, <a href="http://www.amazon.com/Secrets-Consulting-Giving-Getting-Successfully/dp/0932633013">The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully</a>, about the external aspects of consulting, is full of deep and useful advice. If you use the services of consultants, this book can help you get more value out of that relationship.</p>
<p><a href="http://www.dorsethouse.com/books/perf.html">Perfect Software: And Other Illusions about Testing</a> is in my reading queue, so I can&#8217;t recommend it yet, but a friend who has read it left the better part of a pad of sticky notes in his copy of the book.</p>
<p>Finally, <a href="http://www.amazon.com/Weinberg-Writing-Fieldstone-Gerald-M/dp/093263365X">Weinberg on Writing: The Fieldstone Method</a> has some very good advice on writing for those of us technical folk who have to squeeze writing in to small blocks of time. You won&#8217;t find the writing techniques that you were given in school, and may wish that you&#8217;d had Jerry&#8217;s book instead.</p>
<p>That should be enough to get you started. Your next step is to pick one to add to your reading queue.</p>
<p>Since it&#8217;s pretty clear that I&#8217;m biased about Jerry&#8217;s work, check out the reviews of Jerry&#8217;s books on Amazon.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=260</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding Boundaries</title>
		<link>http://www.davewsmith.com/blog/?p=251</link>
		<comments>http://www.davewsmith.com/blog/?p=251#comments</comments>
		<pubDate>Sun, 15 Nov 2009 06:44:46 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[Technical Stuff]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=251</guid>
		<description><![CDATA[Re-reading Martin Fowler&#8217;s writeup on rake, Using the Rake Build Language, I found this buried gem:


Often when you come across something new it can be a good idea to overuse it in order to find out it&#8217;s boundaries. This is a quite reasonable learning strategy. It&#8217;s also why people always tend to overuse new technologies [...]]]></description>
			<content:encoded><![CDATA[<p>Re-reading Martin Fowler&#8217;s writeup on rake, <a href="http://martinfowler.com/articles/rake.html">Using the Rake Build Language</a>, I found this buried gem:
</p>
<blockquote><p>
Often when you come across something new it can be a good idea to overuse it in order to find out it&#8217;s boundaries. This is a quite reasonable learning strategy. It&#8217;s also why people always tend to overuse new technologies or techniques in the early days. People often criticize this but it&#8217;s a natural part of learning. If you don&#8217;t push something beyond its boundary of usefulness how do you find where that boundary is? The important thing is to do so in a relatively controlled environment so you can fix things when you find the boundary.
</p></blockquote>
<p>Two thoughts:</p>
<p>First, I&#8217;m not doing enough pushing of boundaries when playing with new things, tending instead to test-drive new technologies &#8220;on road&#8221; rather than off. Solving familiar problems in familiar ways but with a new tool is a good way to get a feeling for the tool, but it shortchanges learning. Perhaps I&#8217;ve let the set of problems I&#8217;m tackling become too narrow.</p>
<p>The second thought is that &#8220;a relatively controlled environment&#8221; is both key and often ignored. I&#8217;ve seen plenty of examples of people overusing new technologies in production code bases. If that&#8217;s you, please get yourself a side project to experiment in. Finding a science experiment buried in a code base can cause a major headache. There&#8217;s a time and a place for boundary-pushing experiments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=251</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Study material for understanding distributed data stores</title>
		<link>http://www.davewsmith.com/blog/?p=242</link>
		<comments>http://www.davewsmith.com/blog/?p=242#comments</comments>
		<pubDate>Sun, 11 Oct 2009 18:56:20 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[Technical Stuff]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=242</guid>
		<description><![CDATA[Here&#8217;s a quick starting point to help people who&#8217;ve grown up with SQL databases sort out what all of the &#8220;SQL doesn&#8217;t scale! No More SQL!&#8221; noise is all about, and what the world of distributed data stores looks like. Part of this is from material I used for a discussion track at the Silicon [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick starting point to help people who&#8217;ve grown up with SQL databases sort out what all of the &#8220;SQL doesn&#8217;t scale! No More SQL!&#8221; noise is all about, and what the world of distributed data stores looks like. Part of this is from material I used for a discussion track at the Silicon Valley Patterns Group (a study group for serious techies).</p>
<p>A motivation behind the &#8220;No SQL&#8221; movement is the observation that relational databases don&#8217;t scale, that distributed data stores do, and that distributed data tables are a better fit for a large class of applications that have been straining to force their data into SQL schemas. You may noticed a progression from selectively denormalizing relational schemas for performance, to actively avoiding JOINS for more performance, to using an in-memory key/value cache for even more performance, to sharding data for even more performance. A logical step along this path is ditching SQL in favor of distributed in-memory key/value caches (i.e., distributed hash tables, or DHTs). There&#8217;s an implied &#8220;where this makes sense&#8221;, but that&#8217;s a discussion for a later post.</p>
<p>The jumping off point in understanding distributed data stores is the &#8216;CAP Theorem&#8217;, which states that, when building distributed systems, one can choose no more than two of Consistency, Availability, and Partition Tolerance (the ability for the system to keep going when pieces can&#8217;t talk to one another). For large distributed systems, partitions are a given (due to temporary routing problems or longer fiber cuts), leaving a choice between Consistency and Availability. Systems with SQL back-ends (and designed with ACID compliance in mind) have typically chosen Consistency, and will suffer unavailability until consistency can be guaranteed. Large e-commerce systems often choose Availability, taking on the responsibility for coping with data that may become inconsistent.</p>
<p>Wernor Vogels&#8217; paper <a href="http://www.allthingsdistributed.com/2008/12/eventually_consistent.html">Eventual Consistency &#8211; Revisited</a> is a good introduction to the CAP Theorem and Amazon&#8217;s approach to it. Vogels covers some of the same ground in a <a href="http://www.infoq.com/presentations/availability-consistency">video presentation</a>. Read the first or watch the second. A basic understanding of CAP is essential.</p>
<p>With CAP under your belt, I recommend watching Todd Lipcon&#8217;s Intro Session at the <a href="http://blog.oskarsson.nu/2009/06/nosql-debrief.html">NoSQL conference</a> (the fist two video links). He packs a lot of useful information into an hour.</p>
<p>From there, it&#8217;s on to specifics. Two influential distributed data stores are Amazon&#8217;s Dynamo (a distributed hash table) and Google&#8217;s <a href="http://labs.google.com/papers/bigtable-osdi06.pdf">BigTable</a> (a distributed data store with more structure than a simple hash table).</p>
<p>Werner Vogels has a <a href="http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html">good article on Dynamo</a> that delves far enough into Dynamo&#8217;s implementation to give a general idea of how to build a distributed hash table.</p>
<p>Dynamo inspired <a href="http://project-voldemort.com/">Project Voldemort</a>, an open source implementation started at LinkedIn.</p>
<p>BigTable inspired <a href="http://incubator.apache.org/cassandra/">Project Cassandra</a>, an open source implementation started at FaceBook, designed by one of Dynamo&#8217;s authors. Follow up on this if you have data structuring needs beyond what can fit into simple hash tables.</p>
<p>The videos from the NoSQL conference cover a few other players in the distributed data store space.</p>
<p>There&#8217;s a lot more good material out there. This is just one way to get started.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=242</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proof that TDD slows projects down</title>
		<link>http://www.davewsmith.com/blog/?p=215</link>
		<comments>http://www.davewsmith.com/blog/?p=215#comments</comments>
		<pubDate>Sat, 10 Oct 2009 07:01:21 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=215</guid>
		<description><![CDATA[A frequent argument between people who practice Test-Driven Development (TDD) and those who don&#8217;t is whether the overhead of all those extra tests slows a project down or speeds it up. Now there&#8217;s a study to cite.
Exploding Software Myths, an article from Microsoft Research, summarizes some recent research in software development, including a study, Realizing [...]]]></description>
			<content:encoded><![CDATA[<p>A frequent argument between people who practice Test-Driven Development (TDD) and those who don&#8217;t is whether the overhead of all those extra tests slows a project down or speeds it up. Now there&#8217;s a study to cite.</p>
<p><a href="http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx">Exploding Software Myths</a>, an article from Microsoft Research, summarizes some recent research in software development, including a study, <a href="http://research.microsoft.com/en-us/projects/esm/nagappan_tdd.pdf">Realizing quality improvement through test driven development: results and experiences of four industrial teams</a>, which compares development done using TDD to &#8220;normal&#8221; projects, using data gathered from projects at Microsoft and IBM. The upshot?</p>
<blockquote><p>
&ldquo;What the research team found was that the TDD teams produced code that was 60 to 90 percent better in terms of defect density than non-TDD teams. They also discovered that TDD teams took longer to complete their projects—15 to 35 percent longer.&rdquo;
</p></blockquote>
<p>So there it is. TDD is slower.</p>
<p>Now consider an alternate story, told using the same numbers:</p>
<blockquote><p>
By doing normal development instead of TDD, teams can complete projects 14 to 26 percent faster at the expense of defect densities that are 150 to 900 percent higher.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=215</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>H1N1</title>
		<link>http://www.davewsmith.com/blog/?p=208</link>
		<comments>http://www.davewsmith.com/blog/?p=208#comments</comments>
		<pubDate>Mon, 21 Sep 2009 05:48:46 +0000</pubDate>
		<dc:creator>dws</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.davewsmith.com/blog/?p=208</guid>
		<description><![CDATA[Flu vaccinations that cover the H1N1 virus (AKA &#8220;Swine Flu&#8221;) are supposed to be available in a few weeks. This is a vaccination to seriously consider getting.
I won&#8217;t be needing it. H1N1 just made a pass through my family, taking us out like dominoes. I was out of action for six days. And I mean [...]]]></description>
			<content:encoded><![CDATA[<p>Flu vaccinations that cover the <a href="http://en.wikipedia.org/wiki/H1N1">H1N1</a> virus (AKA &#8220;Swine Flu&#8221;) are supposed to be available in a few weeks. This is a vaccination to seriously consider getting.</p>
<p>I won&#8217;t be needing it. H1N1 just made a pass through my family, taking us out like dominoes. I was out of action for six days. And I mean out. This is not a virus that&#8217;s going to let you catch up on work at home.</p>
<p>On a flu scale of 1 to 10, I give H1N1 a 7. Fever, chills, fatigue, massive sinus drainage, a lot of coughing, and a seriously trashed sleep schedule. On the upside, no vomiting.</p>
<p>So do yourself a favor on this one and get the shot. If you decide not to, consider stocking up on chicken soup, tea, throat lozenges, and a stack of light reading material.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewsmith.com/blog/?feed=rss2&amp;p=208</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
