I’ve been fortunate this last year in getting to spend time in several radically different learning environments in a relatively short span of time. These experiences have gotten me thinking about the relative pros and cons, also about how I respond to the amount of structure the environment offers.
I’m just about finished with my second iteration as an apprentice at 8th Light. Where my first iteration centered a lot around reading and learning how TDD and Ruby work, this week I focused more on coding. I spent most of my time just implementing the several stories of my iteration: some minor (but important!) output tweaks, implementing a play again loop, and adding two AI’s to the game. I also did quite a bit of refactoring and general code cleanup.
I’ve been using Emacs for about as long as I’ve been programming. So that makes it nearly eight years now. I like to think that I’ve gotten reasonably competent with it, and somewhat more importantly, I have customized my emacs to fit my mind like a glove.
I also touch type, but I use the Dvorak keyboard layout. These two things combine to make it so that I can write programs at a speed close to how fast I can conceive them. This is important, not because it means I can code faster than other people, but because it means I can get the thoughts out of my head fast enough that they don’t slip away.
This was brought into sharp relief for me a few days ago when I did some pairing with my mentor Zach using his computer. You see, Zach uses the standard QWERTY layout, and he also uses Vim.
This is my first week at 8th Light and I’ve been working on writing an object-oriented Tic Tac Toe program. This would be no big deal for typically, even though I’m doing it in a language I’m unfamiliar with.
Except! I’m trying to very rigorously drive the development with tests.
About a week ago I got fed up with a terrible website that had comics on it I wanted to read. So I decided to write a little web app to make the reading experience more pleasant. Since I’m an avid Clojurian, I’ve been interested in checking out Clojurescript for doing web development, and in particular exploring the wonderful new world of React.js wrappers available in Clojurescript. This is the story of how I learned to setup a Clojurescript project.
It’s only been two days and already a lot has happened, so it seemed like time for an update. Oh, BTW since I haven’t mentioned it on my blog before, I just moved to Chicago to work at 8th Light.
I arrived in Chicago on Tuesday afternoon/evening and had an uneventful time finding my Airbnb in Edgewater on the north side of Chicago. I spent the evening searching house listings on Craigslist and Zillow, and sending emails trying to schedule viewings for the next few days.
During the last week of Hacker School I helped Leta sort out some issues she had with her blog setup and restore everything to sanity. It was a lot of fun and the setup is pretty straightforward so I thought I’d do a short write-up on what we did and why.
To be clear, this blog post is about solving the particular problem of how to organize a statically generated site/blog. The particulars I’m going to discuss are for when you host the site on Github Pages but you need to generate the site locally because you’re not using vanilla Jekyll or not using Jekyll at all.
I wrote recently about my (second) experience trying to get started using LLVM on my Macbook. Shortly after that, I became interested in combining my interest in LLVM with my interest OCaml. As it turns out, this was a much easier task than I anticipated.
A few weeks ago, I decided that one of the things I wanted to tackle during my time at Hacker School was getting familiar with the LLVM project. To that end, myself and several other Hacker Schoolers formed an informal group to work through the official LLVM Kaleidoscope tutorial. We made reasonable progress at first, but as soon as we actually had to start dealing with the LLVM tools, I started encountering problems.
Long story short, I ended up getting frustrated with the state of the documentation surrounding LLVM and moving on to working on other less upsetting projects. This last weekend though I ended up getting back into it. I tried two different approaches.
So, in the course of trying to prepare a presentation for this
Thursday (today!), I ended up creating a program called
demonstrate.sh. Basically, it lets you write a script, meant for an
interpreter (like bash, python, irb, coffee etc.) and then execute it