Blogs

Dirty clouds

Cloud and Linux

Ideally, all resources of a cloud environment should be handled by Infrastructure As Code (IAC). At work, we are using Terraform to do this. But as usual, the ideal situation is never what happens in practice. So, it is not uncommon for people to change things directly on the cloud environment: in …

Bye bye Experia Box (V10)

WAN settings

This is something that I wanted to do for years, and it finally happened. I got rid of the Experia Box.

You know the story. You switched to a fiber Internet connection. Is there anything better? I love it!

And then comes your “generous” ISP. They gave you the Experia Box, in my case V10 …

Map results should be …

When we want to write code that operates on a data structure, it is common to initially implement it for a single item, and then make it more general. In functional languages like Clojure, I use the following pattern a lot, to execute a function on all items of a data structure (aka collection, or …

Making S3 buckets public …

After doing an IAM cleanup and creating user groups to limit user permissions, our data scientists at work reported a problem. They are using Athena and boto3 to access S3 buckets programmatically, and that stopped working. They started seeing the following error message instead:

An error occurred ( …

When in trouble, ssh …

xkcd tar

I was configuring a new server and what’s the first thing that we want to setup when doing that? Passwordless ssh of course.

So after following all required steps, I tried to connect. And it failed (still required a password)… So what do we do in that case?

  • Ensure that the key was copied to …

Let's plant some UML

UML class diagram

Are you using UML? The Unified Modeling language is a very useful notation, especially when it comes to explaining the structure and behavior of object-oriented systems. It is language-independent and offers a wide range of models/diagrams that cover the different aspects (static, dynamic, …

Don't use a real …

I like Prolog. I think that it’s a brilliant tool. And not purely educational, unlike what many people think. You can actually use it to build real, useful, and practical applications: sudoku solvers, adventure games, formal logical systems, and a lot more. It might not be the best tool for …

One catch to rule them …

When writing code, we need to handle errors. What happens if you are trying to read a corrupt file? Or if the network goes down while receiving data? The programming language runtime will try to give you an error message that makes sense, but that doesn’t mean that this is what you want to …

Everyday command line: …

Welcome to the new (infinite) series “Everyday command line”, in which I’ll cover use cases where the command line still shines compared to your favorite file manager, IDE, editor, and the like :)

At times, I receive emails with lists of items that need to be modified using code. …

Wheels says no...

Computer says no

After porting one of our libraries at work in Python 3, I wanted to publish it as a package. The tool that we are using to distribute packages is wheels.

Unfortunately, wheels was refusing to create the package. It was reporting an error similar to the following: wheel.cli.WheelError: "Bad …