<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Development on Townsourced Tech Blog</title>
    <link>https://tech.townsourced.com/categories/development/</link>
    <description>Recent content in Development on Townsourced Tech Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.</copyright>
    <lastBuildDate>Tue, 29 Jan 2019 19:36:00 +0000</lastBuildDate>
    
	<atom:link href="https://tech.townsourced.com/categories/development/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>BoltDB vs Badger: A Comparison of Go Key-Value databases</title>
      <link>https://tech.townsourced.com/post/boltdb-vs-badger/</link>
      <pubDate>Tue, 29 Jan 2019 19:36:00 +0000</pubDate>
      
      <guid>https://tech.townsourced.com/post/boltdb-vs-badger/</guid>
      <description>When I first started working on BoltHold (a simple querying and index engine that sits on top of BoltDB), Badger didn&amp;rsquo;t yet exist, and BoltDB was the clear leader of the pack for key-value, pure-go, embeddable databases.
Then Badger was released, and it was shown to be more than just a pure-go version of LSM-tree stores like RocksDB / LevelDB, it actually was faster than RocksDB. Much faster. I knew I wanted to build something with Badger in the future, and when an issue was opened to add Badger support to Bolthold, I jumped on it.</description>
    </item>
    
    <item>
      <title>When Naming Is Important, and When It&#39;s Not</title>
      <link>https://tech.townsourced.com/post/when-naming-is-important-and-when-its-not/</link>
      <pubDate>Mon, 30 Jul 2018 10:12:00 +0000</pubDate>
      
      <guid>https://tech.townsourced.com/post/when-naming-is-important-and-when-its-not/</guid>
      <description>Like Neanderthals Grunting and Pointing at Cave Paintings The other day a junior dev walked up to my desk and ask for some help troubleshooting a deadlocking issue he was seeing. I wasn&amp;rsquo;t familiar with the details of his process, so he proceeded to explain to me how the data was modeled, and how it flowed from one process to the next and was modified along the way.
The process was complicated enough that I wasn&amp;rsquo;t able to build a clear picture of the process in my head.</description>
    </item>
    
    <item>
      <title>Choosing A Library to Embed Static Assets in Go</title>
      <link>https://tech.townsourced.com/post/embedding-static-files-in-go/</link>
      <pubDate>Thu, 26 Apr 2018 20:58:55 -0500</pubDate>
      
      <guid>https://tech.townsourced.com/post/embedding-static-files-in-go/</guid>
      <description>One of the oft-touted benefits of Go is that applications written in it are easily deployed because they are statically complied. A lot of this benefit goes away if you need to manage the location and permissions on a bunch of files needed to run a web application.
The solution is to compile any necessary files into the application binary itself. This can be done in Go by using a byte slice literal containing the string representation of the bytes in a file.</description>
    </item>
    
    <item>
      <title>Anatomy of a Go Web App - Part 2: Authentication</title>
      <link>https://tech.townsourced.com/post/anatomy-of-a-go-web-app-authentication/</link>
      <pubDate>Sun, 15 Jan 2017 19:05:51 -0600</pubDate>
      
      <guid>https://tech.townsourced.com/post/anatomy-of-a-go-web-app-authentication/</guid>
      <description>&lt;p&gt;This is part two of a set of posts breaking down some of the decisions I made when putting together the web server for
&lt;a href=&#34;https://www.townsourced.com&#34;&gt;townsourced&lt;/a&gt;.  The first part is &lt;a href=&#34;https://tech.townsourced.com/post/anatomy-of-a-go-web-app/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instead of a general overview, like part one, this post will focus specifically on &lt;strong&gt;User Authentication&lt;/strong&gt;, i.e. how to
handle passwords (if at all) and session management.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Anatomy of a Go Web Application</title>
      <link>https://tech.townsourced.com/post/anatomy-of-a-go-web-app/</link>
      <pubDate>Sun, 04 Dec 2016 10:37:07 -0600</pubDate>
      
      <guid>https://tech.townsourced.com/post/anatomy-of-a-go-web-app/</guid>
      <description>&lt;p&gt;When building a web application from scratch, there are a lot of decisions to make.  The goal of this guide is to give
one more example of how you can go about building a web application in the Go language, as well as to give you an idea
what things you need to start thinking about and plan for before you get started.&lt;/p&gt;

&lt;p&gt;This guide is not intended to be exhaustive, nor is it absolute. It is a compendium of the things I thought about and how I dealt
with them when building &lt;a href=&#34;https://www.townsourced.com&#34;&gt;townsourced.com&lt;/a&gt;.  Hopefully you&amp;rsquo;ll find it useful.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>