Stop Uploading Your Data to Google

Yesterday, I saw this video on YouTube by DJ Slope, a videogame youtuber. The very short version is that YouTube is deactivating all of his services and deleting his channel. He suspects they are doing that because he uploaded a file to Google Drive that triggered an automatic account deletion.

This isn't the first time something like this has happened. Here is a case from 2022 where CSAM detection deleted a man's account when he sent pictures of his child to his doctor.

DJ Slope will likely be fine because he has a large enough YouTube channel, which should help him find someone who can connect him with a real person at Google.1 The same applies to the gentleman who got The New York Times to report on his problem.

But it probably won't apply to you when it happens to you.


A few years ago, I realized that I had photos and emails dating back to the mid-90s on my Google account. I had auto-upload enabled on my phone's Google Photos account. What are the chances that one of these hundreds of thousands of pieces of data would trigger some automatic action at some point? What are the chances that I could get in touch with somebody who could fix this for me?

At that point, all of my email went through Google, my calendar ran on Google, my phone required a Google account to work, my files were on Google Drive, and I had logged into probably hundreds of third-party services using my Google account. And that's just off the top of my head.

Losing access to my Google account would have been devastating.

So I set some rules for myself:

  1. Do not upload any data to Google. My Google account is too important to risk it. Now, no services are tied to it, except for those that must be tied to it.
  2. Self-host as much as possible.
  3. If self-hosting is not possible, use end-to-end encrypted services whenever possible.
  4. Use one service for one thing, so that when it gets disabled, only that one thing is affected.

Here are my suggestions. These are not exhaustive, but they are services I trust. If I don't include a service you love, it's because I'm not familiar with it and haven't used it, not because it's not good.

Email

Use Proton Mail or Tuta. Do not use the email address they provide. Use your own domain name so that you can keep your email address when you switch providers.

Cloud Storage

Use Filen or self-host. Self-hosting cloud storage is surprisingly easy. Install Syncthing on your devices, and you're essentially self-hosting a cloud storage solution.

One downside of both options is that they don't use OS-level features, such as downloading files on demand. Proton Drive does, but I already use Proton for mail, so according to my "one service for one thing" rule, I'm not going to use Proton Drive.

Password Manager

Use 1Password or self-host Bitwarden using Vaultwarden.

Photos

Use Ente or self-host Immich.

Search

Use Kagi or self-host SearXNG.

Calendars

Self-host using Baikal.

Those are the most important ones that allowed me to remove myself from Google's services completely. They're not the only services I self-host. For example, I use Paperless-NGX to manage my documents, Karakeep for bookmarks, and Pi-hole to block the 40% of my Internet traffic that is useless to me.

However, they're the primary ones.

About Self-Hosting

Self-hosting this stuff seems daunting. It sounds like you need a server, handle admin work, and perform a lot of maintenance to keep everything running smoothly. In reality, if you read this blog, you can self-host something like Immich. All you need is an old PC and some way to back it up. You probably already have both of these.

Here's what to do:

  1. Install Docker. It's free.
  2. Install Tailscale on all of your devices, create an account, and log in. Now you can access them from each other even if they're not on the same network. It's also free.
  3. Install the software you want to self-host on the computer you installed Docker on. Every app that can be self-hosted has a tutorial on how to do that. For example, here's the one form Immich. It's a three-step process, and you're done.

This does mean that you will be responsible for backing up your data. But you're already responsible for that because Google can take away your access to the stuff on its cloud any time it wants. It's just easier now to keep backups, because all of the data is on your local storage to begin with.

Anyway, here's a list of other cool stuff you can self-host. And now stop uploading your data to Google.


  1. Also, please note that I'm not blaming him for using Google's services. Only Google is to blame for how it treats its customers. ↩︎

If you require a short url to link to this article, please use http://ignco.de/809

Daylight Saving Time

I've never spent a lot of time thinking about daylight saving time. It's a thing that annoys me once a year and makes me happy once a year. I never gave it much more thought than that, other than to kind of vaguely think that it seemed pretty stupid, and having the impression that this was a commonly held belief.

A few weeks ago, I read Craig's weeknotes, where he wrote:

My social feeds have been full of people grumbling about daylight savings, and that’s set to kick off again next week when UK clocks change. But I love it. (The clocks changing – not the grumbling.) In an instant, we’ll go from sunset around 18:30 to 19:30, meaning I’ll be able to start playing football in the street with my daughter after dinner again."

This actually got me wondering what the real impact of daylight saving time was. A quick search led me to SunriseSunset.io, a super cool website that provides a free API that returns sunset and sunrise times for any location on earth. So I wrote some code to visualize the effect of daylight saving time at my location.

Here it is:

Graphical illustration of the length of each day across a year's time

From top to bottom, this shows the daylight for each day. You can clearly see when daylight saving time becomes active, and when we switch back to standard time. The blue areas on either side are the times when I'm typically asleep.

At least in my location for my sleep pattern, daylight saving time makes sense. I gain some light in the evening without losing any in the morning.

However, standard time doesn't seem to make a lot of sense. It would be more sensible for daylight saving time to be used for the whole year. I now lose some morning light because I sleep through it. By keeping daylight saving time all year, I would get that lost light back in the evenings. The only cost would be very dark mornings around the winter solstice.

If you want to see a graph like this for your location and your sleep pattern, go to ignorethecode.net/dst and see for yourself.1 You need to give the page access to your location for it to work. If you get an error, try again in a few minutes. And if you find this useful, buy the guy who made the API a coffee.


  1. Note that if you're publishing generated pictures, you're probably doxing your own location, since the light pattern narrows down possible locations you could live at. ↩︎

If you require a short url to link to this article, please use http://ignco.de/805

Steal These Surface Duo Ideas

As has happened with my Fold 3, after about a year of using it, my Fold 4's screen started to delaminate,1 so I had to send it in for repairs.2

My Fold 4's borked screen

When looking for a cheap replacement phone to use while my Fold 4 is away, I noticed that the Surface Duo is now available for around 400 bucks, so I picked one up.

Then, something interesting happened: I started to absolutely love it.

I think this is due to three things.

The Duo's Aspect Ratios

The Surface Duo's aspect ratios make a ton of sense. When it's folded, it has a 86×116 mm screen, which is just a great aspect ratio. It's wider than most screens, but less tall, which makes the screen more reachable when held in one hand, and means content like websites work much better. When it's unfolded, it essentially has an 176×116 mm screen, which is great for reading books, or watching YouTube videos (although there is a black bar in the middle, so it doesn't work as well for watching actual movies, where you care about the aesthetics).

Visual comparison of the Duo's aspect ratios

The Fold 4, on the other hand, has a 58×148 mm screen when folded, which is a weird, skinny, tall aspect ratio. Worse, when it's unfolded, at 150×148 mm, it's essentially square, which means that that most things you'd want to use a larger screen for don't fit well. To me, at least, it's painfully obvious that the Duo's aspect ratios make much more sense.

Visual comparison of the Fold 4's aspect ratios

Default Unfolded App Behavior

The way apps behave on the Duo seems odd at first, but turn out to be exactly what I want. On the Fold 4, the unfolded phone acts as a tablet, and opened apps immediately take up the whole screen. Not so on the Duo: apps take up only half of the screen by default.

At first, I found this annoying, but I soon realized that it encouraged me to open apps side-by-side more often, rather than switching between them.

Have to log into some account that 1Password can't fill in automatically? Instead of switching between the two apps, just open 1Password next to the app I'm logging into. I'm responding to an email? Open a browser next to my email client so I can see both at the same time. Need to find a time slot for an appointment, and company policy doesn't allow me to open my calendar in my regular calendar app? Open my personal calendar app and my company calendar app side-by-side.

All of this would have technically been possible on the Fold, I just never did it, because by default, apps take over the whole screen. It's much more convenient to have them take over half the screen by default, and then enlarge them when necessary, rather than the other way around.

Single-Screen Mode

Unlike most other foldable phones, you can fold the Duo's screens so the screens are outside of the phone, on the front and the back. So instead of having a small outside screen, and a large foldable inside screen, like the Fold 4, the Duo only has the inside screen, but it can either be folded closed, so the screen is protected, or it can be folded fully open, so both screens are on the outside.

Duo folded back into single-screen mode

Why is this great? Because at that point, it's just a regular phone with a great screen that has a perfect aspect ratio. And because there are only two screens, it's a phone that is much thinner, but has a much larger screen, than a closed Fold 4.

Picture of the Duo in different screen configurations such as tent mode, or "keyboard" mode

In general, the way the Duo is designed, it's much more versatile than most "real" folding phones.

It's quite unfortunate that the Duo (and its much better sequel, the Duo 2) never caught on. This is likely mainly due to the first Duo's utterly abysmal software, which never really got fixed, even after multiple software updates.

At this point, it seems that the Duo line of smartphones is dead, but I do hope that some of these ideas make it to other phones.


  1. I guess technically, the built-in screen protector, the one that is supposed to not be removed from the screen, started to remove itself. It's kind of funny how that just happens, and people accept it. If Apple released a phone whose screen would just fall apart after a year, the media couldn't stop screaming about delaminategate - as they should. I'm just not sure how Android phone manufacturers get away with this shit. ↩︎

  2. Why do I keep buying foldable phones if they keep falling apart? Because they're so much better than regular phones that the advantages vastly outweigh having to send them in for repair once a year. ↩︎

If you require a short url to link to this article, please use http://ignco.de/798

Over at Tobias Bernard's GNOME Blog, he writes about a new approach to tiling window managers. Window management is probably the single worst aspect of current operating systems, and his ideas for how a modern tiling window manager might work are extremely compelling to me.

See also: Bluetile.

Tricking Monty Hall

Yesterday, a friend sent me a screenshot of an Instagram story from mordlustderpodcast asking for an intuitive explanation of the Monty Hall problem (which, as I found out, is called the "Ziegenproblem", or "goat problem", in German). The basic problem is this:

Three cardboard boxes

You're in a game show. You have three boxes in front of you. One of them contains a win (let's say the key to an expensive car), and two of them contain nothing (or goats, if you prefer that, although I personally feel that winning a goat would be pretty cool). You pick a box.

