Things I haven’t blogged about: My shoulder injury

A year and a month ago (The day after New Years. My birthday), I drove to Falls Church to pick up some new suits. On my way back to my car, I took… a shortcut? over a curb. This curb was painted (thus slick) and it had recently rained. I slipped. I was holding my new suits with my right hand, and so put out my left to catch myself.

That decision (more like instinct)– I won’t say it was necessarily bad. Someone more experienced in falling down probably knows how to fall safely. I’ve successfully avoided the kind of situations where one learns how to fall safely (sports?) and extending my arm to catch my fall seemed like a reasonable idea at the time. I got up, but was in a lot of pain. Something was wrong with my arm– I assumed it was broken.

I called Patty, and she drove me to the emergency room. My experience of the INOVA emergency room was anticlimactic, and even almost.. pleasant. We waited in line a few minutes (during which I pulled out my phone, and let Matt and Travis know I was going to be “at least” late the next day, and called Mom), sat down for about 5 minutes, and was talking to a nurse and succession of doctors.

Someone quickly noticed that my shoulder looked “squared off”, a symptom of dislocation. After some discussion, I consented to having them try to “just” pop my shoulder back in place– which was a pretty freaky experience. One person held me down as the doctor pulled my arm into a position that felt wrong wrong wrong, and then: pop!

I don’t know if I actually heard a “pop”, or if I’ve embellished that memory with sound effects. It felt like a pop. If there wasn’t a popping noise, there should of been.

Either way, I instantly felt 1000% better.  I was smiling, laughing, and back on my phone providing my coworkers and family with an updated diagnosis. I let Patty take a picture.

IMG 0068

I left the hospital with a snazzy new sling and a recommendation that I see an orthopedic surgeon ASAP.

Leaving the hospital, we were faced with a Car Situation. I drive a stick shift, and Patty doesn’t. I was in no position to drive, and we had two cars we needed to get home. Thankfully, a call to Dana and Brian produced a solution (it usually does. My family is pretty great)– They helped us get home, and we traded cars for a few weeks.

I wore the sling for about a month,  and then graduated to physical therapy. After a few months of PT, the doctor decided I had gotten all of the benefit out of it that I would, and I was done. Fixed, or something like it.

In August, while doing something not particularly strenuous, I had (what I later found out was called) a partial dislocation– it was over in a second, and there was no pain. It was weird, but not too troubling.

And then it happened a second time a few days later.

The doctor decided that I need an MRI. The MRI indicated that I had a torn labrum– the piece of cartilage that keeps your shoulder in it’s socket. The surgery to repair the labrum basically involves anchoring it back to the bone.

The surgery went well. Being anesthetized was not at all like I expected– I had always imagined it being like a deep sleep, or being awake but cut off from your senses. It was a surprise to close my eyes, and then suddenly be several hours in the future, groggy and nauseous.

After that, it was much like the first time: About a month of wearing a sling (and borrowing Dana’s car), and a few months of PT, which I finished about a week ago.

Back up in the second paragraph, I said I wasn’t sure that the decision to stick my arm out was bad. This is because I’ve had time to imagine what could have happened: What if I broke my arm, instead of simply dislocating it? What if it was my right (dominant) arm? What if it was my face, or forehead that hit cement? There are a dozen or more ways this whole thing could have been worse.

I have developed some skittishness about falling, though: If the ground I’m walking on is the least bit slippery, I’m much more mindful and careful of my steps. I think about wearing a sling, and I think about all the time I spent in PT. It’s a fear of doing this whole routine over again. I really hope I’m done with it.

And, I don’t walk on curbs.

Introduction to the Culinary Arts at the Workhouse: Week 2

I’m enrolled in a 6-week cooking class at the Lorton Workhouse. Our second class was Monday, 1/6.

Class began with a discussion of the five mother sauces, and throughout the night we made two of them (hollandaise and a vinaigrette. We made a béchamel last week.), and some veggie chopping and other prep-work.

The night’s menu was:

  • Warm Bacon and Spinach Salad
  • Caramelized Onion Risotto with Roasted Tomatoes
  • Savory French Brussels Sprouts
  • Baked Salmon with Tarragon Hollandaise
  • A “cake” made of layers of crêpe and an amaretto crème anglaise, topped with a chocolate ganache (with more amaretto)

