The divot in my finger
device
[info]jducoeur
Yesterday's major project was one that's been stored up for some time now: I finally removed my wedding ring.

Mind, it wasn't a sudden decision. After the first anniversary of Jane's death back in January, I had decided that it was getting to be time -- I'll always miss her, but I have to let go of the mourning. But that raised a very simple and practical problem: the ring was well and truly *stuck*.

It wasn't a total surprise, and was entirely natural. I got married just shy of 25 years ago, and probably haven't taken the ring off in the past 15. Since the ring was sized, I've probably gained 40-50 pounds. (While never precisely thin, I was in very good shape in college.) So my fingers are simply a bit pudgier than they used to be: distressing, but to be expected.

I *was* a bit surprised at how challenging it was, though: it used to be easy enough to remove that I hadn't thought much about it. But even lotions and things couldn't do much for it: there was just too much flesh there.

Eventually, I went down to Long's, to ask them to remove it, and was surprised to be informed that they don't do that sort of thing any more. Their recommendation was to go to either the ER or Fire Station to have it cut off my finger, but I found those pretty distressing options. It's one thing to have it removed by the jeweler who sold it to us in the first place, but from a ceremonial POV, the idea of having my ring chopped off with firemen's emergency equipment (and likely doing it a good deal of damage in the process) didn't sit well with me.

Fortunately, Aaron came through with a strange-sounding but successful method involving, of all things, dental floss. He pointed out a YouTube video for training EMTs to deal with it; I took that as my manual. The summary is that you take a long string of floss, and thread a bit of it under the ring. Then you basically mummify the finger pretty tightly in the floss, winding it around many times, and then unwind it from the other side. The process hurts like hell -- you're basically cutting off your circulation for a couple of minutes while you do it, and it bites into the skin a bit -- but it worked exactly as described for me. It leverages the ring off the finger, a millimeter at a time, but it comes off pretty much as quickly as you can unwind it.

(Note that this won't work for every situation -- in particular, I suspect that if the problem is the knuckbones you're simply out of luck. But in a case like mine, where it's just an issue of a bit too much flesh, it works surprisingly well.)

And now, I have a well-dented slot on my finger -- a bit pale, with well-defined edges. That'll go away soon enough, but I suspect that my habit of spinning the ring around my finger will take longer.

But it's off, and without damage, which is a real comfort. I've laced it onto a gold chain that I've had for many years, and stuck it away safely; I expect I'll put that on when occasion and ceremony suggest it. One more step towards building my new life: not an easy one, but I'm glad to have gotten a good resolution to it...
Tags:

Memorial Day Party!
device
[info]jducoeur
Okay -- I did a date grab some time ago, but let's make this more official:

I will be holding the traditional Crossert Memorial Day Party on Monday, May 28th, at my house in Burlington. Y'all are invited -- as always, this will be a relaxing afternoon out in the back yard without a ton of structure. Folks returning from events or other travel are encouraged to drop in and decompress. Children are welcome (and there's lots of room to run around), but should be supervised.

The party will start at 2ish and run until everyone goes home. If weather is bad, we'll move inside and have a quieter day of schmoozing and games.

The day will be light potluck, as usual: I will provide some grilled meat, and I encourage folks to bring sides, chips, desserts, drinks and so on. (But if you decide at the last minute to come, and can't bring anything, come anyway: we've never had a shortage of food.) My old grill is Mildly Kaput, so I need to buy a new one ASAP, but we'll assume that I manage to deal with that.

RSVPs welcome if you know you are coming (helps reassure me that there will be people there, and figure out how much meat to buy), but not required -- come if you can make it. Drop me a note if you need directions.

Hope to see you there!
Tags:

Integral
device
[info]jducoeur
Eternity is not after our lives,
but outside. For after, there is nothing
but the dark. From God's-eye perch
we look upon our times in crystal form,
eleven planes laid flat before our view,
and there we do our sums.

Our debits counted red are times of doubt,
measured in mayhap and might have been,
our bodies in the fore, our minds in aft,
wishing for the wake and fearing storms
that have not come, and may not wash at all.
Our thoughts caught up in contrapositive,
the moment lost for lack of heed and care.

