2012 wrap-up

I usually end the year with a bit of a retrospective and considered plans for the next year, but I think that this time I’ll just give a brief recap of the months which are undocumented on this blog, and mention a few minor things that I have planned for this coming year. (Hmmm, maybe that isn’t so different after all.)

So here’s what you’ve missed:

  • June: A family trip to the UK. I learnt to appreciate the phrase “Make hay while the sun shines”. The weather reiterated the concept on a daily basis.
  • July: A long stop-over in Thailand. Amelia met the extended family and I caught up with an old school friend.
  • August, September, October, November: Work!
  • December: Work!… Oh, and a couple of weeks off – in which we further child-proofed the house and took care of some general gardening and cleaning. Yeah!

As you can see, I’ve been pretty busy with my business partnership: Hungry Sky. There’s also the day-to-day excitement of being father to a baby who has learnt to play, crawl, babble, eat all sorts of things, and walk while holding your hand.

Here are some random photos:

I find it amazing that Amelia’s already more like a little girl than a little baby.

Oh, I almost forgot about those minor things that I have planned for this year. In general, I want to spend more time just getting on with things. I tend to waste a fair amount of time deciding on the details of what to do. In the end, it’s better to just get things done – whether or not the result is “optimal”.

Bearing that in mind, I’m embarking on daily creative activities which I will post to this blog. I bought a book and everything. Check it out:

2013-01-01 20.52.34

There’s more information on the Make Something 365 website. I’m still not entirely decided upon a theme, but I’m thinking: Papercraft. :)

Leisure programming

Nowadays, I usually write technical blog posts over on the Guts Up! blog. However, I figured that I could write about some weekend leisure coding on my personal blog instead. (Also because I haven’t written anything here for a while!)

The great thing about leisure programming is that I play around with technology that (being prudent) I may not try out for commercial work. I’ve discovered most of my favourite design patterns, libraries, and languages via programming in my own time – and most of them do eventually make their way into my work code.

Today I decided to try out the (fairly recent) support for CoffeeScript (an elegant programming language) on nodester (a free nodejs server hosting platform).

Here’s a quick rundown of what was involved:

  1. I started by following instructions from the official blog post on how to setup a CoffeeScript project on nodester.
  2. Looks like the the code snippet indentation is wrong (or not displayed properly in my browser), but it’s a quick fix.
  3. The blog post notes that the fixed port will need to be changed to a nodester-provided port. Also a quick change.
  4. Hmmm, getting a 503. Check the log file. Turns out the coffee-script package isn’t installed on the remote server.
  5. Finally get it working by adding a package.json file (defining the nodejs version and adding a coffee-script dependency) and running: nodester npm install [appname]

(I’ve omitted the appname because it’s kind of a surprise for someone. Although it’s probably something that is easy enough to find out.)

Now that it’s working, I create a git repository on bitbucket and push the code there for version control. When setting up the nodester app, I created a local git repository (and “nodester” remote for deployment), so this is very straightforward. I just add the bitbucket repository as the remote origin, and then push the local git repository to it.

So now I have a small CoffeeScript server program that can deploy to nodester, with code hosted at bitbucket. All free and online. Good stuff!

Hmmm, I’m not sure what I really wanted to illustrate with this blog post. Maybe that there are very few barriers to getting web services up and running, and that programming is essentially the process of solving a series of (mostly very small) problems (usually by researching solutions and following instructions).

Eight weeks of parenting

It’s been eight weeks since Amelia arrived, and I’ve been pretty quiet online as a result. Partly due to lack of time, but also due to lack of interest. I feel more engrossed in my day-to-day life and less interested in the latest news or social gossip. I spend a lot of time reflecting on how things are going, and it all feels a bit too personal to flippantly share.

That being said, everything is occuring so quickly and I don’t want to forget what’s been happening (hence this post). I also wanted to write something for other people who may be wondering what it’s like to have a newborn. For us, it went something like this:

  • Week 1: Mostly staying in hospital, learning from the midwives.
  • Week 2: Sometimes wondering if we made the right decision to have a baby.
  • Week 3: Enjoying family time. Not wanting to go back to work just yet.
  • Week 4: Back at work. Heidi and I are stressed, and need to talk to each other a lot.
  • Week 5: Amelia is very colicky in the evenings. It’s difficult to bear.
  • Week 6: Feels like Amelia has doubled in size and is much more robust.
  • Week 7: Her colic is actually milk protein intolerance. Heidi is on dairy exclusion.
  • Week 8: Amelia is smiling and giggling and sleeping well. It’s very nice.

Staying at the hospital was fantastic. Although Heidi got pretty cabin-fevery towards the end. It was a very supporting environment, a bit like a training camp for new parents. Surprisingly (to me), most of the midwives had rather different opinions on child-rearing. I can imagine that some people would find that frustrating, but I saw it as reinforcement that how to take care of an infant is very subjective and that we should just choose what works for us.

My general parenting philosophy has been rooted in pragmatism. Some key points:

  • Feed her when she is hungry. Let her sleep when she is tired.
  • Infants don’t play mind games. If they are complaining there is a reason.
  • Infants don’t play mind games. Don’t take anything personally.
  • Togetherness is important. Sleep in the same room. Hang out a lot.
  • Parent as a team. Talk openly, make decisions together, support each other.
  • The baby’s needs trump the wants and convenience of others.
  • There’s no right way to parent. Just be conscientious and diligent.

