<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' gd:etag='W/&quot;AkMNRng7fyp7ImA9WhJbE0k.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385</id><updated>2012-09-22T17:14:57.607-04:00</updated><title>Attack of the Codosaurus!</title><subtitle type='html'>Adventures of a dinosaur evolving to meet today's challenges.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.codosaur.us/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;AkMNRng6cCp7ImA9WhJbE0k.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-8220981144115460704</id><published>2012-09-22T17:14:00.002-04:00</published><updated>2012-09-22T17:14:57.618-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-22T17:14:57.618-04:00</app:edited><title>Do the Domain Shuffle!</title><summary>   Heads up!  I've finally pulled the proverbial trigger on setting up my LLC.  Henceforth, Dave Aronson Software Engineering &amp; Training will be Codosaurus, LCC, and will take over this blog's domain, http://www.codosaur.us.  This blog is about to move to http://blog.codosaur.us.  http://www.davearonson.com will eventually be replaced with stuff more about me personally.</summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/8220981144115460704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2012/09/do-domain-shuffle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/8220981144115460704?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/8220981144115460704?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2012/09/do-domain-shuffle.html' title='Do the Domain Shuffle!'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0UBQH4yfSp7ImA9WhJbEkk.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-2842933848904730323</id><published>2012-09-21T13:40:00.004-04:00</published><updated>2012-09-21T13:40:51.095-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-21T13:40:51.095-04:00</app:edited><title>Ruby microhack: kinds of triangles</title><summary>   Someone recently posted on the RubyOnRails-talk mailing list, about a little exercise he was doing as a beginning Rubyist.  The task was to construct a method that would return the type of a triangle (equilateral, isosceles, or scalene), given the three lengths.  He had the logic down fine, but needed some help with the Ruby syntax, properly ending a series of if-statements.

   A quite </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/2842933848904730323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2012/09/ruby-microhack-kinds-of-triangles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/2842933848904730323?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/2842933848904730323?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2012/09/ruby-microhack-kinds-of-triangles.html' title='Ruby microhack: kinds of triangles'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUUESX84cCp7ImA9WhJUEk0.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-2259916871559290979</id><published>2012-09-09T11:54:00.001-04:00</published><updated>2012-09-09T12:13:28.138-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-09T12:13:28.138-04:00</app:edited><title>Free Full-Text Search with Heroku, Part 2</title><summary>   Last time, we looked at putting a Ruby on Rails app on Heroku, using the pg_search gem to access PostgreSQL's built-in full-text search by making pg_search_scopes, and how to work around the bogon that you must always feed them something to search on.

   The second bogon, subject of their very first issue filed on Github, is that you can't chain two or more of them in the same statement.  For</summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/2259916871559290979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2012/09/free-full-text-search-with-heroku-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/2259916871559290979?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/2259916871559290979?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2012/09/free-full-text-search-with-heroku-part-2.html' title='Free Full-Text Search with Heroku, Part 2'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUUBR3o4eCp7ImA9WhJUEk0.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-7605811293173418254</id><published>2012-09-09T11:40:00.004-04:00</published><updated>2012-09-09T12:14:16.430-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-09T12:14:16.430-04:00</app:edited><title>Free Full-Text Search with Heroku, Part 1</title><summary>   If you want to put up a Ruby on Rails app for free, where's the natural place to put it?  Heroku, of course!  :-)

   BUT... what if your app idea involves full-text search?  While Heroku gives you lots of great tools for free, and they do have a number of full-text search tools, they don't give you any level of full-text search tools for free.  (Other than a few things in public beta, or if </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/7605811293173418254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2012/09/free-full-text-search-with-heroku-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/7605811293173418254?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/7605811293173418254?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2012/09/free-full-text-search-with-heroku-part-1.html' title='Free Full-Text Search with Heroku, Part 1'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0MMSH8_eCp7ImA9WhVREks.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-8274732014138599960</id><published>2012-03-20T13:44:00.002-04:00</published><updated>2012-03-20T13:44:49.140-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-03-20T13:44:49.140-04:00</app:edited><title>TDD or TDDD, or should we call it T3D?</title><summary>   I was commenting on Test Driven Development in one of the Ruby groups on LinkedIn today, and realized it might make a decent blog post.  So here we go:

   The "purpose" of TDD is somewhat controversial, and also depends just how you do it.  The traditional approach is "think of what you want it to do, think how you would test that, write the test, verify that the test fails (because you </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/8274732014138599960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2012/03/tdd-or-tddd-or-should-we-call-it-t3d.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/8274732014138599960?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/8274732014138599960?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2012/03/tdd-or-tddd-or-should-we-call-it-t3d.html' title='TDD or TDDD, or should we call it T3D?'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkMBRXw5eip7ImA9WhVTFUk.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-7519860198014361674</id><published>2012-02-29T15:47:00.002-05:00</published><updated>2012-02-29T15:47:34.222-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-29T15:47:34.222-05:00</app:edited><title>Rubymoticons</title><summary>   A few days ago, I was demonstrating injection of a symbol, to perform a series of subtractions in an array, and noticed a familiar pattern of characters.   That inspired a bit more investigation.   So now I present some basic Rubymoticons:




