iOS 7 Wishlist

May 12, 2013

This is based on last year’s equivalent, but much of that turned out not to be true, so I might as well repeat myself. Second time’s a charm, and all.

Sources of Inspiration

Mostly the same as before:

Now, keeping in mind that I have virtually no personal experience with other mobile OSes, I do have plenty with Windows 8 (in various settings, including on a tablet), as well as with some of what I deem to be more interesting jailbreak tweaks.

Let’s start thusly: iOS 6 disappointed me. Part of it goes back to what I wrote last year:

With each successive release having been a little more mature than its predecessor, iOS 5 has perhaps reached roughly the point of satisfaction that 10.4 Tiger had: plenty of features, not all of which you’ll use every day, and some you wish it had. But unlike Tiger, you’re largely stuck with what the OS has to offer. Extensibility mechanisms are few and far between. Apple has shown no sign of willingness to change that, and each passing year proves them more right in their conviction that they won’t have to.

And yet, 10.5 Leopard felt like a much bigger (if somewhat controversial — glass Dock, anyone?) leap than iOS 6 did. It’s not that it made the experience worse (to me, Apple Maps worked okay from the start, though I’ve found Street View to be far more useful and far less glitchy than Flyover, which isn’t really available here anyhow); it’s that people are using iOS devices more and more, in the “post-PC” way Jobs predicted, and in various ways, the OS hasn’t grown to accommodate for that. Hence, like I said, a bit of a repeat of last year.

Inter-app Sharing Workflows

Various design choices make carrying a bit of information from one app to another fairly cumbersome: typically, only one app will be actively running in a multitasking sense; only one app will be visible; mechanisms like Springboard, the app switching bar and the Notification Center are less about temporarily interacting with an app than they are about switching to it and fully bringing it frontmost; and each app lives in its own sandbox, including file management, so accessing a file you’ve created in another app isn’t as easy you might expect either.

iOS does provide a means of opening applications with URL schemes, enabling several sharing workflows. 3.0 and 5.0, respectively, added APIs to show sheets for sending off e-mail messages or tweets, so you won’t have to leave the app at all. And 3.2 introduced support for an Open With feature. The main limitation with these is that (the middle one excepted) they’re “push”-type workflows: you’re sent from one app to another, and then never back. Rather, what you frequently want is to “pull” information from another app, returning to where you had left off afterwards. The original app lacks a means of getting any result.

For some cases, app developers have become inventive to work around this:

But those aren’t desirable hacks, and many cases simply cannot be handled well at all. Tools such as 1Password and TextExpander come off as more cumbersome than their Mac counterparts through no fault of their own. Moreover, when integration is available, it is often limited to hardcoded, specific apps; you’d have a hard time launching a TextExpander competitor now simply because so many third-party apps have already been integrated with TextExpander itself in particular. You cannot, as an app, offer your services to other apps.

So, wanted: a means where app A (e.g., a word processor) can ask the OS for available apps of a type of service X (e.g.: text expansion), where app B in turn can register itself to offer just that, and where A can launch B with the special “bring me back my info when you’re done” parameter. Workflow-wise, it may make sense (and be less confusing to the user) to show the app’s relevant bits in a sheet; in particular, no navigation in the app’s UI should be possible.

Defaults

The built-in apps are hardly bad (unless you count Reminders, the UI of which clearly only happened in some nightmare of mine), but Apple won’t and shan’t try to cover all situations — they’ve made a conscious choice to make their apps simple, leaving plenty of room to allow third parties (or themselves, as in iPhoto vs. Aperture) to offer something more advanced. Some may prefer using the GMail web interface as their mail client, iCab as their browser, or Calvetica as their calendar. There’s APIs for accessing some or all of the same data, but there aren’t ones to set defaults. Most jarringly, opening a web link in some app will still launch Safari, unless the app happens to provide its own means of choosing a different browser.

This doesn’t affect me much, but one scenario where I recently saw this as a problem is wanting a locked-down browser for a kid without relying on Safari’s own rather limited Parental Controls, but rather by using a third-party browser that’s designed around kid use. Making that the default browser, and preventing app installation as well as launching of Safari itself through Parental Controls, ought to do the trick.

And if this capability were to arise, it would encourage third-party developers to build alternative apps we can’t even dream of yet.

Plug-Ins / Bundles

I know plug-ins go against Apple’s “everything is an app” grain that they’re apparently carrying over to the Mac as well, but they’ve already violated that principle in a few ways:

In addition to wanting an OpenVPN plug-in (sigh), there’s various obvious places where plug-ins would help:

The silo nature of “files belong to an app” isn’t for everyone, but it’s presumably here to stay. One thing that should alleviate the pain is system-wide search (see above). OS X has had this since 10.4 (though it really didn’t start working well for me until much later); resource constraints (e.g., battery life) aside, this arriving in iOS is hopefully just a matter of time.

In a sense, this will be more useful than on the Mac, due to so many native apps being available: search for a name, and see phone calls with them, their Facebook, LinkedIn, whatever profiles, your e-mail exchanges, replies and direct messages via Twitter, games you’re playing with them, and appointments you have with them. Search for a genre, and get the Wikipedia article as well as the iTunes songs or movies, or the books in iBooks or Kindle. Search for a subject, and get e-mails, articles, even news.

Text editing/selection

iOS gets this one so wrong, Apple’s own Pages has additional gestures to make it far less painful. Various jailbreak tweaks work similarly, and the whole thing screams for a UX overhaul.

Phone

While the phone app got some nice improvements in iOS 6, such as being able to set a call-back reminder or send a predefined text message response, it’s mostly the way it’s been since 1.0. It feels, perhaps to evoke familiarity, too much like a 90s’ era telephone brought to a touchscreen UI, ignoring technologies and capabilities like the Internet. It doesn’t even integrate with VoIP (though third-party apps have some limited hook-in abilitiy, such as being able to run in the background).

