Hugo Comments Janne Kemppainen |

Comments are an important part of communicating with your audience. This is where static pages struggle a bit as they are immutable by design. To add comments to a Hugo (or any other static) blog you need to resort to some third party solution. Personally I’m using ReplyBox but Disqus works with Hugo out of the box so it would be the easy way.

In this post I’ll show you how to add Disqus or ReplyBox to your site but I will also talk about other alternatives.

Why Hyper-V Didn't Work on My Windows? Janne Kemppainen |

Sometimes computer problems just make you feel stupid. Today was one of those times so I thought I’d make a short write-up about what happened when I was trying to install Docker on Windows.

Related Content in Hugo Janne Kemppainen |

You may have noticed that many blogs like to promote other posts at the end of an article. Hugo can do this too with its related content feature. This means that you don’t have to hand pick those related posts for each new piece of content you write but you can let Hugo do it for you automatically. If you scroll down to the bottom of the page you can see a live example on this very page.

Install Python on Windows With Virtual Environments Janne Kemppainen |

Today I wanted to install Python natively on my Windows machine. Nowadays it is super easy as python can be installed straight from the Microsoft Store. So if you need to have Python on Windows I really recommend that you go to the Microsoft Store from the Start menu, search for Python and install it from there.

Implemement Hugo List and Taxonomy Pages Janne Kemppainen |

Until now we have concentrated on single pages such as blog posts or special pages. While we do already have a basic and functional list page for our blog it isn’t particularly pretty.

So in this post you will learn how to create a decent looking layout to display multiple blog posts on a single page.

Does Firefox Anti-tracking Block Google Analytics? Not by default. Janne Kemppainen |

Mozilla is determined to keep their browser secure and their user’s data as private as possible. Recently they introduced a tracking protection feature which blocks third party trackers and cryptominers, and is enabled for new users by default. Does this mean that Firefox users won’t show up in your Google Analytics anymore?

The short answer is “no”. The Enhanced Tracking Protection (ETP) affects only known third party tracking cookies by default. Read on for the longer answer.

Browse the Web With a Keyboard

A Comparison of Vim-like Browser Plugins

Janne Kemppainen |

Ever since I learned to use Vim I’ve been using it’s keybindings wherever I can. This also applies to my web browser. When Firefox stopped supporting the old extension format it meant that the plugin that I was using, Vimperator, would stop working. Therefore I needed to search for alternatives.

In 2018 Firefox stopped supporting the old XUL extensions API in favor of WebExtensions. The old extensions were difficult to write and some of them could cause memory leaks. It was getting more and more difficult for Mozilla to maintain their browser. They decided that XUL had to go.

This meant that the old advanced functions such as modifying the browsers UI weren’t available anymore and the Vimperator plugin couldn’t be updated with a reasonable amount of work. After just getting used to using Vimperator I didn’t want to go back.

Now, after a year and a half it’s time to go back and check how the alternatives to Vimperator are doing. Until now I’ve been using Vim Vixen as the Vimperator substitute but in this post I will compare different plugins that are available today:

  • Vim Vixen
  • Tridactyl
  • Vimium-FF
  • Surfingkeys

I will be comparing these extensions on Firefox. Vimium and Surfingkeys are also available for Google Chrome.

Control a Samsung TV with Node-RED

Or, How to Make Your Girlfriend Mad

Janne Kemppainen |

Node-RED is such a versatile thing. Did you know that it can be even used to control a TV! Wouldn’t it be nice to be able to restrict viewing time or force the TV to shut down on school nights? In theory you could even create your own remote controller.

In this post I’ll show some examples that could inspire you to create your own flows. Even though the control nodes I am using are specific to Samsung TV’s you should be able to adapt these designs to other manufacturer’s models too.

Even if you don’t really want to manage your TV programmatically you should still learn how to actually create some (potentially) useful logic with Node-RED.

Getting Started With Node-RED On a Raspberry Pi Janne Kemppainen |

Node-RED is a super useful tool that lets you create integrations between hardware devices, APIs and online services. Everything happens inside a web UI where you can add function nodes and connect them graphically to create more complicated logic. This flow based programming approach makes Node-RED more accessible to beginners and faster to prototype with.

Node-RED runs on top of Node.js and there are many community-made libraries that you can import to your project to create complex flows. And if you know JavaScript you can write custom functions to suit your needs.

In this blog post we will go through installing Node-RED on a Raspberry Pi and the basics of creating logic flows.

Introduction To Cloudflare Workers Janne Kemppainen |

I've been interested in serverless for a while but haven't had the chance to try anything out. Recently I found out about Cloudflare Workers, a rather new serverless solution by the CDN company that powers 10% of the Internet. In this post I'll tell you how it differs from its main competitors and how to get started.

Homebrew Options Removed Janne Kemppainen |

Starting from Homebrew 2.0.0 options are no longer supported in the Homebrew/homebrew-core repository. The reason for these changes was to reduce the support burden on the maintainers as the formulae with options needed to be built from source and couldn’t be tested on the CI system. Options will still be supported by third-party taps.

I was just recently bitten by this change at work. In my use case I needed to install Curl with the OpenSSL option to run Python unit tests for a project that depends on the pycurl pip package with the --with-openssl install option.

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.