Because ActivityPub instances can go offline from time to time and it’s general best practice to retry failed requests, I just added a new queueing system for ActivityPub requests to GoBlog using this nice library named “dque”. There’s always a bug or sub-optimal solution I need to fix before I want to release GoBlog (or whatever I will name it in the end) to the wide world. But the frequency of the discovery of improvable things is decreasing, so I hope I will be able to write documentation soon.
Go is now eleven years old! I’ve only been programming in Go for about 1.5 years, so I’ve only actively followed a small part of those eleven years. Nevertheless I am impressed how simple this programming language is, although new features are added all the time. And instead of getting slower with more features, Go gets faster with every new release.
Because I don’t have enough side projects yet, I started programming my own static site generator, with the creative name GoBlog. I doubt it will replace my use of Hugo in the near future, but it is exciting to write a Go program that is designed for high speed. I get to know features that I have never used before. I also learn what to pay attention to when thousands of files have to be parsed and processed concurrently. Maybe I will never be able to use this project for anything useful, but side projects are mainly there to have fun or learn something useful.
The result of the Stack Overflow Developer Survey 2020 has been published and as every year it is quite interesting to take a look at it. But it is also important to note that the survey was conducted in February, before some countries went into lockdown.
Telegram is my favorite messenger for chatting. There are many reasons for this. But Telegram is also very suitable to use it as a notification service for your own projects. For example I get a daily overview of the number of page views of my blogs, but also notifications about new Webmentions, or likes and announcements via ActivityPub are sent to me via Telegram.
It seems like I’m currently a bit obsessed with creating new Go-based projects. Yesterday, I announced my new Telegram channel, where it’s possible to receive notifications about new entries on my blog (I created another channel for the German posts too). First, I tried to use IFTTT, but somehow IFTTT’s behavior is a bit unpredictable and I thought it’s probably easier to just code my own solution. It was only a task of about an hour, but now it works the way I want it to work. To trigger updates on the Telegram channel, I configured my blog build pipeline (I use Drone CI to build and publish my blog) to always make a webhook request to my new tool after the updated site got deployed to the server. I have to say that the Telegram Bot API is a really nice and simple API. Sending a message is done with just a single HTTP call. Although there are a couple of libraries that can do that too, I noticed it’s easier to just write some simple code for the request myself.
What I like about Go: It’s quick and easy to create small programs, including support for Docker and everything. For example, today I developed a minimal URL shortener that stores the entries in a SQLite database: https://jlel.se/goshort