Eevn without a long-needed overhaul, though, there are improvements one could wish for:

Miscellany

There’s various smaller stuff — Mail ought to have OS X Mail’s better threading and junk filtering support; important toggles like Airplane Mode require far too many taps; Settings has gotten far too nested (maybe add a search field?).

You’ll also note that I skipped the current prevalent discussion entirely; that of 7 supposedly featuring a Jony Ive-inspired flatter UI. There’s not much for me to add to that discussion, really. Lastly, the discussion of whether Apple should add a Gatekeeper-like “allow me to run non-Store applications” switch is complex enough to warrant a separate post.

I think it’s a terrific OS. Let’s make it even better.

BrowserQuest

March 27, 2012

Well, there goes the rest of your day. (via @codinghorror)

Impressive stuff, and squarely in the shut-up-and-take-my-money category.

Updating the LG P925

March 26, 2012

(This is a slanderous, though brief, “haw-haw, those Android users!” piece, so skip if you love that OS.)

Via Gruber: LG P925 Driver Updates

Bullshit Presents

December 26, 2011

I’m familiar with cars for graduation. Christmas, not so much.

Here’s one to point out:

returning my kindle fire and getting an iphone…this is bullshit.

The English in most of the other posts is worse.

It’s my favorite because it reminded me of Louis C.K.’s “Everything’s Amazing & Nobody’s Happy” interview with Conan:

I was on an airplane, and there was high-speed Internet on it. That’s the newest thing that I know exists. And I’m sitting on the plan and they go “Open up your laptop; you can go on the Internet”. It’s fast, and I’m watching YouTube clips; I’m in an airplane! …and then it breaks down. And they apologize: “the Internet’s not working”.

The guy next to me goes: “Pfft, this is bullshit.”

Like, how quickly the world owes him something he knew existed only ten seconds ago.

What may have seemed over the top in Louis’s skit seems a lot more real now.

(via reddit)

Npackd

October 15, 2011

Regardless of how you feel about app stores, software repositories / package managers, stealth background updating, there’s no question the process of discovering software, keeping it up-to-date, and disposing of it if need be leaves much to be desired on most platforms.

Dependency tracking, for example, is great when it works, but frustrating if not impossible to deal with for mere mortals when it doesn’t. A central my-way-or-the-highway authority, as epitomized by Apple’s App Store1, leads to high quality (except when it doesn’t), but may also keep out programs you would have been interested in. Tools like Adobe ARM, Google Omaha and soon Mozilla’s equivalent constantly take up resources, open potential security issues of their own, and may make decisions against your will (what if you preferred the old version?), yet possibly still in your interest (what if you would have overlooked that security patch?).

A whole book could be written about this mess. It’s a situation where Desktop Linux feels, at least superficially, way ahead, and Windows dead last. To add insult to the injury of having to manually find and update software on Windows, it’s also the most likely OS where you might wnid up downloading something malicious.

However, that’s not the problem I had. I know, for the most part, which additional software on top of the OS itself and my own stuff I care about. However, I don’t necessarily know (and I certainly don’t care to keep track) whether each of those apps is installed and current on all machines I happen to be responsible for. That problem is irrelevant for most — why would you have more than one, or at most two (a desktop and a laptop), machines?

But perhaps you, like me, also take care of other machines — in my case, colleagues’ workstations, in-house servers, and servers at a remote data center. Plus, of course, all those virtual machines. In that case, you may be quick to say “well, why don’t you just use Active Directory, group policies and IntelliMirror to deploy the newest stuff”. I could, and I do, but it’s a pain, and it doesn’t really help at all for the fourth category: machines that aren’t local.

And did I mention it’s a pain? It’s not just Adobe who keep reinventing how Windows Installer is supposed to work; Microsoft themselves seem quite confused on the concept, too. Try deploying .NET Framework 4 via group policy, as a pure, single, simple .msi file (batch scripts are cheating). Or try keeping Adobe Flash Player up-to-date. Or, really, close your eyes, spin a giant wheel-o’-apps, point at one at random, and then figure out how to deploy it. This technology came 11 years ago with Windows 2000, and while it may save time in large organizations when granular control of who gets what matters, it simply doesn’t work well on a smaller scale.


Let’s scrap the idea of central deployment and instead get back to considering each machine individually.

What if we could have a Linux-style package manager in Windows? There are a few, actually. One, NuGet, has been generating some buzz lately, but is focused entirely on extending Visual Studio with libraries you want to use. Not what we’re looking for. With Raktajino-Packagemanager, we’re getting warmer; this one, however, is meant to be used for servers. I stumbled upon it because it was pre-installed on a machine from a hosting provider; perhaps it was written by an employee of theirs.

Npackd comes very close. By Linux standards, it’s rather limited: you can set a path prefix for all installed packages, and add additional repository sources. Packages can depend on each other, but there’s no customizing a package before installing it.

I’ve been using this for a week or so on my regular work VM, and have been 1) extending the somewhat limited selection using my own repository, and 2) pondering to what extend I could use this, at the very least, for that fourth category: servers. The default repository already comes with vital tools such as Process Explorer, for which I had previously used a batch file to keep it current; now, no more need for that.

A few issues are in the way:

Some minor issues mostly related to batch processing:

Ignoring the troubling side-by-side feature for a moment, I’d consider Npackd a net gain. There’s a command-line tool I haven’t played much with as of yet, and that may well be enough to let me accomplish the above four. Find a selection of packages, write a batch script, and push it to multiple servers.

But one can always dream of more, right?4

  1. I reject the notion that you could possibly trademark this.

  2. I get that Piriform has to make money. I just don’t accept the method.

  3. Sort of similar to Unix symlinks, though starting with Vista, NTFS also has symlinks.

  4. And if it weren’t written in C++/Qt, one could even contribute oneself to make the ‘more’ happen!

Stallman On Jobs

October 09, 2011

By now, you’ve probably read Stallman’s piece on Steve Jobs :

Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died.

