<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>software engineer interested in all things ruby on rails or ETL

@bfabry</description><title>Beau's tumblr</title><generator>Tumblr (3.0; @bfabry)</generator><link>http://bfabry.tumblr.com/</link><item><title>Introducing.. dbexpect</title><description>&lt;p&gt;I&amp;#8217;ve been working on this for a little while now. dbexpect is an rspec-like DSL for automated unit testing ETL processes. For those not in the know that&amp;#8217;s code that moves data. Data migrations, business intelligence data warehouses, nonsense like that.&lt;/p&gt;

&lt;p&gt;The point is, it&amp;#8217;s all focused around making it easy to set up data in a database, run your etl process, and then check expectations of what is now in the database. And it&amp;#8217;s open source! Check it out &lt;a href="https://github.com/C3/dbexpect" target="_blank"&gt;https://github.com/C3/dbexpect&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the record the only other tool I&amp;#8217;m aware of that&amp;#8217;s targeted at doing this is Dbfit, &lt;a href="http://gojko.net/fitnesse/dbfit/" target="_blank"&gt;http://gojko.net/fitnesse/dbfit/&lt;/a&gt; which unfortunately last time I checked was pretty much end of life, and was a very clunky method for doing this kind of testing. Much more suited to testing code that is actually stored &lt;em&gt;in&lt;/em&gt; the database.&lt;/p&gt;

&lt;p&gt;Oh, I should quickly say many thanks to my employer C3 Products. For allowing us the time to go off and create what we&amp;#8217;re interested in and then give it away for free. &lt;a href="http://www.c3products.com.au" target="_blank"&gt;http://www.c3products.com.au&lt;/a&gt;&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/32009379548</link><guid>http://bfabry.tumblr.com/post/32009379548</guid><pubDate>Sat, 22 Sep 2012 08:49:00 +1000</pubDate></item><item><title>CSS a go go</title><description>&lt;p&gt;Ran into some weirdness just now while reading the basic but well put together intro to haskell &lt;a href="http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way" target="_blank"&gt;http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;me: jump to 3.2.4
me: and see if you can spot that oh so rare bug that wouldn't be picked up by the compiler
mate: 3.2.4?
mate: heading?
me: search for 3.2.4
me: "Trees" is a bit general
mate: 0 hits
me: the fuck..
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So&amp;#8230;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;h4 id="trees"&amp;gt;Trees&amp;lt;/h4&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;No 3.2.4 mentioned anywhere in the html. Ok. Check the CSS.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;.article #afterheader h4::before {
  content: counter(niv02)"."counter(niv03)"."counter(niv04)". ";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I don&amp;#8217;t know whether to be impressed by this or horrified. On the one hand, aint CSS cool these days? On the other, I can&amp;#8217;t rely on these section numbers, and at least in Chrome I can&amp;#8217;t search for them or copy+paste them either. I &lt;em&gt;think&lt;/em&gt; that section numbers probably fall more under content than structure.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/20839531630</link><guid>http://bfabry.tumblr.com/post/20839531630</guid><pubDate>Tue, 10 Apr 2012 22:54:14 +1000</pubDate></item><item><title>Topological sort of a DOT Graph</title><description>&lt;p&gt;Today I needed to get a sequential execution order for a system that I already had a DOT dependency graph of, which I knew contained no cycles.&lt;/p&gt;

&lt;p&gt;Currently I don&amp;#8217;t officially have access to.. well, anything resembling a development environment at all really, so I was faced with the prospect of doing this in vba. As my masochism is underdeveloped I haven&amp;#8217;t actually tried this yet, but given I can barely &lt;em&gt;read&lt;/em&gt; vba I&amp;#8217;d estimate this task at at least a few hours, with a worst-case blowout of a day.&lt;/p&gt;

&lt;p&gt;Obviously I didn&amp;#8217;t do that, so below is the code to do it in perl, research time 15 minutes, development time 5 minutes. Let me say that again: 20 minutes, versus a few &lt;em&gt;hours&lt;/em&gt;. Multiply that out by the amount of time you hire programmers for and how much you pay them and see how well your &amp;#8220;risk of getting a virus mitigated by locking down all IT resources&amp;#8221; strategy is stacking up.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;use Graph::Reader::Dot;
use Graph;

