Hacking Management

7 Common mistakes in Go and when to avoid them

Not a generic list of programming mistakes, these are the lessons I wish I learned earlier while developing Go. I’ve spent the past two years developing some of the most popular libraries and applications written in Go. I’ve also made a lot of mistakes along the way. Recognizing that “The only real mistake is the one from which we learn nothing. -John Powell”, I would like to share with you the mistakes that I have made over my journey with Go and when you can avoid them.

Hugo Summer 2014 Update

Hugo, the fast and flexible static site generator, is really coming of age. I wanted to give a quick update about the progress Hugo has been making over the past couple months. New Website Hugo can now be found at http://gohugo.io. Update your bookmarks. New Team Members I want to formally welcome our newest team members. Tatsushi Demachi has been making excellent contributions hugo, particularly with extensions to the template capabilities.

Evangelism is NOT Sales

I recently had a discussion with a CFO of a technology company. We were meeting because he is trying to better understand the role technical evangelism could play within his company. Ten minutes into our conversation he said, “so evangelism is pretty much rogue sales”. Internally I cringed. I politely corrected him that the two could not be further apart. Allow me to be a bit philosophical or rather, etymological here.

Go for Object Oriented Programmers

This presentation was given at OSCON 2014. Object Oriented (OO) programming has dominated software engineering for the last two decades. The paradigm built on powerful concepts such as Encapsulation, Inheritance, and Polymoprhism has been internalized by the majority of software engineers. Although Go is not OO in the strict sense, we can continue to leverage the skills we’ve honed as OO engineers to come up with simple and solid designs. Gopher Steve Francia, Author of Hugo, Cobra, and many other popular Go packages makes these difficult concepts accessible for everyone.

Using MongoDB with Go and mgo

This presentation was given at OSCON 2014. This presentation will give developers an introduction and practical experience of using MongoDB with the Go language. MongoDB Chief Developer Advocate & Gopher Steve Francia presents plainly what you need to know about using MongoDB with Go. As an emerging language Go is able to start fresh without years of relational database dependencies. Application and library developers are able to build applications using the excellent Mgo MongoDB driver and the reliable go sql package for relational database.

Getting Started with Go

This presentation was given as a Workshop at OSCON 2014. Description New to Go? This tutorial will give developers an introduction and practical experience in building applications with the Go language. Gopher Steve Francia, Author of Hugo, Cobra, and many other popular Go packages breaks it down step by step as you build your own full featured Go application. Starting with an introduction to the Go language. He then reviews the fantastic go tools available.

Pointers vs References

Some languages including C, C++ support pointers. Other languages including C++, Java, Python, Ruby, Perl and PHP all support references. On the surface both references and pointers are very similar, both are used to have one variable provide access to another. With both providing a lot of the same capabilities, it’s often unclear what is different between these different mechanisms. In this article I will illustrate the difference between pointers and references.

Is Go an Object Oriented language?

To truly understand what it means to be ‘object-oriented’ you need to look back at the origination of the concept. The first object oriented language, simula, emerged in the 1960s. It introduced objects, classes, inheritance and subclasses, virtual methods, coroutines, and a lot more. Perhaps most importantly, it introduced a paradigm shift of thinking of data and logic as completely independent. While you many not be familiar with Simula, you are no doubt familiar with languages that refer to it as their inspiration including Java, C++, C# & Smalltalk, which in turn have been the inspiration for Objective C, Python, Ruby, Javascript, Scala, PHP, Perl… a veritable list of nearly all popular languages in use today.

9 MongoDB 2.6 Drivers Released

I’m pleased to announce the coordinated release of drivers in 9 languages in preparation for the release of MongoDB 2.6. This is the largest driver release in the history of MongoDB, both in terms of code changes as well as in terms of drivers released. Official Drivers for C, C++, C# (.net), Java, Node.js, PHP, Python, Ruby and Scala were all released with Perl following shortly. In the upcoming weeks community drivers will be updated to take advantage of the new features present in MongoDB 2.6.

Cross Compiling with Go

One of the great features of golang is that you can compile executables for many different platforms and architectures from a single machine. It’s really nice to be able to provide executables of Hugo for a bunch of different platforms and architectures without having to have all these different machines in a build cluster. As I’ve been working with Hugo, I’ve wanted to make the experience of cross compiling as easy and painless as possible.