As Chicago Mayor Harold Washington said of the corrupt former Mayor Daley, “I’m not glad he’s dead, but I’m glad he’s gone.” Nobody deserves to have to die - not Jobs, not Mr. Bill, not even people guilty of bigger evils than theirs. But we all deserve the end of Jobs’ malign influence on people’s computing.

Unfortunately, that influence continues despite his absence. We can only hope his successors, as they attempt to carry on his legacy, will be less effective.

Tristan opines:

Stallman is sober proof that idealism can be taken too far.

I agree, but there’s more to it than that. Jobs was an idealist, too; it’s just that the two have very different ideals. Design and freedom. They don’t contrast, but they do conflict. Give someone free reign, and they may be more inclined to do what they want. Ask someone to design something, and restraint and limitation — antitheses of freedom — are likely part of the result.

Stallman’s social interactions famously tend to be strange, if not distasteful, and there may or may not be medical explanations for that. At some point, however, you have to realize that putting differences aside and giving someone their final peace isn’t just an expected gesture of society; it’s a smart one.

Gates did it:

Steve and I first met nearly 30 years ago, and have been colleagues, competitors and friends over the course of more than half our lives.

Colleagues, competitors and friends. No better, more honest way of putting it. And Microsoft had their flags at half-mast for two days.

Google’s Vic Gundotra did it:

They have been a part of my life for decades. Even when I worked for 15 years for Bill Gates at Microsoft, I had a huge admiration for Steve and what Apple had produced.

But in the end, when I think about leadership, passion and attention to detail, I think back to the call I received from Steve Jobs on a Sunday morning in January. It was a lesson I’ll never forget. CEOs should care about details. Even shades of yellow. On a Sunday.

To one of the greatest leaders I’ve ever met, my prayers and hopes are with you Steve.

Samsung did it:

Chairman Steve Jobs introduced numerous revolutionary changes to the information technology industry and was a great entrepreneur.

His innovative spirit and remarkable accomplishments will forever be remembered by people around the world.

…and proceeded to delay an Apple-competing product launch. Socially considerate and likely economically smart at the same time.

There simply is no acceptable explanation on why Stallman can’t do it.

(Screen) Size Does Matter

October 08, 2011

Robo makes the point that Jobs’-return-era Apple starts off product lines in an experimental, prone-to-radical-changes manner, then eventually goes to refine it and iterate more subtly from there:

There's another Apple product pattern. It's been around longer, and it's longer-term. That pattern is this: Apple (and by "Apple" I mean "after-Jobs-came-back Apple") enters a new market, or makes an-after-Jobs-came-back model of an existing product for the first time, and we start counting there. The first few product generations tend to be more experimental, and very different from each other, but eventually Apple finds what works and they stick with it, and the design changes become much more subtle refinements.

The iBook and PowerBook G3 hit this point comparatively early — they both had curvy initial models, but with the PowerBook G4 and iBook they found what worked, and they spend the next decade refining their squared-off metal and plastic notebooks. Nowhere was the "early experimentation" phase more evident than with the iMac. The iMac G3 and G4 and G5 were wildly different from each other, but by the time we got to the G5 that phase has ended and the "where did the computer go" iMac stuck around for the next seven years and counting, getting nips and tucks more than ground-up rethinkings.

The iPod (classic) took four generations. Apple went from a mechanical scroll wheel to a touch-sensitive scroll wheel to a model with the buttons all in a row under the screen, but by the time they got to the click wheel they had it. They added a color screen and video playback and a metal front, but the iPod classic is still largely the same concept seven years later (again, and counting). It's, well, classic.

I think, with the fifth model, the iPhone has (coincidentally, or not?) ended its G3-G4-G5 phase. The potential shapes of the iPhone are more limited than that of the iMac, so the experimentation phase wasn't as crazy as the iMac's, but I'd still consider the weirdly plastic 3G/3GS the oddball iMac G4 of the range. :D I think the iPhone 4's antennae design was a watershed moment, analogous to the PowerBook G4 Titanium, and I think Apple will stick with it, and refining it. They'll make it a tad thinner, or narrower. But I think the multi-piece, squared-off, antennas-on-the-outside design is here to stay for the foreseeable future. They're not going to suddenly switch to a two-piece, curved-at-the-edges, iPod/iPad-style design — except maybe as a new low-end, prepaid-targeting model that would take over for the (two-piece, curved-at-the-edges) iPhone *3GS*.

All very true.

The 3G/3GS design felt like a desperate attempt to massively improve reception over the metal cage issues with the original, far more attractive iPhone. The 4 (and now 4S), then, came up with a superior compromise between thinness, sturdiness, battery life and reception. I don’t think anyone near Steve suggested “let’s eschwer the classy aluminum back with a glossy plastic one, for that will be cheaper1. It was about reception.

But there are several things with the iPhone that never did change. They got those right (or, rather, they saw the results they had been hoping for) on first attempt. The layout, for instance: with the exceptions of additions like a flash and front-side camera, and the replacement of the volume rocker with two distinct buttons, everything has remained virtually the same. Dock connector at the bottom, a speaker each to its sides, silent switch and volume buttons on the top left, headphones out (with bizarre limitations on the original iPhone) at the top left, lock button at the top right, camera at the back’s top right, and, of course, earpiece (and front camera, where applicable), screen and Home button, in that order, on the front. It’s iconic, and as far as Apple is concerned, is just right.

Not much experimentation going on there. They sure prepared well.

And not only has the placement remained virtually the same: so, too, have the dimensions. It’s always been 4.5 inches tall. It’s lost some width: originally at 2.4 inches, the 4 and 4S models went down to 2.31. And, par for the course with “thinnovating” Apple, it’s lost depth as well; from 0.46 to 0.48 (3G and 3GS) to eventually 0.37 (4 and 4S) inches. These changes are relevant for case manufacturers2, but — having to pick a compatible case aside — hardly for the user.

