My switchel recipe

The Takeout recently posted a piece about hangover cures, and they recommend pickle juice because it’s got what plants crave.

Insanity! I say. Why drink pickle juice when you can drink switchel, the 17th century energy drink! It’s purpose-built for recovery from exercise or binge-drinking.

You can easily search for recipes; but here’s my overall process for making a week’s worth (where I have a small glass usually after working out).

You will need:

  • a few decently sized hands of ginger
  • a bunch of sugar, or perhaps agave or even molasses
  • apple cider vinegar – the fancy kind with the mother
  • maybe some citrus

From there it’s easy. Peel the ginger root (use a spoon, not some dingus) and then pulverize it somehow; I use a food processor. I usually end up with about 2 cups worth. Then add it to a simple syrup and simmer for as long as it takes for your house to smell like ginger syrup.

The potency here is something that you’re going to have to adjust. REALLY like it sweet? Use agave syrup. Want a more complex flavor? Use demerara sugar. You will maybe have to fiddle a little instead of just 1:1, and esp in relation to the ginger. For 2 cups of processed ginger I use 4-5 cups of water and a little less sugar, favoring demerara over white. If it’s not sweet enough, I spike it w/ some agave since it melts at room temperature with just a little agitation.

Once you’ve reduced it by a little bit and your house smells wonderful, set it aside and let it cool. You might add a touch of lemon juice, depending on the potency of vinegar you use.

Strain it into a vessel through cheesecloth. You will always end up with solids so if you somehow can’t manage any solids at all in your drink, sorry, don’t try this or spend the next month straining it through progressively finer filters.

Then the vinegar. I use about 3:1 syrup to vinegar, but I also use some really fancy crap I get at the hippie health food store so it has a really nice flavor and a little less sourness. You’ll have to play with it to get the right flavor for you. You’re looking for sour but not “I am drinking vinegar”. If you want “I am drinking vinegar” add more lemon or use a little of the un-fancy (strained/mother-less) apple cider vinegar.

Put it in the fridge. It lasts a long time but TBH I have no idea just how long bc I drink it before it has a chance to go off.

To Serve: I usually put about 5-6 tablespoons worth in a highball-sized glass (3/4″ depth? I dunno) and then fill the rest of the glass with seltzer. Again, you’ll have to work it out on your own as to just how much dilution you prefer. It’s calorie-dense (you made sugar syrup, duh) but it’s also extremely rich in what plants crave and all the good shit in ginger. When I had the flu I was drinking it 2x a day.

And yes, it’s an amazing hangover cure.

Jessica Jones is hard to watch

I think that Jessica Jones doesn’t quite get the recognition it deserves. It’s as powerful and affecting as Black Panther, because it deals with real things in our world and just happens to use the hook of the MCU, lest it become a generic Lifetime movie.

But god DAMN is it hard to watch sometimes.

S1 was all about rape and loss of agency, and each episode was difficult to get through because it was really no-holds-barred without being explicit. S2 adds to that by having everyone trying to “live past” all that while essentially letting their buried feelings and emotions become a time-bomb. Everyone has a second, internal life – pain, addiction, remorse, whatever – that’s constantly stopping them from being happy because they can’t work out how to resolve it. Maybe they can’t.

Unlike most MCU TV shows, they make violence infrequent; there’s not a “hallway fight” in every ep. Jessica lives in a world of normies – she doesn’t have to pummel 30 hardened Russian mobsters, just handle a jerk at a bar.

The downside to this is that when real violence happens it’s personal and often brutal. It’s far more affecting than watching Frank Castle gun down a room full of mobsters, because it’s one person with the specific and unilateral intent of harming another person. Frank is doing harm to a concept, personified by a room of extras with squibs; Alisa crushing the head of Jessica’s boyfriend, showing each bloody impact on the wall – knowing she could stop and maybe, just maybe, he’s alive – and then letting us see Jessica find his still-warm dead body, is a different kind of violence altogether.

We also get to see the personal kind of violence that comes from addiction: Trish gets hooked on the Super-Soldier inhaler and tricks Malcolm, now clean, to take a substance she knows is addictive. This is psychological violence and watching it was incredibly hard; I’ve seen people relapse right in front of me and I know what it does.

All of this makes it hard to watch, but it’s also kind of rewarding because everyone in this show has an arc and motivations and faces real stakes all the time. Compare with Altered Carbon, which I liked but to be frank, it was more like an elaborately produced version of an “Actual Play” session of a D&D game. Fun, stylish, action-packed, but also, I mean, you know everyone’s going to be OK (more or less) at the end.


