CodeSolid

A Go Programming Notebook

  • Building a Docker Golang Container

    One of the main benefits I get from blogging about software is that it gives me the opportunity to dust off and improve skills that I otherwise might not get too much opportunity to practice during my day job as a Java peasant. (If you don’t know, Java Peasants work in object factories).

    Read more…
  • Personal Discipline for Programmers

    I have been thinking about the state of my personal discipline around programming recently, and how making some minor tweaks to it might improve my productivity. By personal discipline, I mean especially the discipline that I either bring, or don’t bring, to my side projects.

    Read more…
  • Go Tools Quick Roundup

    When I was new to programming, I tried to spend a lot of time on core fundamentals of the language, or whatever batteries were included. In my first serious language, C, that meant C syntax plus the C standard libraries. These days I do try to spend enough time on the basics of a language to be productive, but I also quickly start thinking about projects, which inevitably leads me to look beyond the language core to see what tools might support projects.

    Read more…
  • Fast S3 Updates With Golang and Goroutines

    I recently wrote a go program to optimize my S3 uploads for this blog. The idea was to write a program that would only upload the files that have changed (rather like RSync), rather than bulk uploading the whole site each time. Although there are third party tools to do this, I wanted to learn more about the golang AWS API, while at the same time getting a chance to run some goroutine benchmarks. To see the code and the benchmarks I did, read on!

    Read more…
  • Convert Jekyl files to Hugo files using Golang (You Know You Want To)

    Although I’ve been programming professionally for many years now, this article deals with the kind of guilty-pleasure program that I most enjoy writing. It’s just a little script, not too polished, put together in a few hours on a weekend to do some idiosyncratic task while helping me to solidify my skills in language I’m wanting to polish up. This is the go source for a little go script I called blog_phoenix, since its purpose was to take a bunch of crusty old blog files that had once been in Wordpress and gosh-knows what and turn them into something that could appear on the latest iteration of CodeSolid.com.

    Read more…
  • gowritego - A tool for converting golang source to markdown

    This is the main file for gowritego, a simple tool that reads special comment blocks like this in a golang program to allow. This handy tool let me begin this article about the tool (how meta!) by simply adding an enhanced multiline comment block to the main program file. For more information, see the full code and the readme at https://github.com/CodeSolid/gowritego

    Read more…
  • Useful Docker Commands

    These were just some useful docker commands I thought I’d jot down so I wouldn’t forget them. This is a fairly short list, so fair warning: I’m publishing it to embarrass myself into making it longer and more useful.

    Read more…
  • Simple Vagrant Ansible Local Example

    I recently worked on a project showing how to install and configure a complete Pentaho Server instance with a back-end data repository housed in Postgresql. I wanted to select a provisioner for this work that would be easy to use to deploy the server either as a single instance VM, as an Amazon AMI, or as a set of docker containers. As I was setting up the first such target I wanted to support – a VirtualBox VM – I noticed that the examples and documentation for using Vagrant’s ansible-local provisioner were a bit sparse.

    Read more…
  • How to Easily Create Region Maps for AMIs in CloudFormation Templates

    If you’ve worked with CloudFormation longer than a few hours, you’ve probably wondered how to easily create RegionMaps without manually looking up AMI Image IDs in multiple regions. This article introduces ami_lookup, a tool to do it for you. CloudFormation is an powerful tool developed by Amazon to implement the DevOps vision of “infrastucture as code” in an AWS environment. One of the best practices for CloudFormation templates is to implement templates that are portable across regions, using a RegionMap to look up the correct Amazon Machine Image (AMI) for a given region.

    Read more…
  • AWS Certified Developer - Associate

    I’m pleased to share that as of Monday, May 7, 2018 I became an AWS Certified Developer - Associate. This is part of the DevOps and Cloud-specific training that I’m taking to round out my twenty years of software development experience. Why do so much training at this point in my career? Well, the point is to begin to offer Cloud Development and DevOps services to Charlotte area businesses.

    Read more…