[].inject(  :-)

{}[         :-]

-&gt;() {      :-}


   These are perfectly valid Ruby code, and evaluate to nil, nil, and a lambda.

   Of course, the </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/7519860198014361674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2012/02/rubymoticons.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/7519860198014361674?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/7519860198014361674?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2012/02/rubymoticons.html' title='Rubymoticons'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;CUYHQH86eip7ImA9WhRbF08.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-682157160803279056</id><published>2012-02-08T12:45:00.000-05:00</published><updated>2012-02-08T12:45:31.112-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-08T12:45:31.112-05:00</app:edited><title>Sie mögen mich!  Sie wirklich mögen mich!</title><summary>
   Andy Newton, over at In Search of the Tempestuous Sea, has just nominated me for this award:



   According to the terms of the award, I must now:

Paste the image on my blog.  (See above.)

Link back to the blogger who gave me the award.  (See further above.)

Pick my five favorite blogs with less than 200 followers, and leave
 a comment on their blog to let them know they have received the</summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/682157160803279056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2012/02/sie-mogen-mich-sie-wirklich-mogen-mich.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/682157160803279056?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/682157160803279056?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2012/02/sie-mogen-mich-sie-wirklich-mogen-mich.html' title='Sie mögen mich!  Sie wirklich mögen mich!'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-aUEVjWJt3bk/TzKley5YwcI/AAAAAAAAAKI/xe958HhJPoI/s72-c/liebster-blog.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry gd:etag='W/&quot;CEQDQXszcCp7ImA9WhRVGEQ.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-7561620660318692246</id><published>2012-01-18T07:20:00.000-05:00</published><updated>2012-01-18T08:12:50.588-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-01-18T08:12:50.588-05:00</app:edited><title>Stop SOPA and PIPA!</title><summary>

   This post is black in protest of SOPA and PIPA, the House and Senate bills that will strangle freedom and innovation on the Internet, while doing next to nothing about "piracy", the alleged reason for the bills.  Take action!


* Go sign Google's petition against them, at https://www.google.com/landing/takeaction/, and any others you can find.



