Go To SQL

Gabe Schmidt Articles, Databases, Go, Programming, SQL, Tutorial Leave a Comment

In between projects here at Keyhole, I’ve been tasked with applying a relational database access and mapping framework in the Go language.

In this post, I go step by step to create a Postgres relational database, then perform CRUD operations against it in the Go language.

I won’t get into the specifics of configuring Go in this blog, but you can check it out yourself here – https://golang.org/. Additionally, Keyhole’s very own David Pitt wrote an excellent primer on the subject here – https://keyholesoftware.com/2019/09/26/go-on-the-fly/.

Documentation: Enough Already! Not.

Mike McCoy Articles, Consulting, Programming, Soft Skills Leave a Comment

Documentation. I know we all hate having to create it. I don’t like writing it and feel like I always leave something out. However, our assumptions of what other developers should think we are trying to accomplish by our masterpieces of software are usually filled with potholes (sometimes big ones). The truth of the matter is that no matter how stellar your code or software is – if you’re the only one who understands how it works, it doesn’t do any good.

These are not paintings or sculptures that would live the rest of their days in a museum, untouched by human hands and just collecting dust as they run. In reality, documentation will be added to and changed as the information they describe evolves.

In this blog, we discuss two suggested strategies for the creation of useful and concise software documentation.

Go On The Fly

Go “On The Fly”

David Pitt Articles, Development Technologies & Tools, Keyhole Creations, Programming, Tutorial Leave a Comment

People that know me, know that I love to fly fish and tie flies. I made up the saying “Time flies when you’re tying flies.” It is true, just like when you are trying to solve a programming problem, time flies.

Over the past few years, we at Keyhole have utilized Docker (with assorted technologies) and have gotten up to speed on the Hyperledger blockchain framework. Something that all of these technologies have in common is the Go language. Go is the language used to implement Docker, Hyperledger, OpenShift, and many other system-level applications.

Personally, I like to peek under the hood to better understand the tools I’m using. That led me to learning about the Go language. And in my opinion, the best way to learn a language is to build something.

So, I built an application for fly tying videos. There are numerous fly tying tutorials on YouTube, so I built an application that allows them to be organized into virtual fly boxes and types.

In this blog, I will introduce you to the Go language. We’ll go over some of the key language concepts by walking through how the https://flytyerworld.com server-side API is implemented using Go.

Picking A Graph Database: ArangoDB, Neo4j, or OrientDB

John Hoestje Articles, Databases, Opinion, Programming Leave a Comment

TL;DR

– Spoiler alert! Graph databases are a great option for storing complex and highly connected data.
– In this post, I compare the benefits and risks of graph databases ArangoDB, Neo4j, and OrientDB for a client project.
– Due to the combination of performance and cost, I chose ArangoDB for my client’s needs.

Spring Batch Testing & Mocking Revisited with Spring Boot

Jonny Hackett Articles, Development Technologies & Tools, Java, Spring, Spring Batch, Spring Boot, Testing 3 Comments

Several years ago, 2012 to be precise, I wrote an article on an approach to unit testing Spring Batch Jobs. My editors tell me that I still get new readers of the post every day, so it is time to revisit and update the approach to a more modern standard.

The approach used in the original post was purely testing the individual pieces containing any business logic. Back then, we didn’t have some of the mocking capabilities that we have today, so I went with an approach that made sense at the time.

However, there have been a few improvements in the past several years. One of those improvements has been the ability to Mock beans within a Spring Context. That’s where the @MockBean annotation comes to the rescue.