Recent Articles

The New Website is Live

Gopher Image by Egon Elbre After quite a bit of time redoing my site, the new version is now ready for prime time. The new version is powered by Hugo, which is a static site genreator written in Go. It was previously powered by Ghost which is a little different, so if you see any dead links or anything like that let me know. Changing to Hugo allowed me to make quite a few changes that aren’t purely cosmetic.

Disabling Specific Snippets (autocompletions) in Atom

I run into this issue a lot so I wanted to document how I handle it for others who are experiencing the same issue. Let’s imagine you install this new package in Atom like GitHub flavored Markdown and it enables a snippet that you don’t like. In my case it was the code snippet which expands into the triple tildes (```) used for code samples in a markdown file. The first thing you want to do is figure out what source the snippet was introduced under.

Using named return variables to capture panics in Go

Sometimes you can't help but call a function that might panic. Rather than letting it blow up your code, we learn how to use a deferred function and named return variables in order to capture the result as a standard Go error.

"I haven't needed X in 3 years" is a bad argument

In over a decade of driving, moving, and everything in between I have never needed a heavy duty truck like a Ford F-350, so clearly they aren’t useful and Ford should stop making them, right? Oh construction workers might complain, but they could just use dump trucks to haul their heavy loads. And farmers might have issues, but they have tractors which could suffice. So what is the big deal? Let’s stop making those trucks!

Building Caddy Server From Source

Caddy's licensing change makes it problematic for many bootstrapped projects. Learn to build Caddy from source which is still open source with no EULA.

Securing Cookies in Go

Learn how to properly secure cookies from tampering, theft, XSS, CSRF, and more in Go.

Popular Articles

6 Tips for Using Strings in Go

Learn how to perform common operations with strings in Go. This article discusses how to write multiline strings, concatenate strings efficiently, convert various data types into strings, checking for prefixes, and converting strings to byte slices.

Using Functions Inside Go Templates

Go's template package provides many useful built-in functions. Learn to use a few of the more common ones, as well as how to add custom fucntions to your templates so that you can add any functionality you need.

Connecting to a PostgreSQL database with Go's database/sql package

This tutorial explains how to connect to a Postgres DB using the database/sql and lib/pq packages. It also covers potential errors and solutions.

Creating Random Strings in Go

A tutorial explaining how to create a custom rand package with functions for creating random strings of varying length with custom of preset character sets.

Inserting records into a PostgreSQL database with Go's database/sql package

Learn to insert new records into a Postgres database using Go's database/sql package, along with how to get the resulting ID of newly created records.

How to use slice capacity and length in Go

Learn about the difference between capacity and length and how to properly utilize them to make your Go code faster, cleaner, and memory efficient.

↓ Or check out some of my longer series. ↓

Each series covers a broader topic and is composed of several articles

Using PostgreSQL with Go

PostgreSQL is an open source relational database system that has been around for well over a decade and has proven to be a great all around storage choice when developing a web application.

In this series we are going to walk through everything from first installing PostgreSQL 9.5 all the way to using it with a Go application. While this post will cover all of the basics required to get started using SQL with Golang, it is not a full course on SQL. It is instead intended to guide you by giving you enough information to be productive, while not overloading you with details that can be learned as you progress.

In this series we will cover topics like:

  • Installing PostgreSQL on various operating systems (Ubuntu Linux, Mac OS, etc)
  • Interacting with a PostgreSQL database using raw SQL. This includes querying, inserting, updating, and deleting records.
  • Interacting with a PostgreSQL database using the database/sql package provided by Go's standar library. Again, this includes querying, inserting, updating, and deleting records.
  • Using ORMs and other third party librarys to interact with SQL databases
Let's Learn Algorithms

Algorithms are a core component in a computer science education, and when taught properly they can help a developer improve his or her skills massively. In this series we will work to both understand how common computer algorithms work, as well as how to properly code each of them in Go.

By coding each algorithm as we learn it, you will develop the skills necessary to translate a conceptual idea into correct and efficient code. While many developers will know how to solve a problem set before them, oftentimes bugs and issues can stem from minor mistakes that algorithm practice can help remedy.

In addition to coding each algorithm we will also discuss how it works as well as the efficiency of each algorithm. That is, we will discuss how fast or slow the code will be based on the size of the input. This is important because in many real world situations you can opt for simpler - but slower - code if you know your inputs won't be too large. Alternatively, you could determine that the simpler solution won't work for your inputs and know that you will need to spend some extra time on a more efficient algorithm.

If you are relatively new to programmer, or simply don't have a formal computer science education, I invite you to check out these articles. You won't be disappointed!

Learn Web Development with Go!

Sign up for my mailing list and I'll send you a FREE sample from my course - Web Development with Go. The sample includes three chapters from the book, and over 2.5 hours of screencasts.

You will also receive notifications when I release new articles, along with other freebies that I only share with my mailing list.

Avatar of Jon Calhoun
Articles and Tutorials by
Jon Calhoun

Jon Calhoun is a full stack web developer who also teaches about Go, web development, algorithms, and anything programming related. He also consults for other companies who have development needs. (If you need some development work done, get in touch!)

Jon is a co-founder of EasyPost, a shipping API that many fortune 500 companies use to power their shipping infrastructure, and prior to founding EasyPost he worked at google as a software engineer.

Recent Articles All Articles Mini-Series Tags About Me Go Courses

©2018 Jonathan Calhoun. All rights reserved.