Ignore the code

Daylight Saving Time (%2024/%04/%14 %10:%Apr)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: 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.[^note] 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. [^note]: 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/805But wait, there's more!Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.

Steal These Surface Duo Ideas (%2024/%03/%16 %10:%Mar)As has happened with my Fold 3, after about a year of using it, my Fold 4's screen started to delaminate,[^delaminategate] so I had to send it in for repairs.[^why] 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. [^delaminategate]: 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. [^why]: 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. 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). 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. 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. 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. 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. If you require a short url to link to this article, please use http://ignco.de/798But wait, there's more!Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.

Rethinking Window Management (%2023/%07/%31 %20:%Jul)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. If you require a short url to link to this article, please use http://ignco.de/804

Tricking Monty Hall (%2023/%07/%15 %11:%Jul)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: 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. The show's host then reveals the contents of one of the two remaining boxes, but, importantly, always a "goat 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%.[^onepercent] [^onepercent]: 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. 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.[^intuitive] [^intuitive]: 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. 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: But then, importantly, you lie to the show host, and say that you actually picked the third box, the one you did not pick: Now what happens? You've just tricked the show host into revealing which one of the two boxes you picked contains a goat! 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. 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. If you require a short url to link to this article, please use http://ignco.de/802But wait, there's more!Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.

Streak Redemption (%2023/%06/%26 %20:%Jun)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. 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. 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. 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. 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. 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/797But wait, there's more!Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.

Anti-Personas (%2023/%06/%13 %21:%Jun)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/794But wait, there's more!Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.

Apple Vision Pro (%2023/%06/%05 %22:%Jun)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/793But wait, there's more!Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.

The Command Line Is the GUI's Future (%2023/%03/%18 %18:%Mar)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. Compare this traditional graphical user interface to Microsoft's alternative: 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?[^worrying] [^worrying]: 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. 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. If you require a short url to link to this article, please use http://ignco.de/791But wait, there's more!Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.