I may not have actually spent two hours stirring risotto, but it sure felt like it. Someone had to do it, and I was in the right (or wrong) place at the right time. Despite the arm-exertion, it was useful to see how a risotto builds up, and get a basic sense for when to add more liquid to the dish.

Making a crêpe was a good confidence-builder: I’ve tried it at home and failed miserably, ending up with something I’ll call “scrambled crêpes”. I tried it a home the next night, and promptly… scrambled some more. After about three or four failures, some tweaking of temperature levels and amounts of butter, and one pan switch, I made about a half dozen acceptable-looking crêpes. Score!


Fox DC on Comics

The Fox 5 story on comic books is now online– it’s more nuanced than I expected, but still pretty silly.

The biggest problem (and I hinted at this in my earlier post) is that stories like this treat comics as a genre and not a media. Criticizing comics on the DC relaunch is like judging the film industry on Deuce Bigalow 2.

There’s at least one extremely fair point in there, though: The advertisements in many “mature” comics do seem to target kids. That seems like a tacit admission that the publishers intend (or at least expect) them to end up in kids hands.

But why, after establishing that these comics aren’t for children, does Sherri Ly take them to a middle school “to see what kids think”? For the same reason she shows us comparisons between the older/more innocent and new darker/adult versions of Batman, Catwoman, and Starfire: it’s a forced attempt to manufacture outrage.

 

Relaunched Comics Using Sex and Violence To Sell: MyFoxDC.com

 

What the app?

If you’re on a phone, and click a link to something on the Mac App Store, this is the screen you get:

20120117-073647.jpg

This seems like a missed opportunity. At the very minimum, you should get information about the app– the same kind of web page you get when you (on a PC) click a link to an iOS app and don’t have iTunes installed.

Pre-debunking Fox 5′s Story on the Comics Menace, Based on the 15 Second Promo Ad that aired during Football last night

The promotional clip follows the usual local-news scare story outline : Here’s a hazy transcript:

  • [Picture of an Archie comic]  some nonsense about comics not being “what they used to be”, ignorant of history.
  • [successive shots of modern comics for adults] Sex! Violence! Some equally outrageous third thing that I can’t recall!
  • [clip of an interview of a guy in a comic shop]
  • Find out how to “K.O.” this comics menace, Wednesday at 5!

I think the report will imply that comics are somehow a uniquely harmful to kids, and worth Freaking Out about. They aren’t.

The only reason to single out comic books is that is that they’ve historically been an easy target. It’s a subculture that’s small and generally misunderstood, and there’s almost no risk to painting it as The Enemy of All That is Good and Wholesome.

The same problems exists across all media: There’s nothing (content, theme, or maturity level) you’ll find in a comic shop that you couldn’t find in a book store, library, game shop, cable TV, the multiplex, or THE INTERNET. We either live in a world where art can be made by and for adults, or we live in a world where everything must be appropriate for children.

 

 
update: Here’s the clip.

Slimming down in 2012 (but just my comics subscriptions)

I made my first trip out to Game On! Comics the other weekend. When I last posted about comics, I was thinking about quitting the “traditional” print comics world entirely. I haven’t done that, but I did cut down my subscription list.

First: the store is great– Louis and crew have created a really cool space there. There’s more room, and more color than the late, lamented Nova Comics. The location is bothersome for a number of reasons (and I don’t just mean distance-from-my-house this time), but it’s not worth getting into that.

Here’s what I was reading (Thanks to Dave at Game On for sending me my then-current list):

  • BATMAN INCORPORATED
  • DMZ
  • FABLES
  • FELL
  • GRAVEYARD OF EMPIRES
  • LIL DEPRESSED BOY
  • MEMOIR
  • NORTHLANDERS
  • SCALPED
  • SWEET TOOTH
  • UNWRITTEN

After taking a two or three month break, I found that I just didn’t miss most of them.  It’s like that moment in a book, movie, or show where you realize that you don’t really care what happens next. You aren’t invested in the characters or stories. You could keep reading (or watching), or you could get that time back and spend it in a way more productive or enjoyable.

The second path is usually best. Here is what I’m reading now:

Fell is technically on the list, as well– though it’s currently on something of a hiatus due to events in Ben Templesmith’s life.

Introduction to the Culinary Arts at the Workhouse: Week 1

I’m enrolled in a 6-week cooking class at the Lorton Workhouse. Our first class was Monday.

I expected the classroom to be a temporary space. The workhouse map shows a “culinary arts center” that isn’t yet complete, so I was prepared for this to be a makeshift operation.

