Hacker School Checkpoint

It’s hard to believe but I’m two months into Hacker School which means there is not much time left (1 month!). It has passed quickly so I wanted to write a post that serves as a kind of “checkpoint” to briefly look at what I had hoped to accomplish in this batch and to orient myself for the final stretch. Firstly, I had a gander at my application (yes I saved it) and took note of the projects I had listed there:

  • Browser based Oculus Rift video player.The final project might be a browser based 360 video player with Oculus Rift support.
  • Complete the “Elements of Computing Systems” textbook - build a computer starting from logic gates, CPU, memory, (virtually) then moving on through the software heirarchy into a complete integrated system.
  • Develop an iphone application game called “Quick Draw”. Much like a country western, as you approach other players of the game in the real world with your phone, the first to take their phone out of their pocket and point it towards the other will win the “match”.

I only listed these three projects, which wasn’t very ambitious really. I have roughly completed the first two (I have a couple chapters left of nand2tetris). I haven’t done any mobile development so far.

Additionally I have spent time working on other projects that I did not plan at the outset:

  • Learn a bit of Elm and expose myself to FRP (Functional Reactive Programming). Created a simple game called Vessel.
  • Spent about a week learning about Haskell. Elm is very similiar so it was a natural segue.

I guess that’s it for the major projects. It appears kind of measly when written out like this, but what isn’t described here are the multitude of small “learning events” that I participated in. Examples include short talks by the facilitators, the weekly lecture on Mondays by residents, presentations by students on Thursdays, and most importantly the informal pairing and discussions that occur every day and during chat. Other things I’ve learned are functional programming in Python, what a Smalltalk programming session looks like, how git internals work, assembly programming in x64, writing a very simple kernel, and weird distros of linux, just to name a few.

Looking forward I hope to finish strong and plan to complete a few more things:

  • Complete an iphone application and distribute in the app store
  • Learn some more Haskell. One of my goals was to learn a functional language.
  • A script that can easily be added to a page to take a canvas element and place it into a 3d scene so it can be played in the Rift. I’m imagining being able to play Vessel or any other HTML5 canvas based game in the Rift.