Aging is the New Working

I was reading PC Magazine’s 25th anniversary issue in which they have the evergreen “what will the future bring?” essays. I was struck by how much talk of medical stuff (nanobots, non-invasive diagnosis, ubiquitous this-and-that) there was. And then it struck me:


Just as they do with every damn thing, boomers define the mainstream concern as “What does this mean to me?” In the past 25 years (to take PC Mag’s benchmark) it went from work (what is technology about? Business productivity!) to family (what is technology about? HDTVs, Internet predators, and bluetooth-enabled minivans!) and now, of course, it will shift again.

What will technology be about for the 25 years? Getting old.

Just as you wish you’d written a spreadsheet program 25 years ago or Facebook 10 years ago (well, you would have been flushed away in the dot-com bust, but aside from that…), the thing to think about now are the killer applications for aging, whether that’s medical support, post-retirement money management, or Am I Wrinkly Or Not?

Harry Pierson’s Awesome "Practical Parsing in F#" Series of Posts

When I can shake some time free to actually learn F#, this awesome series of blog posts on “Practical Parsing in F#” is definitely something I’ll revisit. Parsing is one of the better tasks for shaking free a large number of concepts about a programming language, since it invariably involves large and dynamic data structures, abstraction strategies, IO, etc.

UFO Drinking Game

When I was 10, this show was on Saturdays at 4:00 on UHF Channel 56. I watched the static-y, ghost-filled image on a black-and-white television with, I’d guess, a 17″ screen that sat on a cheap aluminum rolling stand. I thought it was the greatest show ever. This weekend, I discovered that it was actually filmed in vibrant-is-not-the-word color and that, while other people may lament that the future did not bring the flying cars and laser blasters of pulp SF, what I lament is the absence of a moonbase staffed by hot babes in go-go attire and purple wigs.

21st Century Fashions by Sylvia Anderson

Appearance of a new groovy outfit: sip

A new groovy outfit places inappropriate emphasis on a secondary sexual characteristic: drink

Conscious will incapable of keeping eyes from straying to groovily-attired secondary sexual characteristic: chug!

1980: The Future

The future seems inexplicably colorful: sip

The future seems unnervingly reliant on balsa wood and styrofoam construction: drink

You involuntarily exclaim “Yeah, that’s exactly how things were in 1980!”: chug!

Hey Kids, Let’s Put On A Show!

Attention wanders from incomprehensible plot: sip

Actors seem to be on different pages re. how seriously to play scene: drink

Dramatic zoom!: chug!

Why The Mainstream Concurrency Model is Broken

Raymond Chen’s psychic debugging of a deadlock is everything you need to know about why the mainstream model of concurrency (in which programmer’s manually manage locks and can start their own threads) is fundamentally broken.

If you’re a C# or Java programmer looking at this code, you might be tempted to throw the bozo bit and say “Yech! C!” but this is precisely the same situation that one can will see in any kind of complex, multithreaded application.

Sure, Raymond Freakin’ Chen can quickly debug such situations, but most of us don’t have Raymond Freakin’ Chen on staff. And no matter how gently Chen tries to show us how easy it is, most of us simply don’t have the capacity to develop rapid, accurate intuitions into the cause of problematic thread behavior in this model.

And even if such capacity were widespread, the discipline of never doing any form of external calling (message sending, virtual function calls, invoking callbacks, etc.) while holding a lock is never going to be universal and, so long as it’s not universal, this type of problem is inevitable.

Wondering if Subversion is Good Enough

For the past few years I’ve felt that Subversion was a “good enough” SCM system, but I am beginning to wonder about that. In practice, SVN hits bumps quite often, especially when doing things like moving files or directories. This is always easy enough for an experienced user to correct (“svn cleanup” plus move the directories, delete the .svn hidden folders, move them back, etc.) but with my less-experienced clients I think these bumps are really clouding their valuation of SCM. In contrast, I used to have customers who felt SourceSafe was easy and used it, only to experience spectacular failures (corrupted stores).

Going forward, if I have a client who doesn’t have an SCM system, I’m going to say: Vault, Perforce, or VSTS . It’s too high a surface area (every developer) and too critical a function to be undermined by “it doesn’t work on my machine.”

Parsing Microsoft’s "Emacs.Net"

Via Chris Sells comes this cryptic message from Microsoft’s Doug Purdy:

We are looking for developers/testers to build a tool that I will roughly describe as “Emacs.Net”.

No more details than that, but it should be enough to get your brain moving in the right direction.

Which he then elaborates in comments:

Emacs is a text editor. Emacs is used to write apps (and a whole lot more) on different platforms. Emacs is hyper-extensible. More at
Imagine if someone wanted to write something like Emacs.Net. Actually don’t imagine it, it is happening.

