Desktop integration tomorrow

With this blog-entry I’m probably about to make one of my major mistakes in my career. I’m probably going to make a lot people pissed about this. And that’s okay. A blog is about sharing your opinion no? This is my opinion. Enjoy it.

Last night, I dreamt about Utopia. I dreamt that some day I would copy-paste a part of a video to my E-mail. And while I was typing it, my E-mail client was playing what I’ve just copy-pasted. I dreamt that the video wasn’t transferred from the clipboard-owner to my xserver and back to the clipboard-requester. You see, my xserver runs remote! Whereas both the clipboard-owner and requester run on the same machine. In my dream, the copy-paste was a local transfer of clipboard-data between two processes sharing the same memory, kernel and CPU. In fact I even dreamt that the process originally owning the video-data was the one playing it on the canvas of my E-mail client during the time I was typing the E-mail. And that only after I decided to actually send the E-mail, the data got transferred.

I dreamt that after that copy-paste operation, I copied the video-fragment from my E-mail editor to my instant messaging application. I wanted to show my friend what I was about to E-mail to the recipients of the E-mail. I copy-pasted it with some marked up text and it just got pasted perfectly into the messenger window. And my friend really received it just like how I wanted him to receive it. And his messenger client started playing the video while it was getting transferred. And our chat wasn’t blocked.

I dreamt that during the video-transfer I was chatting in combination with instant video conferencing. I dreamt about integration of GStreamer with X11’s clipboard. I dreamt about applications really working together to achieve very typical and common desktop usage. I dreamt that there wasn’t any difference between an application that has it’s name starting with a K and an application that has it’s name starting with a G. For the end-users it just didn’t matter at all! My instant messenger was a K-one. And my E-mail client was .. whatever .. Evolution.

I dreamt that all configuration information was shared using a common system. And as the end-user of my system, I never ever cared about this configuration. At my company our administrators took care of all the configuration stuff from their seat. And both applications that have their names starting with a K and the ones with a G just worked. You know like .. they just worked! And it just didn’t matter, for the administrator, how the configuration management of those applications is done.

Using some tool they decided about company-wide configuration options. When they decided to change one, not a single user had to restart any of the applications. The configuration-change was fully event-based for the applications.

And everything just worked together with my personal data assistant, with my cellphone, with my Nokia 770 or whatever version of the device I was dreaming about.

But then I woke up. I realized there isn’t any organisation trying to persuade free software developers to use some standardisation nor to decide on important shared desktop components. Oh you have freedesktop.org. But when asked they just say: “Hey, how!! We don’t do standardisation! We just give free software developers a forum to start flaming^H^H^H^H^H^H discussions about standardizations!”.

And I realized there’s a massive amount of political bullshit about technologies in the free software world. I realized that stuff like, integrating the X11 clipboard with a technology-library like GStreamer is probably a typical “over my dead body” thing for a huge amount of free software developers in our community. I realized that the current components for storing configuration data just aren’t shared between the KDE and GNOME platform. And that getting there is politically-wise so damned hard. You just couldn’t believe it. I’m serious! Can you imagine that this little component causes “over my dead body”-type reactions on mailinglists? It does. Again, I’m serious.

Yet during GUADEC some Novell people tried to tell us: “Jow dudes! Stop doing infrastructure-work. Start finishing real applications, we have good infrastructure already!”.

I’m just … not sure about that. Our infrastructure lacks a lot integration possibilities. Like infrastructure for integration between KDE and GNOME applications. Our basic infrastructure often isn’t consistent between the KDE and GNOME developer platforms. There’s progress! I agree with that statement. Like the fact that GStreamer might become a shared multimedia library for both. Or like the fact that D-BUS appears to be liked by both worlds. That’s good. I’m thrilled about it (I’m being honest)! But I’d share your opinion if you say that we need more like this. I don’t think we already have a kick-ass developer platform. We don’t.

