Mr. E tag:erik.ogan.net,2008-03-04://2 2020-06-23T14:49:13Z Just Add Silent ‘E’ Movable Type 5.04 Git Branch Name Completion in Zsh tag:erik.ogan.net,2020://2.5173 2020-06-21T22:44:34Z 2020-06-23T14:49:13Z Speaking of git esoterica (and my Git Fundamentals talk), one of the questions during Part 1 was “what about the new switch and restore commands?” The … uh … what now? So I did a quick search and, lo and... Erik Ogan http://erik.ogan.net/ Speaking of git esoterica (and my Git Fundamentals talk), one of the questions during Part 1 was “what about the new switch and restore commands?”

The … uh … what now? So I did a quick search and, lo and behold, they were added late last year in version 2.23. The goal is help new users confused about the two most common uses of git checkout: switching branches and restoring files from the index, which admittedly have nothing to do with one-another, why are they managed by the same command?[*]

I see this as a definite positive development, and I wanted practice with them, so I could promote using them when I’m teaching folks, because I’m sure it will reduce confusion and improve velocity. I knew I had to go cold-turkey, so I deleted my git co alias and added a git sw alias to replace it.

It worked well enough, though I am still overcoming years of ossified motor-memory. But there was one glaring omission: my shell stopped tab-completing branch names. A minor annoyance, to be sure. But I didn’t realize how much I used it until it was gone. So I eventually went digging, and discovered this patch that added these commands (and a few other updates for 2.23) to zsh’s git completion.

I was not looking forward to trying to apply a patch across versions when I stumbled upon items in the base _git file that reminded me that zsh completion is handled via autoloaded functions. 💡 I might be able to extract them into files in my own autoload directory, and then I don’t have to muck with applying the patch at all!

Long story short(er), it works perfectly! You can drop these files into any directory in your zsh $fpath and if you open a new shell[**], git restore will tab complete command-line arguments and file names in the index / staging area, and git switch (or any aliased you’ve added to it) will complete its command-line arguments and branch names. Huzzah!

 

[*] Fun fact: in the very early days of git they were different commands, git checkout only switched branches, git checkout-index was how you restored files. But there was a clamor to make things “easier,” and the user experience never recovered. I see the new names as a huge step forward.

[**] Or run autoload -U _git-switch && autoload -U _git-restore in a shell you do not want to close.

]]>
Introducing reinstate-revert-revert tag:erik.ogan.net,2020://2.5172 2020-06-21T15:39:49Z 2020-06-21T22:41:16Z This may be somewhere in 4D space, since it’s a bit of a corner case on a corner case, but I wrote a pre-commit hook plugin to handle a bit manual work required when dealing with git reverts. Introducing: reinstate-revert-revert.... Erik Ogan http://erik.ogan.net/ This may be somewhere in 4D space, since it’s a bit of a corner case on a corner case, but I wrote a pre-commit hook plugin to handle a bit manual work required when dealing with git reverts.

Introducing: reinstate-revert-revert.

It automates the manual leg-work I would do when reverting a revert commit. Typically this is when I’m reinstating a merge commit that had to be reverted, usually as the first step toward fixing the bug that caused the initial revert in the first place.

This is definitely not something that comes up very often, but the amount of effor required was just annoying enough to make me want to automate it. It only took me, er, several years to sit down and do it. This was inspired by my most recent presentation of my two-part Git Fundamentals talk.

Hopefully it will save someone else a bit of time as well, and the savings can compound.

]]>
Smoky Instant Pot Black Bean Soup tag:erik.ogan.net,2020://2.5171 2020-04-21T01:23:46Z 2021-05-13T05:00:20Z I love this recipe because it’s dead simple, goes from dry beans to delicious soup in a little over an hour, and most of that time is unattended cooking! Fortunately for all of you I’m not a food blogger worried... Erik Ogan http://erik.ogan.net/ I love this recipe because it’s dead simple, goes from dry beans to delicious soup in a little over an hour, and most of that time is unattended cooking!

Fortunately for all of you I’m not a food blogger worried about SEO, so I don’t have to ramble on to a certain length and can skip straight to the recipe.

]]> Smoky Instant Pot Black Bean Soup

(The starting point for this recipe came from The Little Spice Jar, but I’ve amended it a bit.)

Note: this recipe only makes a small amount. This soup is delicious, I strongly suggest at least doubling it. I generally triple it when I make it.

I keep thinking that I should try adding carrots & celery to the onions and make it a proper mirepoix, but I haven’t done that experiment to see if I can tell the difference. The broth & bullion probably take care of that, anyway.

Ingredients

  • 2 Tbsp (30 ml) olive oil
  • ½ small yellow onion, diced
  • salt, kosher ideally
  • 4 cloves of garlic, minced
  • 1 tsp (5 ml) sweet, smoked paprika
  • 1 tsp (5 ml) ground cumin
  • 1 tsp (5 ml) adobo seasoning (note 1)
  • ½ tsp (3 ml) dried oregano. Mexican would be best, but don’t sweat it.
  • 1 bay leaf
  • 1½ tsp (8 ml) Better Than Bullion Roasted Garlic (note 2)
  • 3½ cups (825 ml) water or vegetable broth (note 3)
  • 8 oz (225 g, a bit more than 1 cup if you lack a scale) black or flor de mayo beans

Choose

Or

  • 1 jalapeño pepper, seeded and minced (pickled is fine)
  • ¼ - ½ tsp (3 ml) cayenne pepper
  • ¼ - ½ tsp (1-3 ml) liquid smoke

Directions

Aromatics

  1. Set the Instant Pot to sauté, add the oil, wait until shimmering.
  2. Add the onions (and jalapeño, if using) with a hefty pinch of kosher salt to sweat. (Less hefty if table salt)
  3. Stir often until the onions are translucent and starting to brown. Every recipe ever written lies about how long onions take to cook. Say 5-20 minutes. Just watch them. You’re almost at the hands-off phase, I swear.
  4. Add the garlic cloves and stir frequently for another few minutes.
  5. Add the spices and stir for 10-15 seconds until fragrant