Our early concerns about whether we made the right decision to have a baby were ostensibly due to the immediate dramatic change in lifestyle and appreciation for the amount of responsibility parenthood entails for such a long period of time. I imagine that it’s a natural response, and not something to feel guilty about.

An unexpected outcome of becoming a father is that I’m now a lot more assertive. I think it comes from the imperative to meet Amelia’s (and our) needs over someone else’s wants, expectations, or convenience. Here are some examples of things I’m now very happy to say to anyone:

  • Don’t try to play with her, she’s asleep.
  • That can wait, I’m tending to the baby.
  • Goodbye. (Followed by hanging up immediately)
  • No.

It’s been a change for us, since we’re usually rather accommodating. Overall, I think it’s very positive. Potential social unease and awkwardness tends to be mitigated as early as possible, and my business engagements have become more focused streamlined. I don’t want to waste time!

Another unexpected change has been the realisation that Heidi and I still have a lot to learn about ourselves and each other. Being a parent poses a lot of challenges and exposes personal characteristics that have never been tested or visible. I feel that we’re becoming better people, or at least a better partnership.

Perth at night as colour stripe

@tehkellys tweeted a fantastic photo of the Perth skyline at night. What struck me about it was the reflection of all the different colours of light in the Swan River.

I threw together a quick colour stripe version (click for full-size version):

Perth has an interesting night-time colour profile, which I had never noticed before. Hmmm, now I’m interested in seeing colour stripes for other cities.

Contemporary rhymes for baby playtimes

Heidi and I took Amelia to a new parents group yesterday.

As part of the proceedings, we learnt a few nursery rhymes and were challenged to come up with some of our own. Here are a couple we improvised this morning for Amelia’a playtime.

Firstly, for the body builder parent:

These are Amelia’s pectorials

These are Amelia’s guns

These are Amelia’s abbadabbadabbas

And these are Amelia’s buns!

Finally, here’s one for all new parents:

Milk in the front

Poop out the back

What’s in the middle?

Tickle attack!

Breakfast sandwich cake

I made this for a breakfast picnic on the weekend:

Here are the ingredients (I also used some milk and butter for scrambled eggs, a cherry tomato, and some apple and chilli relish):

I sliced the bread into four pieces and discarded the top crust, then arrange the ingredients into the following layers (from bottom to top):

  1. Bread
  2. Scrambled eggs
  3. Bread
  4. Vege-bacon, spinach, and relish
  5. Bread
  6. Philadelphia cheese topped with chopped vege-bacon and half a cherry tomato

It was delicious. Unfortunately, I didn’t get any photos of what a slice looks like. You’ll just have to make it yourself.

Obviously inspired by this ordinary Swedish meal:

Orbitorus

Orbitorus” is a game that I created in my spare time over the last few days for Global Game Jam 2012. Play it here and let me know what you think! ;)

The theme for this year’s game jam was this image (of the Ouroboros):

I was working alone (again :/) since I wasn’t able to attend for any real length of time (but I could work at home on my laptop).

Concept

My initial game idea was a sort of “serpent rocket” game in which the player had to launch a rocket in such a way that it would eventually hit it’s own tail (launch point). While interesting, the feat of aligning the rocket’s path turned out to be horrendously difficult for a player (me) to achieve.

Design Iteration

The game design then proceeded in more of an abstract direction. The serpent “tail” was visually distracting, so I just left it out (changing the serpent to an “Orbitorus”). I still wanted to communicate the feeling of return, but didn’t want to burden the player with the onerous task of a perfectly aligned return flight. So I changed the goal to activation of nodes (attractors) and made the return automatic after the goal was complete.

These changes made the game feel much better, but it had little replay value. Inspired by cyclical level sets (prevalent in early 80s games such as Gorf), I figured that I could further reinforce the feeling of “infinity” by creating a looping set of levels which would be classically easy (ish) to complete, but difficult to master. A simple way to encourage this was to record the player’s score when they first complete the level, and to later require them to beat that score the next time they encountered that level.

The beat-your-last-score mechanic worked surprisingly well. It introduced a fair amount of replay value because it created another consideration and challenge. Players realise that they should progress incrementally (beating the existing high score by as little as possible) in order to progress further and further into the game. Over time, I found that I could not only pass every level, but also pass them in different ways with a relatively controlled path and score.

Player Experience

The theme of incremental progress resonates strongly with me. It seems that people often want to wildly proceed in large bounds, but often burn themselves out and fail to achieve their larger goals. So I’m happy to have created a game that encourages and rewards measured actions, practice, experience, and thoughtfulness.

When I started playing the game, I didn’t think that I would make it past level 11. However, my current high-score is level 39 and I’m already thinking of strategies to get even further:

Final Thoughts

Overall, I’m very happy with this game. Unlike my previous Global Game Jam games, I focused more on gameplay (rather than story or message) and I feel that Orbitorus is much more enjoyable as a result (which isn’t always the end goal, but was important to me on this occasion). Moreover, the game conveys a stronger message as a result of greater gameplay depth. So I feel that it’s a success in that regard as well.