Recent Posts (all)

Fish 3.6.0

Amazing new release of fish adding Control - R to open the command history in the pager.

It’s fully searchable and syntax-highlighted!

Get it here.

Posted on 09 Jan 2023

Nietzsche and the Nazis

If you have 2 hours to spare, read Nietzsche and the Nazis by Stephen Hicks.

Fantastic, to-the-point, book about the philosophical ideals of the National Socialists.

To quote just a single passage:

History has taught us that the philosophy and ideals the Nazis stood for were and are false and terribly destructive, but we do not do ourselves any favors by writing the Nazis off as madmen or as an historical oddity that will never happen again. The Nazis stood for philosophical and political principles that appealed to millions—that attracted some of the best minds of their generation—and that still command the minds and hearts of people in all parts of the world.

And that means we must face the National Socialists’ philosophical and political ideals for what they actually are—we must understand them, know where they came from, and what intellectual and emotional power they have. Then and only then are we in a position to defeat them. We will be able to defeat them because we will understand their power and we will have more powerful arguments with which to fight back.

Posted on 04 Jan 2023

Power structures are not a human-only prerogative

Beautiful quote from Frans de Waal’s Are We Smart Enough to Know How Smart Animals Are? book:

“When I began observing the world’s largest chimpanzee colony, at Burgers’ Zoo in 1975, I had no idea that I’d be working with this species for the rest of my life. Just so, as I sat on a wooden stool watching primates on a forested island for an estimated ten thousand hours, I had no idea that I’d never again enjoy that luxury. Nor did I realize that I would develop an interest in power relations. In those days, university students were firmly antiestablishment, and I had the shoulder-long hair to prove it. We considered ambition ridiculous and power evil. My observations of the chimps, however, made me question the idea that hierarchies were merely cultural institutions, a product of socialization, something we could wipe out at any moment. They seemed more ingrained. I had no trouble detecting the same tendencies in even the most hippielike organizations. They were generally run by young men who mocked authority and preached egalitarianism yet had no qualms about ordering everyone else around and stealing their comrades’ girlfriends. It wasn’t the chimps who were odd, but the humans who seemed dishonest. Political leaders have a habit of concealing their power motives behind[…]”

Posted on 01 Jan 2023

Easy to use macOS disk cleanup tools

Pretty Clean

A small utility to — unobtrusively — scan your macOS disk to remove caches and other files and folder that can be clean up.

Free, and built on Tauri.

There’s an Hacker News discussion as well in case you want to know more.

Posted on 11 Oct 2022

New Airpods

Two years ago I replaced my Airpods with the Airpods Pro.

The upgrade was significant and necessary, as after 2-3 years, the battery of the old ones was worn out.

Apple Airpods Pro

Some months ago (as the Airpods where nearing their 2 year anniversary), the first major issues started to come up. The right microphone wouldn’t work well, when touching the right Airpod I would hear a cracking noise, and the battery was slowly decaying.

Turns out that there’s a service program from Apple and Airpods exhibiting crackling or static sounds are eligible.

So I went into the Apple Store in Amsterdam and got a new pair!

Some notes:

Posted on 29 Sep 2022

OpenAI Whisper

OpenAI has just open sourced Whisper, an automatic speech recognition.

I just tried it out and I’m blown away.

Installation was a piece of cake (even though there was a missing step, but I’ve opened a pull request to help out), and once you’re there, it literally takes seconds to start transcribing:

whisper my_file.m4a --model base

The output is ready to be used in subtitles programs as well, as it looks like this

