How we use golang to deliver custom software

Whether we are building web services or cross-platform desktop software we reach for golang. Go provides a good mix of performance, portability, and maintenance that helps us be productive.


Choosing the Right Sqlite Indexes to Improve Rainflow Cycle Counting Performance

Apr. 29, 2023 golang · fyne · fatigue-analysis ·

I thought that I knew a thing or two about sql indexes. It’s easy right, you just run a couple sql commands to create your index, and you’re off to the races. Turns out that it isn’t quite that easy to get the index you need. You need to know a few things.

  1. You need to know how sql indexes work (especially for the database you’re using, we’ll be discussing sqlite3)
  2. You need to know how you’re going to query your data.

Example Data Tables

If you’re brand new to sql and have never heard of indexes, it would make sense that we take a bit of a sidebar and discuss why they are important. Let’s lay a bit of groundwork to get us started on this discussion.




Rainflow Cycle Counting: Efficient memory use for large datasets using Go channels

Apr. 26, 2023 golang · fyne · fatigue-analysis ·

Curious how you can get started processing 100 Million data points, using only 150 MiBs of memory, from a native GUI application? Keep reading to figure out how we’ve been working on this problem.

In a previous post, we talked about the design goals that were important to a rainflow cycle counting application that we’re working on. Two of those goals are in somewhat of a conflict, Efficient and Quick, but efficient edged out over quick in the priority scale. We decided being able to run on lower spec hardware instead of a massive datacenter machine with gobs of memory, was more important than being super quick.




Fatigue Analysis Rainflow Cycle Counting

Apr. 15, 2023 golang · fyne · fatigue-analysis ·

Rainflow cycle counting ยท custom software build

At High Creek Software we have been working on a purpose specific tool to extract cycles out of an inline inspection dataset. Our hope is to provide an accurate and fast process for extracting cycle data to be used in fatigue life analysis.

To get started, this is still a work in progress, but we feel that we’ve made good enough progress to start talking about it. Right now, we have a project based UI where you can:




Using Golang Embed and Build Tags for a Self Contained App

Mar. 6, 2023 golang ·

In the recent released go has added some nice developer features. One of my favorites has been embed paired with fs.FS. Using these two together you can build a binary that contains all the required assets as well. This is my go to when developing a web project that needs templates or js/css to be deployed with it.

There is just one problem with this though. During develop time, it isn’t the most convenient to use the compiled in templates or js/css. If you make a change you’d like to not have to rebuild your binary to test those updates. With the use of embed, fs.FS, and build tags you can use either the filesystem assets or an embedded set of assets to make either your development time or deployment time easier and more efficient.