Skip navigation

Over the years, I met a number of people — trainers, speakers, hackers — who produce a lot of slide-ware (decks often more than a hundred pages wide), but never really use the conventional presentation packages for it.

Instead, they script things, (partially) autogenerate text, and use one of the markup-to-presentation converters out there: latex beamer, showoff, pandoc, or S9 (there’s much more).

Asking them why, the answer is always one or more of the below:

  • I prefer my text editor over the slide editing package
  • I want to track my content in a revision control system
  • I auto-generate content, or need to frequently merge stuff
  • and (rather infrequently): because PowerPoint is just sooo not cool

I can’t really help with the last item, but the first three clearly resonate well with me. While I was preparing slides for a hands-on session about ceph last year, I thought it would be pretty nice to get some tool hacked up that formats all the shell commands in nice typewriter script, and let me re-generate slides after every major rework (we were in the middle of moving demo setup to AWS, i.e. the ground was changing under our feet substantially). Born was the first rough cut of odpdown: https://twitter.com/thooorsten/status/532881180572811266

Why I didn’t re-use one of the existing tools from above? Well, the event in question had strict requirements on the design and formatting of the slides, so I was stuck with a given Impress or PowerPoint slide template. And secondly, I think the auto-generation software space in the ODF ecosystem is under-developed — this is therefore to some extent a showcase for what is possible, and what existing libraries are there to build upon.

So the initial hack has since been refined a lot, and test-driven by a few people (12 issues filed in two days by Adam Spiers, I was embarrassed!). Therefore today I feel confident enough to announce version 0.4.1 as a beta release a bit more widely:

Using it should be a matter of installing the package (manual installation instructions and a quick usage howto here), typing up some markdown, and calling it thusly:

     odpdown \
     --break-master=break_slides --content-master=content_slides \
     markdown.md corp_template.odp out_slides.odp

A quick walk-through PDF for basic markup is available here:

Basic markup

Basic markup

(/source)

Conversely, a quick walk-through PDF for more advanced markup is here:

Advanced markup

Advanced markup

(/source)

Have fun!

Apologies for being really extra-late with this report, but at least I don’t have to update this post with links to late video uploads or the upcoming LibreOffice 4.4 features page. ;)

Let me first thank Google’s OpenSource office for their generousity, our many volunteer mentors for their time & efforts, and of course this year’s ten successful GSoC students for their outstanding job!

Without further ado, below is the collection of the achievements during the 2014 GSoC period, in no particular order:

Andrzej Hunt

Andrzej is a returning GSoC student, and continued his work with the mobile story for LibreOffice. In particular, he worked on tiled rendering support in Calc and Impress, to be used e.g. for viewer applications on mobile devices.

With his words, the achievements include:

  • “Zoom” Controls for the gtk tiled viewer. (Zooming is however quite slow as we’re repainting a huge tile…)
  • A part selector for the gtk tiled viewer, i.e. permits switching between tabs in a spreadsheet, or slides in a presentation (writer documents are however rendered all as one huge block).
  • Associated zoom and part selection methods for the LokDocView gtk+ widget.
  • A quad-tiled widget for testing (nothing to do with real tile composition…): this allows for inspecting tile transitions/borders (and was useful for finding some more glaring issues in the calc implementation).
  • Some automated tests that aren’t yet fully enabled due to some further bugs that have been uncovered (which would cause them to fail).

Here’s how it looks:

Impress tiled rendering

Calc tiled rendering

Andrzej’s LibOCon talk gives even more details.

Anurag Kanungo

Anurag implemented an Adobe Pagemaker import filter from scratch, for the Document Liberation Project – a sister project of LibreOffice, also under the roof of The Document Foundation

In his words, this is what he did:

  • Reverse Engineered about the encoding of various shapes ( line, rectangle, polygon, ellipse) in the pmd file format, using oletoy.
  • Parsing of various shape transformations such as Rotation and Skew.
  • Implementation of proper geometry and output the shapes to open document format.
  • Rotation and Skew is implemented for the shapes. So, that basic skeleton of all the shapes are ready.
  • Fill and Stroke are reverse engineered and parsing is done.
  • Solid Fill and Normal Stroke for shapes are output properly.

