Heart of the Swarm: Player vs AI

Spent a bit of time tonight playing the new Player vs AI. It is pretty fun. It makes you play through the difficulties until you hit the Elite level at which point it maxes out. Now I am not a great player but I am evidently good enough to be the AI at the highest level PvAI goes to, but despite that it doesn’t mean it isn’t valuable to me.

I even learned while playing through the lower levels of PvAI. The hard computer hit me with a 6-8 roach timing attack and I barely held it. I realize my build was rather deficient! It had gaping holes that hadn’t been capitalized on during ladder sessions, because the builds that could, had fallen out of favor in recent history. It is wonderful to see this because it made me rearrange and tighten up my build a bit. I was excited to play against the harder AIs and see what else I missed!

In HotS, the AI has been taught to use multiple builds, so no longer does it do the same thing every time. Sometimes you are against a bio early pushing Terran AI, other times the Terran AI comes at you with hellions followed up by heavy mech play. This variety lets you test how a build does, and what it needs to be able to react to at minimum to survive on the ladder.

With this new tool, I am going to take some time to figure out what build I am going to use in each match up. After that, work out a couple transitions in the build to account for the opponent’s tech. Then practice the hell out of them so they are super tight. At that point they’ll be ready for the ladder.

Day[9] has stated that a very tight build, even if it isn’t a great build, will get you really far. TheJaKaTaK asserts that with good mechanics you’ll go a long way. Perhaps if I combine these:

  • Solidify and tighten up my builds for each match up to the point that I know them so well I don’t have to think about placement of things, order of buildings, scout timings, etc.
  • Work my way through TheStaircase getting my mechanics and understanding of the various units to be stronger.

Alternating between these, perhaps using one to warm up for the other is likely where I’ll go with this. It seems like a great vehicle to carry me on the road to HotS Gold League and perhaps, with enough effort, even Platinum League before the game is released.

Flowing Through the Day

Flow state is an important aspect of my life. I remember slipping into flow while building things with LEGO as a kid. Then later when executing my best runs while skateboarding at the skate park. When I was a bit older it was during tests in school and while writing some of my first programs. These cases were never intentional though. They happened and it was cool that I got a lot of work done, then I’d go to do more and flounder.

Later, when I started writing software more seriously, I started to try to induce this state. Unfortunately, I didn’t have words for it, there was just good focus vs bad focus. One afternoon I was reading a blog post about athletes and being in the zone, which sort of reminded me of what I knew of when I was programming. I can’t find the post now, but searching for “the zone” let me find articles about flow.

Since then it has been a journey of trying to find triggers, figure out if any chemicals like caffeine can assist or hurt. There is a lot of research, but not a ton of it is good.

For me, I’ve been finding it is easier to get into flow in the extremities of the day. Either in the morning or at night. Afternoon or evening is generally a bust for me. Caffeine if I am not constantly drinking it, can be a great tool for when I need to sit down and get a lot of work done. Finally environment can be really influential, coffee shops and the like tend to be a good place for me, especially where I don’t know as many people. Conversely, at the office where I do know folks is terrible.

Keeping these things in mind, if it is a work day I try to spend my morning cranking out code and really getting stuff done while ignoring work chat unless someone directly mentions me. Often times I’ll go to a coffee shop (SE Grind is my current favorite) so I can get food and caffeine. Then in the latter half of the work day I am on work chat more, helping people out or discussing things. Between the two phases of the day I’ve been able to be more productive lately.

Non-work days I try to get my SC2 practice in the morning and at night. Using the middle of the day for relaxing, riding my bike, and getting chores done. I expect to have more to post on this topic in a few weeks after I see how this is working out for me. Until then, have a good day!

What Did I Do Today

I have really inconsistent productivity. Some days I am on fire and really hammering out code. Other days I get to the end and have nothing to show for it and really have a hard time remembering what I was doing. To this end my boss and I have decided it would be helpful if at the end of the day I send a report of progress I made on my bugs.

I opted include some other stuff, both for my boss’ sake and for my own tracking of my day. The basic format of the email is:


  • http://bugzil.la/700000 :
    • Wrote some code and made progress in the morning.
    • Finished in the afternoon, landed.
  • Other stuff: Helped edit someone’s blog post


