Moving to chrissvec.com

I’m in the process of moving from http://saidsvec.com to http://chrissvec.com.

When I created the original “Said Svec” site I thought it was a clever name, like, “stuff that Svec said,” you know? It turns out it’s confusing though – some people think my name is Said Svec, instead of Chris Svec. It’s an ambiguous site name, which is too bad, but fortunately chrissvec.com was available, so here we are.

Expect lots of churn as I import the old site here get it ready for production.

iTunes->iPad sync crashes with some JPEG2000 files

Note to teh interwebz: iTunes 10.2.1 and 10.2.2 (at least) on Mac crash when trying to sync some JPEG2000 files from a Mac to an iPad (first generation iPad).

I tried to sync some old maps of Boston from my Mac to my iPad and iTunes 10.2.1 and 10.2.2 crashes every single time while trying to “optimize images” during the syncing process. I assume that means that iTunes converts (or at least examines) all images it sends to an iPad, and iTunes really didn’t like that particular JPEG2000-formatted image. When I deleted that image from my pictures-to-sync directory iTunes completed the sync just fine. When I put the file back in the pictures-to-sync directory iTunes crashed.

I filed a bug with Apple.

Hopefully they fix it. Even if JPEG2000 images aren’t supported on the iPad (which I found out they aren’t), iTunes shouldn’t crash when processing them.

Assigning Task Priorities with RMA

Embedded gurus Michael Barr and David Stewart have written a couple of great articles about assigning task priorities with RMA (the Rate Monotonic Algorithm):

  1. Introduction to Rate Monotonic Scheduling, by David Stewart and Michael Barr
  2. 3 Things Every Programmer Should Know About RMA, by Michael Barr

The first article lays out the basics: RMA is an algorithm that assigns static priorities to periodic tasks in order to maximize “schedulability.”  That’s a mouthful: 16 words, 37 syllables.  And one of the words isn’t real: “schedulability,” which means “able to be scheduled so that all tasks complete before their deadline every time.”

Let’s try again: RMA helps tasks get done in time.  That’s better: 7 words, 9 syllables.

The second article expands on the basics of RMA, giving some additional guidelines for when it should be used, especially as it applies to interrupts (which it does!).

I want to talk a bit more about the basics of RMA.  RMA is easy to describe: a task’s priority is based on how often it runs.  The task that runs the most often gets the highest priority, the task that runs the second most often gets the next highest priority, and so on.  Or, to quote the first article, “Assign the priority of each task according to its period, so that the shorter the period the higher the priority.”

RMA does not guarantee that your tasks will all complete in time; RMA does guarantee to find the optimal static prioritization assignment if one exists.  If RMA doesn’t produce a “schedulable” task set then no “schedulable” static priority scheme exists.

RMA’s greedy nature makes intuitive sense: starting at time zero, assume all tasks are ready to run.  Then run the task with the shortest period.  Since this task runs more often than any other task, it “feels” right to run it first to give it the best chance of finishing before it has to run again.  Next run the task with the next shortest period, and so on, until all tasks have been run.

Fortunately the intuition and “feel” that RMA works is backed by the fact that it does!

I’ve given a very basic overview of RMA here.  Please check out Stewart and Barr’s articles for more about RMA.

Disney World has it all wrong

Exxon commercials during the Olympics try to make science and engineering look attractive to kids by showing nothing but equations. Okay, there’s a few semi-hip looking scientists and engineers talking about how they grew up being curious, taking things apart, figuring out how stuff works. Oh yeah, and equations. And then some more equations.

Disney World has it all wrong.

C’mon kids, it’s fun! Look – EQUATIONS!!!

Edit: Originally I wrote that it was Chevron’s commercial, but it’s actually from Exxon.  You can tell the commercial had a big impact on me.

Microsoft should buy 37 Signals?

Big company, creator and master of much complexity, envelops small company, exhorter of keeping things simple.

I see 2 possible outcomes:

  1. 37 Signals simply disappears forever.
  2. 37 Signals simply disappears for a while, but encourages small pockets of simplicity throughout Microsoft. A few projects change slightly. Exchange meets Backpack, perhaps.

I have no idea how that would play out, but it certainly would be interesting.

EDIT: I should point out that I don’t really think MS should by 37S, I just think it’s an interesting acquisition to consider.  And so I added a “?” to the post title.

Professional branding.

The Association for Computing Machinery (“ACM”) says this about themselves:

“ACM delivers resources that advance computing as a science and a profession. ACM provides the computing field’s premier Digital Library and serves its members and the computing profession with leading-edge publications, conferences, and career resources.”

If you check out their latest membership offer for students you’ll see that they offer a “FREE ACM Flip-Top Calculator (while supplies last)!”

Seriously? Did that actually sound like a good idea to anyone at the ACM? Is a lame calculator one of the leading-edge career resources they offer? Does that do anything but hurt ACM’s brand?

I had some other smart-alecky things to add here, but I think I’ll leave it at that.