Wednesday, September 02, 2020

My favorite gaming memory

Quinns' little YouTube message was originally posted in 2014, but I just saw it today.  It broke off a part of me.  I say something about that, and then answer his question: what's your favorite memory of playing a game?    Well, it's pretty late now, but Quinns, I'm so so sorry.

If you have ever played a game with me, my apologies.  I swear the best moment with you is #2.  "Third boulder" was the best.  Mage Wars at a wedding -- I love you all over again for that.  Ghosts in the Graveyard after sunset, Cosmic Encounter wheeling and dealing, just the fact that two dozen people were willing to spend their party playing Kill Dr. Lucky with me -- I nearly weep to think of it.

I'm sorry, they're #2.


Dungeons and Dragons cobbled together game, and my dad says he'll DM for us.  We're walking and come to sarcophagus at a crossroads, and a fearsome creature jumps out of it.  Worse than a skeleton.  Worse than a vampire.  It's a skeleton OF a vampire.  (No, I don't know how that works.  We don't have time to puzzle it out now, it's fangs are nearly upon us!) 
I cast Burning Hands, and it does 8 damage.  Dad asks which die I rolled to get the damage, and I tell him it's a d8.  He says "oh yes, that fried it.  The bones char and fall into ashes."

This is the critical moment.  Not because of the story at all.  Because here's some things I realized:
  • Dad asked because he needed to know if 8 damage was a lot or a little to roll.  He didn't know.  And he didn't know how many hp this creature had, he just decided a big hit would end it.  
  • He didn't know what a skeleton of a vampire was - he just made it up.  On the spot.  Out of his head sprung a completely new thing and we just fought it.  To be clear: my dad could do magic.
  • He was just winging the whole thing.  I mean, I sort of knew that, but I didn't understand what it meant.  He was telling a story, and throwing us into it, and using the rules like glue, applied with the most delicate touches, to help keep the thing together.
We continued to a nearby town, where we walked into a shop and the shopkeeper only told lies, which we figured out because every time he named the price of a thing and we paid him, he'd give us the wrong change back.

Why is there a shopkeeper who only tells lies?  Because Dad loved Raymond Smullyan's logic puzzles, and he knew I loved them too. 

And I don't know if there's any other reason for anything to be in a Dungeons and Dragons game.


That's my favorite memory.  One of the most painful to remember, too, but maybe that makes it more precious, not less. 

Friday, July 10, 2020

50 States of Unclaimed Property: Georgia

Inspired by Yashar Ali's reporting on unclaimed property, I decided my summer project would be to search for any unclaimed property in my name in all 50 states. As Yashar Ali said, "Every state allows you to search and claim unclaimed property for free. Please don't ever use any of these scam don't need them."

At first I thought I would blog about the experience just for fun. But when I started with Georgia, the state where I spent the majority of my years, I discovered that my mother- and father-in-law have a number of unclaimed property search results. I am writing these step by step instructions so they, and you, can find any unclaimed property in Georgia. 

Step 1: Go to

This is the official website of the Georgia Department of Revenue's Unclaimed Property Database.

Step 2: Click on Seach for Unclaimed Property
Step 3: Enter your last name
Step 4: If you see a reCaptcha box, check "I am not a robot" before you click on the Search Properties button.