I felt ok about today, I was distracted a bit with IRC questions. I might try keeping IRC minimized for parts of the day and only look at it when I am highlighted.

After doing this for two days, I’m deciding to do this in other parts of my life to varying degrees. For SC2, I’ll be doing a weekly report, because it is an approximately equivalent, since I am planning 5-10 hours of SC2 practice a week and that is near the same as my 6-10 hour work day.

I’m also thinking that I might do this for my bike riding as well. Weekly makes sense for this as well, because individual rides are less interesting but looking at them in aggregate I can see some trends and progress.


I’ve off and on used a system called TheStaircase. So much so that I am even working on thestaircase.org. It has a really intuitive style for learning SC2 and getting better. It was actually a lot of my motivation behind making SpendingQ.

I’m doing this part time mixing with full unit play. I’ve made it out of the first step a few times, even up as far as the 4th step. But this time instead of only shooting a single league higher I am trying to hit the benchmarks for Master level players. This means really paying attention to my macro, less on the side of expanding enough and more on the side of spending all the money I have coming in.

It is a common theme for me, and I imagine others, to be doing pretty fine spending wise while you are on one base because the income rate is so low. When you are in the process of saturating your second base is almost easier because probes build fast and when chrono’d will burn your minerals really fast.

Once you have a second base saturated, even while you are saturating a third it is really easy to not be building units fast enough to use your minerals and gas. This appears to be two problems compounding each other. The first is that the player wont know how many production buildings to have for their base count and expected unit composition, so they can’t produce fast enough to burn their income. The second comes from not building units on every cycle they can, this is leaving buildings not producing, not using your larva as soon as possible, or missing warp in cycles.

The solution comes two fold as well. It requires you to research your build, play it a bunch of times, and really know and understand the amount of production you need to spend your resources. The second is paying attention and not letting buildings sit unused, which comes from playing more games and having that be a focus of your play.

In the coming weeks I plan on having a weekly wrap up of the things I have worked on. I’ve started doing this daily with some other things in my life and I like. I feel like in a week I’ll have the same amount of progress/information as a single day of work (5-10 hours of practice in a week, 6-10 hours of work in a day.)

Look for the updates in the future!

Looking back on 2012

January, I started off this year knowing I was leaving a company I’d been at for nearly two years. I was setting off to spend time on my side projects, travel, and figure out what I want to do for the next couple years. The last month at Aquameta was very interesting. I had started brain dumping in December but didn’t realize how much I had stored up in my noggin. Took a lot of time with my good friend Martin and the Aquameta wiki to get it all out.

This is also the month that I started dating Eva, my current girlfriend. We had a bump for a while but things have been really good. I’ve even met a bunch of her family, but that comes later in the year.

February was a month of firsts. I left the Oregon/Washington area for the first time. Flew on a plane for the first time. Went zip lining for the first time. 2 weeks were spent in Hawaii with my best friend Tyler. We went zip lining for his birthday. Spent tons of time in tiki bars and on the beach. Even saw active lava! This was really far out of my comfort zone, all of this month, but it was a wonderful experience and gave me the drive to start seeing other places. Which is what I did the rest of the year!

March is when I made it to California for the first time on my longest train ride to date. Went to my first PyCon and hung out with and made a bunch of friends while I was there. It was a fantastic time. I had my 25th birthday there and hung out with 2 people I didn’t know for most of the day. We got drunk in an Irish pub drinking Guinness and Jameson.

April was when I applied to Mozilla as well as a couple other companies. I had spent February and March working on my resume and writing software, I felt like it was time to start working again so I dove into that. Mozilla took longer than I expected though and it was May before I heard back. In that time Janrain took interest in me and I interviewed with them and got a job offer.

May I started really pushing at Mozilla to see what was going on with my application. While Janrain would be a fantastic place to work and I have friends there, Mozilla was really my number 1 choice. Toward the middle of the month I was getting desperate and my offer from Janrain wouldn’t last much longer, but that is when my current boss Wil Clouser stepped in to move my application along. Over the course of Thursday to Tuesday one week I had gone from being uncertain they even heard my application, to doing a phone interview, then in person interview then flown down to Mountain View.