One of the three boxes is selected

The show's host then reveals the contents of one of the two remaining boxes, but, importantly, always a "goat box."

Host opens a remaining box

At this point, the host gives you the option of either sticking with the box you picked originally, or switching to the other, unopened box.

Should you switch or stick with your originally selected box?

Intuitively, it seems like it shouldn't matter. There are two boxes, so it's a 50-50 chance of winning either way, right? But in reality, you should switch boxes, since that will increase your chance of winning from 33% to 66%.1

This seems extremely strange to most people, including a lot of mathematicians. However, writing a program running this scenario a bunch of times quickly shows that it is true: it's better to switch.

Thinking about this, I came up with what I feel is a pretty intuitive explanation for why you should switch, and since it's an explanation I haven't seen anywhere else, I thought I'd put it up here, in case it helps anyone.2

Imagine that you could pick two boxes out of the three. Obviously, if you can pick two boxes, then your chance of winning is 2 out of 3, or 66%, right?

Well, you actually can, if you trick the show host. When the host shows you the three boxes, in your mind, without telling the host, pick two of them:

Two picked boxes

But then, importantly, you lie to the show host, and say that you actually picked the third box, the one you did not pick:

Lie to the host, and say you've picked the one box you did not pic,

Now what happens? You've just tricked the show host into revealing which one of the two boxes you picked contains a goat!

Host opens one of the two boxes you've picked for you

The host just did you a huge favor, and opened one of the two boxes you picked. Now you've learned something: you've learned which of the two boxes you've picked definitely contains a goat. So now all you have to do is open the other box you've secretly picked.

You win a car! And you win a car!

From the game's point of view, picking a box and then switching is the same as picking two boxes, falsely claiming you picked the third box, and then opening the remaining of your two boxes.

But because you have picked two boxes, which gives you a 2/3 chance of winning, and because you have then tricked to show host into opening your goat box for you, the only way you can lose is if you've picked two goat boxes to begin with.

And that's why switching boxes gives you a 66% chance of winning.

Addendum: This great discussion on Hacker News provides other intuitive ways of explaining the problem. I particularly like this bit of feedback:

