On a couple of occasions I’ve found that students in one of my workshops were confused by the syntax, so here’s a detailed post about the possible combinations of object parameters and default values in JavaScript.

If you’d like to play with the samples yourself, check out this GitHub repo.

Accept a default value for a parameter — basic stuff

To get things started, here’s a function that accepts a parameter, but also defines a default value for that parameter. So if the caller doesn’t …

This is discussed all over the place right now: since articifial intelligence, namely the recently-released-publicly ChatGPT service, writes fantastic content almost automatically, should human writers still bother with it? It’s an exciting question and this post won’t attempt to answer it fully.

A general thought: lots of internet content is… let’s say repetitive. I might use stronger language to describe it, since it’s basically loads of rip-off nonsense that has been regurgitated endl …

Basta Spring 2022 was once more a great online conference. I was hoping to get back to Germany on this occasion, and back in December it looked as if this might be an option - but then Covid interfered once again. Oh well.

As usual, many thanks to all those who made it to my workshop and my presentations, whether online or in person in Frankfurt! The new AMA format was also very successful in my eyes, and I hope we will have something similar in the future.

Here is my summary of slides and sa …

Basta 2021 is still going on, but I have completed my talks for this event. All went well - to varying degrees, since I’m a critical person - and many thanks to those who attended my talks or my workshop!

Here are the links to access online slides, or to download PDF slide documents and source code samples.

Developers and Architects — Strategies 2021

PDF Download

Functional Code in C# 9

Desktop Apps with React

Another year, another Basta — but this time it was all online. Second time for me in fact, since I wasn’t able to travel to Germany last September either. But for most other Basta speakers it was the first online-only Basta, and we all hope things can go back to normal in the not too distant future! Meanwhile, many thanks to the organizers for the brilliant organization — everything worked flawlessly for me.

I also thank those who made it to my workshop or one of my presentations. All the im …


Protocol Buffers are Google’s implementation of an improved data serialization format. Improved, that is, in comparison to JSON — which is after all what the world is mostly running on at this time. After reading various hype posts about how cool and efficient the format is, I was curious to find out how much of it is true.

In case you’re not interested in the details, and because I started my little test with a pretty good idea of what the results would be, let me summarize my findings up fr …

The default behavior of Crostini’s Debian Stretch container is to use a curses-based pinentry. This behaves strangely, in two different ways:

  1. Inherently, it shows the semi-graphical pinentry dialog in the terminal that has last called gpg-connect-agent updatestartuptty /bye. You can do this in .bashrc or similar, but if your habit is (like mine) to run many different terminals at once, you would need to call this whenever focus changes — otherwise the pinentry dialog will invariably co …


OpenVPN connection

The VPN setup pages in Chrome OS appear to support OpenVPN. ProtonVPN also supports OpenVPN connections, and configuration files are available for download. However, it turns out that OpenVPN doesn’t actually work with Chromebooks quite as easily as it should — long discussions are easily found, solutions not so much. One of the main issues is that the visual configuration dialogs don’t support all the opti …