The year 2021 is slowly approaching its end - and it has been a busy year! I've written lots and lots of posts in this year. Sometimes more often, sometimes less often, but it was always fun to share the knowledge and have interesting exchanges in the comments. Time to take a loot back.

Algorithm explained: K-means clustering๐Ÿ“ˆ with PHP๐Ÿ˜

The earliest one of the year and part 5 of Algorithms Explained. Doing some more advanced machine learning in PHP was a lot of fun. In this post I explain and implement the popular K-means clustering algorithm and do an example with generated datafor the reader to follow along.

๐Ÿณ ๐Ÿฒ Cooking for devs - a creative counterweight

A less techy post, but useful nevertheless! This post takes the developers point of view on everyday cooking, be it breakfast, lunch or dinner. Even the grocery shopping istn't neglected!

How to generate placeholder images with a simple Node script ๐Ÿ–ผ๏ธ๐Ÿ–Œ๏ธ๐Ÿค–

This post explains how to use Node, a canvas implementation and some other packages to create custom placeholder images. To make it easier for the user, I open sourced the script for everyone to use!

Build your own WYSIWYG markdown editor for Vue ๐Ÿ“๐Ÿ‘€

WYSIWYG ("What you see is what you get") editors are very common in CMS-like applications. Most of them are very heavy, though, and often you don't really need every single feature they offer. This post uses some lesser known browser features to create a Markdown WYSIWYG editor for Vue.

Let's build an actual working Guitar๐ŸŽธ with JavaScript ๐Ÿ’ป๐Ÿค˜

Probably my favorite one this year. Using a sound font and some SVG together with some CSS animations, here we build a working guitar!

Let's build an actual working digital Drum kit๐Ÿฅ you can play with your keyboardโŒจ๏ธ๐Ÿค˜

Second iteration of the guitar, but this time, it's a drum kit. The SVG is a little more complex and the entire thing offers keyboard support as well. Almost everything ready to start a digital rock band!

Crunching numbers: Algorithms I wrote for Project Euler๐Ÿงฎ๐Ÿ’ป

When I get bored, I sometimes open up Project Euler and try to solve a problem or two. Naturally, I tend to reuse parts of the code, which is why I came up with some kind of utility library I use specifically for Project Euler. This post contains some of my most used functions.

Yummyplan - An app to plan meals for an entire week๐Ÿž๐Ÿ“…

Yummyplan is an app I created to plan meals for an entire week. At home, we wanted to reduce the number of grocery trips and food waste we produced, and in order to streamline that process, we needed a bit of planning. This post explains what Yummyplan is, how it works and how you can use it, too!

๐Ÿ•ต๏ธSomething new every now and then: Trying Brunch๐Ÿด

Brunch is a build tool, much like Webpack. It claims to be a lot simpler and even faster, which is why I installed it and gave it a try with some lean standard setup.

I'm going to give Snowpack a try now โ„๏ธ๐Ÿ“ฆ

Snowpack is also a new kid on the block, although a bit better known than Brunch. I heard a lot about Snowpack, so I figured, why not give it a try and document my findings?

Yummyplan๐Ÿž๐Ÿ“… got some updates!

A few weeks after the release of Yummyplan, there were some updates. Lots of bugfixes, a new language and lots of new features!

Random numbers in CSS? Really? ๐ŸŽฒ๐Ÿค”

This post is what happens when I follow along a thought train and simply write down what I think about. A post about randomness, CSS, definitions and quantum weirdness.

Machine learning in Scratch?? ๐Ÿฑ๐Ÿ’ก

What happens if you use as a tool for something it wasn't originally intented for? You get an implementation of linear regression using gradient descent in a tool to teach programming!

How to generate thousands of usernames and halfway decent passwords with Bash๐Ÿ’ฏ๐Ÿ’ฏ

I build a lot of convenience tools, like, a lot of them. In this post I explain one of them: A script to create dummy usernames and passwords for whatever app.

Feel like a secret agent: Hidden messages in images with steganography ๐Ÿ–ผ๏ธ๐Ÿ•ต๏ธโ€โ™€๏ธ

Steganography is a technique to hide information in the less significant bits of some other information. This post explains how to hide an image within another image.

It's alive! Simulate organisms with Conway's game of life on a canvas ๐Ÿงซ๐Ÿ”‹

Conway's game of life is an amazing set of rules that has some very interesting emergent properties. This post explains how it works and how to implement it an an HTML5 canvas. Sadly, John Horton Conway passed away in April 2020, but his marvelous achievements in mathematics will live on.

Let's build a web radio player from scratch ๐ŸŒ๐Ÿ“ป

Video killed the radio star, internet killed the video star, and with this post we're going full circle! I explain how to build a web radio player for any website that uses an audio stream.

Let's build a box pushing puzzle game from scratch! ๐Ÿ“ฆ๐Ÿ•น๏ธ

I've played video games for most of my life. And at the very beginning, there was Sokoban. This post explains how to build a very simple Sokoban clone with HTML5 and JS.

Let's build a rainbow on a canvas from scratch! ๐ŸŒˆ๐Ÿ“

Rainbows are fascinating. And that's why I wanted to show how to create rainbows with the HSL color schema and some mathematics.

Ancient computer science: Let's build a Roman numeral converter from scratch ๐Ÿบ๐Ÿ“œ

In this post, I explain how roman numerals work, how to convert roman numerals to decimals and back and show how to implement a converter with HTML and some JS.

โš ๏ธ Don't try this at home: CSS-only image detail zoom - As hacky as possible! ๐Ÿ–ผ๏ธ๐Ÿ”

This is sort of an anti-tutorial. I tried to create a CSS only image detail zoom with some creative hackery and came up with the least ideal solution I could find.

Create beautiful rosette patterns with JavaScript ๐Ÿ–Œ๏ธ๐ŸŒผ

Another more artsy post. Rosette patterns are circular patterns that draw their beatuty from their symmetries. In this post I build a rosette pattern generator and explain the maths behind it.

I plowed through coding slang Wikipedia articles so you don't have to - 25 terms you probably didn't know ๐Ÿ๐Ÿ’ป

And the last one so far is about my journey through Wikipedia. I tried to look up something and ended up deeper in the rabbit hole of computer science slang than I could've imagined.

Remote pair programming - What are YOUR best practices? ๐Ÿง‘โ€๐Ÿ’ป๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป

Discuss what best practices you and your team have evolved for remote pair programming!

Thank you so much for the support and have a happy 2022!