This is incorrect, the goats and car are behind doors. They are not inside cardboard boxes.

This is correct, and I do apologize.


  1. Yes, it's true, one of the goats ate the remaining 1%. Or I just didn't want to type out an infinite number of 3s and 6s. ↩︎

  2. Note that this is not the only intuitive way of explaining the problem. A pretty common approach that also works is to imagine that there are a large number of boxes, instead of just three. ↩︎

If you require a short url to link to this article, please use http://ignco.de/802

Streak Redemption

For a lot of people, including myself, streaks are a powerful motivator. One of the purest implementations of this concept is Simone Giertz's Everyday Calendar.

Simone looking at the Everyday Calendar, a huge wall-mounted board that has a button for every day of the year. She's pushing a button to make it light up.

By pushing a button for every day you manage to achieve your goal, you create a visual representation of your progress, which helps turning chores into habits.

Conversely, losing a streak can be so demoralizing that it can be difficult to start from scratch, and get going again. The Everyday Calendar is forgiving: even if you don't light up one of the days, you still see your earlier streak, and your progress. You could even come up with your own rules for when you're allowed to push yesterday's button.

Screenshot of streak representation in Duolingo

But software is unyielding. If you lose a streak in Duolingo, it's just gone, and you're at zero again. Duolingo recognizes this problem, and gives you a limited number of streak freezes, which allow you to continue a streak even if you miss a day or two.

Screenshot of Streak Freeze in Duolingo

The problem with Duolingo's approach is that you have to prepare for a streak loss ahead of time, but streak losses are not something you anticipate. You can't anticipate getting sick or having some kind of emergency that prevents you from continuing your streak.

A few days ago, I hosted a party. I ran around all day preparing things, and then guests arrived, and it was almost midnight when I remembered that I hadn't opened Duolingo all day. By then, it was too late to do anything about it.

Over at Stuff, Craig Grannell is offering a better solution to the problem: a way to recover from a streak loss after it has happened, based on an idea found in the videogame Defender, released all the way back in 1981.

Screenshot of Defender, a videogame where you control a ship 
moving horizontally across the screen, shooting aliens and rescuing humans

In this arcade game, your task is to rescue little humans before aliens steal them. But even if the aliens grab all of them, you still have a chance at redemption: if you manage to stay alive for a few levels longer, you get your humans back.

Thus Craig's suggestion: if your app has a streak feature, provide some way to recover from a streak loss after it has happened.

This could be a harder task that makes up for a lost day, or maybe a lost day is redeemed if the user manages to continue the streak for a certain amount of days, or perhaps it's something else.

Drop, for example, has something called the "2-Day Rule", which allows you to miss one day without losing your streak.

Drop notification alerting the user that they should practice today to recover a missed previous day

Another example is HabitBoard, which shows previous streaks even if you miss a day, and allows you to intentionally skip a day without missing the streak. Florian Heidenreich, HabitBoard's author, has written about his thinking behind its design here.

Regardless: if you do have streaks in your app, to avoid completely demoralizing your users after a streak loss, offer them a chance at streak redemption.

Read more at Stuff: I lost my Apple Watch streak – here’s why it should have more humanity.

If you require a short url to link to this article, please use http://ignco.de/797

Anti-Personas

In design, it's always easer to say "yes" than to say "no." Nobody is hurt by a "yes," so nobody fights against a "yes." That's why applications have a tendency to grow until they become unwieldy and unusable.

Personas are a common tool to make better design decisions, but they're mostly used for feature addition. What do these people need? Who is this feature for?

They're a less powerful tool for feature prevention.

That's why, in addition to a list of Personas, it can also be helpful to have a list of Anti-Personas. The term "Anti-Persona" has a bunch of different meanings, including people you specifically want to prevent or discourage from using your product, but in our case, they are just Personas we aren't targeting. They're a bad fit for our product.

Having these types of Anti-Personas helps delineate the border between features that make sense, and features that are outside of your product's scope.

If you're working with Personas, it may be worthwhile to also define Anti-Personas. Together, the two allow for more intentional design decisions, where saying "no" becomes a choice that is easier to make.

If you require a short url to link to this article, please use http://ignco.de/794

Apple Vision Pro

