boemann's blog

    boemann's picture

    Calligra Words junior jobs

    2012
    21
    Jan

    I often get asked about junior jobs in Calligra Words. I ususally say no, but now I actually have some.

    The reason I say no is that there are no easy jobs left, and so jobs would take much more of my time than I would like. And I also don't want to purposely leave unfinished stuff behind.

    Anyway here is a brief synopsis of the junior job: We have code that applies bold, italic etc, and it works, except it doesn't respect table cell protection. The job consists of repeating an example I've already made to the application of bold, italic and several other similar things.

    It's pretty easy copy,paste,edit and will give you practical experience with the visitor pattern

    boemann's picture

    jhk where are you

    2012
    13
    Jan

    Have anyone seen user jhk or know what his real name or email is

    If so then please leave a note either here or on irc #calligra

    He has started some work on Calligra Words that I'm really interested in and I havn't seen him since middle of december.

    boemann's picture

    Font rendering in Calligra Words

    2011
    10
    Dec

    I've just committed a fix to the Calligra Engine, so that font rendering will be without hinting when compiled against Qt 4.8.

    And here are the obligatory screenshots to prove it (thanks buscher). Both are with system wide hinting turned on.

    First on Qt 4.7:

    And here on Qt 4.8:

    Big thanks to Eskil Abrahamsen Blomfeldt at Nokia for implementing it in Qt.

    boemann's picture

    Calligra Words

    2011
    7
    Dec

    Allow me to introduce the amazing new word processor that will be released with Calligra Suite 2.4 in 2012. It is fast and nible to use, and using the powerful Calligra Engine we have made sure it can load .doc and .docx and ODF documents. And with so astonishing quality, that it will be your favourite for viewing such documents.

    For writing and editing we are developing an efficient and innovative user interface. It has a lightweight menu bar with only the basic File, Edit, View, Settings and Help menus. Everything else is manipulated through the sidebar.

    And by choosing ODF as our native loading and saving format, we have ensured that your documents can be exchanged easily with other users. ODF is chosen by many governments and users around the world.

    Our aim is to become the word processor of choice for everyone. In the following releases we will gradually expand and improve our user interface so you can insert and manipulate more of the fantastic features hidden in our engine. But even in the first release you can add and manipulate many of the basic document elements like tables and lists plus more special elements like footnotes, endnotes, autoupdating table of contents, graphics (the text flows around it) and even a bibliography.

    We are still in beta phase of development which means we fix bugs and improve the stability, but we are no longer adding new features for the first release. We are regularly releasing beta snapshots and would like to invite you to thoroughly test and report any issues you find. Especially in the areas of editing and saving. This way you can be part of making Calligra Words the best it can be when we finally release.

    boemann's picture

    How to make a new layout engine for Calligra Words in 4 months

    2011
    17
    May

    First you need a lot of dedication and time. I've spent like 15 hours a day every day since February, and since April Sebastian Sauer have spent full days on it as well. It also takes a lot of spare time plus someone to pay for my living, and this is where Nokia comes in hiring my employer KO GmbH to let me do this.

    I should also thank Pierre, Pierre, Gopala, Stuart, Lukas, Elvis, Matus, Matus, Thorsten, Boudewijn and Pavol for their contributuions to Words in this period.

    What we have achieved is really really great. A whole new layout engine, that is close to a complete rewrite of the old junk that was in KWord. We still use the same loading, saving and editing code, but what you see on screen is all displayed by new code. It benefits from the old code giving us some valuable lessons on how not to do it, but we have also copied small chunks of code here and there.

    I started out with disabling Words completely and for the next month or so I experimented with moving code around, changing dependencies, and so on, so that we would have a dedicated library for textlayout. It took a couple of tries, in more than 50 local branches, but in the end I got it right and was able to move on. At this point the textlayout library did nothing, but all the old applications were able to compile, but obviously not show any text.

    The next month I made rapid progress, thanks to the sound design I had created the previous month. Quickly it was able to layout plain text, with fonts and line spacing etc. And although it was designed with pages in mind, Words was still completely disabled from compilation at this point. Then tables were added and again thanks to the sound design it only took me a little over a month. Okay to be fair I did reuse the old borderdrawing code I carefully created 1½ year ago.

    Along came April and the Calligra Sprint and Sebastian came back from his long vacation and within days he had gotten Words compiling again and started using the new textlayout library. And this would be the first time we would see more than one page being drawn by the engine.

    The next month we fixed bugs and added small features, Thorsten started throwing hundreds of test documents at the engine revealing many issues which we solved, almost as quick as he found them, and special attentinon was put to testing the Stage application which also uses text rather heavily. I didn't want to break Stage but breaking Words was acceptable to me Sebastian and my comaintainter Pierre, so the decision was made to merge our branch into master. That sparked many of the people I mentioned in the beginning to begin contributing fixes, and reporting bugs, so it turned out to be a good decision to merge as we have moved forward ever since at an incredible pace. At this point I added text-runaround back in (which was almost a verbatim copy af the good work by Pavol Korinek). Adding anchoring proved a bit more problematic with lots of endless loops needing to be fixed.

    And in the middle of this month we also tagged a snapshot alpha release. Which if you try out will see is taken right in the middle of the anchoring work. So your milage may vary and we have not been idle since then so many bugs are already fixed and will look even better in the next snapshot in a month or so.

    The next many months will be just as exciting where the focus will shift to reworking the ui.

    As for the wider topic of Words in general I've added buttons so it's now possible to manipulate tables from the ui. We also merged a huge work by Ganesh who paid by nlnet implemented the next generation changetracking which will probably end up being the new standard in odf.

    So stay tuned for a the snapshot release any day now.

    boemann's picture

    Calligra Words UX

    2011
    22
    Apr

    Hot on the heels of the Calligra sprint in Berlin I attended another sprint in Berlin. This time the KDE UX sprint where we discussed many interesting topics (see eg. Aurélien’s blog)

    The two sprints tied nicely together for me as in the Calligra sprint we had a presentation of some usabillity testing on our current ux. This testing was done by Anna, a usability student from Finland. This confirmed what we already knew: Our current ux has quite a number of problems. So at the UX sprint I talked to Celeste, Thomas Pfeiffer, Björn Balazs and Peter Sikking on how to come up with a better user interface.

    The discussion centered around our tools system, and accompanying dockers, and I have a proposal for how to make it better so stay tuned over the next couple of months where I'll try and implement it. There is no screenshot as UX design is best done by designers and not the entire "committee of internet users". But as soon as it has been through a number of iterations of development and review by the designers, I promise I will come up with some interesting screenshots.

    Oh and I can't help but also note that the huge textlayout rework is already quite stable, and may very likely be merged in time for the first Calligra snapshot May 4th.

    boemann's picture

    KWord font metrics

    2010
    16
    Jul

    So it's no secret many people are not liking the font rendering in KOffice (they often say KWord, but it applies to all of KOffice). As it has been suggested a couple of times you need to turn the global font hinting down to slight to improve the rendering. I know this is unacceptable to some as they feel the system fonts look worse. Now, hinting or not is a religion and personally I like no hinting, but I respect that other people feel differently. So what we need is a way to make font rendering in KOffice only slightly hinted while respecting the users wishes for every other thing. This is however not possible in Qt as we speak, but it might be in the future.

    Right now what we can do is improve the font metrics, meaning the text on screen will look like what you see when printed and like it looks in various other word processors. This is is not about how the letters look, but about how they are spaced. But for your information, in the below screenshots, the hinting is set to slight (and obviously the subpixel rendering is off as all people should do when creating screenshots)

    First a shot of how KOffice currently looks:

    And then a shot of how KOffice will look with improved font metrics. Notice, how the letters are more evenly space in the word "look", and how the line length scale proportionally with the font size. To me this a big win. On the downside the distance between the IIIs are a bit more uneven (but really who writes a lot of IIIs)

    So what do you think. Is this an improvement or not. It for sure is an improvement of WYSIWYG (interoperability with other word processors, printing and export to pdf). Now the question is if it has a downside to the editing user. So what do you think?

    boemann's picture

    Using KWord as a .doc viewer

    2009
    18
    Sep

    I've been improving the .doc import of KWord over the last couple of months (besides working on tables)

    I must say it has been quite a dramatic improvement. From having each paragraph being loaded onto each own page with the formatting all wrong, no tables, page size wrong, and many other bugs all over, I'm pleased to say that I'll this weekend give the .doc import a real world test, as I'll be conducting a 2,5 hour lecture using KWord to go through a 40 page document with tables, images inside tables, pagebreaks and lots of formatting.

    I'm quite excited as this will be the first indication to me that KWord is getting ready for real use. We are not there yet for everyone, but I certainly intend to be using KWord as more than a .doc viewer in the future. That future still requires some hard work which I'm glad to be doing as my full time day job employed by KO GmbH

    boemann's picture

    KOffice tables and .doc import

    2009
    15
    Aug

    So Elvis Stansvik and I have been working on table support for KWord. And simultaneously I've been working on improving the MS .doc import filter for KWord. I've improved the generally font and paragraph import enormously, but in this blog I'll focus on the table import.

    First I'll show you the original MSWord table:

    And then how it looks in OOWriter 3.0:

    And in AbiWord:

    And then finally in KWord:

    I think you can see how good our support already is, and that we already beat OpenOffice. Obviously there are some glitches in the corners but I'm fairly sure those problems can at the very least be minimized.

    I also still miss to load the tablecell padding. If you look closely you can see the cells are not completely the correct size yet.

    So stay tuned as this will all come in KOffice 2.1 which has just entered freeze and will be released in a couple of months. Due to the freeze the table support in 2.1 will however only be as a viewer basically. Ok you will be able to enter text into cells and even create a table, but you will not be able to add or remove columns or cells or change column width etc. These user interface things are scheduled for 2.2.

    boemann's picture

    Kustodian - a taskbar and quicklauncher combined

    2009
    9
    Aug

    I'd like to introduce a little pet project of mine: Kustodian, which some people would call a ripoff of the mac dock or windows 7 taskbar. But I maintain it's a thing of it's own, but it indeed has some similarities.

    The idea is that when you click one of the icons it launches a new application. The number next to the icon shows how many instances are already open, and when you hover such an icon a dropdown/popup immediately appears with thumbnails of the windows. When you click one of those thumbnails you bring the window to front/minimize/restore just like you are used to.

    Some icons/applications on the Kustodian are marked as favorites and appear even when there is no number next to it. If you launch and application that is not already there it will appear and you should be able to mark it as favorite.

    Now you might wonder how much of this already works. Well it's a real screenshot so the icons appear and disappear, and there is a list of hardcoded favorites, which can launch new instances. The popup is however blank at the moment, so I'd like to get some help from a plasma person who thinks this project is worth helping out. It follows that you cant actually manage your windows with this thing yet, although I've managed to use it as a day to day taskbar replacement for several months already

    Update: I've committed to playground/base/plasma/applets/kustodian, but don't hesitate to contact me on irc #kustodian.