Sorry, I really hope I'll find ways to be more useful :/
Sorry, I really hope I'll find ways to be more useful :/
My fight with mozilla SDK continues. It's taking a lot of my time but I think it's necessary, it's not my favourite hack but someone must do it. So, since this has been the main topic of this blog lately I'm in debt of an explanation to my 3 readers. Gtkmozembed is a nice, simple widget that allows to embed mozilla renderer in GNOME applications. To be able to adopt it more widely in GNOME applications (see devhelp, yelp, evolution at least) we need to solve some issues:
I opened bug 140713 about this. Feel free to add notes there if you are interested. It's the first of the plan tracking bugs (man, I'm slow), I'm going to post one about gnome print integration ASAP.
I have too many ideas floating around, too many unfinished things, too many things I'm waiting for to be finally concluded but they keep getting delayed. Need to bring back sanity...
First step cleanup bugzilla, second complete the plan for 1.4. Third start really fixing bugs.
If there is something I totally hate is to wait ... I especially blame italian mail to take two weeks (so far) to deliver 80 Km far a mail I really care about.
I'm going to have a free Sunday finally, possibly the only one until October. I really need to spend it in something else than hacking :)
I completed my GRE patch, waiting for a review now. Luckily I think it will still be possible to run current galeon/epiphany code with just configure changes (keep to link to libxpcom at compile time basically).
On the bad side I doubt we will be able to have multi screen support any time soon. Mozilla widget/gfx code is not multihead aware. Most of the code would be easy to fix (apart the mess of having to keep gtk 2.0 compatibility), though there are some services that are global while they should be per-screen or per-display (most notably the look and feel service). Fixing this looks .... hard :/ It's a very frustrating situation: the incompatibilities between mozilla and GNOME platforms (or more in general linux platform, see the situation with translations) are a major block to further integration work. It's so demotivating to have the whole picture easily figured out on the GNOME side and then block on hardly solvable incompatibilities.
I think it's now clear that the two communities need to merge their efforts and build a common roadmap. The sad browser situation is only one of the issues. GNOME needs several mozilla.org functionalities (rendering engine and XUL for example) and mozilla.org platform needs a desktop (as a set of technologies, an user interfaces system, a set of guidelines, a GUI design philosophy) to be grounded on. Web technologies are going to increase (even more) their importance on the desktop and we need to ensure they are properly integrated in our platform ASAP. GNOME has no resources to reimplement XUL or a rendering engine. Mozilla.org has no resources to reinvent the desktop. If you add a components system and the ability to use multiple languages on the top of it well ... that's more or less what we are looking for. A native frontend is a good solution to the browser problem, the only viable on the short time, but it only goes so far.
Brendan "proposal" is interesting and we should carefully consider it. If mozilla.org is finally considering the free desktop as a primary target, and they are willing to promote _real_ integration with the free platform, then I think there is space for a merge. It's a lot of work and not only code to write or design. There are social spaces to share, conventions, habits, tools, roadmaps to merge. Though I think it's a necessary step for linux to succeed on the desktop.
(hoping to not get out of my dream to discover this is just a marketing strategy to push some applications in Linux distributions...)
My immediate reaction to Brendan article is mixed. Braindump follows.
- Mozilla foundation seem to be considering Linux like a primary target ("Let those enterprises migrate to Linux if it makes sense, or defer the hefty Longhorn upgrade tax by sticking with downrev Windows for as many years as makes sense."). This is a fundamental prerequisite if we want to build the future linux platform together.
- It seem to anticipate a different approach to multiplatform where native, available technologies are reused (while filling gaps on some platforms)
- Migration to the future platform need to be gradual. For reasons that I dont fully understand mozilla.org is advocating the substitution of current linux desktop applications with XUL based counterparts. The merge need to happen on paritary basis, gnome libraries or mozilla libraries are an equally good way to write apps until Gnomzilla platform is available. I can see new Evolution features being written using the Gnomzilla platform (Mono + XUL for example) and mozilla rendering engine integrated in the old code using gtk wrapper (gtkmozembed). I cant imagine adopting Thunderbird though. The prioritary goal is to have a mail client well integrated with linux Desktop. My feeling is that what you can really share cross platform are just the engines, the UI needs to be special cased to be really integrated. But, even ignoring this, it doesnt make sense to throw away all users benefits of current solutions to adopt immediately and completely the new platform. A gradual migration path is necessary ...
- I fear the complexity of the merge is heavily understimated. Given the current status of mozilla SDK I'd be positively surprised if by "2nd half of this year" we would have something that can easily work outside mozilla tree, based on stable API etc. Let alone how much time really merging it with GNOME technologies will take. Because of this reason gradual migration is even more important.
Anyway I think it's crucial that the two communities start to communicate and cooperate. (Got my first epiphany patch by a mozilla hacker, yay !)
I feel like we are at an important time for the linux desktop future. I really hope the result will be reduction of the fragmentation rather than increasing.
BTW the gtkmozembed GRE work is progressing thanks to the feedback, the help and more importantly the patience of people like bsmedberg, blizzard, darin, biesi. But yeah yeah this isnt really exciting anymore, everyone wants Gnomzilla now, I'll see what I can do :P
I have got a basic version of gtkmozembed working with the GRE. I had to strip out some features because I cannot use mozilla internal api. I think using the SDK is a better approach then having an interface in the middle to work around the problems with the SDK itself. The interface in the middle solution is a bit like claim mozilla failure to provide an usable SDK :) The API problems seem to be solvable to me, I'm more worried about mixing glib and mozilla api for the strings, especially because memory allocation is not compatible. Maybe the minimal embed string api should have a way to do unicode conversions (utf8 <-> utf16). Oh well let's see if there is interest in this approach at least.
Now that I have figured out the GRE thing I'll be back working on multi screen. Mark suggested me a way to test with software only. Rocks !
Xnest -ac -scrns 2 :1
Today I have to meet with my thesis co-relator. Hope everything goes well. Wish me luck :)
Did some basic work on multi screen, my problem is that I cant really test it. Synap promised to help though. Anyway is there a way to do test without hardware ? Alternatively, could someone send me the required hardware :P
Finally a few day out of civil service. Staying 6 hours a day with old people is ... well ... stressing ;) I went to skying yesterday and this morning, I got some photos but I've been too lazy to put them online so far.
We have a plan for Epiphany 1.4. Unfortunately because of post hacked widget problems we have not been able to publish it yet.
I'm trying to make gtkmozembed an interface to GRE. That way I think it will become a much more viable candidate to be used in other desktop apps. Immediate advantages are the ability to use it without ugly wrapper scripts with the mozilla libraries directory hardcoded and to not depend anymore on the whole mozilla browser installation. In the process I found an interesting bug in the SDK. Well the request for blocking 1.7 sounds promising. Thanks bsmedberg ! (I wonder if mozilla guys reads planet gnome).
Mark cleared my confusion on multihead. Next week I should be able to add multi screen support to Epiphany.
Seth posted a patch to add non local uri support to epiphany file pickers. Unfortunately mozilla support for gnome-vfs uris is still not complete and we had to delay it post GNOME 2.6.0. For 2.8 I think the way to go is pretty clear: complete mozilla gnome-vfs support and allow non local uri for almost all file pickers. On the short time (2.6.x) I'm not sure what's the best solution though. Mozilla 1.7 can already open all gnome-vfs protocols but not save them. The most conservative approach would be to enable local uri for open mode file pickers only if compiled with Mozilla 1.7. Otherwise we could make sure the operation doesnt fail silently when saving/opening a not supported protocol and show a warning to the user. Is the ability to save to webdav and sftp worth the confusion of showing smb mounts in the filepicker and then failing to save in them ?
I love the new bugzilla. Thanks to everyone that worked on it :)
As everyone else I've been following the languages discussion but I still havent build a definite opinion. I think it would be important to understand how much the ability to run managed code from the C/C++ code will be useful in practice. Anyway I hope to see a strong effort to find a common solution, fragmentation is a real and immediate risk.
I strongly feel we should keep very clear the distinction between platform and language. Using different platforms to build the desktop would have a strongly negative impact on usability (because of consistency but even more importantly because of integration) and code sanity. Havoc is addressing it very nicely in his document. When I hear "write once, run everywhere" I start to fear.
Keep up with the latest Advogato features by reading the Advogato status blog.