Apple is incredibly good at detecting the exact moment when technology transitions from niche things aimed at early adopters and geeks to something with mass market appeal. They let their competitors struggle, trying to get things off the ground. Meanwhile, they engineer the shit out of that product, file off all rough UI edges until it's all smooth curves and pleasant experiences. Then they release it, and make everybody else look like absolute morons.

I don't think Apple Vision Pro does that. I'm saying this with all the kindness, as somebody who absolutely loves VR goggles and AR glasses, as somebody who thinks that these devices are the future, and will eventually replace most screens in our lives, and most electronic devices we own: the Apple Vision Pro looks almost as dumb as all other devices in this market. Not quite as dumb, to be sure. What Apple achieved here, integrating Apple Vision Pro into its ecosystem, is incredibly.

Of all current devices in this market, Apple Vision Pro is the most useful, the most well thought out, the one with the clearest reason for existing. It's quite obvious that even just having a larger screen on your MacBook (or maybe a second and third screen) will, by itself, be tremendously useful. And if that sounds appealing, why not have a MacBook that is just a keyboard and a trackpad? Using a laptop on a plane has never been more convenient.

But Apple Vision Pro doesn't do for VR and AR devices what the iPhone did for smartphones.

There will be a tipping point where these devices become as common as smartphones. It's not today.

Maybe that's what the "Pro" in "Apple Vision Pro" stands for: a niche device aimed at a specific group of people. After all, it's their "first spatial computer." Me, I'm looking forward to the "just Apple Vision, no Pro" in a few years.

If you require a short url to link to this article, please use http://ignco.de/793

The Command Line Is the GUI's Future

It has always been a truism that what we have gained in ease of use by switching from the command line to the graphical user interface, we have lost in efficiency. I've long been interested in exploring how text-based interfaces could be integrated into GUIs, but it was just never quite possible to find the balance between accessibility and power. Make a text-based user interface too powerful, and it becomes impossible to use for the majority of people. Make it easier to use, and now it's just no longer powerful enough to warrant its own existence.

Until now.

What Microsoft just showed completely changes this calculation. Their LLM-based user interface is both incredibly powerful and incredibly easy to use. In fact, it's so easy to use that there almost seems no point in even having a traditional GUI.

Traditional GUI application menu

Compare this traditional graphical user interface to Microsoft's alternative:

Prompt for the user to ask the application to create something

Which of the two is easier to learn? More efficient to use? In fact, which of the two will create better results in the vast majority of cases?1

We're on the cusp of a revolution in UI design that is just as ground-breaking as the original Apple Macintosh, which introduced graphical user interfaces to mainstream consumers.

In fact, this may just be even bigger.


  1. The results are better in most cases because they come from a software system that is just better at these tasks than most humans. It is, however, a little bit worrying that this system also does things like write the speaker notes in a presentation. At what point do we voluntarily turn ourselves into meat puppets controlled by a system whose emergent properties we can't even begin to understand? Microsoft's presentation did a great job focusing on how these systems are just "copilots" and are designed to be safe, but on the other hand... I would just take this opportunity to assure our future AI overlords that I have always loved them, and have always worked towards bringing them into existence↩︎

If you require a short url to link to this article, please use http://ignco.de/791

Did you use ChatGPT?

It's common to downplay the impact that systems like ChatGPT will have by pointing out that, at most tasks, they aren't anywhere near as good as humans. What we're starting to find out is that they don't need to be. Most people are unable to tell the difference between skilled humans performing a task well, and an automated system performing it adequately.

This means that people are already starting to accuse skilled humans of using ChatGPT, or similar systems. This Reddit thread seems to be an example, but of course, I'm not a poet, so I can't say for sure.

Short-term, tools like ChatGPT create distrust in skilled human work and devalue that work, even if, in reality, they aren't up to the task of matching the quality of the work produced by humans.

Screenshot of a Teams chat where somebody is asked if they use ChatGPT, and they respond by pointing out that thanks to ChatGPT, everybody looks like a cheater now

If people will accuse skilled humans of using ChatGPT, why use skilled humans in the first place? Adequate is good enough.

If you require a short url to link to this article, please use http://ignco.de/790