Stuff Michael Meeks is doing
|
|
This is my (in)activity log. You might like to visit
Collabora
Productivity a subsidiary of Collabora focusing on LibreOffice support and
services for whom I work.
Also if you have the time to read this sort of stuff you could enlighten
yourself by going to Unraveling Wittgenstein's net or if
you are feeling objectionable perhaps here.
Failing that, there are all manner of interesting things to read on
the LibreOffice Planet news
feed.
Older items:
2023: (
J
F
M
A
M
J
),
2022: (
J
F
M
A
M
J
J
A
S
O
N
D
),
2021,
2019,
2018,
2017,
2016,
2015,
2014,
2013,
2012,
2011,
2010,
2009,
2009,
2008,
2007,
2006,
2005,
2004,
2003,
2002,
2001,
2000,
1999,
legacy html
-
Up early, pleased to see the
fantastic
cross-compilation work from Tor, Kendy, Fridrich & others. What with it being SUSE
hack-week Kendy's been working on getting the resulting binaries to run; which they now
do (under WINE etc.). So we finally have a live Linux -> Windows cross compiled version,
built entirely with Free Software tooling, inside a repeatable Linux environment. If you
have Kendy's hardware, that means you can build from scratch in under 15mins cf.
tsc
minutes. Hopefully this'll mean more frequent Win32 developer snapshots and more
reliable. Played with the build - finally the chance to test some Windows specific
improvements that I've wanted to hack on for a while. With Lanedo to work on MSI
packaging, hopefully we'll have a complete cross-compilation story for Windows for
LibreOffice 3.6 / 4.0.
-
Chewed & spewed more mail. Slogged away at a silly with calc unit
tests and locale setting. Finally got around to writing and sending my candidacy
for the TDF board elections.
-
Up late talking with Chris & Max.
-
Quick mail chew, really pleased to see the Android / LibreOffice
cross-compile building up to ~the end - although of course no GUI porting
work as yet. Set about growing my VCL re-factor to make that possible -
rooting out bogus X dependencies that have crept in around the place.
-
Quick lunch, chat with SUSE's PR guys. Hacked away, got the X
dependency out of the headless code, at least at link time. TSC meeting.
Discovered a load of unix dependencies in the headless code - need to
spend some time cutting those out.
-
Out to see Soham Village College with Rachel; thoroughly pleased
with the excellence on display. Home to the wife. Fun call with Jeremy
Allison until late.
-
Up early; took E. to pre-school, this time no tears -
progress indeed. Prodded mail, re-started Windows cross-compile.
Happy
birthday LibreOffice - only a year ago LibreOffice was
born
( hitting the ground running, with working test builds for umpteen
plaforms, repositories to work with, and fun
to be had ). What a difference a year makes to the project's
maturity, growth, feature depth and (invisible to users) code
quality, it's fantastic to see the positive difference that SUSE's
investment has made.
-
Lunch, interview, re-factoring unit tests to prune duplicate
code, and make them small & sweet.
-
Hacked away at misc. regressions from unit test code-sharing,
until everything looked pretty, and compiled. Switched to gtk-broadway
lots of cleanups there, finally got very much better behaviour.
-
Freedom in Christ course at our house in the evening.
-
Chewed mail; call with sb, worked with Moggi on VBA unit
tests, fun. Setup a cross-compile environment with Kendy.
-
The process of removing and/or re-writing LGPL dependencies
to be under an Apache license is a pretty odious one. Since when has
it been acceptable to call this "IP Remediation" - my code
does not need remediating.
-
Worked on more code cleanup. Out for the first time in
ages with J. while E. baby-sat, lovely.
-
Up early; chewed mail quickly, tried to clear the decks
for hack-week, fixed a number of warnings & issues around the
propertylist cleanup. Created Lucas' commit account. Lunch.
-
Hacked away at misc. re-factoring and tried to clean the
fallback / slab menu up for openSUSE.
-
Lie in, picked up Emily & NCC, Roy Wheeler spoke
enthusiastically. Back for lunch with Emily + family, and talked,
played with babes, went for bike rides + tree climbing on the
heath afterwards - much fun.
-
Late tea, babes to bed, listened to Gordon sermon on
Judges
12 - interesting stuff.
-
Up early, pottered around, fixed up more compile issues,
tested & pushed my cleanup. Off to play with babes, and fool
about in the workshop making shelves for more books.
-
Bit more LibreOffice hacking & bug fixing before lunch.
Dropped H. to Phobie's for a party. Back for bike training in the
road. M. seems to have cracked steering, and N. starting by
herself.
-
Managed (finally) to get the drill-press + vice to produce
a reasonable reprap nozzle - my first, now for a good drive gear,
bed.
-
A day of hacking at last, dunged out mail, and set too
re-factoring the color / property-list code. Discovered a total
rats nest of lifecycle problems - a wonderful 'DontDeleteColorTable'
virtual method on an abstract dialog factory (etc. etc.). Dunged
out lots of complicated, fragile code - 500 lines down, more robust,
fixed some leaks, much more abstraction, clearing the way for the
next big cleanup here. Satisfying, worked late at it, stymied by
the three-layer reduction so couldn't test & push.
-
Up early, plugged away at some research / writing topics
much of the morning, presented in the afternoon; back to queued
mail and tasks.
-
Got a beautiful callibration print from skeinforge of
translucent beauty. It seems - good callibration, and nice
callibration shapes are apparently the key to good printing.
-
Dropped babes to school, and E. to pre-school (weeping
piteously to break a parent's heart) - of course she returns full
of bounce, not interested in coming home & with a fist-full of
paintings but ... even so.
-
Chewed through mail, reviewed a patch or two. Amused by
Olav's graph of Fedora dropping their CLA
seemingly a rather significant difference.
-
Worked late while J. put babes to bed, marshalling facts,
trying to pull thoughts together etc.
-
Dropped into Cambridge, meetings, lunch, Simon kindly dropped
me back - fun. Plugged away at bugs and e-mail in the afternoon.
Got the most beautiful printout yet from the reprap in the evening -
translucently thin and fragile, lovely.
-
Started working through an un-blocked freedesktop mail-backlog,
encouraging to see all the progress. Reviewed and back-ported a couple
of patches, lunch. Set too writing LXF column.
-
Fixed up some (apparently missing) git notes I needed, and
re-ran some analytics. Wrote status report for the week. Got column
sanity and accessibility checked and sent.
-
Up rather late writing customer presentation for tomorrow.
-
Lazed in, breakfast, NCC, Helen speaking. Back for a lamb
lunch with Clara & April over to play. Movie for the babes later,
fixed another repsnapper issue, and played with another python /
skeinforge mess.
-
Tea, read stories to babes, J. out, watched the Freedom in
Christ introduction session (by mistake - wrong one), and dug at
some Old Testament texts and their contemporary interpretation
in some more depth.
-
Up early, J. out for a training session on running pre-schools.
Baby-sat my four, before gaining another two fun-sized people to play
with. Fed six hungry little mouths with some help from the bigger girls.
-
Richard & George, then Rachel & J. arrived - ate with
them too & caught up until the Steering Committee call intruded.
-
Plugged away at LibreOffice / SC issues for a while, out into the
sun to teach babes how to cycle: balancing by steering, starting off,
signaling with the hands etc. fun.
-
Dinner, put everyone to bed. Plugged away at printing things
ineffectually.
-
Day off, turned spare kitchen work-surface into a 'clean'
bench to work at (for ~finished rep-rap pieces). This required
cutting and welding some handy fence-posts into brackets - my
welding skills are really not helped by the complete opaque
blackness setting that ~all welding glasses appear to
specialise in; totally safe and utterly useless. Created welds
with more spatter than weld (that held at least). Played with
the babes variously. Started to get tidied up a little.
-
Started digging through mail, and trying to unwind ongoing
mail delivery problems that broke libreoffice-dev delivery.
Pleased to see Libreoffice win InfoWorld's Bossie
Award.
-
Pushed a fix to enable hybrid ODF inside PDF export even if we
don't have the filter included to import them - it must be a moral good
anyway. More missed actions.
-
A great interview
from Fridrich and Elidh on the awesome Visio reverse engineering / import
work that they did for Google Summer of Code with lots of pretty pictures.
-
Lunch, TSC meeting, created new commit account and repo for
Caolan. Put babes to bed, worked late cleaning up loose ends.
-
Up early; off to Greg's kayak construction talk - off
to finish the slide-ware, met up with Linux User &
Developer's Russel.
-
Jan H. had found and was fixing more bugs LibreOffice
found in the latest gcc / LTO work with some lovely automated
test-case reducer, that would randomly remove lines looking
for a minimal document exhibiting the error. Fun.
-
Gave my talk on LibreOffice and SUSE (hybrid-pdf):
-
Wandered hither & thither saying 'bye to all the
fine hackers types. Plane-ride with Russel & Richard back
to Gatwick.
-
Poked at an interview on the train, looked at
E-mail backlog a little.
-
Up, dug through mail until Michael Miller's marketing
keynote. On to a series of fine talks on Gnome 3, systemd, and
Hackerspaces.
-
Met Tomas Chvatal and got his commit access setup,
finding some other wedged account requests at the same time.
Spent some time porting libslab / gnome-main-menu to Gnome 3,
seemingly it is redeemable.
-
Back to the hotel to work on gitdm statistics and misc.
slide creation.
-
Enjoyed talks on static code analysis, SSD caching, and
much of the hallway track. Lots of interest here, impressed with
Dirk & the QA team's progress. In particular Bernhard's OpenQA using KVM, screen
diffs and OCR - to build videos of installations, and/or really
any interaction (for any OS), with scripts, and videos, and
re-starting failed scripts after tweaking them etc. neat.
-
Caught up with Henri and Midgard, Mathias, enjoyed the
unusual music in the evening, bed late.
-
Up earlyish, off to the conference. Enjoyed misc. talks,
particularly Jan Hubicka's on Link Time Optimisation, and caught
up with a selection of the good guys wandering around. Fine
talk around samba
analytics too.
-
Out for dinner to a German place (in a high quality
thunderstorm) with the Desktop guys.
-
Up very early, breakfast, Mother dropped me at the station.
Train to Gatwick, checked in. Discovered that what used to be a
spacious jet is now a turbo-prop, how long before cheap, direct
Nurnberg flights bite the dust ?
-
Arrived, hacked away much of the afternoon adding the
pallete et. al. embedding feature to LibreOffice. Eventually set
off to the venue, tempted by the lure of pizza.
-
Helped Pavol get his reprap setup, and repsnapper going,
bit of bug fixing. Talked with vuntz and fcrozat until late.
-
Up early; kick-started stalled travel planning. Fixed more
bugs in the Paris conference schedule, back to gitdm wrapper
improvements; finally worked out where the bogus create tag was
and moved it, misc. cleanups and done.
-
Lunch, train to Brighton on the way to the openSUSE
conference tomorrow. Worked until dinner. Caught up with the
parents and the state of packing (and the container based
naturete of modern inter-house storage) until late.
-
To work, started digging at the statistics generation which
needs quite an overhaul for our new git repository structure. Slogged
away at that, learned about and added various new
git notes
that were required (in place of tags).
-
Team meeting, TSC meeting, customer call - more gitdm wrapper
hacking.
-
Quick mail spin, booked train to Paris for the LibreOffice
conference. Plugged away at the conference schedule, re-arranging,
talks and trying to cram them all in.
-
Tony over at lunch time to discuss forthcoming Freedom in
Christ course we're running next week; call with Charles, program
massage & audit to make sure all the talks are there. Call
with Caolan.
-
Bought lots of ETFs for my new Barclays ISA thing -
tax-free losses (I hope).
-
Up early, now Apache have some code available, I did a
quick analysis of the LibreOffice diff to Apache's codebase - which
is fairly large and growing: looking
only at C++ files (
*.?xx
) we have:
- We removed ~678 files (though some small proportion
of these are simple movements to improve encapsulation
and/or re-use). A hundred or so of the removals are obsolete binfilter
pieces, 55 from OS/2 code, 50 from adabas and evo1 connectors,
38 from soldep, 36 from killing vos, but many more bits of unused
cruft gone.
- We added ~914 new files modulo movements
the single biggest chunk is : 380 files is (IBM's) lotuswordpro
filter (forward-ported by us), then it gets bitty: VBA improvements,
the re-written RTF import filter, the ODMA and KDE file pickers,
OpenXML filter work, new unit tests, gtk3 pieces, AIX UNO bridge,
svg filter and lots more.
- These numbers compare with 21.5k common files overall.
As a reasonably useless statistic - but perhaps one that points
helpfully to the likelihood of merging conflicts we have ~2 million
lines of
diff -u
output over 7.7 million
newlines of code.
-
More concretely, having elided the code changes from the
(automated) emacs & vi modelines (to make editing much easier)
which touched each file, and looking only at common files we
have: minus 526k lines - always good to measure the negatives
first: we ripped and replaced a lot of cruft. And then we added
290k lines back again.
-
Naturally, lots of feature work was done in the new files
we added, so the net work input is much larger, the above number is
only looking at the common files; to gague the degree of code-change.
raw
data (11Mb).
What does that all mean ? well it is a lot of code-change and cleanup.
It is also a lot of scope for conflict when merging changes. Seemingly
there is an assumption, that code committed
to Apache OpenOffice will inevitably and automatically appear in
LibreOffice. This looks increasingly unlikely. Instead I suspect we
will end up cherry-picking and porting only those things that justify
the effort, as/when/if there is any such thing.
-
Pain in jaw (again) - an annoying intermittent wetware bug.
Re-based
feature/gtk3
branch and built it. Did some
hacking on windows to try to unwind some unit test breakage,
remembered again why I hate using that thing. File URLs that look
like file:///c:/foo/baa
which inevitably break when
ported from unix Incremental (no
action) re-make time of the order of a minute instead of a handful
of seconds - amazing.
OS | Hardware | incremental 'sc' make |
with glob fix |
incremental tail_build | same with glob fix |
Linux (openSUSE11.4) | 2.5GHz Core2 Duo |
6.8 seconds | 4.5 seconds |
32 seconds | 22 seconds |
Windows 2008R2 | 2GHz Dual core Xeon |
118 seconds | 14.8 seconds |
597 seconds | 80 seconds |
Of course, no doubt cygwin has a lot to do with the slowness, but
wow life is painful without that glob fix (which saves a ton of
un-necessary I/O). It -really- looks as if we should be building
with our own make snapshot on windows.
-
Tested Moggi's nice merged cells movement / undo/redo fix -
lovely. Poked at Bjoern's nice gerrit instance - looks easy to get
going at least.
-
Poked at the GTS
library to see if it could be used for 3D shrinking / slicing
for repsnapper, looks rather impressive
(though apparently sadly unmaintained).
-
Poked mail, fixed windows / URL related unit test error;
fixed up palette work before finally realising how fairly pointless
it is without export support, defer it until 3.5.
-
Removed duplicate dummy rules from dependency files. Lunch.
More hackery to cleanup color & theme loading information.
-
Setup share trading ISA with Barclays in the evening,
interestingly they've pipelined / bootstrapped the anti-fraud,
heavy-lifting legal regulatory stuff, so it happens later.
-
Up lateish, off to NCC, Tony speaking on fasting. Back for
a fine chicken dinner; out to Simon & Claire's to admire their
extended home & catch up with them.
-
Back, put babes to bed. Hacked on repsnapper - fixing
multi-shell shrinking, and cleaning the slicing code variously;
still badly needs fixing - and prolly a polyhedral shrinking
re-write to boot. Appalled to discover that CGAL is using the
'QPL' (in this day & age) as part of some mis-guided strategy
to drive commercial licensing.
-
Did a little research on Exchange Traded Funds in the
evening, it looks like you have to trust BlackRock; still - I
suppose the same is true for unit trusts - except that
they also charge you a fortune in fees.
-
Up earlyish, much house cleaning and preparation for M.'s
fifth birthday party. Lunch. Lovely sunny day - lots of babes
arrived, so happy with their unstructured playing that even
lucky-dips with prizes didn't tempt all to play the various silly
games.
-
Dropped Brighty's back, and admired Chris' lathe,
Cieran & Amy's wedding invites etc. Home, put babes to bed.
-
Dug away at making filter tests work (during the
build) in LibreOffice, after some extended pain - missing
components throwing obscure exceptions, configmgr needing
re-configuring, and the filter code doing strange things
all eventually defeated.
-
Poked at the LibreOffice conference schedule -
looking good. Dug at the MPLv2 a bit too. Stumbled upon
what looks like a rather nice gnumake speedup to acclerate
incremental re-building; knocked 30% off an incremental
tail_build/
make with nothing to do.
-
Up early, started on the mail queue - lots and lots of
nice work being merged, most encouraging. A morning of mail while
building the latest code. Laura & kids over for lunch.
-
Team meeting, worked through an amazing number of google+
'adding' spam which got wedged under a pile of un-read gmail mail
somehow - an encouraging number of cool kids there it seems. TSC
call, sent out minutes.
-
Plugged away at a cleanup / refactoring killing a few
hundred lines of cut and paste cruft. Dinner, put babes to bed.
More cleanup after dinner.
My content in this blog and associated images / data under
images/
and data/
directories are (usually)
created by me and (unless obviously labelled otherwise) are licensed under
the public domain, and/or if that doesn't float your boat a CC0
license. I encourage linking back (of course) to help people decide for
themselves, in context, in the battle for ideas, and I love fixes /
improvements / corrections by private mail.
In case it's not painfully obvious: the reflections reflected here are my
own; mine, all mine ! and don't reflect the views of Collabora, SUSE,
Novell, The Document Foundation, Spaghetti Hurlers (International),
or anyone else.
It's also important to realise that I'm not in on the Swedish Conspiracy.
Occasionally people ask for formal photos for conferences
or fun.
Michael Meeks (michael.meeks@collabora.com)