Table subset searching with a list and DBIx::Class
When searching for a subset of rows in a database table by using a list of entries in one of its columns, one can use the WHERE column_name IN list syntax in...
When searching for a subset of rows in a database table by using a list of entries in one of its columns, one can use the WHERE column_name IN list syntax in...
A Common-Sense Guide to Data Structures and Algorithms (second edition) by Jay Wengrow is a clearly explained and (dare I say it) fun guide to data structure...
Not a real dinosaur and not real poetry. Just me updating my Python project setup knowledge.
When creating a Vagrant VM, one gets a pre-determined VM disk size. While this is more than enough in most use cases, sometimes it isn’t enough for what one...
apt_key
on Debian
The apt_key Ansible module has been deprecated and there isn’t a drop-in replacement. There is a workaround available which achieves the same result but req...
As part of tutoring physics and maths to high school students, I sometimes write up deep-dive explanations of questions arising during lessons. Below I disc...
Practical Object-Oriented Design by Sandi Metz: A well-paced, well-structured, and well-written introduction to the concepts of object-oriented design.
As a Linux user, getting commodity devices like GPS head units to play nicely can be hard. This is why I was particularly happy to find out that Garmin devi...
The backwards compatibility of Perl software is wonderful. That’s why it’s all the more jarring when you find a package that doesn’t work. This is the stor...
Have you ever wished your tmux sessions could magically spring back to life after having had to restart your computer? With tmux-resurrect, they can.
A trip to the library ended up being more eventful and instructive than planned. This is the story of how a bit of physics led me to look deeper into a car ...
Not only should the final commit in a pull request patch series pass all its tests but also each commit back to where the pull request branched from main. A...
As part of tutoring physics and maths to high school students, I sometimes write up deep-dive explanations of questions arising during lessons. Below I disc...
A GitHub user profile page can be a great place to show off what you’re interested in and what experience you might have. Rather than presenting a wall of t...
Setting up an existing Python project from a fresh clone shouldn’t be a chore. Automate the process with a setup script.
I’ve been using lftp’s reverse mirror feature for years to upload files to this blog. I’d never worked out how to avoid repeated file uploads. Until now.
As part of tutoring physics and maths to high school students, I sometimes write up deep-dive explanations of questions arising during lessons. The question...
Did you know that iBus can cause the compose key to stop working in X-Windows on Linux? I didn’t either. The solution in my situation: if in doubt, leave i...
Some text editing software packages seem to insert non-breaking spaces into files willy-nilly. This can be a pain if you don’t want them. Also, they’re ver...
A couple of years ago I stumbled across the FreezeGun library. It’s been a great help in making the date/time-related intent in my Python tests much clearer....
Once upon a time, I used to take an active part in the CPAN Pull Request Challenge (and later in the Pull Request Club). One task I tackled as part of each ...
This week I was at the German Perl/Raku Workshop in Frankfurt. This is the main yearly meetup of the German-speaking Perl/Raku community. The event isn’t j...
As part of tutoring physics and maths to high school students, I sometimes write up deep-dive explanations of questions arising during lessons. The question...
ssh-agent
in Windows PowerShell
As someone who works mostly on Linux, there seem to be a multitude of issues for me to stumble over when having to use Windows. Using ssh in Windows PowerSh...
While playing with Raku and rakubrew on Windows recently, I encountered more than one stumbling block. One stuck out in particular. Did you know that, by def...
Trying to get an old Raku project up and running again led me down a deep rabbit hole. I ended up working out how to set up, build, and test Raku projects on...
Ever been staying at a hotel and gotten annoyed that you always have to open a browser to log in for wireless access? Yup, me too. A recent instance was pa...
It’s been annoying me for a while now that the URL for this blog somehow just didn’t sound nice. I finally came up with a better-sounding domain name and ha...
Do you want your script to be told where it needs to run? Or would you rather it work things out for itself? Personally, I find the more a script can work ...
It was that time of the year again: late winter/early spring; time for the German Perl/Raku Workshop. This year (2023) it was held in Frankfurt and thus hos...
Back in 2018 I found a T-shirt featuring vim’s hjkl arrow keys but stocks were sold out. I therefore had a dab at designing my own.
When developing Django applications it’s sometimes necessary to revert (i.e. undo) a migration, especially if something didn’t quite work as planned. If som...
Ever needed to change your email address in your Git history? For instance, you’ve mistakenly used your personal email address in a repository at work? Here...
A case of disappearing text in an auto-generated PDF document led me to dig deeper and learn more about ReportLab: a PDF generation library. Here’s the stor...
It’s interesting how bugs can lead to a deeper understanding of how computer systems work. It’s also amazing how nuanced some technical topics can be. For i...
Recently I’ve been investing more time in documentation at work to try and make it easier for new staff members to come up to speed. The following HOWTO has...
Migrating tickets, comments, roadmaps and wiki pages from Redmine to GitLab is a lot of work if you do it by hand. Fortunately, one can automate this proces...
Some of the servers I manage are hidden behind a corporate firewall and hence not accessible from the open internet. In order to access them from my office ...
This is a fairly old story, nevertheless I still think it’s worthwhile telling, just in case someone else wants to build Android APKs from Cordova within the...
The workshop was held only online last year due to the pandemic, thus it was really nice to be able to see people in-person again (my first workshop/conferen...
App::ConsistentRandomPassword
This month, as part of the Pull Request Club, I was assigned the Perl distribution App::ConsistentRandomPassword. This is my report of what I found out about...
This is the first in-person conference for me in almost two years. Crazy times! Below are my notes from the talks that I attended at the Agile Testing Days...
Do you find having to accept or decline cookies everywhere on the web annoying? Me too. That’s why I decided to remove cookies from this blog. Here’s how I...
The Pull Request Club is a way to connect open source maintainers to contributors through monthly assignments. It’s free to join up (just use your GitHub lo...
Having a favicon on your website can be a nice touch, especially if you’ve got a cool logo. Unfortunately, I don’t have a cool logo, however I thought I’d a...
Mutt is a very powerful email client, mainly because it’s terminal-based and because it has a vast array of terse commands reminiscent of the terse command p...
To set up the configuration for sending email on Jenkins correctly, it’s necessary to set options in two quite separate locations within the main Jenkins con...
One would think that since Android is a Linux-based operating system, that integration between Android devices and Linux computers would work rather seamless...
Sometimes Selenium can lose browser focus when running tests, which can cause timeout errors when testing click events in a web application. Here I discuss ...
It turns out that my Jekyll-based static site was storing cookies, of which I wasn’t aware. Oops! Sorry! Cookie opt-in is required by law in Germany and I...
This post might seem a bit silly, because I’ve already posted this tip on Twitter about a year ago. Nevertheless, I needed exactly this piece of information...
Sometimes there seems to be so much hidden power in vim that it’s just stunning. It’s like there’s a hidden reservoir of power just underneath the surface o...
Technical blogging, second edition by Antonio Cangiano is–as the title implies–a book about blogging for the technically inclined. It guides the reader from...
… where we finally visualise actual sea-ice concentration data and migrate our tests to karma.
… where we investigate projections and view our map from an Arctic perspective.
… where we start testing our application.
… where we create a simple OpenLayers map and modularise our code for later use.
It looks a bit like I’m trying some kind of SEO trick with this title. Believe me, I’m not! It’s just amazing how many technologies were necessary to get in...
I’ve needed to move files or directories (along with their histories) from one Git repository into a new repository often enough now that I’m annoyed with my...
ssh
, tmux
and vim
: A Simple Yet Effective Pair Programming Setup
At my work, Drift+Noise, we try to use Agile software development methods where possible. For instance, we use TDD largely for our unit tests, BDD for funct...
Ever had the problem that your automated Django tests wouldn’t work because you didn’t have permissions to create the given extension and you thought: “WTF? ...
imview is a handy image viewing application for Linux. I’ve started using this at $work recently, because Eye of Gnome, a.k.a eog, (my usual go-to applicati...
At work we’re looking at using Apache Cordova to create cross-platform applications. The idea of being able to use a single code base and yet still target A...
During Andrew Shitov’s talk about Perl6 one-liners at the recent German Perl Workshop in Munich I followed along on the Perl6 REPL trying out the examples as...
… where I get out my virtual broom and sweep up cruft I can find in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft I can find in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft I can find in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
Really, this is just a workaround for an issue I haven’t completely understood. Nevertheless, since I had to work out how I’d handled brightness control via...
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
These are my notes from the talks I attended at the third day of YAPC::EU 2016.
One can build Rakudo very easily via rakudobrew, for instance:
These are my notes from the talks I attended at the second day of YAPC::EU 2016.
These are my notes from the talks I attended at the first day of YAPC::EU 2016.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
The Dutch Perl Workshop (NLPW) was held on the 1st of April, 2016. Many jokes were made about the date being no joke… Here are some of my impressions about...
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
… where I get out my virtual broom and sweep up cruft I can find in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
Sometimes I get files from friends who use certain graphical operating systems, where it’s ok to use spaces in filenames. Processing these files on Unix isn...
The third instalment of the Swiss Perl Workshop will take place in the last week of August 2015. Part of the workshop will be a Perl 6 Hackathon, one of the...
In the first installment of my participation in the CPAN Pull Request Challenge I was assigned the module XML::NamespaceSupport. The module enables one to pr...
At the end of 2014 I signed up for the CPAN Pull Request Challenge; a brilliant idea of Neil Bower’s to clean up CPAN modules in need of a bit of “tender lov...
A version control system is fundamental to the work of anyone developing software, whether it be scientific software or not. This is one of the fundamental ...
Recently at $work I found that our test suite was taking longer and longer to run and had begun to slow down development. A long-running test suite smells of...