iOS remains a cesspool of annoyance, but I can’t leave

I’ve been using iPhones since the very first one; I had one in my hot little hands a mere 2 weeks after it debuted. So I’ve seen nearly every shitshow come and go. I have an extremely high confidence that most egregious problems will be resolved, because they always have been, and it remains in Apple’s best interest to continue to fix the big problems.

The small problems, however, remain from release to release. I’m not sure they’ll get around to fixing them. Or, possibly, I’m “lucky” and the only person in the world with these problems.

Continue reading “iOS remains a cesspool of annoyance, but I can’t leave”

ICRPG Stress/Sanity: Take 2

The rough draft was a little far afield of the core ICRPG mechanics; it works great as a direct port, but it’s not ICRPG.

So, take 2:

  1. When you take stress, roll vs WIS (base difficulty 12)
  2. if you fail, you take all stress inflicted by the attack.
  3. If you succeed, roll d10 effort. Final “stress damage” is attack – effort.

Loot and other factors may protect against stress, offering a higher effort die.

The 0-100/101-200 scale and rules remain the same as before.

think that fixes the basic mechanic to be closer to ICRPG than before, while retaining the same kind of “attack/resist” system.

ICRPG Sanity Rules (rough draft)

By way of Darkest Dungeon, I drafted out an idea for Sanity rules for ICRPG.

Sanity (aka stress) is a “double scale”, from 0-100 and 101-200. The first segment is “temporary” and the second is “permanent”.

Every time you accumulate stress – even a single point – you roll d%. You want to roll over the new value if your stress scale (meaning, if you have a stress of 25, and you gain 10, you want to roll 35 or higher).

Success means you’re OK; nothing happens. Failure means you gain an affliction. Make a note at which score you gained the affliction; you might want to note it something like “(52) Hydrophobia”.

When your stress goes over 100, things change slight. You still roll to gain afflictions against d% (but on a 1-100 scale, eg stress of 125 equals a target of 25). You do not need to remember the score, though; you can note them something like “(permanent) fear of breakfast”.

Afflictions gained above 100 are permanent. Lowering your stress does not make them go away. At 100 or less, any afflictions are temporary and as soon as your stress level goes under the level at which an affliction was added, it goes away.

You may reduce stress by plain ol’ rest, prayer, carousing or other vices, or some other activity (noted on your character sheet). Rest removes d4 per week, more advanced methods d6. Advanced stress methods may also require coin; if visiting the brothel helps, you gotta pay. You cannot use ALL methods of stress relief; you must chose vice or virtue. Those choosing vice cannot pray to remove stress; those choosing virtue cannot engage in pleasures of the flesh to remove stress. Other methods (eg loot) exist to remove stress and restore sanity.

(You don’t have to pick virtue or vice ahead of time, but once you pick, you’re committed!)

As above, anything gained as permanent cannot be removed through regular methods. It requires loot, coin, or something special to remove afflictions gained as a result of permanent stress.

If your stress level hits 200, you die or go irrevocably insane; your choice.

TODO: List of afflictions.

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.