Setting Up a Killer Go Development Environment

While there are some great resources out there for learning Go, I found that there are not a lot of resources on what to do next. In this post, I’ll share some tips and tricks you can use to set up a powerful development environment. Next week I’ll talk about how to deploy Go to a production server using git post-recieve hooks.

What’s Go?

Go (sometimes called “golang”) is a programming language created by Google engineers in 2009. It features an intuitive concurrency model, fast compile times, static-typing, and full garbage collection. It’s a general-purpose systems programming language with some of the syntax and convenience of modern scripting languages.

Go is young. It’s different. And it’s awesome!

Learning Go

If you haven’t learned Go yet, there are two resources I’ve found incredibly helpful…

Go has a pretty small standard library, and you’ll be surprised how fast you can pick up the basics.

Step 1: The Go Workspace

For the Go build tools to work best, it is expected that you follow the conventional directory structure. You’ll need to create a workspace somewhere (I put mine …

Summer Update 2013

So… this one has been a long time coming. Here’s a look at what I’ve been up to this summer and what’s coming next.

Hello, San Francisco!

This summer, I’m participating in the Duke-sponsored Summer Innovation Program. It’s the same program I did last summer in Durham, except this time, I’m in San Francisco. I’ve been here for about a month and a half now.

Speaking generally, SF feels like a more chill version of New York. There are plenty of successful people and plenty of things to do, but there’s not that stereotypical “rushed” feeling that people tend to associate with large cities. It’s easy to start a conversation with a stranger, and I’ve already met a ton of interesting and friendly people.

This is the place to be for technological people. It is not uncommon to overhear people on the street talking about iPhone application mockups, the pros and cons of using jQuery over vanilla javascript, or the differences between compiled and interpreted languages (in fact those are all actual examples of conversations I overheard). Walking through the streets of San Francisco is like walking through a physical manifestation of the…

Hacking the English Language: Part Two


In part one, I discussed some of the shortcomings of the English language and how we might be able to fix them by using a phonetic alphabet. There are a few problems with that approach:

  1. Heterographs are impossible to distinguish in written text.
  2. Frankly, it looks stupid.
  3. It requires more letters per word on average.
  4. There is not a one-to-one correspondence between letters and sounds.
  5. It doesn’t fix any problems that are inherent to the language itself.

Now I want to discuss some other changes we could make to address the problems above. These ideas are a bit more extreme.

·𐑲𐑛𐑰𐑩   2:   ·𐑕𐑱𐑥   ·𐑤𐑱𐑙𐑢𐑧𐑡,   ·𐑛𐑦𐑓𐑮𐑧𐑯𐑑   ·𐑨𐑤𐑓𐑩𐑚𐑧𐑑

The above reads: “Idea 2: Same Language, Different Alphabet.” Depending on your browser and operating system, it might not render correctly.

As much as I would lov…

Hacking the English Language: Part One

The Problems

The problems with the English language are many. Why do we have silent letters? Why are read and read, and lead and lead spelled exactly the same way but pronounced differently. Why do to, two, and too sound exactly the same even though they are spelled differently? Why does the letter A have so many different pronuncations? Why does the letter X exist? Why do we sometimes use “ph” instead of the letter F? Why does the letter G sometimes sound like the letter J?

I could go on, but this 102 year old man does a better job than I could at illustrating why English (particularly the way we spell it) is ridiculous. And I mean that in the extremely literal sense of the word– it is worthy of being ridiculed.

In short, the answer to all the questions above is that English is a macabre, hodge-podge combination of several other languages constructed and contorted by not-very-forward-thinking common folk.

And now I endeavor to ans…

Going Open Source

Just wanted to let you know that all the source code for my blog is now available on github. Feel free to use/copy/modify any part of it. And if you think my code sucks, let me know how I could make it better.

Recently, I changed the homepage to show truncated versions of longer posts instead of the whole thing. You can click a “read more” link to see the entire post. I also added next and previous links at the bottom of each post. In addition, I made some improvements to the image compression technique which will slightly increase performance.

More posts coming soon!