Thai Sweet Pork


  • 3 tbs vegetable oil
  • 6 cloves garlic, mashed or minced
  • 3/4 pound pork tenderloin, cut into thin medallions
  • 2 tbs Thai fish sauce
  • 4 tbs golden brown sugar
  • 1/2 teaspoon white pepper, ground
  • rice
  • crispy shallots (optional)


Prep all ingredients and prepare rice before starting, it cooks really fast.

Heat a large skillet or wok over high heat, add oil, and heat until oil hot. Add garlic, fry for a few seconds. Add pork, fry for one minute. Add fish sauce, sugar, and pepper, and fry for another minute and a half.

Serve over rice, and garnish with crispy shallots.


This is from one of my all-time favorite cookbooks, True Thai by Victor Sodsook.

You want to be sure the pork is done through. If you've sliced the pork thin enough the two and a half minutes is plenty, with thicker pieces you may need a bit longer.

Sweet and delicious.


Group Health

Fucking Group Health.

So, my employer switched from Regence Blue Shield (good insurance) to Group Health (shitty insurance).

Because I want to keep my current doctors and pharmacy, I elected the Group Health PPO. So I go to Bartell Drugs to switch over, and while they show that they're covered under the plan, my medication is rejected.

I called the customer service line for Group Health, and went through their tree to the pharmacy section. They said that the problem was that I had an alternate insurance, and that that insurance had to be billed first.

I don't have an alternate insurance, and this Group Health insurance would be my primary anyway.

She can't tell me the name or any details of this alternate insurance, and says I need to call back through the customer service number.

I call back through the customer service number. The first person can't help me because my plan is a special little snowflake, so he has to transfer me to someone else.

The next person ends up being pretty helpful. She finds the name of the alternate insurance: Regence. I explain that this is the insurance Iwas on, until December 31st. She fixes that, and then I'm put on hold while she calls the pharmacy department to fix it with them.

After quite awhile, she comes back to let me know that they're having an issue, and then I'm on hold again. Then she comes back to say that there's some glitch with the system, and it may take awhile to straighten out.

She says that in the meantime, I can get a refill through a Group Health pharmacy while they sort it out. I tell her which one I'm closest to, she gives me their address and phone number and then forwards my call to them.

After waiting on hold for awhile, I tell the pharmacy person the whole story and my info, at which point she tells me I have to talk with the specialty pharmacy.

After another hold, I talk with the specialty pharmacy. After giving them all my info, she looks it up, says that yes, I should be covered at Bartells, and in the meantime she'll arrange for me to pick up a refill at the Group Health pharmacy tomorrow.

And that she'll do all that, and then call me back.

I eventually got called back, there were three more issues:

  1. I needed to get information from drug manufacturer to reduce co-pay.
  2. They could do a one-time refill, but I need to get prior authorization next refill.
  3. I couldn't use Bartell for that drug after all, I have to use Group Health's specialty pharmacy.

Now, supposedly, I'll be able to pick up the refill from the pharmacy tomorrow. In future, I have the option of either getting it shipped to me, or picking up from the pharmacy. But the Group Health pharmacy is only open from 8:30 AM to 6:00 PM, Monday through Friday.

Seriously, they're only open during the day during the week.

After all of this, I'm pissed at Group Health, and a little ticked at my employer for switching to a worse plan, but mostly?

Mostly, I'm pissed that America has such a backwards health care system and industry. "Spend More For Worse Results" should be our national motto.


Looking For Work

Well, kinda.

Last Wednesday, November 4th, I was told my last day here at Real is March 31st, 2016.

So, I'm brushing off my resume, and open to offers, but not super frenzied yet.

I've updated my resume and resume page, but I still have a lot of work to do on them. It's been a long time since I needed to find a job.

I mostly program in Ruby, Perl and PHP, though I occasionally use quite a few other languages, such as Expect, JavaScript, SQL, bash, etc.

I've been running a lot of Linux servers, running a variety of server software, for a long, long time.


PSA: Stretch!

Monday morning, I hurt my back. My upper back, and not too badly; I've hurt it worse in the past.

It was my own fault. I tried to put a shirt on. If you're going to do such a hedonistically irresponsible thing in the morning, I suppose you have to expect the occasional pulled back or broken neck.

Having hurt my back before, I have a set of back stretches. I know that if I do them regularly, my back feels better and I'm much less likely to hurt it. I, of course, don't do them regularly. I have, however, done them all this last week, and they got my back feeling better relatively quickly.

Now, let's talk about you. You're getting older. You are, I feel it safe to say, older today than you were a year ago, and quite a bit older than you were a decade ago. So stretch. Every day. Not only does it reduce your risk of injury, it makes you feel better each day.

Also, exercise regularly and improve your diet. And stop the heroin. Not all at once; that's dangerous. It's best to taper off gradually.


The Twefithritforni Sequence

What is the next number in this sequence?

12, 5, 32, 4, ?

Here are the rules:

  • 4 follows 32
  • 5 follows 12
  • 9 follows 4
  • 12 follows 9
  • 32 follows 5
  • Any other number ends the sequence.

I call this the "Twefithritforni" sequence.

Given these rules, it's easy. And any Twefithritforni sequence based on one of those numbers is easy to generate:

5, 32, 4, 9, 12, 5, 32, ... 9, 12, 5, 32, 4, 9, 12, ... 32, 4, 9, 12, 5, 32, 4, ...

