Archive for the ‘Linux’ Category

The future of desktop Linux

Mar 08
28

The current dogma is that Linux can’t become a popular desktop operating system while the worlds most popular applications are written for Windows. But that’s just not true anymore. My grandfather who’s in his 90’s recently got his first computer. The only two applications that matter are web and email. The fact is that the OS matters much less now then it did in 2001 and it’ll matter even less in 2010.

Applications are moving to the web and application platforms are moving online as well. Flex from Adobe is moving things into the Air platform. Silverlight from Microsoft is bringing .Net onto the web.  Prism from Mozilla is also bridging the gap by bringing web applications to the desktop…. And Java, ahh Java, but that’s another story.

There’s no reason the next OS platform can’t be Linux but there has to be something in it for the typical web user experience. Even if Linux takes a foothold on the desktop the open source community will wake up to find that the field goals have moved. While everyone was touting Linux standards and open platforms everyone will have moved on and the operating system will be the Web. Your apps, your files and your data live in the cloud, not on the desktop.  This future is coming closer every day and it often feels like Linux on the desktop ignores this eventuality.

For the Linux desktop to succeed it needs to begin to enhance the user experience for the web user. it also has to be more relevant to today’s developers. Currently the browser experience is disconnected from the desktop and the innovations from KDE, Gnome and others aren’t relevant or visible to the web-community. (Both end-users and web-developers)
Questions Linux Architects need to ask:

  • What can Linux as a platform do to enhance the web experience?
  • What can Linux as a platform do to get developers excited about writing apps, the way that people are excited about writing iPhone apps.
  • How will Linux innovate and set itself apart from Windows and Mac? The hardware and the software are starting to look the same, what can Linux do with new interaction techniques and innovative hardware that will make people say wow, I want that!

For next year to be the year of the Linux desktop it needs to become relevant and provide something more then a free alternative to something that everyone already gets for free with their computers.

Post to Twitter

This is the year of Linux! Not.

Jul 07
22

Every year there’s yet another story about how this is really the year of Linux. Well it’s still not here. I’ll tell you why.

  • The marketplace is confusing for customers (both corporate and consumer) there are too many choices. Many people are waiting by the sidelines for the competition to sort itself out. VHS vs. Betamax, HD-DVD vs. Blueray… try Ubuntu vs. Redhat, vs. Suse, etc. etc. It’s so confusing many customers prefer to just pick Vista Windos XP.
  • Hardware doesn’t always work. The fact that Dell is now shipping Ubuntu on some boxes is huge but it’s the beginning and it can’t be an isolated event. HP, Toshiba, Sony, Acer, Gateway where are you guys? Until most hardware is shipped with working drivers it’s not going to be ready for prime time. Many companies give Linux good lip service but a much smaller number are willing to open their wallets and bet the business on it.
  • Low level problems still dominate the bulk of the work being done. Driver and the open souce politics of drivers (NVidia and ATI). Many people equate Linux with open source and this doesn’t match up with many companies existing politics. In many ways Linux is not just an operating system but a philosophy. It’s one thing to convince a company of the fiscal benefits of Linux but it’s a much longer process to get them to change thier approach to developing software (open source). Without the ability to split these things Linux feels like it’s really close but since the politics don’t change it’s never quite close enough.
  • Teams are working harder but not always smarter. Many bugs are duplicated across distributions and there is no good way to track and monitor the work and progress that is being made across distribution teams. There’s still a ton of duplicated effort.
  • Scheduling releases continues to be problematic. Major & Minor releases from the Kernel and from various distributions don’t line up making it difficult to schedule, drive and push release dates.
  • Lastly saying ‘year of Linux’ just doesn’t make sense. Linux devices are all over the place already from cell phones, routers, medical devices, embedded computers and more. Mission accomplished, right? Saying ‘Year of Desktop Linux’ doesn’t make much sense.  To get mass adoption you need support from the hardware makers and so far it seems that hardware manufacturers are being dragged to Linux kicking and screaming.

Don’t get me wrong. I do believe that in my lifetime an open source OS will have a non-minority market share but keep your champagne bottles corked. There are still many mountains to climb.

Post to Twitter

Linux Distributed Bug Tracker

Jun 07
20

So I just got back from the Linux architects conference held at Google in Mountain View, CA. It was a good trip and I hope that these types of summits help spur the collaboration that needs to happen.

One of the highlights for me was Mark Shuttworth’s keynote. He spoke not of the individual features, or high level visions but of the real day to day problem of duplicated efforts.

