CODE GANGSTA

Awesome tools and screencasts for Go programmers.

Essential Go Bonus: Concurrency

You guys asked for it and now it’s finally here! I just updated Essential Go with a 5 part bonus series on concurrency in Go. If you already own Essential Go then you already have the new videos waiting for you in the course. If you haven’t already purchased Essential Go, now is the perfect time. ($15.00 is an absolute steal)

Read On →

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 On →

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 On →

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: @codegangsta damn!

Read On →

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 On →

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 On →

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: package main func main() { println("Hello world") } Running this should obviously print “Hello world”.

Read On →

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: Dependency injection is not a virtue in Ruby bit.ly/ZtzSz9, and then there’s the immediate criticism: bit.ly/ZtzQHw — Nicola Iarocci (@nicolaiarocci) January 7, 2013 Let me start off by first saying that dependency injection is not a catch-all for managing dependencies in Ruby.

Read On →

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 On →