ICRPG: nearly perfect

So I picked up ICRPG a while ago, but haven’t had the time to really sit down and digest it. I’m pretty peeved I didn’t, because it’s amazing.

ICRPG can be thought of as 3 things:

  1. a broad methodology for tabletop gaming (“the index card method”)
  2. a set of rules, suited to but not required for, the above
  3. a bunch of actual gaming (tabletop and online) assets for #1

The rules itself are solid: a roll-over, d20, bonus-based minimalist system. If you’re used to a system like 5E or Pathfinder, you’re going to be a little lost – ICRPG has very little in terms of rules, preferring to let the basic mechanics and group decisions drive everything.

It also assumes you have a fair amount of existing material to adapt; there are plenty of good spell lists in 5E, after all.

Players/groups who expect great detail are going to be disappointed: there’s a basic “everything does the same damage” system, for example (shared by the brilliant WFRP). I consider it a feature, but some will see a bug.

The “index card method” is another great idea. In brief, it tries to bridge the gap between highly detailed tactical play and purely abstract theatre-of-the-mind. In my opinion it succeeds perfectly. Perfect foot-by-foot maneuvering and range calculation slows down gameplay in any group that’s not already committed to wargaming.

You can break down a large area into “sectors”, you can represent groups occupying said sectors, and still have “champions” and individuals occupying space. It works really well!

The art design and quality of the materials is excellent. I can see the argument that the art style may not be your thing – it’s kind of abstract – but I dig it and I think it’s really, really good value for the money. (If you want extremely detailed and specifically designed art, it’s going to cost you!)

Anyway, it’s really good and worth a look, especially at the price. http://www.runehammergames.com/index.html

vt100 development

With the exception of the web browser, every single piece of my job could be accomplished with a vt100.

I don’t want to go into too many details, but suffice it to say that we are running on a very specific platform, with extremely specific hardware and software requirements. Historically, developers were not provided with machines that could easily run lots of local VMs, preferring instead to build a server farm that resembled production and eventually parcelling out VMs to devs from that. There are also other reasons to eschew the “just run it all in Vagrant+Virtualbox” mode, involving database resources and other considerations.

I discuss (and overshare!) this here, if you’re curious. At the time – for the first year and change I have worked at $SALT_MINE, I’ve been strugging with this mode of remote mounts, sync, SFTP, etc.

In short, it sucks. I have managed to get a couple of Vim configs that work, and now I run basically 2 programs: iTerm 2 and a web browser.

All that hardware – we get nearly top-of-the-line Macbooks – is used to run 2 programs. I could do my job on a vt100, and I hate that.

As I’ve said elsewhere, this has almost always been the case, too! At $LASTJOB the core work required an actual goddamn computer, you couldn’t even use a VM (don’t ask, it was complicated). At the job before that, there was no reasonable way to run one of our products on anything but a real computer of a very specific make, model, and OS (although in fairness that involved licenses as much as bytes).

Every now and then I look at companies like JetBrains and wonder, who actually gets to use those tools? Who gets to do, I dunno, some sort of Java or .NET dev with a fancy IDE that pushes to the cloud, or something? Who gets to use fancy database admin tools? We have to hide our production DBs behind 100 layers of security (a very fancy logging proxy, among other things).

I have managed to get a working Linux config that does the same thing without any distractions: it’s just OpenBox and Terminator. There’s not much else. I’m missing a few nice tools – LaunchBar and TextExpander are the most strongly felt, but I’m sure there’s replacements.

I’m still using a glorified vt100 to this day. I hate it. Is this all there is?

Missing features in the iOS Activity app

I’m sort of amazed we’ve made it as far as we have without these two features being built in:

Sick days. Sometimes we get sick! It would be pretty great to not lose a streak because I have a really bad cold.

Rest days. This is the big one. One day a week, it would be nice if my calorie goal could automatically be a little lower. It’s very common for workout programs to have a day per week that is to be at a lower intensity.

