Information Density and Android's Calendar

Recently, Google replaced Android’s Calendar app with a redesigned version. Now, admittedly, I’ve never liked any of the calendars on my phones, with the possible exception of the one on WebOS. But if I had to rank all of the calendar apps I’ve ever used from «almost acceptable» to «terrible», the new Android calendar app would sit firmly at the «terrible» end of this spectrum.

I think there’s a reason why printed planners typically use the two visible pages to show a week.

Weeks are a good unit of time when you’re planning meetings and appointments. They’re big enough for you to see a useful measure of time, and they’re big enough so that you can easily move one or two months forwards or backwards, which is all you typically need. But on a printed planner, a week is also small enough that you still get a reasonable amount of space for each individual day.

As a result, I typically default to the week view on phones, too. The day view means that even just knowing what I’m going to do tomorrow requires me to jump between different screens, while the month view doesn’t show enough information to work for most use cases.

Now, a phone is much smaller than a printed planner, so it can’t show as much information in its week view. But that’s okay; as long as I can get a quick impression of when I’m busy and when I’m free during the week, I’m fine.

The old Calendar app’s weekly view used to do a reasonable job. There was a lot of room for improvement, but it worked well enough.

The new Calendar app does not. Its information density is so ridiculously low that the week view doesn’t even deserve that name anymore. It’s now a «5 Day» view, because it only shows five days. This is confusing, because it means that the starting day in this view changes. Instead of always being Monday (or Sunday in the US), it’s now a random day. So in order for me to figure out what I’m looking at, I first have to take a second to recalibrate my brain. Okay, the leftmost day is now a Wednesday…

And I don’t even see the individual days fully. I only see seven hours of each day, effectively about half of what I’d need to see to get an impression of what I’m doing that day.

Now, I wouldn’t complain if that was the view on a dinky 3-inch-phone. But this is the view on a Galaxy Note 3. Surely, there’s plenty of space on that screen to show a usable week view.

There’s always a need to balance simplicity and information density. It’s very difficult to convey a lot of complex information in a simple, usable user interface — hence the fact that I never really liked any calendar app.

But if you’re designing a user interface that is explicitly intended to convey a lot of complex information, just not showing that information is never an acceptable solution.

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

William Van Hecke:

There’s no disincentive to honking at people for the slightest provocation. There’s little recourse for abuse. It’s such an asymmetrical, aggressive technology, so lacking in subtlety. It kind of turns everyone into a crying baby — you can let the people around you know that you’re very upset, but not why.

I think the Internet is like this sometimes, too. The internet is like a car horn that you can honk at the entire world.

I finally got around to watching Gruber’s XOXO talk. He speaks about how Daring Fireball got to where it is today. Without Gruber originally linking to this site here, back in 2008, you probably wouldn’t be reading this.

Horror Vacui

A few days ago, I was reviewing screen mockups with a bunch of developers, and one of them said something along the lines of «screen five looks a bit empty. Do you think we could add some more stuff in there?»

This is something I hear a lot. People tend to dislike empty space. It’s wasted! Can we put some kind of widget in there?

Let’s talk about something completely different. I heard you bought a new shelf half a year ago, and it looked really cool and modern and nice?

Everybody loved your new shelf! But a few months later, it suddenly didn’t look so cool and modern and nice anymore, for some reason, and people kind of just stopped complimenting you on your new shelf.

Weirdly, now that you think about it, the exact same thing happened to your flat. When you moved in, you thought it was sleek and nice and modern, but now it looks pretty cramped and stuffy.

Fear of Emptiness

There’s a concept in visual art called horror vacui, or «fear of empty spaces.» It’s the natural tendency of humans to fill empty spaces with stuff. Your new shelf has some empty panels? Put something in there! Your flat has an empty corner? Buy a chair! Or a plant! Something! Anything!

Humans have the same tendency when it comes to visual design. No empty space! Your screen has a few white pixels? What feature can we put there! Quick! Find something we can put there!

There’s a problem with that, though. Empty space is not useless.

Value Perception

Empty space creates value perception. Universal Principles of Design cites shop windows as an example:

