<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Gopher Academy Blog</title>
    <link>https://blog.gopheracademy.com/</link>
    <description>Recent content on Gopher Academy Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>Copyright © 2019, GopherAcademy; all rights reserved.</copyright>
    <lastBuildDate>Fri, 27 May 2022 11:00:00 -0500</lastBuildDate>
    
	<atom:link href="https://blog.gopheracademy.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Important Conference Announcement</title>
      <link>https://blog.gopheracademy.com/gophercon-2022-announcement/</link>
      <pubDate>Fri, 27 May 2022 11:00:00 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2022-announcement/</guid>
      <description>You may have noticed that the team at Gopher Academy has been unusually quiet lately. In April, we contacted the Walt Disney World Swan and Dolphin Resort to discuss the cancellation of our conference at their property.</description>
    </item>
    
    <item>
      <title>GoVirCon is back</title>
      <link>https://blog.gopheracademy.com/gophercon-2021-virtual/</link>
      <pubDate>Fri, 17 Sep 2021 12:15:00 +0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2021-virtual/</guid>
      <description>With cases of COVID-19 continuing to rise throughout the US due to the Delta variant, we at Gopher Academy have made the bittersweet decision to bring GoVirCon back.</description>
    </item>
    
    <item>
      <title>Storytelling On Stage: Proposal Writing For Procrastinators</title>
      <link>https://blog.gopheracademy.com/storytelling-on-stage-proposal-writing-for-procrastinators/</link>
      <pubDate>Mon, 19 Apr 2021 13:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/storytelling-on-stage-proposal-writing-for-procrastinators/</guid>
      <description>Crafting a GopherCon Proposal The Call for Proposals for GopherCon 2021 is closing in less than a week for GopherCon 2021. If you&amp;rsquo;re reading this, I&amp;rsquo;m assuming you&amp;rsquo;re thinking about submitting a proposal.</description>
    </item>
    
    <item>
      <title>Storytelling On Stage: Advice</title>
      <link>https://blog.gopheracademy.com/storytelling-on-stage-advice/</link>
      <pubDate>Mon, 12 Apr 2021 13:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/storytelling-on-stage-advice/</guid>
      <description>Crafting a GopherCon Proposal The Call for Proposals for GopherCon 2021 is open!
If you&amp;rsquo;re reading this I&amp;rsquo;m assuming you&amp;rsquo;re thinking about submitting a proposal.</description>
    </item>
    
    <item>
      <title>Storytelling On Stage: Storytelling</title>
      <link>https://blog.gopheracademy.com/storytelling-on-stage-storytelling/</link>
      <pubDate>Mon, 05 Apr 2021 13:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/storytelling-on-stage-storytelling/</guid>
      <description>Crafting a GopherCon Proposal The Call for Proposals for GopherCon 2021 is now open! If you&amp;rsquo;re reading this, I&amp;rsquo;m assuming you&amp;rsquo;re thinking about submitting a proposal.</description>
    </item>
    
    <item>
      <title>Storytelling On Stage: The Basics</title>
      <link>https://blog.gopheracademy.com/storytelling-on-stage-the-basics/</link>
      <pubDate>Mon, 29 Mar 2021 13:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/storytelling-on-stage-the-basics/</guid>
      <description>Crafting a GopherCon Proposal The Call for Proposals for GopherCon 2021 opens April 5th, and if you&amp;rsquo;re reading this I&amp;rsquo;m going to assume you&amp;rsquo;re thinking about submitting a talk for GopherCon 2021, however you may be struggling with how to start.</description>
    </item>
    
    <item>
      <title>GopherCon 2020 Agenda</title>
      <link>https://blog.gopheracademy.com/gophercon-2020-agenda/</link>
      <pubDate>Thu, 17 Sep 2020 00:13:34 +0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2020-agenda/</guid>
      <description>#GoVirCon Schedule Announced
We&amp;rsquo;re really excited to announce the schedule for our virtual presentation of GopherCon 2020!
Our official programming starts on Monday, November 9th and Tuesday, November 10th with our trademark pre-conference workshops.</description>
    </item>
    
    <item>
      <title>GopherCon 2020 Online</title>
      <link>https://blog.gopheracademy.com/gophercon-2020-virtual/</link>
      <pubDate>Thu, 09 Jul 2020 13:13:34 +0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2020-virtual/</guid>
      <description>#GopherCon is now #GoVirCon!
With increasing cases of coronavirus in the US, travel bans and restrictions holding strong likely through the end of the year, and Gopher Academy&amp;rsquo;s increasing concern regarding the health and well-being of our community members, at the end of June we made a confident decision to cancel the in-person conference.</description>
    </item>
    
    <item>
      <title>GopherCon 2020 Update</title>
      <link>https://blog.gopheracademy.com/gophercon-2020-news/</link>
      <pubDate>Thu, 19 Mar 2020 13:13:34 +0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2020-news/</guid>
      <description>It&amp;rsquo;s been a few weeks since our first release about GopherCon and COVID-19, so we wanted to share an update. You all are the backbone of this conference and so important to us!</description>
    </item>
    
    <item>
      <title>GopherCon 2020 COVID-19 Response</title>
      <link>https://blog.gopheracademy.com/gophercon-2020-update/</link>
      <pubDate>Mon, 02 Mar 2020 13:13:34 +0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2020-update/</guid>
      <description>Many in the community are facing concerns about COVID-19, the disease caused by the newly discovered coronavirus [1]. We at Gopher Academy are following the status of COVID-19 carefully in preparation for the June conference.</description>
    </item>
    
    <item>
      <title>HTML, CSS and Go, Together at Long Last: Vugu Premise and Example</title>
      <link>https://blog.gopheracademy.com/advent-2019/writing-go-user-interfaces-with-vugu/</link>
      <pubDate>Wed, 25 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/writing-go-user-interfaces-with-vugu/</guid>
      <description>Huh, what&amp;rsquo;s a Vugu? Vugu is a Go library that makes it easy to write HTML markup and Go code which is compiled and run in the browser using WebAssembly.</description>
    </item>
    
    <item>
      <title>Some Thoughts on Library Design</title>
      <link>https://blog.gopheracademy.com/advent-2019/pkgapi/</link>
      <pubDate>Wed, 18 Dec 2019 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/pkgapi/</guid>
      <description>As programmers we use libraries a lot. But library design is hard. In this article, I will walk through some considerations in designing a library.</description>
    </item>
    
    <item>
      <title>API Clients for Humans</title>
      <link>https://blog.gopheracademy.com/advent-2019/api-clients-humans/</link>
      <pubDate>Sat, 14 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/api-clients-humans/</guid>
      <description>Most developers, at one point or another, have either built a web API or have been a consumer of one. An API client is a package that provides a set of tools that can be used to develop software that consumes a specific API.</description>
    </item>
    
    <item>
      <title>Navigating the uncharted waters of SSL/TLS certificates and gRPC with Go</title>
      <link>https://blog.gopheracademy.com/advent-2019/go-grps-and-tls/</link>
      <pubDate>Thu, 12 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/go-grps-and-tls/</guid>
      <description>There are different ways to establishing a secure TLS connection with Go and gRPC. Contrary to popular belief, you don&amp;rsquo;t need to manually provide the Server certificate to your gRPC client in order to encrypt the connection.</description>
    </item>
    
    <item>
      <title>Control packet flow with TCP_NODELAY in Go</title>
      <link>https://blog.gopheracademy.com/advent-2019/control-packetflow-tcp-nodelay/</link>
      <pubDate>Wed, 11 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/control-packetflow-tcp-nodelay/</guid>
      <description>Writing web services requires a lot of effort and thinking to make them robust and performant. There&amp;rsquo;s a wide range of areas to look in order to improve the performance of our service.</description>
    </item>
    
    <item>
      <title>Test Driven Advent of Code</title>
      <link>https://blog.gopheracademy.com/advent-2019/advent-of-code/</link>
      <pubDate>Tue, 10 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/advent-of-code/</guid>
      <description>By now most of you have probably heard of Advent of Code. If not, go check it out. I&amp;rsquo;ll give you a few moments&amp;hellip;</description>
    </item>
    
    <item>
      <title>Benchmark Surprises</title>
      <link>https://blog.gopheracademy.com/advent-2019/benchmark-magic/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/benchmark-magic/</guid>
      <description>I love a good mystery. If you really want my undivided attention, present me with a program which does a thing, and also a proof that it can&amp;rsquo;t possibly do that thing.</description>
    </item>
    
    <item>
      <title>Building a global services network using Go, QUIC and Micro</title>
      <link>https://blog.gopheracademy.com/advent-2019/building-a-microservices-network/</link>
      <pubDate>Sun, 08 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/building-a-microservices-network/</guid>
      <description>Over the past 6 months we at Micro have been hard at work developing a global service network to build, share and collaborate on microservices.</description>
    </item>
    
    <item>
      <title>Como construir sitios web con HUGO</title>
      <link>https://blog.gopheracademy.com/como-construir-sitios-web-con-hugo/</link>
      <pubDate>Fri, 06 Dec 2019 10:07:34 +0900</pubDate>
      
      <guid>https://blog.gopheracademy.com/como-construir-sitios-web-con-hugo/</guid>
      <description>Esta publicación tiene como objetivo enseñar a como construir sitios web utilizando HUGO y como subirlo a un hosting.
Hugo es un generador de sitios web estáticos construidos con el lenguaje GO, fue creado en el año 2013.</description>
    </item>
    
    <item>
      <title>Fun With Flags</title>
      <link>https://blog.gopheracademy.com/advent-2019/flags/</link>
      <pubDate>Fri, 06 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/flags/</guid>
      <description>In a previous article we discussed why command line applications are important and talked about few guidelines. In this article we&amp;rsquo;ll see how we can use the built-in flag package to write command line applications.</description>
    </item>
    
    <item>
      <title>Safe use of unsafe.Pointer</title>
      <link>https://blog.gopheracademy.com/advent-2019/safe-use-of-unsafe-pointer/</link>
      <pubDate>Thu, 05 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/safe-use-of-unsafe-pointer/</guid>
      <description>Package unsafe provides an escape hatch from Go&amp;rsquo;s type system, enabling interactions with low-level and system call APIs, in a manner similar to C programs.</description>
    </item>
    
    <item>
      <title>Contribute Beyond Code: Open Source for Everyone</title>
      <link>https://blog.gopheracademy.com/advent-2019/contribute-beyond-code/</link>
      <pubDate>Wed, 04 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/contribute-beyond-code/</guid>
      <description>Developers are often encouraged to contribute to open source. If you don&amp;rsquo;t consider yourself a developer, it can feel daunting to start on the journey to contributing.</description>
    </item>
    
    <item>
      <title>Directional Channels in Go</title>
      <link>https://blog.gopheracademy.com/advent-2019/directional-channels/</link>
      <pubDate>Tue, 03 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/directional-channels/</guid>
      <description>Go&amp;rsquo;s channels provide a primitive for typed, synchronous message passing. Combined with goroutines, they form the backbone of Go&amp;rsquo;s CSP-inspired concurrency model. They&amp;rsquo;re simple and expressive, but they can be difficult to use properly, especially if you need to control who can read from them or write to them.</description>
    </item>
    
    <item>
      <title>Writing Friendly Command Line Applications</title>
      <link>https://blog.gopheracademy.com/advent-2019/cmdline/</link>
      <pubDate>Mon, 02 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/cmdline/</guid>
      <description>Let me tell you a story&amp;hellip;
In 1986 Knuth wrote a program to demonstrate literate programming.
The task was to read a file of text, determine the n most frequently used words, and print out a sorted list of those words along with their frequencies.</description>
    </item>
    
    <item>
      <title>Go Advent Introduction</title>
      <link>https://blog.gopheracademy.com/advent-2019/introduction/</link>
      <pubDate>Sun, 01 Dec 2019 05:26:58 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2019/introduction/</guid>
      <description>Our tradition at Gopher Academy is to host an Advent Calendar of blog posts contributed by the community each December. I&amp;rsquo;m excited to kick off the 2019 series with this introduction!</description>
    </item>
    
    <item>
      <title>Reactive planning and reconciliation in Go</title>
      <link>https://blog.gopheracademy.com/reactive-planning-go/</link>
      <pubDate>Tue, 19 Nov 2019 15:07:34 +0900</pubDate>
      
      <guid>https://blog.gopheracademy.com/reactive-planning-go/</guid>
      <description>I wrote a quick introduction about why I think reactive planning is a cloud native pattern and I published an article about control theory, but I have just scratched the surface of this topic obviously.</description>
    </item>
    
    <item>
      <title>Integration test made easy with testcontainers</title>
      <link>https://blog.gopheracademy.com/testcontainers-go/</link>
      <pubDate>Sat, 19 Jan 2019 15:07:34 +0900</pubDate>
      
      <guid>https://blog.gopheracademy.com/testcontainers-go/</guid>
      <description>There are a lot of information in the title I know, but I am not good enough to make it simple.
Back in the days, I tried to make some contribution to OpenZipkin an open source tracing infrastructure in Java.</description>
    </item>
    
    <item>
      <title>Personal Photo Management using Go and TensorFlow</title>
      <link>https://blog.gopheracademy.com/advent-2018/personal-photo-management/</link>
      <pubDate>Thu, 27 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/personal-photo-management/</guid>
      <description>We love taking photos. Privacy concerns - and the wish to properly archive them for the next generation - brought us to the conclusion that existing cloud solutions are not the right tool to keep them organized.</description>
    </item>
    
    <item>
      <title>Avoiding high GC overhead with large heaps</title>
      <link>https://blog.gopheracademy.com/advent-2018/avoid-gc-overhead-large-heaps/</link>
      <pubDate>Tue, 25 Dec 2018 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/avoid-gc-overhead-large-heaps/</guid>
      <description>The Go Garbage Collector (GC) works exceptionally well when the amount of memory allocated is relatively small, but with larger heap sizes the GC can end up using considerable amounts of CPU.</description>
    </item>
    
    <item>
      <title>Using Go in Devops</title>
      <link>https://blog.gopheracademy.com/advent-2018/go-devops/</link>
      <pubDate>Mon, 24 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/go-devops/</guid>
      <description>== Using Go for DevOps ==
This post is aiming to provide a new angle on using Go. Don&amp;rsquo;t expect code snippets or learning a new thing, but rather be open for a new perspective, and share this with your favorite SysOps/DevOps/Observability Engineers who are considering new solutions.</description>
    </item>
    
    <item>
      <title>Computing and plotting π with Gonum and a zest of Monte Carlo</title>
      <link>https://blog.gopheracademy.com/advent-2018/montecarlo/</link>
      <pubDate>Sun, 23 Dec 2018 00:00:01 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/montecarlo/</guid>
      <description>Today we will see how we can compute π with a technique called Monte Carlo.