my $reader = Graph::Reader::Dot-&amp;gt;new();
my $graph = $reader-&amp;gt;read_graph($ARGV[0]);

my @sorted_nodes = $graph-&amp;gt;topological_sort;

foreach(@sorted_nodes) {
  print $_,"\n";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Tl;dr Let the people doing the work decide on the tools.&lt;/p&gt;

&lt;p&gt;(I used perl instead of ruby because I couldn&amp;#8217;t find a gem to read DOT files)&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/865972024</link><guid>http://bfabry.tumblr.com/post/865972024</guid><pubDate>Tue, 27 Jul 2010 23:09:52 +1000</pubDate></item><item><title>"The idea that I can be presented with a problem, set out to logically solve it with the tools at..."</title><description>“The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;John Carmack&lt;/em&gt;</description><link>http://bfabry.tumblr.com/post/787394437</link><guid>http://bfabry.tumblr.com/post/787394437</guid><pubDate>Fri, 09 Jul 2010 11:22:37 +1000</pubDate></item><item><title>Oracle enhanced adapter for Rails 3</title><description>&lt;a href="http://blog.rayapps.com/2010/06/21/oracle-enhanced-adapter-1-3-0-is-rails-3-compatible/"&gt;Oracle enhanced adapter for Rails 3&lt;/a&gt;: &lt;p&gt;It makes me very happy that someone continues to work on this.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/723300587</link><guid>http://bfabry.tumblr.com/post/723300587</guid><pubDate>Tue, 22 Jun 2010 08:50:39 +1000</pubDate></item><item><title>Martin Fowler on team room layouts</title><description>&lt;a href="http://martinfowler.com/bliki/TeamRoom.html"&gt;Martin Fowler on team room layouts&lt;/a&gt;: &lt;p&gt;My favourite bit:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;First make sure it is the right size for the team. While a team room should be open within itself, it should be closed to everyone else&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yes, a million times yes.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/697380162</link><guid>http://bfabry.tumblr.com/post/697380162</guid><pubDate>Mon, 14 Jun 2010 22:54:08 +1000</pubDate></item><item><title>Interview with Jim Coplien</title><description>&lt;a href="http://www.infoq.com/interviews/coplien-dci-architecture"&gt;Interview with Jim Coplien&lt;/a&gt;: &lt;p&gt;I really enjoyed this interview (but I’m weird that way) with Jim Coplien.
Goes over many many things, the rise of functional programming techniques, the prevalence of class-oriented programming over object-oriented programming, the DCI architecture and some general thoughts about Scrum and Agile and just plain old professionalism.&lt;/p&gt;

&lt;p&gt;It’s also the first mention I’ve seen of DCI, which led me &lt;a href="http://www.artima.com/articles/dci_vision.html" target="_blank"&gt;here&lt;/a&gt;, which is also very interesting.&lt;/p&gt;

&lt;p&gt;It’s all much more articulate than my “it’s easy to construct and interact with the domain model, but where does the &lt;em&gt;doing&lt;/em&gt; go?” refrain at least.&lt;/p&gt;

&lt;p&gt;Apparently if I end with a question mark people can ‘answer’, but not otherwise. Stupidest feature ever by tumblr?&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/651692649</link><guid>http://bfabry.tumblr.com/post/651692649</guid><pubDate>Tue, 01 Jun 2010 11:33:07 +1000</pubDate></item><item><title>Flay for cucumber</title><description>&lt;a href="http://github.com/bfabry/flay"&gt;Flay for cucumber&lt;/a&gt;: &lt;p&gt;Quick very hacky job to get flay to give some duplication metrics on cucumber files, gives ideas on where your features are repeating themselves and should be refactored into higher level steps or at least moved into Background’s and Outline’s.&lt;/p&gt;

&lt;p&gt;Only tested on a regular cucumber install run from the root directory of a rails app, likely won’t work anywhere else.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/630678254</link><guid>http://bfabry.tumblr.com/post/630678254</guid><pubDate>Tue, 25 May 2010 17:52:14 +1000</pubDate></item><item><title>"There are two novels that can change a bookish fourteen-year old’s life: The Lord of the Rings..."</title><description>“&lt;p&gt;There are two novels that can change a bookish fourteen-year old’s life: The Lord of the Rings and Atlas Shrugged.&lt;/p&gt;

&lt;p&gt;One is a childish fantasy that often engenders a lifelong obsession with its unbelievable heroes leading to an emotionally stunted, socially crippled adulthood, unable to deal with the real world.&lt;/p&gt;

&lt;p&gt;The other, of course, involves orcs.&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;@jeremydmiller who doesn’t know the original source&lt;/em&gt;</description><link>http://bfabry.tumblr.com/post/561794286</link><guid>http://bfabry.tumblr.com/post/561794286</guid><pubDate>Sat, 01 May 2010 08:44:30 +1000</pubDate></item><item><title>DRX - ruby object inspection</title><description>&lt;p&gt;This is so freaking cool &lt;a href="http://www.rubyinside.com/drx-visually-inspect-ruby-objects-3233.html?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+RubyInside+(Ruby+Inside)&amp;amp;utm_content=Google+Reader" target="_blank"&gt;source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Steps to get running on ubuntu:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-get install libtcltk-ruby tk-tile
sudo gem install drx
irb
irb(main):001:0&amp;gt; require 'rubygems'
=&amp;gt; true
irb(main):002:0&amp;gt; require 'drx'
=&amp;gt; true
irb(main):003:0&amp;gt; 123.see
=&amp;gt; nil
irb(main):004:0&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Anyone who ever saw me use &amp;#8216;ddd&amp;#8217; will understand why I love this.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/557161959</link><guid>http://bfabry.tumblr.com/post/557161959</guid><pubDate>Thu, 29 Apr 2010 11:12:13 +1000</pubDate></item><item><title>Weird history</title><description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Ada_Lovelace" target="_blank"&gt;Ada Lovelace&lt;/a&gt; - Commonly known as the first programmer&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;chiefly known for her work on Charles Babbage&amp;#8217;s early mechanical general-purpose computer, the analytical engine. Her notes on the engine include what is recognized as the first algorithm intended to be processed by a machine;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;fathered by&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Lord_byron" target="_blank"&gt;Lord Byron&lt;/a&gt; - Famous poet, &lt;em&gt;&amp;#8220;mad, bad and dangerous to know&amp;#8221;&lt;/em&gt; who used his place in the house of lords to support the &lt;a href="http://en.wikipedia.org/wiki/Luddites" target="_blank"&gt;Luddites&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;His first speech before the Lords was loaded with sarcastic references to the &amp;#8220;benefits&amp;#8221; of automation, which he saw as producing inferior material as well as putting people out of work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wonder if daddy was proud? :-)&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/537798186</link><guid>http://bfabry.tumblr.com/post/537798186</guid><pubDate>Wed, 21 Apr 2010 17:52:41 +1000</pubDate></item><item><title>Behaviour of next in collect</title><description>&lt;p&gt;Basically, anyone got a better way to do this?&amp;#160;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;irb(main):003:0&amp;gt; [1,2,3,4,5,6].collect { |v| next if v == 3; v * 7 }.compact
=&amp;gt; [7, 14, 28, 35, 42]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Let me know on twitter if you have a better way.&lt;/p&gt;

&lt;p&gt;I oversimplified my example, it&amp;#8217;s actually more like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;objects.collect do |obj|
  begin
    QueryPredicate.new(obj.parser.parse_internal)
  rescue ParsingException =&amp;gt; e
    next
  end
end.compact
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Which prevents me using the suggestion of&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[1,2,3,4,5,6].reject{|v| v == 3}.map{|v| v * 7}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;as I don&amp;#8217;t have any way of telling what can be rejected from the set. Still, I learnt the &amp;#8220;reject&amp;#8221; keyword, which makes me happy.&lt;/p&gt;

&lt;p&gt;Suggested improvement from colleague:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;objects.collect do |obj|
  begin
    QueryPredicate.new(obj.parser.parse_internal)
  rescue ParsingException =&amp;gt; e
    nil
  end
end
objects.compact!
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Yeah that&amp;#8217;s a bit better&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/536938500</link><guid>http://bfabry.tumblr.com/post/536938500</guid><pubDate>Wed, 21 Apr 2010 10:32:00 +1000</pubDate></item><item><title>Podcast by DHH on planning, VC, and MBA's</title><description>&lt;a href="http://ecorner.stanford.edu/authorMaterialInfo.html?mid=2334"&gt;Podcast by DHH on planning, VC, and MBA's&lt;/a&gt;: &lt;p&gt;David Heinemeier Hansson is the founder of ruby on rails, partner at 37signals, and co-author of &lt;a href="http://37signals.com/rework/" target="_blank"&gt;Rework&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Pretty standard stuff for DHH really, planning is guessing etc etc, still it’s an interesting talk, particularly if you haven’t read/heard him before.&lt;/p&gt;

&lt;p&gt;Always like hearing the “go small” spiel, applies in so many different places, two quotes from Warren Buffet:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;em&gt;“I don’t look to jump over 7-foot bars: I look around for 1-foot bars that I can step over. “&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;“If I was running $1 million today, or $10 million for that matter, I’d be fully invested. Anyone who says that size does not hurt investment performance is selling. The highest rates of return I’ve ever achieved were in the 1950s. I killed the Dow. You ought to see the numbers. But I was investing peanuts then. It’s a huge structural advantage not to have a lot of money. I think I could make you 50% a year on $1 million. No, I know I could. I guarantee that. “&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I think that’s a pretty similar sentiment to what DHH says &lt;em&gt;“one million dollars is a lot if it’s all going into your bank account”&lt;/em&gt;, and yet Warren Buffet has nothing to do with software (famously avoided the tech bubble), just happened to realise the same thing.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/533235272</link><guid>http://bfabry.tumblr.com/post/533235272</guid><pubDate>Mon, 19 Apr 2010 23:25:54 +1000</pubDate></item><item><title>TDD/Refactoring/Least possible Videos</title><description>&lt;a href="http://blog.objectmentor.com/articles/2010/04/05/first-pass-completed-rough-draft-tdd-demonstration-videos"&gt;TDD/Refactoring/Least possible Videos&lt;/a&gt;: &lt;p&gt;If you have a spare couple of hours (and let’s be honest, now cricket season is over who doesn’t?) handy these videos area really worth watching.
They’re sort’ve billed as an intro to TDD, which they are, but they also pretty well demonstrate all of the code side of development, test, code, refactor etc.&lt;/p&gt;

&lt;p&gt;It’s a bit like getting a feel for what “Clean Code” is like just by sitting back and watching for a while.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/530694735</link><guid>http://bfabry.tumblr.com/post/530694735</guid><pubDate>Mon, 19 Apr 2010 00:14:19 +1000</pubDate></item><item><title>Rails content_for stacks content</title><description>&lt;p&gt;Worth remembering, the content_for helper appends subsequent calls rather than replacing.&lt;/p&gt;

&lt;p&gt;So  would render &amp;#8220;Hello world!&amp;#8221;.&lt;/p&gt;

&lt;p&gt;Seems &lt;em&gt;kind&amp;#8217;ve&lt;/em&gt; insane to me, if I wanted that behaviour I could always add it to content_for rather than doing it by default.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/524352099</link><guid>http://bfabry.tumblr.com/post/524352099</guid><pubDate>Fri, 16 Apr 2010 09:36:17 +1000</pubDate></item><item><title>Video presentation by two of the original SVN developers talking...</title><description>&lt;iframe width="400" height="299" src="http://www.youtube.com/embed/0SARbwvhupQ?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Video presentation by two of the original SVN developers talking about social good-practices with programming and the way different tools affects that.&lt;/p&gt;

&lt;p&gt;Thoughts while watching:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;em&gt;“fail early, fail often”&lt;/em&gt; - Pretty much a theme throughout, and fair enough&lt;/li&gt;
&lt;li&gt;&lt;em&gt;code reviews&lt;/em&gt; - So many big name places seem to take this dead seriously&lt;/li&gt;
&lt;li&gt;&lt;em&gt;no code ownership&lt;/em&gt; - Code ownership always tends to be bad, liked the suggestions on how to lessen it though, ie

&lt;ul&gt;&lt;li&gt;assign bugs/features to people with a low knowledge of that area&lt;/li&gt;
&lt;li&gt;pair program bugs/features for that area low-knowledge/high-knowledge&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;big fish, small pond&lt;/em&gt; - No doubt it’s true that working with more skilled people than yourself is good for you, but it can be pretty hard just to recognise what you want to learn let alone find the people/environment that supports that&lt;/li&gt;
&lt;li&gt;&lt;em&gt;‘bus factor’&lt;/em&gt; -  heh, awesome name&lt;/li&gt;
&lt;li&gt;&lt;em&gt;git-rebase&lt;/em&gt; - I dunno that &lt;em&gt;lots&lt;/em&gt; of people use this to rewrite history? I use it to avoid pointless noisy merge commits&lt;/li&gt;
&lt;li&gt;&lt;em&gt;documenting failure&lt;/em&gt; - Seems pretty obvious that doing this would be helpful, but as with all documentation I have no idea how to do it in a way that would be useful&lt;/li&gt;
&lt;li&gt;&lt;em&gt;subversion&lt;/em&gt; - I understand these guys fondness for svn, but it’s &lt;em&gt;so&lt;/em&gt; far behind in so many areas, and I think github-like tools affectively alleviate their problems with distributed version control more than they acknowledged&lt;/li&gt;
&lt;li&gt;&lt;em&gt;pair programming&lt;/em&gt; - I think this is the one core practice detailed by XP that’s still seriously controversial. I have no opinion :-)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;People who ask tangential societal questions after a talk drive me nuts.
&lt;em&gt;“really in reality”&lt;/em&gt; points are seriously annoying as well. “buyer beware”. Piss off, buyer is beware, just assume (as the presenter does) that the audience is as capable of understanding the realities of their own situation as you are.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/518183586</link><guid>http://bfabry.tumblr.com/post/518183586</guid><pubDate>Tue, 13 Apr 2010 22:39:00 +1000</pubDate></item><item><title>Update to bash back button</title><description>&lt;p&gt;My new .bash_aliases&lt;/p&gt;
&lt;pre&gt;alias cd="pushd &amp;gt;/dev/null
alias bd="pushd +1 &amp;gt;dev/null"
alias fd="pushd -0 &amp;gt;/dev/null"
&lt;/pre&gt;
&lt;p&gt;My bash prompt now has a &amp;#8220;back directory&amp;#8221; command, *and* a &amp;#8220;forward directory&amp;#8221; command!&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/517637399</link><guid>http://bfabry.tumblr.com/post/517637399</guid><pubDate>Tue, 13 Apr 2010 16:12:00 +1000</pubDate></item><item><title>mongrel_rails, logrotate, and copytruncate</title><description>&lt;p&gt;If using logrotate with rails remember to use the copytruncate option. This means that instead of renaming the old file and creating a new one, logrotate will copy the old file to the archive name, and truncate the current file. This means that mongrel_rails doesn&amp;#8217;t lose its file handle and your logging doesn&amp;#8217;t silently turn off :)&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/514433968</link><guid>http://bfabry.tumblr.com/post/514433968</guid><pubDate>Mon, 12 Apr 2010 11:05:41 +1000</pubDate></item><item><title>On The Value Of Fundamentals In Software Development</title><description>&lt;a href="http://www.skorks.com/2010/04/on-the-value-of-fundamentals-in-software-development/"&gt;On The Value Of Fundamentals In Software Development&lt;/a&gt;</description><link>http://bfabry.tumblr.com/post/499446961</link><guid>http://bfabry.tumblr.com/post/499446961</guid><pubDate>Tue, 06 Apr 2010 11:15:55 +1000</pubDate></item><item><title>How I learned to let my workers lead</title><description>&lt;a href="http://people.wku.edu/rich.patterson/CFS-452/Readings/stayer.htm"&gt;How I learned to let my workers lead&lt;/a&gt;: &lt;p&gt;Really interesting story on what is essentially the implementation of Agile/Lean at a manufacturing company.&lt;/p&gt;</description><link>http://bfabry.tumblr.com/post/490965083</link><guid>http://bfabry.tumblr.com/post/490965083</guid><pubDate>Fri, 02 Apr 2010 21:14:22 +1100</pubDate></item></channel></rss>