In a survey of more than 100 clothing stores that display merchandise in shop windows, the degree to which the shop windows were filled with mannequins, clothes, price tags, and signage was inversely related to the average price of the clothing and brand prestige of the store.

Emptiness equates to prestige.

A single corner of an average PC laptop1 typically has more visual details — air vents, buttons, stickers, textures, colored ports, bezels — than a whole MacBook.

This is part of a Windows laptop:

This is a whole MacBook Pro:

Which one do you think costs more?

This doesn’t just apply to shop windows, shelves, and laptops. It extends to software. You can immediately identify which of these two websites sells cheap stuff, and which sells expensive stuff.

Putting more stuff on your screens decreases your users’ perceived value of your software.

Usability

There are other issues with overcrowded user interfaces, of course. An important one is usability. Every needless widget you put on the screen distracts the user from the thing she should be doing.

Don’t be a victim of horror vacui. If you want your software to be perceived as valuable, don’t fill every empty corner with some kind of feature or widget. Keep your designs clean, and don’t add stuff just to fill empty space. Remove features if you have to.


  1. That’s not to say that there aren’t any well-designed Windows laptops, because there areback

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

Nick Disabato:

One of the people Draft donated to is worth noting here. This past year, Anita Sarkeesian has been sent into hiding, had to cancel talks because of bomb threats, and been subjected to widespread, persistent campaigns of harassment, disinformation, and abuse – all for posting well-researched, thoughtful critiques of female portrayal in video games. If you don’t think the harassment and abuse of women for being smart, talented and outspoken isn’t so phenomenally warped that action shouldn’t be taken, then let me mince no words: you are part of the problem.

Oh, and our industry isn’t just sexist. It’s racist, too. And that sucks just as hard. Discrimination comes in so many forms – along race, gender, class, sexual orientation, and religion, to name a few – and they all conspire against large groups of society.

So. As a white, straight male, I’ve enjoyed life on the lowest difficulty setting, and there’s no way for me to truly know how hard it is for others out there. But I can try – through understanding, listening, and support.

After linking to all of the crap that has been done to Anita Sarkeesian, I want to also link to her YouTube channel, so you can go look at what she’s actually doing. Her videos are well worth watching, particularly if you’re a straight white male who never really had to worry about any of these issues.

Sidenote

I think part of the insanity of this whole situation is that we’re only talking about these women in terms of what has been done to them, instead of talking about what they are doing. People talk about Zoë Quinn’s harassment much more than they talk about the games she makes, for example. It’s important to talk about what’s happening to these women, but it seems to me that doing so at the exclusion of everything else is — in a way — reinforcing existing gender stereotypes.

Time Machine

A few days ago, BitTorrent Sync replaced one of my files with an older version of itself on all of my computers. Fortunately, I use Time Machine, so I knew I had a backup copy of the file. Trying to get the file back, though, turned out to be nigh impossible.

I love experimental user interfaces. I love the Apple Watch’s zoomable home screen. I love WebOS’s card app switcher. I love stuff like this. Your backup software’s file recovery feature, though? That’s not the place to put the single weirdest UI in your entire operating system.

When you’ve lost a file and you desperately need to get it back, you’re already in a bad place. The last thing you need is for your computer to suddenly transform into something completely unfamiliar. When you already think you’re screwed up, you’re usually not in the mood for learning a totally foreign user interface.

I’m freaking out, and Apple is sending me on an LSD-fueled trip through a star field.

I think the sheer insanity of this user interface might almost be forgiven if it allowed Apple to provide a user interface that is above and beyond what they could provide with normal UI widgets. But they don’t. Time Machine would work better as a boring old app that uses Mac OS X’s default widgets.

In Time Machine, the selector for picking how far to get back is finicky, and hard to use. As far as I can tell, it’s impossible to know when specific files actually changed, unless you manually step through the history and check the file’s modification date. The UI doesn’t properly support what is probably the most common use case: getting back the most recent good version of a single file.