Remaining issues:

  • Ellipse Skew Output is not perfect yet.
  • Fill patterns are to be implemented. ( Bars, Tilted lines, Grids etc.)
  • Stroke patterns are to be implemented. ( Dashed array, multi line stroke etc.)
  • Stroke are not output properly, Pagemaker stroke overlaps the shape where as open document format adds stroke on the outside the shape. ( To reproduce the problem , try a custom stroke on a rectangle with width 40pt and then convert).
  • Fill doesn’t work fine for open polygon.

You can find a pagemaker file and a converted odg file here for comparison:

Original PageMaker rendering
As imported by the new filter

Further details can be found on Anurag’s blog.

Valentin Kettner

Valentin jumped onto the thankless job of refactoring Writer – both the oldest and the largest application in the LibreOffice suite, with a lot of coding sins and technical debt. One example: sw/inc/doc.hxx is included by half of the Writer source files, and itself includes loads of other headers (by way of being the central class of a text document). Apart from undesirably tight coupling, that also causes a major and unneeded increase in incremental (re-)build times.

Below is the impressive list of changes Valentin did:

  • fdo#75280 Started cleaning up of sal_uIntPtr usage.
  • Split out the IDocumentDeviceAccess interface of SwDoc.
  • Started cleaning up of IDocumentDeviceAccess methods in SwDoc.
  • Removed getVirtualDevice and setVirtualDevice from SwDoc.
  • Cleaning up of IDocumentDeviceAccess methods in SwDoc.
  • Cleaning up of IDocumentDeviceAccess methods in SwDoc.
  • Finished cleaning up of IDocumentDeviceAccess methods in SwDoc.
  • Made SwDoc::getDocumentDeviceAccess return a reference.
  • Work on DocumentSettingManager for SwDoc.
  • Added 32DummyCompatabilityOptions to DocumentSettingMananger
  • Removed DocumentSettingManager methods from SwDoc.
  • Removed IDocumentSettingAccess.hxx include in SwDoc.hxx
  • Removed IDocumentDeviceAccess.hxx include in SwDoc.hxx
  • Fixed a typo in IDocumentSettingAccess.hxx
  • Added IDocumentSettingAccess& getIDocumentSettingAccess() to SwDoc
  • Changed DocumentDeviceManager includes to IDocumentDeviceAccess.
  • Split out IDocumentDrawModelAccess from SwDoc.
  • Moved SwDoc’s get methods from docnew to doc.cxx
  • Finished rebasing to master.
  • Refactored IDocumentChartDataProviderAccess in SwDoc.
  • Refactored IDocumentTimerAccess in SwDoc into DocumentTimerManager.
  • Refactored IDocumentLinksAdministration out of SwDoc.
  • Refactored IDocumentListItems out of SwDoc.
  • Refactored IDocumentListsAccess out of SwDoc.
  • Refactored IDocumentOutlineNodes out of SwDoc.
  • Refactored IDocumentContentOperations out of SwDoc.
  • Fixed build fail on MacOSX after f634ec5 .
  • Fixed another build failure caused by 2 refactorings.
  • Added #include to DocumentContentOperationsManager.
  • Refactored IDocumentRedlineAccess out of SwDoc.
  • Refactored IDocumentFieldsAccess out of SwDoc.
  • Refactored IDocumentLineNumberAccess.
  • Refactored IDocumentStatistics our of SwDoc.
  • Refactored IDocumentState out of SwDoc.
  • Refactored IDocumentLayoutAccess out of SwDoc.
  • Refactored IDocumentStylePoolAccess out of SwDoc.
  • Refactored IDocumentExternalData out of SwDoc.
  • Refactored SwDoc::GetEditShell .

Valentin’s mentor Michael Stahl’s LibOCon talk gives even more details.

Efe Gürkan Yalaman

Efe worked on the new LibreOffice start center, improving it such that templates now appear directly in the Start Center, and can be picked from there:

Screenshot