* Contact your Senator and Representatives.  </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/7561620660318692246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2012/01/stop-sopa-and-pipa.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/7561620660318692246?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/7561620660318692246?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2012/01/stop-sopa-and-pipa.html' title='Stop SOPA and PIPA!'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;CEYER3c-eSp7ImA9WhRQE0Q.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-4922345086068944620</id><published>2011-12-08T19:54:00.001-05:00</published><updated>2011-12-08T19:55:06.951-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-12-08T19:55:06.951-05:00</app:edited><title>Ruby Geekery: Defining method_missing and respond_to at the same time</title><summary>   Not all the code (or coding comments) I'd like to share with the world, is on my own blog.  Recently I made a comment I'd like to direct y'all to, over on Avdi Grimm's wondrous blog, Virtuous Code.  Long story short:
Ruby has this interesting mechanism called method_missing, whereby you can call a method that doesn't really exist, but method_missing will be called instead, recognize the name, </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/4922345086068944620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2011/12/ruby-geekery-defining-methodmissing-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/4922345086068944620?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/4922345086068944620?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2011/12/ruby-geekery-defining-methodmissing-and.html' title='Ruby Geekery: Defining method_missing and respond_to at the same time'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry gd:etag='W/&quot;A0YBRHo6cSp7ImA9WhRSGUU.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-22602692504920377</id><published>2011-11-22T14:08:00.002-05:00</published><updated>2011-11-22T14:12:35.419-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-11-22T14:12:35.419-05:00</app:edited><title>I Am Decider, Hear Me RoR!</title><summary>   I have finally gotten off my duff and pushed a little app to Heroku.  The UI has not yet been polished at all, and the workflow still needs some tweaks, but the basic functionality is there.  It's a decision support tool, that lets you create a bunch of Decisions.  Each Decision has Alternatives (which just have names), and Factors (which have names and weights).  Editing a Decision lets you </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/22602692504920377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2011/11/i-am-decider-hear-me-ror.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/22602692504920377?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/22602692504920377?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2011/11/i-am-decider-hear-me-ror.html' title='I Am Decider, Hear Me RoR!'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0cDQXs5fSp7ImA9WhdUGEw.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-1965408359618889927</id><published>2011-10-05T08:51:00.000-04:00</published><updated>2011-10-05T08:51:10.525-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-10-05T08:51:10.525-04:00</app:edited><title>For Hire!</title><summary>   Well that didn't quite go as planned!  :-(

   Long story short, I've been "let go".  Turns out Rosetta Stone needed more of an ActionScript guru than I was able to turn into over the course of about ten months, starting from scratch.  Of course, it didn't much help that they refused to send me to training on it.  Reading AS books and following AS blogs in my spare time, listening to AS </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/1965408359618889927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2011/10/for-hire.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/1965408359618889927?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/1965408359618889927?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2011/10/for-hire.html' title='For Hire!'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkcCR3s5fCp7ImA9WhZUE0o.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-6453068302813703813</id><published>2011-06-06T11:27:00.000-04:00</published><updated>2011-06-06T11:27:46.524-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-06-06T11:27:46.524-04:00</app:edited><title>Not the FTP Client</title><summary>   Just a disclaimer: this site is not connected with the Codosaurus FTP client, found at http://grilledbacon.com/.  I only discovered that yesterday, and by an amazing coincidence my first iPad will supposedly be arriving soon (anniversary present), so I haven't even tried it.</summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/6453068302813703813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2011/06/not-ftp-client.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/6453068302813703813?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/6453068302813703813?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2011/06/not-ftp-client.html' title='Not the FTP Client'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0IMQnw-eCp7ImA9WhZQFks.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-967107502072551356</id><published>2011-04-24T12:13:00.000-04:00</published><updated>2011-04-24T12:13:03.250-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-04-24T12:13:03.250-04:00</app:edited><title>Password Security</title><summary>   Some of you might know that this blog is not my only means of communicating technical information.  I have also led classes, mentored colleagues, given briefings, and so on, at work.  What some of you might not know is that I also give speeches at my Toastmasters club.  Occasionally the topics are technical, such as this one I gave last Thursday.  (Okay, it's nothing new for me, but it may be </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/967107502072551356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2011/04/password-security.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/967107502072551356?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/967107502072551356?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2011/04/password-security.html' title='Password Security'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry gd:etag='W/&quot;AkQCRHg6cCp7ImA9Wx9TEko.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-2766249504823301974</id><published>2010-11-20T13:39:00.000-05:00</published><updated>2010-11-20T13:39:25.618-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-11-20T13:39:25.618-05:00</app:edited><title>Code Kata Nine: Supermarket Checkout, Part B (Decouple)</title><summary>   As you may recall, before life (real life, not Conway's) got rather busy, I left you hanging off the cliff of Dave Thomas's Code Kata #9.  I had finished the "just make it work" part.  Now for the "decouple the price rule format" part.
   As Dave (the other Dave) says, there are many ways to do it.  I chose to use the Strategy Pattern.  (If you're not familiar with design patterns, you really </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/2766249504823301974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/11/code-kata-nine-supermarket-checkout.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/2766249504823301974?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/2766249504823301974?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/11/code-kata-nine-supermarket-checkout.html' title='Code Kata Nine: Supermarket Checkout, Part B (Decouple)'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry gd:etag='W/&quot;AkcAQ3k5cCp7ImA9Wx5aF0s.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-3126915059877747772</id><published>2010-11-14T15:54:00.000-05:00</published><updated>2010-11-14T15:54:02.728-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-11-14T15:54:02.728-05:00</app:edited><title>And now for something completely different...</title><summary>   Okay, maybe not completely different, as it will still be code-related.  But, coding time is at quite a premium right now.  So, until I manage to get some time to sit down and code for fun, I'm just going to post little snippets of advice. 
   I'm working on a team with some newer developers -- just a few years under each belt, versus my decades.  One advantage, as far as this blog goes, is </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/3126915059877747772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/11/and-now-for-something-completely.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/3126915059877747772?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/3126915059877747772?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/11/and-now-for-something-completely.html' title='And now for something completely different...'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0AFRn84cSp7ImA9Wx5VEkQ.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-8205405239046474100</id><published>2010-10-05T13:28:00.000-04:00</published><updated>2010-10-05T13:28:37.139-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-10-05T13:28:37.139-04:00</app:edited><title>Ads?  What ads?</title><summary>   Oops!  Sorry for the large number of ads on here.  Long story short I goofed the setup.  I knew they wouldn't show up for me, due to Adblock Plus.   (One of my most favoritest Firefox plugins EVAR!)  What I didn't realize is that it would also block their representation on the Blogger layout design screen!  So I had a bunch, at the top, when I thought I had none, and intended to just put one </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/8205405239046474100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/10/ads-what-ads.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/8205405239046474100?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/8205405239046474100?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/10/ads-what-ads.html' title='Ads?&amp;nbsp; What ads?'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUADRHk6fyp7ImA9Wx5VEUk.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-4800975342885810468</id><published>2010-10-03T19:16:00.000-04:00</published><updated>2010-10-03T19:16:15.717-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-10-03T19:16:15.717-04:00</app:edited><title>Rosetta Stone: the company, and my own</title><summary>   In other news, I have accepted a post with Rosetta Stone, in Rosslyn VA, and will be starting on October 18.  Oddly enough, I'll be working mainly in ActionScript and Flex... neither of which I know yet!  I'm told that ActionScript is generally similar to JavaScript, which I do know, so at least that's a head-start. 
   What does this mean for you, my loyal readers?  I may soon start doing </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/4800975342885810468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/10/rosetta-stone-company-and-my-own.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/4800975342885810468?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/4800975342885810468?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/10/rosetta-stone-company-and-my-own.html' title='Rosetta Stone: the company, and my own'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEQBQH49cCp7ImA9Wx5VEUk.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-9203987550123410083</id><published>2010-10-03T14:39:00.001-04:00</published><updated>2010-10-03T18:52:31.068-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-10-03T18:52:31.068-04:00</app:edited><title>Life in N Dimensions</title><summary>   Sometimes we all feel as though life has gotten a bit out of hand.  It's certainly been that way for me lately.  As you may have noticed, I haven't updated this blog in quite some time, despite the way I was obviously trying to do it weekly.  Was this just yet another case of someone up and walking away from their blog?  No, not me!  Really!  I promise!  (Well, at least this time it wasn't....</summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/9203987550123410083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/10/life-in-n-dimensions.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/9203987550123410083?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/9203987550123410083?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/10/life-in-n-dimensions.html' title='Life in N Dimensions'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry gd:etag='W/&quot;Ak4MQH47eip7ImA9Wx5QGEw.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-921754921787028683</id><published>2010-09-06T20:23:00.000-04:00</published><updated>2010-09-06T20:23:01.002-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-09-06T20:23:01.002-04:00</app:edited><title>Code Kata Nine: Supermarket Checkout, Part A (Just Make It Work!)</title><summary>   Wow, I really managed to milk Conflicting Objectives for quite a run!  Now let's move on to Dave Thomas's ninth code kata: Supermarket Checkout.  Follow the link to go read up on it.  I'll wait.
   . . .
   Ah, you're back.  Good.  Now, I want to make a little twist on the basic kata, as I believe this will be more instructive for the readers.  First I am writing as though I am a naive but </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/921754921787028683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/09/code-kata-nine-supermarket-checkout.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/921754921787028683?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/921754921787028683?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/09/code-kata-nine-supermarket-checkout.html' title='Code Kata Nine: Supermarket Checkout, Part A (Just Make It Work!)'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0MMQn4_eip7ImA9Wx5QEU8.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-4071381431009875533</id><published>2010-08-29T19:42:00.000-04:00</published><updated>2010-08-29T19:44:43.042-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-08-29T19:44:43.042-04:00</app:edited><title>Kata 8: Conflicting Objectives, Part 3B</title><summary>   Okay, now I've had some time to think about what it means for the code to be "extensible".  Offhand I'm thinking it's as in the "open" part of the Open-Closed Principle, which states that a class should be open to extension but closed to modification.  That is, you should be able to extend it o do new and different things, but not so much monkey around with the existing functionality and </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/4071381431009875533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/08/kata-8-conflicting-objectives-part-3b.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/4071381431009875533?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/4071381431009875533?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/08/kata-8-conflicting-objectives-part-3b.html' title='Kata 8: Conflicting Objectives, Part 3B'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEYDQnY8fSp7ImA9Wx5RFEQ.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-1497878328415061286</id><published>2010-08-22T12:56:00.000-04:00</published><updated>2010-08-22T12:56:13.875-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-08-22T12:56:13.875-04:00</app:edited><title>Kata 8: Conflicting Objectives, Part 3A</title><summary>   Part 3, much like Part 1, is open to much interpretation.  I figure that the sense of "extensible" that Dave Thomas probably meant to drive at, was "easy to add features to", most likely by making subclassing easy, and accepting code blocks, and things like that.  I've been giving that some thought, and it makes my head hurt.  :-)
   So for now, I'm going to "creatively misinterpret" it as "</summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/1497878328415061286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/08/kata-8-conflicting-objectives-part-3a.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/1497878328415061286?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/1497878328415061286?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/08/kata-8-conflicting-objectives-part-3a.html' title='Kata 8: Conflicting Objectives, Part 3A'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkYBR307cCp7ImA9Wx5SGEU.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-7552342831388358208</id><published>2010-08-15T11:55:00.000-04:00</published><updated>2010-08-15T12:02:36.308-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-08-15T12:02:36.308-04:00</app:edited><title>Code Kata Eight: Conflicting Objectives, Part 2 (Make It Fast)</title><summary>   As you may recall from last time, kata number eight has three parts: write it to be readable, write it to be fast, and write it to be extensible.  I covered readability last time, so now let's go for speed.  (Cue The Distance, by Cake.)
#! /usr/bin/ruby

# Dave Thomas Code Kata #8: Conflicting Objectives
# See http://codekata.pragprog.com/2007/01/kata_eight_conf.html
# Solution by Dave Aronson</summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/7552342831388358208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/08/code-kata-eight-conflicting-objectives_15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/7552342831388358208?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/7552342831388358208?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/08/code-kata-eight-conflicting-objectives_15.html' title='Code Kata Eight: Conflicting Objectives, Part 2 (Make It Fast)'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0cERXkzeyp7ImA9Wx5SEk8.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-5079258010175962446</id><published>2010-08-07T20:56:00.000-04:00</published><updated>2010-08-07T20:56:44.783-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-08-07T20:56:44.783-04:00</app:edited><title>Code Kata Eight: Conflicting Objectives, Part 1</title><summary>   Kata number seven is a non-coding kata, so let's move on to kata number eight.  This one is about conflicting objectives.  To quote the original:
Write the program three times.
The first time, make program as readable as you can make it.
The second time, optimize the program to run fast fast as you can make it.
The third time, write as extendible a program as you can.
   Even that, though, </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/5079258010175962446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/08/code-kata-eight-conflicting-objectives.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/5079258010175962446?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/5079258010175962446?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/08/code-kata-eight-conflicting-objectives.html' title='Code Kata Eight: Conflicting Objectives, Part 1'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;CEYBSX06fyp7ImA9Wx5TFkQ.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-6523077252346107167</id><published>2010-08-01T15:44:00.000-04:00</published><updated>2010-08-01T15:49:18.317-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-08-01T15:49:18.317-04:00</app:edited><title>Anna Graham?</title><summary>   No, kata number six is about anagrams, not some lady named Anna Graham.   Follow the link for more details, but briefly the objective is to load in a bunch of words, say which ones were anagrams of which, what the longest anagrammed word is, and what the largest set of anagrams (i.e., words using the same letters) is.   My solution hinges around the load_words method.   The implementation, in </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/6523077252346107167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/08/k-ata-number-six-is-about-anagrams.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/6523077252346107167?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/6523077252346107167?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/08/k-ata-number-six-is-about-anagrams.html' title='Anna Graham?'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0EMRnY7eyp7ImA9WxFaGUQ.&quot;'><id>tag:blogger.com,1999:blog-8512553837845348385.post-8297376937753301008</id><published>2010-07-24T13:13:00.000-04:00</published><updated>2010-07-24T13:14:47.803-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-07-24T13:14:47.803-04:00</app:edited><title>Code Kata Five (Bloom Filter) Solution</title><summary>   Kata number five is about Bloom Filters.  No, that isn't anything to do with flowers, though of course it could be used for that purpose.  Dave Thomas' description will quite suffice.  If you're not familiar with them, go read it now.  I'll wait.

   Oh, you're back.  Good.  Now that you have a good understanding of what they do and how, here's my implementation.  It uses each pair of bytes </summary><link rel='replies' type='application/atom+xml' href='http://www.codosaur.us/feeds/8297376937753301008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.codosaur.us/2010/07/k-ata-number-five-is-about-bloom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/8297376937753301008?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8512553837845348385/posts/default/8297376937753301008?v=2'/><link rel='alternate' type='text/html' href='http://www.codosaur.us/2010/07/k-ata-number-five-is-about-bloom.html' title='Code Kata Five (Bloom Filter) Solution'/><author><name>Dave Aronson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-XxVgYYzMKSQ/AAAAAAAAAAI/AAAAAAAAAIc/WvHZ9T8EvIo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>