That is another notable first. I’d never been flown or otherwise transported to a place for an interview. They’d always been in Portland and I’d ride my bike or the bus to their office, talk to some people, maybe get some coffee/lunch, then go home. They flew me to Mountain View, put me in a hotel and then spent a day interviewing me and took me out to lunch. It was remarkable to me. The most remarkable thing though, was that Mozilla saw it fit to hire me. May 28th was my first day.

June, this was a hectic month of learning how to exist as a remote employee in the hurricane that is Mozilla. Working out how to be remote is something I should blog on, if only so I think about it more and try to refine things. Working at Mozilla was what I expected it to be and more. My team I am on is brilliant. Andy McKay and Chris Van in particular were greatly helpful to me. Andy for being brutal in his code reviews (and I think he was holding back!) which got my code into the standards needed for Mozilla. cvan for sending me personal messages checking on me and reassuring me. Without them I feel like I would have sunk pretty quickly.

Another notable first in June was the fact that I gave my first talk at a conference! I spoke about ZenIRCBot one of the focuses of my time away from the busy world of working. The talk wasn’t wonderful, but I had a co-worker in the room Jeff Griffiths who asked great questions to draw me back on track turn the talk from a potential failure to a success!

July was more getting used to working at Mozilla, it was also about the time I started taking StarCraft 2 a little more seriously. Not as serious as I take it now, but I was practicing with some regularity and a little bit of deliberateness. It ended with the start of my first work week and the chance to meet a lot of my co-workers and teammates that I’d never met before, we had a good time in Mountain View.

August started with the end of my first work week, one of the last night we found the diveyist dive bar in Mountain View. That was a good night drinking with my teammates and wandering around MV. Not an exciting month other than that, lots of working, lots of SC2.

September was my 3rd DjangoCon. It took me to the east coast for the first time. I spent a week in Washington DC. I got to hang out with my SC2 friends in real life for the first time and participate in my first SC2 tournament. I didn’t make it to the finals but I did have the top two players in my bracket so I am not very worried about that. Besides, come next PyCon I will be placing at the top of the tournament!

I did the tourist thing and spent time in Washington DC proper looking at the sites, eating a hot dog from a cart, etc. Other than the terrible weather (90F with 90% humidity most days then a tornado near by) it was a really fun trip.

Finally it is when I started my Python eating a Ruby tattoo that I am really happy with and will have the whole series on here when it is finished. This is my biggest tattoo (and second one) and is probably going to be my biggest tattoo for a long time.

October is when I did my first AMA on reddit. I got the opportunity due to it being one for all Mozillians. It was a lot of fun to try to answer all the questions that the community had. There were trolls but overall it was a pretty great experience. A couple more sessions on my tattoo in this month as well. Pretty much it.

November was some more work on my tattoo, then my first time spending what qualifies as a major holiday in my family away. I went down to Fresno to spend Thanksgiving with Eva’s family. This was a big deal for me. Spending time away from my family during the holidays was weird but it was really great to get to meet her family and hang out with them for a few days. It was also different to be able to eat one of our thanksgiving meals outside since it was so warm!

This month is when I buckled down and decided that I am going to be good at SC2. That I am going to put in the time and effort. I took over the Mozilla After Hours Gaming League team. Started doing concentrated practice and studying streams. It is also when I started building SC2 tools like SpendingQ.

December had the color completion of my tattoo, a family reunion, and the first preseason matches of the AHGL. I took the week of Christmas off to hang out with family and work on my blog, as well as practice SC2 a bit. This iteration of my ability to blog came to life toward the end of the month. It has really awakened the desire to write for me again and it has been a lot of fun.

The last day of the year, I spent with Eva as well as other friends having a wonderfully fun and relaxing night. We rang in the new year singing Auld Lang Syne despite at some point that day getting food poisoning, it was a pretty great end to the year.

2013: I plan to do a looking forward post as well. But this is all I have about 2012 for now. Thank you all for spending it with me. I had a great time and feel like I came out a better person than I was when I started, or at the very least, a more experienced person.