3,267 karma · joined March 4, 2010
"The most important single aspect of software development is to be clear about what you are trying to build."
"There are no 'cookbook' methods that can replace intelligence, experience and good taste in design and programming."
"Design and programming are human activities; forget that and all is lost."
So true, so important, and so universally applicable.
Still, I can't help lamenting it. There was something delightfully baroque about knowing that the kilogram was in a vault in France. I'm going to miss it.
But you often can tell, with very very nearly 100% confidence if someone will not be a success. And that is the purpose of the interview. To filter out the "definitely not"s — the programmers who can't write fizzbuzz. And yes, I have seen plenty of these.
And interview is not the be-all and end-all of recruiting: of course it isn't. But I'm seeing a pendulum swinging a long way in the other direction now, and a lot of people talking as though interviews are worthless. They're really not.
Guess what? It turns out that all those edge-cases were there for a reason. You needed them. And by the time you've added them back, or equivalents, two things have happened. First, you've burned an order of magnitude more time than you budgeted for the rewrite. And second, you have a codebase every bit as gnarly as the one you started with.
First rule of rewrites: don't do it. Second rule of rewrites (for experts only): don't do it yet.
There is literally no downside for an academic author to have his or or her work made freely available to the world: only the considerable upside of greatly increased visibility and influence -- which is the true currency of academia.
Bottom line: do a Ph.D if and only if you want to do the work. Don't do one in order to get the qualification. Focus on the journey, not the destination.
for i in *.png; do pngtopnm < $i | cjpeg > `echo $i | sed 's/png$/jpeg/'`; doneYeah, thanks. I always wanted an operator that did that.
I wonder why Perl 6 hasn't caught on?
It's also why I found the TV series _Angel_ (the _Buffy_ spin-off) so unsatisfying. There is a truly fascinating story to be told about a vampire whose soul has been restored to him, and who is always at war with his own evil nature. But _Angel_ is not it. Instead, the eponymous character is essentially entirely good except when some supernatural agency transforms him back into Angelus, his evil form. All the conflict is externalised.
That's a particularly surprising and disappointing mis-step given _Angel_'s provenance. Joss Whedon is exactly the kind of person who I'd have expected to be interested in exploring the _inherent_ contradictions within the Angel character, and showing how they are analogous to the questions that we all face.
Well, that is not exactly true. For those who have forgotten the history, or weren't around at the time, this leaked internal document from Microsoft was the proximate cause of OSI taking off: http://catb.org/~esr/halloween/halloween1.html
TLDR: Microsoft's loud opposition to, and deep fear of, open source software provided a catalyst and a point of unification for those who supported it.
Meanwhile ... I do regret that this doesn't introduce alternative dependencies, like Debian packages have, where your package foo can have dependency on "either bar or baz". Oh well.
I happily used emacs as my mail-reader from 1989 to about 2009 (first RMAIL mode, then VM). The increasing importance of non-text formats made it cumbersome, and I somewhat reluctantly switched to GMail. It's hard to imagine switching back now.