The positives are painted prism-hued,
all colors there, awash in all the world's
events where we partook. Those times where thought
and place were one, ajoined to truly see
the joys that were around. Each moment's life
a breath, then passing imperceptibly
and rising up the precious next.

From high above we count the weight and tint
of times below. Our souls in immanence,
we coolly weigh each contribution's heft.
Did this life *live*? And did it add
to cosmos' understanding of itself?
Were moments spent within the world,
or trying to escape?

The count is called for each of us on high,
Our aggregates define the cosmic why.
Tags:

Smock
device
[info]jducoeur
I just have to say, every time I hear the phrase, "Sophisticated underwear bomb" on the news, it gets funnier...
Tags:

Swing and a miss...
device
[info]jducoeur
On the one hand, the spammers are getting smarter, trying to make their spams more engaging and personal, by including my name in the Subject line.

On the other hand, some helpful idiot, somewhere along the line, decided that my name was "Joseph duCoeur", and has been propagating that to all the other spammers. So the end result is that a large amount of spam is even *easier* to recognize and discard confidently than it used to be: essentially, any email whose Subject starts with "Joseph" is spam...

Javascript Technology Update [long]
device
[info]jducoeur
[I just sent a version of this around to my group at work, and figured that it may be generally interesting to folks here. This is an extensive braindump of a lot of related stuff I’ve been reading into in the past month as it comes across my RSS feeds. There are many links below, and they’re worth reading if you are interested in where the Web is going, but it’ll take some time to read through all of them. It basically expands on my post from yesterday about ClojureScript.]

In my work, ever since the year I spent on CommYou, I've been tending to favor Flash and Actionscript for serious UI development. That has nothing to do with HTML (HTML5 is pretty sweet) – it’s because Javascript is pretty much a disaster for trying to build sophisticated UIs. It works okay for simple projects, but as a tool evolves it turns into a gigantic maintenance headache.

This isn’t exactly a minority view: especially over the past year, there’s been a growing sense (I don’t know if I’d quite call it a “consensus” yet, but it’s getting there) that Javascript is the main impediment to Web development. Libraries like jQuery help, but can only do so much to paper over the weaknesses of a language that hasn’t meaningfully evolved in over a decade. So the open-source community, characteristically, has started to treat this as a bug and work around it.

This is mostly manifesting in the form of Javascript compilers: that is, new languages and tools that target Javascript as the *output*. Especially since Google turned Javascript execution speed into the front line of the browser wars, execution speed has improved dramatically – by orders of magnitude relative to IE6. The result is that pretty much all modern browsers (even recent versions of IE) execute Javascript blazingly fast. That allows people to start treating it as, essentially, machine language, and simply compile better languages to it.
Cut so that the non-programmers can ignore the rest of this )

Light Table and Clojurescript
device
[info]jducoeur
Thanks to Ars Technica for pointing me to Light Table, a remarkably cool new toy-in-process. It's a pretty radical rethink of the idea of an IDE, combining code editing, interactive realtime execution and a highly efficient UI layout, resulting in the most different IDE I've seen in a lot of years. It incorporates some of the ideas from Code Bubbles, but goes much further.

The project is pretty nascent, but worth encouraging along. To that end, they've opened, yes, a Kickstarter project to fund the first year or so of development. I've kicked in $15 in the hopes that this turns real, because it looks potentially enormously useful for serious web development. You might want to give it a look.

Along the way, I noticed that Light Table is written in Clojurescript, yet another example of somebody dealing with The Javascript Problem by writing a compiler on top of JS. It does seem the way of the future: since Javascript has become a horrible roadblock to productivity, more and more people are simply treating it as the browser equivalent of machine language, and building realer languages on top of it. Clojurescript is, as the name implies, a dialect of Clojure, the other main contender for "most important new JVM language", and it includes idiomatic bindings for jQuery. I like Scala more, but that's partly because I like ML more, and Scala is an ML descendent, whereas Clojure is a Lisp descendent. If you like Lisp-style languages, it's worth checking out Clojure and Clojurescript, which have revived that syntax as a full-fledged modern functional language for the JVM and the browser...

8 Core Beliefs of Extraordinary Bosses
device
[info]jducoeur
LinkedIn continues to turn up just about one really good article per week. This week's is "8 Core Beliefs of Extraordinary Bosses", from Inc. All very solid, cogent observations, true of more or less any company, so it's worth a little thought for anyone in management.

