Nearly every technologist knows about semantic versioning (semver), it’s familiar for developers and sysadmins alike. However, what’s really cool is implementing semantic commits and semantic releasing!
I only really started to become familiar with the concept of semantic commits a couple of years ago. When you’re a hobbyiest writing lots of code, there isn’t much motivation or need to write a commit message - because nobody is going to read it.
This is just a quick article to describe how the GoConSPA stack implements the 15 Factor App principles.
1. One Codebase, Ont Application GitHub: All code for the application is stored in a single repository. 2. API First ConnectRPC: The api is defined in protobuf, and exposed via ConnectRPC. 3. Dependencies Go Modules: All dependencies are managed via Go modules, and vendored in the repository. 4. Configuration GitOps: Configuration is stored in Git, allowing for version control and easy collaboration.
I’m eager to write about a technology stack that I’ve stumbled into, which I believe is the nicest one I’ve ever worked with. The stack is called GoConnSPA, and it consists of the following technologies and tools;
Overview flowchart TD A[Backend Service] <-->|websocket| B[Single Page App] Technologies Go: The Go programming language, which is known for its simplicity and efficiency. ConnectRPC: A gRPC framework for Go that simplifies the process of building and consuming gRPC services.
This evening finally marks the completion of the migration of https://docs.olivetin.app to a new build system, called Antora.
OliveTin’s documentation consists currently of 126 AsciiDoc files, 50 images, and many example config files, code examples, and similar. I would not say it is a very large documentation site, like OpenShift or any of the Red Hat documentation that I spend a lot of time reading (also written in AsciiDoc), but it’s a decent size that has been built up over the last 3 years.
In my very first job interview out of University, I was asked a question that I have never forgotten. The interviewer asked me “What skills do you think you have, that other people don’t?”. Context is important, I was 21, I’d never had a professional job in IT before, and I was applying for a job as a Systems Engineer. What came to mind quite quickly, was that I’ve been programming since I was about 11 or 12 years old, and it’s given me an appreciation for why software fails.
Sometimes you need to write a HTML webpage that is based on some sort of data file, like YAML files. Rather than having a server-side script generate the HTML, you can generate the HTML page statically, making it easier to host and cache.
I thought about writing a tool myself to do this, but thankfully, I found Gomplate. It is a powerful Go-based template renderer that allows you to generate dynamic content from various data sources, including YAML files.
I am so sick and tried of changing task management systems, I will just be using plain .txt files from now on.
In the last 10 years, I have tried so many different systems for organising my work and my personal life and yet I’ve not been able to keep using one of them after a few weeks or months. After all this time I think I’ve finally come to the realisation that they all suffer from the same inadequacies.
It can be a real effort to bring yourself to write articles to maintain a healthy blog, and sometimes the simple articles are best. Therefore, I just want to take a quick few moments to talk about a tool that I just cannot live without now-a-days, when writing Go code, I am always live-reloading with Air in the background.
It’s really valuable for developers to be able to get fast feedback on the code that they are writing.
I love Ansible, and I love doing certifications - so this was a no-brainer. In this blog I’ll talk about how I prepared, how the exam felt, was it worth it, and at the end I’ll even explain why I used a cow image as the cover for this blog post! 1
The TURTLES model.
How many times have you seen projects abandoned on GitHub, or internal Wikis, with no explanation, no “next steps”, no follow-up or notes? How many hundreds of hours were lost to that project, and what was learned?
This article proposes a model (“TURTLES”), or more simply, a checklist, of how to properly archive a project.
Is now the right time to archive this project? T — Technologists: Do enough people contribute to maintaining this project?
This helps you use Go to power the next generation of APIs+PWAs.
Prerequisites; This article assumes you know what protobuf and gRPC are, and have set up the grpc-gateway for REST already for your app.
The context gRPC has become the default standard for modern Cloud Native RPC in Go. And gRPC is fine for backend service-to-service communication that can speak gRPC. To support older services, and the web, REST still reigns supreme.
Reading the source code is a pathway to many abilities that some consider… unnatural.
Luke’s original strategy was to attack the death star via SQL injection, but in the end he went for an X-Wing based buffer overflow.
I want to encourage you to actually read through the open source code for the software that you’re using. Doing so has many potential benefits, and skills like this can give you a real edge and advantage in your team.