Essential Go Bonus: Concurrency

Read more →

New Screencast: Essential Go

About a month ago I spread the word via friends and Twitter that I’ve released a new online video course called Essential Go. If you haven’t already heard about it, Essential Go is quick and easy way to get your feet wet with all of the essential features of the Go programming language. The reception so far has been awesome! One piece of feedback I hear quite often is that I am not charging enough for the course.
Read more →

My Thoughts on Martini

It’s never easy to take honest criticism, especially when the target of the criticism is considered your ‘baby’. Earlier this week, Stephen Searles posted an entirely honest review of Martini and how, despite the popularity and hype, there are numerous reasons why Martini should not be used. I have been asked by many people what my thoughts are regarding the reasons not to use Martini. I figure that it would be best to compile these thoughts into a blog post so I can shed some light on my opinions and how they may have changed over time.
Read more →

Announcing Martini: Classy Web Development in Go

Last night I tweeted about a web framework for Go called Martini. Martini has a non-intrusive design, and has awesome routing and middleware support. http://martini.codegangsta.io/ Below is a basic “Hello world!": package main import "github.com/codegangsta/martini" func main() { m := martini.Classic() m.Get("/", func() string { return "Hello world!" }) m.Run() } So far the response has been fantastic, I am excited to see which ways the Golang community can come together to make something awesome:
Read more →

On Distributing Command line Applications: Why I switched from Ruby to Go

For as long as I have been using it, my go-to language for creating CLI applications was Ruby. After all, Ruby is a robust, mature language with many things to make us developers want to gyrate with joy (okay maybe that is just me). To this day I still hold the opinion that Ruby provides the most elegant amount of expression when it comes to my everyday programming activities. Whether it is the language or the community that fosters clean code, I feel like an artisan every time I sit down to write an application or library in Ruby.
Read more →

Practical Go: Build Tags

In our last post we wrote a simple set of bindings for libspotify in Go. By the end of the post we had an example compiling, but we had a bad API key for our spotify application. One obvious way to recify this would be to grab an API key if you are a Spotfy Premium user. Another workaround is to use a mock library to make sure the code is working the way we want.
Read more →

Practical Go: C Bindings

I have been playing with Go lately. The language itself has a lot going for it, one of which is a decent set of interop with existing C code. Today I am going to walk you through a practical example of how this is done by showing some code that I have been working on lately with Go. The Simplest Hello World Assuming you have your Go development environment all set up, go ahead and create a new go file with the following contents:
Read more →

Dependency Injection in Ruby

Dynamically typed languages like Ruby are an interesting beast when it comes to dependency injection. The topic itself has been debated in the Ruby community every once in a while: Let me start off by first saying that dependency injection is not a catch-all for managing dependencies in Ruby. There are many other ways to abstract hard dependencies within your code. Today I want to specifically talk about programming to interfaces in Ruby and how to solve the “dependencies” problem in that space.
Read more →

A Warm Welcome from the Code Gangsta

The day finally has arrived. I am starting a blog. Introduction For those of you who do not know me, my name is Jeremy Saenz. I have been building software since graduating high school. Discovering that I did not want to attend college, I naturally picked up software engineering as a passionate craft that I care deeply about. Back in 2008 I was just starting to wade (drown perhaps is the better word) through the vast sea of knowledge that is the software engineering industry.
Read more →