I've been using Flickr as a source of stock photography for a while now, so even at the outset of this experiment, I knew two important things that not everybody realizes yet: (1) There's no longer any point in taking snapshots of places and things; someone's already taken exactly the picture you want to take. The lighting's just like it would be in your photo. The subject is just as out of focus and just as poorly framed as if you'd have taken the picture yourself. Even the people are the same: their friends look just like your friends. (2) There's not just one photo like the one you would've taken yourself had you remembered to take your camera with you and charge its batteries. There are many photos like the one you would've taken yourself. Many, many photos. Not one. Not ten. More. A lot more.
Another epiphany, which means I'm subjecting you to another rambling post to explain why I'm not giving up yet on photography.
One of the Holy Grails™ of Computer Science I was taught was the
reuse of existing code. “Thou shalt not reinvent the wheel,” was
the mantra, but really, until perhaps the mid-90s (well after Linus
Torvalds went ahead and reinvented
the wheel Unix) such advice
was routinely ignored (otherwise, Linux wouldn't exist, now would it?) and
then, apparently, the hammering of that mantra got harder and harder until
now, well …
“I think I'll write a newsreader!”
Stop. Stop right there. I have a suggestion that will save you a lot of time: Go to a movie. Rent a video. Volunteer with a local first-aid squad. Feed the homeless. Make a sandwich, walk onto the street and when you see a homeless person say, “HERE!” Just do anything other than write a newsreader. There are enough already. We should have started neutering newsreader authors a long time ago.
I wouldn't write my own editor until I had learned all three of those editors. After that … I still wouldn't write my own editor. ;) Spend your energy on a problem that urgently needs solving.
Awesome, now somebody go back in time 3 months and release this so I could have not spent that time writing the same thing (okay, not exactly the same, mine isn't nearly as pluggable).
There's no room for Not Invented Here syndrome in open source software development. When you let NIH get in the way of doing the right thing, you're not doing open source development any longer.
“not invented here syndrome”.
Whenever starting anything new, I'm going to look for an appropriate framework or module before giving up and trying to do it myself.
And before you know it, no one will be writing new code anymore.
Everything that can be invented has been invented.
Charles H. Duell, US Commissioner of Patents, 1899.
Why should they (we)? It all exists, or wait long enough, and
sucker someone else will write it (thank you, lazy web).
And this bugs me. It bugs me that new programmers are coerced by peer pressure into not writing code. Why is it so wrong for a programmer to attempt to write their own editor instead of trying to work with Emacs? (In my mind, attempting to write an editor may give said programmer a better appreciation of what Emacs can actually do; or maybe the programmer will come up with a better interface, one that doesn't induce carpal tunnel syndrome)
But even worse, this mentality creeps into many programmers, causing them to give up their own programs. There are a few programmers who's blogs/journals I follow that at one time used their own software to maintain their website, but gave up. Just stopped using their own software and instead switched over to some other popular package (like Moveable Type or WordPress). And honestly, I don't understand why. Did they drink the Kool-Aid of code reuse? Did they switch for some feature but were too lazy to implement it? (and end up with unused features that might be exploited?) Because all the “cool kids” were using it? They're afraid of being ganged up on for writing new code? Or some other reason?
Perhaps I'm scared that programming will (is?) turn (turning?) more into “glue this code to that code” and less a creative endeavour? Should I just give up and only use existing code because everything that's been written has been written and stop wasting time “reinventing the wheel?”
And therein lies my epiphany—that to most programmers, everything that has been written, has been written, so stop writing new code! Leave that to the large professional teams. Besides, any code I write is going to be buggy. My time would be better spent just gluing bits of existing code together, or debugging already existing code.
And by the way, I should toss out my digital camera because any potential picture I would want to take has already been taken.
Yeah, like that's going to happen.