Web Design Doesn't Have to Be Complicated
I am not a web designer. In fact, I'm usually pretty bad at creating any sort of visual design. And that's fine, I think. There's always something that you're not good at or that you don't enjoy, and it's not a big deal because there are plenty of other people who are good at it. Still, something about the fact that I never really made a decent-looking website myself didn't sit right with me. So I figured I'd take it upon myself to redesign this blog and try to get out of my comfort zone.
Continue reading ➡Making Sense of Software Licensing
A while back (my god, has it really been two and a half years? 😟), I wrote an article about writing Spigot plugins in Clojure. In that post, I presented what could be considered a proof of concept for how you can approach this unusual combination.
Continue reading ➡Enjoying food on a budget
After graduating the German equivalent of high school at the beginning of summer 2020, I immediately made plans to start studying computer science that same year, far away from home. Up to this point, I had spent my entire life living with my parents in one city. Now, all of a sudden, I would have to figure out how to live on my own, in a city I did not know, all at the height of the COVID pandemic. I'm sure many people can relate when I talk about how overwhelming this step can be and how the uncertainty of it all can cause a lot of anxiety.
Continue reading ➡How To Write a Webhook Discord Bot In Clojure
I write a lot of apps for the messenger Discord, specifically bots. It's a big part of how I learned programming to begin with and I still enjoy it to this day. Last year, I wrote quite a few small and simple bots: instant-poll (creates polls in your Discord server), xkcdiscord (displays xkcd comics) and beepl (translates messages via deepl).
They all have something in common: they're written using a new(-ish) way to interact with Discord. It's a way that is very efficient, clean and simple compared to the traditional way of using the Discord API, which is why I like it so much. Even after over a year, this method is still not on every Discord developer's rader. Subsequently, I frequently get the question "How do these bots work?" - answering this question will be my mission for this post.
Immutable Collections are Fast (Enough)
A couple of months ago, a few people, including myself, discussed how to implement breadth-first search in concrete code. As is often the case, there are multiple approaches: an imperative implementation (as shown on the Wikipedia page) and a recursive, more declarative implementation. The latter looks something like this (pseudo code, mostly taken from German Wikipedia but with an ML-style syntax):
Continue reading ➡