{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "User interface",
    "_rss_description": "Ilya Birman’s blog on design, cities, music, and life",
    "_rss_language": "en",
    "_itunes_email": "ilyabirman@ilyabirman.net",
    "_itunes_categories_xml": "<itunes:category text=\"Arts\"><itunes:category text=\"Design\" \/><\/itunes:category>\r\n<itunes:category text=\"Society &amp; Culture\"><itunes:category text=\"Personal Journals\" \/><\/itunes:category>\r\n<itunes:category text=\"Technology\" \/>\r\n",
    "_itunes_image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/userpic\/userpic-square@2x.jpg?1573933764",
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/ilyabirman.net\/meanwhile\/tags\/ui\/",
    "feed_url": "https:\/\/ilyabirman.net\/meanwhile\/tags\/ui\/json\/",
    "icon": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/userpic\/userpic@2x.jpg?1573933764",
    "authors": [
        {
            "name": "Ilya Birman",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/",
            "avatar": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/userpic\/userpic@2x.jpg?1573933764"
        }
    ],
    "items": [
        {
            "id": "386",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/design-vs-evolution\/",
            "title": "Design is dead, it’s all evolution now",
            "content_html": "<p>There’s no design in digital products anymore. It’s been replaced by evolution.<\/p>\n<p>When I was reading Richard Dawkins about evolution, one example stuck with me: the giraffe’s laryngeal nerve. It connects the larynx to the brain, but in a giraffe it runs all the way down the long neck, loops around the aorta, and then comes back up. Logically, it should run straight from the head to the larynx. But the giraffe evolved from a short-necked ancestor that already had this loop around the aorta. As the neck grew, the nerve simply stretched.<\/p>\n<p>Here’s another example: Instagram. It used to be a timeline of photos from the creators you liked. Then direct messaging was added, and the feed got scrambled with ads and videos. Then the developers copied Stories from Snapchat. They didn’t really fit the feed, so they were stuck on top as little circles that live separately from the feed and use different gestures. Then, in various places, they shoved in live streams (not the same as videos), something called IGTV (also different), and Reels lifted from TikTok (different again). Reels got their own tab with its own set of gestures.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/design-vs-evolution.jpg\" width=\"1714\" height=\"702\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Design and evolution<\/div>\n<\/div>\n<p>There was a time when products were designed with intent. Sections were organized into a hierarchy, features were given logical places. You could feel a system behind the product: what parts it consists of, how screens are organized, what kinds of data it has. Users didn’t analyze it consciously, but it helped them navigate and gave them a sense of control.<\/p>\n<p>That’s not how it works now. Instead, teams make hundreds of random changes, keep the winners, roll back the losers. In the end, nobody sees any logic in the product. Users post the same photos in Stories “just in case” (because nobody finds them in the feed anymore, and users know that). Reels, in turn, somehow leak into the main feed (because lots of people never visit the Reels tab, and the developers know that).<\/p>\n<p>Just as a giraffe is a messy tangle of nerves, guts, and bones, Instagram is a mess of features with no logic, order, or plan. In neither case do you feel the hand of a Creator who carefully thought through how everything should be structured.<\/p>\n<p>This shift from design to evolution is happening in most digital products around us. Sometimes it’s framed as the change in the designer’s role: we’re told that a modern designer should test hypotheses and analyze metrics. But that work can’t be part of design; it’s literally the antonym of design. Nobody designs anything; instead, people take random steps and keep the ones that happen to work.<\/p>\n<p>You can call this evolution operator a “designer” if you want — words can change their meanings. But you don’t actually need a human at all to generate variants and see which ones survive: nature was doing it for billions of years before humans existed. Some people find the insides of a human more beautiful than the insides of a MacBook. That’s a matter of taste. The fact remains: to create human insides, a human wasn’t needed.<\/p>\n",
            "summary": "There’s no design in digital products anymore. It’s been replaced by evolution",
            "date_published": "2026-02-09T16:52:44+03:00",
            "date_modified": "2026-02-09T16:52:33+03:00",
            "tags": [
                "design",
                "interface"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/design-vs-evolution.jpg",
            "_date_published_rfc2822": "Mon, 09 Feb 2026 16:52:44 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "386",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/design-vs-evolution.jpg"
                ]
            }
        },
        {
            "id": "383",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/apple-future-hope\/",
            "title": "Hoping for a brighter future at Apple",
            "content_html": "<p>The internet is celebrating the news that Alan Dye, Apple’s head of design, is leaving.<\/p>\n<p>Alan has been the face of Apple’s interface decline in recent years. There was a time when the core principles of good interface design were easiest to explain using Apple as the example. Now Apple mostly serves to show how <i>not<\/i> to do it. Dye ended up with enormous power despite minimal competence: he simply doesn’t understand what makes an interface good; he lacks the education and isn’t even aware of it. Looks and surface-level effects completely defeated depth and thoughtfulness, and things still work only thanks to the extraordinary foundation laid long ago. Dye neither understood nor respected that foundation.<\/p>\n<p>Steve Lemay is taking over. I hadn’t heard the name before, but he has been an interface designer at Apple since 1999, so there’s no doubt he actually understands what the job of an interface designer is. And judging by the reaction, the designers inside Apple can’t believe their luck and seem genuinely hopeful. Maybe he’s someone for whom “design is how it works” isn’t just nice-sounding words. And only a couple of weeks ago there was another rumor that this year Apple will focus on polishing and refinement rather than new features.<\/p>\n<p>I very much hope Apple is headed for a revival. Maybe window sizes will once again be chosen so that elements actually fit instead of triggering a three-pixel scroll bar. Maybe we’ll get back the wonderful world where elements and their labels aren’t pushed as far apart as possible. Maybe animations will once again work to explain spatial relationships or bringing joy, instead of being accidental artifacts of implementation.<\/p>\n<p>One more thing I hope for: Apple once led the world in making drag-and-drop a truly comfortable gesture. On Windows, it was basically unusable — if you dragged a file, nothing else worked until you finished. On the Mac, while “holding” a file with the mouse, you could scroll windows with the wheel to drop the file where you needed, and you could even hit space bar to activate an element under the cursor while the mouse button was already pressed. Today these things work only sometimes, in the places where Apple hasn’t yet broken them. Maybe Apple will suddenly remember the implications of Fitts’s law, and we’ll once again be able to drag files to the very edge of the screen to drop them into the Dock, instead of having to aim at the icon.<\/p>\n<p>When Steve Jobs introduced Quick Look about twenty years ago, he explained that PDF parsing was built deep into the system, so even complex PDFs opened instantly, like ordinary image files. Today on the Mac, not only PDFs — even a regular JPEG takes noticeable time to appear. Just open a folder full of JPEGs and press the down arrow key to move through them. On the old Mac, the JPEGs would flicker past your eyes as they changed. Today, the Mac waits until you release the key, and only then lazily draws the JPEG you stopped on.<\/p>\n<p>You simply have to not know how good things can be — how good they <i>were<\/i> — to believe that today’s Mac is good. The only reason to tolerate this misery is that everything else is even worse. If only that stopped being the only reason. Please.<\/p>\n",
            "summary": "The internet is celebrating the news that Alan Dye, Apple’s head of design, is leaving",
            "date_published": "2025-12-06T11:20:47+03:00",
            "date_modified": "2025-12-06T11:20:34+03:00",
            "tags": [
                "Apple",
                "design",
                "interface",
                "Mac"
            ],
            "_date_published_rfc2822": "Sat, 06 Dec 2025 11:20:47 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "383",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "381",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/type-to-search-finder-mixed\/",
            "title": "When you type to search in Finder, files and folders are mixed together",
            "content_html": "<p>In Norton Commander, as well as in Windows Explorer it’s always been the norm that folders go first, then files. On Mac, it used to be different: files and folders were always mixed together based on the selected sort order.<\/p>\n<p>A few years ago, Apple finally gave in and added a proper sorting option to Finder: folders now appear first, files below.<\/p>\n<p>In Norton Commander, as well as in Windows Explorer, and even in Finder, you’ve always been able to select a file in a list just by typing its name. I’m always surprised when people scroll through giant file lists looking with their eyes, instead of just typing a couple of letters.<\/p>\n<p>So imagine you open a folder in Finder, and in it you have:<br \/>\n<tt>images\/<\/tt><br \/>\n<tt>index.php<\/tt><\/p>\n<p>You press the “i” key. Obviously, the highlight should jump to the <tt>images\/<\/tt> folder. But in reality, it jumps to <tt>index.php<\/tt>. Because even though Finder visually sorts folders to the top, deep down it still believes that <tt>index.php<\/tt> comes before <tt>images<\/tt>.<\/p>\n<p>Vibe coding had not been invented then, but the implementation quality of Apple software was already at that same level.<\/p>\n",
            "summary": "In Norton Commander, as well as in Windows Explorer it’s always been the norm that folders go first, then files",
            "date_published": "2025-08-06T17:44:33+03:00",
            "date_modified": "2025-08-06T17:44:24+03:00",
            "tags": [
                "Apple",
                "bugs",
                "interface",
                "Mac"
            ],
            "_date_published_rfc2822": "Wed, 06 Aug 2025 17:44:33 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "381",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "380",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/mobile-desktop-recognizability\/",
            "title": "Recognizability between mobile and desktop",
            "content_html": "<p>How much can a design change when adapting it for mobile?<\/p>\n<p>I go by this rule: the mobile and desktop versions should be mutually recognizable. If I’ve used a website on my computer and then open it on my phone, everything should be where I expect it to be — and vice versa.<\/p>\n<p>If, say, there’s a row of six images on desktop and on mobile it becomes two rows of three — that’s fine. But if the images are replaced by a “View Photos” button that opens a popup — that’s not fine anymore. If there’s a large block of text on desktop and on mobile part of it becomes hidden with “Show more” — that’s fine. But if the text is edited down just for mobile — that’s not fine anymore.<\/p>\n<p>I disagree with the idea of separating scenarios where people say things like: “On mobile, users are usually in a hurry, for them section X is more important than section Y, so let’s move it up”. That breaks the mutual recognizability.<\/p>\n<p>You can put the mobile and desktop designs side by side and ask yourself: do they feel like two views of the same thing, just rearranged for screen size? Will someone who knows one version find their way around the other? If not — I’d ask for a redesign.<\/p>\n",
            "summary": "How much can a design change when adapting it for mobile?",
            "date_published": "2025-08-03T22:58:13+03:00",
            "date_modified": "2025-08-03T22:58:11+03:00",
            "tags": [
                "interface",
                "web"
            ],
            "_date_published_rfc2822": "Sun, 03 Aug 2025 22:58:13 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "380",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "379",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/superpedestrian\/",
            "title": "Superpedestrian fleet management interface",
            "content_html": "<p>Check out the Superpedestrian fleet management interface:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/superpedestrian\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/superpedestrian-cover.jpg\" width=\"920\" height=\"607\" alt=\"\" \/>\n<\/a><\/div>\n<p>I like designing interfaces of this kind where you need to figure out an obscure process.<\/p>\n",
            "summary": "Check out the Superpedestrian fleet management interface",
            "date_published": "2025-07-18T18:39:08+03:00",
            "date_modified": "2025-07-18T18:30:49+03:00",
            "tags": [
                "interface",
                "projects",
                "release"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/superpedestrian-cover.jpg",
            "_date_published_rfc2822": "Fri, 18 Jul 2025 18:39:08 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "379",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/superpedestrian-cover.jpg"
                ]
            }
        },
        {
            "id": "377",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/automatic-email-sorting\/",
            "title": "The problem with automatic email sorting",
            "content_html": "<p>New email apps keep coming out, trying to organize your inbox. Folders in email were invented nearly fifty years ago, and since then we’ve had filters, rules, and now AI — all aiming to automate sorting.<\/p>\n<p>Some apps don’t even call them “folders” anymore, but “categories” or something else that only adds to the confusion. Every new app tries to outsmart the others at sorting: “inbox”, “important”, “newsletters”, “social”, “purchases”.<\/p>\n<p>Even Apple Mail recently jumped in with its own version: “primary”, “promotions”, and so on. Surely, I have no idea how it decides where things go. To avoid missing an email, I have to check all the categories, so the workload goes up, not down. “Didn’t get our message? Check your spam, secondary, non-urgent, and low-priority folders!” I turned that off immediately, of course.<\/p>\n<p>For some reason, email designers don’t get that folders only work when you create them yourself and sort things manually. If the system exists in your head and you stick to it, you can trust it. But someone else’s system makes you second-guess everything.<\/p>\n<p>Instead of sorting emails into folders, computers should be mining the actual information from them.<\/p>\n<p>Yes, finding booking references and boarding pass QR codes in your inbox is a pain. But even finding them inside an email you’ve already opened is a pain! I don’t want just a folder with those emails — ideally, I’d see the info without even opening a message. If I do need more context, let there be a shortcut to the original message. And I don’t care what folder it’s in.<\/p>\n<p>If an email invites me to a conference and asks me to respond by the 25th, I want that deadline clearly flagged next to the message. And show me, in my inbox, the three emails I should respond to today — based on what they say. Leave folders for people who actually like manual sorting.<\/p>\n",
            "summary": "New email apps keep coming out, trying to organize your inbox. Folders in email were invented nearly fifty years ago, and since then we’ve had filters",
            "date_published": "2025-05-23T18:14:18+03:00",
            "date_modified": "2025-05-23T18:14:14+03:00",
            "tags": [
                "AI",
                "email",
                "interface"
            ],
            "_date_published_rfc2822": "Fri, 23 May 2025 18:14:18 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "377",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "369",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/reversibility\/",
            "title": "Reversibility of an interface element",
            "content_html": "<p>Reversibility is a property of an interface input control, where the user can return the control to its initial state at any time. Or, more generally, where the user can freely switch between all available states. Irreversibility, consequently, is when the element has states to which it cannot be returned after some actions. Well-designed controls are reversible.<\/p>\n<p>An example of an irreversible control is a group of radio buttons of which none are initially selected. Once one option is selected, there is no way to return the group to the initial blank state. This creates discomfort and frustration. In a proper radio group exactly one element is always selected, including in the initial state, so the group is reversible.<\/p>\n<p>But what if picking an option is required to proceed to the next step? There is no point in unselecting all options! Why would the user want that? Well, the reversibility requirement stands even if the initial state is not “valid”. This has to do only with the mechanics of the interface control, not with its role in the interface external to it. It affects the sense of control. Consider this: a text input field does not resist having all characters erased from it, even if it is required. Any other element, if it has a blank state at all, should let you return to it. In the case of a radio group, remove the blank state altogether by providing a default option.<\/p>\n<p>Here’s another example of irreversibility. Suppose you have a required text field, initially blank. The user clicks the field, then clicks another element, leaving the field blank (or fills it in, but then erases everything). The system now draws a red border around the field, hinting that the field cannot be left blank. Now it is impossible to return the field to its initial “clean” blank state. A solution would be to fade out the red border so that the field returns to the initial state after a second.<\/p>\n",
            "summary": "Reversibility is a property of an interface input control, where the user can return the control to its initial state at any time",
            "date_published": "2024-01-10T15:59:01+03:00",
            "date_modified": "2024-01-10T15:57:09+03:00",
            "tags": [
                "interface"
            ],
            "_date_published_rfc2822": "Wed, 10 Jan 2024 15:59:01 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "369",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "365",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/duolingo-no-more\/",
            "title": "How I stopped using Duolingo",
            "content_html": "<p>Duolingo used to be a great app. I opened in to practice almost every day. But then they changed the design:<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/aX8fgrqOIrI?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<\/div>\n<p>The redesign rolled out gradually — apparently they were testing it. There was a period when the iPhone was already broken, but it was still possible to use it with an iPad or on the web. I chased the old design for a while, but soon after the final switch to the new one I lost interest in studying.<\/p>\n<p>There was a lot of outrage online about the change, including in the comments under this video. But the design has not been rolled back, which means Duolingo’s numbers are good.<\/p>\n<p>Before and after:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/duolingo-change.jpg\" width=\"992\" height=\"600\" alt=\"\" \/>\n<div class=\"e2-text-caption\"><a href=\"https:\/\/blog.duolingo.com\/new-duolingo-home-screen-design\/\">From a Duolingo blog<\/a><\/div>\n<\/div>\n<p>In the old design, as you went through the lessons, the next ones opened in bundles. In the example on the left, you could choose from: basics, phrases, animals, food, family. Sometimes I was in the mood to learn something new, so I tapped an untouched topic. Sometimes, on the contrary, I wanted additional practice in something I already had an idea of, so I went there. When I made a choice to learn something, as the owner of my choice, I was motivated to learn it. The interface was informative and engaging with a variety of topics. Sometimes it was fun to scroll up and be pleased with how much I already learned. Sometimes it was interesting to scroll down, to the lessons locked so far, to be inspired by what awaits next. Maybe the remaining required lesson isn’t very appealing, but look at what’s there to learn afterwards!<\/p>\n<p>The new design has none of that. The endless wave of identical coins means nothing, you just have to tap the green one: you have already completed the previous ones, while the next ones are not available yet. If you scroll up or down, the endless wave of already completed or not yet available unsigned coins continues, and there will even be a button to scroll back to the green coin. The informativeness of this screen is literally zero, it gives you no choice, it exists only for you to tap the one single button! Even the iPad cat games are more interesting.<\/p>\n<p>In the video, they tell us that was the intent:<\/p>\n<blockquote>\n<p>We’ve redesigned the home screen to better guide you through lessons.<\/p>\n<\/blockquote>\n<p>Translated from marketing speak, “now we decide what you learn”.<\/p>\n<blockquote>\n<p>Follow a path crafted by our learning experts to help you better reach your goals.<\/p>\n<\/blockquote>\n<p>It’s different for everyone, but for me, “reach your goals” is the weakest motivator in life. I want to effortlessly enjoy the process and then suddenly be thrilled to discover my own accomplishments. Duolingo doesn’t give me that anymore.<\/p>\n<blockquote>\n<p>And don’t worry, we’ve kept all the progress you’ve made so far<\/p>\n<\/blockquote>\n<p>What are you talking about? I no longer see the huge list of topics I’ve completed. From my point of view, all the progress I had, I’ve lost.<\/p>\n<p>Anyway, it was a great app.<\/p>\n",
            "summary": "Duolingo used to be a great app. I opened in to practice almost every day. But then they changed the design",
            "date_published": "2023-09-09T11:07:29+03:00",
            "date_modified": "2024-10-14T10:09:26+03:00",
            "tags": [
                "interface"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/remote\/youtube-aX8fgrqOIrI-cover.jpg",
            "_date_published_rfc2822": "Sat, 09 Sep 2023 11:07:29 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "365",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/remote\/youtube-aX8fgrqOIrI-cover.jpg",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/duolingo-change.jpg"
                ]
            }
        },
        {
            "id": "364",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/onboarding\/",
            "title": "Onboarding",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/onboarding-en@2x.jpg\" width=\"900\" height=\"374\" alt=\"\" \/>\n<\/div>\n<p>Often when we open an application, we see a screen that tells us about it or about some recently added features. The screen may consist of several pages that you have to flip through one by one. There may be a button to skip it all and go to the main interface of the application. This is commonly referred to as an onboarding screen.<\/p>\n<p>It is bad practice to do so.<\/p>\n<p>The statement may seem ridiculous to you as so many products have onboarding screens. Unfortunately, most of their creators don’t even ask themselves the question “what if we are wrong?” In some occasions I asked them why they do it, and I heard: “well, it’s onboarding”. People don’t even realize that this doesn’t answer my question — the belief that this is the right thing to do is so strong.<\/p>\n<p>Let’s examine what’s wrong with this kind of onboarding, what task it’s designed to accomplish, and how to accomplish that task well.<\/p>\n<p>Summary: The onboarding screen appears at the wrong time, prevents you from using the application, and when you really need the information from it, you can’t find it anymore. This causes frustration and reinforces the habit of skipping messages without reading them. It is better to make tutorial elements an integral part of the interface and allocate a permanent place for information about new features and changes.<\/p>\n<h3>Why not introduce the application at first launch<\/h3>\n<p>First, consider an onboarding screen that introduces you to the application as a whole.<\/p>\n<p>In the dumbest case, it’s advertising: onboarding pages praise the app and its features. However it is nonsense to advertise an app that the user has just installed and opened: we have already received the desired attention; it is now time to stop seeking it and start converting it into value. The user also has their expectations of the application and wants to start using it. They now have to overcome our annoying obstacle. So advertising should just be removed.<\/p>\n<p>In a slightly less dumb case, onboarding tries to teach you how to use the application: this is how you order a pizza, this is how you make a money transfer. If the user already knows this, it’s again just an annoying obstacle to their goal. If the user doesn’t know this, however, we present them with an uncomfortable choice. They need to read our onboarding screen carefully and memorize it so that they can later apply what they’ve learned to the real interface, which they haven’t even seen yet. But as a user, it’s impossible to estimate how mindful I have to be and how thoroughly I have to memorize. Maybe I will be able to figure it out on my own in the real interface?<\/p>\n<p>Just think how crazy this is. You buy a new washing machine, and they forcibly hand you the owner’s manual and say: “You can throw it away, but if you can’t understand something later, no one will help you”. Uh.. Can one not figure it out without the manual? We don’t know. Well, can’t I just leave the manual in the box and take it later if I need it? No, you can’t: you either have to read it now or throw it away.<\/p>\n<p>It is worth analyzing the main interface carefully. How to make it clear without the initial tutorial? If you can’t do without hints, how can you provide them so that they don’t interfere with the usage of the application? Maybe you need to add explanatory text somewhere. Maybe in the tricky places you need “?” buttons that open the detailed explanation. Or maybe you need your own educational YouTube channel that is easily accessible from the interface.<\/p>\n<h3>Why not talk about new features after an update<\/h3>\n<p>Now consider an onboarding screen that highlights new features and changes.<\/p>\n<p>The same problems are even more acute here. When somebody opens your application for the very first time, they probably have little expectations. However, when the user is familiar with the application, when they’ve been using for some time already, they launch it with a specific purpose, for example, to check delivery tracking or to pay the household bills. Most likely, they have a “plan”: they remember what corner they are going to tap first, what will appear next, where they are going after that. But suddenly, instead of an interface they expected, they get a presentation of new features they don’t need right now!<\/p>\n<p>In this situation, the urge to skip the onboarding screen is even stronger, and so many users simply won’t learn about your innovations. Again, not because they don’t need them at all, but because they don’t need them at that moment. If your application is being actively developed and updated, the constant talk about changes will be annoying, and the habit of skipping them will become more entrenched each time.<\/p>\n<p>To keep users aware of what’s new, it’s a good idea to provide a permanent place in the application for this purpose. My favorite example is the messenger Telegram:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/onboarding-telegram@2x.jpg\" width=\"900\" height=\"374\" alt=\"\" \/>\n<\/div>\n<p>The designers took advantage of the nature of the application: the information about new features comes as chat messages from a special “Telegram” account. When you open the application, you see these messages on an equal footing with others. You can chat with your friends or respond to important work messages first, then learn about Telegram itself. Each feature is revealed in a separate message with a nice video. The message can be forwarded to someone who, you believe, will benefit from the feature — the advertising effect is amplified for free. And, of course, no one prevents you from returning to these messages at any time later. That’s exactly what I did to take the screenshots.<\/p>\n<p>Even if your product is not a messenger, you can find some permanent place to talk about new stuff. And for people to remember to go there, you can put a red badge when unread items appear. What’s important is that the rest of the application’s features are available even before the user has read everything.<\/p>\n<h3>Good user interface and good business<\/h3>\n<p>I start my course User Interface Fundamentals with the subject of humaneness: the interface should be for the human, not the other way around. When an interface stands in the way and pisses you off, it’s a bad interface. In the lecture on habit, I talk about the problems with confirmation windows and blocking messages, and onboarding screens are examples of that. They reinforce the habit of reading nothing and agreeing with everything.<\/p>\n<p>Onboarding screens have problems similar to those of confirmation windows, yet both things are very common. The reason is that in product development, the goal is rarely “to make the user happy”. Typically, those in charge of a product look at other metrics. Let’s say the onboarding screen is watched by 10% of users and as a result sales grow by 1%. Who cares then if it disturbs the rest of us? The gain is greater than the loss, so fine.<\/p>\n<p>Reader Egor, who works as an analyst in a large product, once wrote to me:<\/p>\n<blockquote>\n<p>Do you believe an a\/b test would help to settle this debate? Say, we’ll show the onboarding screen to half of new users and skip it for the other half, then look at two metrics: the conversion rate from first session to a completed order and the time from application launch to completed order. If the conversion rate with the onboarding screen is higher while the time to order does not increase (i.e. the time a user spends in onboarding is won back later), would you agree that onboarding screens are justified? And how do you generally feel about validating product hypotheses with a\/b tests?<\/p>\n<\/blockquote>\n<p>I would agree even without the test. But what this test would prove, at best, is that it is better to tell about the application by onboarding than not at all. And what I’m saying is that there’s a better way than onboarding.<\/p>\n<p>As for validating product hypotheses, it has little to do with a good user interface. Sometimes you can boost the metrics by degrading the interface: by reducing the clarity of options, by nudging the user towards a disadvantageous purchase; by making it harder to unsubscribe. A good interface is only sometimes important to product success, but sometimes it is not. Just look at Facebook or Booking.com. I wouldn’t want to have anything to do with making these very successful products.<\/p>\n<p>In a large product with pragmatic management, adding an onboarding screen may indeed be the most feasible solution. It doesn’t interact with the rest of the application in any way, it doesn’t add any new logical connections, a separate team can even be responsible for it. It is much easier, faster, and cheaper than thinking about how to improve the educational properties of the product itself.<\/p>\n<p>But not all businesses operate on squeezing metrics at all costs. Some have a different set of values, where product quality and user delight matter. Sometimes there’s an opportunity to think carefully about these things, rather than just do what everyone else does.<\/p>\n<p>I find that onboarding is often done because the creators genuinely think it’s a good idea, rather than for the pragmatic reasons mentioned above. They don’t even look at the metrics, don’t compare user annoyance with the gains in conversion rate. They just put up a splash screen because they absolutely want to talk about the new features! In such cases, when I talk about the disadvantages, people are happy to engage in a discussion of alternatives.<\/p>\n<p>Yes, doing things well is usually harder than doing them poorly, but the effect can also be greater.<\/p>\n<h3>One more question please<\/h3>\n<p>“Ilya, it all makes sense, but there’s a really amazing feature that we’ve been working on for two years. We even made a video about it! We want to put it in the onboarding screen, because it’s important for us that everyone sees it!”<\/p>\n<p>It’s great that you’ve made a feature that you are proud of. I sympathize with your desire to tell everyone. If you put it in the onboarding, you’ll blow the opportunity. How could you communicate about the feature in a way that everyone will love it? Give this question at least a fraction of the care you gave the feature itself.<\/p>\n",
            "summary": "It’s bad practice to greet app users with onboarding screens",
            "date_published": "2023-08-28T11:20:19+03:00",
            "date_modified": "2023-08-30T20:51:48+03:00",
            "tags": [
                "habit",
                "humaneness",
                "interface",
                "onboarding",
                "Telegram"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/onboarding-en@2x.jpg",
            "_date_published_rfc2822": "Mon, 28 Aug 2023 11:20:19 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "364",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/onboarding-en@2x.jpg",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/onboarding-telegram@2x.jpg"
                ]
            }
        },
        {
            "id": "362",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/ui-stability\/",
            "title": "Marco Arment on UI stability",
            "content_html": "<p><a href=\"https:\/\/atp.fm\/439\">In ATP Episode 439<\/a> Marco Arment had a good speech on UI stability, I even took time to write it down. It starts at 35:07:<\/p>\n<blockquote>\n<p>UIs so often lack stability. It is such a critical quality. You want the UI to be stable.<\/p>\n<p>Not every surface should be “live”... If you try to select some text on a website with a mouse on a desktop, you don’t want every single thing that you can click on or accidentally brush against with your finger on a phone to be something that is live, that does something. You want stability, you want things to feel solid, and predictable, and forgiving. And not being so susceptible to things like accidental input or imprecision in input... People are doing things unintentionally.<\/p>\n<p>You also don’t want the UI to be moving around when people are trying to use it. And I feel like a lot of the current Mac design language these days, where everything is being hidden behind hover states and then things animate somewhere out of the way and change where they are... this is all violations of UI stability. It makes everything a hot zone or a live zone. And things are jumping around, and it’s disorienting, and it’s inefficient, and it’s unintuitive as well, and undiscoverable and all sorts of other problems.<\/p>\n<p>Anything you can do to make a UI more stable in a sense that things don’t move around too much, there aren’t too many different modes where things come in and out or slide around, or pop in, or pop out, that makes it easier and better and more calm to use for more people. And it’s a better design.<\/p>\n<\/blockquote>\n",
            "summary": "In ATP Episode 439 Marco Arment had a good speech on UI stability, I even took time to write it down",
            "date_published": "2023-08-08T22:33:53+03:00",
            "date_modified": "2023-08-08T22:32:10+03:00",
            "tags": [
                "interface",
                "quotes"
            ],
            "_date_published_rfc2822": "Tue, 08 Aug 2023 22:33:53 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "362",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "352",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/typing-password-over-button\/",
            "title": "Typing your password over a button",
            "content_html": "<p>Apple came up with this interface behavior that would seem strange before.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/ventura-password-1@2x.png\" width=\"185\" height=\"206\" alt=\"\" \/>\n<\/div>\n<p>When biometric authentication is available, the password input field is hidden. But if something goes wrong, you can still enter your password. However, you can start typing the password even before pressing the “Use Password...” button — any input will take the window to the next state.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/ventura-password-2@2x.png\" width=\"185\" height=\"215\" alt=\"\" \/>\n<\/div>\n<p>Apparently, the password interface is hidden initially for the sake of beauty, and also not to give people the false impression that the password <i>must<\/i> be entered.<\/p>\n<p>The only annoying thing is that the two states of the window are of different heights, that is, when you start typing the password, the window gets bigger.<\/p>\n",
            "summary": "Apple came up with this interface behavior that would seem strange before",
            "date_published": "2023-04-15T13:26:26+03:00",
            "date_modified": "2023-04-15T13:26:23+03:00",
            "tags": [
                "Apple",
                "interface",
                "Mac"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/ventura-password-1@2x.png",
            "_date_published_rfc2822": "Sat, 15 Apr 2023 13:26:26 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "352",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/ventura-password-1@2x.png",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/ventura-password-2@2x.png"
                ]
            }
        },
        {
            "id": "350",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/safari-auto-close\/",
            "title": "Automatically Close Tabs in mobile Safari",
            "content_html": "<p>Mobile Safari has a feature that automatically closes tabs. It reveals the ill-conceived nature of the interface as a whole:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/safari-auto-close@2x.jpg\" width=\"375\" height=\"734\" alt=\"\" \/>\n<\/div>\n<p>The problem: tabs pile up indefinitely. This is because there is no reason to close a tab after you got from it all you wanted. However, when you create a new tab, the old ones vanish from view entirely, and don’t get in the way. It’s just that once every two months you’re horrified by the list of open tabs.<\/p>\n<p>Apple’s solution: symptomatic treatment. Let’s clean up the list the user is horrified by! That is, delete user data for the sake of the pretty picture.<\/p>\n",
            "summary": "Mobile Safari has a feature that automatically closes tabs. It reveals the ill-conceived nature of the interface as a whole",
            "date_published": "2022-12-07T10:25:17+03:00",
            "date_modified": "2022-12-07T10:23:37+03:00",
            "tags": [
                "interface",
                "Safari"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/safari-auto-close@2x.jpg",
            "_date_published_rfc2822": "Wed, 07 Dec 2022 10:25:17 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "350",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/safari-auto-close@2x.jpg"
                ]
            }
        },
        {
            "id": "346",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/one-spinner-is-enough\/",
            "title": "One spinner is enough",
            "content_html": "<p>In user interfaces, a spinner is a normal indicator of thinking or loading. However, the modern web is often build from blocks that could be loading independently. As a result, you got multiple spinners spinning:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/twitter-multi-spinners@2x.png\" width=\"570\" height=\"540\" alt=\"\" \/>\n<\/div>\n<p>Not good.<\/p>\n<p>The application architecture should account for the fact that multiple things could be loading at once. Where would the spinner be displayed? In the case of multiple instances of the same block type, it’s enough to show the spinner in lieu of the first one. When the blocks are diverse, in general it’s best to put the spinner in the largest or the top-most block.<\/p>\n<p>The classic iPhone used to have a loading indicator right in the status bar:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/iphone-statusbar-spinner@2x.jpg\" width=\"320\" height=\"26\" alt=\"\" \/>\n<\/div>\n<p>If memory serves, there was an API for an application to tell the status bar: “Hey, I already have an indicator in my interface, so don’t show yours”.<\/p>\n<p>But the art of thinking of how to avoid rubbish on the screen, has long been forgotten even at Apple, so you can’t expect this level of care from Twitter.<\/p>\n",
            "summary": "In user interfaces, a spinner is a normal indicator of thinking or loading. However, the modern web is often build from blocks that could be loading independently",
            "date_published": "2022-11-12T11:00:31+03:00",
            "date_modified": "2022-11-12T11:00:28+03:00",
            "tags": [
                "feedback",
                "interface"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/twitter-multi-spinners@2x.png",
            "_date_published_rfc2822": "Sat, 12 Nov 2022 11:00:31 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "346",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/twitter-multi-spinners@2x.png",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/iphone-statusbar-spinner@2x.jpg"
                ]
            }
        },
        {
            "id": "343",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/resizing-mac-windows\/",
            "title": "Resizing Mac Windows",
            "content_html": "<p>If you start dragging a window’s border, the window will start to resize horizontally or vertically in that direction. And with the Option key pressed, it will resize symmetrically in the opposite direction as well (like in Photoshop, yes).<\/p>\n<p>If you start dragging a window’s corner, the window will start to resize both horizontally and vertically in that direction. And with the Option key pressed, it will resize symmetrically in all directions.<\/p>\n<p>If you double click a window’s border, the window will grow from that side to the edge of the screen. If you double click a window’s corner, the window will grow to the corresponding corner of the screen.<\/p>\n<p>Therefore, to make a window cover the whole screen (but not go into the dumb full-screen mode), just alt-doubleclick any of the window’s corners.<\/p>\n<p>See also:<\/p>\n<ul>\n  <li><a href=\"https:\/\/ilyabirman.net\/meanwhile\/all\/move-windows-by-dragging-borders\/\">Moving OS X Lion windows by dragging the borders<\/a><\/li>\n<\/ul>\n",
            "summary": "If you start dragging a window’s border, the window will start to resize horizontally or vertically in that direction",
            "date_published": "2022-10-27T17:18:21+03:00",
            "date_modified": "2022-10-27T17:18:30+03:00",
            "tags": [
                "interface",
                "Mac"
            ],
            "_date_published_rfc2822": "Thu, 27 Oct 2022 17:18:21 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "343",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "341",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/how-to-trim-text-the-right-way\/",
            "title": "How to trim text the right way",
            "content_html": "<p>Recently, I wrote about <a href=\"https:\/\/ilyabirman.net\/meanwhile\/all\/facebook-see-more\/\">Facebook’s crappy handling of long posts<\/a>: it’s trims the text randomly and loses your reading position when expanded. So how should it be done? Let’s deal with the trimming first.<\/p>\n<p>Trimming text in a random place is disrespectful to the author and the text, and is a further proof that Facebook doesn’t care what you write. It’s also an example of deep technology dependence: it’s easier for a machine to trim to a certain number of characters, and so it does.<\/p>\n<p>There could be an aesthetic rationale behind trimming text, i.e. to make it fit into a certain design element. Of course this is also disrespectful to the author and the text, but at least the motives are humanistic. However trimming after a fixed number of characters is not even this: the physical size of lines of equal character length is usually variable: compare “iii” and “WWW”. Even in my Facebook example, a few more words would fit in the same box:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/fb-see-more-3@2x.jpg\" width=\"640\" height=\"417\" alt=\"\" \/>\n<\/div>\n<p>Sometimes trimming randomly not only ruins the meaning of the text, but changes its to something indecent:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/liz-truss-anal@2x.jpg\" width=\"314\" height=\"487\" alt=\"\" \/>\n<\/div>\n<p>So, if you can’t do without trimming, you have to trim carefully. How does Aegea do it?<\/p>\n<p>The character limit is considered a rough guideline, not an exact value. If you need to fit in 140 characters, and the text is 143 characters long, then Aegea just won’t touch it. If the text is noticeably over the limit, then Aegea will divide it into sentences and try to take as many full sentences as it can fit. Here, for example, is the snippet of this post:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-snippet-of-this-en@2x.jpg\" width=\"491\" height=\"208\" alt=\"\" \/>\n<\/div>\n<p>However, if the result is too short (or no whole sentence fits at all), Aegea will look for other signs of safe trim positions: semicolons, dashes, commas, brackets. Only if none of these are present will it trim at a word boundary. And only if there are no word boundaries, will it trim by the number of characters. The absence of word boundaries is a sure sign that the author themselves didn’t care about the meaning, so it’s fine if neither does Aegea.<\/p>\n<p>In general, Aegea will try to make it as close to the desired length as possible, but so that the meaning does not suffer.<\/p>\n<p>If I can code this, what would stop Facebook from doing it? I think it’s that it hadn’t even crossed anyone’s mind. Why would Facebook even care about doing anything well? What a nonsense. There is no such metric.<\/p>\n",
            "summary": "Recently, I wrote about Facebook’s crappy handling of long posts: it’s trims the text randomly and loses your reading position when expanded",
            "date_published": "2022-10-25T12:50:10+03:00",
            "date_modified": "2022-10-25T12:49:26+03:00",
            "tags": [
                "Aegea",
                "being human",
                "interface",
                "text"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/fb-see-more-3@2x.jpg",
            "_date_published_rfc2822": "Tue, 25 Oct 2022 12:50:10 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "341",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/fb-see-more-3@2x.jpg",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/liz-truss-anal@2x.jpg",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-snippet-of-this-en@2x.jpg"
                ]
            }
        },
        {
            "id": "339",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/facebook-see-more\/",
            "title": "The broken “See more” in Facebook",
            "content_html": "<p>Pinpointing individual problems with the Facebook’s user interface is odd, as <i>everything<\/i> there is done with contempt for the user. However, I keep stumbling over this nonsense every time, and I just can’t understand why someone would do that.<\/p>\n<p>So, Facebook trims long posts at a random place (moron) and puts a “See more” thing there. If you click it, it expands the full post. But instead of expanding it downwards, it expanding it upwards! The text that you were reading a second ago and hadn’t yet finished reading, jumps who knows where, and now, there is something absolutely unrelated in front of your eyes:<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"640\" data-ratio=\"1.5347721822542\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/fb-see-more-1@2x.jpg\" width=\"640\" height=\"417\" alt=\"\" \/>\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/fb-see-more-2@2x.jpg\" width=\"640\" height=\"419\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>By the way, once in ten times, “See more” would open a post in a new tab instead of expanding it on the spot.<\/p>\n",
            "summary": "Pinpointing individual problems with the Facebook’s user interface is odd, as everything there is done with contempt for the user",
            "date_published": "2022-10-17T14:12:45+03:00",
            "date_modified": "2022-10-24T13:47:52+03:00",
            "tags": [
                "interface"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/fb-see-more-1@2x.jpg",
            "_date_published_rfc2822": "Mon, 17 Oct 2022 14:12:45 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "339",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/fb-see-more-1@2x.jpg",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/fb-see-more-2@2x.jpg"
                ]
            }
        },
        {
            "id": "337",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/select-phone-country\/",
            "title": "Selecting country to enter your phone number",
            "content_html": "<p>Here is an example of a dumb user interface. You can’t just enter your full phone number, you have to select a country from the list first:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/select-phone-country@2x.jpg\" width=\"503\" height=\"305\" alt=\"\" \/>\n<\/div>\n<p>It is especially tough when you have +44 number. I don’t know what to look for: UK? United Kingdom? Britain? Great Britain? England...? Even if there is a correct answer to this question, it is not necessarily the case that the authors of the form have the same idea.<\/p>\n<p>To make thing worse still, it’s a custom dropdown instead of a system one, which means — of course! — that nobody bothered to implement keyboard support, so you have to scroll back and forth in this tiny area.<\/p>\n",
            "summary": "Here is an example of a dumb user interface. You can’t just enter your full phone number, you have to select a country from the list first",
            "date_published": "2022-10-10T23:21:07+03:00",
            "date_modified": "2022-10-10T23:27:27+03:00",
            "tags": [
                "interface"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/select-phone-country@2x.jpg",
            "_date_published_rfc2822": "Mon, 10 Oct 2022 23:21:07 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "337",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/select-phone-country@2x.jpg"
                ]
            }
        },
        {
            "id": "333",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/may-i-notify\/",
            "title": "May I notify you",
            "content_html": "<p>Notifications often appear at the wrong time: while I am trying to finish a sentence or to listen to my colleague on a call. However, in many cases there is no reason to be notified at a certain time to the exact second. The reminder to take a pill this morning popped up while I was running! Clearly, I’m not going to take it while I’m running, so why not hold the reminder until I finish?<\/p>\n<p>In real life, there is a way to notify without interrupting: by raising your hand. The interface actually has different degrees of “intrusiveness” of notifications as well: red badges, temporary banners, modal windows, sounds. But in real life, if I’ve raised my hand and I don’t get noticed, I can raise it higher after a while, then wave it, or even stand up. If nothing helps, I can say “Excuse me!”<\/p>\n<p>Notifications in the interface lack this kind of progressive persistence. Given the urgency of the message itself and how busy I am, the interface can either tell me everything right away, or start with a little neat dot in the status bar (“raised the hand”), then animate that dot (“waved the hand”) and only if I am not paying attention for very long, bring up a full interface.<\/p>\n",
            "summary": "Notifications often appear at the wrong time: while I am trying to finish a sentence or to listen to my colleague on a call",
            "date_published": "2022-10-04T13:01:09+03:00",
            "date_modified": "2022-10-04T13:01:31+03:00",
            "tags": [
                "interface"
            ],
            "_date_published_rfc2822": "Tue, 04 Oct 2022 13:01:09 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "333",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "331",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/fuel-low-petrol-stations\/",
            "title": "Fuel low; here are petrol stations",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/fuellow.jpg\" width=\"1200\" height=\"643\" alt=\"\" \/>\n<\/div>\n<p>When running out of fuel, not only does my car light an LED, but also offers to show the nearest petrol stations using the built-in navigation.<\/p>\n<p>Any error or problem message in an interface should not just state it indifferently, but also help you find a solution.<\/p>\n",
            "summary": "When running out of fuel, not only does my car light an LED, but also offers to show the nearest petrol stations using the built-in navigation",
            "date_published": "2022-09-13T09:22:08+03:00",
            "date_modified": "2022-09-13T09:21:51+03:00",
            "tags": [
                "being human",
                "interface",
                "photo"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/fuellow.jpg",
            "_date_published_rfc2822": "Tue, 13 Sep 2022 09:22:08 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "331",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/fuellow.jpg"
                ]
            }
        },
        {
            "id": "330",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/barprephero-ui\/",
            "title": "BarPrepHero user interface",
            "content_html": "<p>I designed the new <a href=\"https:\/\/ilyabirman.ru\/projects\/barprephero-ui\/\">user interface for the BarPrepHero app<\/a>. Now it stands out among apps for lawyers:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.ru\/projects\/barprephero-ui\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/barprephero-ui.jpg\" width=\"920\" height=\"460\" alt=\"BarPrepHero user interface\" \/>\n<\/a><\/div>\n",
            "summary": "I designed the new user interface for the BarPrepHero app. Now it stands out among apps for lawyers",
            "date_published": "2021-10-18T15:47:57+03:00",
            "date_modified": "2021-10-18T15:47:43+03:00",
            "tags": [
                "design",
                "interface",
                "projects"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/barprephero-ui.jpg",
            "_date_published_rfc2822": "Mon, 18 Oct 2021 15:47:57 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "330",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/barprephero-ui.jpg"
                ]
            }
        }
    ],
    "_e2_version": 4269,
    "_e2_ua_string": "Aegea 12.0a (v4269e)"
}