Older blog entries for caolan (starting at number 202)

Converting LibreOffice dialogs to .ui format, 100 conversions milestone

We’ve now reached 100 dialogs and tabpages converted from LibreOffice’s classic fixed widget size and position .src format to the GtkBuilder .ui editable by glade format. I won’t repeat the full reasons for the conversion, but I’m particularly happy with the new accessibility support, both for the new containers and the .ui loaded.

The a11y stuff can now generally be describable in the .ui file rather than sporadic hard-coded calls here and there. And with the new mnemonic widget for label support, setting in the .ui explicitly what a label is a label for overrides the (eventually to be removed) ugly guessing short-cut code in vcl and sets the default a11y relationship between the label and labelee.

So setting mnemonic widgets in LibreOffice .ui files is now strongly indicated.

Here’s a hopefully helpful step-by-step tutorial for converting a simple dialog from .src to .ui

Syndicated 2013-01-24 11:36:29 from Caolan McNamara

libreoffice sloccount

Output of sloccount on the fedora libreoffice pre-build unpacked libreoffice, i.e. basically the sloccount of libreoffice minus the external modules otherwise normally found in the cross-distro build like libxml2/mozilla/libwpd/etc. So it’s a lower-bound count of libreoffice. Summary comes to 5,167,387 lines.

cpp:        4567442 (88.39%)
java:        387446 (7.50%)
ansic:        92834 (1.80%)
perl:         49149 (0.95%)
python:       27399 (0.53%)
sh:           18174 (0.35%)
yacc:          8235 (0.16%)
cs:            6648 (0.13%)
asm:           3245 (0.06%)
objc:          2600 (0.05%)
lex:           1991 (0.04%)
pascal:         900 (0.02%)
awk:            849 (0.02%)
csh:            247 (0.00%)
lisp:           115 (0.00%)
php:            104 (0.00%)
sed:              9 (0.00%)

don’t get too bogged down in the small numbers of possibly mis-detected source languages

Syndicated 2012-09-12 23:20:36 from Caolan McNamara

Olympics LibreOffice Style

Just noticed that a random fairly lowlevel-dependency-affecting commit caused four LibreOffice tinderbox buildbots to kick off at the same time. Shorter green bars the faster, so as the Olympics has begun, the gold goes to Norbert’s MacOSX Intel box, silver goes to Norbert’s Gentoo box, bronze goes to my Fedora box… but drug test proves that its an incremental build, not a true from-scratch build, so embarrassing disqualification awards the bronze to Lubos’s OpenSUSE-clang box.

Syndicated 2012-07-28 22:43:43 from Caolan McNamara

apple pict documentation

“picture size; don’t use this value for picture size”

Syndicated 2012-07-27 09:43:37 from Caolan McNamara

core components of the core

“specifies a service which allows interfacing the core components of the core”, that’s clear then I hope.

Syndicated 2012-07-26 09:23:09 from Caolan McNamara

deleted easter eggs: team photos, etc.

More nostalgia. Some time around 2010 all the easter egg photos got stripped out of OpenOffice.org. FWIW…
Calc Team circe 2002 (?). What you used to get with =STARCALCTEAM(). This one is still available apparently in the last version of Symphony
writerteam Geordi Release 2002/2003 (?). This one was the last picture you used to get on StarWriterTeam + F3. (Yes, there was a sequence of Star Trek related release names.) I met mmaher, back row, second from right, at my brother’s housewarming earlier this year.
writerteam StarOffice 6.0 Release 2000-2001. This was the earlier version. Seeing as I’m pasted in at the back but mtg (front row, second from right) is present in the flesh it must have been made after March/April 2001 after I transferred from Hamburg to Sun Ireland. Finally met up with mtg at Dublin Zoo + Ballymore Eustace a month ago after a long gap.

The Easter egg police didn’t find them all. At least one of the most ridiculously obscure and pointless Easter eggs still apparently persists in all descendents of StarOffice in each exported .doc. Only mtg ever noticed as far as I know, and only noticed a few months ago after a gap of 11 years or so

The earlier “remove rude comment” police didn’t quite grok the light weight version of hungarian notation we use either, so my use of airlied‘s (then at least) favorite metasyntactic variable in it’s hungarian notation variant of nArse survived that cull and lives on in the rather crufty starmath/equation editor import code.

I miss =game(“StarWars”). If a demonstration was heading south it could always be recovered by launching starwars. “My god, they translated it to German” is the most memorable comment from some LinuxTag or other that I can remember. German was the only language it was in.

Syndicated 2012-07-22 00:02:55 from Caolan McNamara