Step 5: Scroll down to see the search results. There are 10 per page. When you find a search result that matches your name, click on the Add button next to that property to add it to your cart.
Step 6: Once you have added all fo the properties that match your name, click on the button that says, "Claim Properties in My Cart."
Step 7: You have to register before you can claim any of the properties in your cart, but your first opportunity to register is not until you are at the Claims Cart. Click on the Register Button.
Step 8: The registration form asks for the standard information. Make sure you scroll down as many screens will cut off the end of the form.
At the bottom of the form, you will have to create a username and password. Passwords must be between 8 and 26 characters and contain at least one number, uppercase letter and special character (e.g. $,\&.#!).

When you have provided all of the information, click on the Save Registration button.
Step 9: This will take you to the following screen.
Check your email for an email from GA Unclaimed Property <>.

Step 10: Click on the Confirm Account link in the email.
Step 11: This will take you to the Claimant Email Verification Screen. Click on the Return to Claimant Login link.

Step 12: If it is not prepopulated with your username and password, enter them here. Then, click on the Log in button.
Step 13: Click on the Claim Properties in My Cart button.
Step 14: This will take you back to your Claims Cart. If you scroll down, you will see the data you entered to register. There will be additional blanks for information necessary to proceed with the claim including your social security number.
Enter your social security number. Check that the rest of the information is correct. Then scroll to the bottom.
Check the box indicating acceptance of the indemnification clause. Then click on Create Claim button.

This is as far as I can walk you through because I, shockingly, did not have any unclaimed property in Georgia. If you do, please screenshot your steps after this and email them to me (redacting personal identifying data, of course), so I can complete this step by step tutorial.

Wednesday, May 27, 2020

Change to my Tweets about coronavirus data

It's frustrating to do this, but it has to be done. I'm going to change the thing I've been reporting. And (possibly worse), I'm going to tell you why. (Basically, I'm fixing something I should've been doing all along.)

  I've been trying to report a measurement to try to communicate how fast the rate of infection was, how the rate was different in different places, and how it was changing (thankfully, slowing down) over time. This has always involved some inference: the new cases each day aren't the same as the total new infections, just the ones that were being diagnosed; similarly, the total cases aren't the same as the total infections in the community, just the ones that were being treated. The assumption is that, roughly speaking, the new cases was some (relatively constant) percentage of the new infections, and the total cases was some (relatively constant) percentage of the total infections. 

 Early on, "total cases" seemed as good a measure as any to substitute for the total number of people infected. But for a while now, there's been both good and bad news. People don't stay infected, as "active cases". Many get better. Sadly, some die. All of them, hopefully, once they become "active cases", are isolated and are much less likely to infect someone else. The "total cases", which I've been using, counts all the people in the state/region/etc. who have been diagnosed with the virus. It includes the recovered and the dead, as well as the cases still being treated. 

 Early on, there wasn't much difference between active cases and total cases. Now, in New York, there are over 279,000 active cases, which is a LOT. There are over 29,000 deaths, which is TOO MANY. And there are over 64,000 people who have recovered, which is a GREAT START. And I'm trying to figure out which number is the best representative of the number of infected people in the population. 

It doesn't have to be closest to that number, it needs to correlate with it: if there's twice as many infected people out there right now, you'd expect twice as many... 
active cases. 

 So I'm going to start reporting areas based on the threshold of new cases over the last 7 days being higher or lower than 10% (or 5%) of the _active cases_, not _total cases_. This will momentarily mean more areas will be above each threshold. But I think it's more accurate, and over time, the trend will tell us more about how fast (or slow) the disease is spreading. 

 As was always the case, this can do weird things for areas where the numbers are smaller generally, especially if the reporting of active cases is peculiar (Vermont, for example, lists 967 total cases, but only 65 active cases; I don't know if they've had 850 or so recoveries, or if those people have been moved to other states, or what. I have no reason to question these figures, but it could be Vermont's really good recovery rate is temporarily making them look like they have a faster spread rate).

 Another thing that should eventually put a hitch in my numbers is testing. As testing gets more and more widespread, the number of new cases should go up, as more infected people are found and treated. But that's a good thing! So if a state jumps back into the >10% category when they're testing more broadly, that isn't a reason for alarm - it's the longer term trend after the jump that really matters. 

 Okay, without further of today (I'm sorry, I'm going to have to report the new numbers going forward, and haven't recalculated the data for the past), here’s the parts of the US that had a daily increase in COVID cases >10% of their current active cases: ID,MN,Veteran Affairs,WV. >5%: AL,AK,AR,KY,MS,NV,SC,SD,TX,US Military,VT (the rest were less).

Click here to see the rest of this post...

Saturday, August 10, 2019

Anti-Inflammatory-iversary - Sarah's Smoothie

It has been one year since my UPPP surgery, which also marked the start of my Anti-Inflammatory eating adventure. Rather than write a post full of data showing the AMAZING changes in my inflammatory markers, I am going to share my recipe for the smoothie that has kick started my morning every day for the past year.

Sarah's Anti-Inflammatory Smoothie


  • 1/4 C golden flaxseeds
  • 1 T chia seeds
  • 1 inch piece of raw ginger root
  • 1 inch piece of raw turmeric root
  • 1 C carrot, peeled, raw, chopped to have mercy on your blender
  • 1 C mustard greens, I use chopped frozen from the grocery store, but if you can get your hands on fresh, woo hee!
  • 1 C kale, see above re: mustard greens
  • 1/2 C mixed berries, see above re: mustard greens
  • 1/2 C fun fruit, I used a frozen tropical mix that included papaya, mango, and pineapple for awhile, then I switched to just pineapple, now I'm on a mango kick. Whatever anti-inflammatory fruit floats your boat.
  • 1 C unsweetened soy milk (I had to use water until I tested this in, then be sure to check the label for weird stuff)
  • Top off with water


  1. Blend until smooth. This takes a lot longer than you might expect. If you sip more than one seed, it needs to be blended more.
  2. Nurse this baby over a couple of hours because it is HIGH FIBER, if you catch my drift.

Additions & Notes:

Once I tested in cacao powder, I added 2T cacao powder and, believe it or not, my inflammatory markers improved! Also, it makes the smoothie look less like green slime and more like chocolatey goodness. Now I kinda switch it up depending on my smoothie enthusiasm (ensmoothiasm?).

If you are feeling low-energy, consider adding 1-3t maca powder. I top out at 1t, personally, but your experience may vary. Test maca in like you test in every other food first, of course.

DO NOT substitute turnip greens for either of the dark leafy vegs. Turnips are a nightshade. My inflammatory markers did not drop until I dropped the turnip greens from my smoothie. I mean, if you test in turnip greens and they work for you, go for it. But I would not recommend starting with them.

Some folks are WAY into not having raw spinach daily, but this opinion is apparently controversial. I did have some weird tongue sensations after using spinach exclusively for a few weeks. I have not had the same experience with my kale and mustard greens combo. So, again, you do you, but it's something to think about if you are anti-inflammatory-ing EVERYTHING and your inflammatory markers are still not going down.

Saturday, January 26, 2019

Anti-inflammatory Food Plan

February 10 will mark six months of amazing changes in my endocrinology. According to my rheumatologist, my RFnegPA is in remission for the first time since 2011. One considerable factor in those changes was the start of an anti-inflammatory food plan.  

The anti-inflammatory food plan is based on the recommendations of the Arthritis Foundation, which has published a lot of information on how food affects arthritis. But they try to write in a warm, fuzzy way that does not make it sound like a form of torture. I'm writing it like it is. Also, I am so far from qualified to tell anyone what they should eat that you should really not listen to me. Read the whole thing. Then check with your doctor. Then eat your last ice cream sundae and get to work.

Do not eat any of the following as they cause inflammation:

  • Sugar in any form except whole fruit.
  • Saturated fats including cheese, full fat dairy, pasta, red meat, and grain based desserts.
  • Omega-6 including all oils except avocado oil, olive oil, and coconut oil (only when a solid fat at room temperature is required).
  • Refined carbohydrates including white flour, white rice, potatoes, and processed cereals.
  • MSG.
  • Gluten including wheat, barley, and rye.
  • Casein including all dairy.
  • Nightshades including eggplant, tomatoes, peppers, potatoes, and turnips.
  • Caffeine including coffee, tea, and chocolate.
  • Artificial sweeteners.
Test in a food by eating it two times per day for three days. If you develop discomfort, stop the trial food until symptoms disappear. Then reintroduce the trial food a second time. If the same symptoms reappear, stop the trial food. When symptoms disappear, introduce a different food.

Eliminate for at least a month, then test in one per week in whatever order you choose.
  • Bananas
  • Citrus
  • Soy
  • Chicken
  • Eggs
  • Brown rice
  • Non-peanut nuts
  • Peanuts
  • Oats
  • Corn
  • Shellfish
  • Pork
  • Fish
This is not written in stone. If the prospect of never eating chocolate for the rest of your life is more than you can bear, then by all means, test in chocolate. But consider the more vital nutrients, like protein, first.

To objectively assess the foods you test in, you need to track your pain, GI symptoms, mood, and compliance with the plan.

To track pain, I use the Pain Scale app. If you have been coping with pain by trying to avoid thinking about it, consider doing a body scan meditation before recording your score.

To track GI symptoms, I use the Poop Log app.  The gastrointestinal system is the canary in the coal mine of inflammation. So while this will make you literally consider your own feces more than what is socially acceptable, it is the key to fine tuning your food plan to your unique needs.

To track mood, I use the Moodscope website. Food, mood, and inflammation are intertwined both biologically and psychologically. If you use food as a mood modifier, you will have to look for alternative mood modifiers once you start the anti-inflammatory food plan.

To track food plan compliance, I use my own chart that includes whether I ate 6 servings of vegetables, whether all my meals in a day were vegetarian vegan (edit: the only animal products I intentionally eat are eggs and fish, now that I have tested them in. I track this not to be like "Yay, Vegan," though it is fantastic for the planet. I actually track this to make sure that it is not a lack of protein causing any health fluctuations. So if I have a long stretch of Vs in my chart and my mood numbers are lower, then I make sure I eat a hard boiled egg from one of our happy chickens.), and whether I consumed only foods on the plan.

I take all of the daily data and collect it on one monthly graph so I can see how things go over time.
You should track for a month before you start the anti-inflammatory food plan so you have a baseline. During this month, ramp up your vegetable intake to a full 6 servings daily (check those serving sizes).

Then, track for your first month on the meal plan to see when your baseline shifts. This is important to know how long you will likely have to go back to basics if a test food fails or you eat something inflammatory or you have some other cause of inflammation. This can also help you identify inflammatory foods unique to you. For example, I noticed a spike in pain and loose stools after eating cucumbers. So I abstained from cucumbers until my baseline was good and tried testing in cucumbers.

Then, when you start testing food in, you can look back at the week's data to figure out if the food test was successful, inconclusive, or a failure. I have attached the chart I use to track testing foods. 

For more information check out:
Anti-Inflammatory-iversary - Sarah's Smoothie

Click here to see the rest of this post...

Wednesday, July 25, 2018

A different justification for the Schulze Method

This is a different way to think about the Schulze Method, which might convince people who don't like the "beatpath" construction. 

I wrote about the Schulze method in the previous post, giving a justification that is based on the standard presentation of the method using beatpaths.

This is a different look at the same method, implemented a different way.

Suppose you first looked for a Condorcet winner: so you look at all the pairwise matchups, and find out who is preferred to who.  You make a matrix of pairwise preferences, and maybe for convenience subtract the number of voters who preferred Y to X from the number who preferred X to Y to get the margin of pairwise preferences.  (These matrices are in the example in the Wikipedia link to the Schulze method above -- if I were more detail-oriented, I'd put an example here.) 

Any row that's all positive means that candidate beats all others head-to-head: that's a Condorcet winner!  

But suppose there isn't a row that's all positive.  What do we do?  Well, first, we can eliminate any Condorcet loser: a candidate that is not preferred in any head-to-head matchup. (We'll spot a Condorcet loser in the matrix because it's got a row of margins that's all negative, or equivalently a column that's all positive.)[see footnote]

Then, since we want the closest thing to a Condorcet winner, let's "grade on a curve", and do one of the following (these are equivalent):

  • add something to all the margins: add 5 (for example) to all the margins of pairwise preferences  (add more if you haven't changed anything from negative to zero/positive, add less if you've changed too many elements) OR
  • find the negative margin that's closest to zero (-3 is closer than -10) and set it to zero.
Is there a row with no negatives now?  If so, that's our winner.  If not, our curve might've produced a definite loser (with a column that's all positive or zero), so eliminate that candidate [see footnote again] and curve some more, either adding more or zeroing out another negative margin, until you've got a row with no negatives.  It isn't a Condorcet winner, but it's the next best thing -- the candidate that started with the smallest pairwise "unpreferences".

[ Here's the footnote: ] technically, you want to eliminate every candidate not in the "Schwarz set", which is not just a Condorcet loser, but any group of candidates that loses to everyone outside the set.  (In other words, it doesn't matter if candidate D beats candidate E, if D and E both lose to A, B, and C, eliminate both of them - clearly the winner should be A, B, or C.)   But in terms of justification, this is a technical point; the idea is that you're looking for the "closest to Condorcet" winner.

Click here to see the rest of this post...

Voting Methods: Making the case for the Schulze Method

If you're curious about voting methods, and/or want to make a case for a Condorcet method to your friends and co-voters, this post is for you!  

First, I think the Condorcet criterion is pretty compelling on its own.  (The Condorcet criterion is: if there's one candidate that is preferred in head-to-head matchups to every other candidate, that candidate wins.)  It's easy to come up with examples where the plurality method (this is the method that gets applied most often - whoever gets the most votes wins, even if that isn't more than half the votes -- boo plurality!) doesn't give you what seems the right solution.  If there is a Condorcet winner (there isn't always), it's the one that seems like the right answer.

So what if there isn't a Condorcet winner?  What voting method do you pick?  This is a case for the Schulze method: if there isn't a Condorcet winner, that's because there's a "rock-paper-scissors" cycle where candidate A is preferred (head-to-head) to candidate B, B is preferred to C, ... , Y is preferred to X, and X is preferred to A.  (The cycle can be size 3, like rock-paper-scissors, or can be longer - the point is it circles back on itself.)

At first glance, a cycle like that seems intractable - how do we rank any of the candidates in the cycle higher than the other?  But this is ignoring the strength of the preference:

Suppose 90% of voters prefer Rock to Scissors, 85% prefer Scissors to Paper, and 51% prefer Paper to Rock.  The cycle is there, but clearly the Paper > Rock preference is the weakest link.  The preference path Rock > Scissors > Paper has a "strength" of 85%, much higher than the 51% for Paper > Rock.  Based on path "strength", we can rank these Rock>Scissors>Paper.

Is Rock a Condorcet winner?  No.  But it's the closest thing to a Condorcet winner, in the sense that its pairwise loss is the weakest.

That's the Schulze method.  It's written in terms of "beat paths", but those are just breaking a cycle into two parts, like we did splitting "Rock>Scissors>Paper>Rock" into "Rock>Scissors>Paper" and "Paper>Rock" and comparing them.  There's some added detail to deal with multiple cycles between the same candidates, but that's really all there is to the idea of the method.

Next I hope to show another case to be made for the Schulze method, which might be more intuitive.

Click here to see the rest of this post...

Monday, November 21, 2016

Learning Outcomes for Outlast

Here is some feedback from the originator of the game idea "teach environmental sustainability through a game with zombies":

What I was thinking about were both reasoning/critical thinking skills and environmental sustainability.  What do you do when the first plan doesn't work? What is your new goal? What information do you need? What is your strategy? I thought the zombies would make it cool and relevant and more exciting, but we could also have used a colony on the moon. Ok, they would have needed a lot more background knowledge! 

Game design: Game Dojo stream pre-report

Hello!  There's a Game Dojo stream tonight where I'll talk with Sen about Outlast.

Here's a brief follow-up of what has happened from the earlier Game Dojo conversation.  The items to consider in the short term were:

  • consider permanent resources (that are location features: shelter, arable land, water, e.g.) as well as temporary resources: I haven't really done this.  
  • consider the minimal best 9 locations to have. What if these were all there are? (letting a location get overrun should be a gut-wrenching decision) This I have done, and played the game with only 9 locations (when a location is overrun, it disappears and nothing replaces it.)  This game is more challenging, of course, but definitely achieves the goal of treating locations as precious.  
  • What's a playable "scenario" that can be "solved" (won) (A deterministic end goal, that is definitely achievable).  There should be a strategy that works regardless of unfortunate die rolls: I tried out a few straightforward scenarios: the farm (which makes it easier to produce food) next to the sustainable storage (which has a win condition if you have enough food), and the laboratory (win condition: medicine and gas) near the hospital and gas station.  I realized that a well-coordinated team can definitely win in either case, quickly.  (more on this)
  • write a bio, then publicize it and this blog so people (you guys!) can follow the story of the game design.  Have not been good about writing a bio. :(

Here are some thoughts to hold off on for the moment, but should be considered down the road:
  • Consider expanding the map to 25 "little" locations rather than 9 "big" ones. Not looked at yet.
  • This game sounds like it wants to be a co-op area control game: This is sort of true, in the sense that a powerful tactic is to move as a pack, with one outrunner on a different location.  This looks a bit like area control: having 3 people in one place is better than 2 here and 1 somewhere else. (If there's a chance for food, for example, 3 searchers on the same location are liable to hit it and can all use it.)
  • Pivot: what makes the players realize they need to switch strategies (from exploit to sustain, explore to hunker down, e.g.), and what makes the timing of the pivot crucial (waiting too long or going too soon has to have a cost): Running through the "scenarios", I am a bit concerned that there isn't a pivot - or at least, focusing solely on the goal from the start was a successful strategy.  This is one of the "counterintuitive" parts of the game -- players naturally start out trying to subsist, but choosing to starve from the start in pursuit of a win condition is a quicker path to victory.
  • building a defensible position; using fortification or something to protect/claim some region: Hypothesized a bit about what "securing locations" might look like as a new action players could take.  I think there's definitely a plausible opportunity here.
  • zombies chasing people around, rather than just showing up? Generally de-emphasizing the zombie attacks in favor of overruns? Not looked at yet.