(More than half of the points apply directly to clubs as well, if you substitute "members" for "employees", so it's worthwhile for folks in leadership positions in groups like SCA, LARP or what-have-you...)

More Kickstarter games
device
[info]jducoeur
Following on from the Rhythmomachy set that I pointed to last week, the lastest interesting Kickstarter item is The Reliquary Set.

This one is not fully funded yet, because it's on the pricey side, but it's extremely pretty. It is a set of 12 board games throughout world history, re-created with what look to be high production values. The sets are made with natural materials -- laser-etched leather boards and wooden/stone pieces -- so they look pretty SCA-ready. Two of the games (Brandubh and Mill) are solidly SCA-period; a bunch of the others are from outside the SCA's core area but are old enough, so well-suited to folks with less-standard personae. (Anything from Indian to Mayan to Russian -- they really cover the bases very widely.)

Very neat stuff. I'd buy the complete set if it wasn't so expensive; as it is, I'm considering at least buying a few of the games. Worth looking at for any SCAdian gamer. Or generally, any board gamer who wants to expand their horizons -- these games are chosen specifically because they are each very different, and all are pretty different from modern board games. Expensive, but lovely stuff...
Tags:

Visual toy: Horizon Charts
device
[info]jducoeur
This is a Data Visualization burble, so most of you probably want to just skip along here. But if you find the Tufte books interesting, you might want to check this out.

Tonytip (my co-Architect at work) just pointed out a couple of fascinating articles about Horizon Charts, a semi-recent (2008) visualization concept that I hadn't come across before. This article (PDF) is an excellent introduction to the concept, and explains how the author went from being a skeptic to gradually grokking the logic behind them. And this article (which leads to another PDF) is a delight -- a proper scientific study that examines how well this visualization works. (Answer: better than the study's authors originally expected.)

The short version is that a horizon chart is a visualization technique for comparing a large number of time series next to each other. You would use it in circumstances where the obvious thing to do is stack a lot of line charts -- the first article does a fine job of working through each step of how you go from simple line charts to this new model, which uses color and contour in some brilliant ways to provide a very glanceable notion of the large-scale trends, and draws the eye quickly to interesting outliers.

Neat stuff, and it's always great to have a new tool for my kit...

Sorry for accidental Rizzoma spam
device
[info]jducoeur
Since Google Wave is being shut down imminently (about a week from now), and Rizzoma currently looks like the most plausible candidate to replace it, I just went through and copied all of the waves that I actually give a damn about to Rizzoma. All of which is fine, but apparently Rizzoma notifies everyone who has editing privileges to a wave when it gets imported -- and in some cases, that's a lot of people.

So my apologies if I wound up spamming you (in some cases several times). I think their policy is probably appropriate, but it hadn't occurred to me when I did the import.

