2011.05.05

Some thoughts on Ubuntu Unity

A lot has been said and written about Ubuntu Unity, the new ‘shell’ that’s replaced the ‘classic’ default GNOME desktop in Ubuntu 11.04. Despised by many that interpreted Canonical’s break from the ‘open-source’ norm of restricting modifications to upstream platforms to a bare minimum, as a threat to the upstream projects’ existence (a valid point to an extent), that found it to be half-baked and offering little more (if anything) over the classic desktop and a couple of additional programs (e.g. a Dock, a launcher etc.) while much slower and kludgey (a totally valid point, but it’s a 1.0), Unity is here to stay.

It is true that, despite Shuttleworth’s ramblings on his blog, most of Unity is hardly innovative. Most useful things in there can already be found in most modern desktop environments (including some linux desktops) while Unity’s implementation of those very features is hardly the best. But there are also some unique offerings that are different, such as lenses and the proposed (but not yet included, thankfully) windicators. The question there is: are those features really useful? Are they well thought-out?

I think not. Take for example desktop search, a hot subject in mid 2000s desktops that’s been largely solved in an exemplary way in OS X by Apple’s Spotlight and a number of third party tools on that platform (LaunchBar and then Quicksilver are prime examples of early game changers), and even Windows 7 to some extent through the built-in search field in the start menu. Then, with five years of hindsight, Canonical decides to make things somewhat harder for users by exposing the search context to the user in the form of completely separate ‘lenses’ as opposed to keeping the distinction internal (in the same way OS X does) and presenting filtering options in an innovative way. Put it simply: I’d much rather have a single search field, ala Mac OS X’s Spotlight that searches for my input text across ‘data domains’ and contexts and returns useful, filterable lists of data, than the frustratingly badly designed ‘lens’ concept that forces a clear separation of searches while taking up screen real estate and wasting the users’ time with additional clicks and keystrokes.

Which begs the question: why on earth did the fine people at Canonical make such a bad design decision, when the stated mission of Unity was to streamline the desktop while taking less space etc. and at the same time there are numerous implementations of search/launch applications (even in linux) that work significantly better than Unity? Were they afraid of being labelled copycats? Is that worse than been called bad designers?

The same can be said about the new ‘global menu’ and AppIndicators that replace Gnome panel in Unity. Having few replacements for the staple Gnome Panel widgets of yesteryear is fine, given it’s a 1.0. Having botched the whole concept of a global menu through inconsistencies when windows are maximised and in multi-display scenarios betrays a badly designed (viz. not just incompletely implemented) system that shouldn’t have been out in the first place.

Unity has divided the GNOME community by introducing a new shell on the world’s most popular linux distribution. While it’s true that the state of linux desktop has been moving frustratingly slow for a number of years and that a quasi-open project, funded by a commercial entity with a focus on usabilty and æsthetics — exactly like Unity is on paper — could help accelerate its development and help reach parity with the two main desktops in some of the more difficult areas where linux has been falling back over the years. Still, Unity is largely incomplete, it’s missing many of the configuration options and functionality that linux users are used to — nay, demand — and, sadly, what’s there betrays a rushed, badly designed feature set that should never have gone past alpha inside Canonical, let alone be part of the world’s most popular distribution.

3 comments


» Javaless Guardian

Guardian.co.uk is switching from Java to Scala. I’m surprised it took so long and that other Java shops are not following en masse — it could be because of how different and esoteric Scala can be, especially to Java programmers. The linked infoQ article contains an interesting discussion with the Guardian folks.

Programming enterprise web applications (or anything, for that matter) in Java is painful for anyone mature enough to have experienced the wealth and breadth of tools out there, given how primitive, verbose and unproductive it is, and how much it caters for the lowest common denominator of a programmer. That’s not to say that Scala is the best choice for everyone, let alone those not starting from scratch, but given the Guardian’s existing infrastructure and systems, I guess that it’s the best choice they could’ve made.

2 comments


2011.03.25