All I needed was for Time Machine to show me what versions of a specific file it had backed up, so that I could pick the one with the most recent modification date. Not any old version — the most recent version. But I can’t tell Time Machine to just show me what versions of a file it has. Instead, I’m (sluggishly, because Time Machine’s UI apparently requires more power than the most recent Tomb Raider) stepping back through Time Machine’s version history, painfully trying to figure out which specific instance of the files it shows me is the one that I need to recover.

Worse, Time Machine isn’t even stable. It’ll randomly close, or show its frontmost window in a wrong position, partially offscreen, making it impossible for me to even see the file I’m trying to get to. And no, you can’t move Time Machine windows.

Sometimes, it will just stop accepting clicks. «Go back a step.» Nothing. Click on back again. Nothing. Click, click, click… Nothing. Five seconds later, it suddenly goes back a bunch of steps all at once. Crap, now I’ve lost my position.

After spending a quarter of an hour slowly scrolling backwards and forwards through Time Machine’s 3D view, trying to narrow down which version I actually needed, losing my place every time I recovered a file to see if it was the most recent good version, I remembered that I was also running Arq. Now, Arq actually has the same problem: it can show you a list of backups globally, but can’t show you a version history for just a single file. However, it does have a normal user interface, which means that figuring out how the user interface works, and going through all of its backups, opening each one to see which one contains the most recent version of the file without losing your place inside the app, is much less cumbersome.

So I eventually got my file back, no thanks to Time Machine.

I like the moxie it must have taken to create something like the Time Machine UI. I just wish it had been applied to something else. There’s absolutely a place for UI experiments. The place where people are freaking out and trying to recover desperately needed lost file, though? Not that place.

Updates

Julie Koubová notes that it is possible to browse Time Machine backups in the Finder. They’re stored as sparsebundles, so they can be opened and browsed. This didn’t occur to me while I was in panic mode, and I don’t think it’s a good way of accessing backed up files (it probably wasn’t intended to be used that way at all), but it is an option that’s available to you if your’e in a similar predicament.

Duncan Wilcox points out that it would be possible to use the Terminal to find all versions of a specific file. Loic Nageleisen points to tmutil.

Tony Meyer reminds me of the fact that Yosemite at least gets rid of the stars.

People also recommended third-party utilities. Aragorn II recommends BackupLoupe, and Kapeli recommends FileGoBack.

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

At first, I was like «this seems nifty», but then, the mom was like «wait, I wanna try… Alexa, what time is it!» and the dad was like «you actually don’t have to yell at it, okay? It uses far-field technology?» in the most obnoxious, condescending voice imaginable, and I was like «oh, I guess it’s for asshats».1

The concept makes sense to me. A device that’s hooked into the stuff in my house, and allows me to control things at home using voice, seems like a good idea. I don’t think it duplicates functionality that exists in phones. If you’re cooking and you want to set a timer, you don’t really want to take the phone out of your pocket first.


  1. Seriously though, I can’t remember any other instance where I’ve gone from «I’m going to order the crap out of this» to «I don’t want to be associated with this product in any way, shape, or form» in less time. Maybe the Audi commercial that glorified sexual assault? But then, I never liked Audi to begin with. back

Marco Arment:

I was expecting better after years of Kindles being decontented into flimsier, lower-end devices, but I think it’s clear that Amazon just isn’t willing or able to make a premium, high-quality e-reader.

Apart from the screen itself, every single generation of new Kindles was worse than the previous one. This is why I’m still using a Kindle Keyboard, which is itself a step down from previous generations, because it lacks the inward-tilting page buttons.

C:\ONGRTLNS.W95, OneDrive

I’ve been using BitTorrent Sync for a while, because I like the idea of keeping my files on my own computers. But recently, I had some issues with it, when it repeatedly overwrote a file with an older version of itself. Since it doesn’t have a real file version history, I decided to switch back to a hosted file synchronization solution. I really like SpiderOak, which I used previously and always worked well for me. But right now, Microsoft has the best offer by far, and I trust their ability to create stable cloud infrastructure more than I trust most other companies. So I decided to go with them.

In hindsight, not a good idea.

Problem 1: CPU