The literal reading of the post (a clone of emacs) is too absurd to credit. As put by a commenter:

Neat, so you want to make a clone of a free, open-source, extensible text editor that is loved by millions and write your own closed-source, proprietary, extensible-with-subscription text editor of your own?

Surely not.

So what are the relevant characteristics of emacs?

  1. text editor : But there are gazillions of text editors, including programming editors, on every platform already. Microsoft even has their own little system they seem to like. Can you think of any computing context in which text-editing is often soured?
  2. cross-platform : But Microsoft is a Windows company. I mean, sure they develop a couple things for the Mac, but le’s face it, Microsoft doesn’t really support other platforms. Do they?
  3. very extensible : But emacs is extended with LISP. An editor that’s extended with C# or VB only is going to seem less flexible. And you can already extend VS with those languages. To really have emacs-like “hyper-extensibility,” you would have to extend it using language(s) that themselves are very flexible.

Counting against this supposition (a Silverlight-hosted text editor based on the DLR) is that I believe that Doug Purdy works in the Workflow and Windows Communication Foundation (WCF / Indigo) teams, which isn’t where I would expect such an initiative to flourish.

iPhone vs. Kindle

A client bought me an iPhone for Christmas (more-financially-successful friend’s instant reaction: “You aren’t charging them enough.”).

My reaction is that while it’s an incredible gadget, it’s a pale shadow of the Kindle when it comes to reading. I am dismayed by the number of people who say “Well, the iPhone ought to be the ultimate eBook reader.” The screen resolution is a joke compared to the Kindle. I was reading MSNBC on the iPhone a few minutes, started up my laptop, and thought “Oh man, this is much easier to read.” The Kindle screen is that much better than my laptop display than my laptop display is to the iPhone.

Sadly, though, the browser that comes in the Kindle is very poor and I can’t help but wonder if Amazon isn’t content to keep it that way (Web browsing on the Kindle is via Sprint, fully subsidized by Amazon).

Having the Kindle for 6 weeks has made me realize how little I read mainstream books — I read technical books (so far, none available in “native” Kindle format, although I’ve had luck converting PDFs from the Pragmatic Bookshelf) and a wide variety of magazines, none available on the Kindle. The lack of magazines is especially frustrating for me, since magazines come to Hawaii via boat and I receive them all a month or more after their cover data (and, of course, most subscribers receive their issues well before the cover date).

Another iPhone reaction relates to its locked-in development. For the moment, the only way to write a 3rd-party app for the iPhone is to develop an iPhone-friendly Web page; there are a few proprietary extensions, but mostly it’s CSS and JavaScript. I have to say that there’s a certain “constraints are liberating” aspect to this: the vast majority of PDA programs (todo lists and so forth) are easily-enough ported to the Web.

Newsgator’s iPhone interface is excellent.

It seems that the iPhone only syncs email and calendars with Outlook, which is a disappointment, since my Outlook install seems to have been poisoned (it only runs in /safe mode no matter how many times I run scanpst) and I have been seriously considering switching to Thunderbird.

Ruby 1.9 Available

Ruby 1.9, which involves a number of significant upgrades, is now available. This is development code, probably not ready for use in upcoming sprints / development cyclese, but I will be downloading it if for no other reason than to experiment with its Fibers implementation.

To Twitter, To Facebook, To Facebook Perchance to Slack? Aye, There’s The Rub

A client bought me an iPhone for Christmas. It’s a pretty darn slick gadget, although I doubt that I’ll keep a phone plan on it (I’m pretty much either at home in my wifi bubble all day long and, when I go out, I’m often going to beaches and other salty places).

For the moment, though, I have an unlimited data plan. I may try Twittering and see if that becomes interesting. Here’s my feed:

Software To Join A "Slightly More Fit" Peer Group

Were I to graph the calories burned per week exercising for group in my social network (were I to bother maintaining my Facebook page), it would create a normal distribution. This graph would probably correlate pretty directly to their perceived fitness and their enthusiasm for exercising. Within this group I could find a subgroup that was slightly-more-enthusiastic-than-average (and subgroups that were slightly-less- and considerably-more- etc.). 


If I had a New Year’s resolution to burn more calories per week exercising, I could compare myself with a subgroup whose mean calories/week was slightly more than my average. This would be more effective than comparing myself to my most-fit friends, whose enthusiasm and dedication to fitness is as unreachable as the skills of teenagers in Halo 3 (note clever allusion to TrueSkill).

As time went on and my New Year’s Resolution waxed (or waned), the group used to determine my subgroup would shift (hopefully toward the more fit, but always to “slightly more motivated than your current evidence”). Note that it’s possible for essentially everyone to be in such a group, given a large enough set, i.e., the set of people who are interested in getting more fit.

I understand there’s money to be made in Facebook applications. Does such an application exist?