For a person who has a huge amount of free-time to learn about all the quirks of our platforms, we have more or less two platforms that are almost good enough. They can’t yet work together. But that’s okay — no it’s not!! –. I don’t think a lot software houses will really already like our developer platform. Or will like the fact that they’ll have to choose between letting the name of the application start with a K or a G. You see, that letter isn’t the real problem…

The real problem is the fact that it will have a great impact on their development model. On the type of persons to employ. On the libraries being used. On the many incompatibilities with whatever distribution ships with the other major desktop platform as default. Are we really so naive to believe that such software-building companies will let their customers change the major default setting of a distribution that has expensive support? — Just to give one example why not to do this —

How is a salesman going to sell (custom) Linux desktop software? Does he actually have to ask the customer: “Do you run KDE or GNOME”. And depending on that answer tell the customer: “Oh I’m sorry, we don’t have developers for that platform, we can’t help you”. Has this free software community ever professionally thought about the impact of that stupid little question? Have we ever professionally thought about that this might be the thing that is holding back wide adoption of the free desktop platform? Have we ever considered really talking with each-other about this? Not just giving one K-developer some beer at GUADEC and persuading him to adapt his kick-ass K-infrastructure. I mean, really talking. Really getting somewhere. Really making those important decisions. Nevertheless I agree that inviting them is a very, very very very good idea and nobel thing to do. I’m not saying it wont change stuff. I’m saying that I fear that it’s not enough.


For those people who are planning to respond: “Hey moron, in stead of whining you should start developing and fixing what you hate so much”: I am one of the persons who is at this moment spending a huge amount of his free time on the architecture and implementation of DConf. Thank you, come again.

