Garage Sales and Garage-Sale Quality Code
Z and I went garage-saling on Sunday.
(If you're not in the US, a Garage Sale is when folks open up their garages, sometimes their homes, and sell all the stuff they don't want. They are called Garage says because "Garbage"-sale doesn't have the same ring to it. Some folks just put stuff on their front lawn with a sign that says "Free," then get some drinks and sit in their driveway waiting for the stuff to disappear. This is common with old computers and printers, as well as Washing Machines.)
We were lucky on this trip. We picked up a small toy kitchen construction set made out of Toy Bricks for only US$5. Z is 17 months old now and he's getting deeper into role-playing. Here he is frying imaginary fish.
It struck me how someone else's garbage, er, discarded well-loved pre-owned items, could be our find-of-the-day. The toy was used, to be sure, but otherwise intact, complete and totally useful. I hate to waste and I hate to throw useful things away when they could be passed on, so I like the idea of a garage sale.
It's charitable giving, if you do it right. The 25 cents you'll pay for a paperback isn't meant to make a profit, it's just there to keep folks from ransacking your sale.
One woman wanted $250 for a maple rocking chair. She insisted it was worth $500 new. I politely suggested that she was not only insane, but that perhaps she wasn't really interested in getting rid if the chair. I offered $100 cash, which she refused with an insulted stare. It was a shame because the chair wasn't worth more than $50 in the Real World. She clearly wasn't interested in selling it, or she got the (wrong) idea that Garage Sales can make you rich.
Why aren't there more Code Garage Sales? Sure there's a lot of code out there that is lying by the side of the road with a "Free" sign on it, you can find it on blogs (mine included) and CodeProject.
You don't have to go so far as to make an Open Source Project. You also might want to do more than just release a choice snippet. Why not try a middle place, and have a Code Garage Sale?
I think that Garage Sale-quality Code should be of a higher quality. Perhaps if there was a way to charge me a quarter when I downloaded it, it might be more like a garage sale. For me, Garage-Sale code is slightly different from code snippets in that it's complete (no missing parts) and organized on your website - like a Garage Sale.
Garage Sale Code should follow at least 4 of the 5 C's:
- Complete - It's a whole library or application.
- Concise - It does one discrete thing.
- Clear - It'll work when you get it.
- Cheap - It's free or < 25 cents.
- (Quite Possibly) Crap - As with a Garage Sale, you'll never know until you get it home if it's useless.
There's lots of great Garage Sale code out there, but as with a real sale, sometimes you have to look for bargains. I find this kind of code more valuable than the "flea market" code snippets on (some places on) CodeProject and Google Groups. It's a shame that more companies, especially small ones, don't release their discarded code with a liberal license. All that typing, wasted. Surely someone might find part of it useful?
I like the following sites because they are PERSONAL. Again, like a Garage Sale, they are well-loved and useful things. Things that someone made for a reason, but just doesn't need anymore.
- Jeff Key's .NET Stuff - The perfect example. All the stuff is in one place, organized and wonderful.
- Roy Osherove's Tools - High quality, be sure to scroll all the way down.
- Chris Sells Developer Tools - Chris has been a packrat for years.
- IDesign.NET Samples - Juval cranks this stuff out at an alarming rate. Kudos for giving back to the community.
- AdaptevTools - This stuff is very high quality, so think of it as a well-maintained garage sale in a rich neighborhood.
- Vertigo Software Labs (Check out Family.Show!) - A large neighborhood sale.
- CodePlex, SourceForge, Google Code - Trailer Park sale, there's some great stuff, but there's some abandoned houses also.
I KNOW I've missed a thousand good sites, so...
Garage Sale Code - Call To Action
If you've got a Garage Sale Code section of your blog or website, leave a comment on this post and include the link to your side in the URL text field, not in the comment itself. That way it'll get linked automatically.
If you KNOW you've got good code lying around your house, but you've just never taken the time to have a Garage Sale, now's the time to put up a section of your site dedicated to your old crap code, or just a single blog post with a zip file full of it. Get it out there so Google Code Search can get to it, and make sure there's a LICENSE block, license.txt, or comment with the word LICENSE, even if you intend to use the WTFPL as your primary license. Go have a Code Garage Sale!