Below is what Efe achieved during GSoC:

  • Start Center now has TemplateLocalView with templates.
  • Default view (TemplateLocalView) is set to show all types of templates.
  • A few more handlers and toolbars got moved
  • Opening regions works properly
  • Creating and deleting folders works.
  • Moved initial parts of TemplateBar.(Save, Export etc.)

Future work:

  • Change Templates button with a dropdown to filter the templates for the Module.
  • Put a return point to Recent Documents. Maybe put it in the dropdown?
  • How should editing work?
  • Pondering about filtering (date, alphabetical, filetype etc.)

Efe’s LibOCon talk contains a demo and many more details.

Matteo Campanelli

Matteo worked on two pieces, both situated in the Draw and Impress text editing code. Firtly, the missing feature of setting a background color for text characters was implemented. This was needed especially be a number of Document Liberation Project import filters.

Screenshot

Secondly, a more challenging task was started, namely involving automatic flow of text from one box to another. Imagine having a text box containing too much content for its size. In some documents it is not possible or convenient to solve the problem resizing the box or the font. In these situations we may want the overflowing text to move to some other area in the document, such as another text box logically linked to the overflowing one. This is commonly used for two-column text layouts, but was missing for Impress

Screenshot

See also Matteo’s LibOCon talk for more details and insights.

Mihai Varga

Mihai successfully implemented support for OneDrive and Microsoft SharePoint 2010 native API into libcmis. He also fixed LibreOffice to work with those 2 new protocols. So users will soon be able to grab their documents from their OneDrive account or from SharePoint Foundation server.

Screenshot

See alo Mihai’s LibOCon talk for more details and a demo.

Krisztián Pintér

Krisztián implemented support for more colour palettes, reading of “.gpl” (Gimp) palettes and redesigned the colour picker to be able to use them. With the new colour picker the user has the ability to select the wished colour palette in a drop down menu that are included in the profile (by default there are already additional palettes included). As a document can have colours that are not provided by any colour palette (especially when the document is not ODF), Krisztián added gathering of all colours in the current opened document and presented them as “Document colours” palette.

There were 2 more changes that were missing, are very convenient and highly requested: recent colours and custom colour. With custom colour a user has the ability to select a colour from the colour spectrum, and use that in the document. Recent colour are those that were recently chosen by the user – it is unlikely that a user will use many colours in a document so such a list of recent colours is very convenient for users when they are creating a document.

All this changes have been integrated into master and will be available in LO 4.4.

See also Krisztián’s LibOCon talk for more details and insights.

Rachit Gupta

Rachit worked on the LibreOffice support for FireFox personas (a feature implemented in an earlier gsoc term). During this Summer of Code, he improved the usability of personas. LibreOffice version 4.0 introduced the possibility of applying Firefox Personas to the suite so that users can customize the look and feel while working with LO. However, to do that, the user had to open up the dialog, which would redirect them to a browser, search for the themes on the Mozilla website, copy the URL back in the dialog and wait till the theme was downloaded and applied. The aim for the summer was to make this process a bit more intuitive for the user. The user can search for themes by putting in a search term in the dialog itself. The dialog searches for themes using the Mozilla add-on API, and display the first 9 results with previews in the dialog itself. The user can select any theme and continue working as the theme is now downloaded in a separate thread which does not block the main thread. Also, the user can install a self made theme using oxt extensions. The user can install multiple oxt themes and select one from them.

Screenshot

Palneik Mihaly and Szymon Kłos

Both Mihaly and Szymon worked (independently) on converting legacy UI fixed-layout dialogs over to Caolán’s new format, which is editable by the glade UI builder tool.

When they started working, 64 Dialogs and TabPages were still awaiting conversion. It was uncertain how to launch all of them (obscure cases, unclear if related to long-removed functionality etc). These were the last, and therefore most obscure, difficult to convert, or just plain huge ones.

And the end of the project, each student converted approximately 30 dialogs and TabPages. That means, all .src-based dialogs were converted, as well as all .src-based TabPages.