Pressure Cook

  1. Add the liquid to the pot to keep the spices from burning, followed by all the other ingredients.
  2. Cover & seal the Instant Pot
  3. Cook on Manual High Pressure for 42-45 minutes. Older & organic beans may need longer (note 5)
  4. Allow a 10 minute natural release, then a quick release
  5. Blend to desired consistency with an immersion blender, holding some in reserve if you desire. (You can also just use a wooden spoon if you like it really chunky or don’t have an immersion blender.)

Serving

  1. If serving immediately, let sit for at least 15-20 minutes to thicken. It will also thicken quite a bit more in the refrigerator overnight.
  2. Top with whatever you want. I’d suggest some combination of a squeeze of lime, pico de gallo, crema (or sour cream in a pinch), chopped cilantro, and/or (Casa Sanchez Thick & Crispy) tortilla chips. Or plain. The soup stands on its own pretty well.

Notes

Note 1:
You can certainly buy adobo, but if you don’t have it, you might have the component parts in your spice rack already. The first time I made the soup I discovered we were out of adobo, but found a recipe online. The homemade was better than what we’d been buying. ↩︎
Note 2:
Any Better than Bullion flavor will work here, but I love garlic and this is pretty much the only way to not have the garlic flavor completely disappear in the Instant Pot. Other bullion would probably also work, and if you’re using a strong broth this may be optional, but I have never tried it that way.↩︎
Note 3:
Some combination of broth & water works fine. When I’m tripling the recipe I generally use 2qt of broth topped off with 2 cups water. ↩︎
Note 4:
This smoked habanero sauce is tha bomb! We discovered it on our trip to Belize last year when we did a sauce tasting at their San Ignacio location. I’ve been told it can be found at Mollie Stone’s in Oakland (the real one). It’s almost certainly available online. You will not be disappointed if you can score some. If not, the alternative recipe is what I used to make before we went to Belize. It’s a different soup, but still tasty. ↩︎
Note 5:
The first couple times I made large batches of this soup the beans were still not done after 45-46 minutes. Now I just set it to 48 minutes and blitz the shit out of it with the immersion blender when finished. Get to know your beans, they’ll thank you. ↩︎
]]>
Comment to the FCC 2: Electric Boogaloo tag:erik.ogan.net,2017://2.5169 2017-07-14T02:11:29Z 2017-12-13T21:36:42Z [As the potted petunias said: “Oh no, not again.” I am giving myself a birthday gift: a free and open internet. You should join me!] Commissioners:I urge you to keep the current Title II classification for broadband internet.Over past 20+... Erik Ogan http://erik.ogan.net/ [As the potted petunias said: “Oh no, not again.” I am giving myself a birthday gift: a free and open internet. You should join me!]

Commissioners:

I urge you to keep the current Title II classification for broadband internet.

Over past 20+ years I have had the great fortune to make my living building both applications and the “plumbing” on the Internet and what has become the World Wide Web. I have seen first hand how innovation works in this industry. The disruption that takes the entire network by storm one day becomes the de facto standard the next. 

I am deeply concerned about the recent proposed rule changes regarding the neutrality of network providers. Allowing last-mile providers to charge for “premium” access to their subscribers will cause two separate, deleterious effects: It will harm innovation, and it will widen the digital divide in this country.

First, no one can predict where the storms of disruption will form. ISPs are trying to maintain a delicate balance providing the best service to their customers. Disruptions, by definition, wreck that status quo. Allowing the ISPs to pick winners (at best, and giving priority to their own offerings at worst) gives a huge advantage to entrenched incumbents. It would be disastrous to the innovation that has been driving one of the shining stars in our economy of late, and one that has been sorely needed.

This is doubly disastrous for the majority of Americans for whom their ISP is a virtual monopoly. They cannot vote with their wallets and move to a provider more willing to allow the disruptive traffic the innovative service requires. They are stuck with whatever their ISP deigns to offer.

Second, allowing ISPs to double-dip and charge both subscribers and content/service providers for the privilege of connecting will exacerbate the digital divide in this country, and will mean that only the relatively wealthy consumers will be able to afford a decent Internet experience. It will also further widen the divide between the US and the rest of the developed world, where we already pay more for much slower connectivity.

Finally, and perhaps most distressingly, it will have a chilling effect on the freedom of expression that is central to a free and open society.

You have the power to change all of this. For these reasons and more, I urge you to keep broadband internet classified as a Title II telecommunications service, and keep access equitable for everyone.

Thank you for your time.

Erik Ogan
San Francisco, CA

/cc:
Diane Feinstein
Kamala Harris
Nancy Pelosi
]]>
An Introduction to Roleplaying Games tag:erik.ogan.net,2015://2.5168 2015-03-02T20:59:30Z 2015-03-03T17:32:35Z Erik Ogan http://erik.ogan.net/ [Note: A friend who has heard me lament the popularity of D&D and the relative obscurity of other, “better” games asked the question: “So: my group is thinking about starting to play a roleplaying game. What should we play?” These answers are a bit tailored to her, and mostly tailored to the starting player.]

I am curious what the rest of my RPG-steeped friends think of these as introductions.

Hey, so I’ve been thinking about your “what are those better games you like to talk about?” question, and I wanted to expand on my answer. I still think (TL;DR) “just start with D&D” was fundamentally a fine answer, but I also wanted to give you some context to make a more informed decision.

(It appears I went a little crazy writing this. Your question gave me an excuse to write down thoughts that have been rolling around in my head for a while. I will likely post it (edited) online for others to tell me where I got it all wrong.)

It looks like you’ve jumped the first hurdle, you have found a group of people you like who also want to play.

Out of curiosity, do you have an experienced game-master? (GM, D&D call them a Dungeon Master, DM) It is certainly not required, but if not, then it is even more important (if only at the beginning) that you choose a game with a rich back-catalog of adventures & campaigns. The neophyte GM will have enough to learn and worry about without adding world-building to the mix. (Though some folks take to world-building like fish to water, I still think it’s important to set the whole early experience up for success for everyone.)

Even if your [DG]M has experience, but has not done so in decades, it probably makes sense to keep things simple at first and start with an off-the-shelf adventure. (but, of course, YMMV).