There’s almost certainly apps that can incorporate this somehow – although I’m not sure how to reset the calorie goal for a single day, one assumes there’s an API for it.

The lock-in we choose

Hackernews had a link to a piece about someone moving to a password locker called Bitwarden.

It’s interesting because it illustrates the weird state we’re in with platforms today.

First, this bit:

Meanwhile, AgileBits, the 80-person company developing 1Password, has been pushing their new hosted, subscription-based model for 1Password going forward. Instead of users being in control of their data files, 1Password will store them on AgileBits’ servers and users pay a monthly subscription fee for the privilege, forever.

I fail to see how the staff size of AgileBits has anything to do with anything. It feels ad-hom; how DARE they not be a scrappy little 2-man startup! How dare they have a support staff, enough junior sysadmins to have 24/7 coverage for their new web service, a full-time graphics and design team to cover all the platforms they support, and whatever else it takes to run their company the way their principals want.

Anyway, yes, the subscription-and-stored-on-our-servers model was, and is, very concerning. I am still using iCloud sync, because it has worked very well for me and I did not want to be an early adopter of stuff with my passwords.

What gets me, though, is this:

… there is an issue of lock-in and now having to make my OpenBSD hacks work …

My dude.

AgileBits was, as I recall, founded as a company whose primary platform was the Mac. They don’t even mention Knox or other apps anymore. For a long time, even Android was a second-class citizen; I haven’t used Android in a while but when I last did, it didn’t even have proper 1Password support; it had some read-only nonsense.

Think about that: Android installs outnumber iPhone by rather a large margin and they didn’t bother with it.

In short, my dude, you chose to drive a car that needs leaded gas and you’re mad Pep Boys isn’t going to sell you the right additive.

They are a Mac software company, who also makes a port to Windows; they are an iPhone app company who ported their app to Android. They give 0 fucks about OpenBSD on the desktop, because supporting all 9 OpenBSD desktop users will not help pay their mortgages.

The point, here, is that we all chose a kind of lock-in. Every choice we make in software and hardware platforms ties us to an ecosystem. There is this pervasive myth that F/OSS will free us from lock-in.

Bullshit. It frees us from the woes of decisions made in boardrooms based on spreadsheet calculations for 3 fiscal quarters from now; but it locks us into the whims of hobby projects, volunteer support, trends, and more. Just about everyone in a Mac uses 1Password, but with my office as a small sample set (plus the Hackernews comment section) all the F/OSS community gets is the paradox of choice.


Explaining the Commandments of “New American Theology”

Here’s a good example of where we are these days:


Moore is lying; he is “bearing false witness”. For a guy who claims to be pretty much the second coming, you’d think he’d maybe know that lying is bad?

Except, it’s not. I think modern American Christians have rewritten the 10 Commandments into something like this:

  1. Thou shalt have no other gods before me, excepting money and power
  2. Thou shalt not make unto thee any graven image, unless granted to you by money or power
  3. Thou shalt not take the name of the Lord thy God in vain, or at least try most of the time
  4. Remember to keep the Sabbath Day, to keep it holy, except for pro football and other leisure activities
  5. Honor thy father and thy mother
  6. Thou shalt not kill unless it’s a black kid, or maybe someone who angered you, and also it’s totally OK to have vivid murder fantasies about your neighbors
  7. Thou shalt not steal except through legislative or legal loopholes
  8. Thou shalt not bear false witness against thy neighbor unless it impairs your pursuit of money, power, or leisure, or something you want; and if you convince yourself it’s true then it’s not false witness
  9. Thou shalt not covet thy neighbors wife, unless thou dost have the scratch for a settlement
  10. Thou shalt not covet thy neighbors servants/animals/anything else, because wow go get your own, jeeze

About the only one not broadly re-interpreted in the fun world of late-stage capitalism and the era of Donald Trump is #5. Good job, team!

