Smeegol NoGo MeeGo GoGo
Just came back from FOSDEM.
I also had a chance to talk with Jos about ODF Web and ODF Collaboration. Jos gave a great talk about his ODF Web Javascript Framework which emerged from his ODFKit efforts.
Jos had a very important slide in his talk which echoed my own believe: NO CONVERSION! This principle guided the design of his ODF Web Framework. NO CONVERSION simply means that Jos does not try to heuristically (aka lossy) map ODF to HTML and then map HTML heuristically (aka lossy) back to ODF. Instead Jos decided to have a clean 2-tier architecture which cleanly separates the content- and the view layer: ODF is content and HTML is the view. I think that’s the right approach. Even more: I think if you start adding “smart conversions”/”heuristics” and other “intelligent mappings” things will get ugly sooner or later. [And from my experience on OpenOffice.org filter hacking things will get messy sooner than you like. Always keep Murphy’s law in mind: What can go wrong will go wrong!].
We also had a chance to talk about Operational Transformation (OT) in the context of ODF. I tried to argue that what is really missing in ODF is a list of “atomic changes” a user can make to an ODF document. If we had this list of “atomic changes” we could build a transformation on top of it. For OT it is very important that you have “atomic” operations, since you need operation transformations for every pair of operation. E.g. if you have |OPS| operations you need |OPS x OPS| transformations. So keeping |OPS| small is quite important!
Assembling the list of atomic operations is a lot of work --- admitted. However it is work that every designer of an API needs to do anyway. I really believe that some input from the ODF API projects like Oracles’ ODFDOM, IBM’s Simple API for ODF, ANR’s LPOD and Jos’ ODFKit could really help.
Let me finish my post by a classification of change to an ODF document:

