“They say you should lead, follow, or get out of the way.”
So began an essay I once wrote for a college entrance exam to a very prestigious university. I was rejected, and they claimed it was for my less-than-perfect grades, but I don’t doubt that essay played its part. As a seventeen-year-old, I was ill-equipped to state the message well, but it’s a message that I live by, and it’s a message that bears repeating:
If you must lead,
Or get out of the way,
Choose to get out of the way.
Continue reading “Why I’m Not a Leader (and Why You Shouldn’t Be Either)”
I have a gripe.
Computer science is a branch of mathematics. It’s a powerful, amazing tool based on logic and reasoning and the work of giants. And it seems to get no respect from the programmers who blithely don’t realize they’re using it every day.
In the business world, programming problems are solved by either gluing preexisting stuff together or “just hack it until it works.” I can’t count the number of times I’ve heard a colleague say, “Well, what if we just try this,” or “I know this trick,” or “I don’t know why that broke, maybe sunspots.” There seems to be little recognition of the value that computer science brings to the table: Everything is just tips and tricks and technologies, not reasoning and technique.
And if (like me) you’re one of the rare ones who uses computer science to solve a problem, it’s not attributed to all those proofs and techniques and hard science you learned: You’re just a “programming wizard.” It’s as if everybody around you is building houses out of pine, and they see you build a house out of stone and think you found really hard, strong pine somewhere. And worse, they then ask you to point out which trees you got it from.
I don’t understand this disconnect.
Continue reading “Computer Science vs. Programmers”
I love CorelDRAW*. It’s one of my favorite go-to tools for just about everything graphics-related. I’ve been using it since a friend gave me a bootleg copy of CorelDRAW 3, all the way back in 1994. Four years later, I had scraped and saved enough to buy a legitimate copy of CorelDRAW 5 (see! piracy really can lead to sales sometimes!), and I’ve been upgrading ever since. Boxed copies of everything from version 5 to version X5 are sitting on the shelf behind me as I type this.
* Lest there be any doubt, I’ve tried Adobe Illustrator
. I gave it a fair shot, I really did. But it drives me crazy trying to use it. I spend a lot of my time bending and tweaking nodes, and I use the heck out of CorelDRAW’s PowerClip and Blend for everything from simple clipping to really complicated shading effects. Illustrator was pretty weak in all those categories the last time I used it. I tried InkScape
, too, and stopped using it right about the point where their coders asked on their forum, “Why would you ever want PowerClip?”
That said, as much as I love CorelDRAW, there are a few things I’d really like to see either changed or fixed. Some of them are downright bugs that they keep not fixing. Some are existing functionality that just doesn’t work well. And one’s a “please steal this technique from your competitors already.” So here’s my list:
Continue reading “Thoughts on CorelDRAW X6”
I’ve watched with great interest the chase of Edward Snowden. And it’s resulted in a change in my attitude toward government.
Once upon a time, I distrusted government, but I generally assumed that they were simply too incompetent to do anything truly malicious. These are the same people that can’t decide what color to paint a wall, my reasoning went, so there’s no way they could possibly be capable enough to be able to apply the level of evil so many of their detractors accuse them of. That, and there are so many bureaucratic checks and balances that they’re at best handicapped; I envisioned NSA spying on a level only slightly less primitive than tying an extra string to a tin-can telephone.
And then Snowden. Good news, crackpots, you’re not paranoid. Instead of the government being a well-paid collection of Mr. Magoo’s closest relatives, they suddenly morphed into the worst Orwellian nightmare Hollywood can depict. Even as I write this, I’m not at all sure that these very words aren’t placing me on a watch list — if I’m not on one already for having a brain in my head and a tendency to ask probing and awkward questions.
Continue reading “Snowed In”
I spent a little time yesterday reading through the changes to C++11.
Now, mind you, I’ve written a lot of code in C++, upwards of half a million lines of it: So I know all the intricacies of templates. I can use references and pointers safely. I can write const-correct code and overload operators without causing trouble. I know which parts of the language are sturdy and which are dangerously unsafe. I know how to aim the gun right next to my foot without actually striking it.
Now, I spent the last four years in C#, and that’s colored my opinions a bit. A lot of the stuff I used to have to work hard on in C++ is stupid-crazy-easy in C#, and not having to worry about freeing memory makes certain algorithms a few bajillion times simpler. But at the same time, I miss being able to control what winds up on the stack and determine where my memory gets allocated and when it gets freed. C++ gave me power, and sometimes I miss it.
So I think I’m at least somewhat qualified for talking about C++. And I went back to that language for the first time in a while yesterday and read up on what’s new.
I threw up in my mouth more than once.
Continue reading “C minus minus 11”
My wife and I got back yesterday from a trip to visit my in-laws, and we discovered that our hot water heater had — technically speaking — gone all asplodey-go-boom, leaving an inch of water across our entire basement.
The cats, whose litter boxes were in the basement — dry, but separated from them by six feet of inch-deep water — coped with the situation by pooping and peeing all over the living room.
We spent five hours yesterday and five hours today cleaning, and we’re getting close to having the basement dry and the poop and pee cleaned up. The tank is drained, and next up is replacing the thing with one that’s slightly less likely to go asplodey-go-boom in the near future. This is really not how I intended to spend the last twenty-four hours, but such is the joyous life of a homeowner.
I spend a lot of my life waiting for compiling, for progress bars to creep across a computer screen.
I usually spend it reading Google News, Ars Technica, or Wikipedia.
What do you do with these otherwise-wasted minutes?
I bought smile-lang.org today. I doubt anybody will ever use it, but maybe this’ll turn out to be an auspicious moment in history, eh?
But I guess now that the Smile programming language has a website, it probably ought to start existing, shouldn’t it? I have a lexer built, a formal grammar designed (LL(3) with some precedence quirks), a bunch of parsing/transformation rules, a bunch of interpretation rules, and a smattering of the runtime built. It’s definitely not usable for anything yet, but I can actually see it taking shape, and after a decade of working on its design, of throwing out and revising piece after piece of it, it’s good to feel like it’s finally going somewhere.
Remind me to tell you guys about it at some point in the not-too-distant future.
Once upon a time, I had a blog up here, and my software, and a whole bunch of other stuff.
I stopped doing that some years ago. It was a lot of hassle to maintain the mess, and absolutely soul-crushing at times to read the comments.
But — I still have things to say, even if it’s to an empty echo chamber. There are still techy things I want to talk about, ideas to pontificate on, and useful tips to share. So here we go again, with a brand-spanking-new version of WordPress, comments completely disabled, and an empty database of posts.
So let’s do a quick run-down of the most common questions from the last few years:
Continue reading “I’ts been a long time”