Because of the distributed nature of development there are many distributions that duplicate their efforts by opening, fixing and merging the same bugs across various distributions. This is an easy opportunity were we can work smarter not harder.

I approached Mark at the reception and mentioned how the Wikipedia also has a fairly distributed nature but that individuals are able to track and monitor topics of interest. Users are subscribed to a topic of interest and it becomes difficult for someone to make a change without notifying everyone who’s interested in a particular topic.

Mark said: “What if you could subscribe to a bug tracker like you do with RSS?”

I think the concept is novel in that it allows distributed projects to monitor changes, status and progress in a distributed way. You subscribe to the things you care about. You could subscribe to a particular file, folder, a particular bug or a particular key phrase. Then when someone makes comments or change you know about it.

The actual feed would be RSS so it would work with existing feed readers and aggregators. The content of the feed would be new bugs, bug comments, code changes or other related changes.

Many bug tracking systems and source code packages already have RSS plug-ins and tools. SVN and CSV, Trac, & Bugzilla all have RSS components.

The part that’s missing seems to be the actual feeds from all the major groups.

The beginnings of a distributed bug tracking system has to start with a simple standard. Another approach that was discussed was refered to as “bCard” (kind of like a an ID card for bugs). This approach would create a microformat interchange that could be indexed and searched. This would be a portable format that could be used to interchange data between different bug trackers.

This approach is also interesting but would require more work to define a schema and get the existing tools to support this schema.

Both the RSS-Bugs approach and the bCard idea aim to solve the same problem of allowing distributed teams to track monitor and view bugs so that collaboration becomes the norm rather then the exception.

Post to Twitter

Weekend thoughts on open source development

Jun 07
8

There seem to be two camps of open source development. In one camp are the Linux folks who are building an open source OS, drivers and related software. In the other camp are the open source web based technologies building Apache, PHP, MySQL and other related web tools.

The way people develop a desktop Linux application has nothing to do with the way that people construct web applications. This is a shame because it’s really a lost opportunity. The one place where Linux is really strong is on the server. In fact there are lots of developers who can build fairly complex web-based database applications but wouldn’t know where to start if they needed to build a simple ‘desktop’ application.

Windows and OSX stop at gadgets and widgets for small web-connected ancillary applications. It doesn’t have to stop there. Why isn’t there unity in the methodologies of open source development?

Post to Twitter

Linux and Patents

May 07
16

People in the Linux community are asking Microsoft to “show me the patents.” Microsoft is certainly creating some uncertainty but they are very likely on solid footing on some of their many patents. The reason that Microsoft isn’t making a move is because it’s not yet clear who to go after. The desktops? The distributions? The corporations deploying the software? A legal battle would likely cost them more then they could gain.

Many of the patents in the MS portfolio cover core design and implementation details that would not be trivial to code arround. Three examples that I suspect are undoubtably part of the list:

  1. The start menu
  2. Long file names
  3. Plug and Play

Each of these covers a different area of design and protection. The start menu is clearly a distinct visual element that is very recognizable as a fundemental part of windows.

Long file names is a level deeper in the OS. This describes how a file can have spaces and still be used to traverse folders using traditional commands with quotation marks. The use of quotation marks is not-obvious and the duplication of the feature (even though it’s a separate implementation) is likely an infringement.

Lastly Plug and Play is down in the guts of the OS. This is core to how the OS deals with hardware devices. In order for Linux to be compatible with hardware it’s necessary to be compatible with the way that Windows does plug and play.

Of course this is likely the tip of the iceberg. Hundreds if not thousands of additional patents lie just beneath the surface.
The best defense is a good offense

There are many technologies that are invented and created by individuals in the open source community. These technologies are invented, designed and made popular. Many of these inventions make their way into Linux and other products. The best defense is to build up an ‘open patent portfolio.’ This would allows contributors (IBM, Dell, Novel, Adobe, Ubuntu, KDE, Gnome, etc.) to include patents in a community portfolio. The portfolio would be open and cross-licensed to other organizations that provide reciprical agreements.

Basically companies can use the open patent portfolio without cost as long as they don’t sue the patent contributors.

What ends up happening is you have a ‘cold war’ on patents. Both sides build up an arsenal of 100’s of patents and neither side will sue because it’s a no win situation.

(A crazier idea is to enact software patent reform, but that’s just pie-in-the-sky long-term thinking.)

Post to Twitter

Linux/Unix Case Sensitivity

Feb 07
11