From the wiki page tracking the UI conversion:

  • 842 .ui files currently exist
  • There are 0 unconverted dialogs
  • There are 0 unconverted tabpages
  • There are 0 unconverted errorboxes
  • There are 0 unconverted infoboxes
  • There are 0 unconverted queryboxes
  • There are 0 unconverted warningboxes
  • There are 0 unconverted msgboxes
  • There are 0 unconverted floatingwindows
  • There are 19 unconverted dockingwindows
  • An estimated additional 19 .ui are required
  • We are 97% of the way through the .ui conversion.

(footnote: by now 100% is converted)

Please also see Palneik’s and Szymon’s LibOCon presentations for details and their experiences.


As an aside: the next opportunity to meet loads of LibreOffice hackers will be during the annual FOSDEM in Brussels. We’re having a number of talks in the OpenDocument Editor’s DevRoom, and a stand in the K building. Looking forward!

In a nice culmination of a month packed with family festivities and a gorgeous community event (our 2014 LibreOffice conference), today is the day that the LibreOffice project turns 4 years!

LibreOffice turns 2^2 years

LibreOffice anniversary

The project certainly has come of age since that special moment on September 28th, 2010, when after weeks of preparation (and an insane succession of all-nighters), LibreOffice entered the world. Run on a shoestring, off of a box thankfully sponsored by one of our initial supporters (but surviving slashdot), as of today the project has matured into an international community of thousands of contributors, hundreds of developers and a (small) number of employed staffers.

Highlighting just two of the rather (from a 2010 perspective) incredible achievements of the project – that the LibreOffice development team managed to clean up the inherited OpenOffice.org code base to a point that we’re leading the pack from a defect density point of view – and that as a first, substantial donated funds will be used to further a LibreOffice port into the mobile space.

I’m insanely proud of being part of this, and would like to express my sincerest gratitude to all of you who helped making the LibreOffice project such a fun ride & success – you know who you are!

Here’s to LibreOffice, here’s to our wonderful community. Happy Birthday! \o/

Graphic based on an original svg from Chris Noack

I had mentioned plans for it earlier, and in fact already pondered the idea on and off while being at the old house: Do I really need a car? And as a corollary: Do I need my own car?

The answer started to be a resounding No at least for the second question, after we moved to Hamburg. Which ever way I was looking at it:

  • Convenience – someone needs to drive the thing, I can’t hack or read email while doing so. I therefore prefer trains. Also, it needs the occasional service, wheels swapping, washing etc, so it adds to your chores
  • Economically – a car that just sits there still has a chunk of fixed cost per annum associated. Also, it is a comparatively expensive asset, that given the value, depreciates quickly
  • Ecology – owning an item or not certainly has an impact on one’s ecological footprint; trusting the University of California’s math, a car’s production entails the emission of roughly 7 tons of carbon dioxide (using it is even worse, but that would not be a fair comparison).

So with our usage pattern, and the above rationale, clearly we’d be well-served with one of the many budding car sharing offers that are available these days in Europe’s metropoles. If you pick a supplier that is either big enough, or managed to sign joint-ventures with sharers in other cities, you even have the added benefit of taking high-speed inter-city connects (train or plane), and getting into a car for local transport at your destination (for much less than the usual car rental will cost you).

But I admit that owning your car has some amount of emotions associated (damn you, marketeers!), so I’m happy to report this had been catered for: the appartement house we’re now living in not only has two shared cars exclusively available for the tenants, but they’re in addition pure electric vehicles!

The cars available are a Smart ED and a Renault Zoe, both in the 2013er version. Coming from a BMW, I can’t but mention that especially the Smart ED is pure fun to drive. While nominally, 55 kW power / 130 newton metres torque and a curb weight of a bit less than 1 metric ton does not sound exactly like a sports car, this thing kicks pure butt at every traffic light in the city. The engine characteristic is entirely different from a combustion engine – no gear box, no clutch, no automatic transmission, no revving up the engine before it generates enough power – just pin down the accelerator, and you instantaneously have full torque on your rear wheels. Still makes me smile. Therefore emotionally, I was sold as well (and so was my beloved BMW E39 touring, October last year already).