Storytime: some of my worst interviews

I start my new job tomorrow, so I thought I’d write a little about some of the worst interviews I’ve gone through.

The worst of the worst (my fault edition):

I was interviewing as a junior sysadmin at a company located in Arlington. For some reason that utterly escapes me, I decided NOT to take the Metro from Vienna, but drive. This was not too long after I’d moved up to NoVA and well before there was such a thing as Waze or Google Maps. We had MapQuest but that still involved printing or writing down turn-by-turn, and had no notion of traffic or road construction.

As I said, at the time I’d basically never even been out of Fairfax “farther in” than the Vienna Metro stop (at the time, the most distant station for the entire suburbs and exurbs of NoVA). I had no idea about any landmarks anyone tried to give me.

I ended up in DC somewhere.

I was now doubly lost, because I needed to get out of DC and figure out how to get back to where I needed to be. I had no interactive maps or GPS and only a pre-Razr-era cell phone.

Also, related, it was summer and my car didn’t have AC and I was of course dressed up in a full interview outfit.

I managed to call them and tell them I got lost, which was sort of a bad way to start the interview but it did happen back in those days, so they were miffed but a little understanding.

Then, once I got near where I needed to be, I had to park. The closest parking I could find was over half a mile away or something. I was already incredibly late. I ran as hard and fast as I could in my stupid, uncomfortable interview shoes, and got there, something like 2+ hours past my appointed time. I was drenched in sweat, my feet where blistered from just a short jog, and I looked like a crazy person. The people who needed to talk to me had just bailed; clearly I was a fuck-up and not worth bothering with.

They gave me a glass of water and asked me some half-hearted question about Linux, and then thanked me for my time and escorted me out.

I didn’t get the job.

The worst of the worst (their fault edition):

I went through the interview process at a small web site that sells books and other merchandise. It consisted of a phone screen, a second phone screen with coding test, and then a final on-site coding test/culture fit/torture session.

In the first coding test, they FizzBuzzed me. Like literally gave me a test to do Fizz/Buzz/FizzBuzz. Opinions vary – some people claim it’s still a valid test – but I’ve done hiring of engineers and the only people who fail FizzBuzz are 1)morons or 2)people too lazy to do 5 minutes of searching for common programmer interview questions (which, if you think about it, are morons).

I guess I’m not a moron because I passed it and several other coding questions and got an on-site. Yay!

The instructions were simple: Arrive at 10, and you may dress casually (clean jeans and a decent shirt). I arrived early, as usual, and talked to the security guards to announce myself and tell them who my contact was. They called for them and I was told to sit down.

By 11 – after asking numerous times what the FUCK was going on – I was still just sitting in the reception area as numerous employees came and went. At around 11:30, someone came and fetched me, and escorted me to a huge conference room and told me to wait.

After another 30 minutes or so, a TV on the wall came on and someone started talking to me. It went very badly because whatever they were supposed to talk about, was based at least in part on some conversation I was already supposed to have had! So they tried their best and ended their portion of the interview, and said they would signal the next person to come and get me.

Still more time passes; it’s some time after noon and I was getting thirsty and hungry. Lunch was in theory on the schedule, but when?

Someone came to fetch me and was clearly, obviously, profoundly annoyed at having to do so. They then wordlessly carted me around several floors looking for someone to interview me. Everyone was incensed at the suggestion they stop their important day to talk to some asshole. Some of them had copies of my schedule for the day and were angry that it had been violated, and clearly were looking at me as the source of the problem.

I got bounced around a few tech interviews, and eventually managed to get a quick bite at their cafeteria. The tech interviews were, in my opinion, the worst type: they weren’t interested in how you thought, they just wanted to see how long it took you to get to the answer: “Given a string, find the longest palindrome, you have 30 seconds”. Several of the questions were so jive, I actually asked them, “is this a problem you’ve had to deal with in code before?” which further angered them.

I was already WELL over schedule and over, like, an hour and a half later than I was supposed to be there. I was a little tired, and a lot bewildered at the entire experience, and I had one more 45-minute whiteboard coding session to go. “Since you’re over, you could leave now, but it probably would make you score lower” was the official line. OK, fine.

Another angry asshole, another giant conference room with a whiteboard. He handed me a circuit diagram and wanted me to use OO to model the circuit and then implement it to produce the same, pictured answer.

I just stared at him. “This is a graph. It’s a directed, acyclic graph. You want me to model a DAG.”