What’s changed even less is the screen. Its quality may have changed, but its size of 3.5 inches never did. Only its resolution has famously been doubled3 to enable the marketing term “Retina Display”, going from 480x320 to 960x640. At 3.5 inches, that’s 163ppi, or now 326ppi. That’s a lot of density.

The resolution change worked because, in legacy apps, you simply treat each pixel as a 2x2 grid of pixels, and it’ll look just as it would have on an older iPhone. In newer apps, you use higher-resolution pictures. For vector art and fonts, you get those changes for free. The frameworks pretty much do it all for you, perhaps at first often resulting in a mix of original-resolution and double-resolution. And developers were quick to supply higher-resolution artwork.

Consider a different resolution change: to show 720p movies while maintaining the 3:2 aspect ratio, they could bump the resolution further up to 1080x720. What would happen with existing graphics? If you scale them up, their pixels cannot be easily matched; a 2.25x2.25 grid could, at best, be interpolated with anti-aliasing. Jagged lines, or blurry overall image. Anything vector-based, including text, would once again be exempt, but it would still make for a terrible experience. And this time, developers likely wouldn’t be as quick to adjust: for one, the iOS platform has reached more saturation, where updates just aren’t as necessary any more, and also, Apple would leave the impression that they’re going to keep changing the resolution whenever they feel like it.

What of a screen size change, though?

This has come up not because there’s indication that Apple plans to change it. Nor has there been user feedback that I know of that says “I love my iPhone; if only its screen were bigger!”.

It has become a topic because of the competition. Neither Windows Phone (which hasn’t been shy to establish a high minimum requirements) nor Android appear to specific a minimum screen size, much less one that exceeds the iPhone’s 3.5 inches. An increasing number do exceed it, however. If there is an explanation of “this size works better for the user, because:”, I haven’t seen it. Rather, my money is on Marco’s speculation:

Android phones have been one-upping each other with screen size a lot recently. It’s an interesting tactic that seems to be working, at least relative to other Android phones. When comparing phones side-by-side in a store, the larger screens really do look more appealing, and I bet a lot of people don’t consider the practical downsides.

And, as a corrolary:

[People accustomed to large-screened Android phones] may view the [iPhone’s] smaller screen as a downgrade.

When, as a manufacturer, you have two major operating systems to choose from, and the device becomes mostly a commodity, reducing your product to ‘bigger is better’ is almost inevitable. (Unless you’re actually creative.) It happened with 90s’-era PCs and MHz numbers; it happened with 00s’-era cameras and Megapixel numbers; it’s happening with 10s’-era smartphones and, apparently, screen size.4

An angle to consider here is that manufacturers may not even realize the weirdness of changing the screen size. Apple appears to treat it as a constant, rather than a number of a spec sheet (though, to be fair, it’s exactly that on their Specs page). PCs surely kept increasing their typical screen sizes for quite a while. The Mac (1984) shipped with a 9-inch display. The LC, my first Mac (1992), had a 12-inch one. The first iMac (1998) had 15 inches. And just last week, we were discussing whether to get 22- or 24-inch displays. An iMac can now (since 2009) be had with a 27-inch display, and while that seems almost obscenely large to me, it’s clearly appealing to some.

Screen resolutions, too, increased. 512x342. 512x384. 1024x768. 1920x1200. 2560x1440. And so, too, did the amount of space in our GUI. Mac OS’s menu bar height has never changed much5, but what used to be 5.8% of your room to work with is now, on the biggest iMac, a mere 1.5%. Similarly, while icons have gone from 32x32 to 48x48 in some places (such as Windows Explorer’s default icon view, starting with XP), the resolution has increased greatly; the area an icon takes up has changed from 0.6% to a tenth of that. And studies link such increased space with enhanced productivity.

But when Apple chose to ship the original iPhone with a 3.5-inch screen, did they do so because 3.6 inches would have been prohibitively expensive? I find that hard to believe. My explanation has always been one of practicality.

[I]t turns out that when you hold the iPhone in your left hand and articulate your thumb, you can reach almost exactly to the other side of the screen.

There’s a lot of things I can’t do with just one thumb on the iPhone: type several words of texts, do pinch-to-zoom or other multi-touch gestures, or precisely move objects around.

And yet, so much can be done just like that, in the tram, standing, the other hand gripping a pole: skipping to the next track in iPod, swiping through the list of unread e-mails, picking one, scrolling down and — if important — moving it to a different folder, and even simple search queries in Google. I bet the people mocking the Mac for shipping with a single-button mice didn’t see single-thumb-operating a telephone to listen to music, read messages and look up stuff on Wikipedia coming.

A bigger screen would take away this possibility. As illustrated by Dustin Curtis, you can barely reach the center of a 4.21-inch screen. It eschews simple for forcedly immersive. It makes you deal with the device, all of a sudden.

For humor’s sake, though, let’s consider the two ways a screen size change can occur.

One way would be to keep the resolution as-is, and simply make elements bigger. This assumes preserving the unusual 3:2 aspect ratio, and square pixels6. According to Apple:

The comfortable minimum size of tappable UI elements is 44 x 44 points.

Below, you can play with a few different screen sizes (in Safari 5.1 and Chrome 14, anyway), and see the effect on pixel density and, consequentially, individual pixel size.

And now: your very own 960x640 screen!

(I can’t calculate, by the way. According to Apple, the pixel density should be 326ppi, not 330. And according to various sources, the physical size should be 6.9mm, not 9.6. While the former could be explained by the iPhone’s screen not being exactly 3.5 inches diagonally, the latter discrepancy baffles me.)

This approach makes pixels larger again, somewhat negating the benefits of the Retina Display, although we’d have to go all the way to 7 inches to approach the original iPhone’s 163ppi. Advantageously, it makes the display more accessible to those with poor eyesight, and makes controls easier to interact with to those with large hands. As far as detriments go, it’s less likely to fit in your pocket, and a single hand of yours is less likely to, as explained above, reach controls edge-to-edge.