Playing RPGs require a commitment, in materials, in learning, in time. But this does not have to be the only game you ever play. No matter what you start with, you’ll learn mechanics and ideas that will carry-over to other games if you ever decided to try something else, and you’ll hopefully learn which parts of the game appeal to you and which ones don’t.

Which brings up another point about RPGs: they appeal to people for different reasons. Some folks want to solve puzzles; or tell a good, entertaining story; or embody a character very different than themselves. Others love the tactical and strategic planning of combat, or more generally to play around in an internally consistent world simulation. There are also folks who just want to bash heads as a way to blow off the stresses of life. And then there’s the friend who always just wants to play a ninja, regardless of the setting. :)

Obviously different players will embody those archetypes in different amounts over time. And the best games will have something for each of them, but in differing quantities. Of course, some players are very particular about their preferred ingredients, and may not enjoy a game that doesn’t conform to their notions. (Even if they are unable to articulate why.)

So with all that out of the way, what are some of the things you could play?

[Fair warning: Some of the games I suggest below I have not played since you were in swaddling clothes, the information given may be woefully out of date]

Dungeons & Dragons

There is a reason that the granddaddy of them all is not just still around, but is far and away the best known RPG of all time. It has grown from its antecedents in tactical war-gaming, and beyond its origin as “LotR with the serial numbers filed off.”

It has something for everyone in a good proportion. If it did not, it would never have survived this long.

Some might quibble on the fact that it seems to favor combat over role playing, but that is not an insurmountable hurdle.

Moreover, in the latest (5th) edition, they have done a lot to streamline some of the more Rococo excesses of the 2nd-4th editions. I have come around to it as a decent system by which to introduce new players to the joy of roleplaying. That is the main reason I suggested you start there. It’s kinda the Coca-Cola of RPGs.

… Umm … ?

So, given that, why did I rail against it so much (and, though you did not know this, for so long)? I think there are a few reasons:

First and foremost, the progression of the game is one gigantic power fantasy. Characters may start out puny (and more recent editions have (IMNSHO, correctly) shortened that curve, too). But every. single. thing. they do after that makes them stronger and more powerful. That one-way trip to godhood was appealing as a wimpy, largely powerless 13 year old. But that power progression on rails gets tiresome. I wanted more variation in dramatic progression. But as a first game, nobody’s been in that Skinner Box on rails over and over yet. For players learning rules, there is some comfort in knowing that while there may be danger to overcome, they don’t need to worry about making a bad decision in their character advancement.

Next, the concept of “leveling up” had another flaw in my mind. Even allowing for learning curves having natural cycles of plateaus and rapid development, the *poof* you suddenly have a whole bunch more abilities began rubbing me the wrong way.

Finally a bit of geek heresy. Beyond the magical trappings, the high fantasy setting doesn’t seem to appeal to me as much as it does to others. [GASP] When I swore off D&D I focused on the above and was highly critical of the iconic characters dealing as much damage when they were an inch from death as they did fresh and ready for battle. But that is high fantasy. I had also grown weary of the Murder-Hobo flavor to most D&D campaigns. (Whomp monsters, get gold, lather, rinse, repeat).

In short, I was one of those aforementioned players who knew what he didn’t like, but had a hard time articulating it. I misconstrued my own tastes for flaws in the system. It’s taken the intervening decades of maturing and occasional rumination to piece together everything I said above.

A Special Word About Pathfinder

Note: you might want to skip to the next, actual recommendation and ignore this part of the ranting (or come back later).

Pathfinder started as a modified (and many people feel improved) version of D&D 3.5. First, some positive notes about Pathfinder: It has a thriving community behind it, and Paizo (the publisher) has embraced the digital revolution: If I understand that correctly, it means all of the rules and supplements are available in searchable, cross-indexed form and/or tablet apps. If true, that’s a really, REALLY nice feature!

However, it is still, at its core, D&D 3.5:

AD&D 2nd Edition was, at least in some part, a reaction to the point-build, skill-based systems that took the RPG design world by storm in the late ’80s-’90s. It had plenty of other Second-System Effect oddities, as well. I distinctly remember flipping through some of the books and saying “Meh. Too little, too late.”

3rd Edition simplified some of the mechanics of 2nd Edition, removed some arbitrary limits and restrictions, and took the character specialization to new heights. Now most questions are resolved by rolling a d20 and adding your bonus. Sounds simple, right? How many bonuses would you like to add? You have a plethora from which to choose: flanking, unarmed, 2-handed, multi-strike, zippity-do-dah.

It is hard for me to talk about the effect that had without resorting to terms like munchkin, or the less pejorative, but still dismissive power-gamer. The freedom to tweak every aspect of a character, and multi-class to wipe out all the hindrances inherent in your class(es) can bring out these tendencies in just about anyone. Looking for the perfect storm of abilities that stack in ways that rain righteous, fiery death upon ones enemies, while making yourself impossible to be touched and to hell with the story, or even anyone else’s fun.

But, look, just as it is possible to write bad code in any language, a system appealing to the munchkin/min-maxer/power-gamer set does not mean that every game played with it is fraught with nothing but that style of play.

I am certain there are large swaths of people that would take umbrage at much of what I have to say about “f20”[*] gaming. But that’s just my take.

Call of Cthulhu

CoC sits at the other end of many of the spectra from D&D (though not all of them, it is still a product of the early ’80s in RPG design)

Set in the malevolent world of H.P. Lovecraft’s mythos against the backdrop of the real, roaring 1920’s. This is the granddaddy of all horror RPGs. Rather than building an iconic, heroic character on their way to being masters of the universe, you play occult investigators fighting a pitched battle against horrors from the beyond on their way to the grave or the asylum. The deck IS stacked against you. In fact, the more your character knows about what is really going on the lower the cap on their Sanity (a core character statistic) becomes.

This is not a game for murder-hobos. This is a game of slowly piecing together a series of clues and trying to keep the world safe and your sanity intact (probably in that order).