Case sensitivity is one of the best examples of how programmers expect people to conform to the computer rather then having the computer conform to people. We are human, we make mistakes and we are forgiving in the way we communicate. My name is Gregory but I also go by Greg and sometimes respond to ‘Hey You.’

But Linux/Unix isn’t forgiving, if I want Test.txt, this isn’t the same as test.txt and it’s completely different from TEST.txt.
Why?

The primary reason is that programmers in the late 1960’s & 70’s for C and Unix decided to optimize the compilers and parsers. At the time computers were much slower and it was faster to compare identical strings rather then normalizing the upper/lower case of the strings. Back in 1969 when there were was no such thing as personal computers this optimization made a lot of sense.

Fast forward to today as someone is tying a URL into a web-browser.  It doesn’t work. Why? Because the web browser passes the exact case of the web file to the web-server, the web-server is Apache and runs on a Linux server that cares about cases because almost 30 years ago comparing cases took a little extra effort.  Today this type of upper/lower case comparison is trivially quick.

But what’s really amazing is that in all those years developers have refused to change this. Some even think of this as a ‘feature.’ This is really stupid, it causes a ton of problems and there is no longer any good reason to have case sensitivity in an OS.

Computers are meant to be used by people, and people make misTakes.

Post to Twitter

Linux Thoughts in Portland Continued

Mar 06
31

Back in December I was invited to Portland, OR to speak at the Open Source Desktop Linux (OSDL) architects meeting. The attendees represented individuals from all top commercial and community desktop Linux groups including Redhat, Suse, Ubuntu, Mozilla, OpenOffice, KDE, Gnome, FreeDesktop, IBM, Adobe, Real Networks, Linspire, One Laptop Per Child project and many others. Together about 70 architect level people where present.

My presentation slides and notes are now available here

Post to Twitter

The Linux Attitude

Dec 05
12

I had the extreme pleasure of being called a F***ing Idiot by Linus the original creator of Linux. It’s with such ferocity and conviction that he called me an idiot that has me concerned about a possible future and direction of Linux as a main-stream easy to use operating system.

The main concern is with user interface design, simplification, ease of use and usability. Rather then sway your opinion I’ll let you read the thread on your own.

To frame the discussion this was about how the printing dialog in Gnome was perhaps over-simplified and didn’t show all the capabilities of the printer.

Linus:

I personally just encourage people to switch to KDE.

This “users are idiots, and are confused by functionality” mentality of Gnome is a disease. If you think your users are idiots, only idiots will use it. I don’t use Gnome, because in striving to be simple, it has long since reached the point where it simply doesn’t do what I need it to do.

Please, just tell people to use KDE.

Linus

Greg:

Technical users often feel that a usable design can dumb down the interface.
If this is the case then it’s a poor design. A good design will be easy for a beginner and will also provide the tools, advanced buttons, options, right click menus and settings to satisfy technical users.

The majority of end-users want a simple printer dialog. In fact most people will just hit the Print button without changing any settings. These users are not ‘idiots’ they just have better things to do then futz around with printer settings. On the flip side I’m sure there are many pre-press publishers who want to tweak and change every setting. The two design goals do not have to be at odds with one another. A good design will satisfy both.

Linus:

No.

That’s not what I’m talking about at all.

When user interfaces means that something CANNOT BE DONE, it’s not about “usable design” any more. At that point, it’s about UNusable design.

Any Gnome people who argue that it’s about “usability” have their heads up their asses so far that it’s not funny. I’ve argued with them about this before, and I know others have too, and mostly given up.

“Usability” is an issue only if you can do something at all. But if you can’t do the thing at all, it’s pointless to talk about usability: the thing is BY DEFINITION not usable if it cannot be used for a specific task.

Then a person that claims that it’s usable for something else is a F***ING IDIOT.

And in that F***ING IDIOT vein:

> The majority of end-users want a simple printer dialog.

This is a great example of being a F.I.

There is no such thing as a “majority of end users” in general. For example, maybe _I_ am in what you _claim_ to be a majority, in that I want a simple printer dialog – because I have a simple printer, and even simpler printer needs.

So a simple printer dialog doesn’t bother me, and as such you can count me in your “majority”.

But I can guarantee you one thing: the _vast_ majority of people are part of a specific minority when it comes to something. This is somethign that the F.I. “interface designers” in the Gnome sense seems to continually overlook.

For example, maybe I don’t care about printers. But I _do_ care about my mouse. If I can’t control the left/middle/right button actions, I get really upset. Again, the “majority” of people may not care, so by your majority argument, the mouse setup should be so simple that the majority of people can never get confused. But I _do_ care.