A case could be made, then, that Apple should offer this as an option. There’s precedent: one revision after the 12.1-inch white iBook design was introduced in May 2001, they added, in January 2011, a 14.1-inch option at the top end with nearly identical specs, a bigger screen at the same resolution (1024x768), and a higher price tag. This carried on until May 2006, when both screen variants were replaced by the 13.3-inch, 1280x800 MacBook.

But I’ll believe it when I see it.

Changing the resolution

Instead, let’s discuss changing the resolution. John Gruber’s latest seems to focus entirely and implicitly on maintaining the resolution, which strikes me as a Strawman:

If anything [bigger screens are] surely easier to make, as the pixels are less dense.

Changing the resolution opens up new possibilities. We’ve seen this first-hand with the iPad: it being 9.7 inches, and being 1024x768, has arguably led to entire new classes of programs. So far, though, all evidence points to in-between devices being unpopular: neither 5-inch ones such as the Dell Streak nor 7-inch ones such as the Galaxy Tab have enjoyed anywhere near the same success as the ~3-4-inch and 10-inch form factors. They’re neither here nor there.

Perhaps a slight tweak in that direction would work, though? Let’s keep the pixel density (and aspect ratio), rather than the resolution, the same this time.

This time: your very own 326ppi screen!

At around 4.5 inches, we can already display the equivalent of a typical 13-inch laptop screen. Slightly above that, at 4.7 inches, we can display the full 720p resolution of 1280x720.

For existing apps, changing the resolution presents us with challenges. Unlike with a desktop environment, the iOS UI is designed around a single-window/full-screen approach. At most, you have a status bar at the top; other than that, everything on the screen is controlled by the current app.

For games, this has long been common. Making a game full-screen is a common choice if only to provide an immersive experience. You can run Tetris and Sudoku in a window (I frequently do), and perhaps even a casual round of Portal, but for most games, it wouldn’t work well. For other kinds of programs, however, the assumption used to be that, given a certain amount of screen estate, the benefits of seeing multiple stacked and/or tiled windows outweigh those of coherence.

The iPad is unusual in that it provides what used to be a common resolution of laptops just half a decade ago, and of desktops half a decade before that, yet limit this to just one window. Palm webOS, BlackBerry PlayBook’s Tablet OS, and soon Windows 8 follow this approach, whereas Android Honeycomb 3.0 disagrees with it, allowing multiple “fragments” to co-exist. But even if Apple were to increase the screen size and (proportionally) resolution, it wouldn’t diverge sufficiently for such an environment to work well. And after all, they’ve already made this design choice, towards the other direction, with the iPad.

That leaves us with two other ways for an increased resolution to work: expanding the status bar, and giving the current application (which, in the context of iOS, might as well be synonymous with current window) more room to work with.

In fact, much like the Mac OS menu bar, the status bar would grow automatically. Even if the height were to remain the same, more width would allow for an increased amount of icons, or perhaps more text, such as the date in addition to the time. While jailbreaking tends to go overboard, it does provide some inspiration of what could be done: icons for new mail, the weather, or unread notifications. An iOS status bar icon takes up 16x16px, plus a few pixels for padding. Since each 0.1 inches of screen size nets us about 27.5 more pixels, that means even one such bump would give us an additional icon. Not bad. This is all assuming a portrait orientation; the landscape orientation already has far more space regardless.

You could also grow the status bar vertically, but I see neither the pressing need nor a practical approach. Increasing the icon size seems unnecessary. Adding a second row adds visual complexity. Right now, the information density and quantity seems close to just right, and growing it horizontally would help with the latter.

In-app layout

Lastly, the application itself. This appears easy in some cases: just give Safari a larger viewport, and perhaps a sixth toolbar icon. Just give Mail additional e-mail summaries, more text rows, and, too, a sixth toolbar icon. Embiggen iPod’s album art, and take another of the toolbar buttons offered in “More”.

Not so fast.

Much as we’d like to believe technology is perfect7, Cocoa Touch does not in fact have anything approaching a flexible layout manager, where you tell it “have a navigation bar with a fixed height at the top, a table with just however many rows will fit underneath, and finally a fixed-height toolbar at the bottom” and have an iOS-typical navigation/table view/toolbar UI. Elements are largely positioned by the pixel (though, in the case of the Retina Display, a distinction of “device pixels” is made, so you generally don’t have to worry about that), and entirely differently for the iPad. This can be tedious, but leads to a pixel-perfectly-designed result. There’s a concept of “springs and struts”, which allow for some flexibility, but by and large, positioning is fixed.

By contrast, some UI toolkits favor a more automated approach. They tend to deal in percentages and multipliers, not pixels; in relative, not absolute positioning; in an automatic flow, where whichever control comes next is positioned after the current one. This may not always lead to exactly what has been intended, but has lots of advantages, such as localization: a lot of software is written in English first, then translated to others. English words, however, tend to be relatively compared to other languages’ equivalents. The layout may have fit exactly for the words ‘tram stop’, but ‘Straßenbahnhaltestelle’ doesn’t just sound much wordier and take up more syllables; it also clearly takes up more space.

Apple hasn’t ignored this problem, and in 10.7 Lion, has introduced Autolayout. (See where I stole that word example from?) However, its release notes call it “not finished yet”, and it won’t be available in iOS 5.0’s SDK (yet).

It is quite likely that a future iOS SDK — perhaps 6.0’s — will include this, and it will allow for more scalable UIs. In some cases, it may eliminate the need for iPhone/iPod touch and iPad UIs to differ at all, but I remain skeptical of this. Developing with each individual device in mind — custom-tailoring for it, if you will — should ultimately benefit the user more than having something rapidly available everywhere. It would still be leaps and bounds better than the almost pointless letterboxing / scaling ability of the iPad to run iPhone applications (there’s a reason you almost never hear of it), though, and, perhaps, if cleverly combined with fixed elements, may lead to a richer and faster-to-develop experience for everyone.

