Friday, October 14, 2011

A gift for KDE's 15th birthday: Stibium, the desktop on the cloud

When it's a person's birthday, we use to give her/him a present. Since KDE is not a person, but a great number of people, to celebrate the KDE's 15th "birthday" is needed a big gift, so that's why I'm releasing the code of Stibium, in alpha status under GPL2. Actually the code has been written very quickly, so it's not elegant (and obioulsy many things does not work), I just wanted to prepare a working draft to show better my idea of  "a web application working like a desktop environment". This thing could be our future. Or it could not. "Sentence waits posterity" may I say. But it's now important to do the first step: to explain the idea.

But what is Stibium?
Stibium is a web application that provides an interface similar to a traditional desktop environment (it imitates KDE) but uses a cloud service to store your files. It can be seen as a desktop environment to manage your files on the cloud. It won't depend from a particular cloud service: we will try to support every cloud that provides APIs. Actually only UbuntuOne works, but I'm working to support also Dropbox, ownCloud, and Google Docs.
Stibium is powered by PHP, SVG, and Javascript, so it's all Free Open Source Software.
We will use the Ubuntu Font (Ubuntu Fonts) because is a free font, and it's very nice.
Maybe you are trying to understand why I called it Stibium. Well, here is the reason: the name "Stibium" came from the 51st element of the periodic table (also called "antimony"). Why? Because the stibium is the element of alchemy, and it has a nice appering. And it sounds as a good name for a program.

Get it, hack it
To access Stibium as a client, all you need is a web browser supporting HTML5 and a Javascript. For example, one of these: 

IEFirefoxSafariChromeOperaiPhoneAndroid
8.0+3.5+4.0+4.0+10.5+2.0+2.0+
To host Stibium on your server, you will need at least PHP and OAuth.
I hope one it will be hosted on KDE's server (something like stibium.kde.org would be awesome).

Obiously, it's such a big project that I simply can't work on it alone (in times humanly acceptable), so I really would like some one else to join me in this crazy idea: creating a unique web interface for every cloud service.
Here's the repository on KDE projects site:

