Fundamentals

Just like in StarCraft 2 and in writing software, fundamentals are important for life. I was thinking about how I’ll plan out my time to in enough cycling time, StarCraft 2 time, and work/side project time when I realized in or to get this stuff done, I’m going to need a proper sleep schedule. On top of that I need to have discipline, another fundamental skill.

What it is looking like is I need to spend time working out my sleep schedule, eating and work habits, as well as chores. Getting to a good base for chores will be on the easier side since my landlord is coming for a yearly inspection tomorrow. Some base needs for chores are getting in a more regular cycle of laundry that isn’t just, “I’m completely out of t-shirts, boxers and socks, I should do laundry.” Preferably, I’d get to a point where I was doing laundry weekly and didn’t let it pile up until I have 2-3 loads to do.

Other chores include chipping in with house cleaning and doing bike maintenance. If I start doing other things (like cooking at home) better, I’ll find myself using the kitchen more and needing to contribute there regularly. As it is, I don’t feel like I help out in the house enough. On top of that, I haven’t been doing the weekly/monthly maintenance on my bike like I should be, my chains need to be lubed, my tires are low on my specialized, etc.

Sleeping, which I should be doing right now as it is 1am, is generally easier to fix over a weekend when I can enforce a sleeping schedule and just deal with any tiredness without a drop in my work productivity. I’d like to get in a schedule where I went to sleep at 9-10pm, woke up at 5-6am, then start work at 8-9am. Between the waking up and the working I’d like to get in a light breakfast, cycling, more breakfast, then a shower. On top of setting a regular start time for work, this will also put me on the path to set new personal records on my centuries and other long rides this year.

A thing touched on couple times above that is also fundamental is dietary needs. If I am going to be training and fixing up my sleeping, then fixing my eating habits is also required. Eating when I wake up in the morning will help with adjusting to the sleep cycle and maintaining it. The fuel will help me with being able to cycle for an hour or two in the morning. And finally, if I do it properly, I should lose some weight as well.

Reporting what I’ve worked on to my boss was an important step for me to find, reclaim and motivate my productivity. But I fell out of it when I was in Mountain View for a week and have been forgetting to work on it. We also moved to a small teams setup at work (which I’ll talk about in a Tech post), which has me doing 2 more meetings each week, but focuses the parts of the code base that I am expected to work in and, to an extent, own.

These are all fundamentals that I should practice, the cycling, SC2, side projects, etc are all secondary. Focusing on them to the detriment of these things will end up harming the whole. This means until I get control of my sleep schedule and have done so for a while, late night hacking sessions or SC2 with my friends at midnight are things that aren’t allowed to happen. Eating nothing but junk food all day is not ok. Starting my evening gaming or events before I’ve gotten my work goals for the day done, wont be happening.

To quote zefrank, “Warts and all! Let’s start this shit up!”

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:

Today:

  • 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

Tomorrow:

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.

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.

Different City, Same Place

I am sitting in a cafe in Eugene waiting on my girlfriend Eva to get here so we can drive back Portland. I’ve never really hung out in Eugene, but after asking my friends I found a cafe to hang out at. Now I am sitting here, hacking, chatting, and watching a stream and it feels like home.

This is something I find really interesting. I’ve noticed it a few times previously but this was rather pronounced. I completely forgot I was in a difference city for a couple minutes. Then I heard a sound outside of my headphones, looked up and realize it wasn’t one of my normal cafes.

All it takes for me to enter a flow state is some familiar music, a decent problem to work on and my computer. The last is an interesting note, when a computer is new (new laptop or changed input device like keyboard) I have a really hard time going into flow. It appears to be a matter of comfort, which my environment doesn’t play as much of a role in as I thought it would.

Maybe I could live in another city, I’ve always thought of it as uncomfortable and assumed it would negatively impact me in a number of ways. But, if I have my computer, headphones and something interesting to work on, I think I’d be fine.

Just some random musings.

Goals

Goals is a topic I cover now and then. I also have a history of pondering it then not sticking to things I’ve come up with that would better my life in some way. I think a common thread through this is my lack of stability.

While I am stable enough that I am not living on the streets, that is about where it ends. Some days at work I get a lot of work done, other days I get nearly none done. I can’t really draw a line to figure out what is causing this either which is something that really bothers me.

In November I was going running 3 times a week with my girlfriend. It was pretty great, I got some good shoes for it, wasn’t getting much/any joint fatigue and generally started feeling better about myself. I’ve since fallen off the wagon and need to get back on.

I gave up sweetened drinks at the start of November as well. This one stuck a lot harder, but recently I’ve cheated a few times. I had a couple rum and cokes at the bar, a 5 hour energy when I wanted to game for longer, etc. I’ve not strayed far from this one so it is very likely that I’ll be able to keep this up and go back to my sticking to it. Perhaps even expanding it to no foods with fructose (including sucrose) in them other than naturally occurring (fruits and such.)

I want to get better at SC2, I think my ultimate goal is to hit Master league. Unfortunately I can’t seem to regimen myself enough to get out of Silver league really (though I did make it out of Bronze into Silver in HotS which has me pretty excited.) I am hoping blogging about my progress and looking more into that will help.

Really, that is what a lot of getting this site off the ground is. A place for me to blog about my progress. Life will have my exercise and diet stuff, tech will have side projects and work, and SC2 will have (you guessed it) StarCraft 2 developments.

So here is to a new year, a new blog, and hopefully by the next time this topic comes up, a new me that will be hard to recognize other than the beard.

Long Term Goals

In my interviews at Mozilla Mike Morgan asked me what my long term goals are. This is a topic I’ve visited once before. Here I am about a year later. My life has changed quite a bit, but I’m finding it hard to list any long term goals I’ve achieved.

I told him one of my reasons for joining Mozilla, which is learning how to deal with scaling projects to the extremes that they’ve had to. Another is to someday reach the level of Kenneth Reitz and others like him in the open source world.

Goals are hard to achieve if there is no quantifiable metric for progress and success. Goals that are more abstract, like learning to scale software projects, are much more difficult. The best I can do is reflect periodically and make sure I am learning the skills I’d like to. The same goes for becoming a better citizen of the open source world.

Goals have different natures as well. For instance, I have the goal of becoming a consistent blogger, so I decided to blog at least once a week for a year. I can tell if I am doing well by how many weeks I’ve done it and how many I’ve missed. Another type of goal is like my goal of getting into Master league in StarCraft 2 which has an end condition, and even some intermediary goals of getting to Platinum and Diamond leagues.

I’m going to take the next week to really consider my goals and try to come up with a list of 1, 2, 5, and 10 year goals. Of course the longer the goal the more abstract it’ll likely be, but I can at least use it to guide myself.