To save Twitter, we must destroy it.

So many people had an experience like this. Twitter was fun, fast, easy to use; and brevity is the soul of wit. If you were a programmer, you’d often learn a new platform or language by writing a simple Twitter client; and tons of really smart people were writing interesting software that took advantage of all the new toys in our toy box, with Twitter as the base.

Fun times.

It got even better, for a while. Twitter replaced RSS, for many; a scan of your feed let you know where your friends were, what important software updates were released, and everything else you could want.

Yeah, there was the Fail Whale and porno bots but it wasn’t any worse than we’d seen already. And we had the Arab Spring! People got work by telling jokes on Twitter. We had Weird Twitter and Scottish Twitter and …

But then came GamerGate, followed shortly by their brothers in arms the Alt-Right, and Russian trolls, and now the dullard in the Oval Office.

Fuck Twitter.

The best thing to do to “fix” Twitter is to leave. It’s a white supremacist web site. It’s not getting better.

The solution is already there. RSS is still good, and usable. You can support independent media, like many good podcasts, instead of supporting a company that thinks that giving more characters for racist bile is the solution.

Everyone bitches and moans about walled gardens and “closed platforms” and “you are not the customer, you’re the product”. So take the air out of their sails. Stop “microblogging” and write real thoughts. Read long-form journalism. The internet has given us the tools. Use them.

On Process, and software development

Today I had a chat with a coworker about the process we use at work; the method by which we develop software, from conception (“The site should be blue”), to doing the work (filing a ticket, writing the code to make the site blue, ensuring it is the expected share of blue), to various legal and compliance requirements (“it must be documented that on such-and-such a date, so-and-so did change the site to blue, signed by someone other than so-and-so”).

In short, we hate the process.

On the one hand, it’s cumbersome. Most processes are. They are build from small parts to a Big Thing, because one time, something REALLY fucked us, and That Must Never Happen Again. So layers got added, workflows got created, and before you know it, you need knowledge of the inner workings of a complicated state machine to make the site blue.

There was a time when you could just do it, man. It was great. But now it really optimizes for the common case, and we all know what happens then.

Anyway, what got me thinking was, what’s really at fault, here.

I think there’s a couple of big problems.

As an industry, we aren’t entirely sure what the hell it is we’re doing. There is a wing of the software industry that thinks we’re some kind of code-poet-ninja-rockstar who makes these beautiful and amazing things because it’s what drives us.

Me? I think we’re just skilled labor in an information economy. We’re assembly-line workers. And that’s good: skilled labor built this country. We should reward it! We should revel in it! That used to be a fucking awesome job, that people aspired to.

But the thing about those industries was, for a long time the pace of chance was slow. Carpenters had the hammer thing settled long before most of my ancestors came about. No one showed up with a tack hammer expecting it to be useful to build a building.

Our processes don’t protect us from outside interference. They don’t give us certainty about what it is we’re doing and why.

Building codes let every tradesman building a building know, to some degree of certainty, that when followed the pipes won’t burst, the sockets won’t catch on fire, and the support beams will hold. They’re why flood walls work and why buildings survive earthquakes.

It’s a process no one likes to follow, but it moves at a pace people understand; can be comprehended and relied upon for the duration of one’s career; and has visible results.

Today a bunch of code broke because our fragile human meat made mistakes that, in retrospect, may have been impossible in the common case to prevent. A couple of jobs ago, we changed fundamental pieces of our software at least twice; last job, we went tripled the number of languages you needed to do things at work in the space of a month.

It’s madness.

We are not wizards, ninjas, rock stars, or artisans. We are the skilled labor of an information economy; a noble profession, and one that benefits from a slower pace of change.

Our processes should reflect that. They should not just protect us from lawsuits or pass a perfunctory compliance inspection, they should provide a bedrock upon which to make solid decisions when tired, or confused, or hurried, or unsure.