Wikipedia, the ultimate source of truth in the (known) universe has this to say about Monte Carlo:</description>
    </item>
    
    <item>
      <title>GPIOs and Go</title>
      <link>https://blog.gopheracademy.com/advent-2018/gpio-and-go/</link>
      <pubDate>Sat, 22 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/gpio-and-go/</guid>
      <description>Go Advent, Dec. 22, 2018
Recently, I decided that I needed a small heads up display for import things I kept forgetting, like the time until an event started or number of unread emails in my inbox.</description>
    </item>
    
    <item>
      <title>Members, Methods, and Interfaces</title>
      <link>https://blog.gopheracademy.com/advent-2018/exporting/</link>
      <pubDate>Fri, 21 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/exporting/</guid>
      <description>Opaque Datatypes Considered Awesome I am periodically reminded that many people don&amp;rsquo;t realize that C actually allows the creation of opaque data types. This is a possibly-surprising side effect of the option of never completing a type.</description>
    </item>
    
    <item>
      <title>Introducing Glot the plotting library for Golang</title>
      <link>https://blog.gopheracademy.com/advent-2018/introducing-glot/</link>
      <pubDate>Thu, 20 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/introducing-glot/</guid>
      <description>Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. It provides an expressive syntax with its lightweight type system and comes with concurrency as a built-in feature at the language level.</description>
    </item>
    
    <item>
      <title>LLVM IR and Go</title>
      <link>https://blog.gopheracademy.com/advent-2018/llvm-ir-and-go/</link>
      <pubDate>Wed, 19 Dec 2018 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/llvm-ir-and-go/</guid>
      <description>In this post, we&amp;rsquo;ll look at how to build Go programs &amp;ndash; such as compilers and static analysis tools &amp;ndash; that interact with the LLVM compiler framework using the LLVM IR assembly language.</description>
    </item>
    
    <item>
      <title>Go and Apache Arrow: building blocks for data science</title>
      <link>https://blog.gopheracademy.com/advent-2018/go-arrow/</link>
      <pubDate>Tue, 18 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/go-arrow/</guid>
      <description>Today we will see how Apache Arrow could be useful for data science, or &amp;ndash; really &amp;ndash; a lot of analysis workloads.
Lingua franca In Data Science and in many scientific fields, the lingua franca is Python.</description>
    </item>
    
    <item>
      <title>Apache Beam and Google Dataflow in Go</title>
      <link>https://blog.gopheracademy.com/advent-2018/apache-beam/</link>
      <pubDate>Mon, 17 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/apache-beam/</guid>
      <description>Overview Apache Beam (batch and stream) is a powerful tool for handling embarrassingly parallel workloads. It is a evolution of Google’s Flume, which provides batch and streaming data processing based on the MapReduce concepts.</description>
    </item>
    
    <item>
      <title>The Relationship Between Interfaces and Reflection</title>
      <link>https://blog.gopheracademy.com/advent-2018/interfaces-and-reflect/</link>
      <pubDate>Sun, 16 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/interfaces-and-reflect/</guid>
      <description>Interfaces are one of the fundamental tools for abstraction in Go. Interfaces store type information when assigned a value. Reflection is a method of examining type and value information at runtime.</description>
    </item>
    
    <item>
      <title>Debugging with Mozilla rr project and GoLand</title>
      <link>https://blog.gopheracademy.com/advent-2018/mozilla-rr-with-goland/</link>
      <pubDate>Sat, 15 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/mozilla-rr-with-goland/</guid>
      <description>Debuggers. Traditionally they are used to find complex bugs and reason about how they happen. But what if you cannot explain why some changes happen between steps?</description>
    </item>
    
    <item>
      <title>Exploring byte parsing APIs in Go</title>
      <link>https://blog.gopheracademy.com/advent-2018/exploring-byte-parsing-apis-in-go/</link>
      <pubDate>Fri, 14 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/exploring-byte-parsing-apis-in-go/</guid>
      <description>Several years ago, I began exploring Linux&amp;rsquo;s Netlink inter-process communication interface. Netlink is used for retrieving information from the Linux kernel, and in order to cross the kernel boundary, information is typically packed into Netlink attributes.</description>
    </item>
    
    <item>
      <title>Bringing Sanity to your Dependencies with Go Modules and Athens</title>
      <link>https://blog.gopheracademy.com/advent-2018/modules-and-athens/</link>
      <pubDate>Thu, 13 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/modules-and-athens/</guid>
      <description>As many of us know, Go version 1.11 introduced Go Modules, a brand new dependency management system.
A Little Bit About Modules Before 1.11, our dependencies were a collection of Go packages with a single version number attached to all of them.</description>
    </item>
    
    <item>
      <title>gpython: a Python interpreter written in Go &#34;batteries not included&#34;</title>
      <link>https://blog.gopheracademy.com/advent-2018/gpython/</link>
      <pubDate>Wed, 12 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/gpython/</guid>
      <description>Gpython is a Python 3.4 interpreter written in Go. This is the story of how it came to be, how it works and where it is going.</description>
    </item>
    
    <item>
      <title>Improve Your Breadmaking Skills with Go and Open-Source Monitoring</title>
      <link>https://blog.gopheracademy.com/advent-2018/observability-in-the-kitchen/</link>
      <pubDate>Tue, 11 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/observability-in-the-kitchen/</guid>
      <description>I have many different interests, including baking, open-source software, and more recently, systems monitoring and learning Go. As a way for me to expand my practical knowledge on each item, I devised a fun little project that leverages sensors, Raspberry Pis, and Prometheus to improve my sourdough breadmaking process.</description>
    </item>
    
    <item>
      <title>Creating WebGL apps with Go</title>
      <link>https://blog.gopheracademy.com/advent-2018/go-webgl/</link>
      <pubDate>Mon, 10 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/go-webgl/</guid>
      <description>TL;DR In this article I&amp;rsquo;ll share my experience building an interactive 3D WebGL-based application for peer-to-peer messaging protocol simulation without writing any single line in JS.</description>
    </item>
    
    <item>
      <title>Building a CI/CD Bot with Slack and Kubernetes.</title>
      <link>https://blog.gopheracademy.com/advent-2018/building-ci-cd-slack-bot/</link>
      <pubDate>Sun, 09 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/building-ci-cd-slack-bot/</guid>
      <description>This article is about an experiment at Africa&amp;rsquo;s Talking on using Slack to manage our deployment process.
Like many companies, we use Kubernetes to manage our deployments, and Slack for internal communications.</description>
    </item>
    
    <item>
      <title>A Dive Into the `fmt` Package</title>
      <link>https://blog.gopheracademy.com/advent-2018/fmt/</link>
      <pubDate>Sat, 08 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/fmt/</guid>
      <description>We usually use the fmt package without giving it much thought. A fmt.Printf here, a fmt.Sprintf there and on we go. However, if you&amp;rsquo;ll take a closer look, you&amp;rsquo;ll be able to get much more out of it.</description>
    </item>
    
    <item>
      <title>Go and WebAssembly: running Go programs in your browser</title>
      <link>https://blog.gopheracademy.com/advent-2018/go-in-the-browser/</link>
      <pubDate>Fri, 07 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/go-in-the-browser/</guid>
      <description>For a long time, Javascript was the lingua franca amongst web developers. If you wanted to write a stable, mature web app, writing in javascript was pretty much the only way to go.</description>
    </item>
    
    <item>
      <title>On the tension between generic code and special cases</title>
      <link>https://blog.gopheracademy.com/advent-2018/generic-code-vs-special-cases/</link>
      <pubDate>Thu, 06 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/generic-code-vs-special-cases/</guid>
      <description>The io.Reader and io.Writer interfaces appear in practically all Go programs, and represent the fundamental building blocks for dealing with streams of data. An important feature of Go is that the abstractions around objects such as sockets, files, or in-memory buffers are all expressed in terms of these interfaces.</description>
    </item>
    
    <item>
      <title>How to Send and Receive SMS: Implementing a GSM Protocol in Go</title>
      <link>https://blog.gopheracademy.com/advent-2018/how-to-send-and-receive-sms/</link>
      <pubDate>Wed, 05 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/how-to-send-and-receive-sms/</guid>
      <description>When developers add an SMS component in their app either for verification or notification purposes, they usually do it via RESTful API like the ones provided by Twilio.</description>
    </item>
    
    <item>
      <title>Golang and local datastores - fast and flexible data storage</title>
      <link>https://blog.gopheracademy.com/advent-2018/disk-datastores/</link>
      <pubDate>Tue, 04 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/disk-datastores/</guid>
      <description>Local datastores may not be a fit if you are building a web application that may have more than a single instance and a somewhat rich data schema.</description>
    </item>
    
    <item>
      <title>Best Practices for Using Mage To Build Your Project</title>
      <link>https://blog.gopheracademy.com/advent-2018/mage-best-practices/</link>
      <pubDate>Mon, 03 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/mage-best-practices/</guid>
      <description>On my team at Mattel, we have a magefile for every Go project (and we have several Go projects). Our use of mage has grown with the team and the projects, and it has been a big help keeping our dev practices uniform and shareable.</description>
    </item>
    
    <item>
      <title>Postmortem debugging Go services with Delve</title>
      <link>https://blog.gopheracademy.com/advent-2018/postmortem-debugging-delve/</link>
      <pubDate>Sun, 02 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/postmortem-debugging-delve/</guid>
      <description>One day, several instances of one of our production services stopped accepting incoming traffic. HTTP requests successfully went through the load balancer reaching the instance and just hanged.</description>
    </item>
    
    <item>
      <title>Splitting Data with Content-Defined Chunking</title>
      <link>https://blog.gopheracademy.com/advent-2018/split-data-with-cdc/</link>
      <pubDate>Sat, 01 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2018/split-data-with-cdc/</guid>
      <description>In this post you&amp;rsquo;ll learn what Content-Defined Chunking (CDC) is and how you can use it to split large data into smaller blocks in a deterministic way.</description>
    </item>
    
    <item>
      <title>New Go Community Code of Conduct</title>
      <link>https://blog.gopheracademy.com/codeofconduct/</link>
      <pubDate>Wed, 23 May 2018 12:30:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/codeofconduct/</guid>
      <description>In November 2015, Google introduced the Go Code of Conduct (CoC) and as the leading Go language conference, it was important for us to set an example by publishing and enforcing this Code of Conduct to safeguard the dignity and well-being of all who work in the Go Community.</description>
    </item>
    
    <item>
      <title>Simple messaging framework using Go TCP server and Kafka</title>
      <link>https://blog.gopheracademy.com/advent-2017/messaging-framework/</link>
      <pubDate>Sun, 31 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/messaging-framework/</guid>
      <description>I needed to create a simple framework to provide my endpoint devices ( doesn&amp;rsquo;t matter which platform they run on ) the option to send and receive messages from my backend.</description>
    </item>
    
    <item>
      <title>Go 1.10</title>
      <link>https://blog.gopheracademy.com/advent-2017/go-1.10/</link>
      <pubDate>Sat, 30 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/go-1.10/</guid>
      <description>Table of contents  Language changes Operating Systems support Tooling  Environment Variables go build go install go test gofmt go fix pprof  Runtime CGO support Debugging Assembly support Packages Closing notes  Introduction Go 1.</description>
    </item>
    
    <item>
      <title>Create a Slack bot with golang</title>
      <link>https://blog.gopheracademy.com/advent-2017/go-slackbot/</link>
      <pubDate>Fri, 29 Dec 2017 00:06:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/go-slackbot/</guid>
      <description>Create a Slack bot with golang Introduction In this post we&amp;rsquo;ll look at how to set up a quick Slack bot that receives messages (either direct or from channel) and replies to the user.</description>
    </item>
    
    <item>
      <title>TensorFlow and Go</title>
      <link>https://blog.gopheracademy.com/advent-2017/tensorflow-and-go/</link>
      <pubDate>Thu, 28 Dec 2017 20:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/tensorflow-and-go/</guid>
      <description>This year I helped organize several online security challenges, one of which is Blacklight. Among the things I was asked to do, was creating a POC for a specific challenge, to prove that it&amp;rsquo;s possible to solve in a reasonable time.</description>
    </item>
    
    <item>
      <title>Using Go Templates</title>
      <link>https://blog.gopheracademy.com/advent-2017/using-go-templates/</link>
      <pubDate>Wed, 27 Dec 2017 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/using-go-templates/</guid>
      <description>Go templates are a powerful method to customize output however you want, whether you&amp;rsquo;re creating a web page, sending an e-mail, working with Buffalo, Go-Hugo, or just using some CLI such as kubectl.</description>
    </item>
    
    <item>
      <title>Method Closures: You Can&#39;t Do That In Go</title>
      <link>https://blog.gopheracademy.com/advent-2017/you-cant-do-that-in-go/</link>
      <pubDate>Tue, 26 Dec 2017 00:00:01 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/you-cant-do-that-in-go/</guid>
      <description>Neugram is a scripting language that sticks very close to Go. Go statements are Neugram statements, you can import Go packages, scripts can be compiled to Go programs, and types look just like the equivalent Go types at run time (which means packages built on reflection, like fmt, work as expected).</description>
    </item>
    
    <item>
      <title>Make Your Build Better With Mage</title>
      <link>https://blog.gopheracademy.com/advent-2017/mage/</link>
      <pubDate>Mon, 25 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/mage/</guid>
      <description>Many Go projects can be built using only Go&amp;rsquo;s wonderful built-in tooling. However, for many projects, these commands may not sufficient. Maybe you want to use ldflags during the build to embed the commit hash in the binary.</description>
    </item>
    
    <item>
      <title>Managing goroutine lifecycles with run.Group</title>
      <link>https://blog.gopheracademy.com/advent-2017/run-group/</link>
      <pubDate>Sun, 24 Dec 2017 00:34:34 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/run-group/</guid>
      <description>I stumbled over this idiom for managing goroutine lifecycles when I was writing OK Log. Since then I&amp;rsquo;ve found uses for it in nearly every program I&amp;rsquo;ve written.</description>
    </item>
    
    <item>
      <title>Go execution tracer</title>
      <link>https://blog.gopheracademy.com/advent-2017/go-execution-tracer/</link>
      <pubDate>Sat, 23 Dec 2017 20:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/go-execution-tracer/</guid>
      <description>Introduction Ever wondered how are your goroutines being scheduled by the go runtime? Ever tried to understand why adding concurrency to your program has not given it better performance?</description>
    </item>
    
    <item>
      <title>Building medical reports in Go</title>
      <link>https://blog.gopheracademy.com/advent-2017/building-medical-reports-in-go/</link>
      <pubDate>Fri, 22 Dec 2017 20:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/building-medical-reports-in-go/</guid>
      <description>This article is about how we at Mendelics changed our report system from Python to Go using gofpdf library, why we did this change, how we planned it and some insights we got along the way.</description>
    </item>
    
    <item>
      <title>Extending Osquery with Go</title>
      <link>https://blog.gopheracademy.com/advent-2017/osquery-sdk/</link>
      <pubDate>Thu, 21 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/osquery-sdk/</guid>
      <description>What if you could use SQL to query any aspect of your infrastructure? Osquery, an open source instrumentation tool released by the Facebook security team allows you to do just that.</description>
    </item>
    
    <item>
      <title>Tracking the Stars</title>
      <link>https://blog.gopheracademy.com/advent-2017/tracking-the-stars/</link>
      <pubDate>Wed, 20 Dec 2017 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/tracking-the-stars/</guid>
      <description>In April 2017, I thought it would be fun to try setting up a system to track the star counts of the top 1000 Go repositories on GitHub.</description>
    </item>
    
    <item>
      <title>Accessing SMBIOS information with Go</title>
      <link>https://blog.gopheracademy.com/advent-2017/accessing-smbios-information-with-go/</link>
      <pubDate>Tue, 19 Dec 2017 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/accessing-smbios-information-with-go/</guid>
      <description>While speaking with coworkers recently, one of them posed a question:
 How can we discover the capacity of each memory DIMM in a machine?</description>
    </item>
    
    <item>
      <title>Using Vue.js with Buffalo</title>
      <link>https://blog.gopheracademy.com/advent-2017/using-vue-with-buffalo/</link>
      <pubDate>Mon, 18 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/using-vue-with-buffalo/</guid>
      <description>When I&amp;rsquo;m writing web applications, I don&amp;rsquo;t tend use the latest JavaScript front-end hotness, instead I prefer to reload the entire page on a request, or at the most, a small section of it.</description>
    </item>
    
    <item>
      <title>Go and wasm: generating and executing wasm with Go</title>
      <link>https://blog.gopheracademy.com/advent-2017/go-wasm/</link>
      <pubDate>Sun, 17 Dec 2017 09:15:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/go-wasm/</guid>
      <description>Today we will see how we can interact with WebAssembly, from Go: how to execute WebAssembly bytecode from Go and how to generate WebAssembly bytecode with Go.</description>
    </item>
    
    <item>
      <title>Seeking around in an HTTP object</title>
      <link>https://blog.gopheracademy.com/advent-2017/seekable-http/</link>
      <pubDate>Sat, 16 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/seekable-http/</guid>
      <description>Imagine there&amp;rsquo;s a giant ZIP file on a HTTP server, and you want to know what&amp;rsquo;s inside it. You don&amp;rsquo;t know if it&amp;rsquo;s got what you are looking for, and you don&amp;rsquo;t want to download the whole thing.</description>
    </item>
    
    <item>
      <title>unsafe.Pointer and system calls</title>
      <link>https://blog.gopheracademy.com/advent-2017/unsafe-pointer-and-system-calls/</link>
      <pubDate>Fri, 15 Dec 2017 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/unsafe-pointer-and-system-calls/</guid>
      <description>unsafe is a Go package that, as the official documentation states, contains operations that step around the type safety of Go programs.
