The Central Question in Computing
I am coming to believe that the software development industry in general has essentially an obsession with software that simply exists to "box" other software. Virtualization is a multi-billion dollar subsector that is the most obvious example. But this boxing obsession isn't something really new.
I know I refer to this fairly often, but take a look again at the top two Linux applications according to Mugshot statistics. Both Firefox and GNOME Terminal are "boxes". The entire purpose of existence of those two applications is to contain (launch,control) other applications. They are a means - not an end.
Further examples abound. The "window manager" is a literal display of the metaphor: it actually draws visible boxes around other software. And besides the window manager, the other most visible component of GNOME on my screen (in terms of pixels) is the task list applet - again - it's just drawing boxes around the names of other software.
What actually started me thinking along these lines was Miguel's post about .NET security, in particular how Microsoft implemented this CAS system that basically no one ended up using. CAS is a great example of a "box" for other software (in fact a huge swath of the general computer security industry is all about boxes). Probably a few very bright Microsoft engineers spent quite a bit of time on that, but it just didn't end up being useful.
A lot of the Linux community spends a huge amount of time discussing "packages" - also just boxes. I posted about the endless nature of this particular boxing before. Someone should explain to me sometime why .spec files and debian/{control,rules} couldn't just be replaced with something that looks a lot more like just a jhbuild moduleset, and put the stuff like descriptions on a web page somewhere.
Anyways, getting closer to the point I'm trying to make here - I think the entire development industry would be better off if we spent less time creating boxes. Don't get me wrong - boxes are useful sometimes! I'm not dismissing virtualization for example - being able to just "turn on" a few more servers is really cool.
What I think would help for a lot of software development projects is to keep a central goal in mind. I have a proposal for that goal, which I am calling
How does this software help my sister buy more shoes on Ebay?
To this end, one thing I changed recently in the online-desktop session is to start the browser by default. When I made the change, it was almost an afterthought. I was trying to set things up so that the sidebar started by default, and I realized - hey, why don't I just start the browser too?
Bryan mentioned how I had observed that for my sisters, Marc Andreessen's famous quote about Netscape reducing Windows to a set of device drivers has already arrived, in fact has been true for some time. For them, Windows is right now really nothing more than a glorified launcher for Internet Explorer to get to Ebay.
I had to ask myself - why aren't we to the point where when they get to the computer, Ebay is right there instead of having to go through multiple boxes.
The Andreessen quote brings another one to mind, from one of my favorite authors, William Gibson:
The future is already here - it is just unevenly distributed.
So, launching the browser by default was one small change that I made recently, but it was a huge perspective shift for me. The desktop used to look like this:

Traditional desktop
And now:

Online desktop
I've been working recently on some code to further reduce the pointless work my sister would have to do to get to Ebay. It's of course more general than that - in fact I think it's turned out amazingly well. I know I'm being vague, but I'll post more about that hopefully in the next few days when it's ready for general consumption. It'll have been worth the wait.
But until then - ponder this - what did you do today to help my sister buy new shoes?
I know I refer to this fairly often, but take a look again at the top two Linux applications according to Mugshot statistics. Both Firefox and GNOME Terminal are "boxes". The entire purpose of existence of those two applications is to contain (launch,control) other applications. They are a means - not an end.
Further examples abound. The "window manager" is a literal display of the metaphor: it actually draws visible boxes around other software. And besides the window manager, the other most visible component of GNOME on my screen (in terms of pixels) is the task list applet - again - it's just drawing boxes around the names of other software.
What actually started me thinking along these lines was Miguel's post about .NET security, in particular how Microsoft implemented this CAS system that basically no one ended up using. CAS is a great example of a "box" for other software (in fact a huge swath of the general computer security industry is all about boxes). Probably a few very bright Microsoft engineers spent quite a bit of time on that, but it just didn't end up being useful.
A lot of the Linux community spends a huge amount of time discussing "packages" - also just boxes. I posted about the endless nature of this particular boxing before. Someone should explain to me sometime why .spec files and debian/{control,rules} couldn't just be replaced with something that looks a lot more like just a jhbuild moduleset, and put the stuff like descriptions on a web page somewhere.
Anyways, getting closer to the point I'm trying to make here - I think the entire development industry would be better off if we spent less time creating boxes. Don't get me wrong - boxes are useful sometimes! I'm not dismissing virtualization for example - being able to just "turn on" a few more servers is really cool.
What I think would help for a lot of software development projects is to keep a central goal in mind. I have a proposal for that goal, which I am calling
The Central Question in Computing:
To this end, one thing I changed recently in the online-desktop session is to start the browser by default. When I made the change, it was almost an afterthought. I was trying to set things up so that the sidebar started by default, and I realized - hey, why don't I just start the browser too?
Bryan mentioned how I had observed that for my sisters, Marc Andreessen's famous quote about Netscape reducing Windows to a set of device drivers has already arrived, in fact has been true for some time. For them, Windows is right now really nothing more than a glorified launcher for Internet Explorer to get to Ebay.
I had to ask myself - why aren't we to the point where when they get to the computer, Ebay is right there instead of having to go through multiple boxes.
The Andreessen quote brings another one to mind, from one of my favorite authors, William Gibson:
So, launching the browser by default was one small change that I made recently, but it was a huge perspective shift for me. The desktop used to look like this:
Traditional desktop
And now:
Online desktop
I've been working recently on some code to further reduce the pointless work my sister would have to do to get to Ebay. It's of course more general than that - in fact I think it's turned out amazingly well. I know I'm being vague, but I'll post more about that hopefully in the next few days when it's ready for general consumption. It'll have been worth the wait.
But until then - ponder this - what did you do today to help my sister buy new shoes?