19 comments:

  1. Why don't you just implement such stuff as KIO slaves? What is the advantage of writing it in the web browser? That is a technical limitation with less integration into the desktop. Why should such a service be used at all, there is OwnCloud?

    ReplyDelete
  2. And why shouldn't it work with Konqueror? Why are you promoting proprietary web browsers?

    ReplyDelete
  3. The idea is to replicate a normal desktop environment as a web application: like Chrome OS. It should be clear, right now, that in ten years we will use everything from a browser. This is the public's trend. Anyway, the Google's OS is actually too different from the "classical" system, and many users don't like it. Stibium wants to be a Free Open Source alternative to Google Chrome OS and other proprietary systems. And, since I want the user to be really free to do her/his choices, it will be possible to choose also the cloud storaging service (Do you want to use owncloud? You can! Do you want to use UbuntuOne? You can!, etc...).
    As I wrote, the program (obiously) works with every modern browser: Rekonq runs it quite good (anyway I see it uses too many memory during the "fade" effect). Also Firefox and Chromium (free open source browsers) are able to show Stibium. For me, the best result comes with Firefox 5.0 (but it may be different for you). The "magic" part of Stibium us that the user will not be bound to a particular system or browser: it will work just using W3C standards, so every browser must support it.
    So, concluding, Stibium wants to be a FOSS alternative to Google Chrome OS, and it wants to be more similar to a classical desktop: this way, users will find it more easy to use.

    ReplyDelete
  4. I'll definetly try this tomorrow on my home server. I hope that KDE will provide more and more web services in the future but even more importanty tight integration between web services and the desktop (KIO, Nepomuk, Akonadi, Choqok, Telepathy etc.)

    ReplyDelete
  5. That's right: Stibium can be considered similar to EyeOS. Anyway, Stibium will not be dependent from a particular cloud storaging service: acutally, with EyeOS you can use only the space provided by the EyeOS server. Stibium will not provide any space (just some MB to store the user configuration): you will be able to use every storage you want (obiously only if it is supported by Stibium). With Stibium, I would like to encourage the use of ownCloud and UbuntuOne, but if a user wants a non-FOSS service (like Google Docs, for example) I think she/he must be allowed to use it. Because being free means you can make choices.

    ReplyDelete
  6. “The idea is to replicate a normal desktop environment as a web application: like Chrome OS. It should be clear, right now, that in ten years we will use everything from a browser.”
    First of all: Argue, what should be good about that trend? Isn't it much better to have tight desktop integration of the web? And: why should in future all the stuff in the browser be implemented in JavaScript? There is NaCl, thus your argument about browsers is not sufficient for arguing that everything will just use these (not very powerful) W3C standards.

    What has it to do with KDE? It does not even work with Konqueror and it won't provide tight integration, because browsers are currently not very well integrated, KIO slaves would allow real integration. So, what does this project mean: No code reusage, inefficient, no advantages for freedom, just wanting to participate with a JS hype, simply useless, because services like OwnCloud already allow transparent file management (e.g. by using Web DAV). Ubuntu One is proprietary, just as Google Docs, so, what is good about it? Could you somehow explain what potential advantages are?

    ReplyDelete
  7. First of all, it's not my fault if Konqueror can not render HTML5: maybe this is one of the reasons that caused the birth of Rekonq.
    As Stallman said, the problem is not the cloud computing itself, but the fact that proprietary cloud services will always have a form of control on you. If you choose to use free cloud systems, you will be free. That's why I really like ownCloud and UbuntuOne.
    I never said that in future everything will be implemented in javascript. If you read more carefully my posts, you will understand that javascript is only a choice: actually I think it is the most convenient but, since Stibium will be a community driven project (at least I hope so), everything can change. Talking about NaCl, I read (here: http://code.google.com/intl/it-IT/games/technology-nacl.html) that it should NOT be used where you need to do heavy DOM manipulation: since an application like the Stibium "file manager" needs to continuously change the DOM, it's better to use JS. Anyway, as I said, everything can change, the code I uploaded in the git repo is just an alpha version.
    W3C decides what is standard and what is not. You may not like it, but this is reality. The respect of standards has always been an important point of FOSS projects. It was not for proprietary ones.
    It has a lot to do with KDE: as I already wrote, this is going to be the future of KDE. Why? Because cloud is the future of computing. This is going to happen, and there are only two things you can do: the first is to close your eyes and your ears and cry that it is not nice, the second is to start developing this way, to ensure that, when finally cloud computing will replace desktop computing, we will still have Free Open Source applications to use.
    Canonical promised to release UbuntuOne as FOSS when they will think it's ready, just like they did for Launchpad.
    Actually, both UbuntuOne and owncloud miss tools to view/edit documents. Google Docs has it, but the interface for managing files is too different from classical file managers, and the common users are scared about this thing. I know a programmer have no problems with it, but unfortunately developers are only a little part of the computer users. And I think the only way to convice more people to use FOSS is to make our programs more easy to use.
    In conclusion, if you don't like cloud computing, no one forces you to use it, like no one forces you to help developing Stibium. But I think that, just beacuse you don't like cloud, you should not try to forbid others to use it. Freedom means that you can have a choice. And this is true also for other people.

    ReplyDelete
  8. Sorry, ott0disk, no tutorials actually: in fact Stibium is just alpha, and it's not working. But if you want some screenshots here they are:
    https://picasaweb.google.com/109718345247929494628/StibiumIsNowPublic

    ReplyDelete
  9. You're confusing people with your explanation. If Stibium is like Chrome OS, then it should be an entire OS that the user can install on computer hardware that boots into a browser. It clearly isn't that, your repository has got some PHP code. So presumably Stibium is something that runs on a web server that presents the user a desktop-like experience in any browser. I.e. it's like Jolicloud desktop or eyeOS, not Joli OS or Chrome OS.

    Anyway, good luck with it!

    ReplyDelete
  10. Thank you, skierpage: this is the exact definition for Stibium. It will be only the web application, not all the OS. I want Stibium to be usable from every system, for example: in my university every computer has Windows. So I can go there, open a browser and use Stibium. The basic idea of Stibium is to imitate Chrome OS, with the appearance of KDE, but it will be only a server application.
    In fact, if you think about it, Chrome OS is just an operating system that opens a web browser after the login. Then you do everything using the web applications. The "desktop environment" itself is drawn into the web browser.

    ReplyDelete
  11. Ubuntu One is a proprietary service, stop claiming it would be free software.

    Well, web storage, nice, but why should it be in the browser? Explain that to us…

    Rekonq and Konqueror both use KWebKit btw and are both not mentioned by you.

    ReplyDelete
  12. UbuntuOne is ACTUALLY a closed software, but it will be opened in near future (and it's also one of the best cloud storaging services, because it has a very good service/price ratio) so it would be very very stupid to work on cloud systems ignoring Ubuntu One. Obiously, the wonderful part of Stibium is that it will support different cloud storages, so if you want to use UbuntuOne you'll do it, if you don't want it, you can choose something else.

    The example I wrote before should have explained what is the power of web based applications: they can be executed from every internet-connected device, no matter what is its OS. I'll explain another time: I go into my university's computer room. Those computers run Windows, I can't use USB devices, I can't install programs, I can't do most of the thing I'm used to. they only thing allowed is to go on internet, but there is no flashplayer or similar. So I can open Internet Explorer, go on Stiibum and finally feel at home, being free to look and edit my documents. I want to do it from my smartphone? No problem, Stibium will work because, since it's a web based application, it won't depend from the OS I'm running: I just need a web browser and I'm ready to go.

    Neither Rekonq or Konqueror are mentioned in the table, because I just copied it from the HTML5 test site. Anyway it should be obvious that, if the application works with one webkit browser, it should be able to work on every webkit based browser. So, if it works on Safari and Chrome, it will work also on Rekonq. Personally, I tryed Stibium with Rekonq, and it's quite good, but Firefox has a better rendering for the fade effect (maybe it's just something that depends from my computer's settings, I don't know how graphic acceleration works). Talking about Konqueror, I loved it some years ago, but it's dead, now, and I think it's time to accept it: Rekonq is better.

    Personally, I hope Stibium will be used by common people (it could be a tool to attract Windows/Mac users to the FOSS world), so the fact that it works good on Internet Explorer is more important than the fact that it works on Rekonq: Rekonq users are already using free software, so we don't have to convince them to join us.

    The fact is that Google proposed its web based cloud applications, Apple is going to do the same, and in some years also Microsoft will do it. We need to present a KDE's alternative to these proprietary applications.

    ReplyDelete
  13. Rekonq is crap, code duplication, ignoring existing solutions, not reusing existing, superior technologies and their architecture, very often it looks like they simply wanted to have “their own” thing, not trying to make their efforts reusable. However, indeed there has been much more new features in the last months than in Konqueror. But that is off topic.

    Maybe I have missunderstood the purpose of your project: should it be a desktop environment allowing to do everything in the browser or should it simply provide a convenient way to access files from all over the web?

    Btw: why are you using this proprietary Blogspot service? That looks non-credible if you want to care about freedom in the cloud.

    ReplyDelete
  14. Ok, I prefer Rekonq, you prefer Konqueror, for me there are no problems about it (and as you said, it's off topic).

    I would like Stibium to be a desktop environment that allows the user to do everything in the web browser, since it's a web application.

    Talking about blogspot, as you can see, many people in the free open source world use it. Because it's simple? Because it's powerful? Because it quite "social"? I don't know, why other people use it but, for me, I like it. Perhaps, what is the main problem in using a proprietary application? The fact that you don't know what the app really does with your documents: maybe the programs takes you documents and send them to someone. But this is not a problem for a blog: because, when you write on a blog you want the maximum possible number of people reading it. The other problem could be the fact that the owner of the application can delete you files, but this is simply solved with frequent backups of the blog. If in the future Google will decide to delete one of my post, I'll open a new blog on another platform and repost it.
    As usual, you don't have to be fundamentalist: actually Blogspot works fine and I never had problems about freedom with it. So there are no rational reasons to not use it. If in the future there will be at least one reason to suspect that blogspot fights my freedom, I'll find a solution.

    ReplyDelete
  15. Well, by using Blogspot you support a proprietary service instead of free software, and you provide even more statistics to Google.

    However:
    What is your plan? Should it have its own window management? Should KDE API/applications be ported?

    ReplyDelete
  16. I decided to use the toolkit released by www.carto.net: it allows to easily create textboxes, buttons, windows (and all the other GUI objects) in Javascript + SVG.
    Basically, the idea is to fill every window with an iframe, that will contain the application itself: this way, every developer can write an application using its favourite web language.
    Since they are structurally different, I think no one KDE API should be needed. Stibium won't need the code of KDE, just its appearance. Anyway, some plasma widget could be "ported" from JS+QML to JS+SVG, so they will work in Stibium as well.

    ReplyDelete
  17. No doubt your efforts are very appriciable.And I like your Idea about the gift which you decided.YOu and all who were with you in this great effort did well.Although I can't check it at the moment beacouase of some more research on cloud desktops

    ReplyDelete