Ever since I’ve started using OneDrive, my MacBook Pro’s fan has been on at its highest level constantly. The reason is not hard to guess:

OneDrive consistently sits at around 100% CPU usage. AppTamer fixes this problem, but then, I’m not sure what throttling does to OneDrive. I don’t really want to mess with the system I rely on to synchronize files between my computers.

Problem 2: Path Length

OneDrive restricts the path length of its files severely. A lot of files that were syncronized just fine in BitTorrent Sync or Dropbox no longer work in OneDrive. To add insult to injury, every time OneDrive encounters a file whose path is too long, it just shuts itself down and completely erases all of its settings. So for every single file that had a path that was too long, I had to set up OneDrive from scratch, including going through two-factor auth. This, as it turned out, was the case for quite a few files.

Problem 3: File Names

OneDrive has some crazy restrictions on file names. For example, you can’t start files with a space, something a lot of people do to move files to the top of alphabetical lists.

«Hi there, it’s me, 1994! Remember me? Yeah, I’m fine too! Look, I’m just calling to tell you, that… uh… you still have my file name restrictions? Can I have them back please?»

Problem 4: My Microsoft Account

This is probably not OneDrive’s fault, but as it turned out, my screwed up Microsoft account kind of affected OneDrive, too.

I’ve had a single Microsoft account for a long time, starting way back when it was called Microsoft Passport. At some point during that time, something must have gone wrong, because that account is now effectively broken. I first noticed that something was wrong when I was unable to buy games on my Xbox One. It had always worked fine on my 360, but on the Xbox One, the store suddenly stopped accepting my Swiss credit card. Fine, I won’t buy any Xbox One games online. You win, Microsoft.

The problem got worse, though. After playing around with OneDrive for a bit, I noticed that I only had 12 gigs of space. I do have a subscription to Office 365, which should give me a lot more space. So I went to my microsoftstore.com account page. Nope, doesn’t list anything under my Order History: «No orders were found». I tried to contact support. I got as far as the «Enter Your Microsoft Product Information» screen, where Microsoft helpfully informed me that «The product ID number that you entered is not supported in the country that you have selected. Enter another product ID number or select a different support option below.» Obviously, there was no «different support option» below.

Somehow, I managed to get to a European section on microsoftstore.com. Again, I logged in, and this time, it listed Office 365 Personal on my account page. Just for fun, I tried to buy another Office subscription, but this time, the Euro store informed me that I can’t buy an Office subscription, because I’m in the store for the wrong region.

Let’s go through this.

  • Xbox thinks that my Microsoft account is a US account, and won’t allow me to use my Swiss credit card.
  • If I try to convert my Xbox account to a Swiss account, it just gives me a useless error number.
  • By the way, switching the Xbox account region removes all your money from your account. However, I can’t use the money that’s still in the account, because it’s not enough to buy anything, and I can’t add more funds to the account so I can use the money for something more expensive, because see above.
  • microsoftstore.com allows me to log into both the Euro section and the US section, and my purchases only appear in the Euro section — including a subscription to Office 365 I’ve bought previously.
  • But I can’t buy another subscription to Office 365 in the Euro section, because the store now thinks that I’m in the wrong section — despite of the fact that it had worked earlier.
  • Presumably, if I switched to the US section, as instructed, I couldn’t buy anything there, either, because, again, my credit card is Swiss.
  • The OneDrive app on my Mac, meanwhile, does not see my Office subscription, and does not give me the storage space that I should have.

I don’t want to be presumptuous, but I think this qualifies as «Kafkaesque». The only conclusion I can draw from this is that Microsoft is doing everything it possibly can to prevent me from giving them my money.

Conclusion

I’m probably not going to be using OneDrive anymore. I’m probably also not going to be buying anything on my Xbox One anymore. And I’m not sure if I’ll be able to renew my Office subscription. At this point, I’ll probably have to abandon my Microsoft account, create a new one, and hope that it won’t prevent me from doing that because I’m already using my credit card for an existing account.