In other words: your “majority” argument is total and utter BULLSHIT. It can be true for any particular feature, but it’s simply not true in general.

To put it in mathematical terms: “The Intersection of all Majorities is the empty set”, or its corollary: “The Union of even the smallest minorities is the universal set”.

It’s a total logical fallacy to think that the intersection of two majorities would still be a majority. It is pretty damn rare, in fact, because these things are absolutely not correlated.

And the technical term for somebody who claims to do user interface design and not understand this fact is a “F***ING IDIOT”.

And this has _nothing_ to do with “technical users”. Even totally non-technical users care about something. In fact, it might be their printer, and having a way to set the paper type and resolution by hand.

Another way of saying this: we’re _all_ “special” some way. We’re damn quirky, even the nontechnical among us.

But hey, just continue to remove all that confusing functionality from Gnome. I don’t care. I voted with my feet.

Linus

————-
It’s interesting that Linus goes off on a rant about the majority and minority since my example of a typical user and a pre-press publisher specifically talks to the minority/majority case. A good design will be optimized for one but should be usable by both. I’m not speaking to Gnome in particular just general design. (The entire ugly thread can be read here)

I’m curious to hear comments from other Linux contributors and users. Does Linus echo a general attitude in the community? If simplicity and ease of use come at the cost of removing certain features is this a worthy trade off or are interface designers “F.I.”s for trying to simplify things?

archived 11 Comments

Post to Twitter

Pondering in Portland

Dec 05
4

This week I was invited to Portland, OR to speak at the Open Source Development Labs (OSDL) architects meeting. The group assembed represented the majority players in the Linux community including major companies, individuals and contributors to desktop Linux.

A number of individuals representing both top companies and industry companies were present including Redhat, Suse, Ubuntu, Mozilla, OpenOffice, KDE, Gnome, FreeDesktop, IBM, Adobe, Real Networks, Linspire, One Laptop Per Child project and many others. Together more then 70 architects level people where present.

The Goal? To discuss adoption blockers, common goals and key problems and strategic next steps.

What was I doing there? A Windows veteran with only a couple months of Linux experience? I was providing a view of an outsider looking in. I presented a revised presentation based on my Linux Thoughts article.

Circulating through a room full of Linux developers is actually quite similar to talking to room full of Windows developers. The terminology and acronyms change but the substance and content of the conversations seemed strangely farmilar. I can’t tell you how many times I heard people say “It just works” in reference to Linux hardware support. This used to be a buzz phrase that was used when developing Windows XP.   Scary. I met a number of interesting people and I am thankful for the opportunity.

My talk covered four key areas. I hope to be posting the slides later in the week.
- Why people avoid change and what can be done to make it easier for people to change desktops.
- How to improve the quality and diversity of software applications by improving the development environment and ISV story.
- Improving end to end user experiences by improving hardware and software compatibility and installation.

Overall I was surprised how well the talk was received. Online I got a lot of critical comments from people on Slashdot but in person many Linux leaders came up to me after the talk to tell me how much they enjoyed the talk and how they found it enlightening.

After the talk the group collaborated in identifying core focus areas for the meeting. The key areas identified included:

Hard Technical Problems
- Need to fix developer and ISV confusion. The core issue here is that it’s not easy to develop cross distribution applications for Linux. Documentation, samples and recommended best practices are lacking. The two major interfaces of KDE and GNOME make it difficult for developers to understand how things ’should’ be done rather then how they ‘could’ possibly do things.

- Need to fix the driver problems. This includes having true plug and play support, having consistency in hardware support across distributions. From a consumer standpoint hardware has to work without surprises and without complex driver hunting and configuration.

Hard Social Problems
- There seem to be a lot of groups working on similar problems but not cooperating and solving these problems together. This may be the nature of Open Source software but current desktops and distribution development is very fragmented causing confusion to both end users and developers.

There are a couple projects that are being developed as an outcome of the meeting. The first called ‘Project Portland’ will aim align some of the efforts between KDE and Gnome. It’s my personal hope that this will lead to a unified effort on Usability, Accessibility, Internationalization and User Experience. Only time will tell.

I expect to see a lot more about ‘Project Portland’ in the coming weeks. A reporter from Linux.com interviewed me for article.

Post to Twitter

Linux Distributions

Nov 05
20