Another difference between Call of Cthulhu and your typical high fantasy game is that a frontal-assault on enemies will almost certainly backfire because: a) your Professor of History and Mythology character has likely never handled a gun in his life, and is much more likely to shoot his friends than any of his enemies; b) discharging a firearm within city limits is a great way to bring in the authorities in a hurry and with them come inconvenient and uncomfortable questions about what, exactly, it is you think you are doing, and where did all that blood come from? c) most of the horrors you are trying to keep from being unleashed on the unsuspecting world are not affected by corporeal weapons anyway. Happy shooting!

Why would anyone want to play a game where failure is the likely outcome? I think it appeals to the same part of us that became programmers. But yes, horror roleplaying is not everyone’s cup of tea, and you definitely need buy in from all of the players before starting this type of game.

I would be remiss if I did not mention that while the game itself is relatively safe, Lovecraft himself had some - unfortunate - politics and even much more unfortunate rabid xenophobia and virulent racism. It could be (and probably has been) argued that some of his horrors were metaphorical, but you can read his fiction without being aware of those elements (Or I could as a sheltered New England teenager, not far from his Providence home.) However, even if it is all in the public-domain now, some folks may be squeamish about playing in his worlds for reasons other than those indented.

Trail of Cthulhu

If investigative instead of monster-whomping gaming sounds appealing to you, but you are less sure of the cosmic horror, I would suggest Trail of Cthulhu. The system allows you to pick a more pulpy style of game instead of the purist horror genre. Full disclosure: I have not actually played Trail, but I have a great respect for designers Kenneth Hite and Robin D. Laws (more on him in a bit)

In fact, I might recommend ToC over CoC even for traditional horror gaming. I have been listening to their podcast, and their discussions of Robin’s design of the Gumshoe system makes me think it’s an ideal system for this type of game. I also recently discovered the “Dreamhounds of Paris” supplement where you play surrealists (including Dalí, Man Ray, et al.) roaming Paris and HPL’s Dreamlands trying to save the world while also trying to remake it. It’s like they wrote the material for ME! (Ask me why my laptop is named Celephaïs.)

Delta Green

Delta Green is a more modern (1990s last I saw, but presumably updated) setting for CoC. The premise is that after the government raid of Innsmouth (from HPL’s The Shadow Over Innsmouth), the US Government realized the mythos was a big problem, and formed Delta Green to combat it. Your PCs play DG agents working in other departments (FBI, CIA, CDC, ATF, TLA) who are trying to keep a lid on the problem and not let the rest of the country know what is going on.

Think X-Files-esque (though I am fairly certain DG was published before it aired). One advantage of DG is that it answer the question of “why would this mismatched collection of strangers talk to each other, never mind help one another?” Another advantage is that it is probably easier to draw some folks into a DG rather than a standard CoC game because they get to play secret agents.

Shadowrun

Oh, hey, I just realized that it might appeal to you as someone who enjoys NetRunner! (He says, moving it up the list.)

This game combines cyberpunk, urban fantasy, and conspiracy.

The setting starts out as a typical cyberpunk landscape: Mega-corps use their near-infinite power (including private armies, corporate policies more powerful than public law, etc.) to control most of the world and its population. Cyberware and bioware allow normal people to perform superhuman feats of all kinds. Most users of The Matrix jack-in via direct neural interface.

And into that dystopian world, magic returned. In the far-flung year of 2011 (Man, that makes me feel old!) Magic returned to the world, splintering the human race as many of them regained suppressed traits that came out as fantasy races. Dragons and other fantastic creatures also returned, and native ceremonies suddenly packed a wallop. Magic and ’ware can do things we once only dreamed.

Between the cracks of society the players are Shadowrunners: expendable sub-contractors who extract data, artifacts, and people from rival corps and governments.

Like the cyberpunk stories that inspired it, Shadowrun is dark and dystopian world, with high stakes and personal risk.

(I should note that earlier editions of Shadowrun had some - let’s just call them bugs - in some of the rules (combat, in particular had some break points), but I would be surprised if that were still the case.)

Savage Worlds

Savage Worlds is a generic system for pulpy adventures (think Raiders of the Lost Ark, or even Pirates of the Caribbean). I generally dislike generic systems, but Savage Worlds does not try to be all things to all people like GURPS[**] or even the abortive attempts to port all games to d20 a decade ago. [*shudder*]

Its mantra is “Fast, Furious, Fun!” and it strikes a nice balance of providing a framework to have fun and getting out of the way. The edges and hindrances give characters some depth, providing good hooks for role playing. And the exploding dice as well as the distinction between Wild Cards vs. random mooks really works well in a pulpy setting. I want to talk about two settings in particular:

50 Fathoms

This is a sword & sorcery setting with swashbucklers instead of knights. If you have any desire to play pirates, this is a good place to start.

The players can play pirates who, through a terrible storm, somehow found themselves in Caribdus, a world of islands left after 3 witches drowned the world with a curse. Or they can play one of the more fanciful races the visitors from our past meet along the way.

Necessary Evil

More geek heresy time: I never really got into comic books. I loved Sandman and Watchmen, as well as a handful of other graphic novels, but beyond those …

Given that, superhero games are even less appealing to me than high fantasy. ;). And yet this setting has a twist that I love: it’s your typical superhero world, or it was before the alien invasion came down and wiped out all the superheros. Now the only ones left to save the world are the supervillains.