I believe that for change tracking we only need “atomic operations” and a way to combine them to “compound operations”. I don’t think we need to be able to track changes to the XML tree or the XML text. In fact I think it does more harm than good.
Google Code In – My Summary
It was my first time I mentored a couple of students during a Google sponsored project. It was possible to submit non-coding tasks as well. So I focused on promo stuff.
Results
Over all I submitted ten tasks (nine could be closed).
The first block of tasks (solved by Todor Stoyanov and Paul) was about the creation of a free/open content collection that could be shown during demos and presentations or could be integrated into live CD/DVDs.
The second block of task was covering KDE and FLOSS in the area of education (solved by TheOne and Giannis Konstantinidis). It started with a survey of needs of students, doing the survey, analyzing student tasks and ended with a concept for students how to promote KDE and FLOSS at their school (incl. promo material e.g. a poster, presentation, talking points for students etc.). One of the students is going to test it within his school. Isn't that rocking?
I truly believe that KDE and FLOSS (esp. KDE EDU and the openSUSE based Desktop4Education and Server4Education projects) have so much to offer for schools and students. We should do even more in this area.
Challenges
For me it was very difficult to set the level and the time needed to fulfill the task when I was submitting it. It depends so much on the skills and the age of the student. The task to find free music and test it with Amarok (support for CD cover, lyrics and Wikipedia information) would be easy for a student with installed KDE and with some experiences with free and open stuff. A student new to the open source world will need days to work out that (for him) difficult task.
Summary
All in all it was much more work than I expected, on the other side it was a wonderful experience to see how the students developed themselves over time (and how fast the tasks were taken). It was a great success and I am looking forward to the next time.
@my students: Thanks for your contribution. It was a great pleasure to work with you. Let's keep in touch. Let's keep on rocking the world!
Lightening up Evolution with Exchange Web Services
Off-late we have been working quite aggressively on improving our exchange connectivity using Exchange Web Services . Some evolution hackers sat together during GUADEC 2010 and discussed on the focus areas which our community users as well as corporates would be interested in. Exchange Web Services was on top of the list and David Woodhouse kick-started the work at the same time! The development went on in David’s repo – http://git.infradead.org/evolution-ews.git and you can watch out the progress there..
The festival season has started for evolution exchange and we have evolution showing the folders, mails and meetings using Exchange Web Services. We currently just have the read-only support for mailer and calendar at the moment and we are working towards providing a complete support for calendar, mails and contacts.
Its always very nice to thanks all the contributors. Thanks to David Woodhouse who kick-started it, Michael meeks he is always there :), Johnny, Bharath Acharya, Akhil Laddha, Chen, Fridrich who has been constantly getting it to compile on Windows…
There are more developers getting involved now and thanks to the organizations for supporting the development!! We are looking forward to deliver the package by the beginning of May 2011 for all the users.. One would be able to use EWS connector with Evolution version 2.32 onwards..
Is openSUSE for users with a little computer knowledge
One post on opensuse@opensuse.org made me think about what makes openSUSE a bit hard to chew for new computer users.
In particular the post was about NTFS usage.
There is a short article how to fix default settings:
http://en.opensuse.org/SDB:NTFS
More Board For More Geeko
Real hackweek, protected hackweek and long hackweek
Virtual Machine eXtensions instructions allow trap-and-emulate virtualization. And KVM exposes VMX in a convenient way to userspace in Linux. Virtual Machine Monitors(VMM) like qemu-kvm use the KVM API exposed by linux to
x86_64 processors boot in real-mode. In this mode it can use only 16-bit addresses, ie., upto 1MByte RAM. The execution would begin at physical address 0xFFFFFFF0. Then the software has to switch to protected mode where protection and paging is possible. Paging is optional, but almost all OSes use demand paging extensively. Now 4 GBytes of linear address space is used. And then CPU can be switched to long mode i.e., 64-bit mode. Paging should be disabled in 32-bit mode, before switching to long mode. There are also other modes of operation like virtual-8086 mode to allow executing legacy real-mode software from protected mode, SMM for OS transparent execution of OEM specific code.
I had limited time and very very limited skill at hand. So aiming for the sky was not an option. Hence wrote a very simple VMM that directly starts the guest at address 0H, in 32-bit protected mode with paging disabled. And supports only insb and outsb as the only form of interaction possible for the guest. The guest is a simple static linked 32-bit program that doesn't use any library, and linked to start from 0x0. The guest simply reads a byte using insb and sends byte+1 back via outsb. The guest would halt, when it gets the, "Answer to the Ultimate Question of Life, the Universe, and Everything". The VMM reads the byte value to pass to the guest from stdin and prints its response in stdout.
The KVM API is really very easy to understand and use. But some knowledge of the processor was required to make use of it. Intel manuals helped there. I don't have good understanding of things yet, but something is better than nothing.
I was occupied by quite a lot of things in life and work in the recent past. So I wasn't really planning to participate and make this a real hackweek. Also a National holiday for Republic day of India, bang in the middle of the week prevents this hackweek from being a long hackweek! But seeing videos of my colleagues from various parts of world having fun, I couldn't resist and decided to go for the virtual hackweek. I thank my employer for giving me this protected hackweek, and let me learn/do things protected from everyday work.
Boo
Arts, buffer, check, clutter, cobbler, colorblind, concurrent, convert, cook, crash, dialog, dump, expect, file, folks, fortune, genius, global, hello, indent, less, links, meanwhile, mirror, screen, sparse, suck, tree, units, words. What do these ordinary English words have in common? They are also names of software projects, which becomes a problem if you want to recognize package names in text. I understand that in the old days, the name of a command or application was only relevant in the context of the computer it ran on, and file names had to be short. Some of these names have allowed for a variety of jokes. But why, in the age of portable programs, WWW and search engines, can’t people come up with less ambiguous names? I mean, it’s not hard to join two words, or, at a minimum, prefix a word with a vowel, like, uhm, a round fruit does. 
Oh, and did I mention that we have over 160 packages with a 2-3 letter name? The one mentioned in the title is a programming language, btw.
Yay! LibreOffice 3.3 released
Prague hacker crowd waiting for the fun to start:
Ready to rock!
Kendy waving the LibreOffice flag:
... and the final baptism of this baby of ours:
Many thanks to everyone who participated! Another round of thanks to Kobliha for photodocumentation. No animals were harmed and no hackers got drunk while producing those pics.