Life has again been busy around here, so this post will be a bit longer. Event-wise, this year so far was packed with good stuff for me, let me therefore pick a few cornerstones:

After the habitual FOSDEM and CeBIT, there was a new event, the Dresden Impress sprint. Thanks to the generous sponsoring from the Dresden Technical University Institute for Applied Photophysics around Prof. Karl Leo!

Following that I went to LinuxTag in Berlin for a workshop and a meeting around LibreOffice certification, and was honoured to listen in to Jimmy Schulze’s updates on getting German parliament stand up against software patentability:

Jimmy Schulz at LinuxTag

Jimmy Schulz at LinuxTag

(he and his fellow party member Sabine Leutheusser-Schnarrenberger being named by others already as the only LibDems to be dearly missed in German Bundestag, after the defeat of their FDP at the recent general election)

Then came the annual LibreOffice Hamburg HackFest, this time generously organised (and diligently documented) by my fellow HHHackers Bjoern and Eike – while I was busy moving house and showing up basically for eating pizza. :-)

Which was one of three turning points so far this year – after almost exactly ten years of living in small-town Buxtehude, we followed the beckoning of the big city and moved back to Hamburg (almost) downtown. The reasons for that are numerous, but two of them I’d like to point out here: childcare offers for people who want to work fulltime is still largely a mess in western Germany (Hamburg being a very notable exception) – you’ll see below why this suddenly became relevant; and secondly because the public transport system is just soooo much better, to the point that I currently ponder getting rid of my car entirely.

What came next was a short trip to the Masters of Rock festival in Vizovice – despite more than 1000 km away and us camping out there, festivals are really a recreational thing for me. Let’s see if we manage to go in the upcoming years. Some impressions:

Sadly, for the currently-ongoing LibreOffice conference 2013 in Milano, I could only attend a mere day. Apologies to all whom I missed to say hello to, chatted with only briefly, or did not bid goodbye properly – the timing this year (see below) had me straddling between two things very close to my heart. Still, it was wonderful to be there and meet you guys – clearly also helped by great food and drinks. ;-)

Dining in Milano

Dining in Milano

And definitely, from past (double-) experience, the most live-changing event in 2013 clearly was this little guy here – can’t say how happy I am to have you now, Alan Benjamin!

Benni

Benni

Oh, and – the focus of my dayjob has shifted away from LibreOffice, over to datacenter topics like virtualization and cluster filesystems. But don’t you worry, I’ll stick to this project that I helped building – now in a purely volunteer capacity, like so many other contributors that still make a hell of a difference, in this wonderful community! :)

Still life

Mugs, Thinkpad W530, Emacs, Arabica

Already a while ago, but still worth sharing the pictures – FOSDEM 2013, another awesome conference, is over. LibreOffice was again there with a booth and a dev room, and some 17+ people from the project attending, manning the booth and holding talks.

booth picture

FOSDEM LibreOffice booth in K Building

Lots of thanks to the many helping hands, and hat tips to Eike, Cor and Rob for trucking all the stuff around. My dev room talk is available here.

A mere two weeks ago, TDF and the LibreOffice project also attended CeBIT, the world’s largest and most international computer expo. Hosted at the Univention booth, and professionally represented over the week by Thomas and Jacqueline, numerous questions were answered, explanations given, and many new and old relationships cultivated.

Further more, Florian, representing LibreOffice, also received the Linux New Media award for the best Open Source Presentation software. In more than just this aspect, the continued TDF and LibreOffice presence at CeBIT keeps paying off.

Kudos to David and his wonderful wife for hosting me and Florian for the night.

LibreOffice and The Document Foundation continue to grow, with a succession of events especially in Europe that left me lagging substantially in reporting back here.

LibreOffice conference 2012

In no particular order, three weeks ago, the 2nd LibreOffice conference concluded in Berlin. It took place at the conference center of the German ministry of Economics and Technology, clearly one of the best locations I’ve ever been for such an event.