I assume that OneDrive works better on Windows than on a Mac, but having a Mac client that’s this janky is inexcusable. Restricting what kinds of characters can be in a file name might have been (barely) acceptable in 1994, but shouldn’t be okay in this decade.

File synchronization tools like Dropbox or OneDrive need above all else to be completely reliable; getting file synchronization wrong isn’t just annoying, it’s actively harmful.

I don’t think OneDrive on the Mac is in a state where it is actually functional for the average user. It’s fine for synchronizing a few Office files between an iPad and Mac. If you want to do more than that, it’s probably not for you.

Update

Gabor Lenard points this out. Make of it what you will.

Update 2

I’ve now received an email from Microsoft, noting that «Your Office 365 account now has access to unlimited OneDrive storage.» This change seems to have triggered OneDrive on my Macs to finally recognize that I have an Office subscription; I now have access to more than 12 GB of storage.

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

Web Apps

John Gruber:

Lost in the competition between platforms (iOS vs. Android) is the more philosophical competition between native and in-browser web apps. In the early days of iOS, say, circa 2008-2011, it was easy to conflate these two battles in public debate, because Apple was seen as the primary proponent of native app development, and Google was seen as a proponent of cross-platform web apps. No more. Google today (like Facebook) seems all-in on native apps, at least (again, like Facebook) for post-PC devices. Just a few years ago, I used to see a lot more arguments from web-app proponents that native apps’ dominance on mobile devices would be short-lived. I don’t see so much of that any more.

I think Apple and Google have learned Microsoft’s lessons. Microsoft’s dominance in the PC market was unassailable — until the web appeared. Suddenly, having a Windows PC mattered much less, because native Windows apps became a lot less important. The things people did with their computers mostly happened inside a web browser, not inside a native app.

Apple and Google know that one of the main reasons people buy phones running iOS and Android is their app dominance. You don’t have WhatsApp? I can’t use your platform, sorry. Thus, supporting cross-platform development is against Apple’s and Google’s interests.

Apple, for example, isn’t exactly making it easy for the people who are developing web apps. Web apps pinned to the home screen on iOS have serious issues that prevent them from working like native apps; for example, they often lose their state when the user switches to another app, and reload when they’re reopened. In fact, Apple is actively making pinned web apps worse.1 Things like the apple-mobile-web-app-capable meta tag are completely broken in iOS 8.

Meanwhile, more and more native apps are actually using web views, either for parts of their UI (like a timeline in a social network), or for all of their UI. If people aren’t told, they don’t notice it. If people do know, their opinions mostly seem to come down to confirmation bias. Today, we’re at a point where web apps, if done right, are virtually indistinguishable from native apps. Brock Whitten points out:

Take a look at the this blog post attempting to expose the advantages of Hybrid vs Native which not only uses Instagram as an example of a Native app but it is specifically used as a example of a GREAT native app and why you might want the performance and smoothness of Native. This is somewhat hilarious, because it is in fact a hybrid application that uses a web view to render all of its content.

There are plenty of companies advertising «native apps» that are really nothing else than branded browsers that run a web app. Put a web app inside a native wrapper, and voilà: you have a native app. This works, because web apps have become good enough that most people don’t have to care about the difference anymore. To them, the difference between a native app and a web page comes down to things like an icon on the home screen, the fact that it appears in the task switcher, and the fact that it can receive notifications. All of these things can be provided by a web app with a native wrapper.

There was a huge story back when Facebook ostensibly switched from a web app in a native wrapper to a «true» native app. But looking at their native app on my phone, and comparing it to their web app, I’m hard-pressed to notice a real difference.

How does the new «native» Facebook app render its timeline? Is it a web view? I don’t know. And that’s kind of the point. How would the user know the difference without looking at the code? And if you have to look at the code to know the difference, why does it matter?

Web apps are already here, they’re here to stay, and you are using them without even knowing it.

Gruber notes:

One reason some people argue in favor of in-browser HTML/CSS/JavaScript web apps is that it’s the last bastion for write-once-run-everywhere. The lament I hear most frequently about mobile development is that if you want to reach the widest possible audience, you have to write at least two apps, iOS and Android. If you include Windows Phone, now you’re up to three. My take has always been: Tough luck. The point of making apps shouldn’t be about making life easier for developers, it’s about making the best possible apps for users.