This obviously makes a great interview question for a computer-related job. It matches all the major features of other great interview questions:

  • If you happen to know the trick, it's trivial.
  • If you don't know the trick, you probably aren't going to get it in an hour interview.
  • It has numbers in it.
  • It has no relevance to the job.

The one major drawback is that the rules, once you know them, are unambiguous.

You can adjust it to whatever level you're hiring, just adjust the number of numbers given between one and six. You can start with any of the five numbers, and you can even have the missing number in the middle of the given sequence!

If you want a trick question, give a number that's not on the sequence.

Remember, if they haven't recently read a particular post on an obscure blog that maybe gets three hits a year, you don't want them working for you.


Installing Ruby on Debian

To get a recent version of Ruby running under Debian stable, you have to install it yourself. Well, not quite yourself, there's a very handy system called the Ruby Version Manager (RVM) to help you out.

I set up a "ruby" user, and install RVM and Ruby under that user. Then I create a short shell script "/usr/local/bin/ruby":

#!/bin/bash --
source "/home/ruby/.rvm/scripts/rvm"
ruby $@

The only real hitch is that RVM helps you out by installing any needed libraries for you, but this requires you to give the "ruby" user sudo access. I didn't want to do that, and RVM isn't as forthcoming as it used to be about what it needs to install. Fortunately, there was a helpful stackoverflow question that pointed me in the right directory, though the options have changed a bit. In particular, instead of "rvm autolibs disable" I needed to do "rvm autolibs read-fail".

Here's what I had to do.

As root, create the ruby user and install bzip2:

  • apt-get install bzip2
  • adduser ruby

As ruby, install RVM's key, install RVM, and then get the requirements list:

  • gpg --keyserver hkp:// --recv-keys D39DC0E3
  • \curl -L | bash -s -- --autolibs=read-fail
  • (log out of ruby and back in to load the RVM environment)
  • rvm autolibs read-fail
  • rvm requirements

As root, install the requirements:

  • apt-get install patch gawk g++ gcc make libc6-dev patch libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev

As ruby, install ruby, ruby docs, and any desired gems:

  • rvm install ruby
  • rvm docs generate-ri
  • gem install sinatra thin

Install the above "/usr/local/bin/ruby" script, use "#!/usr/local/bin/ruby" as your shebang line, and you're all set.


Ooma Sucks

So, I got an Ooma a few years ago for two reasons:

  • So I could have the cheap equivalent of a landline
  • So I could get a secondary Bellingham number, so my parents could call me for free from their actual landline

It worked all right for the first, but not great -- it regularly drops calls. Now, my connection isn't great, but I recently got a Republic Wireless cell phone, and wireless calls on the cell phone over the same connection work much better.

For my folks, I needed to be on the "Premier" subscription, so I could get a second Bellingham number for them to call. That subscription has some other nice features, as well. It was really nice for my folks calling, but they got a VOIP phone themselves recently, so I don't need it any more.

The premier subscription was set to autobill, so I wanted to turn that off. There was a "Change subscription" button, but when I clicked it, I got this message:

"To change or cancel a subscription, please call customer service at 1-888-711-6662."

Really? Do they like to hire ex-Comcast people?

So I called the number. The person on the phone didn't want to cancel my premier subscription, and insisted that there was no way to just stop the autobill, if they cancelled that, they'd have to cancel the service I already paid for. He wanted me to call back "a few weeks before it was time to renew, so I didn't lose the features that I had paid for."

We went around a few times, finally he offered me a $40 credit to my account to not cancel my subscription yet. After we went around a few more times, I finally got sick of talking with him and said fine, whatever, have a nice day.

Then it got weirder. After having badgered me into not cancelling yet, he decided that now he would cancel me and I wouldn't get the $40 credit. Did he offer the credit just so he could take it away? Whatever, fine, at least he was going to cancel the subscription.

He went away for a bit, came back and said that the subscription is cancelled.

Of course, when I look at my account on, the subscription doesn't show as cancelled.

So, several reasons not to ever go with Ooma:

  • Call quality is worse than other services over the same network.
  • Cancelling autobilling cancels service that you've already paid for.
  • Even after talking to customer service, and being told it was cancelled, autobilling appears to still be set up.

health and nutrition

So yesterday, on the way home, I walked by the stadiums as usual and several of the hotdog vendors were open. I knew there wasn't a Mariners game that evening, so I figured there must be some other event going on. Then I saw the sign.

Welcome to the Health and Fitness Expo.

A House-Boat on the Styx

I first encountered John Kendrick Bangs when I worked in my father's book store. One of the rare books that he had was a copy of A House-Boat on the Styx. I enjoyed it immensely, though I certainly didn't understand all of it.

The Associated Shades is a Gentleman's Society of the shades of famous historical (and occasionally fictional) people. They while away their days in their clubhouse, a houseboat on the river Styx.

The point of the book is the banter between the various characters. Each chapter delves into a different subject. It's a delightful read, equally suitable for reading bits casually while waiting for a bus, or for sitting down and reading through the entire thing in an evening.

There are also three sequels available, Pursuit of the House-Boat, The Enchanted Type-Writer, and Mr. Munchausen: Being a True Account of Some of the Recent Adventures Beyond the Styx of the Late Hieronymus Carl Friedrich, Sometime Baron Munchausen of Bodenwerder.

This series coined the term Bangsian Fantasy, a fantasy genre where historical and sometimes fictional characters meet in the afterlife to have adventures or a chat.