(The import itself seems to have worked adequately, but the jury is out on the process: Aaron tells me that he got one of those emails, and signed in, but couldn't actually access the wave in question. Don't know why yet, but that's the danger of early-beta software...)
Tags: ,

The Fall and Rise of China -- epilogue
device
[info]jducoeur
So I did eventually finish the course on China that I reviewed the other week. As expected, it never manages to ever get quite as sordidly captivating again after the aftermath of Mao's death, but Tianenmen serves as another major foreshadowed climax in the story, and it ends with a good review of the state of China "today".

In a bit of wonderful timing, [info]mindways posted a link to this fine article in Foreign Policy magazine, on the Bo Xilai affair. It's well worth reading, but the more you know about modern Chinese history, the more fascinating it becomes.

In summary: the past isn't prologue, it's not even past. This scandal, which has been quietly tearing things up in China's upper echelons for the past few months, is very much an echo of Tianenmen, and indeed of the post-Cultural Revolution legacy. It's the story of Bo Xilai, a populist who had sort of set himself up as an heir to the left-wingers who dominated when the Communist Party was actually communist, vs. the heirs of Deng Xioping, who opened up the economy -- and just as significantly, of Hu Yaobang, the party head who tried and failed to open up Chinese politics in the 1980s.

It's very intriguing, if frustrating -- the Party is better than ever at keeping a tight lid on the rumor mill, and I suspect it'll be a long time before the full story of what happened comes out. Signs are that, behind the scenes, the battles for control of the soul of the Party continue to rage, with deep implications for the entire world. And someday, it'll make an absolutely delicious HBO series, no doubt...
Tags:

Resume rules
device
[info]jducoeur
Conducted an interview this morning; suffice it to say I wasn't blown away in general, but the worst of it was the resume, which was almost Platonically bad. Let's count up the problems, each of which serves as a cautionary tale:

Check your freaking English: seriously, if you're going for a professional position (and programming is definitely a profession), there is absolutely no excuse for poor English on the resume. It's not just a matter of using the right words -- syntax matters, and not knowing when to appropriately use "a" and "the" looks bad. (Moreso when you don't have the excuse of being Russian.) Having syntax errors in the very first sentence is going to handicap you from the get-go. If you're not a native speaker, have someone who is one check it over for you; if you can't even do that, I am forced to wonder whether you fail on "not a team player" grounds.

Additional buzzwords don't make it better: listing all of the source-management tools you've ever used doesn't impress me. Listing them all as "SourceSafe"s mostly convinces me that you don't know what you're talking about. So does listing "Agile" and "Scrum" as separate methodologies if you're not prepared to explain the difference to me correctly. Listing HTML as a "development language" isn't *quite* as bad as listing test-driven development as a "technology", but it's close.

Formatting matters: not quite as important as the proper English point above, but again goes to looking professional. Having most of the resume look like one run-on paragraph, with no variation in the line spacing to separate the jobs, makes it look like it was written by a tenth grader. (And really, most of the computer-savvy tenth graders can make it look better than that.) It doesn't have to be a work of art, but at least make the effort to find a decently readable template -- if it's slapdash and hard to read, it comes across as a disrespectful waste of my time deciphering it.

Know your resume: folks often point out that having a three-page resume can be a negative. Here's a sharper point on that: listing something on your resume that you don't remember clearly is a Very Very Bad Idea. As an interviewer, I'm going to ask you about the things you list. If you keep having to ask to look at my copy of the resume, and then have to spend thirty seconds remembering what that line was talking about, you're doing yourself a disservice. If it isn't important enough for you to make the effort to bone up on it and have it fresh in your mind, it isn't important enough to list on the resume.

Don't inflate: the uber-sin, that trumps all the others. If you list yourself as "Architect" -- if you claim that you have *ever* been an Architect -- I am going to treat you like one. And if I discover that your actual skills are those of a conventional Senior Software Engineer, it's going to go worse for you than if you said that in the first place. When you say that you "re-architected" a software system for a client, and I find on drilling down that all you did was perform fairly conventional refactorings, I'm going to get downright annoyed.

All of this boils down to two points, which (uncharacteristically) I'm willing to say are hard and fast rules if you're interviewing as a programmer:
  • Make the effort to make your resume look adequately professional.

  • Don't brag, don't inflate, don't fill it with puffery -- keep it real, honest, modest and limited to things you're prepared to talk enthusiastically and knowledgably about.
None of this is rocket science, and there's no good excuse for violating it...
Tags:

Kickity-kickity-kick
device
[info]jducoeur
I am starting to have a dangerous amount of fun with Kickstarter, and backed two projects this week. Both have passed their fundraising goals, but both are kind of neat, and folks might be interested in them.


On the one hand, there is the Pebble, which isn't exactly obscure -- it's been getting a lot of airplay, and is by now the most-funded Kickstarter project ever. (Having so far raised $3.5 million of the $100k they were shooting for.) It's a silly gadget whose time has clearly come: a "wristwatch" that is actually a computer on your wrist, with a low-power e-paper display, programmable apps, and a Bluetooth hookup to your iPhone or Android.

Effectively, it's an auxiliary display for your phone that you wear on your wrist, which displays the watch face of your choice when it's not doing anything more interesting. I clearly must have one of these, and backing the Kickstarter project is a way to get in early with a small discount. I actually got pointed to this one by Aaron, who was apparently acting on the theory that this was a way to convince me to wear *some* kind of wristwatch. (Presumably once he's got me used to that, he'll try to sell me on something fancy and mechanical.)


Far more obscure, but ridiculously cool to SCA game geeks is this Rithmomachia set. Again, it's met its funding goals (although to a much more modest degree), but the Kickstarter pre-order discount seems worthwhile. Basically, for $50 you get a full Rhythmomachy setup, with laser-cut pieces, a hinged wooden case and rulebook.

For those who don't know it, Rhythmomachy is the period game for people who were bored with Chess. It's an asymmetric positional board game played with numbers, and was popular with the monastic and philosophizing set through most of the Middle Ages. I have two sets already, of course, but this one is probably the prettiest I've ever seen, and it's actually being mass-produced. The set sounds quite sweet -- worth thing I can say about it is that the pieces might be single-sided, which would make it more of a hassle to do certain variants of the Major Victories. (I'm not actually sure about this; I've asked in their comments whether the pieces are single or double-sided.)

Anyway, this is neat stuff, and a very reasonable price for a set that sounds event-quality. I recommend it to any hardcore board gamers in the SCA: Rhythmomachy is one of the most important games from period that completely died out afterwards. It's challenging, but a fine way to while away a quiet hour or two (or 20, if you want to play to the really hard Victories) at an event...

Big IP isn't quite as important as it would like to believe
device
[info]jducoeur
Very good article in Ars Technica today, on the subject of the new government report on Intellectual Property. It makes fine reading if you're interested in the subject.

The short of it is that the government produced a report that the Big Content groups like the MPAA are trumpeting as proof that the economy hinges on strong intellectual-property protections. But the Ars article deconstructs the details, and demonstrates that it says nothing of the sort -- indeed, that it shows that the Big Content industries aren't anywhere near as economically critical as they'd like to believe.

Some of the exaggerations turn out to be almost comical. For example, in its attempts to define as much of the economy as possible as "IP-intensive", it winds up including the industries that depend on *trademark*, but don't give a damn about patents or copyright. So the grocery industry winds up getting defined as "IP-intensive".

Anyway, the article winds up questioning the value of the report, once it has torn to shreds a lot of the trumpted assertions. It makes a fine antidote to the MPAA's paranoia machine...
Tags:

Rizzoma
device
[info]jducoeur
I shared this on FB a few hours ago, because it was the easiest way to do so, but folks here might be interested: I just came across Rizzoma, which is essentially an open-source successor to Google Wave. Still in fairly early beta and somewhat limited, but good to see -- if they can do a good job, it might reduce my sense of needing to try the CommYou project again. They seem to be focusing in on the collaborative-project use cases: not really where my focus for CommYou was, but probably a savvy analysis of the sweet spot of the Wave-style features.

It currently requires a Google ID to log in (like CommYou, they seem to be working with other peoples' social networks instead of trying to build their own), and currently requires Chrome to use, although both of those are on their roadmap to widen.

I've created a sandbox thread to play in. Y'all are welcome to come noodle around in it, and we can collectively get an idea of what the feature set currently looks like...

Scala Circuitries
device
[info]jducoeur
I burble about Scala on a regular basis, and part of that is because I really like the growing snowball effect. Since Scala is the Cool Language, it's where the largest number of cool theoreticians are gathering, to come up with more ideas about how to make the language cooler, feeding in a virtuous spiral. It's a delicate dance, but so far it's managing to remain solidly practical and pragmatic while still evolving an order of magnitude faster than something like Java.

Historically, its evolution has mostly consisted of applying the best practices and ideas found elsewhere in the programming world, combining them into a single coherent framework. But now, it's starting to be where the cutting-edge ideas *start*.

Today's example is Scala Circuitries. WARNING: this is really, really deep stuff -- I can barely hang on by my fingernails through this slide deck, and I don't recommend it to anyone except very experienced programmers with at least a little background in modern CS theory.

That said, the ideas here are breathtaking. It uses Scala as the example language to tease out a generalized concept of Circuitries, arguing that they are the better generalization that ideas like Monads, Applicatives and Arrows are stepping-stones towards. They describe a general conceptual framework for thinking about programs with side-effects -- and more importantly, start teasing out some nicely general concepts of how those side-effects combine.

The payoff is in the last 20 slides, where they start hinting at some very advanced but likely achievable ways in which you could start to program in ways that look conventional, even procedural, but capture the side-effects of those programs automatically. They're nowhere near there yet, but this is holy-grail stuff: if you can take arbitrary programs, reduce out all of the side-effects in predictable ways and leave pure functional code, it can advance the art of programming by leaps and bounds. (Not least, in that it potentially leads to being able to automatically parallelize arbitrary code, which would be a *huge* advance.)

Note that you may need to take a dig into the brand-new Scala Macro system to really understand what's going on here. The Macro system is itself a great example of how the language is evolving: it's a very formal meta-programming environment that allows you to write higher levels *in* Scala, that get executed at compile time. The term "macro" is controversial -- a lot of people feel that C++ has polluted the word forever -- so some folks refer to them as CATs (which I believe stands for Compile-time AST Transformers). Basically, they look almost like functions, but instead of being executed at runtime, they instead get fed the Abstract Syntax Trees of their parameters at compile time, and have reasonably clean mechanisms for transforming and emitting those trees. (In technical terms, they aren't quite hygenic in the traditional sense, but the design makes a good argument that they come close enough if you follow some specific practices.)

It's worth saying clearly: we are in an absolute golden age for programming right now. It's scary as hell -- I'm good at this, and still often have trouble keeping up with how fast the cutting edge is advancing. But stuff like this is a large part of why I stay so engaged in my field: it's just incredible *fun* watching things evolve right before my eyes...

Anyone know a decent colo in this area?
device
[info]jducoeur
Since some of my friends might have ideas: [info]wiglaf_aaronm's colo provider is apparently going away. That's inconvenient for him and lots of other people: he hosts lots of miscellanea on wiglaf, so we'd like to find it a good home. So he's looking for recommendations. Doesn't have to be fancy, just somewhere decent that he can get 2u with 10mbit service at a non-crazy price. Any suggestions?

Share with those you love
device
[info]jducoeur
I'm slowly continuing the Great Book Project, which is going to result in a huge book sale in September -- pruning through both her books and mine, figuring out what I can easily part with. And almost every day, it contains revelations.

For instance, today's: I just found two books of poetry in her hand. Most of it collected by various great authors and songwriters, but about a third of it hers. Not high art, mind -- it appears to have been written when she was 16, and is mostly love poems about her then-boyfriend John (and his cars) -- but still, immensely personal stuff, full of personal truths. And I don't think I ever knew that she'd written a poem in her life. She always claimed that I was the creative one, and that she wasn't.

The only moral I can draw is: share who you are, while you can. Every day I do this project, I come up with more questions that I wish I'd asked her, had I but known to do so...
Tags:

Dropping IE support isn't necessarily the end of the world
device
[info]jducoeur
This week's Linkedin trawl turned up this interesting tidbit, from a startup that simply decided that supporting Internet Explorer was more trouble than it was worth -- and seems to be getting away with it.

It's hard to explain how subversively exciting this is to us long-suffering Web engineers. To the average user, a browser is a browser is a browser -- you might like the look of Chrome more, or a few of the features of Firefox, but most users simply do not give a damn. To someone actually programming the stuff, though, IE is an unbelieveable pain in the ass. The article isn't exaggerating when it says that supporting Internet Explorer can double or triple your development time, and produces the most horrendous bugs.

(Why? Microsoft's old corporate arrogance, mostly. In the early days, they quite consciously chose not to standardize, on the calculated grounds that, since they owned the OS, they could lock users into IE by being different. After that, it was mostly laziness, far as I can tell -- they just didn't *care* about the standards. It wasn't until Firefox and Chrome started to become genuine threats in recent years that they've finally cleaned up their act. IE9 is generally considered the first "good" version of Internet Explorer, close enough to the standards that you don't have to completely tie yourself in knots to support it.)

Personally, I find 4ormat's approach a bit *too* extreme, at least at this point: signs are that supporting IE 9 and 10 probably won't kill you. But it's good to see companies sending this message, and I hope we see more of it. Older versions of IE (*especially* IE6) are basically the bane of the Web, making life harder for every company. Even Microsoft has declared that they aren't supporting IE6 any more, and I think that, if I create any more projects myself, I probably won't support anything earlier than IE 9...