The plain truth is that development is expensive. If you can afford five developers, and they can either work on two different apps, or on one single app, you will get much better results if they all collaborate on one app. This is not about making developers’ lives easier. This is about being able to focus your resources, and to make sure that all of your users can benefit from all of your effort, rather than some of your users from some of your effort.

Advantages of Native Apps

There used to be three major reasons for going with native code:

  1. Performance
  2. UX consistency with the host platform
  3. Direct access to APIs

Of these three, only direct access to APIs is still a major issue. You can use something like PhoneGap, but you’ll always be lagging behind.

Performance is not an issue anymore. People are now writing real, serious games using web technologies. Browser developers have become really good at optimizing the performance of web technologies.2

Similarly, in-platform UX consistency is effectively dead. The iPhone of 2014 is not the Mac of 1984. Facebook has its own UX. Twitter has its own UX. People are okay with each app having its own separate, unique identity.3

Clearly, neither Apple nor Google can be happy with this development. They like native apps, because that prevents other platforms from entering the market. But for users, web apps a good thing, because they divorce apps from operating systems, and make it easier to choose freely which OS we want to use, based on the OS’s own merits, rather than based on whether it runs the apps we need.

Just as the web allowed the Mac to compete with Microsoft, it will allow other mobile platforms to compete with iOS and Android.4 And I don’t think anyone should be against that. Nobody should want another situation where one single company5 has dominant control over operating systems for two decades.

In Short

  • Doing bad web apps is easier than doing bad native apps,6 but web apps are not by definition worse than native apps. You can do bad native apps, and you can do bad web apps, just as you can do good web apps, and good native apps.
  • You’re already using web apps in native wrappers without even noticing it. The fact that nobody even notices, the fact that this isn’t a story, shows that, when it comes to user experience, web vs. native doesn’t matter anymore.
  • Native apps mainly benefit Apple and Google, not their users. It’s not in anyone’s interest to be locked into a specific platform, except for the platform’s owner.

A final word

Gruber noted that «Lost in the competition between platforms (iOS vs. Android) is the more philosophical competition between native and in-browser web apps.» I think that from developers’ point of view, this has never been a competition. It’s just a choice you make when you develop an application, and each choice has its advantages and disadvantages.

There are apps that need deep hooks into the OS (e.g. a podcast client that does audio transformations), and work better (or only) as native apps (though maybe the part of the app where you discover new podcasts could be a web view). And there are apps that work just fine as a web app, without anyone ever noticing the difference.

It’s fun to have ideological battles over platforms and technologies, but to developers, these are pragmatic choices, not religious ones. Some developers go with native apps, others pick web apps in native wrappers. As time goes on, I think there will be more and more of the latter. The only reason users should care either way is if they don’t want to be locked into a specific platform. And if they don’t, the slow, steady move towards web apps can only be a positive development.

Native apps are good for Apple and Google, but Apple’s and Google’s interests don’t always align with the interests of their users.


  1. While preventing other browser makers from truly competing with their built-in browser, something Microsoft never managed to do, though they tried their best. back

  2. Even though we’re now at a point where you can buy a sufficiently fast phone at under 100 US$ without a contract, as Adrian Stutz points out, there are certain markets where performance can still be an issue. On the other hand, it’s possible to write reasonably complex web games that run even on a first-gen iPad, so web apps can be optimized to target low-end devices. back

  3. Please don’t compare this to Swing, by the way. Swing was a terrible attempt at mimicking native UIs. We all know that this doesn’t work; it puts you into the uncanny valley of UI design. When using a Swing app, everything feels like a weird nightmare, a slightly warped version of reality. Web apps are not that. back

  4. On a related note, I just got my first phone running Firefox OS. It’s better than I expected. back

  5. Or two, which is probably only slightly better. back

  6. Since you have to make an effort to make a good web app, and get all of the details right. And you have to make an effort to make a bad native app, and replace all of the native UI elements with inferior custom ones. back

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