[01:23.000 --> 01:31.000] Camilla, first question, what keeps you awake at night?
[01:31.000 --> 01:36.000] Around data analytics, let's keep it to that box
[01:36.000 --> 01:45.000] Yeah, so I think we have three different, very specific business units
[01:45.000 --> 01:52.000] And we have teams that are divided between being masters in data in analytics
[01:52.000 --> 01:57.000] And they know much more than I do to having people who are just hearing about data
[01:57.000 --> 02:00.000] And it's a very, very scary topic
[02:00.000 --> 02:08.000] And what I'm supposed to be doing is raising the level so that we at least come to the same level of understanding
[02:08.000 --> 02:13.000] What does it mean for me? What does it mean for the company? What is data?
[02:13.000 --> 02:17.000] I mean we really go into those type of basic conversations
[02:17.000 --> 02:23.000] So that really is a challenge and an opportunity, huge opportunity
[02:23.000 --> 02:26.000] So that keeps me awake at night, how do I do that?

(The audio was taken from an interview I had with Camilla Björkqvist last year).

The future is here :)

Posted on 22 Sep 2022

Configure Caddy v2 to reverse proxy the Unifi Controller

Caddy is an open source web server that can be used to, among others, proxy other sorts of server adding https with valid certificates.

At home, I have a Unifi controller that uses https but has no valid certificate, so I decided to expose it through caddy.

Since I run caddy as an unpriviliged user, it listens to port 2016 for http and 2017 for https. My router then listens to port 80 / 443 and reroutes to port 2016 / 2017 on the host running caddy.

The working configuration I came up with my Caddyfile is pretty simple

{
  http_port 2016
  https_port 2017

  unifi.lanzani.nl {
    reverse_proxy 127.0.0.1:8443 {  # the unifi controller runs on the same machine as caddy
      transport http {
        tls_insecure_skip_verify  # we don't verify the controller https cert
      }
      header_up - Authorization  # sets header to be passed to the controller
    }
  }
}

That’s it!

Posted on 14 Sep 2022

Get URL of selected Mailmate messages

One of the features of my favourite email client, Mailmate, is the ability to copy a unique link per message.

Upon clicking the link from anywhere, Mailmate will be opened showing the associated email.

I use this feature a lot to link to-do in Things. Mailmate even offers a bundle to automatically add an email link to Things.

However sometimes I already have an existing to-do, and I need to paste the Mailmate link.

To make it easy, I created an AppleScript in Typinator that pastes the link of the selected Mailmate message.

Reported here for posterity :)

tell application "MailMate"
	set selectedMessages to messages
	set theMessage to item 1 of selectedMessages
	return message url of theMessage
end tell
Posted on 31 Aug 2022

Change macOS computer name

I recently upgraded to a new M1 Pro Macbook Pro and the computer is managed by the company.

It means that — for one reason or the other, spuriously documented on Apple discussion forum — I was not able to change the computer name.

can't change computer name on macOS

A good soul documented the solution, that I am reporting here for my future self: fire up the terminal and type

sudo scutil --set ComputerName <your_name_here>

Voilà!

Posted on 04 Aug 2022

Test your Machine Learning models in production

Have you ever thought why the flight attendants bother giving safety instructions? Do you listen to them?

Flight attendants are stuck. They can’t go off script.

Probably a long time ago, there were tests on how to deliver those safety instructions to passengers.

The current way was tested not with busy passengers needing to get somewhere, but people recruited for the purpose. It probably fared better than anything else.

Yet, when applied in real life, it sucks. We don’t listen to what they say.

I see the same mistake made in data science: people test their model with real data, but not in production.

I used to tell my classes a story of a big online retailer developing a much better version of their recommender — “customers who bought this, also bought that” type of thing.

With the new recommender, fewer clicks were necessary to understand the set of items the customer wanted to buy.

Before rolling out, they A/B tested it — luckily.

To their surprise, people exposed to the new version, were closing their browser more quickly without buying!

Some of them were logged in, so they decided to investigate.

It turns out, customers were creeped out by the eerie accuracy of the new recommender. They left the website, afraid of what else the retailer would find out about them.

The retailer went back to the old version.

It doesn’t matter how enthusiast data scientists are about the model.

Without testing in production, it counts for nothing.

Posted on 01 May 2022
3/11