Shameless Plug: uArm Swift

I just ran across this on IndieGoGo.  Everyone remember the cute lab robots from the first Iron Man movie?  Well, the people at uFactory are trying to actually build them.  (More or less.)

Continue reading ‘Shameless Plug: uArm Swift’ »

Generic TObjectList layout has changed

I ran across a really strange bug at work yesterday: Access Violation when performing a certain operation in the program.

These are usually really simple.  Easy to reproduce, and the debugger takes you right to the problem, and there you are, confronted by a nil that someone forgot to initialize properly.  Usually. Continue reading ‘Generic TObjectList layout has changed’ »

I am officially sick of DVCS

We use Mercurial at work.  It’s nothing particularly new to me; I’ve been working with it ever since SDL, a major open-source graphics library that I’ve been using and contributing to for a long time now, changed over to a HG repository several years ago.  You’d think that I’d be used to its quirks and glitches, all the little things it manages to somehow not get right, by now.  But it keeps finding new and innovative ways to suck. Continue reading ‘I am officially sick of DVCS’ »

Dear Idera, please Don’t Clutter Up our build process anymore

I was compiling a new branch at work today, which used a different version of Delphi than the one I had been working on, and along the way I ran into tons of spurious File Not Found errors from the compiler.  The file was, in fact, right there where it should have been able to find it easily, but it kept erroring out.  After speaking with another developer, I managed to track down what was really going wrong: for some reason, it was finding outdated DCUs from the old build and choking on it, giving an incorrect error.  After deleting the rogue DCUs, everything built smoothly. Continue reading ‘Dear Idera, please Don’t Clutter Up our build process anymore’ »

A new Industrial Revolution?

I’ve written before about the history of steel, how it’s been around for millennia, but was of limited use to civilization as a whole until the details of its manufacture were published.  It’s impossible to overstate what a pivotal moment in human history the publication of steel was: without abundant, cheep steel manufacturing, we would have never had the Industrial Revolution, the beginning of the modern age.

Since then, there’s only been one technology that’s rivaled steel in its revolutionary influence on the entirety of modern society: the transistor.  And again, the more abundantly and cheaply people have been able to manufacture them, the greater their value to society grows.  We even have a famous principle about the mathematics of it.

Well here’s the amazing thing: we might be right on the verge of it happening again. Continue reading ‘A new Industrial Revolution?’ »

What does the Google Code shutdown mean for other services?

My brother lives in Provo, Utah, one of the few cities in the country fortunate enough to have Google Fiber service.  And they are truly fortunate; he describes it as awesome and amazing, the kind of Internet service everyone should have.  But the thing is… it’s from Google.

Don’t get me wrong, I love Google.  But I’m starting to wonder how much I can trust them as, once again, they’ve demonstrated their shifting attitude towards engineering by announcing the shutdown of a highly useful service, Google Code. Continue reading ‘What does the Google Code shutdown mean for other services?’ »

Beware of Format Injection

So, first things first, I’ve moved on again.  And it was quite a move, all the way across the country to the Philadelphia area, home of the Liberty Bell, the cheesesteak, and the baseball team with possibly the least imaginative name in the history of professional sports.  (Original names don’t seem to be Pennsylvania’s strong suit. We’ve got a Pottstown, Pottsgrove and Pottsville all within about 30 miles of each other, for example.  On the other hand, there’s also this place, also nearby, so… yeah.)

I’m at Gateway Ticketing Systems now, the place where Nick Hodges was working when he made that “rock-star developer” video. (Which appears to no longer be available, unfortunately.)  It’s a nice place to work, even if they do use Mercurial. 🙁 Continue reading ‘Beware of Format Injection’ »

Making people’s lives better… in 4 years.

I don’t think anyone can argue that technology makes many aspects of our lives simpler and more convenient, but it often brings complications with it as well, as we all know.  But every once in a while, something comes along that just unambiguously makes things better.  Stuff like the vaccine, electrical lights, and improved communications technology.

Add to that list just about any “convenience” gadget you can build into a car.  I’ve long maintained that everything from power windows to automatic transmission is, in fact, a safety feature: anything you can get a machine to do for you while you’re driving reduces the amount of distraction you suffer while performing the task, which by definition makes you a less distracted driver and thus a safer driver. Continue reading ‘Making people’s lives better… in 4 years.’ »

Programming and (human) languages

StackOverflow just announced that they’re opening up yet another foreign language version of SO, this one in Japanese.  They’ve already done this in Portuguese, and now it appears they’re continuing on the same path.  When people point out that the “convenience” that this provides would be counterproductive in the long run as it fragments the unified knowledge base that SO has worked for years to build, the standard response is that “learning English is difficult” and this makes it easier. Continue reading ‘Programming and (human) languages’ »

Introducing DFMJSON, the DFM parser and scriptable bulk editor

Yesterday at work, while tracking down a graphical glitch, I found that TPanel objects on many, many dialog boxes in our system (over 300 of them) had a certain property set incorrectly.  There are basically three ways to fix something like that: Continue reading ‘Introducing DFMJSON, the DFM parser and scriptable bulk editor’ »