And boy, is it makeshift:  less a kitchen or classroom than a bunch of folding tables and portable gas and electric burners in the lobby area of one of the Workhouse buildings. The pantry and most of the equipment are crated and carried back and forth between class and the chef’s home.

I’ll admit this was off-putting at first, but Chef Kathleen Linton does a great job making it all work. I got more out of the 30 or so minutes we spent talking about knife skills and specific cuts than I did from Culinaerie’s 3-hour “knife skills” course, mostly because of the personal attention: In a five person class, you get a lot more interaction with the instructor.

Beyond the knife skills, it was good to see how a roux is supposed to come together, how to moderate the thickening it provides, how to produce a béchamel, how to that turn it into a pretty delicious cheese sauce, and some tips for shopping for and cooking with olive oil. Most of this stuff comes down to trusting the evidence of your senses– but seeing it done (or having someone knowledgeable help) is a big deal. It’s like calibrating those senses so you can trust them.

The food we produced was great. Our first menu was:

  • Garden Vegetable Soup
  • Cheese Scalloped Potatoes
  • Ratatouille
  • Pan Fried Chicken and Spinach
  • Apple Tarts

I’m not sure it’ll happen in the next six weeks, but (with the help of a corporate donor) a real teaching kitchen is apparently coming soon– it’s exciting that the Workhouse folks are investing in the cooking program.

Next Week: More sauces!

Github + EC2: Integration Opportunities

Before the holidays, I was tasked with creating the first iteration of a tool that allows our developers to spin up their own private servers, in our Amazon Virtual Private Cloud. In my first sketch of the idea, I called it “Thinglauncher” and (to my delight and coworkers chagrin) they name has stuck.

Meanwhile, we are nailing down our installation of Github Enterprise– a behind-the-firewall version of Github.com, with all the things that make Github useful: code repositories, gist, wiki’s, and social features. Trust me, It’s awesome.

What follows are some ways the two systems work together.

Authentication

One of my first thoughts was: this new launcher tool should use Github as an login mechanism– it avoids two kinds of authentication pain that I’ve dealt with:

  • Making users remember a new password
  • and the alternative, making me figure out how to authenticate against something like  ActiveDirectory

Win, win. See also the “oauth as identity” section of How Github uses Github to build Github.

Key management

When you create a (linux) EC2 instance, you specify an SSH public key, which gets added to the authorized_keys file on the newly created server. As long as the corresponding private key is installed on your workstation, you’ll be able to log in.

Github uses SSH keys as well– once you add your public key to your Github account, you’re able to push and pull code from any workstation that has your private key. The Github API also exposes your SSH keys. This means that an app that authenticates against Github, can also grab a users public keys via the API. If what your app does is launch EC2 instances, the key can be grabbed from Github and used to launch the EC2 instance. You’ve allowed your user to log in to the newly created instance without making them create a new password or new SSH key.

More key management

If we are in fact creating servers for development work, then the servers need to be able to push and pull code to and from Github. We could expect users to do the whole ssh-keygen dance for each server, or to remember to upload their private key to each server they create. No fun, right?

After some digging, I found a handy recipe for generating new key pairs in Python. The first time a user creates a server, a new key is created and stored behind the scenes. The server template (What Amazon calls an “AMI”) we’re using includes Ubuntu’s CloudInit bootstrapping system. The new private key is installed in the users SSH configuration, and the public key is added to the users list of keys in Github. Users can log in to the new server, and push and pull to github just like they can on their local machine.

Code checkout during provisioning

There’s not much magic here: When the user creates a server, they can specify a repository and branch name that get checked out to the users home directory on the new server.

Server configuration in git

This part is a little magic. If the repository you checkout includes a file called ‘fabfile.py’ in the root folder, it assumes it’s a Fabric script, and runs it against your new server. This can be used to further customize the server for the code you want to run. For example, if you’re developing a wordpress theme, Fabric can be used to install PHP, MySQL, the libraries that integrate the two, wordpress itself, and import a wordpress database.

I hate to use the word “synergy”, but…

It was striking to me how all these nice integration points appeared. Whenever I scratched my head about how to solve a particular problem, the answer was usually “use this feature of Github” or “that feature of EC2″. I’m sure there are more that I haven’t discovered, yet.

This should all get less abstract, soon: we’re working on our process and policies to open source (really, public domain) all of our code, and releasing Thinglauncher is on the roadmap.