My Ten Years With Mac OS X.

Mac OS X 10.0 (Cheetah)Ten years ago, on March 24th, 2001, Mac OS X came out. A first, publicly available, one point oh unpolished version of Apple’s ‘next’ (pun intended) operating system. An operating system that Apple had been trying, in one way or another, to create for more than ten years. Remember Pink? Taligent? Copland? Gershwin? Mythical codenames to those that heard of them in the 1990s of either projects that promised amazing experiences compared to Mac OS Classic and that were never finished or released as planned, or spun-off products that died after a few short years. Mac OS X, what finally became a cornerstone of Apple’s platform well beyond the Mac and a catalyst of its success in the 2000s was a reincarnation of NeXTSTEP in Apple’s colours. Fusing NeXTSTEP’s core and frameworks with the Mac OS of old as one product that didn’t exactly know itself. A new skin, the same — amazingly advanced for their time — underpinnings.

In this short article I will describe, in summary, some experiences with Mac OS X from the point of view of a software engineer as opposed to a user, over the past ten years: The initial chaos of integration, Apple’s flirtation and dilemma with Java, the modernisation of Objective-C, the eventual coherence of the APIs and the extension of the system to support Touch in a way that was never achieved before.

NeXTSTEP frameworks used Objective-C. It was a language unknown to 99% of programmers out there in 2001. I had only heard of it while fiddling with GNUStep a few years earlier. In the early 2000s you could still find C++/Corba programmers in major service companies (as opposed to large software houses or systems development divisions) and Java was only starting, slowly but increasingly, to become the preferred platform for enterprise software. I remember meeting amazing and suitably eccentric software engineers — not merely the subpar ‘developers’ that are increasingly common nowadays in service/enterprise environments — that proudly proclaimed ‘Java is for girls!’ and other elitist, sexist jokes like that. Anything less than Alexandrescu and Sutter-class C++ was unacceptable to them. Knowledge of x86 assembly was standard among their friends. How could a person like that appreciate Objective-C? I felt comfortable hanging out with those people because I had gone through the rings of fire of learning, liking and using assembly, ‘high-level’ [insert CPU here] programming (irony!) and C/C++, but I also enjoyed the elegance and simplicity of Objective-C and Cocoa for rapid application development.
»

2 comments


» What about {Angle,Diamond} gradients?

In this draft CSS3 spec, preliminary support for gradients is defined. Where are diamond and angle gradients? They may not be used as much as the others, but I find it weird that they are not added to a newly spec’d standard, given that it’s not that hard to implement them.

comments

» The Dream Machine

An online adventure, graphics made from clay and cardboard. Two guys, two years in the making. Amazing æsthetics, seemingly a great story. Play the first chapter for free, and buy the game for around €14. It’s worth it.

comments


2010.12.17

The spirit of the community (AOSP 2.3 source is out!)

Android 2.3 was announced a few days ago. The previous day, CyanogenMod 6.1, the most popular community mod was released, based on Froyo (2.2). And today, just a short two weeks after the announcement, the source code for the latest version of Android is being released!

The release marks the end of the 2.x era, with Google, most definitely, working hard on the 3.x series aimed for release in the first quarter of 2011 and — hopefully — taking the fight with iOS up a notch. Just an hour ago cyanogen posted this on twitter:

If you need me, I’ll be locked in my room for the next 3 days. #gingerbread

I feel that right now that’s precisely what makes Android sell, and by extension the popularity and characteristics of such projects give many clues on the demographics of those buying Android devices.

In other words, the ‘magic’ of the platform is its rapid evolution and by extension its community (a community that is largely technology oriented), something not to be found in HTC’s or Samsung’s wanna-be iPhone devices (or their mediocre software), Sony Ericsson’s lifestyle apps or Motorola’s ‘macho’ Droid phone and its seriously bad Motoblur. These are commercial parts of a nascent platform that — until now — enthuse few outside the technology community.