Not claiming the conclusion is new in any way, just kind of posting my realization =)
(Anonymous)
boxes are good
Re: boxes are good
(Anonymous)
Re: boxes are good
(Anonymous)
Re: boxes are good
Then just log out or suspend or whatever and when you come back your browser is exactly where it was left off - on a shoe search in eBay in one of the tabs (the selected one of course, because your sister always looks at that before logging off due to the obsession with shoes :) ).
-- Mart Raudsepp
(Anonymous)
Also there is the weirdness that a lot of people I see use multiple windows instead of tabs.
Maybe the closest thing for now would be to just auto-restart the browser if it's closed.
As for the address bar - my secret project relates to that! Wait and see =)
(Anonymous)
"Foxybuntu"
Right now, there's no shareable code, just ugly, stale patches to Epiphany and XFCE. If I get some time, I'll bang it into shape and post it...
Re: "Foxybuntu"
(Anonymous)
Well..
They named it "the Active Desktop".
Great invention. It starved a painful dead.
(Anonymous)
Re: Well..
As a better implementation to that the Vista offers these desktop widgets. They can reside anywhere on the desktop and there are two kinds of (I'm simplifying this not to get dragged into too much technical details) widgets. You can either program one entirely traditionally or you can do what many of them are doing - they are just pieces of html, and can refresh parts from the network etc. One could use those for engulfing the whole desktop perhaps.
(Anonymous)
I hate Pidgin
Most important applications are those that allow us to collaborate and refine information with other people and machines. You can do some things, for some time, without networking and communicating but most of the things will start deteriorating pretty fast. Networking and communication are the key to most of the present success stories, and the social network effect pressure does magnificent things. The already using people drag the others in, and the more joins the network the more useful it is for anyone. Those things grow exponentially.
It is not enough to have some XMPP/Jabber connectivity. It's not about technological superiority as some clueless people seem to be thinking. What is the most important thing is that you can reach the people that you need to reach, and in a way that is usable! For that, in many environments, you need regrettably multiple protocols.
To get that, most of the people are running Gaim/Pidgin. It is nice because it supports (to some degree) a great amount of protocols. At the same time that application is one of the appalling ones I have ever seen. One of the reasons is what you described, boxing.
You have to run it. It's contained in its own little world. Then you have to poke it constantly to keep it running. It doesn't really integrate with the desktop environment, and even slightest network connectivity problems often force you (Pidgin is just plain awful, the developers have been absolutely clueless on how to handle those events) to move you focus for a second into that box and poke it a little bit - even though you are not willing to actually do anything with the application (communicating with it!).
To be able to communicate you have to work with these little boxes. They pop up (behind others often) when something happens and you have to move into them. Or you have to work with the tabs. Or you have to have one virtual desktop cluttered with these open windowses to keep you connected to for instance the IRC network and to keep you on the channels. In the end sometimes you are more working with the boxes itself than with the actual primary tasks of that application. Also, the actual chats are often boxes with no boxes inside them. You Run Applications when you get sent a file. They are just appalling text boxes. Go take a look at the web based 37Signals' chat to see something that breaks boxes a little bit and it provides awesome usability while at it!
Pidgin is plain horrible. Awful. It should die. Fast. Also the usability is low, thanks to the fact it was modeled after pre-existing applications that have poor usability. There's no imagination in for instance searching for people, sharing documents and files, group chat things, configurating things is hard and required, and so on. The list of its problems in that area as well is endless.
But there's no alternative! The only alternative would be these Telepathy based clients. They are still far away in the development, but they have this promise to be able to actually do some of these things like they should have done years ago already... And I'm outraged that their development is not getting the resources they should. The present offering really does not help with solving those real-life problems, and the development is practically stalled.
If you look at https://blueprints.launchpad.net/ubuntu/
(Anonymous)
Re: I hate Pidgin
- working with multiple friends to write a paper for school (ie. abicollab, sharing instructions text, multi-point audio chat)
- searching for an old friend, or new friends to chat with (ie. directories, leveraging search engine APIs)
- working in an office and organizing a meeting (ie. telepathy-CALENDARING connection manager and the proper UIs, agendas, project gantt -telepathy)
- getting help for their propblems with their Linux distribution X (ie. #ubuntu+launchpad combined in persistent ticket chat, offering auto-runnable solutions [consider "templates" for problems, that the people could hand over, like scripts with descriptions and quality control and GUIs for running and offering them!] by certified people, remote control)
- chatting with floss people about development of X (ie. show documents, patches, collaborate, draw ui sketches in collaborative Glade and then discuss about them, report and work on bugs)
- telling about your last vacation to your friends (ie. show image gallery, make a voip call)
- making quick notes (ie. funneling notes to Tomboy)
- sending email to a friend (it is all the same - communicating!)
... and so on for the actual first time in the history of desktop operating systems would produce stellar results. It is possible to do this all in a way that has less boxes and provides superior value to people! Communicating and collaborating is a lot more than just couple (text) boxes.
If I was given ~10 good Gnome/Telepathy/Ubuntu devels for 6 months I know the outcome would be such that die-hard Windows people would switch to Linux specifically because of the awesomeness of the fresh communication platform (marketing speak term, not technical). It would be just plain legendary, and give the competition some actual hard time answering to all of that.
In fact, it is my dream to get a chance to get paid work to make this all happen. I have had this dream for some 3 years already, and in that time I have seen no development on this area. I haven't seen any real interest from any direction either, which is even more baffling. It will take with this speed some 10 years to get where we could be in 6 months. It is not a technical issue. The technical problems can be solved. What is missing is VISION an LEADERSHIP to build the correct features, and some RESOURCES so that it isn't just someone's part-time hobby. I really really like break some serious boxes on this area.
Re: I hate Pidgin
It's definitely a truly key part of an online (or really, any) desktop, and right now the user experience is pretty crappy in a lot of ways.
Though let's be fair - they did get some stuff right. For example, supporting AIM and other protocols, and not assuming some rosy future where everyone uses XMPP.
(Anonymous)
Re: I could make M$Windows at thing of history
I would guess you'll get plenty of capable people keen to be the team that makes the future.
Esp as there's this window of opportunity here while machines are still choking on/bogged down with Vasta ;)
packaging
It may not be immediately obvious how good packaging practices relate to the end user experience, but they do. Bad packaging practices don't hurt you for a while, then they start biting your ass by causing upgrades to mess up, packages not to work together properly, needless complexity in the filesystem and so on.
Good packaging practice manifests itself mainly in you not noticing it: it's just like good plumbing or good street cleaning. You don't notice it and so you don't think about it and maybe it doesn't seem very important, but if it stopped happening, you'd realize why it *is* important very quickly.
Of course, if you don't think packaging is useful or important to the end user experience, you may wish to switch to using LFS. Let us know how that goes. ;)
(Anonymous)
Help me to begin home business via internet.
I am only looking for
The best soft to PC-where to buy, join site & other tipe to do a home online business.
Thanks for the info.