Even then, however, many current applications would require significant changes to take advantage, and otherwise once more will suffer letterboxing or scaling. One makes for very awkward, sort-of-Fitts’s Law-violating user interaction. The other, which unlike with the iPad cannot be done in a grid of two-by-two pixels8, would look and feel ugly.


One answer to “why do Android phones keep bumping up their screen size, when iOS doesn’t?” may be, as posited by some, a contest to out-spec each other. Another may be: because they can. Right now, iOS can’t, and as the library of apps grows, which it rapidly has, the longer they wait, the less likely such a change becomes.

  1. Or if they did, they were probably looking for a different job afterwards.

  2. Who I assume are currently scrambling to regain money lost on the alleged iPhone 5 design that never was.

  3. Technically, quadrupled, depending on whether you count each dimension.

  4. Luckily, we haven’t entered megainches yet.

  5. It apparently used to be 20 pixels, and is now 22 pixels.

  6. Non-square, rectangular pixels do exist, such as in television.

  7. Stop laughing.

  8. Surely, nobody is suggesting increasing the resolution another 100%.

TextMate 2 Alpha

September 27, 2011

To computer afficionados at large, probably the greatest vaporware of the past decade (if not of all time1) was Duke Nukem Forever. There’s an amusing list of things that happened between DNF’s original announcement and what appeared to be its final nail in the coffin twelve years later, with items like:

Now, as we all know, DNF did end up getting released, two further years later, and was critically panned. I haven’t played it myself, but the consensus appears to be that it would have been a so-so game had it been released in a remotely sane cycle; all the build-up and hype, however, weren’t remotely justified.

But it’s not for lack of trying. If anything, Wired’s article gives the impression that DNF’s original producer Broussard was apparently trying to hard. That article, too, prematurely pronounced DNF dead. Perhaps everyone would have been better off?


To Mac users, or at least Mac developers, a less crass example of vaporware is TextMate 2. It is, as Marco Arment said, a textbook example of the second-system effect. It tries to fix too many perceived flaws — and perhaps perceived mainly by its developer, not by its users — of the original TextMate, and in doing so fails to see the light the day. Or at least has. Thus far.

Hard to believe as it may be, there’s been a mailing list post that we’re not supposed to link to (which may be moot now?), and, a few days later, a blog post without such a disclaimer.

There will be a public alpha release [of TextMate 2.0] this year, before Christmas, for registered users.

If it were me, I’d publish such a vague, yet limited deadline to force myself to actually have something to show at that point. An alpha doesn’t have to be a whole lot; it doesn’t need to be feature-complete, it certainly doesn’t need to be stable, and even more so, it will probably come with no liability in terms of data loss whatsoever. And yet, it’s something. Maybe just enough to get people excited again. Consider that, at some point, it was controversial that 2.0 will require Leopard. These days, almost half a decade later, I wonder how many even use TextMate on anything older than 10.6 Snow Leopard, let alone 10.5 Leopard.


It’s not so much that TextMate 1 doesn’t work. It does have its flaws, though. No split view, undo being per-character, and synchronous I/O easily locking up everything and making remote-editing of files not worth trying come to mind.

So, as far as I’m concerned, I’ll go with the “cautious optimism” from another troubled software project. (I’ll leave it up to others to argue how that turned out.)

  1. Sorry, Kanye.

System Settings

July 23, 2011

One Ben Cooksley, KDE System Settings Maintainer is not amused that GNOME now has an application called System Settings as well, and has launched a “formal complaint”:

As you may or may not be aware, the name “System Settings” for an application is currently in use by KDE. A recent renaming by your GNOME control center developers to this name creates a naming conflict.

[..]

As KDE occupied this name first, it is ours as a result [..]

Someone explain to me how this is any better than Apple holding a trademark on “app store”.

Someone from Ubuntu then goes into more detail about these alleged “severe problems for users”; “numerous problems for users on both sides”:

To be more specific about the problem, installing kde-workspace to a GNOME installation results in 2 indistinguishable apps named System Settings and 2 named System Monitor. On Ubuntu at least, if I want the GNOME version, I have to remember to click the first System Monitor but the second System Setting which is awfully frustrating.

You’re installing two desktop managers side-by-side, and your biggest problem is that two applications (with the same purpose1) bear the same name?

This thread also delivers on the predictable, usual debate over just what constitutes an operating system:

So far we are running the same OS (for most of us it is Linux, but it can be Solaris or *BSD). DE != OS.

Yes, I’m sure drawing that distinction (whatever it may be: Linux, contrary to this quote, is a kernel, not an OS) makes users feel right at home.

Luckily, some sanity from GNOME’s side on the matter:

I very much doubt users will be any less confused when confronted with “System Settings” and “System Preferences”. We should work on shared groundwork so that our settings are interoperable. If a user has to set his language in two different applications just because he happens to use applications written in two different toolkits, we have failed miserably.

[..]

You just can’t expect to own generic names across desktops.

When two people quarrel, a third rejoices. And a fourth. And a fifth.

(Via)

  1. Granted: GNOME’s “System Settings” and KDE’s are each likely to focus on their own respective perspective, but from a user’s point of view, these differences are entirely technical, and should neither exist nor matter.

Another One Joins the 27 Club

July 23, 2011

Amy Winehouse died, as did, apparently, many rock musicians at her age1.

It’s rather tragic that I’ve only now decided to take a look at some of her songs, such as Back to Black.

Via: 1; 2

  1. And, incidentally, mine.

How Would You Like Your Graphic Design?

July 23, 2011

Nothing new to the project triangle, I suppose (and applies to tons of areas, such as, hey, software development), but people never seem to learn.

(Via the between-brilliant-and-agonizing Clients From Hell)

Retaliate With More Democracy

July 23, 2011

G.W. Bush, 9/11: “We’re gonna hunt you down.”

Stoltenberg, 22/7: “We will retaliate with more democracy”.

