Experiences from CITCON Europe 2019 Janne Kemppainen |

It was that time of the year again, time for CITCON, an open space conference around testing and continuous integration. This was my third year attending the conference. Ever since attending for the first time in 2017 I’ve been looking forward to the next event.

In this post I will share my experiences from this year’s event in Ghent, Belgium.

Github Sponsors - Show Support For Your Favorite Open Source Contributors Janne Kemppainen |

GitHub just launched its' new GitHub Sponsors service which will let you financially support contributors of open source projects. It works just like Patreon but it is integrated in the GitHub service which should make sponsoring more accessible and visible for the end users.

Blog With Speech Recognition on Windows Janne Kemppainen |

If you are slow typist it can take a lot of time to write blog posts. With the advances in voice recognition technologies it is now easier than ever to write content fast.

In this blog post I will show you how you can write blog posts using the integrated voice recognition on Windows 10.

Personally, I’m using the Hugo static site generator to publish this blog which means that I use Visual Studio Code for writing content as Markdown files. However, most of these points should apply to creating any text form content so if your blog runs on WordPress read ahead.

As I am a touch typist and not a native English speaker for me it is actually easier to type than to speak to the computer. However, I think that after some practice I will be able to write faster using speech recognition. The biggest problem seems to be the need to think ahead what I’m going to say next.

Most of this blog post has been written with Windows dictation. Naturally, adding Hugo shortcodes (and fixing my pronounciation errors) still requires the use of a keyboard.

Stop Worrying About Python Code Formatting

An overview of the code formatter Black

Janne Kemppainen |

Wouldn’t it be nice if you didn’t have to worry about code formatting to make the linter happy? What if you didn’t need to complain about minor formatting issues every time you are reviewing code? Can’t agree on a common code style with your team so your codebase doesn’t have a consistent look and feel? You are just starting a new Python project? It might be the right time to try Black.

Code style: black

Hugo Single Page Templates Janne Kemppainen |

Now that our blog has a basic single post template it is time to move on to other content pages. In this post we will concentrate on pages such as About, Privacy Policy and Contact.

Even though the site itself is static it is possible to embed dynamic content from other sources. For example, the contact page will show you how to embed Google Forms as a contact form and a map showing your office location.

Improve Your Git Workflow With Github Hub Janne Kemppainen |

GitHub is an essential part of development for many software projects and it has a pretty good user experience on the website. However, sometimes you just want to do things from the command line. This is where the hub utility program comes in handy.

GitHub Hub is a small helper tool that lets you manage many of the GitHub features, such as opening pull requests, creating repositories, etc., straight from the command line. In this post I will show you most of the key features, and I’ve added some command aliases that should make your experience with hub even better.

Getting Started With Mosquitto on a Raspberry Pi Janne Kemppainen |

In this post we will install and configure a MQTT broker called Mosquitto on a Raspberry Pi.

To follow this post you will need a Raspberry Pi with the Raspbian OS installed. You can check out my previous tutorial to install and configure the Pi before starting with Mosquitto.

Show Twitter Follower Count with Google Spreadsheets as a Backend Janne Kemppainen |

I was quite surprised to get my first Twitter followers after linking my earlier blog post about developing with Windows Subsystem for Linux to Twitter as I’ve never really had a social media presence outside of my own circles. This gave me the idea to track how my Twitter following develops over time when I start from zero.

Given that I’m using a static blogging environment there is no server that could actively serve this data and routing users to my home server is definitely not an option. This is where Google Spreadsheets comes in handy as it turns out that you can fetch data in CSV format without having to use strong authentication! Read more to find out how I built the follower chart below.

Set Up a Raspberry Pi Home Server With Remote Access Janne Kemppainen |

In this blog post we will set up a Raspberry Pi home server and configure it to be accessible from the internet via SSH. You will also learn how to set up SSH forwarding so that you can access web pages that might be served in your private network without exposing them to the outside world.

Sure every other blog has instructions on installing Raspbian but I like to have an internal resource where to link to. This works as the “standard installation” for future blog posts.

How to Develop With Windows Subsystem for Linux? Janne Kemppainen |

Normally I’m writing this blog on a Mac but today I needed to use my Windows desktop PC instead. This meant that I needed to set up my environment properly with Visual Studio Code, Git, Hugo etc. In this post I’ll show you how to do development using the Windows Subsystem for Linux (WSL).

My use case is to run the Hugo development server and Git on WSL but to edit the source files with the native Visual Studio Code application. Another use case could be doing Node.js development with WSL.

Create a Single Post Template in Hugo Janne Kemppainen |

In this post we will create a template for single blog posts on our Hugo blog. The end result will be a clean and simple page with support for a featured image. It will also show the author, an author image, publish date and the estimated reading time.

Create a Layout for Your Hugo Theme Janne Kemppainen |

Last time we finally started creating our own theme and we were able to render something on the home page. We also created a template for the page head so that our pages will always contain the necessary metadata and information for social sharing. Next we’re going to create the basic layout for our page.