After being warmly received by the Slashdot community on my Linux article ;) I did some legwork to install some additional distributions.

  • Why does my choice of distribution determine my hardware compatibility?
  • Why do I have to download 5 CD’s if the install only uses 2?
  • Why are there so many distributions that are seemingly identical except for the logo?
  • Why do I have to burn a CD at all? It is possible to install an OS without a CD. Physical media is so 1990.
  • If you type “Install Linux” into Google. The first 20 or so pages are unhelpful and likely to scare users away. Compare this to the results when you type “Install Firefox” into Google.
  • Why do I have to choose between so many platform choices? AXP, SPARC, PPC, etc. The server can tell I’m running IE 6 on Windows XP. Just give me the obvious choice.
  • Most sites assume I know what a Torrent is. Several clicks estimate 2 days to download the 3gb download using Torrent. Very few tell me where I can get torrent software.
  • I have yet to see a distribution that packages up my email settings, IM settings, browser settings and hardware configuration to ensure that my transition to Linux is smooth from Windows.
  • Several installations kick me into a login screen with no user name and password. I’m supposed to know that the password is ‘root’. I guess I didn’t get the memo.
  • Most distributions don’t separate the idea of software and platform. This is really surprising since many people in the Linux community came down hard on Microsoft for bundling IE and Media Player. Many distributions bundle everything. I haven’t decided if this is a good or a bad thing.
  • The Linux software world seems to be ‘free.’ While this is great for the end user who likes free things it’s hard to convince developers to write software for a platform where the users have an expectation of everything being free. I haven’t found any obvious Linux shareware sites or resources for Linux sharware authors.
  • Why isn’t WINE part of most distributions? This seems like an obviously useful tool that would ease migration and provide specialized applications that aren’t found on Linux.
  • Overall many applications feel rough and un-polished. This may be partly because I’m not used to them but OpenOffice, Gimp, Gaim and others don’t feel like refined polished applications. In the words of Tyler Dyrden … Everything is a copy of a copy of a copy. The applications just look dull, muted and faded. There is no ‘new car smell.’
  • Multiple desktops – A nice concept but should probably be turned off by default. It’s too easy to loose your stuff and not know where to find it again.
  • Accessibility is really bad. I can’t believe that the windows keyboard button doesn’t open the primary application menu in either KDE or Gnome by default. This was really surprising. I assume that most advanced computers users are far more productive with a keyboard then with a mouse. In windows I have keyboard shortcuts, tab, ctrl+tab, shift+tab for every single feature. In Linux I can’t even launch an application. This button is printed on every keyboard so even though it has a picture of a windows flag there is no reason not to use it. (Draw a little penguine in white-out if it makes you feel better.)
  • Both KDE and Gnome seem similar enough on the surface to warrant a unification effort. Each has it’s pros and cons but since both offer a fair amount of customization the idea of having both and encouraging users to choose seems misguided.
  • I couldn’t figure out the namespace. It seems that in some builds my CD rom is in one location and in others it’s in a totally different place. There’s no global ‘network browser’ but in some areas I can get to a network folder list. Weird. What’s even stranger is that the guts of the OS are there to see in all their glory. /bin /etc /mnt. This is about as bad as C:\ System32 documents and settings. I understand these files need to be somewhere but most users shouldn’t ever see them. That pesky ’soft barricade’ screen in windows that says you shouldn’t mess with certain folders actually helps keep beginers out of trouble. On Linux it’s the wild west and if you screw something up, good luck.

Some gems

  • Tagging files with emblems in Gnome is a cool concept and reminds me of some of the tagging concepts in Flickr and del.icio.us. This could be taken a lot further and made easier.
  • I like that some distributions are collecting information about my hardware to better the development of further hardware compatibility. Very web 2.0.
  • My original statement about sometimes having to tar/gz/make to install an application still holds true but overall package managers have come a long way and the ability to auto-update all your installed applications is really something special.
  • I like the task centric start menu. Instead of ordering things by program group or distributor as in Windows many distributions are using a ‘task centric’ categorization for start menu items. Games, Developer Tools, Photo and Graphic Editing , etc. I’m not certain this will scale well to thousands of nitch categories but the high level idea is a good one.
  • Draggable maximized window – This is a nice feature I discovered that you could drag a maximized window and it would ‘restore’ itself and allow you to continue dragging. It’s subtle trick but a nice touch.
  • LiveCD distributions that actually boot everything and let you ‘kick the tires’ are an interesting concept. Too bad that once loaded the OS couldn’t detect a hard drive to actually install the software.

More thoughts to come as I continue to explore.

Post to Twitter