“Yes, uh, I mean, model and implement whatever you think it is.”

I was furious. I was on time and had been treated like shit all day, and now this. “OK, answer me this. Is this a DAG? I think this is a DAG.” and I drew a quick sketch indicating the differences between cyclic and acyclic. “Am I even remotely right, here?”

He nodded and sorta grunted that I was. “Fine”, I said. “The next thing I’d do is hit Google to remind myself what the class model for a DAG looks like, because I’m tired and grouchy, every programmer I’ve ever met uses Google or Stack Overflow or even a file full of notes to do a lot of their work, and frankly my dude I have better things to do than this. I have correctly identified the problem which is, like, 90% of professional programming. I’m done. Thank you for your time.”

He looked like he wanted to hit me. He ran out and got someone. I was quickly escorted out without a word from anyone.

I didn’t get the job.

Applescript is unrelenting garbage, an ongoing series

From the docs for the “Standard Suite” command make:

Screen Shot 2018-03-07 at 2.43.23 PM.png


As written this says that new is a required, optional keyword to the make command.

The intention/actual meaning is that the type class is a required argument to the make command, and use of the new keyword is optional.

Also, for what it’s worth, with data is required (in BBEdit anyway), which another part of the documentation says is optional.

A brief, painful attempt to understand JSA

JSA is “JavaScript for Automation”, aka Apples attempt to embed JavaScriptCore into their Apple Event model.

The use case here is, roughly, “I know JavaScript and [love|like|tolerate] it, but I cannot under any circumstances be arsed to do anything useful in AppleScript, because AppleScript is easily one of the worst software platforms ever created by man”.

Seriously, AppleScript is extremely bad. I have in my life encountered a few people who loved it; and nearly 100% of them are not work-a-day programmers. AppleScript is purpose-built to confuse, annoy, and frustrate people who can chew through languages like Swift with little effort.

(I’m not trying to start a “you’re not a real programmer” thing; if you write a program – any program – you’re a real programmer! I’m just saying that the norms AppleScript adheres to are typically diametrically opposed the stuff we work-a-day programmers have deeply, deeply internalized as “normal”.)

Anyway! I decided rather than replace a bunch of light switches my wife has decided are no logner aesthetically pleasing, I thought I’d spend the morning trying to hack on some JSA. After all: how hard can it be? It’s JavaScript and I know JavaScript, and I have once or twice managed to fumble around with AppleScript until I accomplished something useful.

I can sum up the morning with the phrase, “Oh, for fuck’s sake”.

Continue reading “A brief, painful attempt to understand JSA”

Modifying Uncharted Worlds ship combat to resemble “The Expanse”

Uncharted Worlds has a Move called “Shields Up”. It’s a pretty simple move to resist damage. But ships in The Expanse don’t have shields. So what the heck do we do?

PDCs to max!
Attempt to shoot down incoming torpedoes; roll 2d6.

On a 10+, you eliminate the most dangerous torpedo attack pending.
On a 7-9, you defeat the incoming attack but the next attack takes -1 (include any previous negatives).
On a 6-, the PDCs have failed to protect and the torpedo hits.

But what about railguns?

Defensive Maneuvers
Roll, pitch, and move along the thrust vector; roll 2d6

On a 10+, you dodge the incoming railgun attack. Yay!
On a 7-9, take half damage.
On a 6-, you take full damage.

OK not exciting, but that’s about all they do in the show.

Alternate skill resolution systems

I was thinking today about different ways to implement a skill system.

The question I asked myself was: how often did I “fail” a “test” at work?

Ok, I get it, developing ecommerce software in Perl is hardly an epic adventure that our PCs regularly face, but there are parallels:

  • A fantasy group haggling with a merchant
  • A scifi group working on fixing the stardrive or whatever
  • A cyberpunk group fencing stolen data

So relative to those sorts of tests, I thought about the Powered by the Apocalypse “success with complications”. That’s pretty interesting, but not quite what I was thinking about.

The mechanic I was envisioning probably exists in many systems: it’s a question of time. How long does a task take to succeed?

This goes back to my thought about work. I rarely failed but some of the time, it took me a considerably longer time to complete the task. Still other times, I had a sudden flash of inspiration or just a solid work day and knocked out whatever was on my plate. Similarly, adding more people to a task often helped (and sometimes hurt – you can’t have 9 women birth a baby in a month).

I think this resolution method applies mostly to professional or vocational skills, not “instant” actions (although, if you’re a professional locksmith …).

Still, something to think about when working out how your PCs tackle a task.