Don’t reinvent the wheel. Like all advice it’s much easier to say then it is to do, particularly when it comes to programming. Programmers suffer from a horrible mental disease called Not Invented Here Syndrome (it’s in the DSM — check if you don’t believe me). We will happily rewrite a perfectly good tool because someone else wrote it and it’s easier to rewrite than it is to understand. Sure, we might not handle all the bells and whistles of the original tool (unicode is for sissies) — but at least we got to DIY.
Rewriting from scratch is particularly a bad idea when it comes to open source software. If there’s an open source library or plugin available that does the trick then there’s no reason at all for you not to pick it up and use it. It’s free. If it doesn’t work the way you want it to then you can rewrite that small part or add functionality. There’s no reason to reinvent the open source wheel…
… as long as you can find it. One problem with leveraging open source is finding out if it exists at all. After enough cursing at Google you’ll eventually get a knack for it and know the good code sharing repositories and announcement lists for your languages of choice. The wheel exists! Someone else is having the same problem and came up with a solution, so now you don’t have to! Thank you, lazyweb.
Or that’s what you think, until you try to take the wheel for a test drive. The install instructions are outdated and don’t work quite the way you’d expect. You have slightly different versions of some common components and that causes things to break in mysterious ways. Or you’ve come across a wheel that the wheelmaker gave up on after he got to where he had to go. The wheel looks like it might do what you want it to, but it’s missing the voodoo required to hook it up to anything.
The single biggest problem I have when trying to leverage open source code with my projects is how long does it take me to get it up and running to demo it? If I can see right away that it works and it will solve my needs, then I’m willing to slog through migrating versions of different libraries, sacrificing some chickens and swilling too much coffee to get it integrated with my code on my machine. But the problem is all the installation headaches seem to happen before you reach that nirvana of running a working demo and seeing what it really does (as opposed to what the hastily written release notes ambiguously imply that it does).
I know what you’re thinking fearless reader: this looks like yet another rant about a wasted afternoon trying to be “productive” through code reuse but instead spent glaring at compiling warnings. But there is a light at the end of the tunnel! I have a solution that will keep you from the Poorly Thought Out Install Process Hell that prevents you from making the most out of open source software:
Ok, that was a bit anticlimactic; and it isn’t even Valentine’s Day yet. But stick with me, I have a point lying around here somewhere. If no one other than the author is talking about that tool/plugin/library on blogs then that means no one else is using it. Or, at the very least, that it hasn’t been sufficiently hardened that you should make any assumptions about how smoothly that wheel will run.
At the very least you should be able to find someone writing about what the tool/plugin/library does and any issues they had in getting it running. If no one has bothered taking the time to do that, then that is a huge canary in the mineshaft, dear friend. A huge canary wearing a bright orange tank top with the words “waste of time” written across it.
Photo by tenerife
RSS feeds are like cookies (that are good enough for me). Best of Feeds is a weekly collection of the best stuff I saw on the Internet this week. They’re saved on delicious and stumbleupon and cross-posted to Twitter and Tumblr as they happen and then collected together on Saturdays. I don’t blog on the weekend so read these links instead.Subscribe to //engtech to see this every week (or get it by email).
- [COFFEE] Coffee Drinks Illustrated
- Infographic showing how fancy coffees are made.
- (lokeshdhakar.com 1449 100 1266)
- [GEEK] The Nerd Handbook
- Rands is so on point with this one.
- (randsinrepose.com 1385 100 2756)
- [GEEK] Real Geek Heart Beats in Xkcd’s Stick Figures
- Wired article on XKCD
- (wired.com 178 56 )
- [CODE] How to demo software
- Joel Spolsky gives tips he learned from the Fogbugz world demos.
- (joelonsoftware.com 177 26)
- [MYSPACE] Adults Impersonate Teen on MySpace and Leads to Tragedy
- Horrifying story.
- (stcharlesjournal.stltoday.com 120 100 )
- [INTERNET] How to become famous on the Internet
- (online.wsj.com 35 8 638)
- [FACEBOOK] Joyent: Facebook Developer Program
- Free web hosting for Facebook application development
- (joyent.com 19 28 4)
- [BLOGGING] 25 Headline Formulas That Have Plagued and Blessed Web 2.0
- The secret is in the titles, and this is a good cheatsheet to common title formulas.
- (skelliewag.org 11 5 17)
- [BLOGGING] What Causes Subscribers to Read Your Blog’s Feed?
- It’s one thing to get them to subscribe, an entirely different battle to get them to read.
- (dailyblogtips.com 9 8 37)
- [TSHIRTS] Lists: 65 T-shirt Blogs
- That’s a lot o’ blogs.
- (hideyourarms.com 6 4 7)
- [BLOGGING] Hit Scrapers Where It Hurts: Adsense
- People stealing your content? Get their AdSense account revoked.
- (dailyblogtips.com 4 9 8)
- [WEIGHTLOSS] 101 thoughts on losing 100 pounds
- some good advice in there
- [TECH] Cloud Computing in Someone Else’s Cloud: The Future
- The future of servers will be all web apps running on Amazon/IBM/Sun data centers.
This Week at Internet Duct Tape
- People Are Computers Too – How Improving Applications Can Improve Your Life
- This week I’ve been talking about code profiling and how if you want to analyze the performance of your application you need to work with large sets of data. Application efficiency isn’t free, it requires measurement, analysis and change. Unsurprisingly, performance analysis for a software…
- Programming Best Practices: Profiling
- In programming, profiling means to measure your code and find out which parts are using the most time and the most memory. Profiling gives you performance analysis measurements so that you can optimize your program for speed and/or memory.
- How to Profile Greasemonkey Scripts with Firebug
- Running performance analysis on Greasemonkey scripts can be a pain in the butt. They aren’t part of a webpage so standard tools for analyzing web sites don’t work… or do they?
- Best of Feeds – 19 links – blogging, tips, google, opensocial, community
- Tags: blog, blogging, community, google, opensocial, tips
This Week at IDT Labs
- [AKISMET] Akismet Auntie Spam v2.09
- I’m done. I swear. Not going to touch it for a month. Promise. 2007/11/15 version 2.09 – bug fix: vanilla WordPress and WordPress.com return spam results a little differently 2007/11/15 version 2.08 – bug fix: fixed a stupid debug statement that was breaking 2.07 – added menu option for…
- [AKISMET] Akismet Auntie Spam v2.07
- Because why shouldn’t a new release happen within hours of the last one? 2007/11/15 version 2.07 – bug fix: improved slowness of displaying hidden comments – added menu option for checking for updates right now – added menu option for configuring how much spam to download at a time for modem…
- [AKISMET] Akismet Auntie Spam v2.06
- Our favorite Auntie has a new version. 2007/11/15 version 2.06 – optimized, optimized, optimized – only displays 5000 comments per page to avoid stressing slower computers – will work for any language (not just english anymore) – any additional slowness is because of a bug on the WordPress end that…
- [YAHOO PIPES] Yahoo Pipe Cleaner v1.1
- Yahoo Pipes changed their website on me and I’ve fixed Yahoo Pipe Cleaner so that it works with the new site. Now it also removes image thumbnails that were popping up. It might not run on all Yahoo Pipes because some pipes now have custom URLs — let me know if you are having any problems using…