Stuff like CyanogenMod are exciting because they evolve extremely fast and at the same time let your imagination run wild with features that half-baked commercial Android ‘flavours’ couldn’t never have. A combination — and even the ‘controlled’, sterile in a way, yet amazingly polished environments like iOS lacks.

And this is, sadly, something that most major Android device manufacturers don’t get, judging by the effort they put in locking their products down, the amount of crapware they bundle with them and the restrictions they place to their customers.

By the way, if you’re using a supported device, like e.g. the HTC Desire, I recommend you get rid of Sense right now, get CyanogenMod, or another mod if so you prefer, and turn the damn thing into a usable gadget. You won’t regret it*.

*If you do, I won’t be held responsible for any damage you may cause to your device.

1 comments

2010.12.07

Chrome OS and Cr-48

Still watching the Google Chrome Team Livestream. Google is on a massive release streak that clarifies their strategic outlook for the next two years. In two days we’ve had: Android 2.3 and a short Android 3.0 sneak-peek, the eBook store, (V8) Crankshaft, Chrome Webstore and Chrome OS.

The Store.

Chrome Web store

With the Chrome Web store, Google is attempting to replicate the AppStore model on the Web. From the point of view of a Web user, I find it useless, or in other words a glorified bookmarking system, coupled with a payment processing system and proprietary functionality that ties everything to Google; most of the things that the Chrome Web store offers are already here, although they are not offered by a single company. Payments, for example, take place all the time through trusted third-party payment processors, including Google. Discovery of new sites/apps happens daily through social bookmarking sites like Digg and Reddit, a number of trusted publications, word of mouth etc. There’s no doubt that a web site/application directory, or a fancier way to ‘bookmark’ web apps might be useful, but that would be a much more noble proposition to what Google talked about today and it would need to be done in a cross-browser way that would be inclusive to other browser developers and the community as a whole.

The apps. The Web. Openness and Google.

The NY Times Chrome application is just a modern website I visited while the presentation was taking place. Amazon’s WindowShop is a Flash client for their store. A flash game could reside behind a third-party game portal. None of those things have anything to do with the ‘Store’.

The Chrome ‘Webstore’ makes things ‘easier’ and more streamlined for Chrome users and developers, but flies in the face of the openness and independence of the Web. It introduces a new dependency, Google Chrome for its proprietary functionality and Google, for its payment processing services and at the same time raises barriers to entry to other browsers that might very well be standards compliant, but lacking the ‘Web store’ functionality. It ties web applications, their users and developers to Google, even if that’s in the form of the additional work that developers will have to do to provide versions of their applications for the Chrome Web store, the ‘Web’ or even other ‘Stores’, if and when they appear.

There’s no need for any new ‘dependencies’, no need for web apps making use of ‘proprietary’ functionality found in any one browser; we’ve had that nightmare with IE for many years late in the 20th century and for several years the web was the domain of IE.

Google’s intention with the Web store, however, is not at all limited to the Web. It might be that the reasons for the Webstore’s existence fail to convince, but the company’s desire clearly goes far beyond that: Google aims to provide a single place for Applications that fits their upcoming Chrome OS strategy, which, by extension, aims to centralise everything in their own data centres.
»

3 comments


» An enthusiast product for early adopters

This is what Andy Rubin stated in his ‘D: Dive into Mobile’ interview, yesterday. And that’s probably the best descrption of Android I’ve read. Like desktop linux was (and arguably still is in some respects), like Mac OS X was in its first three years and like Windows was for a very long period until — arguably — Windows 95 came out in August 1995. It’s hard for ‘normal’ people to get excited about Android, because there’s little that appeals to normal people. Even from a development standpoint it’s clearly work in progress, with volatile APIs, significant bugs and vastly inferior performance (incl. power management) compared to iOS. As I’ve written before, Android development is moving fast and I reckon it’ll take a couple of years at most for it to reach maturity.

comments

Download Spinalonga's Podsafe rock music for your podcast. From Athens, Greece, with love.'