Below you see the reinforced organizer team’s swag production line on Tuesday morning, in a hurry to equip the late-arriving green LibreOffice conference backpacks with giftware. In the end, we were lucky and all was ready & done for the registration at Wednesday morning.

swag production

Tuesday swag production

Tuesday afternoon then had a number of meetings, including TDF board and ESC. Below you see Italo with Olivier and Leif in the background, getting ready for the annual in-person board meeting.

Italo

Italo at the board meeting

For me, the conference was stressful and terrific at the same time – and we were more than grateful that it went so smoothly and successful in the end. A million hat tips to our organizing team, lead by Jacqueline, and to the two federal ministries for co-hosting. Most rewarding again for me, was meeting all the wonderful people from the community in person. Below you can see those of the roughly 180 that were still present on Friday evening.

group pic

Group picture

As we speak, the organizer and video teams are still busy populating the LibOCon 2012 reviews page with the slides and video footage; once that’s concluded there’ll be a separate announcement.

openSUSE conference 2012

hackers

SUSE hackers at work

Team diner

Team diner in Prague

After that, the SUSE crowd migrated a few hundred kilometers to the south, into the beautiful city of Prague (one would think, into warmer climate – but nope, while I was out in tshirt in Berlin, Prague had us stay inside hacking, with single-digit temperatures and drizzling rain). There, we attended both the openSUSE and the SUSE labs conference, and had some more focused team allhands sessions.

Great to see the many excellent SUSE hackers again, and to spend facetime especially with the LibreOffice team.

LibreOffice QA weekend

qa weekend

QA weekend

pizza

Pizza for QA volunteers

And even earlier, already end of September, the German-speaking community had their annual QA weekend meeting, at the lovely Linux Hotel in Essen, Germany. Was very happy to meet our QA volunteers in person there, sometimes for the first time, as with Florian Reisinger, who very energetically led through most of the QA topics. I can’t enough stress the importance of talking to people face2face every once in a while, we sorted out a number of issues there, that I believe would have festered much longer otherwise. With the ongoing fund raising for 2013, TDF will continue to organize those and similar events, and predominantly help with travel sponsoring for community members.

With LibreOffice again being part of this year’s Google Summer of Code, I was very lucky to have Marco returning to his nice svg export improvements from last time. Three weeks into the project, progress is lovely – here are two demo presentations, showing

(Page up/down navigates between slides, i shows slide index etc.)

Marco has been exemplary in minuting his progress, you can find his daily logs here, for

If you want to play with this, go grab the code, checkout the feature/svg-export branch, build according to the build guide, and check the Tools->Options->General “Enable experimental features” box. Enjoy!

After catching up a bit with the sleep deficit from the past three days, let me share a few impressions from the spring 2012 Hamburg HackFest. An amazing number of 30+ people gathered over the weekend at the Hamburg Attraktor, socializing, chatting, and working on all kinds of stuff, like

iOS UNO bridges, Calc unit tests, CSV import, Writer border enhancements, gbuild system, pdf export watermarking, UI paper cut fixing, keyboard shortcuts, startup performance, icon themes, UI mockups, adding comments for l10n strings, rtf filter fixes, svg import, gtk3 backend, drawing layer, help content, Unhosted connector, QA processes, bibisect, gerrit, Impress wide screen support, Impress toolpanel configuration, win32 cross-compiling, and chart bugfixing.

Let me also take the opportunity to thank our sponsors and supporters, without whom this event would not have been possible. In no particular order, Attraktor e.V. for hosting us, The Document Foundation donors for providing the funds for travel bursaries, Lanedo and nerdshirt for drinks and tshirts, Italo and Christina for cooking wonderful pasta, my co-organizers Eike and Björn for doing lots of legwork & organization, including provisions for couch surfing – and of course all attendants for sharing their weekend and merry mood with us!

full room at attraktor

Saturday morning, LibreOffice hackers at work

pair programming

Saturday night pair-programming

In total, we got more than 80 commits originating from Hackfest coding to date, I’ll update this post when more pending stuff arrives. Other posts about the hackfest here (updated):

Follow

Get every new post delivered to your Inbox.

Join 292 other followers