As its name implies, it should be used very carefully; unsafe can be dangerous, but it can also be incredibly useful.</description>
    </item>
    
    <item>
      <title>Write a Kubernetes-ready service from zero step-by-step</title>
      <link>https://blog.gopheracademy.com/advent-2017/kubernetes-ready-service/</link>
      <pubDate>Thu, 14 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/kubernetes-ready-service/</guid>
      <description>If you have ever tried Go, you probably know that writing services with Go is an easy thing. Yes, we really need only few lines to be able to run http service.</description>
    </item>
    
    <item>
      <title>gRPC Go: Beyond the basics</title>
      <link>https://blog.gopheracademy.com/advent-2017/go-grpc-beyond-basics/</link>
      <pubDate>Wed, 13 Dec 2017 09:15:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/go-grpc-beyond-basics/</guid>
      <description>Introduction As a newcomer to gRPC (in Go) there are many resources setting out what gRPC is, where it originated from and how to create a basic service and client.</description>
    </item>
    
    <item>
      <title>How to Tokenize Complex Strings with Lexmachine</title>
      <link>https://blog.gopheracademy.com/advent-2017/lexmachine-advent/</link>
      <pubDate>Tue, 12 Dec 2017 00:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/lexmachine-advent/</guid>
      <description>This article is about using lexmachine to tokenize strings (split up into component parts) in the Go (golang) programming language. If you find yourself processing a complex file format or network protocol this article will walk you through how to use lexmachine to process both accurately and quickly.</description>
    </item>
    
    <item>
      <title>Web Sessions and Common User Workflows - A Foundation for Go-Based Websites</title>
      <link>https://blog.gopheracademy.com/advent-2017/web-sessions-and-users/</link>
      <pubDate>Mon, 11 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/web-sessions-and-users/</guid>
      <description>Go is widely used to implement microservices and APIs. And for those wishing to set up a dynamic website without resorting to, say, Ruby or PHP, Go offers a lot of tools out of the box.</description>
    </item>
    
    <item>
      <title>Parsing with ANTLR 4 and Go</title>
      <link>https://blog.gopheracademy.com/advent-2017/parsing-with-antlr4-and-go/</link>
      <pubDate>Sun, 10 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/parsing-with-antlr4-and-go/</guid>
      <description>What is ANTLR? ANTLR (ANother Tool for Language Recognition), is an ALL(*) parser generator. In layman&amp;rsquo;s terms, Antlr, creates parsers in a number of languages (Go, Java, C, C#, Javascript), that can process text or binary input.</description>
    </item>
    
    <item>
      <title>Property Based Testing</title>
      <link>https://blog.gopheracademy.com/advent-2017/property-based-testing/</link>
      <pubDate>Sat, 09 Dec 2017 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/property-based-testing/</guid>
      <description>Useful Programs I&amp;rsquo;ll start this post with a bold but fairly uncontroversial statement: Programs that do not interact with the outside world are useless - they do nothing except consume cycles.</description>
    </item>
    
    <item>
      <title>Custom JSON unmarshaler for a GraphQL client</title>
      <link>https://blog.gopheracademy.com/advent-2017/custom-json-unmarshaler-for-graphql-client/</link>
      <pubDate>Fri, 08 Dec 2017 09:15:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/custom-json-unmarshaler-for-graphql-client/</guid>
      <description>In this post, I will tell a story of how I had to build a custom JSON unmarshaler for the needs of a GraphQL client library in Go.</description>
    </item>
    
    <item>
      <title>Repeatable and Isolated Development Environments for Go</title>
      <link>https://blog.gopheracademy.com/advent-2017/repeatable-isolated-dev-environments/</link>
      <pubDate>Thu, 07 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/repeatable-isolated-dev-environments/</guid>
      <description>One of the common criticisms of the GOPATH is that it is hard to create isolated development environments without resorting to hacks, bash scripts, multiple GOPATH settings, or other trickery.</description>
    </item>
    
    <item>
      <title>Managing Dependencies, Forks, and Code Patches with Dep</title>
      <link>https://blog.gopheracademy.com/advent-2017/managing-dependencies-forks-and-code-patches-with-dep/</link>
      <pubDate>Wed, 06 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/managing-dependencies-forks-and-code-patches-with-dep/</guid>
      <description>A few months ago, we switched over to using dep to manage dependencies for Veneur.
We were excited to discover that dep provided a straightforward workflow for a longstanding problem in Go development: managing forks of dependencies and contributions to upstream projects.</description>
    </item>
    
    <item>
      <title>A Tale of Two `rand`s</title>
      <link>https://blog.gopheracademy.com/advent-2017/a-tale-of-two-rands/</link>
      <pubDate>Tue, 05 Dec 2017 00:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/a-tale-of-two-rands/</guid>
      <description>I had always been a bit confused as to how the crypto/rand package and the math/rand package were related, or how they were expected to work (together).</description>
    </item>
    
    <item>
      <title>Creating Your Own Bot Experience with go-sarah</title>
      <link>https://blog.gopheracademy.com/advent-2017/creating-your-own-bot-experience-with-go-sarah/</link>
      <pubDate>Mon, 04 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/creating-your-own-bot-experience-with-go-sarah/</guid>
      <description>Chat tools have been good friends of developers. On chat tools we share our thoughts, problems, solutions, jokes, and pretty much everything we do as software engineers.</description>
    </item>
    
    <item>
      <title>Minimal Perfect Hash Functions</title>
      <link>https://blog.gopheracademy.com/advent-2017/mphf/</link>
      <pubDate>Sun, 03 Dec 2017 00:00:00 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/mphf/</guid>
      <description>A regular hash function turns a key (a string or a number) into an integer. Most people will know them as either the cryptographic hash functions (MD5, SHA1, SHA256, etc) or their smaller non-cryptographic counterparts frequently encountered in hash tables (the map keyword in Go).</description>
    </item>
    
    <item>
      <title>Automating Go development with Make</title>
      <link>https://blog.gopheracademy.com/advent-2017/make/</link>
      <pubDate>Sat, 02 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/make/</guid>
      <description>Make is an old tool that you can use today to help get everyone on your team on the same page, and make it easy for new contributors to your project to get started.</description>
    </item>
    
    <item>
      <title>Using GopherJS with gRPC-Web</title>
      <link>https://blog.gopheracademy.com/advent-2017/gopherjs-grpc-web/</link>
      <pubDate>Fri, 01 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/gopherjs-grpc-web/</guid>
      <description>Introduction This article will talk about how to connect a GopherJS frontend to a Go backend. If you haven&amp;rsquo;t heard about GopherJS before, it&amp;rsquo;s an open source Go-to-JavaScript transpiler, allowing us to write Go code and run it in the browser.</description>
    </item>
    
    <item>
      <title>2017 Advent Series Call for Submissions</title>
      <link>https://blog.gopheracademy.com/advent-2017/cfr/</link>
      <pubDate>Tue, 07 Nov 2017 05:26:58 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2017/cfr/</guid>
      <description>It&amp;rsquo;s November, and once again our thoughts drift towards the holidays and the awesome blog posts that arrive as gifts to you in the Gopher Academy Blog.</description>
    </item>
    
    <item>
      <title>Writing a successful GopherCon proposal</title>
      <link>https://blog.gopheracademy.com/gophercon-2017/writing-a-successful-gophercon-proposal/</link>
      <pubDate>Sat, 14 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2017/writing-a-successful-gophercon-proposal/</guid>
      <description>The GopherCon 2017 Call for Proposals has reached the halfway mark so I wanted to give potential speakers some specific advice when writing their proposals.</description>
    </item>
    
    <item>
      <title>2016 Wrap Up</title>
      <link>https://blog.gopheracademy.com/advent-2016/conclusion/</link>
      <pubDate>Sat, 31 Dec 2016 05:26:58 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/conclusion/</guid>
      <description>2016 was an amazing year for Go and for the Go community. New conferences popped up all over the globe, and there were some amazing new projects written in Go.</description>
    </item>
    
    <item>
      <title>Go 1.8</title>
      <link>https://blog.gopheracademy.com/advent-2016/go-1.8/</link>
      <pubDate>Fri, 30 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/go-1.8/</guid>
      <description>With Go following a predetermined release schedule of February - August and a Release Candidate for Go 1.8 just a few days after this article, it looks like we should be able to talk about Go 1.</description>
    </item>
    
    <item>
      <title>Introducing Go to your organization</title>
      <link>https://blog.gopheracademy.com/advent-2016/introducing-go-to-your-org/</link>
      <pubDate>Thu, 29 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/introducing-go-to-your-org/</guid>
      <description>Go is without a doubt a growing language. Some still consider it a young language, due to the fact that it was released &amp;ldquo;just&amp;rdquo; under 5 years ago.</description>
    </item>
    
    <item>
      <title>Promoting the Quality and Collaboration of Your Open Source Project</title>
      <link>https://blog.gopheracademy.com/advent-2016/promoting-the-quality-and-collaboration-of-your-open-source-project/</link>
      <pubDate>Wed, 28 Dec 2016 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/promoting-the-quality-and-collaboration-of-your-open-source-project/</guid>
      <description>So your open source project is on GitHub. It has tests, an awesome logo, probably a few stars, and maybe even a few other contributors.</description>
    </item>
    
    <item>
      <title>Testing distributed systems in Go</title>
      <link>https://blog.gopheracademy.com/advent-2016/testing-distributed-systems-in-go/</link>
      <pubDate>Tue, 27 Dec 2016 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/testing-distributed-systems-in-go/</guid>
      <description>What is etcd etcd is a key-value store for the most critical data of distributed systems. Use cases include applications running on Container Linux by CoreOS, which enables automatic Linux kernel updates.</description>
    </item>
    
    <item>
      <title>A little bit of Machine Learning: Playing with Google&#39;s Prediction API</title>
      <link>https://blog.gopheracademy.com/advent-2016/machine-learning-google-prediction-api/</link>
      <pubDate>Mon, 26 Dec 2016 06:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/machine-learning-google-prediction-api/</guid>
      <description>Before we get started, let&amp;rsquo;s begin by making clear that this isn&amp;rsquo;t going to be a deep dive on TensorFlow, neural networks, inductive logic, Bayesian networks, genetic algorithms or any other sub-heading from the Machine Learning Wikipedia article.</description>
    </item>
    
    <item>
      <title>Writing an API Client in Go</title>
      <link>https://blog.gopheracademy.com/advent-2016/http-client/</link>
      <pubDate>Sun, 25 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/http-client/</guid>
      <description>Let&amp;rsquo;s say you need to write a client that talks to a third party API, like the AWS API, or the Twilio API. Go gives you a lot of tools that can help you write a really good client, but you have to know how to take advantage of them!</description>
    </item>
    
    <item>
      <title>Predicting genetic diseases with CloudForest</title>
      <link>https://blog.gopheracademy.com/advent-2016/cloudforest/</link>
      <pubDate>Sat, 24 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/cloudforest/</guid>
      <description>CloudForest is a machine learning project dedicated to the construction of Random Forests built entirely in Go. It was created by Ryan Bressler.
Random Forests are a machine learning algorithm based around the construction of many single classification trees, each splitting both the training set and the features available to train the model randomly.</description>
    </item>
    
    <item>
      <title>Teaching Go to complete beginners</title>
      <link>https://blog.gopheracademy.com/advent-2016/gobridge-beginners/</link>
      <pubDate>Fri, 23 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/gobridge-beginners/</guid>
      <description>TL;DR How about arranging a GoBridge workshop for beginners as your New Year’s resolution?
Teach Go to complete beginners Being a good Go programmer is definitely good.</description>
    </item>
    
    <item>
      <title>Implementing Git&#39;s Compression In Go</title>
      <link>https://blog.gopheracademy.com/advent-2016/implementing_gits-compression_algorithm_in_go/</link>
      <pubDate>Thu, 22 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/implementing_gits-compression_algorithm_in_go/</guid>
      <description>Implementing Git&amp;rsquo;s Compression in Go Git + Go = Gitgo Gitgo is a pure Go library for core Git functions. As a ground-up implementation with no C bindings, it implements the entire structure of Git repositories from scratch.</description>
    </item>
    
    <item>
      <title>Enigma emulator in Go</title>
      <link>https://blog.gopheracademy.com/advent-2016/enigma-emulator-in-go/</link>
      <pubDate>Wed, 21 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/enigma-emulator-in-go/</guid>
      <description>Introduction This story begins the day after I got home after giving a talk at the wonderful DevFest Siberia. Shortly after my weekly fix of Westworld, a strange nagging feeling appeared — like the one you get from unpaid bills, a postcard that you forgot to send, or a particularly nasty API endpoint that you were supposed to refactor a year ago but then, well, I mean, it works, right?</description>
    </item>
    
    <item>
      <title>Gleam: Distributed Map Reduce for Golang</title>
      <link>https://blog.gopheracademy.com/advent-2016/gleam-distributed-map-reduce-for-golang/</link>
      <pubDate>Tue, 20 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/gleam-distributed-map-reduce-for-golang/</guid>
      <description>After developing Glow last year, I came to realize the two limitations of Go for distributed data processing.
First, generics are needed. Of course, we can use reflection.</description>
    </item>
    
    <item>
      <title>So you want to expose Go on the Internet</title>
      <link>https://blog.gopheracademy.com/advent-2016/exposing-go-on-the-internet/</link>
      <pubDate>Mon, 19 Dec 2016 01:30:27 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/exposing-go-on-the-internet/</guid>
      <description>Back when crypto/tls was slow and net/http young, the general wisdom was to always put Go servers behind a reverse proxy like NGINX. That&amp;rsquo;s not necessary anymore!</description>
    </item>
    
    <item>
      <title>Advanced Encoding and Decoding Techniques in Go</title>
      <link>https://blog.gopheracademy.com/advent-2016/advanced-encoding-decoding/</link>
      <pubDate>Sun, 18 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/advanced-encoding-decoding/</guid>
      <description>Advanced Encoding and Decoding Techniques Go&amp;rsquo;s standard library comes packed with some great encoding and decoding packages covering a wide array of encoding schemes. Everything from CSV, XML, JSON, and even gob - a Go specific encoding format - is covered, and all of these packages are incredibly easy to get started with.</description>
    </item>
    
    <item>
      <title>Abusing Go Syntax to Create a Domain-Specific Language</title>
      <link>https://blog.gopheracademy.com/advent-2016/go-syntax-for-dsls/</link>
      <pubDate>Sat, 17 Dec 2016 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/go-syntax-for-dsls/</guid>
      <description>Go is often the tool of choice for building the guts of a high-performance system, but Go was also designed with some features that are great for building high-level abstractions.</description>
    </item>
    
    <item>
      <title>Writing good unit tests for SOLID Go</title>
      <link>https://blog.gopheracademy.com/advent-2016/how-to-write-good-tests-for-solid-code/</link>
      <pubDate>Fri, 16 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/how-to-write-good-tests-for-solid-code/</guid>
      <description>Dave Cheney covered how interfaces are used to design good Go code in his SOLID Go Design talk and blog post.
In this blog post, we are going to focus on some tips on how to write unit tests for that beautiful SOLID code.</description>
    </item>
    
    <item>
      <title>Finding good packages in the Sea of Open-Source</title>
      <link>https://blog.gopheracademy.com/advent-2016/sea-of-open-source/</link>
      <pubDate>Thu, 15 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/sea-of-open-source/</guid>
      <description>So far we&amp;rsquo;ve seen different ways to use Go to build a variety of applications, from versioning your data pipelines to building your own BBQ grill controller.</description>
    </item>
    
    <item>
      <title>Goroutree: A tree-based set made of coordinating goroutines</title>
      <link>https://blog.gopheracademy.com/advent-2016/goroutree/</link>
      <pubDate>Wed, 14 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/goroutree/</guid>
      <description>This was one of those projects that sat in the back of my mind for quite a while. It was destined to join the many others in my side project graveyard unless I had a good reason to finish it, like a date for a blog post.</description>
    </item>
    
    <item>
      <title>The Saga of Go Dependency Management</title>
      <link>https://blog.gopheracademy.com/advent-2016/saga-go-dependency-management/</link>
      <pubDate>Tue, 13 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/saga-go-dependency-management/</guid>
      <description>The Saga of Go Dependency Management The Go community is on the cusp of some major shifts in the way we handle dependencies. These shifts are a long time coming, and involve the work and effort of dozens, if not hundreds, of people.</description>
    </item>
    
    <item>
      <title>Data Pipelines and Versioning with the Pachyderm Go Client</title>
      <link>https://blog.gopheracademy.com/advent-2016/pachyderm/</link>
      <pubDate>Mon, 12 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/pachyderm/</guid>
      <description>I know about Gophers, but what is a Pachyderm? Pachyderm is an open source framework, written in Go, for reproducible data processing. With Pachyderm, you can create language agnostic data pipelines where the data input and output of each stage of your pipeline are versioned controlled in Pachyderm&amp;rsquo;s File System (PFS).</description>
    </item>
    
    <item>
      <title>Go and a Package Focused Design</title>
      <link>https://blog.gopheracademy.com/advent-2016/go-and-package-focused-design/</link>
      <pubDate>Sun, 11 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/go-and-package-focused-design/</guid>
      <description>Developers often tend to think about designing software in terms of using logical layers of abstractions. I have seen many Go projects with layers of abstractions that reflect grouping of all common things together such as types (model), handlers for all services (api or controllers), and even multi-purpose packages (util).</description>
    </item>
    
    <item>
      <title>Some Tools For Go That You Might Not Know Yet</title>
      <link>https://blog.gopheracademy.com/advent-2016/some-tools-for-go-that-you-might-not-know-yet/</link>
      <pubDate>Sat, 10 Dec 2016 00:00:00 +0100</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/some-tools-for-go-that-you-might-not-know-yet/</guid>
      <description>Year&amp;rsquo;s end is coming closer. Time to clean up repositories and polishing up the toolset. All the well-known tools have been installed already&amp;ndash;is there anything else to add to the toolbox?</description>
    </item>
    
    <item>
      <title>New features in go1.8 database/sql</title>
      <link>https://blog.gopheracademy.com/advent-2016/database_sql/</link>
      <pubDate>Fri, 09 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/database_sql/</guid>
      <description>database/sql has many new features to better enable writing and controlling queries. In short it adds support for:
 Cancelable queries Returning the SQL database types Returning multiple result sets Ping hitting the database server Named parameters Transaction isolation levels  Cancelable Queries</description>
    </item>
    
    <item>
      <title>Contributing to the Go project</title>
      <link>https://blog.gopheracademy.com/advent-2016/contributing-to-the-go-project/</link>
      <pubDate>Thu, 08 Dec 2016 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/contributing-to-the-go-project/</guid>
      <description>Contributing to the Go project can seem overwhelming, especially at first. The official Contribution Guidelines document is rather lengthy, but after working through the initial Google CLA and Gerrit authentication process, it becomes much easier to contribute to the project.</description>
    </item>
    
    <item>
      <title>QPID - Go Powered BBQ</title>
      <link>https://blog.gopheracademy.com/advent-2016/qpid/</link>
      <pubDate>Wed, 07 Dec 2016 05:26:58 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/qpid/</guid>
      <description>Two of my favorite things to do are write Go code and make BBQ. This fall, I started a project that combined these passions into an interesting project.</description>
    </item>
    
    <item>
      <title>Using NATS Messaging with some of your favorite Golang tools</title>
      <link>https://blog.gopheracademy.com/advent-2016/nats/</link>
      <pubDate>Tue, 06 Dec 2016 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/nats/</guid>
      <description>Quick Intro to NATS, and Why We Love Go! For those of you who have been reading GopherAcademy for a while, you may already be familiar with NATS via last year’s post, or you may have known about NATS for a while before that - NATS was one of the earliest production applications written in Golang.</description>
    </item>
    
    <item>
      <title>Using Go&#39;s &#39;context&#39; library for making your logs make sense</title>
      <link>https://blog.gopheracademy.com/advent-2016/context-logging/</link>
      <pubDate>Mon, 05 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/context-logging/</guid>
      <description>One of the shiny new toys in Go 1.7 is the &amp;lsquo;context&amp;rsquo; library. Not shiny as in it is genuinely new. It started out at golang.</description>
    </item>
    
    <item>
      <title>How Do They Do It: Timers in Go</title>
      <link>https://blog.gopheracademy.com/advent-2016/go-timers/</link>
      <pubDate>Sun, 04 Dec 2016 06:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/go-timers/</guid>
      <description>How Do They Do It: Timers in Go This article covers the internal implementation of timers in Go. Note that there are a lot of links to Go repo in this article, I recommend to follow them to understand the material better.</description>
    </item>
    
    <item>
      <title>Go, Nginx, and TLS Termination</title>
      <link>https://blog.gopheracademy.com/advent-2016/tls-termination-bench/</link>
      <pubDate>Sat, 03 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/tls-termination-bench/</guid>
      <description>With the advent of Let&amp;rsquo;s Encrypt, it&amp;rsquo;s now easier than ever before to ensure all of your web applications and services are behind HTTPS. However, many times it&amp;rsquo;s hard to realize the performance impact and overhead of using HTTPS on your applications.</description>
    </item>
    
    <item>
      <title>Writing Go assembly functions with PeachPy</title>
      <link>https://blog.gopheracademy.com/advent-2016/peachpy/</link>
      <pubDate>Fri, 02 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/peachpy/</guid>
      <description>What is PeachPy
PeachPy is a Python-based framework for writing modules in assembly. It automates away some of the details and allows you to use Python to generate repetitive assembly code sequences.</description>
    </item>
    
    <item>
      <title>December Blog Series Introduction</title>
      <link>https://blog.gopheracademy.com/advent-2016/introduction/</link>
      <pubDate>Thu, 01 Dec 2016 05:26:58 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2016/introduction/</guid>
      <description>2016 has been a great year for the Go language and the Go community. We love to celebrate the end of the year with a series of blog posts from the community on a wide variety of topics.</description>
    </item>
    
    <item>
      <title>GopherCon 2017 - Website Call for Volunteers</title>
      <link>https://blog.gopheracademy.com/gophercon-2017/gophercon-website/</link>
      <pubDate>Thu, 01 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2017/gophercon-website/</guid>
      <description>Calling all Gophers!
Many of you have asked how you can volunteer to help with GopherCon - and here&amp;rsquo;s a great opportunity! We&amp;rsquo;re doing our best to keep overhead costs down and apply the savings to an even better conference experience.</description>
    </item>
    
    <item>
      <title>GopherCon 2016 - Retrospective</title>
      <link>https://blog.gopheracademy.com/gophercon-2016/gophercon2016-retrospective/</link>
      <pubDate>Wed, 20 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2016/gophercon2016-retrospective/</guid>
      <description>GopherCon 2016 has come and gone, and in keeping with our tradition we wanted to write up a brief retrospective to capture some of the highlights of the event.</description>
    </item>
    
    <item>
      <title>GopherCon 2016 - Lightning Talk Annoucement</title>
      <link>https://blog.gopheracademy.com/gophercon-2016/gophercon2016-lightning-announce/</link>
      <pubDate>Fri, 01 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2016/gophercon2016-lightning-announce/</guid>
      <description>GopherCon 2016 is going to be an amazing event, and this is your chance to be a part of it! First time speaker? Experienced Speaker?</description>
    </item>
    
    <item>
      <title>GopherCon Turns Three</title>
      <link>https://blog.gopheracademy.com/gophercon-turns-three/</link>
      <pubDate>Wed, 20 Apr 2016 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-turns-three/</guid>
      <description>tl;dr We&amp;rsquo;re excited for the third anniversary of GopherCon, so we&amp;rsquo;re offering a discount on tickets valid only on the anniversary of the conference.</description>
    </item>
    
    <item>
      <title>2015 Year in Review</title>
      <link>https://blog.gopheracademy.com/advent-2015/review-2015/</link>
      <pubDate>Thu, 31 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/review-2015/</guid>
      <description>Looking back on 2015 has humbled us here at Gopher Academy. What an amazing year we&amp;rsquo;ve had. Let&amp;rsquo;s review some of the highlights:
 We&amp;rsquo;ve published dozens of community-written articles.</description>
    </item>
    
    <item>
      <title>2D Game Libraries for Go</title>
      <link>https://blog.gopheracademy.com/advent-2015/2d-games/</link>
      <pubDate>Wed, 30 Dec 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/2d-games/</guid>
      <description>By now, we all know that Go is a great language for writing servers and command line tools. But what about games? Can you make desktop, web, or mobile games in Go too?</description>
    </item>
    
    <item>
      <title>etcd: distributed key-value store with grpc/http2</title>
      <link>https://blog.gopheracademy.com/advent-2015/etcd-distributed-key-value-store-with-grpc-http2/</link>
      <pubDate>Tue, 29 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/etcd-distributed-key-value-store-with-grpc-http2/</guid>
      <description>What is etcd? etcd is a distributed, consistent key-value store, written in Go. Similar to how Linux distributions typically use /etc to store local configuration data, etcd can be thought of as a reliable store for distributed configuration data.</description>
    </item>
    
    <item>
      <title>Understanding and using the vendor folder</title>
      <link>https://blog.gopheracademy.com/advent-2015/vendor-folder/</link>
      <pubDate>Mon, 28 Dec 2015 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/vendor-folder/</guid>
      <description>With the release of Go 1.5, there is a new way the go tool can discover go packages. This method is off by default and the surrounding tools, such as goimports, do not understand that folder layout.</description>
    </item>
    
    <item>
      <title>Glow: Map Reduce for Golang</title>
      <link>https://blog.gopheracademy.com/advent-2015/glow-map-reduce-for-golang/</link>
      <pubDate>Sun, 27 Dec 2015 12:11:25 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/glow-map-reduce-for-golang/</guid>
      <description>Having been a Java developer for many years, I have simply lost interest in Java and want to code everything in Go, mostly due to Go&amp;rsquo;s simplicity and performance.</description>
    </item>
    
    <item>
      <title>Symmetric API Testing</title>
      <link>https://blog.gopheracademy.com/advent-2015/symmetric-api-testing-in-go/</link>
      <pubDate>Sat, 26 Dec 2015 00:00:00 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/symmetric-api-testing-in-go/</guid>
      <description>I maintain Anaconda, the Twitter client library for Go. There are a lot of interesting things I could write about Anaconda - for example, automatic rate-limiting and throttling using the tokenbucket library.</description>
    </item>
    
    <item>
      <title>Lessons in Go Learned while Implementing SHIELD</title>
      <link>https://blog.gopheracademy.com/advent-2015/shield-backup-system/</link>
      <pubDate>Fri, 25 Dec 2015 00:00:00 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/shield-backup-system/</guid>
      <description>Quick background: What is SHIELD? SHIELD is a backup solution for Cloud Foundry and BOSH deployed services such as Redis, PostgreSQL, and Docker. (For the interested, here is a quick summary of the basics of BOSH and Cloud Foundry.</description>
    </item>
    
    <item>
      <title>Tiny Linux OSes with Go</title>
      <link>https://blog.gopheracademy.com/advent-2015/building-static-linuxes/</link>
      <pubDate>Thu, 24 Dec 2015 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/building-static-linuxes/</guid>
      <description>Small disclaimer: This is much more fun than it is useful
 For a while now, we&amp;rsquo;ve been seeing new &amp;ldquo;cloud&amp;rdquo; OSes crop up, like CoreOS and RancherOS.</description>
    </item>
    
    <item>
      <title>Geographical data manipulation using go</title>
      <link>https://blog.gopheracademy.com/advent-2015/geographical-data-manipulation-using-go/</link>
      <pubDate>Wed, 23 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/geographical-data-manipulation-using-go/</guid>
      <description>GIS open source world is dominated by C/C++, Java and Python code. Libraries like PROJ4, JTS, GEOS or GDAL are at the core of most of the open source geospatial projects.</description>
    </item>
    
    <item>
      <title>Composable Pipelines Improved</title>
      <link>https://blog.gopheracademy.com/advent-2015/composable-pipelines-improvements/</link>
      <pubDate>Tue, 22 Dec 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/composable-pipelines-improvements/</guid>
      <description>I wrote a post here on GopherAcademy earlier this year, about an idea for a &amp;ldquo;framework-less&amp;rdquo; pattern for Flow-Based Programming style programs in Go, or let&amp;rsquo;s just call it &amp;ldquo;composable concurrent pipelines&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Hydra: Run your own Identity and Access Management service in &lt;5 Minutes</title>
      <link>https://blog.gopheracademy.com/advent-2015/hydra-auth/</link>
      <pubDate>Mon, 21 Dec 2015 00:00:00 +0100</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/hydra-auth/</guid>
      <description>This article introduces Hydra, the open source micro service alternative to proprietary authorization solutions. It will take you less than five minutes to start up a OAuth2 provider and gain access to a rich features set, including access control and identity management.</description>
    </item>
    
    <item>
      <title>Automi: Stream Processing Over Go Channels</title>
      <link>https://blog.gopheracademy.com/advent-2015/automi-stream-processing-over-go-channels/</link>
      <pubDate>Sun, 20 Dec 2015 00:00:00 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/automi-stream-processing-over-go-channels/</guid>
      <description>As a Go programmer, one of the features that attracted me to the language is the channel-based idiom used for goroutine communications. Channels, along with goroutines, form the basis for the Go concurrency primitives.</description>
    </item>
    
    <item>
      <title>Writing an SSH server in Go</title>
      <link>https://blog.gopheracademy.com/advent-2015/ssh-server-in-go/</link>
      <pubDate>Sat, 19 Dec 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/ssh-server-in-go/</guid>
      <description>When I&amp;rsquo;m working on the Gogs project, there is a need of builtin SSH server, which allows users to preform Git-only operations through key-based authentication.</description>
    </item>
    
    <item>
      <title>Manage Dependencies Like Other Languages With Glide</title>
      <link>https://blog.gopheracademy.com/advent-2015/glide/</link>
      <pubDate>Fri, 18 Dec 2015 08:00:00 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/glide/</guid>
      <description>Managing dependent packages in most of the popular and new languages have common patterns implemented by package managers. If you need to manage packages in Python, JavaScript, Rust, Java, Ruby, C# (via .</description>
    </item>
    
    <item>
      <title>gopy: extending CPython with Go</title>
      <link>https://blog.gopheracademy.com/advent-2015/gopy/</link>
      <pubDate>Thu, 17 Dec 2015 00:00:00 +0100</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/gopy/</guid>
      <description>Applications and libraries do not live in a vacuum. This is of course true for Go packages and commands. More often than not, you need your code to interact with legacy applications or old and battle tested libraries.</description>
    </item>
    
    <item>
      <title>NATS: High Performance Cloud Native Messaging Written in Go</title>
      <link>https://blog.gopheracademy.com/advent-2015/nats-high-performance-cloud-native-messaging-written-in-go/</link>
      <pubDate>Wed, 16 Dec 2015 13:45:04 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/nats-high-performance-cloud-native-messaging-written-in-go/</guid>
      <description>Performance at scale is critically important for anybody attempting to build distributed systems today. Pieces of a given service might be spread across physical or virtual infrastructure, or might be comprised of thousands or even millions of devices (Internet of Things).</description>
    </item>
    
    <item>
      <title>Generate and Use Free TLS Certificates with Lego</title>
      <link>https://blog.gopheracademy.com/advent-2015/generate-free-tls-certs-with-lego/</link>
      <pubDate>Tue, 15 Dec 2015 08:00:00 -0700</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/generate-free-tls-certs-with-lego/</guid>
      <description>If your Go program uses the transport layer of the network at all&amp;mdash;whether to serve static files, an API, or something else over the wire&amp;mdash;you should be encrypting connections using TLS.</description>
    </item>
    
    <item>
      <title>test2doc: Generate Your API Docs</title>
      <link>https://blog.gopheracademy.com/advent-2015/test2doc-generate-your-api-docs/</link>
      <pubDate>Mon, 14 Dec 2015 22:04:31 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/test2doc-generate-your-api-docs/</guid>
      <description>API docs are important. We all know that. They are also painful and tedious to maintain. When your docs aren&amp;rsquo;t accurate, you get more questions.</description>
    </item>
    
    <item>
      <title>Integrating Go in a Yocto-based project</title>
      <link>https://blog.gopheracademy.com/advent-2015/go-in-a-yocto-project/</link>
      <pubDate>Sun, 13 Dec 2015 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/go-in-a-yocto-project/</guid>
      <description>From its website, Yocto, part of the Linux Foundation Collaborative Projects, is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture.</description>
    </item>
    
    <item>
      <title>Composable command-line tools</title>
      <link>https://blog.gopheracademy.com/advent-2015/composable-command-line-tools/</link>
      <pubDate>Sat, 12 Dec 2015 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/composable-command-line-tools/</guid>
      <description>Go&amp;rsquo;s simplicity and exhaustive standard library means writing command-line tools is easy and enjoyable. Following the Go philosophy, if you write programs that are small and focussed, you can end up with a pretty powerful little toolbelt of utilities.</description>
    </item>
    
    <item>
      <title>Announcing GopherCon 2016</title>
      <link>https://blog.gopheracademy.com/advent-2015/announcing-gophercon-2016/</link>
      <pubDate>Fri, 11 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/announcing-gophercon-2016/</guid>
      <description>GopherCon 2016 will take place at the Colorado Convention Center in Denver, Colorado on July 11th through July 13th, 2016.
We’ve listened to the feedback you gave us from GopherCon 2015 and want to explain the changes we’re putting in place for GopherCon 2016.</description>
    </item>
    
    <item>
      <title>Reducing boilerplate with go generate</title>
      <link>https://blog.gopheracademy.com/advent-2015/reducing-boilerplate-with-go-generate/</link>
      <pubDate>Thu, 10 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/reducing-boilerplate-with-go-generate/</guid>
      <description>Go is an awesome language. It&amp;rsquo;s simple, powerful, has great tooling and many of us really enjoy using it every day. However, as it usually happens with strongly typed languages, we write a good deal of boilerplate to connect things around.</description>
    </item>
    
    <item>
      <title>Hooking libc using Go shared libraries</title>
      <link>https://blog.gopheracademy.com/advent-2015/libc-hooking-go-shared-libraries/</link>
      <pubDate>Wed, 09 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/libc-hooking-go-shared-libraries/</guid>
      <description>Alastair O&amp;rsquo;Neill gave a talk at the BSides Manchester security conference in August about userland rootkits that use the LD_PRELOAD mechanism. Most of these rootkits are written in C.</description>
    </item>
    
    <item>
      <title>Go in a Monorepo</title>
      <link>https://blog.gopheracademy.com/advent-2015/go-in-a-monorepo/</link>
      <pubDate>Tue, 08 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/go-in-a-monorepo/</guid>
      <description>A &amp;ldquo;monorepo&amp;rdquo; is a monolithic code repository which contains many different projects and libraries. At DigitalOcean, we have created a monorepo called cthulhu to house all of our Go code.</description>
    </item>
    
    <item>
      <title>goa: Untangling Microservices</title>
      <link>https://blog.gopheracademy.com/advent-2015/goauntanglingmicroservices/</link>
      <pubDate>Mon, 07 Dec 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/goauntanglingmicroservices/</guid>
      <description>goa: Untangling microservices The Raise of Microservice Architectures and APIs After suffering through a monolithic Rails application for a number of years, we (the RightScale Engineering team) shifted our focus to microservice architectures.</description>
    </item>
    
    <item>
      <title>Smart Cryptography with Superdog and Vault</title>
      <link>https://blog.gopheracademy.com/advent-2015/superdog/</link>
      <pubDate>Sun, 06 Dec 2015 08:28:59 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/superdog/</guid>
      <description>Superdog - the Crypto library for Vault from Hashicorp At XOR Data Exchange we deal with a lot of sensitive data for our customers. We needed to be able to support strong encryption with key rotation in a simple and practical way.</description>
    </item>
    
    <item>
      <title>Go Fuzz</title>
      <link>https://blog.gopheracademy.com/advent-2015/go-fuzz/</link>
      <pubDate>Sat, 05 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/go-fuzz/</guid>
      <description>In April of this year, Dmitry Vyukov released the first version of go-fuzz, a coverage-guided fuzz testing tool based on ideas from afl. With very little fanfare, he unleashed it on the Go standard library and started filing huge numbers of crashers and other bugs found via automated, randomized testing.</description>
    </item>
    
    <item>
      <title>afero: A Universal Filesystem Library</title>
      <link>https://blog.gopheracademy.com/advent-2015/afero-a-universal-filesystem-library/</link>
      <pubDate>Fri, 04 Dec 2015 08:17:26 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/afero-a-universal-filesystem-library/</guid>
      <description>Anyone who spends a few minutes talking with me about development knows I love Go. My Github and Blog are practically a love letter to the language.</description>
    </item>
    
    <item>
      <title>Debugging Go programs with Delve</title>
      <link>https://blog.gopheracademy.com/advent-2015/debugging-with-delve/</link>
      <pubDate>Thu, 03 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/debugging-with-delve/</guid>
      <description>Tracking down bugs in your code can be a very frustrating experience. This is even more true of highly parallel code. Having a good debugger at your disposal can make all the difference when it comes to tracking down a difficult, or hard to reproduce bug in your code.</description>
    </item>
    
    <item>
      <title>Working with Semantic Versions</title>
      <link>https://blog.gopheracademy.com/advent-2015/semver/</link>
      <pubDate>Wed, 02 Dec 2015 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/semver/</guid>
      <description>Semantic Versioning (a.k.a SemVer) has become a popular way to handle versions. The structure not only allows for incremental releases but allows people and automation to deduce what those changes mean.</description>
    </item>
    
    <item>
      <title>December Blog Series Introduction</title>
      <link>https://blog.gopheracademy.com/advent-2015/introduction/</link>
      <pubDate>Tue, 01 Dec 2015 05:26:58 -0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2015/introduction/</guid>
      <description>It&amp;rsquo;s that time of year again&amp;hellip; The time when young gophers dream of high-quality articles about Go programming. We&amp;rsquo;ve run our &amp;ldquo;Advent&amp;rdquo; series at GopherAcademy for two years now, and it has been by far the most successful content we&amp;rsquo;ve ever published.</description>
    </item>
    
    <item>
      <title>GopherCon 2015 lightning talk results</title>
      <link>https://blog.gopheracademy.com/gophercon-2015/gophercon-lightning-talk-results/</link>
      <pubDate>Thu, 25 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2015/gophercon-lightning-talk-results/</guid>
      <description>Registrations for the GopherCon&amp;rsquo;s Hack Day talks closed on the 20th of July, here are the results.
Forward After the popularity of the lightning talk sessions last year, and the huge interest the call for papers received, we expected very high demand for lightning talk slots this year.</description>
    </item>
    
    <item>
      <title>GopherCon Friday Hack Day details</title>
      <link>https://blog.gopheracademy.com/gophercon-2015/gophercon-friday-hack-day/</link>
      <pubDate>Mon, 15 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2015/gophercon-friday-hack-day/</guid>
      <description>With less than a month til GopherCon 2015 we’ve been hard at work on plans for the Friday 10th Hack Day. The previous year’s unofficial Friday Hack Day was so popular we decided this year to integrate it into the conference proper.</description>
    </item>
    
    <item>
      <title>GopherCon 2015 lightning talk registrations</title>
      <link>https://blog.gopheracademy.com/gophercon-2015/gophercon-lightning-talks/</link>
      <pubDate>Fri, 05 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2015/gophercon-lightning-talks/</guid>
      <description>Friday the 10th of July is GopherCon&amp;rsquo;s Hack Day. By popular request we&amp;rsquo;re going to be running lightning talks in main theatre most of the day.</description>
    </item>
    
    <item>
      <title>A Look Inside Caddy, a Web Server Written in Go</title>
      <link>https://blog.gopheracademy.com/caddy-a-look-inside/</link>
      <pubDate>Wed, 27 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/caddy-a-look-inside/</guid>
      <description>Caddy is a unique web server with a modern feature set. Think nginx or Apache, but written in Go. With Caddy, you can serve your websites over HTTP/2.</description>
    </item>
    
    <item>
      <title>A unique Gophercon 2015 souvenir</title>
      <link>https://blog.gopheracademy.com/gophercon-2015/gophercon-souvenir/</link>
      <pubDate>Tue, 26 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2015/gophercon-souvenir/</guid>
      <description>&lt;h2 id=&#34;a-unique-gophercon-2015-souvenir&#34;&gt;A unique Gophercon 2015 souvenir&lt;/h2&gt;

&lt;p&gt;We&amp;rsquo;re excited to announce something that we&amp;rsquo;ve been working on behind the scenes for quite a while.&lt;/p&gt;

&lt;p&gt;As a gift to GopherCon 2015 attendees who book hotel accommodation through one of our &lt;a href=&#34;http://gophercon.com/#hotels&#34;&gt;hotel partners&lt;/a&gt;, on check in, you will receive one of these as the key to your room:&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog.gopheracademy.com/postimages/gophercon-2015/keycard.png&#34; alt=&#34;GopherCon 2015 souvenir key card. This is a mock up -- the real thing will be even more awesome!&#34; title=&#34;GopherCon 2015 souvenir key card. This is a mock up -- the real thing will be even more awesome!&#34; /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introducing Congo</title>
      <link>https://blog.gopheracademy.com/congo/introducing-congo/</link>
      <pubDate>Mon, 25 May 2015 15:07:34 +0900</pubDate>
      
      <guid>https://blog.gopheracademy.com/congo/introducing-congo/</guid>
      <description>Congo - an upcoming Conference Management Tool While we absolutely love running GopherCon, one thing jumps out as the most troublesome aspect of managing a large conference: managing the data.</description>
    </item>
    
    <item>
      <title>GopherCon 2015 - Tickets selling fast</title>
      <link>https://blog.gopheracademy.com/gophercon-2015/gophercon-ticket-sales/</link>
      <pubDate>Thu, 14 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2015/gophercon-ticket-sales/</guid>
      <description>GopherCon 2015 tickets selling fast We&amp;rsquo;re delighted to announce that this week GopherCon 2015 ticket sales have passed the 1,000 mark! This means that there are less than a third of all tickets remaining.</description>
    </item>
    
    <item>
      <title>GopherCon 2015 - Speakers Round 3</title>
      <link>https://blog.gopheracademy.com/gophercon2015-speakers-round-3/</link>
      <pubDate>Wed, 22 Apr 2015 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon2015-speakers-round-3/</guid>
      <description>We&amp;rsquo;ve just published our third and final set of speakers for GopherCon 2015. These final five speakers mark the completion of the speaking programme for 2015.</description>
    </item>
    
    <item>
      <title>GopherCon 2015 - Speakers Round 2</title>
      <link>https://blog.gopheracademy.com/gophercon2015-speakers-round-2/</link>
      <pubDate>Fri, 17 Apr 2015 12:00:00 -0400</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon2015-speakers-round-2/</guid>
      <description>GopherCon 2015 is on track to be the most amazing Go conference ever held. Our tradition of bringing you the best speakers and most interesting topics continues with today&amp;rsquo;s release of the second round of speakers.</description>
    </item>
    
    <item>
      <title>GopherCon 2015 - Speakers Round 1</title>
      <link>https://blog.gopheracademy.com/gophercon2015-speakers-round-1/</link>
      <pubDate>Fri, 10 Apr 2015 12:37:00 -0400</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon2015-speakers-round-1/</guid>
      <description>Call for Papers The GopherCon 2015 Call for Papers was an incredible success. We received over 164 submissions from people all over the world. Our panel of 12 community members worked tirelessly to review and rate each proposal.</description>
    </item>
    
    <item>
      <title>The Golang UK Conference</title>
      <link>https://blog.gopheracademy.com/golanguk-conference/</link>
      <pubDate>Wed, 01 Apr 2015 20:30:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/golanguk-conference/</guid>
      <description>At last, the UK community has decided to organise a Go conference for the UK and rest of the world! Save the date: Friday 21st August 2015.</description>
    </item>
    
    <item>
      <title>gobench - Go Benchmark Competition</title>
      <link>https://blog.gopheracademy.com/gobench/</link>
      <pubDate>Fri, 27 Mar 2015 15:07:34 +0900</pubDate>
      
      <guid>https://blog.gopheracademy.com/gobench/</guid>
      <description>Introduction Simplicity is one of the philosophies of Go. Rob Pike said that the secret of Go&amp;rsquo;s success is in its simplicity at Go Conference 2014 autumn in Tokyo, Japan.</description>
    </item>
    
    <item>
      <title>Docker 2nd Birthday &amp; Open-source-a-thon</title>
      <link>https://blog.gopheracademy.com/docker-2nd-birthday/</link>
      <pubDate>Fri, 20 Mar 2015 17:37:05 -0400</pubDate>
      
      <guid>https://blog.gopheracademy.com/docker-2nd-birthday/</guid>
      <description>For Docker&amp;rsquo;s 2nd birthday they&amp;rsquo;ve been planning something that we think is pretty amazing.
Starting March 23rd, the Docker &amp;amp; Go communities will be hosting dozens of open-source-a-thon parties around the world.</description>
    </item>
    
    <item>
      <title>Code Generation From the AST</title>
      <link>https://blog.gopheracademy.com/code-generation-from-the-ast/</link>
      <pubDate>Fri, 13 Mar 2015 12:50:47 -0700</pubDate>
      
      <guid>https://blog.gopheracademy.com/code-generation-from-the-ast/</guid>
      <description>Deprehend is a tool that auto-generates go src to wrap goroutines with panic handlers and wrap http handlers for metrics tracking.
Over at DeferPanic we do a lot of application monitoring specifically for you, Go engineers.</description>
    </item>
    
    <item>
      <title>Patterns for composable concurrent pipelines in Go</title>
      <link>https://blog.gopheracademy.com/composable-pipelines-pattern/</link>
      <pubDate>Thu, 26 Feb 2015 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/composable-pipelines-pattern/</guid>
      <description>Patterns for composable concurrent pipelines in Go The undersigned came into the world of Go from Python, which is quite prevalent in the field of bioinformatics.</description>
    </item>
    
    <item>
      <title>GopherCon India 2015</title>
      <link>https://blog.gopheracademy.com/gopherconindia-2015/</link>
      <pubDate>Tue, 24 Feb 2015 21:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gopherconindia-2015/</guid>
      <description>I came to GopherCon India not knowing what to expect, but from the moment I arrived it was nothing short of spectacular. I talked to amazing people who genuinely appreciated that members of the global community came to India to participate in the event.</description>
    </item>
    
    <item>
      <title>Data mining with Go</title>
      <link>https://blog.gopheracademy.com/gophergala/data-mining/</link>
      <pubDate>Mon, 02 Feb 2015 17:10:37 +0100</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophergala/data-mining/</guid>
      <description>What is the idea behind Gopher Gala project heatingeffect? Heating Effect provides a visual representation of the raw notice data from (chillingeffects.org).
 The Chilling Effects database collects and analyzes legal complaints and requests for removal of online materials, helping Internet users to know their rights and understand the law.</description>
    </item>
    
    <item>
      <title>Go and the Secure Shell protocol</title>
      <link>https://blog.gopheracademy.com/go-and-ssh/</link>
      <pubDate>Tue, 13 Jan 2015 09:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/go-and-ssh/</guid>
      <description>What is the Secure Shell protocol? Many of us use ssh(1) everyday to administer servers around the world. The Secure Shell protocol, however, allows us to do much more than open secure shells.</description>
    </item>
    
    <item>
      <title>The world&#39;s first Go distributed hackathon.</title>
      <link>https://blog.gopheracademy.com/gopher-gala/</link>
      <pubDate>Sat, 03 Jan 2015 13:12:45 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/gopher-gala/</guid>
      <description>Registration is now open for the Gopher Gala - the world&amp;rsquo;s first Go distributed hackathon. 
You may have heard of the Rails Rumble, Node Knockout, or Django Dash.</description>
    </item>
    
    <item>
      <title>Cron as a file system</title>
      <link>https://blog.gopheracademy.com/cron-filesystem/</link>
      <pubDate>Mon, 29 Dec 2014 13:12:45 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/cron-filesystem/</guid>
      <description>9p I read The Styx Architecture for Distributed Systems over a decade ago. The central idea of the paper is that &amp;ldquo;representing a computing resource as a form of file system, [makes] many of the difficulties of making that resource available across the network disappear&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>The Other Side of Go: Programming Pictures, the Read, Parse, Draw Pattern</title>
      <link>https://blog.gopheracademy.com/advent-2014/other-side/</link>
      <pubDate>Thu, 25 Dec 2014 17:10:00 +0500</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/other-side/</guid>
      <description>The other side of Go: Programming Pictures, the Read, Parse, Draw Pattern Go has proven to be extremely versatile and well suited to back-end tasks, but sometimes you need a picture, and I&amp;rsquo;ve found that Go works well for generating visuals as well.</description>
    </item>
    
    <item>
      <title>Type safe templating with ego</title>
      <link>https://blog.gopheracademy.com/advent-2014/ego/</link>
      <pubDate>Wed, 24 Dec 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/ego/</guid>
      <description>Go has seen many converts from scripting languages such as Ruby and Python. These newcomers love the type safety, the language simplicity, and the static binaries that Go offers.</description>
    </item>
    
    <item>
      <title>Viper: Configuration with Fangs</title>
      <link>https://blog.gopheracademy.com/advent-2014/configuration-with-fangs/</link>
      <pubDate>Tue, 23 Dec 2014 10:40:33 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/configuration-with-fangs/</guid>
      <description>One of the hardest things to get right when building command line or server applications is user configuration. One look at the many different INI formats or various approaches used in /etc demonstrates that there really isn’t a good and standard approach.</description>
    </item>
    
    <item>
      <title>Testing Microservices in Go</title>
      <link>https://blog.gopheracademy.com/advent-2014/testing-microservices-in-go/</link>
      <pubDate>Mon, 22 Dec 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/testing-microservices-in-go/</guid>
      <description>This post is about testing microservices and why they should be tested differently from many types of software. Microservices are by their very nature simple and encapsulated behind their api.</description>
    </item>
    
    <item>
      <title>Managing Dependencies</title>
      <link>https://blog.gopheracademy.com/advent-2014/deps/</link>
      <pubDate>Sun, 21 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/deps/</guid>
      <description>Packages, dependencies, versions. This post will explore two tools and how I&amp;rsquo;ve been using them. Godep as the consumer of third-party packages, and gopkg.in as a library author.</description>
    </item>
    
    <item>
      <title>Cobra: A Modern &amp; Refined CLI Commander</title>
      <link>https://blog.gopheracademy.com/advent-2014/introducing-cobra/</link>
      <pubDate>Sat, 20 Dec 2014 10:30:19 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/introducing-cobra/</guid>
      <description>Go is the perfect language to develop command line applications. Go has a few advantages that really set it apart from other languages:
 Single binary Very fast execution time, no interpreter needed Go is awesome!</description>
    </item>
    
    <item>
      <title>Simple backoff</title>
      <link>https://blog.gopheracademy.com/advent-2014/backoff/</link>
      <pubDate>Fri, 19 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/backoff/</guid>
      <description>Or, taming connection state and thundering herds. There comes a time in the life of many programs when you need to maintain a persistent connection to a server.</description>
    </item>
    
    <item>
      <title>Atlas: Building with Rails and Go Microservices</title>
      <link>https://blog.gopheracademy.com/advent-2014/atlas/</link>
      <pubDate>Thu, 18 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/atlas/</guid>
      <description>Atlas is a recently announced service by HashiCorp that provides a single platform to take an application from development through to production. The complexity of the problem makes Atlas a sophisticated web service that is composed of many moving pieces.</description>
    </item>
    
    <item>
      <title>Soy - Programmable templates for Go, Java, JS</title>
      <link>https://blog.gopheracademy.com/advent-2014/soy-programmable-templates/</link>
      <pubDate>Wed, 17 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/soy-programmable-templates/</guid>
      <description>Closure Templates (aka Soy Templates) is a client and server-side templating language developed at Google. The Go implementation exposes the the internal structure of the template (the AST).</description>
    </item>
    
    <item>
      <title>Wrapping Git in rc shell</title>
      <link>https://blog.gopheracademy.com/advent-2014/wrapping-git/</link>
      <pubDate>Tue, 16 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/wrapping-git/</guid>
      <description>Wrapping Git in rc shell Introduction When Rob Pike announced the migration of Go from Mercurial and Rietveld to Git and Gerrit, like most people, I was pretty enthusiastic.</description>
    </item>
    
    <item>
      <title>The Case Against Third Party Libraries</title>
      <link>https://blog.gopheracademy.com/advent-2014/case-against-3pl/</link>
      <pubDate>Mon, 15 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/case-against-3pl/</guid>
      <description>Or how I learned to stop worrying and love versionless package management If you spend any time on the golang-nuts mailing list you&amp;rsquo;ll learn that the only thing more contentious than generics is package management.</description>
    </item>
    
    <item>
      <title>Using a JSON File as a Database Safely in Go</title>
      <link>https://blog.gopheracademy.com/advent-2014/safe-json-file-db-in-go/</link>
      <pubDate>Sun, 14 Dec 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/safe-json-file-db-in-go/</guid>
      <description>There are definitely problems with using a json file as a database, but sometimes the simplicity of no extra dependencies makes it an attractive option.</description>
    </item>
    
    <item>
      <title>Probabilistic Data Structures for Go: Bloom Filters</title>
      <link>https://blog.gopheracademy.com/advent-2014/bloom-filters/</link>
      <pubDate>Sat, 13 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/bloom-filters/</guid>
      <description>In part one, I talked about some interesting probabilistic data structures..
In part two, I will discuss a more common approximate data structure: Bloom filters and their variations.</description>
    </item>
    
    <item>
      <title>goquery: a little like that j-thing</title>
      <link>https://blog.gopheracademy.com/advent-2014/goquery/</link>
      <pubDate>Fri, 12 Dec 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/goquery/</guid>
      <description>A little over 2 and a half years ago I started playing with that new language called Go. Coming mostly from .NET and node.js, I was at first intrigued by its concurrency features and its lack of object inheritance, and impressed by the quality of the team behind it.</description>
    </item>
    
    <item>
      <title>Writing file systems in Go with FUSE</title>
      <link>https://blog.gopheracademy.com/advent-2014/fuse-zipfs/</link>
      <pubDate>Thu, 11 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/fuse-zipfs/</guid>
      <description>Motivation Some time ago, I decided I wanted to solve my own storage needs better, and I realized that I can&amp;rsquo;t just rely on synchronizing files.</description>
    </item>
    
    <item>
      <title>Easy Docker Deployment with Hooks and Captain Hook</title>
      <link>https://blog.gopheracademy.com/advent-2014/easy-deployment/</link>
      <pubDate>Wed, 10 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/easy-deployment/</guid>
      <description>Deploying with &amp;ldquo;git push&amp;rdquo; the Docker Way Many people have asked me how we set up the GopherAcademy blog to automatically deploy when we push a commit.</description>
    </item>
    
    <item>
      <title>Patchwork Toolkit - Lightweight Platform for the Network of Things</title>
      <link>https://blog.gopheracademy.com/advent-2014/patchwork/</link>
      <pubDate>Tue, 09 Dec 2014 18:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/patchwork/</guid>
      <description>Patchwork is a toolkit for connecting various devices into a network of things or, in a more broad case - Internet of Things (IoT). A tl;dr picture describing the idea behind it is shown below.</description>
    </item>
    
    <item>
      <title>Nigel&#39;s WebDAV package</title>
      <link>https://blog.gopheracademy.com/advent-2014/nigels-webdav-package/</link>
      <pubDate>Mon, 08 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/nigels-webdav-package/</guid>
      <description>Nigel Tao and Nick Cooper have been working on a new WebDAV package for the golang.org/x/net repository. The package is still in its formative stages, so this isn&amp;rsquo;t a review of the package itself.</description>
    </item>
    
    <item>
      <title>Reading config files the Go way</title>
      <link>https://blog.gopheracademy.com/advent-2014/reading-config-files-the-go-way/</link>
      <pubDate>Sun, 07 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/reading-config-files-the-go-way/</guid>
      <description>In the middle of writing my blog engine dynocator, I wondered about the best possible way to read data from a config file. My first approach was to read line by line from the file and use the wonderful strings package to parse the data I want.</description>
    </item>
    
    <item>
      <title>Macaron: Martini-style, but faster and cheaper</title>
      <link>https://blog.gopheracademy.com/advent-2014/macaron/</link>
      <pubDate>Sat, 06 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/macaron/</guid>
      <description>Macaron is a high productive and modular design web framework in Go. It takes basic ideology of Martini and extends in advance.
Why another web framework?</description>
    </item>
    
    <item>
      <title>String Matching</title>
      <link>https://blog.gopheracademy.com/advent-2014/string-matching/</link>
      <pubDate>Fri, 05 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/string-matching/</guid>
      <description>How do you search for a string? If it&amp;rsquo;s just once, strings.Index(text, pattern) is probably your best option. The standard library currently uses Rabin-Karp to search the text for the pattern.</description>
    </item>
    
    <item>
      <title>Git2go inception</title>
      <link>https://blog.gopheracademy.com/advent-2014/git2go-tutorial/</link>
      <pubDate>Thu, 04 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/git2go-tutorial/</guid>
      <description>How many levels of inception we need to master git?
This tutorial that explains how to use git2go to publish an article for the Go Advent 2014.</description>
    </item>
    
    <item>
      <title>Delve: Go debugger</title>
      <link>https://blog.gopheracademy.com/advent-2014/delve/</link>
      <pubDate>Wed, 03 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/delve/</guid>
      <description>Delve Delve is a Go debugger. Currently the project is in beta, with most of the functionality implemented, and various improvements and platform support on the way.</description>
    </item>
    
    <item>
      <title>Handwritten Parsers &amp; Lexers in Go</title>
      <link>https://blog.gopheracademy.com/advent-2014/parsers-lexers/</link>
      <pubDate>Tue, 02 Dec 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/parsers-lexers/</guid>
      <description>Handwritten Parsers &amp;amp; Lexers in Go In these days of web apps and REST APIs it seems that writing parsers is a dying art. You may think parsers are a complex undertaking only reserved for programming language designers but I&amp;rsquo;d like to dispel this idea.</description>
    </item>
    
    <item>
      <title>Probabilistic Data Structures for Go</title>
      <link>https://blog.gopheracademy.com/advent-2014/go-probably/</link>
      <pubDate>Mon, 01 Dec 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2014/go-probably/</guid>
      <description>Imagine you had access logs for a very high traffic website. How would you determine how many different IP addresses accessed your site? Or how many hits from a particular IP?</description>
    </item>
    
    <item>
      <title>Using Go for Anomaly Detection</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/using-go-for-anomaly-detection/</link>
      <pubDate>Sat, 29 Nov 2014 08:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/using-go-for-anomaly-detection/</guid>
      <description>As engineers, we need to know how our applications and services are performing in realtime and isolate any problems as quickly as possible. While there is a plethora of tools to collect, store and graph metrics from infrastructure, there are fewer tools for performing analysis on these metrics.</description>
    </item>
    
    <item>
      <title>Go at Sourcegraph - Serving Terabytes of Git Data, Tracing App Performance, and Caching HTTP Resources</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/go-at-sourcegraph/</link>
      <pubDate>Fri, 28 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/go-at-sourcegraph/</guid>
      <description>Sourcegraph is a code search and review application that supports and analyzes code in multiple languages: Go, Python, Java, Ruby, JavaScript, and soon more. Even though we have experts in each language on our team, Sourcegraph&amp;rsquo;s core has been written in Go since day one, and we&amp;rsquo;ve chosen Go for each new project and system we&amp;rsquo;ve built.</description>
    </item>
    
    <item>
      <title>Go at Datadog</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/go-at-datadog/</link>
      <pubDate>Thu, 27 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/go-at-datadog/</guid>
      <description>Go at Datadog In the last year, Go has started to supplant parts of our intake pipeline at Datadog that were previously written in Python.</description>
    </item>
    
    <item>
      <title>Advanced Reflection with Go at HashiCorp</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/advanced-reflection-with-go-at-hashicorp/</link>
      <pubDate>Wed, 26 Nov 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/advanced-reflection-with-go-at-hashicorp/</guid>
      <description>Advanced Reflection with Go at HashiCorp HashiCorp builds a diverse set of popular DevOps tools written in Go: Packer, Serf, Consul, and Terraform. While these tools range from desktop software to highly scalable distributed systems, their internals all have one thing in common: they use reflection, and a lot of it.</description>
    </item>
    
    <item>
      <title>Go at CoreOS</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/go-at-coreos/</link>
      <pubDate>Tue, 25 Nov 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/go-at-coreos/</guid>
      <description>Go at CoreOS When we launched the CoreOS project we knew from the very beginning that everything we built would be written in Go. This was not to make a fashion statement, but rather Go happened to be the perfect platform for reaching our goals &amp;ndash; to build products that make distributed computing as easy as installing a Linux distro.</description>
    </item>
    
    <item>
      <title>How Go Helped Shape Splice&#39;s engineering culture</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/go-shaped-splice-engineering-culture/</link>
      <pubDate>Mon, 24 Nov 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/go-shaped-splice-engineering-culture/</guid>
      <description>Go is a trendy programming language, but let’s be honest: the Go language doesn’t have anything new that wasn’t first implemented somewhere else. As a matter of fact, Go is a pretty boring programming language.</description>
    </item>
    
    <item>
      <title>Kite: Library for writing distributed microservices</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/kite-microservice-library/</link>
      <pubDate>Sun, 23 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/kite-microservice-library/</guid>
      <description>Writing web services with Go is super easy. The simple but powerful net/http package lets you write performant web services in a very quick way.</description>
    </item>
    
    <item>
      <title>OpenShift 3 and Go: Teaching Old Dogs New Tricks</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/openshift-3-old-dogs-new-tricks/</link>
      <pubDate>Sat, 22 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/openshift-3-old-dogs-new-tricks/</guid>
      <description>The first commit to OpenShift (the Platform as a Service that is so hipster that we were doing containers even before it was cool) was four years ago.</description>
    </item>
    
    <item>
      <title>Inspeqtor</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/inspeqtor/</link>
      <pubDate>Fri, 21 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/inspeqtor/</guid>
      <description>When I decided to build Inspeqtor (source), I had a fundamental choice: what language should I build it in? I’ve worked in Ruby for the last 8 years so it was a natural choice: “use the tool you know best” is never a bad choice when solving your own problem.</description>
    </item>
    
    <item>
      <title>Gogs: GitLab alternative in Go</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/gogs-gitlab-alternative-in-go/</link>
      <pubDate>Thu, 20 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/gogs-gitlab-alternative-in-go/</guid>
      <description>What is Gogs and why we make it? Gogs is a painless self-hosted Git Service written in Go. It aims to make the easiest, fastest and most painless way to set up a self-hosted Git service.</description>
    </item>
    
    <item>
      <title>Updating your Go packages with Go Package Store</title>
      <link>https://blog.gopheracademy.com/updating-your-go-packages-with-go-package-store/</link>
      <pubDate>Wed, 19 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/updating-your-go-packages-with-go-package-store/</guid>
      <description>Go Package Store is an app that displays updates for the Go packages in your GOPATH. Why another way to update Go packages when you can already just do go get -u, you might think.</description>
    </item>
    
    <item>
      <title>Building Street Address Autocomplete with Go</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/building-street-address-autocomplete/</link>
      <pubDate>Tue, 18 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/building-street-address-autocomplete/</guid>
      <description>Almost two years ago, SmartyStreets began an exodus from the .NET platform. What would take its place? Go. Before moving our entire code base from .</description>
    </item>
    
    <item>
      <title>Going fast at startups</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/go-at-fullstory/</link>
      <pubDate>Mon, 17 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/go-at-fullstory/</guid>
      <description>FullStory is a tool for understanding website visitors in a whole new way. An in-page script captures everything that happens during a user&amp;rsquo;s online session, including the entire DOM and every mutation.</description>
    </item>
    
    <item>
      <title>Bleve: Text Search Powered by Go</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/bleve-text-search-powered-by-go/</link>
      <pubDate>Sun, 16 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/bleve-text-search-powered-by-go/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.blevesearch.com/&#34;&gt;Bleve&lt;/a&gt;, a text indexing and search library for Go, is excited to be part of the celebration of the 5th birthday of Go.  Building a complete solution for indexing and search text requires integrating many different technologies.  Go, the language, the standard library, the whole ecosystem, combine to make this not only possible, but fun.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How Continuum ended up being written in Go</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/apcera/</link>
      <pubDate>Sat, 15 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/apcera/</guid>
      <description>In March of 2012, I had just left VMware and the project I had founded, architected and built, Cloud Foundry. PaaS then was still very new, as was a distributed system built in Ruby.</description>
    </item>
    
    <item>
      <title>Using Go in government</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/using-go-in-government/</link>
      <pubDate>Fri, 14 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/using-go-in-government/</guid>
      <description>When the UK Government Digital Service (GDS) started working on GOV.UK, much of it was built in Ruby. Since then, we’ve used a number of different programming languages across government including Java, Clojure, Scala, Python and Javascript.</description>
    </item>
    
    <item>
      <title>To be Concurrent or Not to be? Sometimes Both</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/to-be-concurrent/</link>
      <pubDate>Thu, 13 Nov 2014 00:00:00 -0600</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/to-be-concurrent/</guid>
      <description>Go really makes concurrency easy. That said, there&amp;rsquo;s still some things to watch out for and not every 3rd party package you find out there is ready to have &amp;ldquo;go&amp;rdquo; put in front of its functions.</description>
    </item>
    
    <item>
      <title>Why InfluxDB is written in Go</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/why-influxdb-uses-go/</link>
      <pubDate>Wed, 12 Nov 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/why-influxdb-uses-go/</guid>
      <description>InfluxDB is an open source time series database written in Go. One of the important distinctions between Influx and some other time series solutions is that it doesn&amp;rsquo;t require any other software to install and run.</description>
    </item>
    
    <item>
      <title>Kubernetes &#43; Go = Crazy Delicious</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/kubernetes-go-crazy-delicious/</link>
      <pubDate>Tue, 11 Nov 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/kubernetes-go-crazy-delicious/</guid>
      <description>What is Kubernetes? And what kind of name is that? Kubernetes is a container cluster management system. Modeled after Google&amp;rsquo;s internal systems, Kubernetes (or k8s for short) allows users to schedule the running of Docker containers over a cluster of machines.</description>
    </item>
    
    <item>
      <title>Introducing the Go Birthday Bash 2014</title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/go-turns-5/</link>
      <pubDate>Mon, 10 Nov 2014 00:00:00 -0800</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/go-turns-5/</guid>
      <description>The Go Birthday Bash Today is a special day for Go enthusiasts across the globe. We&amp;rsquo;re celebrating the 5th birthday of a programming language, and perhaps just as importantly: a community.</description>
    </item>
    
    <item>
      <title>Welcome to the new Gopher Academy Blog</title>
      <link>https://blog.gopheracademy.com/welcome-to-the-new/</link>
      <pubDate>Fri, 07 Nov 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/welcome-to-the-new/</guid>
      <description>Welcome Gopher Academy is focused on bringing Gophers together. Our yearly conference GopherCon is a great example of our commitment to building a strong and inclusive community around the Go programming language.</description>
    </item>
    
    <item>
      <title>Automatically Deploy A Revel Web Application</title>
      <link>https://blog.gopheracademy.com/auto-deply-revel-site/</link>
      <pubDate>Wed, 09 Jul 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/auto-deply-revel-site/</guid>
      <description>Introduction The websites that power GopherAcademy and GopherCon are written using Revel, which is a very nice framework for building web applications. Go has a great built-in HTTP server, but there are times when you don&amp;rsquo;t want to roll-your-own web framework.</description>
    </item>
    
    <item>
      <title>Join Our New Slack Community For Gophers</title>
      <link>https://blog.gopheracademy.com/gophers-slack-community/</link>
      <pubDate>Mon, 12 May 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophers-slack-community/</guid>
      <description>Why Are We Doing This? GopherCon was an amazing experience for many of us who had the privilege to go. We met so many great people.</description>
    </item>
    
    <item>
      <title>GopherCon 2014 Retrospective(Denver, Colorado - 2014)</title>
      <link>https://blog.gopheracademy.com/gophercon-2014-retrospective/</link>
      <pubDate>Fri, 02 May 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gophercon-2014-retrospective/</guid>
      <description>It&amp;rsquo;s a Wrap Gophercon 2014 is in the books. In the end, we had 700 attendees, and it looks to us like everyone enjoyed the experience.</description>
    </item>
    
    <item>
      <title>Gogs: Binary Deployment: The Right Way to Deploy</title>
      <link>https://blog.gopheracademy.com/gogs-v0.2.0/</link>
      <pubDate>Tue, 01 Apr 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/gogs-v0.2.0/</guid>
      <description>Gogs: When you&amp;rsquo;re deploying a binary, you&amp;rsquo;re doing it Right. This post is published corresponding to the Gogs - Go Git Service v0.2.0 release.</description>
    </item>
    
    <item>
      <title>Go development environment for Vim</title>
      <link>https://blog.gopheracademy.com/vimgo-development-environment/</link>
      <pubDate>Sat, 29 Mar 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/vimgo-development-environment/</guid>
      <description>Go development environment for Vim The reason for creating vim-go Go has a very versatile toolchain and commands that makes Go programming fun. One of the famous tools is gofmt, which automatically reformats the code according to some predefined rules.</description>
    </item>
    
    <item>
      <title>Plumbing and Semantics: Communication Patterns in Distributed System</title>
      <link>https://blog.gopheracademy.com/plumbing-and-semantics/</link>
      <pubDate>Thu, 06 Feb 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/plumbing-and-semantics/</guid>
      <description>Introduction In distributed systems, multiple components running on different machines—physical or virtual—communicate and coordinate to accomplish tasks.
Distributed systems building typically focuses on the way components communicate.</description>
    </item>
    
    <item>
      <title>Moving to Go: A Pragmatic Guide</title>
      <link>https://blog.gopheracademy.com/moving-to-go/</link>
      <pubDate>Mon, 27 Jan 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/moving-to-go/</guid>
      <description>Moving to Go You’ve read all the blog posts about how great Go is. You’ve lost patience with your monolithic framework of choice—Ruby on Rails, Django, etc.</description>
    </item>
    
    <item>
      <title>GopherCon 2014 Scholarship for Women</title>
      <link>https://blog.gopheracademy.com/scholarship-for-women/</link>
      <pubDate>Wed, 15 Jan 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/scholarship-for-women/</guid>
      <description>Announcing the GopherCon Scholarship Program Today I&amp;rsquo;d like to announce the GopherCon Scholarship Program. It&amp;rsquo;s goal is to increase the visibility of women in the Go community through the most direct path I can imagine: sponsoring their attendance to GopherCon 2014.</description>
    </item>
    
    <item>
      <title>Writing a Distributed Systems Library in Go</title>
      <link>https://blog.gopheracademy.com/writing-a-distributed-systems-library/</link>
      <pubDate>Mon, 06 Jan 2014 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/writing-a-distributed-systems-library/</guid>
      <description>Writing a Distributed Systems Library in Go Introduction In early 2013, I needed to add distributed processing and storage to my open source behavioral analytics database.</description>
    </item>
    
    <item>
      <title>Go Advent Day 25 - Announcing GopherCon 2014 Speakers</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-25-gophercon-announce/</link>
      <pubDate>Wed, 25 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-25-gophercon-announce/</guid>
      <description>Go Advent This posting brings to a close the Go Advent series that started on December 1st. We&amp;rsquo;ve had some amazing posts from all around the Go community.</description>
    </item>
    
    <item>
      <title>Go Advent Day 24.5 - Thank you</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-24-thank-you/</link>
      <pubDate>Tue, 24 Dec 2013 11:58:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-24-thank-you/</guid>
      <description>Thank you So far this year&amp;rsquo;s Go Advent has generated over 60k unique page views and exists as a permanent resource for the future. In this penultimate post we&amp;rsquo;d like to recap the contributions by our fantastic authors.</description>
    </item>
    
    <item>
      <title>Go Advent Day 24 - Channel Buffering Patterns</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-24-channel-buffering-patterns/</link>
      <pubDate>Tue, 24 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-24-channel-buffering-patterns/</guid>
      <description>Introduction One common method for message processing in Go is to receive from an input channel and write to an output channel, often using intermediate channels for message transformation and filtering.</description>
    </item>
    
    <item>
      <title>Go Advent Day 23 - Multi-Platform Applications: Architecture and Cross-Compilation</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-23-multi-platform-applications/</link>
      <pubDate>Mon, 23 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-23-multi-platform-applications/</guid>
      <description>Introduction While Go is touted for its utility on the server side and in networked environments, Go is incredibly powerful as a client-side (desktop) application language as well.</description>
    </item>
    
    <item>
      <title>Go Advent Stocking Stuffer Bonus - Ginkgo and Gomega: BDD-Style Testing For Go</title>
      <link>https://blog.gopheracademy.com/advent-2013/ginkgo/</link>
      <pubDate>Mon, 23 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/ginkgo/</guid>
      <description>Ginkgo and Gomega: BDD-Style Testing For Go Agile software development is all about discipline, and disciplined agile developers test-drive their code: with a comprehensive test suite, refactoring and adding new features becomes substantially less stressful and time-consuming.</description>
    </item>
    
    <item>
      <title>Go Advent Day 22 - A Journey Into NSQ</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-22-a-journey-into-nsq/</link>
      <pubDate>Sun, 22 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-22-a-journey-into-nsq/</guid>
      <description>Introduction (NSQ is a realtime distributed messaging platform. It&amp;rsquo;s designed to serve as the backbone of a modern infrastructure composed of loosely connected services running on many computers.</description>
    </item>
    
    <item>
      <title>Go Advent Day 21 - Two Factor Authentication in Go</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-21-two-factor-auth/</link>
      <pubDate>Sat, 21 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-21-two-factor-auth/</guid>
      <description>Introduction Every day we hear about another site getting hacked and more passwords being leaked. Bad passwords and password reuse are two of the biggest problems with the human side of computer security.</description>
    </item>
    
    <item>
      <title>Go Advent Day 20 - Go in Academia: Emulating Wireless Networks</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-20-squirrel/</link>
      <pubDate>Fri, 20 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-20-squirrel/</guid>
      <description>How I Came to This TL;DR; — We didn&amp;rsquo;t want to use simulators and using real device for experiments became infeasible, so I decided to build an emulator for 802.</description>
    </item>
    
    <item>
      <title>Go Advent Day 19 - Eject the Web</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-19-eject-the-web/</link>
      <pubDate>Thu, 19 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-19-eject-the-web/</guid>
      <description>Editors Note: Yasuhiro is not a native English speaker, so during the editing of this post is was necessary to make some minor corrections. We felt that it was very important however, that the Author&amp;rsquo;s original phrasing and intent be preserved as much as possible.</description>
    </item>
    
    <item>
      <title>Go Advent Day 18 - Go Outside</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-18-go-outside/</link>
      <pubDate>Wed, 18 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-18-go-outside/</guid>
      <description>Introduction Outside is a Go package to dynamically link to and execute functions in Windows Dynamic Link Libraries and Linux Shared Libraries. Its current status is &amp;lsquo;prerelease&amp;rsquo; with only 32-bit register size implemented and tested so far.</description>
    </item>
    
    <item>
      <title>Go Advent Day 17 - Pond: a New RSS&#43;Atom Syncing Protocol</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-17-pond-a-new-rss-atom-syncing-protocol/</link>
      <pubDate>Tue, 17 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-17-pond-a-new-rss-atom-syncing-protocol/</guid>
      <description>The Problem We&amp;rsquo;re standing on the verge of a new era of data ownership and privacy, with decentralization and cryptography taking center stage on the technical side of things.</description>
    </item>
    
    <item>
      <title>Go Advent Day 16 - Coconut: a pure Go blogging engine</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-16-coconut/</link>
      <pubDate>Mon, 16 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-16-coconut/</guid>
      <description>Quickstart Coconut is a simple blogging engine. It has two kinds of content: Articles and Pages.
 Articles are stored in the articles directory and can be requested by using their file name (minus the required &amp;ldquo;.</description>
    </item>
    
    <item>
      <title>Go Advent Day 15 - Accelerating ecommerce with Go</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-15-shopping-with-go/</link>
      <pubDate>Sun, 15 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-15-shopping-with-go/</guid>
      <description>Welcome Writing an ecommerce site in Go Go adoption in the enterprise is increasing since the 1.0 release. Large respected tech companies have been using Go to build interesting back end services like etcd, specialized content delivery systems like dl.</description>
    </item>
    
    <item>
      <title>Go Advent Day 14 - gobrew</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-14-gobrew/</link>
      <pubDate>Sat, 14 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-14-gobrew/</guid>
      <description>What is gobrew? Simply put, gobrew lets you easily switch between multiple versions of go. It is based on rbenv and pyenv.
Why gobrew? Often times you&amp;rsquo;ll be developing against one version of Go when another version is released (or perhaps a release candidate is made available).</description>
    </item>
    
    <item>
      <title>Go Advent Day 13 - Go web services with Tiger Tonic</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-13-tiger-tonic/</link>
      <pubDate>Fri, 13 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-13-tiger-tonic/</guid>
      <description>Welcome Go is unique among mainstream programming languages in that its standard library web server is not a complete afterthought. The Go language is well-suited for engineering complex networked services and Go&amp;rsquo;s standard library recognizes that many (if not most) of those services communicate via HTTP.</description>
    </item>
    
    <item>
      <title>Go Advent Day 12 - Inside the Go Playground</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-12-inside-the-go-playground/</link>
      <pubDate>Thu, 12 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-12-inside-the-go-playground/</guid>
      <description>From-the-state&amp;rsquo;s-secret-department Today&amp;rsquo;s post comes to us from the Go team&amp;rsquo;s own Andrew Gerrand.
Reporting from deep inside an undisclosed location, Andrew lifts the lid on one of Go&amp;rsquo;s greatest mysteries: how does the Go Playground work?</description>
    </item>
    
    <item>
      <title>Go Advent Day 11 - Build a Christmas List with Martini</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-11-martini/</link>
      <pubDate>Wed, 11 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-11-martini/</guid>
      <description>Introduction Martini is a Go package for web server development that has gained quite a bit of popularity over the last month. Martini was written to help make web development in Go a convenient, expressive, and DRY (pun intended) process.</description>
    </item>
    
    <item>
      <title>Go Advent Day 10 - Beyond Static Binaries</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-10-beyond-static-binaries/</link>
      <pubDate>Tue, 10 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-10-beyond-static-binaries/</guid>
      <description>Introduction Today we&amp;rsquo;re going to go against the general theme of the Go Advent Calendar and introduce No New Hotness™. That&amp;rsquo;s because today is all about why folks in IT operations &amp;lt;3 go.</description>
    </item>
    
    <item>
      <title>Go Advent Day 9 - Building A Weather App In Go</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-09-building-a-weather-app-using-go/</link>
      <pubDate>Mon, 09 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-09-building-a-weather-app-using-go/</guid>
      <description>Introduction At Ardan Studios we have spent the last 6 months, in our spare time and on weekends, building a consumer based mobile application called OutCast.</description>
    </item>
    
    <item>
      <title>Go Advent Day 8 - Doctor Who and the mutant Go compilers</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-08-dr-who-and-the-mutant-go-compilers/</link>
      <pubDate>Sun, 08 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-08-dr-who-and-the-mutant-go-compilers/</guid>
      <description>At the end of 1963 the UK was in the grip of Beatlemania, but for an impressionable 7-year old like me, it was the arrival of Doctor Who that really fired my imagination.</description>
    </item>
    
    <item>
      <title>Go Advent Day 7 - A Router for GOV.UK</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-07-a-router-for-govuk/</link>
      <pubDate>Sat, 07 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-07-a-router-for-govuk/</guid>
      <description>Introduction When we set out to build GOV.UK, the new home for UK Government information and services, we decided up front that we wanted an architecture that would allow us to build very focussed applications that did one thing well.</description>
    </item>
    
    <item>
      <title>Go Advent Day 6 - Service Discovery with etcd</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-06-service-discovery-with-etcd/</link>
      <pubDate>Fri, 06 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-06-service-discovery-with-etcd/</guid>
      <description>Introduction At Poptip, our first foray into Go was a small but critical service that required extremely high throughput for a non-trivial amount of text processing.</description>
    </item>
    
    <item>
      <title>Go Advent Day 5 - An introduction to beego</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-05-beego/</link>
      <pubDate>Thu, 05 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-05-beego/</guid>
      <description>An introduction to beego Beego is an open-source, high-performance and lightweight application framework for the Go programming language. It supports a RESTful router, MVC design, session, cache intelligent routing, thread-safe map and many more features that you can check out here.</description>
    </item>
    
    <item>
      <title>Go Advent Day 4 - GoConvey</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-04-goconvey/</link>
      <pubDate>Wed, 04 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-04-goconvey/</guid>
      <description>Introduction One highly appealing aspect about Go is built-in testing with go test. From one who once eschewed test-driven development, I now wholly encourage it.</description>
    </item>
    
    <item>
      <title>Go Advent Day 3 - Building a Twelve Factor App in Go</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-03-building-a-twelve-factor-app-in-go/</link>
      <pubDate>Tue, 03 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-03-building-a-twelve-factor-app-in-go/</guid>
      <description>Introduction I’ve been writing a lot of Go code lately, but only recently discovered the Twelve Factor App manifesto. Coming from an Operations background I really resonated with many of the topics and solutions covered by Twelve Factor.</description>
    </item>
    
    <item>
      <title>Go Advent Day 2 - Go 1.2 performance improvements</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-02-go-1.2-performance-improvements/</link>
      <pubDate>Mon, 02 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-02-go-1.2-performance-improvements/</guid>
      <description>Introduction 7 months, 1600 changes, well over 350 issues closed¹, and Go 1.2 is done.
Go and install it now &amp;ndash; it&amp;rsquo;s ok, it only takes a few minutes &amp;ndash; I&amp;rsquo;ll wait.</description>
    </item>
    
    <item>
      <title>Go Advent Day 1 - Go 1.2 is released</title>
      <link>https://blog.gopheracademy.com/advent-2013/day-01-go-1.2/</link>
      <pubDate>Sun, 01 Dec 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/advent-2013/day-01-go-1.2/</guid>
      <description>Welcome Welcome to our first Go Advent Calendar.
Gopher Academy is bringing you 25 blog posts about Go in 25 days and we&amp;rsquo;re starting from the top with a blog post from the Go team themselves.</description>
    </item>
    
    <item>
      <title>Go Advent 2013 starts next week</title>
      <link>https://blog.gopheracademy.com/go-advent-2013/</link>
      <pubDate>Mon, 25 Nov 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/go-advent-2013/</guid>
      <description>Introduction Over at GopherAcademy, we’re getting in the Christmas spirit a little early this year. We’ve decided to do a Go Advent Calendar, highlighting cool Go projects every day from December 1st through the 25th.</description>
    </item>
    
    <item>
      <title>SkyDNS (Or The Long Road to Skynet)</title>
      <link>https://blog.gopheracademy.com/skydns/</link>
      <pubDate>Thu, 10 Oct 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/skydns/</guid>
      <description>SkyDNS and Skynet This article is in two sections. The first is the announcement of SkyDNS, a new tool to help manage service discovery and announcement.</description>
    </item>
    
    <item>
      <title>Recursion and Tail Calls in Go</title>
      <link>https://blog.gopheracademy.com/recursion/</link>
      <pubDate>Tue, 23 Jul 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/recursion/</guid>
      <description>Introduction This guest post is written by William Kennedy, author of the Going Go blog.
I was looking at a code sample that showed a recursive function in Go and the writer was very quick to state how Go does not optimize for recursion, even if tail calls are explicit.</description>
    </item>
    
    <item>
      <title>Introducing Gopher Academy</title>
      <link>https://blog.gopheracademy.com/introducing-gopher-academy/</link>
      <pubDate>Tue, 09 Jul 2013 06:40:42 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/introducing-gopher-academy/</guid>
      <description>Introduction The people behind Gopher Academy have been active Go developers and contributors for several years. The Go ecosystem is vibrant, active, and full of smart people, but we always felt like it was missing a strong presence outside of Google.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.gopheracademy.com/birthday-bash-2014/readme/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog.gopheracademy.com/birthday-bash-2014/readme/</guid>
      <description></description>
    </item>
    
  </channel>
</rss>