I’m proud to be Norwegian.

It’s a shame more leading politicians of the world can’t (or won’t) think like this in light of tragedies like yesterday’s attacks on Oslo.

(Via Twitter)

The Ennnnnd

July 19, 2011

In other programming language news, here’s one proposal for Ruby:

I’d like to propose introducing a special keyword, en(n+)d. Using this keyword, we can rewrite the above example like this:

module MyModule
  class MyClass
    def my_method
      10.times do
        if rand < 0.5 
          p :small
        ennnnnd

I.e., for each block1 to close, insert another n within end.

It’s so crazy, it almost makes sense. Per Tay, perhaps the best argument again this:

Yeah, I don’t like this change. Mostly because that huge chain of ends is supposed to look ugly; it reminds me that my code is far too nested, and should be reworked and written properly.

I’d prefer bad code to look ugly.

Hiding bad code doesn’t make it go away. (Huge try/catch blocks, anyone?)

But hey, this would work for XML, too!

<////////div>

Just sayin’.

(via @shadowofged)

  1. Not in the sense of Ruby’s blocks.

Deprecating PHP's MySQL extension… eventually

July 19, 2011

Don’t panic!

Indeed; there are likely plenty of PHP developers who would panic if their precious MySQL extension were to be deprecated. But how many more would rejoice?

It doesn’t even understand the notion of prepared statements1, so even if it weren’t for the scores of my-first-database-bound website tutorials that inevitably lead you to SQL injection hell, you’d have little choice. You’d have the choice of mysql_real_escape_string and brethren, but that’s a terrible idea.

A language may not always be able to enforce good practices, but it should at least advocate them. Leaving an API in that requires bad practices is irresponsible.

(Via reddit)

  1. A.k.a. parameterized queries.

Fleet Commander

July 18, 2011

If it weren’t for the inevitable hand fatigue and inpracticality of playing on the tram, this would be perfect:

Arthur Nishimoto is a graduate student in the University of Illinois at Chicago’s Electronic Visualization Laboratory, who developed a real-time strategy game to be played on a wall-size LCD screen.

(Via rands)

Sony's Captcha

July 18, 2011

There’s making a CAPTCHA annoying, and there’s making it too easy for computers to recognize. But apparently, there’s missing the point, too.

Unfortunately Sony missed the entire point of a CAPTCHA. Instead of using an obfuscated image which is difficult for computers to recognize the characters, they include the CAPTCHA’s unobfuscated characters in HTML and use CSS and JavaScript to make the characters appear slightly distorted.

(via Peter Hosey)

Growl Spam

July 14, 2011

Almost a miracle this hasn’t happened sooner:

Wow, Spotify uses Growl to spam an advertisement.

Of course, if you want worse, there’s always Airpush.

App Store FUD

July 14, 2011

I don’t even know where to begin on this one.

It wouldn’t even have been that hard to come up with compelling and honest argument for Web apps (e.g.: always up-to-date, run on multiple platforms, no installation required). Instead, they come up with ones that apply equally (loading times? “peak times”? If anything, those apply less to a locally installed app), and ones that are just downright bizarre, unlikely scare scenarios (“reload if device becomes unresponsive”? “may crash on first attempt”?). And that’s ignoring the benefits of a native app, such as better integration, more comprehensive offline capabilities, and curation.

The real shame is that some will buy into it.

(via schwa)

Unicycling

July 14, 2011

And an extreme take at it, too. (via @nibroc)

I'm gonna Patent Patents

July 13, 2011

Looks like IBM has essentially patented patent trolling. (via @arepty)

Clearly, Google has a lot of catching up to do on this whole be-a-dick-about-patents business. Haven’t they read the memo? No, seriously; they may have a problem of being too non-evil on this one.

Me, I’ll go with Stallman on this one (bet you didn’t see that one coming): limit copyright to five years, period. While we’re at it, let’s do the same for patents. It still gives creatives, inventors, businesses plenty of headstart, while at the same time allowing for the general public to benefit.

Apple & Pros

July 01, 2011

So, FCP X happened.

That is: Apple released a product called Final Cut Pro X, which they market as a major upgrade to version 7. But both technologically and spiritually, it’s more of a new product than an evolution, and unfortunately, that’s not universally regarded as a good thing. Accusations are made, refunds are demanded (and, in some cases, granted — despite a sales-are-final policy), petitions are signed (crickets), and everyone is suddenly an expert on video editing; particularly as it pertains to demands of high-end cutters.

The new version lacks a ton of features from distant-cousin predecessor; as I understand it, in some cases (like multicam editing), the latter was even good at it compared to the competition. To a point, it’s history repeating itself. Over and over. The closest parallel in Apple’s own line-up is iMovie; version ‘08 sported a radically different look-and-feel compared to version HD, and many were none too pleased about what was nowhere to be found any more. (A timeline, for example. A video editing program without a timeline seemed downright blasphemous.)

Or, looking further, there’s products like the iPod nano: it replaced the hugely successful iPod mini, came with 50% less capacity and no more accessory port, and was far less sturdy. (Plus, no more colors.) The iMac came without serial ports or ADB, and didn’t even have, gasp, a floppy drive. Mac OS X, as it initially shipped, had no CD burning or DVD reading (this was in March 2001), was unbearably slow and unstable, and broke with many of Mac OS Classic’s conventions. (And while I personally didn’t mind, a friend of mine wouldn’t stop whining about the excessive pinstripes.)

Adobe InDesign 1.0, too, was not very popular among the existing base of Quark XPress users.

Here’s what these examples have in common:

For its first two or three years, a sizable group of people wanted Mac OS Classic back. (Remember how Kuching discussion there used to be about the oh-so-flawed Dock? Now, look at Windows 7 and Ubuntu’s Unity desktop.) Now, it’s firmly entrenched as an excellent OS all around. The iPod nano eventually got far more capacity, as was inevitable, and colors came back, too. Nobody cares about floppy disks any more, and the iMac’s reliance on USB was, we can safely say 13 years later, prescient. Quark did a great job destroying their huge market lead and handing it to Adobe on a silver platter; they, meanwhile, kept improving InDesign quite a bit. And as for iMovie? Features in versions ‘09 and ‘11 like precision editing make it quite popular. Now, it even runs on an iPhone, making for a unexpectedly powerful, versatile video editing capabilities on a phone.

So what of FCP? If you only skim the reports, I can’t blame you for the impression that it’s heavily dumbed down and entirely worthless for professionals. Its lead, however, is Randy Ubillos — who also created the first three versions of Adobe Premiere, and the Macromedia project “KeyGrip”, which later became the original Final Cut Pro. In other words, it’s probably not a case of having the wrong guy in charge. It may however be one of priorities. Says Gruber:

I think Apple plans for Final Cut Pro X to grow from where it is today to eventually meet the needs of high-end pros. What this release shows is not that Apple doesn’t care about the pro market at all, but rather that they don’t care enough to prevent Apple from releasing a version that pros can’t yet use.

Agreed. I’m torn on the “care” phrasing, but given that Apple has idiotically even stopped offering the old version altogether, I may have to swallow it.


There’s a bigger, more systematic story here, though. Apple doesn’t really want a Pro distinction. People have been calling the new version “prosumer”, also pointing to the fact that it replaces Final Cut Express’s precious price point. And Apple doesn’t want an Enterprise distinction either. Here, people point to the discontinuation of Xserve.

It’s true: consumer products make for more volume. In that sense, bean counters in Cupertino may prefer them. But I think that’s a minor concern. The big one is empowering the user. Rather than convincing, as Microsoft, IBM and HP may have been wont to do, corporations why iPhone deployment makes sense for them, Apple release a product which employees and bosses alike wanted, badly, no matter what the head of IT thinks. It’s not so much “Pros” that Apple doesn’t care about. It’s interaction and compatibility with the existing world of workflows and policies. They’d much rather create the next big thing to wow you than worry about whether it works well with what you already have. That sucks if you rely on the present tense a lot, which chances are you do. But it rocks if you can spare 20% of your time living in the future, slowly yet boldly sarin to move away from the crufty conventions we keep on creating year after year.

The next time someone argues that Apple doesn’t care about the Pros, consider this: they care about creating the next generation of Pros.

Two Sides of a Fight

November 14, 2010

The liberal fights with a fencer’s foil. Mincing the opponent’s argument, the liberal tries to score with quick, precise jabs using intellect, wit, and facts.

The conservative fights with a samurai sword. One heavy-handed hit and he cuts his opponent in half. No facts needed, just the adroit use of ignorance to persuade the masses. ‘My opponent’s gay!’ Or ‘Family values!’ Little nothings that score a bigger hit with the masses than all of his or her opponent’s jabs, which might sting, but aren’t fatal.

Ah, anti-intellectualism. Source

Footnotes

October 07, 2010

So, I wrote my own nanoc filter to do simple footnotes1, roughly in the vain as the wp-footnotes plug-in I had used earlier. The code is relatively simple and generic, so here goes:

class FootnoteFilter < Nanoc3::Filter
  identifier :footnote
  type :text

  def run(content, params={})
    content_add = ""
    i = 0

    newcontent = content

    content.scan(/<footnote>(.*)<\/footnote>/) do |match|
      id = "footnote-#{@item.identifier}-#{i+=1}"
      newcontent =
        newcontent.sub(/<footnote>.*<\/footnote>/,
        "<a href=\"##{id}\" id=\"#{id}-back\"
        class=\"footnote-link\">#{i}</a>")
      content_add +=
        "<li id=\"#{id}\""">#{match}
        <a href=\"##{id}-back\"
        class=\"footnote-backlink\">↖</a></li>"
    end

    if content_add != ""
      content_add =
        "<ol class=\"footnotes\">" +
        content_add +
        "</ol>"
    end

    newcontent + content_add
  end
end

Put that somewhere in your lib/ folder as, say, FootnoteFilter.rb, and reference it in your Rules — for instance:

compile '*' do
  filter :erb
  filter :kramdown
  filter :footnote
  layout 'default'
end

Now, have a footnote2, simply by wrapping the text inside <footnote> tags.

  1. Like this one!

  2. Here’s another!

Libertarianism

October 06, 2010

Only two noteworthy things happened this week:

Via @alahmnat comes a story of privatization of community services gone — if not ‘wrong’, then at least weird: Tennessee County’s Subscription-Based Firefighters Watch As Family Home Burns Down

For what it’s worth, I don’t agree with the “Radical Right-Wing Agenda” heading. It’s not so much that conservatives are becoming increasingly libertarian; it’s that, alas, pretty much all mainstream politicians are. There’s nothing inherently conservative about you’re-on-your-own ideas, though they are, of course, further away from socialism than from paleoconservatism.

But, what’s wrong with this picture anyway? If you ask the mayor, nothing!

[City Mayor Crocker] told them that, after all, “if an auto owner allowed their vehicle insurance to lapse, they would not expect an insurance company to pay for an unprotected vehicle after it was wrecked.”

He has a point, though he probably doesn’t know what it is. There’s no logic behind emotion; no ratio behind compassion.

We may not think of insurance agents as among the more humane jobs, but Crocker’s analogy is off — this would be akin to an agent driving to the wreck as it’s happening, and still deciding not to help in any way, which has much more to do with their profession than with whom they’re getting paid by.

But as a self-professed Christian (original page apparently deleted by now), one would assume the mayor does know a thing or two about such values. Perhaps it was the fact that homeowner Cranick was suddenly willing (and thus able) to pay “whatever it would take” that made him undeserving of compassion? Would the story have been different had Cranick in fact been too poor to pay the annual fee?

Or what if someone had been trapped in the house?

It shouldn’t take stories like this one for people to stop treating human beings as components of a business transaction.