8 thoughts on “Desktop integration tomorrow”

  1. How right you are my friend! I am surprised by the lack of vision amongst some companies (especially Novell) when in comes to XDG – they will after all benefit the most but instead they prefer their own small minded world. Still its up to the community and in particular free desktop crusaders like us to put these things right. Now what would be really cool is a dbus based clipboard that could do what you want and bypass that crappy X11 joke of a clipboard – food for thought :)

  2. Hello,

    It’s in times like these I’d like to have a loud enough voice to be heard by the whole free software community.

    The problems which you point out in regard to the integration between GNOME and KDE are already, partially, clear through your words, but they become even bigger when we start considering other, smaller, desktops.

    What about XFCE, IceWM, and many other similar projects which hold a relatively small user base? It practically kills them.

    I’m not willing or skillful enough, but a suficiently generic solution must be engendered to enable adoption and interchange across multiple systems (I think ‘standard’ is the word). It will be much better for the end user, as well to GNOME, KDE, XFCE, IceWM, and the other million of Desktop Environments which haven’t yet appeared.

    Alas, this is not a democratic community, surely not a communist one, but the perfect example of anarchy. I agree entirely that "we" don’t need someone telling us what to do, but having a central point which upheld credible standards for those that want to play well together with their neighbours is of vital importance.

    Unfortunately, if we extrapolate even further, we will soon realize that such a central organization would eventually slow down the technical evolution of those standards, people would be unpleased, revolt, and form their own standards comittee (spelling?) – which becomes pretty obvious if we think of something like XFree86.

    My fellow european, the current situation is shaky. On one hand, we have this pretty big community, on the other we have no way to tap it in its full potential – because of the people that it’s made of, and because of the very nature which formed it. It’s impossible to do anything based on technical merit. People still put their ego in front of their common sense. For example (and this is not advocating anything, just giving an example as stated), lots of us still argue which language is the best, but the mono development platform put that whole argument to an end. So what do we do? We don’t adopt it, under the stereotypical argument of "I don’t like anything that came from microsoft".

    I think many of us forget this exists because we like to share information, knowledge and get work done. Failing to communicate with other developers reflects clearly in the software we produce – the different pieces of software are unable to communicate properly between them. Can you tell me again how we are supposed to exchange knowledge if we can’t communicate?

  3. And then you realized… Whoa, this stuff takes a lot of work to code! XEMBEDing the video into my Mail window isn’t trivial. And the code to catch the playing process’ death and take over the video playback is not trivial either. And neither is the protocol; the clipboard would probably have to offer another mimetype, kind-of like an application/x-local-ipc-shmem-transfer data type, which’ll handle the initialization of this local transfer. And oh, so many pitfalls await the shared memory user. And heck, don’t get me started on supporting rich text within your favorite IM protocol. How’s about writing that RTF parser for Gaim?

    As much as it is about standartization, it’s also about work and effort. If somebody took the time to make a sensible local clipboard transfer protocol, with an application/x-local-ipc-shmem-transfer data type, and document it in a nice DocBook (like the rest of the FDI specs) rather than expect the fellow desktop’s developers to deduct it from his C code … then I’m sure this protocol would easily take off and be accepted. That’s what they mean when they say a Standard is what gets accepted.

  4. Ilya: "A lot of work" because at this moment there’s few ways to integrate with each others infrastructure.

    A lot of work because of the issues I addressed in my blog.

    Not because is’t suppose to be a lot of work.

  5. Hey moron, in stead of whining you should start developing and fixing what you hate so much.

    Eh, just kidding.

    Sure you have your point. But maybe you’d like to reconsider the use case of pasting video in a mail/IM conversation and have it running at the same time, the whole thing using a remote server setup. Are you sure that there are no more important problems to fix?

    Also this standards thing has two sides. Standards are nice but GNOME and KDE respectively are rather settled on their technical underpinnings, so it’s not unlikely that each project will just stick to their established solutions/hacks/libraries whatsoever.

    As you can see with gstreamer, if a technically superiour solution exists it will be adopted, rather than a standard that has to be implemented, maybe even on both GNOME and KDE sides, and interop tested.

    In short, sometimes i find it easier to try a cool hack or fix a bug or two rather than making the world a better place between breakfest and lunch.

    Cheers,

    – Rob

  6. You are right, and we share the same dreams.

    At the end of the day however you have to realize the simple reality. There are two platforms, and the developers on both think their platforms are superiour and there *IS NO WAY TO CHANGE THAT PERIOD*.

    Once you’ve grasped this you see that the only way to solve the problem is for there to be one platform, and that that is not going to happen peacefully.

    There is a solution though, and it’s so obvious it’s blinding. Simply choose your platform. Simply take what you like and make it better than the others. When something is better… when users use it… it will replace that which is not better.

    So that’s the solution. It’s quite simply an arms race. Make Gnome into that platform. Make integration happen between GTK/GLib based applications just as you envision it. We have the technology. We have the architecture. If we don’t have it, we can make it, using GLib. If it is good, the K guys will adopt it. If it is good and the K guys do not adopt it, the K guys will loose the audience you sought in the first place and become irrelivent. But lets not waste our time trying to interoperate with the K guys. If we believe our solution is technically superiour, lets stick with it. Lets not get bogged down in arguments about .desktop file formats. Lets just pick one that we believe is better. We can change it later.

    If the K guys implement their own… fine. One will be better. Push that one.

    That’s all I have to say.

  7. Jerry, but there’s many shared components and technologies. And the desktop is getting ugly and cluttered because we aren’t working together.

    And 3th party software solution providers refuse to choose. Developing Windows works for them. No comparable choices to be made on that platform.

    So IMHO tt’s an important issue.

  8. One thing that I would say your dream was missing and that I think would be a good thing is if the functionality of Spatial Nautilus Windows was made to accommodate the results of "Desktop Search Results" … as in encouraging the idea of Folders as "Search results" … The simple ability to "display results quickly" as was as update the overall list …

    I guess that could also be somewhat related the way in which Gnome Storage is to function …

Comments are closed.