That conceit makes the world interesting to me. I still am not itching to play it, but if everyone around me wanted a supers game, I might suggest it. (Or find other friends ;-`> ) However, if a comic book superhero game might appeal to you, this is my recommendation (though you should probably ask someone who actually likes them. ;)

Incidentally …

Savage Worlds is a streamlined and genericized version of Deadlands, a game by all rights I should absolutely hate: The Old West? [Bletch] A “cutesy” mechanic based on playing cards and poker hands? [Ugh] Where the Civil War never ended? [Check, please!]

And yet, my introduction to the game was through a group of friends who had played together for years, knew the system inside and out, and were a joy to play with. They made the poker-hand schtick seem clever and a nice nod to the setting, and the poker chip bennie system is, quite honestly, very clever. I also liked the depth the edges & hindrances gave characters, though it can be min/maxed a bit if you are not careful.

It just goes to show, with the right group, any game is fun!

Vampire: The Masquerade

Really, this is just a placeholder for any of the World of Darkness games.

More horror role-playing, yes. But when Vampire came on the scene it changed things dramatically. Its focus on storytelling (its underlying mechanics are called the Storyteller System) definitely appeal to the Method-Actor & Storyteller archetypes above. It generally doesn’t have enough “crunchy-bits” for the hardcore Tacticians in the group, but it can be a great way to introduce RPGs to everyone else.

Another game that is not for everyone, but if you find yourself surrounded by the type of folks who would enjoy it (and you would as well), it can be great fun!

Casting a Wider Net

I think those are my recommendations for a wide variety of places to start (or jump to after your first game). But I cannot leave well enough alone, here are some more, for your consideration.

Unknown Armies

Both the first and second editions of this game are completely out of print, but I love it too much not to recommend it. … And Greg Stolze has been hinting on Twitter that a 3rd edition is in well underway. [Cue the sound of me squealing like a schoolgirl, or gibbering like a madman in the tunnels under Fairfield Hills.]

UA is a game of “power and consequences” set in the modern day. It is gritty, twisted, and dark.

The Occult Underground. They don’t advertise, you cannot find them with Google, there is no map to their location. And yet, you know it exists. Or rather you know it must exist. You know because you have heard the rumors: a song that drives people to suicide, a man whose face melts with each dawn, a videotape of the birth of a goddess. And you have seen the signs. Once you started looking, they were everywhere. And now you know you must find it, before it finds you.

Players of this game are on the trail of the Occult Underground. Either they are on the cusp of discovering the true nature of the world, or they are well on their way to warping it to their own ends. Most of the characters in this game fall into two camps: adepts and avatars.

Adepts are chaos magicians whose obsessive world-view allows them to warp reality to fit that obsession. But that power comes at a cost, your obsession takes over your life, and brings with it taboos. Being an adept cannot be a part-time job, the obsession will eventually consume you. Cliomancers gain power from special places, plutomancers gain power from transactions, cryptomancers are obsessed with secrets.

Avatars channel a cosmic archetype: The Mother, The Fool, The Pilgrim, The Messenger. Unlike adepts, who force their view of the world into reality, avatars gain their power by passively tapping into the power of their archetype. Some do it consciously, but many do it unconsciously.

Where Call of Cthulhu has one sanity stat, UA has 5 madness meters: Self, Isolation, Helplessness, Violence, and Unnatural. Moreover, a character can become hardened as well as more susceptible to each type of madness. And they can do so at the same time, developing tics and obsessions that push them even further away from mundane society.

… And I could go on for ages about this game, and will if you let me.

Mouse Guard

Based on the wonderful comic strip of the same name. I’ve never played it, but I thought it might appeal to you for the obvious reasons.

Ars Magica

A collaborative game set in a version of the 12th & 13th centuries where all of the mystical and magical concepts of those times are literally true.

This game is most interesting because each participant plays multiple characters (“Troupe Style”), and the role of the GM is rotated around the players.

Nobilis

In Nobilis the players take on the roles of the personification of abstract concepts, anything they can imagine: night, time, pathways, water. In Nobilis our world, Prosaic Earth, is just a lie the world told itself to explain suffering and to keep mere mortals from descending into madness. Mythic Earth, by contrast is an animistic plane where everything is sentient, and is one of many of the worlds that hang in the boughs of Yggdrasil, the world tree.

One of the interesting things about Nobilis is that it doesn’t use dice or any other random elements for resolution, instead players spend Miracle Points to affect outcomes.

Feng Shui

Feng Shui is a game set in the worlds of Hong Kong action films. It tends to be combat-heavy, but the combat itself is a lot more cinematic and descriptive stunts rather than heavy crunchy-bits.

Character creation is based on choosing from template archetypes that embody the protagonists of those films.

Feng Shui is often credited as a progenitor of a new wave of simpler, descriptive RPGs, though Robin D. Laws demurs at that characterization, however he might just be being Canadian about it.

In Conclusion

There are a lot of games out there, I didn’t even really scratch the surface. I want to help you find a game you’ll love, because I think the most important part is that you have fun with the game.

But in reality, all of these games require one element in common: a good group of friends with which to play. The better the group, the less the game itself matters. (No matter what my adolescent self thought.)

(Have you figured out which gamer archetypes I gravitate toward based on these recommendations? :)


[*] Robin D. Laws’s name for the fantasy-d20 sub-genre of games. There are a lot of them, especially recently as the “old-school” movement taps into people’s nostalgia.

[**] I am fairly certain I will never play GURPS, but I am damned glad they continue making it. The setting books and supplemental materials are great things to mine for inspiration and flavor for other games!

]]>
My Email to the FCC tag:erik.ogan.net,2014://2.5162 2014-04-26T16:51:57Z 2014-04-28T13:44:47Z Erik Ogan http://erik.ogan.net/  

Commissioners:

Over past 20+ years I have had the great fortune to make my living building both applications and the “plumbing” on the Internet and what has become the World Wide Web. I have seen first hand how innovation works in this industry. The disruption that takes the entire network by storm one day becomes the de facto standard the next. 

I am deeply concerned about the recent proposed rule changes regarding the neutrality of network providers. Allowing last-mile providers to charge for “premium” access to their subscribers will cause two separate, deleterious effects: It will harm innovation, and it will widen the digital divide in this country.

First, no one can predict where the storms of disruption will form. ISPs are trying to maintain a delicate balance providing the best service to their customers. Disruptions, by definition, wreck that status quo. Allowing the ISPs to pick winners (at best, and giving priority to their own offerings at worst) gives a huge advantage to entrenched incumbents. It would be disastrous to the innovation that has been driving one of the shining stars in our economy of late, and one that has been sorely needed.

This is doubly disastrous for the majority of Americans for whom their ISP is a virtual monopoly. They cannot vote with their feet and move to a provider more willing to allow the disruptive traffic the innovative service requires. They are stuck with whatever their ISP deigns to offer.

Second, allowing ISPs to double-dip and charge both subscribers and content/service providers for the privilege of connecting will exacerbate the digital divide in this country, and will mean that only the relatively wealthy consumers will be able to afford a decent Internet experience. It will also further widen the divide between the US and the rest of the developed world, where we already pay more for much slower connectivity.

You have the power to change all of this. For these reasons and more, I urge you to reclassify broadband internet as a telecommunications service, and keep access equitable for everyone.

Thank you for your time.

Erik Ogan
San Francisco, CA

/cc:
Diane Feinstein
Barbara Boxer
Nancy Pelosi
]]>
Thoughts on the Demise of Flash tag:erik.ogan.net,2011://2.4488 2011-11-17T05:16:03Z 2014-11-07T01:33:51Z [When I posted my glee at this announcement, a friend asked: “Could you explain what this means in English? How is it going to change what I can do on my Blackberry?”] TL;DR? Jump to the direct impact on... Erik Ogan http://erik.ogan.net/ [When I posted my glee at this announcement, a friend asked: “Could you explain what this means in English? How is it going to change what I can do on my Blackberry?”]

TL;DR? Jump to the direct impact on you.

It has been a crazy week. I have composed pieces of this in my head in spare moments, so hopefully it’s just a matter of getting them down and tying them together. Hopefully the days of rumination will have distilled out some of the prosthelytizing I will inevitably do.

So, assuming you haven’t already figured it out, what does [Adobe killing [mobile] Flash] mean for you and your Crackberry? I’m honestly not sure, but I have some thoughts:

Taking a step back, it is a tacit admission (murky marketing-speak notwithstanding) that Flash1, would take too much (additional) effort to shoehorn onto mobile platforms. And also that the few abortive forays into the mobile space have not really been viable. (Which is interesting given the PlayBook, which we’ll get to in a moment)

It is also an admission that everyone’s energy is better spent developing open-standards based web applications. This is something that many of us have been saying for a while, but only recently has it even partially viable2. And it is to Adobe’s immense credit that they’ve seen the handwriting on the wall and have taken the hard turn. So many companies who “own” a technology that defines, for better or worse, a space are more likely to bury their head in the sand and plow along insisting they’re still relevant. Right up until they fold.

But what does this mean to you, a Blackberry user? I don’t think it means much in the short term. It means you won’t see a Flash player on your device, but I don’t think that you have one now.

It also means that app developers can focus attention on building HTML 5-based applications/sites that degrade gracefully, yet consistently for less capable browsers (like, quite frankly, the BB browser), are much better adapted for accessibility (and by extension search engines and possibly the Semantic Web). And that browser developers can focus on delivering a consistent, standards-compliant experience (which RIM needs to do in a hurry, but more on that in a moment)

As for the longer term? That’s trickier, and a further twist was introduced within the last few days: See, RIM bet the farm on Flash with the PlayBook, and this announcement put them between a rock & a hard place. A few days afterward they announced that they were licensing the source from Adobe to continue updating it for the PlayBook.

In the long run this could be better for the PlayBook: they can customize it more for their particular hardware, and they don’t have to wait for Adobe to fix bugs.

But it is by no means a guaranteed win. And it definitely means that they’ll need more resources in the project (either people or time, and I know what I’d bet on), and the most likely source of those is the BB browser team, which will likely cause it to lag even further behind everyone else.

And none of this mentions the very (thoughtful) analysis in past months on the less-than-rosy outlook for RIM and the head-in-the-sand mentality of their co-CEOs. But I have babbled enough.

1 Flash, a technology designed for desktops (originally a stripped-down version of Shockwave for the web)

2 HTML5, while still very immature shows great, great promise. But I am not so idealistic (anymore) to believe that it will pan out exactly as we hope.

]]>
Golden Gate Social Ride (Special Edition) tag:erik.ogan.net,2011://2.4478 2011-07-22T14:55:49Z 2014-11-07T01:37:05Z Erik Ogan http://erik.ogan.net/ [I know it has been a long time since I’ve done one of these, but this one is directed mostly at my wonderful colleagues at Change.org. Others are more than welcome, but I think most of you will find the itinerary prohibitive. Have no fear, I plan to do another one come September (when the weather on the bridge is less capricious, and they’ve reopened the western walkway).]

Folks! We’re meeting in Sausalito! It’s a perfect excuse to grab your bike and ride across the bridge!

When:
Friday July 29th. We need to be in Sausalito at 9am. We need to work the timeline backward from there, adding enough buffer so that nobody feels rushed.
Who:
Anyone who has a bike, can manage to stay (mostly) upright on it, and wants to ride across the Golden Gate (C’mon! It’s fun! You should do it at least once!)
What:
Riding a bicycle across the Golden Gate Bridge. Also, you might want to consult your doctor about ADHD, and/or cut down on the fine herb clouding your short-term memory.
Where:
The Bridge down into Sausalito, see below
]]> Options on the Near End
  1. Ride with me from my house. (Ha!)
  2. Meet up at 16th St BART, ride to Church, across Market, through “The Wiggle,” and over to Baker & Fell. I could be convinced to meet folks along this route, if they’re concerned about navigating “The Wiggle.” Given that most of you are coming from somewhere in the Mission, this probably makes the most sense.
  3. Meet at Baker & Fell (the start of The Panhandle), through the Park, out to Arguello, through the Presidio, and out over the Bridge. I could easily be convinced to meet folks here.
  4. Meet at the office, ride to Embarcadero, pick up the Bay Trail after a few blocks, and ride up and over the Bridge. I don’t think this makes sense for anyone likely to go on this ride, but let’s weigh the merits:
    Pro:
    Most of the route is on a bike path, completely separated from traffic.
    Cons:
    1. It’s longer. Given the early start, this may be a major factor.
    2. It’s not as nice as the ride through the Presidio.
    3. The climb up to the Bridge is more extreme. I remember it being quite daunting, but admittedly I haven’t taken this route in many years.
    In the end, the decision comes down to how comfortable you are on the street. If someone is still considering this, ping me, and we’ll make this work.

Options on the Far End

For this ride there aren’t really any. The Change.org folks will be stopping just at the base of the bridge, before hitting downtown Sausalito. If anyone else is still considering this ride, it’s a very easy ride into downtown, and the ferry is a nice way home.

(Added!) Distances Involved

16th St. BART - Fell & Baker
1.9mi
Fell & Baker - Presidio
2.4mi
Presidio - Bridge
2.2mi
Bridge!
2.1mi
Bridge - Sausalito (Downtown)
2.7mi

Alternate Route Distances

4th/King - Ferry Building
1.6mi
Ferry Building - Blue & Gold Ferry Terminal (Pier 39)
0.9mi
Pier 39 - Bridge
5.8mi

Deviations from these options are encouraged! Any questions? ASK!

]]>
“…Princess Di Is Wearing a New Dress… ” tag:erik.ogan.net,2011://2.4469 2011-04-05T08:03:41Z 2014-11-07T01:37:02Z I have been trying to write this entry for two weeks, and have run out of time. Tomorrow/Today is my last day at Context Optional. They are a great group of people and I wish them the best of luck.... Erik Ogan http://erik.ogan.net/ Context Optional.

They are a great group of people and I wish them the best of luck. After some hard reflection and rumination I came to the painful realization that my destiny lies elsewhere.

For quite some time I have been wrestling with the nature of the work we do. I had chafed at the fact that I have, through them, hitched my wagon to a company whose corevalues” I despise. We may be making people “happy” to a degree, but with saccharine connections to “brands,” not real people. It is very hard to call what we do “important” by any metric that truly matters. The only possible exception is my current project: the Chase Community Giving program, where we have helped people tell J.P. Morgan Chase where to donate millions of dollars to charity … so that people will hate them slightly less.

In light of this assessment, I am ecstatic to say that I am moving on to Change.org, a network for social change and grassroots organization. I will be working with the team to scale their application to serve communities around the globe who are clamoring to use it, in spite of there being roadblocks in the way now.

We will be helping people work on the international, national, regional, and local levels to spur action on causes and issues that matter most to them. It is through these actions that we will start to see real change in our world.

I really look forward to rolling up my sleeves and beginning the work that needs to be done. ]]>
MovableType 5 and PostgreSQL 9 tag:erik.ogan.net,2011://2.4467 2011-03-14T05:15:17Z 2014-11-06T19:44:33Z TL;DR : PostgreSQL 9 changed bytea encoding defaults, if you’re having trouble with MovableType, try setting connection options for your client. Erik Ogan http://erik.ogan.net/ [Note to LiveJournal readers: this post is a week or so old, but I think I’ve finally vanquished the cross-posting demons]

When MovableType 5 was announced, there was a bit of a brouhaha about its lack of PostgreSQL support. Though it was completely unclear from the language of the announcement, all that meant was that PostgreSQL would not be officially supported and tested. The files would still ship with the distribution.

I discovered this fact just after the Slackers’ Network machine explosion, as we rebuilt from the ground up. Still, in the interest of the expedience of the restoration, we opted to install the latest version of MovableType 4, since our RDBMS of choice is still “supported.”

But when it finally came time to turn my attention to MovableType, I discovered it worked haltingly, throwing cryptic error after error (Can’t use string (“x42494e3a53455247000000000000000”) as an ARRAY ref while “strict refs” in use), with little else to go on. Well, that string is clearly not an array ref, but where is it coming from?

So, I rolled up my sleeves and dusted off the debugging tricks I’d learned when building my custom MovableType plugins (before there was much in the way of documentation for MT4)

…And I got nowhere fast. I figured out quickly that the string in question was ASCII (possibly UTF-8) encoded as a hexadecimal string. But the deeper I went, the more sure I became that this was some kind of decoding bug, because the data seemed to go into the database just fine, but it was being garbled on the way out.

A few weeks ago I sat down with Matt and we tried to puzzle it out. I'd done a lot of work to characterize the bug, but was stumped. With a fresh pair of eyes, rather than getting wrapped up in debugging MovableType’s own serialization logic, he had the epiphany to go look at PostgreSQL’s own encoding formats.

Lo, and behold! There is a new, improved output encoding format in PostgreSQL 9.0. So much improved it has been made the default. What's more, it looks suspiciously like the strings I've been looking at in the debugger.

Armed with that information, it didn't take us long to track down the means to revert a client connection to the old format, and apply it to our MovableType instance.

In our case, adding Setenv PGOPTIONS "-c bytea_output=escape" to the right portion of our Apache configuration was all it took.

TL;DR : PostgreSQL 9 changed bytea encoding defaults, if you’re having trouble with MovableType, try setting connection options for your client.

]]>
Native RPMs for Phusion Passenger tag:erik.ogan.net,2011://2.4448 2011-01-05T18:21:22Z 2014-11-07T01:36:49Z Recently, I was asked to ghostwrite a blog post on the Phusion corporate blog. I’ll excerpt the relevant portions: We are pleased to announce native Linux packages for RedHat / Fedora derived RPM distributions, including RHEL, Fedora, CentOS, and... Erik Ogan http://erik.ogan.net/ Recently, I was asked to ghostwrite a blog post on the Phusion corporate blog. I’ll excerpt the relevant portions:

We are pleased to announce native Linux packages for RedHat / Fedora derived RPM distributions, including RHEL, Fedora, CentOS, and ScientificLinux.

…And the note at the end…

These packages are currently being maintained by Erik Ogan and Stealthy Monkeys Consulting. Questions, comments, patches, and pull requests are always welcome.

I’m pleased to finally be able to announce this project. I’ve been noodling on it since October. I’m also looking forward to working with them in the future to keep the packages clean and up to date!

]]>
Celebratory Games! tag:erik.ogan.net,2010://2.4395 2010-07-15T06:42:43Z 2010-10-01T16:38:24Z Hey! You! Come play some games at our new house! You'll get a sneak peak before the (soon-to-be-announced) housewarming party! What? Games. Board games, specifically. Where? Our house. Ping me if you need the address. When? Sunday, July 18th 1pm-9pm... Erik Ogan http://erik.ogan.net/ Hey! You! Come play some games at our new house! You'll get a sneak peak before the (soon-to-be-announced) housewarming party!

What?
Games. Board games, specifically.
Where?
Our house. Ping me if you need the address.
When?
Sunday, July 18th 1pm-9pm (yes, this Sunday.)
Why?
Because I'm no longer prime (in more ways than just one) and it'll be fun!

My apologies for the short notice, I've been working on a project that uses Facebook Events (*cough*movingtarget/half-assedAPI*cough*) and absent-mindedly created an an event for this party instead of our usual Pingg invite, thus missing a bunch of people.

If you're available, we'd love to have you! If not, it's my fault. Come to the housewarming instead.

]]>
Laid Up for a While tag:erik.ogan.net,2010://2.4356 2010-03-10T08:38:17Z 2010-12-10T16:37:37Z A lot has happened in the last month…First off, it appears that this information has been unevenly communicated. For that, I apologize. But I hope you agree that I had a good excuse. (At least at first.)I’m still midway through... Erik Ogan http://erik.ogan.net/
First off, it appears that this information has been unevenly communicated. For that, I apologize. But I hope you agree that I had a good excuse. (At least at first.)

I’m still midway through writing a very long-winded, exhastive account (with its own summary) of what happened that nobody in their right mind would actually want to read. It’s stalled. This is getting ridiculous.

In the immortal words of Inigo Montoya: Let me ’splain. No, there is too much. Let me sum up.

I was hit by a car.

The evening of Friday, February 12th as I crossed the street (in the crosswalk, with the light) to catch a bus home, a car turning left onto Market from Montgomery struck me at slow speed.

My knee was broken (x-ray). Everything else was fine. (Specifically, a portion of the tibial plateau was sheared off.) I was, in many respects, very lucky.

It was a long, painful, and story-filled night.

After a long, disagreeable week, the following Thursday I had surgery to fix the (skeletal) damage (another x-ray). My ACL was torn but not repaired (I’m told that many people live full, active lives without one). My MCL was stretched rather badly.

I was (IMNSHO) discharged too early on Friday evening. I spent a harrowing night at home. Too harrowing to be story-filled. The less said about it the better.

The convalescent prescription from here is rather high-powered narcotics (which work most of the time) and no weight bearing on that joint for 10-12 weeks! After that, the real recuperation begins: 6-8 weeks of physical therapy and rebuilding.

The reason 10-12 weeks is two-fold: primarily, it’s to give the cartilage in my knee a break (ha!) to prevent it from deteriorating further. Secondly, it is also hoped that this break will also give the MCL a chance to tighten back up (at least a bit).

This greatly increases the chances of arthritis in my knee (but there is no way to predict if it will be symptomatic or not.)

I am definitely healing. I have good days and bad days with the pain, but it’s reassuring (after the fact) that I’m healing even on the bad days. I’ve regained quite a bit of mobility, but as of right now, I am still confined to the upper floor of our house.

The outpouring of support and well-wishes has been fantastic and overwhelming. Chiara, too, has been a saint to put up with so much. I am humbled by it all.

There is more I want to say, but this is already starting to get long, so I’ll save it for another post. ]]>
Authlogic tag:erik.ogan.net,2009://2.4190 2009-06-07T00:36:08Z 2009-11-29T19:47:42Z I have a project I call “Clubcar.” It had its genesis in my frustration at the pathological inability of a group of coworkers to chose a lunch destination, coupled with our general dissatisfaction with the day-to-day functioning of most... Erik Ogan http://erik.ogan.net/ Clubcar.” It had its genesis in my frustration at the pathological inability of a group of coworkers to chose a lunch destination, coupled with our general dissatisfaction with the day-to-day functioning of most other automated decision systems.

It was also a complex enough problem that it seemed a good way to learn Rails. Because it was my first Rails project I was as yet unfamiliar with many Rails idioms and practices. I reinvented a few wheels that really should have been patterns.

I am now going back and spending time cleaning up the code base and extending it to allow more than just the original group to use it, since several people have expressed interest in it.

One of the wheels I invented was authentication. Since a wider audience needs a much more robust authentication (and authorization, but that's a separate issue) system, now is a good time to rip out my simple implementation and use one of the off-the-shelf solutions with far more features, and far fewer bugs.

And here's the rub. By far, the most popular solution, acts-as-authenticated (and its REST-ful progeny: restful-authentication) are primarily code generators. The expectation is that you'll use them in a new project to generate the models, views & controllers that make up your authentication system. This has presented two problems, one practical, and one philosophical.

The practical: since my system already has all of these things, I tried to carefully shoehorn the generated code into my existing framework. It was a mess, I felt I'd painted myself into a corner, and the project stagnated.

The philosophical: while I was despairing and frustrated over the shoehorning, I began to wonder: why is the Rails community as a whole, which has “DRY” (“Don’t Repeat Yourself”) as a mantra so enamored with code generation? Even if it's not you writing the code, it is still repetition that makes the project harder to maintain, makes it harder to incorporate fixes and features from later version of the tool, and seems to fly in the face of not only DRY but good object-oriented design as well.

I set the project aside. In returning to it (now that I need to amuse myself on the train again occasionally.) I decided to once again look for alternatives.

I have stumbled upon Authlogic, a plugin that seems to be written by someone who shares my misgivings. It's also extremely well documented, highly configurable, and has a complete API for extension.

Fair warning: I haven't actually started moving my project to Authlogic, and I may yet find some fatal flaw. But I'm very much looking forward to trying it out, and if I do happen to find a flaw, perhaps I can patch it, and everyone using it can benefit immediately, not on their next project!

ETA: I just sent the author some fan mail, because it makes me that happy!
]]>
Horus 2002-2009 tag:erik.ogan.net,2009://2.4108 2009-03-16T03:28:51Z 2009-03-16T16:45:56Z Erik Ogan http://erik.ogan.net/ There are far too many words for me to write here, and I’ll never get it out if I try to capture them all. Keeping it short: The candle that burns at both ends burns twice as bright, but half as long. Horus succumbed to chronic renal failure today. Hoka Hey, little man.

Quality Time with Pepper
Quality Time with Pepper, originally posted by Erik
Sleeping Horus
Sleeping Horus, originally posted by Chiara
]]>