Blog Posts

How to remove the BS from your Facebook feed

Facebook being obnoxious

Yesterday, while listening to Can't Hurt Me while driving, I heard about how the author has disabled his facebook feed entirely to not waste time using it.

I decided to follow-up with an action myself as I realised what huge % of my facebook feed is useless - full of photos & memes from people I hardly know.

Yet, there are other people posting useful stuff which I'm interested in - e.g. interesting news, trends, community posts or the usual photos but from people, who are my relatives or I care about.

Hence, I decided to do a big facebook clean-up by unfollowing all the people with meaningless or distracting posts.

Continue Reading

Using Kibana to Debug Production Issues

Debugging production issues with Kibana


This article is part of the series Integrating your Go service with ELK

In the last chapter of these series, we covered how to create your first Kibana dashboard for a sample web application.

Although that will help you setup Kibana for your production services, what you'll be doing 99% of the time would be to actually use the dashboard to monitor & debug issues you observe on production.

This is the final post in the series for monitoring Go applications \w Kibana. It will give you some practice using your newly created dashboard to identify problems with a sample web application.

So if you've setup Kibana for the first time or you've just joined your new team & seen your Kibana dashboards without a clue what's going on, this post is for you!

Continue Reading

How to create a Logging Dashboard with Kibana

Kibana Dashboard


This article is part of the series Integrating your Go service with ELK

In this tutorial, I'll show you how to create a dashboard for your application's structured logs in Kibana.

This is a follow-up to this article, which covers how to instrument your Go application \w structured logging for use by Kibana (in this tutorial).

We'll use Kibana v7.6 but any version you're using should work. It's just that your UI might look a bit different & you'll have to adjust.

Let's jump straight in! We'll stick to simple panels, which suite most of the use-cases you'd need.

Continue Reading

todocheck v0.2.0 is live!

todocheck logo

The next release of todocheck - the tool that helps you track & keep TODOs actionable is live!

First time you hear about it? - check this out first.

In version 0.2.0, the main focus was extending support to new programming languages & issue trackers.

Hence, there are now five new languages supported - R, PHP, Rust, Swift & Groovy.

Support has been also provided for two new issue trackers - Pivotal Tracker & Redmine.

Additionally, one useful new feature is that todocheck now supports passing in your issue tracker authentication token via an environment variable - this will make it a lot easier to integrate the tool in your CI environment!

Finally, you can now specify todocheck's output to be in JSON format. This provides the opportunity to create IDE plugins or include support for todocheck into linter aggregators.

See the full changelog here & don't forget to update your binary to the latest release!

Eliminate the undocumented TODOs with todocheck

todocheck logo

Yesterday, I released todocheck - a new kind of static code analyser for annotated TODOs.

Way too often, we let leftover TODOs slip into our main branch, which leaves your coworkers puzzles, looking at it a year from now.

They're thinking - what did I mean by "TODO: Move this to the users package"? What is the users package? It doesn't seem to exist anymore.

todocheck helps you fix this by forcing you to mark all your TODOs against an existing, open issue in your issue tracker.

That way, if you, at some point, close the issue, thinking you're done, the CI pipeline will sparkle in red as there is an open, unaddressed TODO in your main branch.

No longer can developers close a half-baked issue, rushing for the weekly sprint review to say "I'm done!".

Continue Reading

A Concise Guide to the Latest Go Generics Draft Design

Generics in Go

Recently, the Go team announced an updated draft design for their Generics in Go proposal. It goes into a lot of details about why certain decisions were made, implementation details, etc.

In this article, my goal is to summarise the major upcoming changes, as the whole draft design can be a mouthful for many.

I will provide some code snippets to demonstrate the major features as well as give you the chance to experiment yourself with them, thanks to the new Go playground with support for generics.

Continue Reading

How to Use Structured Logs in your Go Application

structured logs in Kibana


This article is part of the series Integrating your Go service with ELK

The Elastic stack (also referred to as ELK) can bring a lot of value to your production services. But it is not that much of value if you don't use structured logs in your services.

In one of my latest posts, I wrote about what ELK is and why you should care. I also wrote a tutorial about how to integrate ELK with your Go app.

In this article, I will walk you through how to integrate structured logging in your Go services. We will use a sample HTTP service with a few basic endpoints and we'll use the zap library to emit logs on error/success, which would also include some domain-specific info.

Continue Reading

How to integrate your Go Service with ELK

Go loves ELK


This article is part of the series Integrating your Go service with ELK

In my last post, I shared how much value the ELK stack could bring for your application in terms of the monitoring capabilities it gives you.

In this post, I will walk you through how to integrate your Go application with ELK, what are the different parts of ELK, how they work and how to create a basic configuration for them.

Let's jump straight in, shall we?

Continue Reading

Getting The Most Out of Your Logs with ELK

Analysing Logs with ELK


This article is part of the series Integrating your Go service with ELK

When you start developing your application, you typically instrument it with some logging to be able to debug problems later.

Some skip it in the development phase, but once the application hits production, then it is crucial to have some logging.

After all, once users complain that something isn't working, how would you be able to find the root-cause?

And although logging proves to be useful, many companies don't really capitalise on its potential as they're still clinging to the classic way of writing freestyle logs and grep-ing them on their prod machines afterwards.

However, there is so much more potential that logging holds for monitoring our production systems. In this article, I will show you how to get the maximum value from your logs using the ELK stack.

Continue Reading

Site Footer

BulgariaEnglish