writer class diagram, circa 1998 ?

Did some tidying today, and inside the box containing my (vitally important) vt220 and (equally vitally important) Ximian Monkey I found some hard drawn class diagrams for the core writer classes. The back of the sheets have some unrelated text with a 1998 date on them. I think I got these from khz who probably got them from jp, looks like that class diagram style anyway. Here’s the scanned pdf for posterity

Syndicated 2012-07-04 20:55:38 from Caolan McNamara

8000 commits

ohloh reckons that this week the count of commits in LibreOffice belonging to me hit 8000 accumulated over last approx 12 years.

I thought I’d sample each per-thousand rollover to see what they were…

Commit 8000: A minor startup time improvement and code simplication
Commit 7000: fix dnd crash. Generic bug fixing of fdo#39950
Commit 6000: callcatcher: remove unused code. Removing a few hunks of code that get compiled into the product, but that nothing calls. Some of the callcatcher foo which we use to trim the fat off LibreOffice
Commit 5000: Generic bug-fixing from grovelling over abrt traces, rhbz#710004 band-aid for immediate crash in IsAlignPossible.
Commit 4000: Workaround a weird-ass warning. from a minor compiler bug gcc#47679.
Commit 3000: Fix BSD uno bridges. We merged the various uno bridges together for the various unix platforms that use gcc to reduce the burden of maintaining so many. So needed to add the little register return quirk of the BSD platforms.
Commit 2000: Silence the (then) new gcc 4.5 warnings in our code
Commit 1000: Documented FSPA anchor values should override escher attributes when different. Efforts to get object positioning right on .doc import
Commit 1: MSOffice Controls {Im|Ex}port. Apparently my first post-StarOffice commit. Getting those “OCX” controls imported from MSOffice file formats.

Does this mean I’m an awesomely productive coder versus everybody else ? Nah, not really. For one thing, we started off with CVS went through mercurial and end up with git, and there’s generally a lot of difference in how many commits you generate with commit-unfriendly CVS vs git which makes you commit gung ho.

And there’s differences in commit style from one person to another too of course. I tend to generate a lot of commits because I like to refactor and code in “see my train of thought so you (ok me when I have to revisit it) can see where I went wrong if I do” steps rather than dump in a single commit that affects a hundred interconnected things. But it’s all the same amount of code at the end of the day.

Another wrinkle is that various development rules ended up hiding the true ownership of a lot of older commits. e.g.
a) Per day-0-release commits were all flattened of course, I only worked on StarOffice a short while before that event, so that’s a fairly small amount for me. But presumably a truly frightening number of commits for e.g. jp
b) for a while we worked by commiting only to cvs branches which release engineering would merge into master, e.g. this commit is an example, which is why the Hamburg release engineers hold unbeatable commit rates :-)
c) And later the burden of commiting to OpenOffice.org for non Sun staff became almost impossible to bear, e.g. provide install sets for Windows and Linux, get a QA volunteer to QA the install set for you and sign off on it. Which was all pretty hard to do given the speed of the one or two windows buildbots available for the purpose and the limited number of QA people. Much easier to just dump the patch into bugzilla and see if someone inside the bunker could take care of all that for you, e.g. commits like this

Syndicated 2012-05-20 20:12:33 from Caolan McNamara

shiny langtag library

liblangtag looks very nice. I wonder if there’s anything in my abandonware localehelper that might be useful to stuff in there. Maybe some of the locale to langtag mapping stuff.

Syndicated 2012-03-13 13:15:34 from Caolan McNamara

libreoffice help ported to clucene

From the things that make me happy department. Years ago our help documentation source was parsed with a bunch of java tools. At the time gcj was the only possibility for us in RHEL/Fedora and the build time for all localized langpacks that we included was about 26 hours in our build system.

Which was a bit depressing.

So I rewrote it in c++, taking super care to keep the same JavaHelp-derived format and so forth. Which brought build times down to about 10 hours.

Which made me happy.

At some stage though, then it was decided to then index our help with lucene, which brought back java as a build-time and run-time dependency for building help and searching it at run-time.

Which made me sad again, though openjdk was the default for us at this stage, so it wasn’t as much of a pain, though that’s why you have that perceptual lag when you first search for a term in help.

But now, for LibreOffice 3.6, Gert van Valkenhoef has ported our lucene code to clucene. helpcontent builds faster, and there’s no lag on searching for something in help.

Which made me happy.

Distro’s that want to use –with-system-clucene will need to build and install clucene’s contribs-lib

Syndicated 2012-03-08 12:21:41 from Caolan McNamara

193 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!