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
-
Mail chew in the morning; thankfully a quiet time over Xmas.
Chewed some minor OpenGL issues, implemented invert50 to fix an issue,
and added some vcldemo code for that on the way to Bruce & Anne's
in the car. Had some lovely meals, and fine time with B&A.
-
Up; chewed through some old financial records with J. looked
into setting up a SIPP variously. Double checked my Intel / GL driver
fix. Indeed the old apitrace succeeds perfectly with the new driver.
Caught up with the blog. Watched Hobbit #3 with the babes.
-
A lazy day; slugged and read Adventues in Realtime at
some length; had a walk on the race-course; watched The Hobbit #2.
Pizza for tea, bed.
-
Up lateish; slugging, played games, lunch. Bid a sad 'bye to
R & A. M&D etc. watched The Hobbit #1. Bed.
-
Went for a walk in the morning all together, to Lackford Lakes -
got soaking wet; very English weather. Back for lunch & mulled wine.
Played new games - Rapidough, Smash-Up etc. with T&B. on skype.
-
Stayed up late chatting, played 'Family Row' with T& B too
much fun.
-
Late breakfast, out for a walk along an ancient
Anglo-Saxon dyke nearby with the babes, had great fun swinging
from a tree there too. Back for snacks, Amelia & Robert
arrived later - lovely to see them; lunch, and presents.
-
Somehow the babes got nerf-guns that turn into hand-bags
from R. & A. - spent a while trying to persuade them not to
look down the barrel, fire them at people etc.
-
Watched Mystery Men in the evening, silly but
reasonably family friendly.
-
Up early; tidied kitchen a little, out to NCC for a quick
Christmas day service. Helped variously with preparation.
Bruce & Anne arrived. A lovely turkey feast, fine company,
present un-wrapping; and a relaxing afternoon. Babes played some
carols for the Grandparents.
-
Watched The Prince & Me 4 in the evening, put
babes to bed; stayed up late chatting, and getting to know A.
a bit better.
-
Up lateish; tried to recover giblets from M&S Turkey
that arrived with them missing; checked butchers with Fathaer in
town instead - a giblet free zone "I'd use Bisto myself" (said
the butcher); heh. Home.
-
Short walk onto the heath with various babes; Mum took
H. and M. to crib-service; poured over API trace / GL output;
finally upgraded the Intel GL driver - suddenly no problem; what
a waste of time; phew.
-
Mail chew; babes out skating, plugged away at GL vileness,
unbelievable - failure (after considerable use) of
glBindFramebuffer
- apitrace's that run nicely on AMD,
but fail hard on windows/Intel no discernable reason; the deep joy
of proprietary binary drivers, and a horribly designed and
under-constrained GL API.
-
Parents over in the evening, good to catch up with them.
-
Early partner call, into Cambridge with the babes - dropped
at the Fitz for sketching; caught up with those still in the office.
Set too debugging GL horrors on an Intel machine that finally fails.
-
Mail chew; admin, partner call, tried to get to some more GL
debugging done.
-
Up early; mail chew, and some more - 1:1's with Andras
& Kendy, poked at some Pivot import performance issues.
-
Managed to push last week's ESC minutes as a future blog
entry somehow; apologies for the noise etc. seems difficult to
remove it from planet aggregators once it has arrived; annoyingly.
-
Up earlyish; out to practice & play at NCC in the band.
Back for a quick lunch.
-
Into Bury St-Edmonds with four small girls to play at the
Apex in the West Road Church Christmas Carols.
Long practices through the afternoon, girls very taken with their
first largish orchestral experience; concert in the evening - fun.
Interested to play next-to Ruth Hole from the GB Junior Dressage team.
-
Up late; wandered the house mending things - water-butt
seal, trickle (gush?) vent on kitchen window etc.
-
Out to visit Martin, Mary-Anne & daughters for a fine
tea & time of fellowship, lovely.
-
Mail chew, hopefully a final interview for LibreOffice
documentation lead. Got my HD3000 setup with the latest GL drivers,
still can't reproduce odd crashing issue; annoying. Chat with Mihai.
-
Lunch. Anglian Water sent an engineer around to save us
money; won several new brass fittings from him; lets see.
-
H. home - disassembled old DVD player to play with the
pieces; fun.
-
Up early; mail chew; merged a patch; chunk of admin.
-
Interested by the SJW discusion, and amazed to find myself
with some things to agree with Eric Raymond about.
Now that's unusual. Unfortunately - I also have some sympathy for
the Contributor Covenant:
people shouldn't be abused and harassed and the whole world should be a
pleasant place to interact. The covenant is also unusually good for not
including "giving offense" as a cause for action, that's some real progress.
I agree with Bradley
that Social Justice seems like an important goal to fight for; me too.
My problem is primarily around enforcement of what look like common-sense
rules.
To Matthew Garrett (and other Geek Feminists) this appears to mean
enforcing a glass-ceiling
for Christians (and other small c conservatives) in Free Software and
business. A ceiling based, not on their contributions or on anything they do in
the project - but based exclusively on their personal ethical stance and its outworking.
ie. "they disagree with me on (insert topic), so they should never have a
position of authority". Is that Social Justice ? - perhaps. What gets
to me though is the application of that: cheering on and justifying internet
mobs attacking those with different views and driving them from their jobs. That
is what really worries me. Eric captures this risk rather well I think.
Sadly, the structures to ensure justice that we setup, can be and often
are perveted to create injustice: part of the human condition. When it comes
down to decisions that profoundly impact people's livelihoods - knowing that
there is a fair, reasonable, balanced, compassionate approach to project
discipline, removed from the heat of the moment is vital. It is on this basis
that Eric also ironically fails:
his call to eject or shun SJWs is also not the solution; indeed it looks like
a mirror image of the basic problem (surely) ? I'd want to treat SJWs
contributions like anyone else's, and to treat them with respect,
and to try to winsomely persuade them that meritocracy as well as a
pleasant working culture is actually a good and just goal. Anyhow,
I'd like to hope that whatever a SJWs views, we can be friends and work
together (I have lots of respect for several people with that worldview,
not just Matthew ) - work together without polarising and excluding anyone;
I certainly value interacting with their viewpoint. My hope is that
we can remove the blatant personal attacks on both sides.
-
Drove into Cambridge to pick up some awkward hardware - to unwind
exactly what is going on with GL on Windows / HD 3000. Home; installed
Windows.
-
Mail chew; more mail chew. Wrote a Linux Format column
on the awesome work from AMD open-sourcing huge chunks of their
driver and developer stack as GPUopen -
looking forward to seeing, and using the code.
-
Paperwork for vendor setup; built ESC bug stats; sorted
out my Linux Weekly News
subscription.
-
Out to hear H. play in the Soham Village College Christmas
concert in Ely Cathedral; lovely. Met Loraine & Martin too.
-
Up early; plugged away at E-mail, marketing bits etc.
Booked FOSDEM 2016 travel,
looking forward to it.
-
James and Kate over for dinner, really lovely to see them.
Today we release
an easy way to get stuck into playing with LibreOffice online alongside
ownCloud - please do checkout the CODE page and have a play.
The purpose of my blog here is to credit the people involved in the
development so far: currently all of the core work is by Collabora - that's
something we hope that making it easier to get involved will improve.
Some background
The history of the code we're showing today goes a long way back,
but the specific pieces necessary for this work are rather newer. The
initial work done around adapting LibreOfficeKit to implement tiled
viewing of documents (for Android) whereby LibreOffice provides a simple
API to produce pixels from abstract document regions was implemented by
a Smoose and Collabora partnership.
Follow-on work to get basic editing functionality exposed via the
LibreOfficeKit API was funded by The Document Foundation -
which enabled basic editing on Android.
Then, after a hiatus, IceWarp
weighed in and invested
in the implementation of LibreOffice Online with Collabora; huge cudos to them.
Its great to work alongside them.
Naturally a fundamental piece of bringing LibreOffice to the web, is
LibreOffice itself. Many thanks to all those who have
contributed to making it the success it is today.
Hard work from many Collaborans
Having credited those funding and investing in the work alongside Collabora,
its well worth calling out the engineers that put their sweat and tears (hopefully
no blood) into the work. Splitting down who did what here is somewhat complicated,
since there are four main pieces, and some of the work overlaps several of these,
but lets try; unless stated all the work is from Collabora:
Web Services Daemon
- The initial bootstrapping and creation of the fundamental pieces here:
The initial creation of the webservice daemon, socket connection management
(Tor Lillqvist)
- Tile cache (Tor Lillqvist)
- Save As (Tor Lillqvist)
- lokitclient test app (Tor Lillqvist)
- chroot build scripts & debugging (Tor Lillqvist, Jan Holesovsky)
- Pre-forking support for session processes (Tor Lillqvist)
- Web Service Daemon HTTP POST API "convert-to" for arbitrary
document-conversion (Miklos Vajna)
- Initial testing framework (Miklos Vajna)
- Improved capability management (Tor Lillqvist)
- OS/X prototype port (Tor Lillqvist)
- Tile invalidation & cache management (Tor Lillqvist)
- systemd service descriptions (Tor Lillqvist)
- Two-level tile cache (Jan Holesovsky)
- Debugging tooling (Tor Lillqvist, Henry Castro)
- Return results from UNO commands (Jan Holesovsky)
- MessageQueue profiling and time-stamping (Jan Holesovsky)
- Fixes for new Cairo format basebmp (Caolán McNamara of RedHat)
- Signal handling & graceful shutdown (Henry Castro)
LibreOfficeKit
This API is provided by the LibreOffice core, and is used by both Android,
LibreOffice Online, and GNOME Documents to do both tiled rendering and adding
editing support.
- Writer tiled rendering (Jan Holesovsky, Tor Lillqvist)
- Impress tiled rendering (Andrzej Hunt)
- Calc tiled rendering (Kohei Yoshida, Jan Holesovsky, Henry Castro)
- Writer and Impress tiled editing (Miklos Vajna)
- Calc tiled editing (Jan Holesovsky, Henry Castro)
- UNO command arguments handling: JSON to property values (Miklos Vajna)
- Writer tiled rendering of comments/postits/annotations (Miklos Vajna)
- Make LibreOfficeKit work with libmerged (Matus Kukan)
JavaScript / leaflet
- Initial adaptation of Leaflet library, and integration with Web Services
daemon, adding Web Socket support to fetch tiles, unwinding tile interleaving
issues, making NodeJS usable for humans and other bootstrapping (Mihai Varga)
- Adapting zoom, implementing scrollbars (Mihai Varga)
- Selection rendering, and shape outlines (Mihai Varga)
- Search bar, in-document highlighting (Mihai Varga)
- Clipboard paste (Miklos Vajna)
- Fixes for image resizing, keyboard shortcuts and toolbars (László Németh)
- Remove tile fading animation (Henry Castro)
- Keypress and keycode conversion and capture (Henry Castro, Mihai Varga)
- Tile creation timing and cancellation (Kendy)
- Lots of linting cleanup (Mihai Varga)
- Toolbar implementation, and command-state synchronization (Mihai Varga)
- Style and font attribute selector (Mihai Varga)
- Clipboard / text copy pieces (Mihai Varga)
- Pre-fetching during editing only when idle (Mihai Varga)
- TileBench benchmark, test (Mihai Varga)
- Re-establish broken connections (Henry Castro)
- Print handling (Mihai Varga)
- Full-screen slideshow mode (Mihai Varga)
- Insert file handler (Mihai Varga)
- Undo & Redo pieces (Miklos Vajna)
- Selection extension and dragging (Andrzej Hunt)
- Misc. keyboard shortcuts (Laszlo Nemeth)
- Spreadsheet tabs & slide previews (Mihai Varga)
Shared front-end / backend bits
There are some chunks of work that are sufficiently wide-ranging that
they involve significant work in both the client Javascript, and the
LibreOfficeKit implementation, as well as touching the Web Services Daemon.
- Calc Row/Column header rendering (Andrzej Hunt, Henry Castro, Miklos Vajna)
- Packaging, Testing Virtual Machine Image build etc. (Andras Timar)
- Manual testing (Olivier Hallot)
- Part (eg. slide, sheet) annotations and API (Mihai Varga, Tor Lillqvist)
- downloadAs conversion API for printing, save-as etc. (Mihai Varga)
- Font preview rendering (Mihai Varga)
- Mouse event queueing and capture and synthesis (Mihai Varga, Andrzej Hunt)
- Spreadsheet formula-bar (Mihai Varga)
- Search all; API to return all hits for a search (Mihai Varga)
- Alpha transparent document rendering work (Miklos Vajna)
OwnCloud integration
- Original ownCloud Documents plugin - which is the lion's share
of the work here is thanks to a number of ownCloud developers
(Frank Karlitschek, Victor Dubiniuk, Jörn Friedrich Dreyer,
Thomas Müller, Jan-Christoph Borchardt at ownCloud;
Tobias Hintze, Friedrich Kossebau of KO gmbh)
- Initial port to LibreOffice Online (Jan Holesovsky)
- Security policy (Henry Castro)
- URL management (Hentry Castro)
- Document loading via ownCloud (Jan Holesovsky)
- Cleanup, and remove unused pieces (Henry Castro)
- Improve New Document handling (Jan Holesovsky)
- Extend file-types handled (Mihai Varga)
- Implement saving (Jan Holesovsky)
- Use pdf.js for PDFs for now (Andras Timar)
Thanks again to all of our engineers who made this happen, and to
all those whose work we built it upon.
Conclusion
CODE, as is true of all Free Software, builds heavily on previous
work done by many. Having said that, Collabora through the skill and
dedication of our engineers, have clearly contributed huge amounts of
expertise and effort to architect and implement this exciting new development
in Cloud based productivity. We thank all our partners and customers who
have worked alongside us to enable that. To play with it now and get
involved please checkout the CODE.
2015-12-14 Monday.
-
Up at 1:30am; hmm - poked at mail; merged a patch or two,
chased a unit test failure; humbled by the TDF election results -
thanks to all who supported me; some test-building. Fixed windows
tindebox builds. Back to bed.
-
Up again feeling like death warmed up; mail chew, text
review, quick mgmt team call started mailing people. More mailing.
-
Team call in the afternoon; dinner with the babes, back to
work - helped Ashod get setup.
2015-12-13 Sunday.
-
Lie in, up late - out for a quick run with H. and N.
Home-made Pizza lunch; out to practice in the Memorial Hall for
the carol service. NCC Carol Service - fun, chatted at the end
& helped to clear up. Home for tea with babes, put them to
bed late. Tried to sleep.
2015-12-12 Saturday.
-
Up lateish; mail chew, bit of code fixing; helped N. make
a Xmas present. Started writing Xmas cards for the team - what a
privilege to have so many great guys around. Worked late on
commercials with Holger; a dedicated man. Watched some of
'The Bridge' - slept badly.
2015-12-11 Friday.
-
Mail chew; contract reading, etc. late lunch; partner call.
Bit of hackery on OpenGL bits - CI finally liked my code (in
non-debug mode), merged it.
-
Up late, working on commercials with Holger, and press bits,
mail & patch testing.
2015-12-10 Thursday.
-
Up early; partner call; mail chew, hacked at OpenGL; some
nice flicker-free goodness left & right; looking good.
2015-12-09 Wednesday.
-
Mail chew; contract fiddling; sales team call; lunch.
Call with an old friend; hacked away, TDF board call. Worked
late with H. mending a phone nearby.
2015-12-08 Tuesday.
-
Up early; mail chew; more mail chew; admin - knocked up
slides, budgets, dug at sales pipeline, built ESC bug-stats.
Monthly Mgmt call. Out in the evening to practice for the Xmas
Carol Concert.
2015-12-07 Monday.
-
Mail chew; more admin; chat with Niall. Plugged away at admin
and estimation, team call in the afternoon. Voted in the TDF board
election. John Hummerson over in the evening; good.
2015-12-06 Sunday.
-
Tired; into NCC, ran the kids work; fine shared lunch,
AGM bits, home. Slugged about for a while, out for a walk with N.
Put up Christmas Trees, and strung lights around the place - which
(amazingly) turned on and 'just worked'. Tea, tidied up, bed.
2015-12-05 Saturday.
-
Up late, lazy breakfast with babes; washed & tidied
up. Tried to get to some GL hacking; distracted by call with
Niall and admin instead. Lunch. Played games with E. and N.
while J. dropped H. off with Katie for a YFC ball-night.
-
Potatoe peeling, dinner bits; babes watched a DVD;
prepared for the youth tomorrow. Finally got to GL nasties.
-
To add to my litany of "I can't believe OpenGL is
so horribly un-usable" - discovered that the reason
clipping (silently) doesn't work vs. textures it that no
stencil buffer is allocated and attached to the frame-buffer
object. You might think that doing a truck-load of operations
drawing clip-masks of different shapes into a non-existent,
non-attached stencil-buffer might trigger some (any) sort
of helpful warning (we check for glError in a paranoid manner,
nearly constantly). You might think that, but then that would
make things easy to debug, and fast to develop against - and
take all the skill out of it; right ? what would we then do
with all those people's brains who had (somehow) learned to
model the entire (global variable based) OpenGL state-set
for every call ? finally found the few-line fix; urgh.
2015-12-04 Friday.
-
Up lateish; mail chew, misc. calls.
Plugged away at admin. Off early to help girls with their Quartet
Juke-box, fund-raising at the School Fair - played well, first year
I've not had to visit Father Christmas with a small person; nice.
-
Home; out in the evening with Julia - lovely, really good to
spend time organizing our shared mind.
2015-12-03 Thursday.
-
Up early, mail chew, admin, wrote Linux Format column;
Meetings much of the day. ESC call. Merged the nice new
transition artwork from Andreas Kainz into 5.1 for Beta-2.
-
Poked at profiling some horror spreadsheet - fun.
Submitted a couple of FOSDEM
2016 talks - it should be awesome.
-
Dinner, put babes to bed; back to work, couldn't sleep;
plugged away at cleaning up OpenGL fixes until 4am; hmm.
2015-12-02 Wednesday.
-
Mail chew, a whole day wiped out in admin; interesting talk
with some new guys; chat with Eliane late. Built ESC stats; bed late.
2015-12-01 Tuesday.
-
Mail chew, and hackery much of the day, sales team call.
Admin, contract review, more hackery until late digging at redundant
swapping, finally think I've cracked the Mac approach - idle swapping;
need to prototype that. Worked late.
2015-11-30 Monday.
-
Up; mail chew, synched with Caolan & Armin on some
oddness in the VCL/gtk+ backend and pushed a cleanup & fix.
Interested to hear from a Jeff that my issue was probably a known GStreamer
bug.
-
Some Amazonish Christmas-present shopping; trying to get
good Cobalt HSS drills cheaply; hmm. 1:1' calls with Andras &
Kendy.
2015-11-29 Sunday.
-
Early up; quick breakfast; out to practice at NCC; played;
Tony spoke, back for a fine lunch with Sue, Clive & Boys, and
Bruce & Anne - chatted happily much of the afternoon; lovely.
Gordon sermon before bed. Pillow-talked happily until too late.
2015-11-28 Saturday.
-
Up earlyish; tried (somehow) to get GStreamer to work on
Miriam's OpenSUSE 13.1 - enabled packman, burned many unhappy
minutes wrestling with different versions of different things,
broken gst pipelines, switching packages incrementally between
vendors, installing more and more bits. I used to like VLC because
it was one big lump of download that "just worked" until they
decided to go with the "one hundred pieces any developer with
lots of time can just plug together and debug, while no user can
install or use anymore". Eventually discovered that deleting my
~/.cache/gstreamer, ~/.gstreamer*
made things suddenly
work: nice, sadly don't have the bad files now.
-
Breakfast - cheering. Nicki over with kids - plugged at
reading around SalGraphics usage; more horrors.
-
Lunch, out to buy a new fireplace/surround in Cambridge.
Anything to be rid of the 30's monstrosity we have; an interesting
selection - left the esthetics to J.
-
Home; back to SalGraphics - eventually discovered that
(depending on backend) we can and do end up with multiple wrappers
of the same underlying OS resources; which causes my issues. Something
like a rampant mis-use of multiple
fdopen
's on the same
underlying file; fun. At least it makes sense finally.
-
Up mending H's new phone screen with her; judicious heat-gun
usage - trying to remove loca glue residue: seems WD40 is the miracle
cure there; bed.
2015-11-27 Friday.
-
Mail chew; hackery; lunch; interviews. Poked at the
SalGraphics lifecycle - which is a complete mystery;
inconclusively and at length; rather important if you want to
key a cache/double-buffer of the screen contents on it.
2015-11-26 Thursday
-
More tinderbox fixage; various nasty dependency issues, unwound
a gallery build bootstrapping nasty. Plugged away at other bugs. ESC call
in the afternoon, chat with Kendy. Dinner. More hackery until late.
2015-11-25 Wednesday
-
Mail chew. Fireplace salesman arrived to measure up a
couple of rooms. Nursed some tinderbox breakage - odd event
ordering bits throwing up pre-existing bugs; nice. Nailed a VBA
unit test issue, and another writer SolarMutex issue.
-
Chat with Bjoern, Florian & Thorsten; Lunch. Crunched
some update stats, board call, built ESC agenda.
-
Remembered to link to the awesome 1st Packaging as directed
by my great Sister in Law & Husband, for any of your of
plastic packaging needs; end advert.
-
Helped H. get setup with her first mobile buy / mend /
resell iteration. Worked late, while J. at a PCC meeting. Changing
global headers is insanely expensive.
2015-11-24 Tuesday
-
More struggling with main-loops; product team call.
Discovered that the new scheduler has the (non-optimal) idea of
setting a MAX_UINT64 timeout in milliseconds to the glib
main-loop timeout; and this is really a non-clever idea.
-
Also (thanks Dimstar) managed to find the SRPMs
for openSUSE 13.2 which was surprisingly hard (though finding
the source in the build-service is easy).
-
Plugged away; tested on windows; Norbert kindly tested
on Mac; all good (encouragingly). Read stories for babes.
2015-11-23 Monday
-
A day of E-mail, and lots of calls; 1:1's, partner team
meeting, bit of hackery; team meeting; more hackery until late -
trying to unwind a lot of evil in the VCL main-loop; we badly need
a real 'idle' concept; starting to get to that.
2015-11-22 Sunday
-
Off to NCC, Claire spoke, quickly home for a fine roast lunch
with M&D; bid 'bye to them later, slugged a bit. Off to see David,
some ladder steadying, and weather-board sawing action together. Home
for tea, bed early.
2015-11-21 Saturday
-
J. out at a Pregnancy Crisis conference in Birmingham with Sarah.
Looked after Isaac; H. and N. out to YFC Edwardian tea-party event; played
with M. and N. got a bit of work done too.
-
David over in the evening; dinner, really good to catch up with
him; M&D over, call with Tom & Becky; J. returned, up late chatting.
2015-11-20 Friday
-
Up; mail chew, upgraded my Google+ - oh dear; found it
impossible to add someone I searched for to a circle - weird;
sad too - I need to use Circles to work around Google+'s searching
bugs; some people simply don't show up and need their own individual
circle. Another acute irritation is that people who pay for Google
services, seem to get an emasculated Hangout experience - whereby
they can't call, or be called by freeloaders (like myself) - which
makes it hard to include or interact with them.
-
Lots of admin catchup from a day out and a crazy week too.
2015-11-19 Thursday
-
Up too early; mail chew, slideware. Train to Cambridge
setup; good to catch up with Neil; Customer meeting all day,
fun. Home, read stories to babes, bed early.
2015-11-18 Wednesday
-
Mail chew; slideware building; built ESC stats; fun.
Worked late on slideware.
2015-11-17 Tuesday
-
Mail chew; hackery; calls; more hacking.
2015-11-16 Monday
-
Practise with babes; chat with Robert; mail chew, struggled
onwards with OpenGL / GLX API - such a hideous disaster-area of API
mis-design it is harder to find than OpenGL: first, fully understand
all global state the driver has, second - understand how each method
manipulates it, third - understand how that intersects with each OS'
use of the underlying resources.
2015-11-15 Sunday
-
NCC, back for a pizza lunch. Played games, slugged;
Quartet practice, managed to knock off a new Christmas Carol
rather quickly; good. Bronny over for a chat with J.
2015-11-14 Saturday
-
Out to Go-Ape in Thetford with Naomi - her annual trip with
the Father; swung through trees variously; fun. Had a nice lunch
together. Home, worked away at OpenGL rendering pieces.
2015-11-13 Friday
-
Mail chew, sub-team call. Curious about Microsoft's principles
around Cloud Computing. It is curious in a single article to highlight
the inter-service co-operation between Governments and the safety brought
by hosting your data in a place that it is easy for the local Gov't to
get access to without your knowledge. While regulatory compliance is an
important topic, having full control of your data & applications on
a real private cloud still seems like a good approach for people with
real privacy concerns.
-
Some real hacking on OpenGL bits; sync. with Cor, more
hackery, interview; dinner, played with babes, couldn't sleep, more
hackery until late to get exhausted.
2015-11-12 Thursday
-
Commercial team call, mail chew left & right, quick
monthly mgmt call, ESC call; finally got to fixing an easy bug to
stay sane.
2015-11-11 Wednesday.
-
Mail chew, back to back documentation lead interviews.
Lunch.
-
Hacking on ValueSet's to let them have icons and labels
hopefully improves the look of impress transitions, nice to do
a bit of hacking.
-
TDF board call.
2015-11-10 Tuesday.
-
Into Cambridge, caught up with Tracie, met with Dom
& Ben. Hacked a bit, home again for lunch. More hackery
and E-mail.
-
Out in the evening to help with the Cub's night-hike,
spent a long time discussing interesting questions: the
probability of asteroid strike, what to do when abducted by
Aliens, the end of the world, Nazis - and their role (or not)
in the twin-towers, and so on. Small boys are rather different
to small girls it seems.
-
Back to listen to some Milton Jones (the man is awesome),
What's it like to have voices in your head ... I hear you ask,
Militant Feminists ... I take my hat off to them.
2015-11-09 Monday.
-
Up too early, train into London, no seats - worked standing up
on a convenient luggage-rack; nice. Pleasant partner meeting. Lunch.
Train to the office, went over financials with Tracie, couple of calls.
Train problems, taxi home.
2015-11-08 Sunday.
-
Off to NCC with John, played violin in the band; lead
the older kids work downstairs; home for a quick lunch. Dropped
M. off to a rememberance day parade. Applied slugging. Movie,
bed early.
2015-11-07 Saturday.
-
Off to Sue & Clive's, worked on report writing
in the car at some length while J. drove. Had a lovely time
together, great to see the work going on at 1st Packaging -
fine roast dinner, out for a walk nearby. Bonfire in the
evening with stories, marsh-mallows, fireworks, and fun.
J. kindly drove home while I typed. Prepared youth work for
tomorrow on Ruth, fun.
2015-11-06 Friday.
-
Set too hacking a some main-loop work around impress
transitions & effects I've been wanting to solve for a while.
Made some progress.
2015-11-05 Thursday.
-
Plugged at mail, calls; ESC call, team call - too much
talking, too little hacking.
2015-11-04 Wednesday.
-
Mail chew; paperwork review, signatures; contract tweakage.
Dinner, put babes to bed, finally a patch to clarify the current
OpenGL status, and settings (which take effect after a re-start).
2015-11-03 Tuesday.
-
Mail, commercial team call; contract work.
2015-11-02 Monday.
-
Up early; mail chew, 1:1 calls variously, kick-off call.
More mail chew - somehow a ridiculous amount of admin piled up
over the weekend . Team call.
-
James & Kate came over - really lovely to see them,
and spend the evening together while they're in the country.
2015-11-01 Sunday.
-
Off to NCC with Jackie & Pete, played the violin; hitched
home with the Staffs; roast lunch slugged
for much of the afternoon, digesting. Slept terribly - lots to think
over.
2015-10-31 Saturday.
-
Up late; slugging, off to church to prepare for a light party
this evening; got a Wii setup and mended the mis-aligned pool-table
mechanism. Back for lunch; back in the evening for the party - put up
a pinyata, struggled vigorously with Windows XP, PPT, and some lame
bundled DVD player wrt. multiple monitors. And they say Linux is
bad ... talk & DVD for the kids. Katie & Esther around for
a sleep-over, late.
2015-10-30 Friday.
-
Mail chew; lots of calls through the day with Kendy,
Andras, Niall, a customer, Philippe, Kat and so on.
2015-10-29 Thursday.
-
Horrible weather meant no Brimham Rocks; set off for
home, admin and hackery in the car. Lunch. ESC and misc. other
calls in the afternoon.
2015-10-28 Wednesday.
-
Up early, mail chew, sync. with Kendy, Niall, sales guys.
More mail chew, updated a patch. Out swimming in the afternoon,
good to play with five lovely girls in the pool - lots of
beach-ball-ing and splashing.
2015-10-27 Tuesday.
-
Out in the morning for a walk along the river with the family;
fun. Trotted along, nice to have a break. Back for lunch. Chat with
Philippe, helped Dad assemble his new workbench - fine. Out in the
evening with Julia - lovely to spend time together.
2015-10-26 Monday.
-
Breakfast, setup PCs, mail chew; wrote up & mailed misc.
meeting followups. Calls with Kendy & Andras.
2015-10-25 Sunday.
-
Lie in assisted by the hour change. NCC - Claire spoke.
Back for pizza lunch, slugged and slept a bit; H. back - frantic
computer packing, watched the last LOTR; DVD with the family,
drove to visit M&D. Sleep.
2015-10-24 Saturday.
-
Breakfast, off to the office; started to hack but
ship-wrecked by a number of fun meetings with all & sundry,
lots of good things going on left & right it seems. Great
to see Regina present the xmlhelp editing extension.
-
Rushed for the plane; discovered my old BA Executive
Club card is some use still for queue-jumping; nice. Hacked a
bit on the plane finally, home - eventually.
2015-10-23 Friday.
-
Fitful sleep on a bus - non-ideal; hacked a bit in the
airport, fixed a bug or two. Plane to Hamburg, train and walk
through the Industrial Museum to the CIB office.
-
Met up with the crew; great to see the place - out for
lunch with Ulrich, good to meet him. Back for a partner call,
met and chatted with lots of good people turning up for evening
nibbles etc.
-
To a central hotel with Cloph; finally slept.
2015-10-22 Thursday.
-
Up; sync. with Kendy and Andras; admin - chased nasty
event posting / ordering issue. ESC call, partner call. Booked
bus - urgh; 00:10 bus, for 08:15 Gatwick flight to Hamburg.
2015-10-21 Wednesday.
-
Mail chew, call, quick interview; poked at some code,
did some competitive review of Office 365 - which appears to
function as a nearly non-stop advert for the off-line client.
PPT Online is rather pretty though.
-
Partner call, re-estimation. Dinner, partner call.
2015-10-20 Tuesday.
-
Mail chew, research, lunch, partner call.
-
Thrilled to see the announcement
of the work we've been doing with
the guys at CCS to provide great savings for the UK Government as they migrate
to a supported Collabora Office. It is
clearly a rather hard role to be a centralized purchasing
department, tasked with working with SMEs to deliver change - and this is an
impressive result from all involved. The back-story is that many UK purchasers
that we interacted with in the past didn't believe there was any need to tender
or consider cheaper alternatives (with far better Open Document Format support),
since the CCS had an agreement with a one proprietary vendor. This lead to
some amusing chicken & egg situations - eg. to join the OJEU tendering journal
it was necessary to respond to a tender; but there are zero tenders for Office
Suite software (across Europe). Its great to work with CCS to address this issue,
and raise the profile of alternatives that can meet the Cabinet Office's guidance
for a more open, and accessible way of communicating with citizens and storing their
data. It is very pleasing to be able to help to turn great policy around open standards
from the top of Government into positive action on the ground.
-
Dinner, took M. to cubs; read stories, helped H. with maths revision.
Tweaked ESC bug stat generation tool & built new stats.
2015-10-19 Monday.
-
Mail chew; booked a hotel for the Hamburg
Hackfest at the weekend - should be fun; come if you're nearby.
Wrote status report.
-
Lunch; upgraded to openSUSE 13.2; conservative transfer of
data, discovered that workspace-grid is (sort of) working again in
gnome-shell so switched to using that in place of XFCE for now.
2015-10-18 Sunday.
-
Did the teens work at Church, a small group but went well.
Brian & Andy over for lunch, played games. Applied slugging,
read some LOTR to E. long stories, bed early, iPlayer action.
2015-10-17 Saturday.
-
A lazy day; mended various laptop problems with babes - nasty
XFS related kernel panic on start that made the system unbootable;
worse after the panic
xfs_rescue
wouldn't. Got various
mine-testers with extensions installed and happy.
-
Lunch. Out to Claire Country Park with the family, via
Glebe Farm near Ousden ; fun.
2015-10-16 Friday.
-
Poked at mail, some bugs, read a lot of profiles, did some
scratch estimation, customer call.
2015-10-15 Thursday.
-
Poked at some bugs, built ESC stats rather late; boggled at
the new calc perf. regression I created with Markus - high frequency
creation & destruction of config objects while calculating is
silly.
2015-10-14 Wednesday.
-
Mail chew & catchup - customer call; built some analytics
and crunched a chunk of data. Good to read some stories to babes in
the evening at last.
2015-10-13 Tuesday.
-
CP. Quarterly(cough) management meetings today; presentations,
financials, robust discussion - sensible conclusions - the works. Out
for dinner together in the evening - a good team.
2015-10-12 Monday.
-
Up earlyish; took the Kendy & Andras to Thetford Forest
for 'Go-Ape', misc. team-building, snacking, Orienteering,
Segway riding with Guy, David & Diogo and mixed success; fun.
BBQ, drove home with the lads - sat around and caught up with mail
for a bit; out to the office for some Pizza & DVD action - bed
late.
2015-10-11 Sunday.
-
Breakfast, bid 'bye to G&A, NCC - Helen spoke; back
for a use-ups lunch. Measured the roof for Solar Panels with
Robert - fun.
-
Into Cambridge for the fabulous Collabora 10'th anniversary
bash; encouraging presentation, fine food, good company, gadgets to
play with, and more. Great to meet lots of people in-person. Drove
people back to bed late.
2015-10-10 Saturday.
-
Up earlyish; party preparation in the morning, J. has been
doing heroic work; people started to arrive - lots of fun with the
family, wedding ring stretching with Bruce, read stories to babies
etc. a cracking party for Mum's 70th. Chris even got a pass-the-parcel
and a quizz in which was fun. Good to catch up with Richard. Great
news from Tom (arriving later). Twelve sleeping overnight.
2015-10-09 Friday.
-
Mail; admin; poked at configmgr listeners a bit. Lunch.
Sync. with Tor, partner call. More mail chew.
-
My parents arrived in the evening for dinner, and then
Grant & Anne too - slept in the attic.
2015-10-08 Thursday.
-
Bid Robert 'bye for now; mail chew, code review; fun customer
pitch. Lunch. Tiny piece of hacking, mail, built ESC stats much too
late in the day. Dug through interminable legalese. ESC call. Partner
call, dug through more legalese, partner call.
2015-10-07 Wednesday.
-
Up rather early; poked at mail; bought some RAM to try to
take advantage of the (apparently) low price. Interviewing.
-
I like Matthew Garret a lot, and have huge respect for his
work, and I'm glad that he has the right to fork too. What concerns me
most about his suitability for any leadership role - is not
his impassioned feminism (I like to learn from and interact with spicy views) -
but his eagerness to condone
the sort of shameful,
ochlocratic, attacks on people - hounded from their
jobs - on the basis that they don't happen to share his political views.
Apparently it's open-season for advocating glass ceilings for those
whose views you don't like: so let me follow suit.
Personally, I can cope with some unpleasant language (cf. the casual
mjg scatology & (2nd hand / ironic?) 'deepthroating' metaphore in his post);
and vigorous venting of frustration at me from time to time (though I would note that the
totemic examples of Linus' apparent vituperative I've seen in the press
are rather dated) - indeed, Sarah writes of
being allowed to get away with subtle sexist or homophobic jokes -
apparently a tad hard to pin down.
I'm certain that I thoroughly disagree with Linus on all manner of political
and religious topics,
but who cares ? I'm sure that Linus (and the kernel community) wouldn't hold my
personal views against any of my patches (as/when I have time for some): I guess
that's the professionalism I value most - a focus on the technology. Personally,
I'm attracted to places where free communication is allowed (even if it sadly
ends up reading like an outraged trashy newspaper). As a bootnote - my hope is
that LibreOffice provides a much friendlier place for people to get involved -
the freedom to give offense doesn't have to be over-exercised to be present.
-
More interviews; interesting; closed a couple of VclPtr bugs.
Robert around in the evening - great to see him.
2015-10-06 Tuesday.
-
Up early; mail chew; proposal writing all day; finally got
one of them finished & sent. Mentoring lead interview in
the evening; bed.
2015-10-05 Monday.
-
Mail chew; reviewed some numbers; worked on proposals;
plugged away at avoiding those most of the day. Handed over part of
a project to Tor.
2015-10-04 Sunday.
-
Up earlyish; drove to Hertford Town Church, spoke, had a fine
lunch at Tania's, and caught up with the various families - and admired
the home improvement works. Home later afternoon. Played with Minetest
with a series of girls, installed WorldEdit for Naomi.
2015-10-03 Saturday.
-
Lazy day; mended things variously around the house; prepped
sermon on Colossians 1 for tomorrow in Hertford; applied slugging.
2015-10-02 Friday.
-
Plugged away at misc. calls & meetings - eventually did a
little Friday hackery; trying to make the configmgr UNO API for change
notifications (an amazingly unused function) reasonably usable from
the code - lets see how that goes. Sync. with a customer.
-
Watched LOTR Return of the King side #1, with suitable
censoring of particularly gruesome bits for the babes.
2015-10-01 Thursday.
-
Mail chew; partner call / code reading / estimation frenzy;
sync. with Kendy. Lunch. Chat with Philippe, partner call,
filed expenses, ESC call. Fixed a nasty OpenGL / printing issue
plaguing Windows users.
2015-09-30 Wednesday.
-
Sync. with Kendy, wrote LXF Column; lunch. Customer call,
board call; admin.
2015-09-29 Tuesday.
-
Commercial team call, mail, admin. Lunch, partner call.
Fixed a bug to stay sane. Built ESC bug stats. Plugged away at
admin.
2015-09-28 Monday.
-
Mail chew, poked at some of the conference backlog, security
bits etc. up-loaded slides; team call - everyone made it home safe
apparently. Plugged through admin backlog.
-
Browsed the various improvements in our new Collabora Office site.
2015-09-27 Sunday.
-
Up late, listened to a rather fine sermon; packed, passed
the cathedral, coach to the airport, slept on the flight, slept on
the train, picked up in Cambridge by wonderful wife & babes.
Home for pizza tea.
2015-09-26 Saturday.
-
Out to board meetings much of the morning with employees;
lunch together, back for more talks at the Cabinn (somehow fell
asleep) - out to a fine Italian restaurant in the evening.
2015-09-25 Friday.
-
Dragged myself from sleep somehow; gave a final talk on
regressions (as hybrid PDF):
-
Wandered the conference talking to people variously;
fun. Out for dinner afterwards with some friends, late night
budget ranking. Bed earlyish,
2015-09-24 Thursday.
-
To the conference, enjoyed various talks - great to hear
from Eliane / EDX in Brazil. Hacked on slides. Gave a talk that
tried to capture some of the work that has been done in the last
year as hybrid PDF:
-
Lunch; Thorsten's talk, partner meeting. Out to a rather
fine party in the evening (via. a rather circuitous route). Bed
rather late.
2015-09-23 Wednesday.
-
Up early, poked slides; rushed breakfast; out to the
conference - enjoyed the opening talks; lunch with Simon,
gave a keynote on LibreOffice and Collabora:
-
Caught up with Noel Grandin & fixed Peralex' gitdm-config
affiliation, Noel: an impressive proportion of commits.
-
Talked to partners, customers, awesome hackers, wandered the
conference - scads of old friends; up late with Caolan, Cor &
Kendy. Up late writing slides on VCL.
2015-09-22 Tuesday.
-
Breakfast with the team; out to the RaceHall for some team-building
goodness - lots of bombing around the track - trailing behind the
leading risk-takers / drivers.
-
Lunch; corporate review / presentations with the team. Bus
back to the hotel, out to the venue, caught up with lots of
developers and others before heading to the fine pre-meal to meet
and eat with more people.
2015-09-21 Monday.
-
Travel to Arhus - via Stansted, pleased to see both Mihai
and mjayfrancis on the same RyanAir plane. Bus to the (cheap?)
Cabinn hotel; on to meet up with Norbert, Bjoern and Andras for a
pre-conf. board meet-up. Back for dinner, met up with Kendy, out
for a drink with other Collaborans.
2015-09-20 Sunday.
-
Out to NCC, Compassion Sunday, Claire spoke. Back for
a big roast chicken dinner, slugged with the family happily,
read stories.
2015-09-19 Saturday.
-
Out to nearby Anglo Saxon village - tree climbing with
small girls in the sun; wandered around the lake. Home for tea.
Yes Minister in the evening.
2015-09-18 Friday.
-
Mail chew; plugged away at slideware for next week. Partner
call; more report poking, stats building, etc.
2015-09-17 Thursday.
-
Up early; music practice with babes; work. Mail chew, estimation,
Lunch. ESC call, more mail chew, report writing, slide bits.
2015-09-16 Wednesday.
-
And somewhere it turned into Wednesday. Practice & breakfast
with the babes. Reviewed a nice report. Built ESC bug stats.
More testing, reviewed some nice patches from Tomaz & Tor.
-
Lunch with J. lots of gerrit goodness merging code. Re-purposed
a Linux SSD for a windows swap partition: feels like sacriliege, but
there must be some way to make Windows 7 run two compiles in parallel.
2015-09-15 Tuesday.
-
Mail chew, more meetings; customer call; sync. with Philippe.
Hacked at particularly nasty OpenGL / flicking problem - apparently
context switching causing glFlushing; hard to fix; up all night.
2015-09-14 Monday.
-
Mail chew; 1:1's, caught up with Niall, chased OpenGL issues;
team meetings.
2015-09-13 Sunday.
-
Off to NCC; ran the teen kids group; back for a cracking lunch.
Upgraded H's machine in the afternoon & installed minetest; visit
from Allison & visited Nigel. Bed early.
2015-09-12 Saturday.
-
Up earlyish; out to Sandringham with M. for her annual trip
with Father - had a lovely day wandering the house and gardens (doing
a fun quizz), eating lunch, playing in the playground in the sun. Home
after a bit; lovely.
-
Prepared for kids work tomorrow in the evening.
2015-09-11 Friday.
-
Music practices in the morning; reviewed queued gerrit
patches, drained mail queue; planned day. Lunch.
-
Chat with Thorsten, partner call, customer pokeage;
hackery; dinner, babes out to Friday-club. Watched LOTR 2, #2
in the evening.
2015-09-10 Thursday.
-
Tackled a slew of admin that has been piling up; sync with
Lubos. Booked flights to the Hamburg
Hackfest - just after the conference, but should be fun.
-
Plugged away at report writing; worked late.
2015-09-09 Wednesday.
-
Into Cambridge, mail chew etc. Somehow my Samsung S4
refuses to boot (or crashes very shortly afterwards) if it is
not plugged in & charging; very irritating indeed, hard to
diagnose post-crash with adb as well; odd.
-
Wrote a LXF column, met Tina, great to catch up with
Daniel & Matt quickly - rapid lunch, Xero review with Lucy.
Turned around some partner paperwork; built stats.
2015-09-08 Tuesday.
-
Mail chew, slogged through some bugs; fixed a number of
OpenGLContext referencing issues, chased a lifecycle coupling bug,
chased some GL context bits; nailed a master regression in the
timer scheduler. Built ESC bug stats.
2015-09-07 Monday.
-
Mail chew, call with Kendy, Andras, lunch, team call, sync.
with Tor, filed and triaged bugs, poked at some code. Dinner, put
babes to bed, Lydia over, worked late.
2015-09-06 Sunday.
-
NCC, Tony on starting The Story. Had Martin,
Mary-Anne and their daughters over for
lunch, fun. Afternoon tiling action, upgraded Naomi's openSUSE
to install 'minetest' - rather sucked into huge underground voids
- it beats digging them yourself.
2015-09-05 Saturday.
2015-09-04 Friday.
-
Up early; mail chew, sync. with Kendy, interesting customer call.
Pleased to see the UK Army trying to fix it's harassment problems; an
extraordinarily crisp goal "to close with and kill the Queens' enemies"
too.
-
Sitting at the desk, distracted by the sight of the postman
passing with someone else' pay-check letter in his hand it builds
nostalgia for the days when someone else would post these to me
monthly without any real concern as to how the mechanism that produced
them worked.
-
Posted ESC minutes. Prodded at admin, call with Kendy to
plan projects; dug at the module graphing perl-script to get mergelibs
included in the rendering; fun.
2015-09-03 Thursday.
-
And so ended up tired but less buggy in the morning. Team call.
Lunch with Katie & H. - going swimming. Back to some queued admin.
Patch review, hacking, IRC, debugging etc. positive ESC call. Dinner,
bed early; somehow a big 36 hours block of work helps you sleep like
a baby.
2015-09-02 Wednesday.
-
Up early, mail chew; team call, plugged away at bugs, patch
review, code merging, more bugs and other misc. GL related bits - fun.
Worked overnight to get things ready for 5.0.2.
2015-09-01 Tuesday.
-
Up early; mail chew, patch review, ESC stats building.
Patch review, team call.
-
Pleased to see the Mentoring Lead job application period
extended. Surely this is a dream job (although part-time) - possibly
more applicants that can do less time - interleaved with their studies
might fit ? Have you ever wished you could work part-time on Free
Software ? do you have the C++ and mentoring skills we need ? would
love to hear from you for the LibreOffice
Mentoring Lead. role.
2015-08-31 Monday.
-
Up very early, mail chew - partner call; team call - great
to have Kendy & Miklos back. Reviewed some fixes for 5.0.2 read
bugs etc. Product team call; slogged away until late on GDI and GL
resource synchronization.
2015-08-30 Sunday.
-
No lie-in; off to NCC, back for lunch with Martin,
Loella & Kesiah - fun. Practiced quartet, LOTR reading,
watched M's minecraft home expand itself.
-
Floor lifting in kitchen; discovered leak in dishwasher
outlet pipe - spraying water outwards - unfortuantely into a
stack of absorbent stuff; not good. Unwound, diagnosed,
disassembled etc.
2015-08-29 Saturday.
-
Up early; mail chew & bought & installed minecraft
on M's laptop (9 years old today); tested it - I can see why it's
rather addictive already.
-
Slugged; breakfast, present unwrapping, kids playing.
Returned babes to their homes; showed M' the game. Lunch.
Out to Brandon forest park for a walk & some playground
action; lovely day.
-
Home; tea, read stories. Back to improving GL API tracing,
started to glup some GL tests into vcldemo; fed-up with recurring
framebuffer / texture / context state mixups. Fixed a nasty issue
in the framebuffer / context interaction; more to go. Up late.
2015-08-28 Friday.
-
Up early, chewed mail, team meeting, hackery; discovered a
rather beautiful
glDebugMessageInsert
with Lubos that
is just the thing for GL / apitrace debugging; wrapped it and added
a lot more goodness. Partner call; estimation.
-
Miriam's swimming party in the afternoon 'home' DVD in the
evening with friends; 2x here for a sleepover. H. repaired J's
phone-screen nicely with a bit of supervision.
2015-08-27 Thursday.
-
Up early, team call; poked away at mis-diagnosis of menu
issue much of the day - bisecting where to place a glFlush - until
eventually, ended up in a nonsensical place; must be a memory issue.
Discovered instead that people who don't glClear their depth / stencil
etc. buffers are doomed to a life of impotence and rage; so cleared
it. Finally apitrace works, and things render more reliably too -
not hidden behind random bits of (deep) memory.
2015-08-26 Wednesday.
-
Early up, team meeting, interview , mail;
hacking; wrote up a spec. Sync'd with Niall before his holiday.
Plugged away at vile non-rendering menu problem; turns out it is
rendered, but we're missing a glFlush - fun, it seems GDI has a
similar issue with a
GdiFlush()
call for similar
purposes.
2015-08-25 Tuesday.
-
Early up, mail chew; hackery. Early meeting. Hacking.
Lunch. E. frenetic cycling, fell off her bike but ok. Plugged away at bits of hackery and admin.
2015-08-24 Monday.
-
Up early, team meetings & 1:1's much of the day;
mail chew, hacked on polishing up the software watchdog thread
for busted OpenGL drivers that hang. Lunch. Really enjoying the
CI infra. and it's ability to catch my stupid mistakes.
-
Chat with Philippe, more fixing, built ESC bug stats.
2015-08-23 Sunday.
-
NCC, family church, Tony spoke; caught up with the other
Tony & Anne. Back for lunch, quartet practice in the garden -
suprisingly good after a big gap. David & Allison over for the
afternoon - good to see them. Bed earlyish.
2015-08-22 Saturday.
-
Up earlyish; bid 'bye to Leanne, and off to Bruce &
Annes. Tackled a bug in the car while J. drove - a 'VclPtr' bug
turned out to pre-date LibreOffice 4.2 - good to stimulate more
bug-hunting in lots of areas.
-
Tried to hunt down how to return a phone found on the
beach to it's owner; called EE. to help out: "take it to a shop".
Lunch. Out to the beach ourselves near the Aldeburgh shell.
Lots of lying on the beach with Sue, Clive, B & A.
-
Back for some tea; hacked on another couple of issues on
the way home, one real, one non-reproducible. Mail chew.
2015-08-21 Friday.
-
Up rather early, hacked away at this and that; positive
partner call. Chewed through mail, admin & bugs.
2015-08-20 Thursday.
-
Mail chew; most pleased to notice a disabled person opposite
get into their (ordinary looking) car and with a remote-control
raise a roof-box through 90 degrees across the side of the car,
from which a tether came, which then hoisted their wheel-chair
inside, closed the flap for that, and then returned the box to the
horizontal (while they drove off) - amazingly good.
-
ESC call; hacked away at some code to disable OpenGL if we
get a crash inside a block of OpenGL code.
2015-08-19 Wednesday.
-
A day of phone calls , all positive,
and E-mail, likewise.
2015-08-18 Tuesday.
-
More mail chew, project review, bit of hackery on LOK
pre-initialization. Thrilled to see Caolan's result of filter
testing with a more comprehensive set of files:
0 import failures, 0 export failures, 0 coverity warnings
built ESC bug stats.
2015-08-17 Monday.
-
E-mail reading - a big backlog to wade through. Sync
with Andras. Team calls, caught up with progress left &
right. Leanne over in the afternoon to stay.
2015-08-16 Sunday.
-
Off to Chocolate Church with the babes at Artistry in Cocoa.
Back for a pizza lunch, slugged in the afternoon & LOTR DVD with
babes in the evening.
2015-08-15 Saturday.
-
Sorted through the snail-mail backlog. Ripped out some horrible
black worktop & red and white tile thing with J. in the kitchen;
started making good the wall. Helped M. make a present for N. out of
bits of scrap timber. Good to be home.
2015-08-14 Friday.
-
Up & out earlyish, briefed the kids on the more excessive
claims of creation-science, but nevertheless visited the full-scale
Noahs Ark replica - which is rather impressive: capacious and pleasant -
albeit a superstructure on some steel floats; fun.
-
Off to get the (not on strike) Hook of Holland ferry; discovered
we in fact missed ours yesterday - urk; Stenna kindly fitted us on somehow.
Several hours of reading LOTR, playing games, reading E-mail etc. Eventually,
home, put babes to bed.
2015-08-13 Thursday.
-
Packed, off to Arnhem to visit Cor, arrived, had lunch at his
great training office - enjoyed the fine company, food, architecture,
views of Arnhem from the top of the church spire, bronze bells,
ice-cream, and more. Fun. Kids (typically) soaked in a local fountain.
Back to drive on to Delft.
-
Arrived lateish; met interesting e-beam lithography start-up
chap; off to a super-market to get some pizza; fed babes - bed in a
bit of a thunderstorm.
2015-08-12 Wednesday.
-
Breakfast & out to Burg Eltz - a lovely castle nearby.
Had a fine English tour; admired the treasury full of beautiful
things, many from Hungary. Pleased that three brothers managed to
live so long and apparently harmoniously in close proximity. Lunch
at the castle restaurant.
-
Out into Koblenz - visited the Deutches Eck at the junction
of the Moselle and Rhein, rather impressive. Kids most impressed by
fine, free water-playground and 2nd playgrounds nearby, and of course
giant barges with cars on them etc.
-
Home via super-market, watched Home, tea, bed.
2015-08-11 Tuesday.
-
A fine breakfast on the veranda, enlivened by a small bird
dropping in. Enjoyed some rides in their plug-in smart-car with
Matthias. Bid a sad 'bye, and set off for Karlsruhr.
-
Some chunk of driving; lunch, enjoyed the Scholss at
Karlsruhr, climbed the tower and enjoyed the view; no time to
really do the museum justice. Drove on to Dieblich near Koblenz,
lovely AirBnB place turned out to be more palatial than expected,
unpacked, ate, bed.
2015-08-10 Monday.
-
Packed the house up; got the car-train across the alps to Interlaken.
Lunch & something of a lame walk through the town and various industrial
areas to the other lake - shopping on the way back. Inadvertently wandered
across some para-gliding landing-place complete with lots of landing gliders.
Enjoyed the children's playground, shopped, played more. Off to Bern via a
rather large traffic jam.
-
Stopped overnight with Matthias, Anita & family.
, lovely to get to know them
and their warm & friendly home more deeply. Very
relaxing & interesting. Up rather late talking with Matthias.
2015-08-09 Sunday.
-
A rainy day, read lots of LOTR to babes, Rico Tice sermon
and Bible study with the babes from Philippians. Cleared later, out
into the town for a last trip to the playground; packed & started
cleaning the flat.
2015-08-08 Saturday.
-
Up early; last walk up a mountain. Up to Cry d'Ere and walked down
the ridge of the hill - past a lot of bike tracks and down to a reservoir
for lunch. On downwards; shopping, cakes, Mr Bean, LOTR - tea, sleep.
2015-08-07 Friday.
-
A very lazy day; up late, read LOTR, then some Sherlock
Holmes to the babes, interspersed by Cludo, out to Lac Moubre in
the afternoon for some swimming, back, DVD, bed early.
2015-08-06 Thursday.
-
Up earlyish, up to Violettes, walked down the hill in
the direction of Amminona, paused to dam a streamlet nearby at
some length with the family. Walked on, lunch, an extraordinarily
hot day, beautiful bise across the mountains. Bailed out early
at Plumachit. Very crammed bus into town, walked home via the
cake shop, DVD, tea.
2015-08-05 Wednesday.
-
Packed, locked up, down to the lake for another quick
swim, on to a largeish Italian Hypermarket to stock up on (fine)
Italian food at prices the Swiss can only dream of. J. drove up
to the top of the Simplon Pass as I pushed 5.0 pieces.
-
Picnic at the top of the pass, a simply beautiful day
with the family. Drove home myself. Couldn't get in - yours
truly had cunning concealed the key - concierge kindly helped.
DVD, fine tea, LOTR, bed.
LibreOffice under the hood: progress to 5.0
Today we release
LibreOffice 5.0.0, a new foundation for ongoing work over the next months
and years. It also has a fine suite of new features
for people to enjoy - you can read and enjoy all the great news about the
user visible features
from so many great hackers, but there are, as always, many contributors
whose work is primarily behind the scenes, and a lot of work that is more
technical than user-facing. That work is, of course, still vitally important
to the project. It can be hard to extract those from around eleven thousand
commits since LibreOffice 4.4 was branched, so let me try to expand:
VCL - Toolkit Improvements
One of the largest areas of work in LibreOffice 5.0 is in the
VCL toolkit, the graphics toolkit LibreOffice uses for all the widgets and
rendering. 5.0 means modernizing and improving several aspects of it and
bringing them into line with other cross-platform toolkits.
Mainloop / idle handling
This is a rather major change that landed in 5.0, and is a vital
under-pinning to the ongoing attempts to make VCL and LibreOffice more
efficient and performant, thanks to Jennifer
Liebel and Tobias Madl (interview).
The essential problem with our previous approach to deciding what to do
next in LibreOffice (eg. should I do some more word-counting ? or process
some deferred window re-sizing work ? or re-paint a windows' contents ?)
was decided by a rather arbitrary set of random number of millisecond
timeouts eg. 30ms for a re-paint, 50ms for a re-size - which was not only
race prone, but also horribly inefficient - there being no solid basis
to these pseudo-random numbers.
Thankfully in LibreOffice 5.0 we have a new 'idle' concept that
prioritizes tasks we want to get completed and allows them to be executed
in order at top speed. This combined with Jan Holesovsky (Collabora)'s
work to ensure we can queue sub 10ms timeouts on Windows means we finally
have a reasonably useful mainloop.
This has also helped us to find some power-draining bad behavior
that was previously less visible - since frequently executed (say every
30ms) shortish tasks that wastefully woke the CPU without making any
progress, now cause a 100% CPU spike - and can be addressed. Thanks to
Ashod Nakashian for attacking several of these.
Lifecycle re-work (VclPtr)
For much of its lifetime, VCL widget lifecycle was a bit of a
mystery, even to VCL itself. Widgets could be heap allocated, stack
allocated, or be members of other widgets. If heap allocated they could
be wrapped in various flavours of shared pointers. As such predicting
when a widgets would be destroyed, and/or following its lifecycle across
the code was non-trivial. Inside VCL we often used dog-tags: special
listeners that would turn null when an object was destroyed to try to
avoid referencing an object involved in several back-to-back callbacks.
Unfortunately this support was rather incomplete, and lots of code
would end up deferring deleting heap allocated widgets until idle in
an attempt to avoid problems.
In an attempt to solve all of this mess, we now have a single
smart pointer type: VclPtr
to reference-count all Window
(and OutputDevice) sub-classes, which are now always heap allocated.
This gives a consistent lifecycle mechanism, which is even
documented.
We moved to a 'dispose' mechanism to break reference-cycles, replacing
the previous explicit or implicit 'delete' mechanism, and have made lots
of methods safe to call even on disposed widgets. This should, in the
end provide predictable lifecycle, and much less fragile destruction
code paths making it easier to safely re-factor code. In the meantime
we continue to iron out problems, thanks to Noel Grandin (Peralex)
for his invaluable help to me with this work, and Caolan McNamara
(RedHat) and Julien Nabet among others for helping to fixup some
of the aftermath. It is hoped that (ultimately) nearly all long-lived
VCL types will use a similar lifecycle mechanism. This work was made
possible by Caolan's huge re-factor to use VclBuilder for all dialogs.
Modern rendering: RenderContext
A bold attempt to switch the code-base from immediate rendering
to deferred rendering was initiated. LibreOffice previously rendered what
is seen on the screen in one of two ways - either immediately: ie. when
you press an 'A' it tries to nail the pixels for 'A' immediately
to the screen; or - via. a very deferred (30+ms delay) idle rendering =
callback.
This situation is really non-ideal for modern rendering hardware
and APIs - where we want to ensure the scene is fully and perfectly
painted as a whole before showing it on-screen. Happily with the new
idle handling work, there is no longer a hard-coded delay before
deferred rendering can occur; so we started the task of removing
immediate rendering, and replacing it with deferred rendering. This
means replacing explicit rendering calls with area invalidation to
queue this area for later re-rendering. In many cases this can remove
any visible flickering and other intermediate rendering artifacts as
the UI refreshes. Many thanks to Tomaž Vajngerl (Collabora),
Miklos Vajna (Collabora), with help and fixing from Krisztian Pinter,
Noel Grandin (Peralex), Jan Holesovsky (Collabora),
Caolán McNamara (RedHat), Laszlo Nemeth (Collabora)
Gtk3 backend: Wayland
An very rough, initial gtk3 port was hacked together long
ago by yours truly to prototype LibreOffice online via gdk-broadway.
However thanks to Caolán McNamara (RedHat) who has done the
80% of the hard work to finish this, giving us a polished and
complete VCL backend for gtk3. His blog
entry focuses on the importance of this for running LibreOffice
natively under wayland - the previous gtk2 backend was heavily tied
to raw X11 rendering, while the new gtk3 backend uses CPU rendering
via the VCL headless backend, of which more below.
OpenGL rendering improvements
The OpenGL rendering backend also significantly matured in this
version, allowing us to talk directly to the hardware to accelerate
much of our rendering, with large numbers of bug fixes and improvements.
Many thanks to Louis-Francis Ratté-Boulianne (Collabora), Markus Mohrhard,
Luboš Luňák (Collabora), Tomaž Vajngerl (Collabora), Jan Holesovsky
(Collabora), Tor Lillqvist (Collabora), Chris Sherlock and others .
It is hoped that with the ongoing bug-fixing here, that this can be
enabled by default as a late feature, after suitable review, for
LibreOffice 5.0.1 or at the outside 5.0.2.
LibreOfficeKit Improvements
LibreOfficeKit provides an easy way to re-use the rendering,
file-format and now editing core from LibreOffice. In the last six
months it has gone from being primaily useful for file format
conversion, to being the foundation of LibreOffice on Android,
and Online.
Headless rendering improvements
LibreOfficeKit re-uses our headless
rendering
backend, which allows us to render documents without underlying OS
assistance, ie. without X11, Windows, OS/X etc. A number of
performance and other rendering fixes were implemented here as
part of the gtk3 and online work (headless rendering is also used
on Android while our GL backend is maturing for that platform).
Thanks to Caolán McNamara (RedHat) and Michael Meeks (Collabora).
Android editing extensions
Android editing builds on top of the LibreOfficeKit editing features, and
provides the user with the Android equivalent of the gtktiledviewer
feature list, like native cursor, text and graphic selection, resizing
and more. Thanks to The Document Foundation & their generous donors these significant API
extensions and core work are thanks to Miklos Vajna, Tor Lillqvist,
Andrzej Hunt, Siqi Liu, Mihai Varga, Tomaž Vajngerl and Jan Holesovsky
all of Collabora, as well as work from Pranav Kant (GSOC), and cleanups
from Stephan Bergmann (RedHat)..
LibreOffice Online bits
LibreOfficeKit (alongside an adapted leaflet) is the basis for the
new work targetting LibreOffice at the Cloud, checkout the code and a presentation.
Huge amounts of tangled heavy lifting here were done thanks to:
Tor Lillqvist, Mihai Varga, Jan Holesovsky, Henry Castro and Miklos Vajna,
all of Collabora. With thanks to IceWarp
for funding this work.
Conversion performance improvements
LibreOfficeKit provides a nice simple, clean API for loading and
saving (ie. converting) documents. Thanks to Laszlo Nemeth (Collabora) and Mihai Varga (Collabora)
we now have a new filter attribute: SkipImages
to allow a
significant acceleration for the use-case of converting any file type
to HTML. This is really useful for re-using the wide range of LibreOffice
filters to do document text indexing - giving a very significant speedup
for large and complex documents. Another vital win here was to avoid
doing an accurate word-count before export (for document statistics).
Document conversion to text with this option should be significantly
quicker for certain documents.
Build / platform improvements
Clawing back compilation time
With increasing template use in headers, compile times have taken a
turn for the slower, thanks to Michael Stahl (Red Hat) who created a
nice script bin/includebloat
script to locate the largest and
most problematic headers to be removed. As an example dropping
boost/utility.hpp
from several places removes ~830Mb of
boost/preprocessor/seq/fold_left.hpp
pre-processing.
Win64 porting action
The 5.0 release debuts a Win64 build - with many thanks to
David Ostrovsky (CIB) with help from Thorsten Behrens (CIB),
Norbert Thiebaud, Stephan Bergmann (RedHat) and others
fixing and cleaning up a number of nasty platform-specific
corner-cases across the suite. While we have had many 64bit platforms
for years, the Windows LLP64 model can create issues.
Code quality work
Work is ongoing around code quality in many areas, with 120
or so cppcheck fixes thanks to Caolán McNamara (RedHat),
Michael Weghorn, Julien Nabet, Noel Grandin (Peralex), and others.
along with the daily commits to build without any compile
warnings -Werror -Wall -Wextra
etc. on many platforms
with thanks primarily to Tor Lillqvist (Collabora) and Caolán
McNamara (Red Hat) - this category of problems however is
shrinking thanks to the increasing use of CI.
Coverity at ~zero
Having hit nearly zero coverity issues Caolán McNamara (RedHat)
(with some help from others) does an awesome job of keeping the count at (or
nearly at) zero each week with ~360 commits this cycle. We routinely have a
few new issues in each build and fix a few others, the total being currently
two issues (of 6+ million lines analyzed). Hopefully keeping the numbers
at zero is a reasonably achiveable goal:
PVS-Studio
The company OOO "Program Verification Systems" develops the PVS-Studio
static analysis tool and made results of a one-time analysis run
available to LibreOffice developers. Dozens of reported issues were
fixed by Caolán McNamara (RedHat), Michael Stahl (RedHat), David
Tardon (RedHat), and Markus Mohrhard. You can read more about that
(with cartoon) here.
Import and export testing
The new TDF donor funded crash-testing hardware
combined with a significant effort from Caolán McNamara (RedHat),
Michael Stahl (RedHat), Markus Mohrhard and several others we have got the
number of (paranoid) assertions and/or crashes on import of our significant
bugzilla document corpus (of 75k+ dodgy bug documents) down to effectively
zero. It's wonderful to be able to catch commits that cause regressions here
and nail them within days on master, before they have a chance to escape into
the user-base.
Ongoing work here is to compile the crash-testing binaries with
Address Sanitizer as well as starting to fuzz various document types and
expanding the set of input file-types.
Clang plugins / checkers
We have continued to add to our clang compiler plugins; a quick git grep
for 'Registration' in compilerplugins
shows that we've gone from
38 to 59 in the last six months (double the growth of last release). These are
used to check for all manner of nasty gotchas, and also to automatically re-write
various problematic bits of code. Many are run automatically by tinderboxes to
catch badness. Thanks to:
Stephan Bergmann (Red Hat) and Noel Grandin (Peralex) for their hard work on these checkers this cycle.
The new plugins do all sorts of things, and usually come complete with
a set of relevant fixes for the underlying code; here are some examples:
- loplugin:loopvartoosmall - checks that the bit width of
a loop index variable is at least the size of the thing it is
indexing over. In the case of unsigned values, this can prevent
infinite loops. In other cases, it simply avoids us truncating
data.
- loplugin:staticmethods - looks for methods that can be
declared as static. This is both more efficient and makes the code
more understandable, because it clearly indicates that the method
does not depend on any object state.
- loplugin:vclwidget - enforces the various rules
surrounding the usage of our new VclPtr ref-counting smart pointer
for VCL objects. Ref-counting classes can be tricky to use in corner
cases - so having a checker that validates at compile-time as much
of the otherwise implicit rules is very useful.
- loplugin:constantfunction - looks for functions that
should be removed/inlined, since they always return the same value.
That is useful for finding old code that has become redundant due
to refactoring.
- simplifybool - this detects and de-tangles particularly
tortured boolean logic expressions to simplify them. Some examples
are converting
a ? false : true
to !a
.
- cstylecast and redundantcast- these detect and
warn about C-style casts eg.
class Foo; Foo *pFoo = (Foo *)pBaa;
ie. when a type is incomplete. These should really be safer static_casts.
Also we detected and removed un-necessary casts to make the code
easier to understand.
- de-virtualization - this detects virtual methods that
are never over-ridden, to replace them with better performing
non-virtual methods.
- lopluign:deletedspecial - finds special member function
declarations that are left undefined, which should actually be
marked as
= delete
to entail further compiler
optimizations and warnings.
Other sets of cleanups were also clang assisted such as Noel's
attack on cleaning up, making consistent and nicely scoping our
enumerations. Stephan's drive to detect and remove implicit bool
conversion, switching many inline methods from sal_Bool (really an
unsigned char) to a true 'bool' whever possible, and several other
helpful plugins.
Unit testing
We also built and executed more unit tests with LibreOffice
5.0 to avoid regressions as we change the code. Grepping for the relevant
TEST and ASSERT macros we continue to grow the number of unit tests:
Our ideal is that every bug that is fixed gets a unit test to stop it ever
recurring. With around 800 commits, and over seventy committers to the unit
tests in 5.0 it is hard to list everyone involved here, apologies for that; what
follows is a sorted list of those with over 10x commits to the relevant
qa/
directories:
Miklos Vajna (Collabora), Markus Mohrhard,
Caolán McNamara (RedHat) Stephan Bergmann (RedHat), Noel Grandin (Peralex),
Michael Meeks (Collabora), Michael Stahl (RedHat), Zolnai Tamás,
Tor Lillqvist (Collabora), Bjoern Michaelsen (Canonical), Eike Rathke (RedHat),
Takeshi Abe, Andras Timar (Collabora), PriyankaGaikwad (Synerzip)
Windows Testing
While we have had a subset of unit tests that we run at compile time
on Windows, our larger battery of make check
tests has been
hindered by strange thread-affine behavior on Windows related to handling
various Window and event resources. Thanks to various locking, and inter-
thread messaging fixes from Michael Stahl (RedHat), and Stephan
Bergmann (Redhat) we now have far more robust and reliable
unit testing on Windows.
QA / bugzilla
One metric we watch in the ESC call is who is in the top ten in the
freedesktop Weekly
bug summary. Here is a list of the people who have appeared more than five
times in the weekly list of top bug closers in order of frequency of appearance:
Adolfo Jayme, Beluga, Caolán McNamara (RedHat), raal, Julien Nabet,
Jean-Baptiste Faure, Markus Mohrhard, m.a.riosv, Gordo, V Stuart Foote,
Eike Rathke (RedHat), Andras Timar (Collabora), Alex Thurgood,
Yousuf (Jay) Philips, Miklos Vajna (Collabora), Joel Madero,
Cor Nouws, Michael Stahl (RedHat), Michael Meeks (Collabora),
Matthew Francis, David Tardon (Redhat), tommy27, Timur, Robinson
Tryon (qubit) (TDF). And thanks to the many others that helped to
close and triage so many bugs for this release.
Jenkins / CI
Thanks to Norbert Thiebaud - we now have some rather excellent
Jenkins / CI integration with gerrit, to allow us to test-build all incoming
patches across our three major platforms. Using CI to test patches before
pushing them to master has become another valuable tool to increase the
quality of master (and thus its accessibility to casual builders), and to
allow those without access to Windows & Mac devices to check their code
builds there. Thanks to ByteMark
and TDF donors we hope to
have even more, fast hardware to throw at the CI build farm soon making this
an even more attractive route to test submitted code. With over 25,000
builds from 13 build slaves since the beginning of the year (which compares
favourably with the around 11,000 commits, it is hoped that with enough
hardware we can compile and run tests vs. all incoming commits in
future without introducing excessive latency.
Also for the next development cycle we have enabled tests beyond
those run during compile. We enable a slew of extra assertions in a
dbgutil
build and run make check
at least on Linux
to apply a much larger set of extra tests to each individual commit.
Expanded bibisect
In this cycle we expanded the great Bi(nary)Bisect(ion)
repositories - which contain thousands of compressed pre-built binaries
to allow end-users to quickly ascertain almost down to a single commit that
introduced a regression long after the date - to include Mac and Windows
builds for the 5.0 epoch (ie. the range from the 4.4 branch to 5.0 branching.
The 5.1 epoch is being built and refreshed reasonably regularly. Many thanks
to Norbert Thiebaud, Matthew Jay Francis & Robinson
Tryon (qubit) (TDF)
Code cleanup
Code that is dirty should be cleaned up - so we did a lot of
that left & right:
Upgrading to (a) C++11 subset
In the 5.0 release we started to move more aggressively to the
subset of C++11 we can now use with our updated compiler baselined.
Features such as variadic templates, simpler initializations, and more.
Work also involved removing deprecated std::
functions such
as std::ptr_fun
using std::any_of
&
std::none_of
and other newer constructs such as
auto
. Thanks goes to many hackers cleaning the code
including Stephan Bergmann (RedHat), Takeshi Abe, Nathan Yee,
Bjoern Michaelsen (Canonical) and others.
Framework Cleanup
Thanks to Maxim Monastirsky we saved many hundreds
lines of duplicate code from the framework, by creating nice generic
controllers that could be controlled via small, clean XML configuration
descriptions - great to see such cleanups.
Expanding integer id types
A number of legacy structures in LibreOffice have used 16bit
indicees, and stored / serialied these to various structures for many
years. This can cause problems with very large mail merged - such as
those in-use at Munich City. Thanks to
Katarina Behrens (CIB) - Writer in 5.0 allows more than 64k of:
Page Descriptions, Sections and Style Names.
Ongoing German Comment redux
We continued to make progress, but somehow the
last ~5000 lines of comment persistently appear to defy translation.
Answers by E-mail postcard from German speakers much appreciated. Many
thanks to: Michael Weghorn, Michael Jaumann (Munich), Daniel Sikeler
(Munich), Albert Thuswaldner, Christian M. Heller, Philipp Weissenbacher.
There are now only the following eight modules left to do:
include, reportdesign, rsc, sc, sfx2, stoc, svx, sw
std:: containers
A systematic set of improvements to our usage of the std:: containers has
been going on through the code. Things like avoiding inheritance from std::vector
, changing std::deque
to std::vector
and starting
to use the newer C++ constructs for iteration like for (auto& it : aTheContainer) { ... }
. There are many people to credit here, thanks to
Stephan Bergmann (Red Hat), Takeshi Abe, Tor Lillqvist (Collabora),
Caolán McNamara (Red Hat), Michaël Lefèvre, and many others.
Writer
Thanks to Bjoern Michaelsen (Canonical) we have had a few
key, long desired writer cleanups in 5.0. These include:
- Improvement and re-factoring of a number of core Writer
UNO implementations around tables, reducing the code by some
20% and eliminating some code duplication. Unit tests have
been added and it should now be easier to add further,
including tests that check the writer core.
- Clean-up some very old classes implementing the
observer pattern in a clunky way
(
SwClient/SwModify
), also adding a test harness
to clarify its interface. Ultimately, the goal is to move away
from this implementation towards one of the more modern
implementations we use elsewhere. This work should help find a
migration path later.
- Consolidated multiple ad-hoc implementations of intrusive
double-linked lists into one
sw::Ring
and adding
tests to clarify its interface.
- Use compiler
plugins to hunt for both the deepest cascading conditional
expressions and assignments happening during evaluation of
conditionals, which is errorprone, and expand the worst
offenders into something that is more readable and
debuggable.
writerfilter's resourcemodel
The resourcemodel building block of writerfilter (that handles Writer’s DOCX
and RTF import in LibreOffice) was basically a bucket of old and unused stuff.
The few still needed pieces from it are now moved into the relevant
mapper/tokenizer/filter parts, and the rest is now removed. You can read
more detail thanks
to Miklos Vajna (Collabora).
Other wins
We had a number of other wins that are somewhat difficult to
categorize, but well worth noting:
OOXML vs. MS Office 2007
MS Office 2007 has an unhelpfully different set of default values
for many of its attributes - ie. the same XML (with an attribute ommitted)
can produce different results in Office 2007 and later versions. Clearly
this is a little irritating. Thanks to Markus Mohrhard for adding
some infrastructure (and a set of fixes) for known problematic attributes
in this regard. This should improve our interoperability with the zoo of
documents out there.
Android - file-system abstraction
Thanks to TDF's donors and Jacobo Aragunde Pérez (Igalia)
we implemented an abstract file-system API for Android - to allow
arbitrary file-system backends to be plugged in (in a separate thread).
An example OwnCloud backend was implemented to show-case this.
Base bits
Thanks to Matthew Nicholls we removed a couple of thousand
lines of redundant wrappers in svx
's dbtoolsclient - which
was duplicated elsewhere in connectivity
. Great to see this
much cruft leave the code-base.
Getting involved
I hope you get the idea that more developers continue to find a home
at LibreOffice and work together to complete some rather significant work both
under the hood, and also on the surface. If you want to get involved there
are plenty of great people to meet and work alongside. As you can see individuals
make a huge impact to the diversity of LibreOffice (the colour legends on the right
should be read left to right, top to bottom, which maps to top down in the chart):
And also in terms of diversity of code commits, we love to see
the unaffiliated volunteers contribution by volume, though clearly the volume
and balance changes with the season, release cycle, and volunteers vacation /
business plans:
Naturally we maintain a list of small, bite-sized tasks which you
can use to get involved at our Easy Hacks
page, with simple build /
setup instructions. It is extremely easy to build LibreOffice, each easy-hack
should have code pointers and be a nicely self contained task that is easy to
solve. In addition some of them are really nice-to-have features or performance
improvements. Please do consider getting stuck in with something.
Another thing that really helps is running pre-release builds and
reporting bugs just grab and install a pre-release and
you're ready to contribute alongside the rest of the development team.
Conclusion
LibreOffice 5.0 is a great new foundation for building the next
series of releases which will incrementally improve not only features,
but also the foundation of the Free Software office suite. It is of
course not perfect yet, this is the first in a long series of monthly
5.0.x releases, and six monthly 5.x releases which will bring a stream
of bug fixes and quality improvements over the next months and years.
I hope you enjoy LibreOffice 5.0.0, thanks for reading, don't
forget to checkout the user
visible feature page and thank you for supporting LibreOffice.
Raw data for many of the above graphs is available.
2015-08-04 Tuesday.
-
Up earlyish, out on a small boat across the lake to the
fine palace on an island in the lake, beautiful paintings (some
on marble), extraordinarily lush, but wall-less bedrooms. Wandered
the tiered gardens, saw white peacocks and a fine aviary, on by boat
to the next long fishing island.
-
Babes seduced by (overpriced) leather handbag shopping, a
sign of things to come methinks; restraint exercised. Ate on the
beach, wandered around the island, back home via supermarket.
-
Made some pasta for the babes, Italo arrived - enjoyed some
great company, and an interview, talked late into the evening
together and forgot to eat; botheration.
-
Up extremely late trying to make the 5.0 under-the-hood
write-up less incomplete - apologies to all who were left out,
just skimming 11k commits to try to see the big picture takes
hours, I'm sure many less-noisy committers got lost.
2015-08-03 Monday.
-
Up early, chat with Niall - worked on 5.0 under the hood
bits in the car - how is it that I get a good 4G signal climbing
up to the Simplon Pass in a (short) tunnel in Switzerland ?
-
Arrived by Lake Maggiore - managed to find the house up a
rather windy road up the hillside - a beautiful place with a lovely
view. Walked into Baveno to swim at the beach, did some shopping
at reasonable prices; pizza on the lakeside, gellato & walked
back to bed.
2015-08-02 Sunday.
-
Up lateish; off to Lukerbad - a beautiful spa town at
the end of an impressive mountain valley, wonderful hot water
baths, flumes, sauna, soaking, freezing water, outside pools
with mountain views; wow. Home for tea; All Souls sermon from
Rico Tice as a family; put babes to bed.
2015-08-01 Saturday.
-
Rather a busy morning, worked on under the hood bits in
LibreOffice 5.0. Out to see a largeish underground lake nearby
in Sion - the roof made of gypsum - with 20m roof-bolts to hold
it up; pleasant.
-
Walked up to Sion castle - enjoyed climbing the tower
& seeing the Chapel's frescos, along with meeting a pleasant
Swiss family.
-
Back for some Jeeves & Wooster, read LOTR to the
babes, fine fireworks across the valley for the Swiss
National day.
2015-07-31 Friday.
-
Up earlyish; some slugging, checked mail; up to Plain-Mort,
and walked down to Violette - rather a fine walk in the sun - lovely.
Back for a call which didn't happen. Cakes & working on a write-up
for 5.0.
2015-07-30 Thursday.
-
Up late, lots of slugging, read books, played games,
lunch. Out for a short walk to the fine Christ-la-Roi statue
nearby in Lens, lovely day. Back for Racelette with the babes.
Bit of mail chew etc.
2015-07-29 Wednesday.
-
Breakfast & off by car to the Grand Dixence Dam
The world's largest gravity dam - a most impressive climb up to
it, a fine view of glaciers in the valley, only 256m full currently.
Then smothered in cloud. Cable-car down, quick lunch, and on a tour
inside the dam - which has plenty of rather fine tunnels with a
display to boot. Having a ~2km hydro-electric head must be good, but
no-where near Itaipu for raw power of course.
-
Drove home via Lidl - cheap food in Switzerland is only
expensive - rather than obscenely so. Lots of very winding roads
to climb and descend the valleys.
2015-07-28 Tuesday.
-
Up, made packed lunch. Drive into Crans and took the
lift up to Cry d'Er, a stiff walk up to Bellalui - managed to
locate the Matterhorn - just not visible from the flat -
occluded by other mountains.
-
Walked along rather a knife-edge towards Col du Pochet,
took a hair-raising ~40ft ladder journey with four small babes
down past a number of plaques / crosses in memory of those that
didn't make it; urk. Finally on sensible terrain again - walked
back to Violettes cable-car, and bus back to the car.
-
Bought cakes, enjoyed them at home, Howels Moving
Castle - put babes to bed, watched parts of House of
Cards a noxious but intriguing drama.
2015-07-27 Monday.
-
Up late, Squirrel-walk into Montana, misc. shopping
action, played in the playground, played mini-golf, walked
around the lakes. Bought cakes, enjoyed them at home,
relaxing.
2015-07-26 Sunday.
-
Up early; packed breakfast, bought lift passes for
several days. Up to Violettes and on upwards to the Plaine
Morte. Walked down to the glacier, H. N. M. & myself
went to stand on the edge of it - and admire the streams
disappearing into inviting tunnels under the ice. Somewhat
sobered to discover that the apparently looking solid,
shale covered ground had a crevasse nearby showing some
meters of ice underneath the soil. Back up the valley; to
the ~3km peak.
-
Down by cable-car, lunch at Violette, set off down
to the midway car at Les Marolires, walked back to the flat.
Family Bible Study, crisps, Jeeves & Wooster, spaghetti
tea, put babes to bed, LOTR.
2015-07-25 Saturday.
-
Up early; packed, drove - with more driving to Montana
in Switzerland. A series of four rather good little girls, and
a Father trying to get low-latency bluetooth audio (for laptop
DVD playing) working (a failure), then finally a cable of the
right length was purchased - but the buzz from the AC converter
to power the show was too noisy; hmm - so mostly quiet movies.
-
Switzerland simply lovely - mountains (though very
little snow), staggering vistas, beautiful lakes, fantastic.
Drove to the flat, unpacked, tea on the balcony, etc. Put babes
to bed, and read them LOTR.
/ul>
2015-07-24 Friday.
-
Up very early; into town to the Eifel Tower, queued and
enjoyed it immensely - N. very pleased with her requested trip;
walked down from 2nd floor enjoying the triumph of angle-iron
& plate-steel. Paris looks somehow cleaner and whiter than
London.
-
Navigated the impressive queue at Notre Dame, and enjoyed
the 'flower windows' and fine vaulting / buttressing. Walked to
Chatelet and thence on to Rome.
-
Met up with Charles, Melissa & baby for some picnic
excellence in a nearby park (with playground) - good to catch up.
Trains and Trams back variously, out to buy some food; ate; bed.
2015-07-23 Thursday.
-
Up earlyish, last minute packing; set off for Dover -
hopefully its possible to get past the striking French dockers.
Lorries stacking several junctions up the M20. Only an hour
delayed.
-
Intense driving fun down to Paris; met lovely AirBnB
host near Aulney sur Bois; out for a walk along the canal in
the evening trying to teach French from passing signs to small
people. Bed.
2015-07-22 Wednesday.
-
Lots of deck clearing for holidays; train into Cambridge,
built ESC stats & agenda etc. Several re-imagings of Windows
8.1 - which appears to work rather well at finding drivers for
older hardware and auto-configuring itself - almost as good as
Linux.
-
Home; lost of packing action until late. Discovered it is
reasonably easy to un-bolt and remove the central Prius+ seat with
a few bolts. Seat amazingly heavy - clearly a chunk of the 2x Tonnes
of car is just seats.
2015-07-21 Tuesday.
-
J's birthday - some present un-wrapping action.
Slogged away at Presenter Console / Impress for a good while;
what a mess; mail; admin; review. Out to a local Karting track with
Hannah, Emily, Katie, Elize & Paris - lots of fun. Back for
a fine party tea. Put babes to bed. Back to slideshow - found a
fix finally.
2015-07-20 Monday.
-
Mail chew, 1:1 with Kendy, Niall, lunch with H. team call.
Mail chew, booked LibreOffice
conference travel - thank God for RyanAir direct Stansted to
Arhus; wow.
-
Legal review, second team meeting.
2015-07-19 Sunday.
-
Off to NCC, tried to help the older kidlets understand
Good Shepherds; home for a pizza lunch, got singing our quartet
surprisingly well in harmony. Tried to replicate that with
other music - not so easy.
-
Advanced slugging, read books, lazed, Yes Minister in the
evening. Bed.
2015-07-18 Saturday.
-
Drove to Bruce & Anne's for a combined 80th and 45th
birthday party celebration; a lovely time had by all, fine food,
weather, wider family company etc. Babes played a quartet or two
to celebrate. Chewed mail on the way home in the car, undid some
data-loss, filed an easy-hack, etc.
2015-07-17 Friday.
-
Up early; train into Cambridge not running, struck by lightning
overnight or somesuch. Drove 5x stranded others into Cambridge. Battled
with awful Windows machines & hardware.
-
Meeting with Philippe & Tracie; quick lunch, back to battling
hardware. Unbelievably broken Windows 7 - blue-screen and auto-re-booting
with a totally generic crash-dump despite a full Acer BIOS & Intel
driver upgrade, endless disk manager fiddling etc.. Attempted to install
Windows 8 - after struggling to disable the horrendous anti-Linux
'secure-boot' foo - then external USB CD drive refused to play with
the BIOS; irritating. Attempted to debug other thermal issues fruitlessly.
-
Home via picking up kids, relaxed watched Yes Minister with them;
bit more hackery before bed.
2015-07-16 Thursday.
-
Mail chew, ESC call, Advisory Board call, worked on
financials, misc. ranking bits.
2015-07-15 Wednesday.
-
Spammed people wrt. regression testing ideas and started
collating votes. Mail chew, poked at configmgr write noise, and
odd effects around inlining in Calc.
-
Miriam returned from Thorpe Woodlands having a great time,
with lots of frenetic exercise .
2015-07-14 Tuesday.
-
Mail chew; calls, fixed a 'base' crasher nasty; built ESC
agenda - chased slideshow horrors; wow the slideshow presenter code
has just some amazing things in it - its own timer thread, queues
of idle handlers and user event posting to poke other idle queueing
of screen rendering bits, un-necessary UNO interfaces and much more.
2015-07-13 Monday.
-
Mail chew, 1:1 calls, lunch, dropped J to school. Team
meeting. Into Cambridge, lots of fooling around with servers,
swapping RAM banks, tweaking SSDs, several windows 7 blue-screens
trying to format and partition a disk; eventually had to do that
using Linux; DHCP mending with Vivek.
-
Philippe arrived, then Guy & Katia - lovely to meet
her; out for a fine dinner all together in town; quickly back via
the office, train home, bed late.
2015-07-12 Sunday.
-
Up earlyish; out to the Academy, spoke, home for lunch.
Much slugging, watched a DVD with the babes, dinner, put people to
bed early.
2015-07-11 Saturday.
-
Up lateish; pottered out into town shopping with N. to have
a drink & cake out with her to celebrate her grade 3 Violin
yesterday - fun.
-
Home; worked on Colossians 1 sermon; lots of breaking up
the word & collating different gems from it.
-
Parents over in the evening, enjoyed catching up with them.
2015-07-10 Friday.
-
Mail chew; into the office, plugged away at hardware upgrades,
SSDs into several machines, new hardware to configure - boggled again
at Windows 8.1's appalling driver lameness: no network support out of
the box as you expect on Linux. Eventually got things working(ish).
Swapped RAM to try to find a compiler issue, failed, train home rather
late. Bed.
2015-07-09 Thursday.
-
Mail chew; and more mail chew, lunch. Chased various bugs,
CI a bit overloaded on the eve of the -5-0-0 branch off, pushed
several obvious looking fixes directly. Out to buy SATA cables,
and poked at configuring my windows machine to be multi-head.
2015-07-08 Wednesday.
-
Started on The Ship that Sang - fun; mail chew,
poked at bugs, patches, posted ESC agenda, finally filed a batch
of expenses, and pending E-mail.
2015-07-07 Tuesday.
-
Up too early; 6:09 train to London, setup at the
Open Source, Open Standards exhibition - lots of interesting
discussion with lots of interested people - good stuff. Good to
catch up with Simon.
-
Back home via. picking up M., dinner with Lydia,
Janice, Faith & Julia. Worked late nailing a slideshow bug.
2015-07-06 Monday.
-
Mail chew; pleased to see Caolan's blog on the crash-testing results - great to see the combination of
Markus' hard work getting this setup, TDF's investment in the beefy hardware,
and of course Caolan, Michael Stahl & other's hard work clobbering
regressions to get us down to a zero that (hopefully) the hardware can
keep us glued to.
-
Back to back calls all day, 1:1's 1:2's, team calls,
dinner - and a customer call.
2015-07-05 Sunday.
-
Off to a baptism at re:new and a
shared lunch which was interesting, back in the afternoon
slept on the sofa; pizza dinner, dancing competition on the trampoline, read
stories; bed.
2015-07-04 Saturday.
-
Up lateish, J. returned babes to their abodes left & right.
Out to Holkam beach en-masse; lots of wonderful sun, sea, sand, swimming,
digging, relaxing, reading - sun-burning and so on. Fish & Chips in
the car on the way home tired.
2015-07-03 Friday.
-
Mail chew, partner call, admin, lunch, interview, poked
at some profiles; got to a bug fix: fun. Innundated by an endless
series of little girls - 8x or so, took a brace to Friday-Club,
movies, sleep-overs, the works.
2015-07-02 Thursday.
-
Into Cambridge to attempt to nurse some poorly prototype hardware
in the nice cool server room (on a hot day). More (mobile) prototype
hardware arrived by mail. Back home, ESC call.
2015-07-01 Wednesday.
-
Another day packed with alternating between different bits
of admin, mail review, transcript fixing, conference planning.
Partner call, got to fix a bug - fun.
2015-06-30 Tuesday.
-
Catch up with JRB. Alternated between different bits of
administration, trying to intersperse the more horrendous stuff
between the less dull bits. Partner call.
2015-06-29 Monday.
-
Up early, breakfast, mail chew, fun. Lots of 1:1 meetings,
also fun; 2x team meetings, budgeting, invoicing, project reviews,
SOW construction - lots of admin.
2015-06-28 Sunday.
-
Up lateish; Isleham for church - a lady talking on spiritual
jubilee; back for a fine pizza lunch. Out for a walk in the afternoon
to a small, nearby motte & bailey from ~1000AD. Back for tea,
stories, bed.
2015-06-27 Saturday.
-
Very lazy day; up very early reading Vernor Vinge - what did
Jeremy Allison do to me ? breakfast, slugged, read etc. most of the
day. Interspersed with misc. home maintenance. BBQ in the evening.
2015-06-26 Friday.
-
Mail chew, call with Mike, code reading, admin. Plugged
away building & testing code variously. Maurizio over in the
evening.
2015-06-25 Thursday.
-
Up rather early; into London for a Westminster eForum on
procurement, nice to see Whitehall in the sun. Met some interesting
guys - curious to see Microsoft's view of the five year future including
only rather trivial combinations of today's technology, whereas a
question from Agiliysys on Artificial Intelligence automating
beaurocratic tasks. Which is right I wonder.
2015-06-24 Wednesday.
-
Mail chew, and more mail - does it never end ? lunch with Tony.
More meetings, hackery etc. TDF board call. Fixed a trivial bug,
isolated another.
2015-06-23 Tuesday.
-
Into London for the Public Sector Show with Tim - not an
ideal event - missed a couple of interesting people. Train home
early. Mail chew on the train, more work at home, lovely dinner
with the family. Bible study with Arun in the evening.
2015-06-22 Monday.
-
Up early, music practices, mail chew, fixed embedded font bits
for the headless backend. Endless meetings and 1:1's much of the day,
worked on data for customers.
-
Pleased to see GNOME Documents
integration starting to look screen-cast-able, thanks to great work from
our GSOC student Pranav (with Miklos' mentoring).
2015-06-21 Sunday.
-
Up early; off to NCC to practise with Jackie & Peter.
Played in the service, Tony spoke about service. Good to catch up
with many afterwards. Back for a big BBQ lunch with various
creative Father's Day cards - lovely.
-
Practiced various quartets; needs individual practice
too it seems. Out for a family bike-ride, fun. Played lego house
building, read the start of Rendezvous with Rama to babes
generally, long stories & bed early.
2015-06-20 Saturday.
-
Up lateish; fixed a LibreOffice bug, pushed last night's
fix; breakfast. Carpet & floor-boards up to see if there is a
gas-connection near the fireplace, eventually located one. Out
to buy and fit a new toilet seat - now with magic dash-pot to
retard closing: hopefully more robust than the previous version.
-
Emily over in the afternoon, watched Heaven is for
real - spiritual candy-floss; enjoyable - while building
your life on something more rocky. Late-night bug triage / chasing.
2015-06-19 Friday.
-
Into Cambridge, caught up with Tracie & Lucy.
Interesting customer meeting; picnic lunch in the Botanical
Gardens with the office guys; sync. with Niall, train home,
picked up babes; more mail.
-
Watched the last Potter movie with M. Up late chasing
a LibreOffice bug to its ancient roots.
2015-06-18 Thursday.
-
Breakfast in bed; and a fine crop of birthday presents:
primarily pretty clothes for J. and Sci-fi books to read to the
kids with a crate of craft ciders. Mail chew, etc. out for a
walk in the countryside with J. - oddly and encouragingly
child-less.
-
Partner call, project update call, ESC call, project
update call.
2015-06-17 Wednesday.
-
Built code overnight, checked out, chewed mail, reviewed
bugs etc. on the train. Poked away at bugs, text review etc.
-
Plane, train - dug into some basebmp evilness with mask
bitmaps, a horrifying un-readble / debugging Vigra template morass.
-
Lovely to be home with the wife & family again.
2015-06-16 Tuesday.
-
To the venue, an interesting overview of cloud bits. I have
a growing suspicion that I know where some of the sysadmins went;
they transmogrified into Cloud Infrastructure Engineers.
-
Quested for a Euro-compatible power socket fruitlessly,
back to the hotel for a positive customer call. Prepped slideware
and demos: worryingly robust - can this really be the bleeding
edge ? Back to UniS - gave a talk, chatted to many people
afterwards.
-
Slides available as hybrid-PDF:
-
Out for dinner with Markus W - to celebrate the PDF
signing crowd-funding campaign. Up late with some interesting guys.
2015-06-15 Monday.
-
Up early, off to the Swiss Open Cloud Day (tomorrow) in Bern,
somewhat unfortunate acronym (OCD) - should be dead fun. Train met a
friend, train met an SI.
-
My 2nd AirBnB booking for Bern dropped out - hmm, lets hope
they have comfortable park-benches. Met a Linda previously with SIL in
Africa on the plane; finally found a place to stay; great mobile data
connectivity on the train to Bern, and extremely beautiful scenery.
-
Found a hotel somehow; mail chew; slide creation, bed.
2015-06-14 Sunday.
-
Excited present unwrapping with E. - lots of fun lego bits,
got 1kg of mixed 2nd hand lego; will that reduce the resource
contention just or exacerbate it ?
-
Off to NCC, sermon on the choice of the next sermon series,
good to catch up with lots of people afterwards. Lamb roast lunch.
-
David over in the afternoon, good to chat - kindly donated
several original female lego-people to the cause. Much slugging, tea,
stories, bed early.
2015-06-13 Saturday.
-
E's seventh birthday party - helped make egg & sandwiches
etc. prep. party food; morning / lunch-party - played garden games in
the mixed weather, water-pistol fight towards the end.
-
Slugged, watched movie, bit of hackery, patch review, bug
triage etc. bed early, watched a movie about a writer living in a
castle.
2015-06-12 Friday.
-
Interesting partner meetings; dug into a particularly
interesting idle handler bug with Miklos - seems writer has always
had a spell-check timer that failed to stop triggering - now we
execute those bits far faster, we can get a 100% busy loop in some
cases.
-
Bruce & Anne over for lunch - good to catch up
with them.
2015-06-11 Thursday.
-
Travel to London for a partner meeting; great to see some
old friends, albeit far too briefly. Presented, demo'd, train home,
unwound a silly problem with the last warning output from Noel's
newest VclPtr plugin and pushed it to Jenkins for some CI goodness.
2015-06-10 Wednesday.
-
Beat back the mail flow, board call, partner call.
2015-06-09 Tuesday.
-
Mail chew, partner call; built ESC agenda, stats. etc. More
partner calls.
2015-06-08 Monday.
-
1:1 calls variously, lunch, team meeting. Poked at misc. bugs
and built some better ESC stats scripting.
2015-06-07 Sunday.
-
Up lateish; off to a Church bash on Studlands Park, played
Violin in the band; free hot-dogs, free cakes, free (giant) bouncy
castle; various games etc. at the center of the local community: fun,
and lovely weather for it.
-
Home, slugging in the garden, reading & relaxing; good,
Yes Minister with older babes in the evening.
2015-06-06 Saturday.
-
Up earlyish, off to Wicksteed Park - lots of excitement,
particularly from E. - her first go on the roller-coaster. Enjoyed
a number of rides, and a go-cart race between H. J and myself
driving the rest of the family.
-
Alan & Claire arrived; caught up with them - played
on various bits - swinging pirate ships, dodgems etc. much fun had
by all; a fine lunch on the green, talked over life enjoyed the
company.
-
More rides; bid 'bye eventually; fish & chips in the
car on the way home, managed to survive a lot of standing up
somehow today. Put babes to bed. Found that Jenkins had passed the
patch I'd been testing during the day, pushed it. Watched
of 'The Quartet' with J.
2015-06-05 Friday.
-
Mail chew; finally a bit of hackery; ran some timings on
'make check' and filed another Easy
Hack to improve dbgutil performance.
-
Encourging to see Cor publish a 60 page
LibreOffice vs. OpenOffice comparison - which rather beats my original
(by now obsolete) from 2012, it'd be great to keep that up-to-date though it's
quite a job.
2015-06-04 Thursday.
-
Up late; mail chew; sync. with Niall caught up with Mike.
ESC call, posted minutes etc. Contract review.
2015-06-03 Wednesday.
-
Up early; mail chew; contract bits; customer call; sync.
with Niall, more contract bits.
2015-06-02 Tuesday.
-
Up early, mail chew; elevating one leg all the time is a pain.
Worked through admin tasks, tried to get to hacking. Customer call.
2015-06-01 Monday.
-
Back to work; mail chew; 1:1's with the team variously.
Lunch, team call, chat with Kendy. Team call. Out to the Doctor's
who said the previous doctor gave me a "practically homeopathic"
antibiotic perscription, and put me on the "domestos" version
instead.
-
J. meeting in the evening, worked late with the leg up.
2015-05-31 Sunday.
-
Leg still worse, missed church & slept much of the
morning; read stories to babes, chatted to M&D etc. most of
the day.
2015-05-30 Saturday.
-
Up lateish; set off to Ickworth House with the parents; an
unexpected wool festival going on there too. Celulitius much worse
in leg & spreading; off to get antibiotics with J. Lay with it
elevated a lot.
2015-05-29 Friday.
-
Mail chew, closed a few bugs; interview; parents over in
the evening.
2015-05-28 Thursday.
-
Up early; mail chew; call with Niall, admin; CRM bits,
filed holiday; signed CP up for OIN. Chat with lfrb.
2015-05-27 Wednesday.
-
Day off - up late, into Cambridge; wandered around the
Fitzwilliam Museum a bit with the babes, interesting place. Lunch
in the courtyard outside in the sun. Back to the office for a
partner call, then a customer call; picked by by a homebound
family; TDF board call. Worked late.
2015-05-26 Tuesday.
-
Mail chew; pushed a few patches; Linux Format Column;
customer call, chat with Niall, team call; more hackery.
2015-05-25 Monday.
-
Up lateish; off to Bruce & Anne's for a Warren End party.
Good to meet up with Sue, Clive & boys; as well as lots of
neighbours. Hacked in the car on the way back.
2015-05-24 Sunday.
-
Up late; read news, watched fascinating SpaceX GPU compute talk.
J. and babes home in the afternoon; nasty cellulitis infected bite in
leg - hmm. Out to Histon Baptist church for an afternoon service; pizza;
bed early.
2015-05-23 Saturday.
-
Up early; into Cambridge together by train, encouraged to
have Andrzej and Ben show up - and see Andrzej's nice calc work;
and get Ben's GSOC bits started. Many left; out for curry with
Bjoern, Thorsten, Ben & Andrzej. Back home late; hacked on
some bits until even later.
2015-05-22 Friday.
-
Up early; train together to Cambridge - more hack-fest
goodness much of the day; fixed a number of VclPtr issues.
-
Out punting in the evening with the lads; back for a
swift drink & train home. Talked with team, bed late.
2015-05-21 Thursday.
-
Up early; breakfast & music practise with babes;
breakfast with the guys; E-mail, drove into Cambridge - thanks
to Doree - hackfest has food, rooms setup. Sam out to buy hubs,
people started to arrive; encouraging to see such a great
collection of hackers working away.
-
Out to the Cambridge Beer Festival in the evening, thanks
to them for sponsoring the conference attendee's presence; fun -
talked until late. Drove the team home - 7x seats full of adults -
unusual.
2015-05-20 Wednesday.
-
Up early; into Cambridge - Andras & Kendy showed up,
Quarterly review, lunch while working; misc. paperwork left &
right. Back home for a roast meal, up late.
2015-05-19 Tuesday.
-
Mail chew; slideware production & stats generation.
Built ESC stats & agenda. Sam over in the evening, followed by
Niall - good to catch up with them.
2015-05-18 Monday.
-
Mail chew, document review, 1:1 calls variously. Lunch,
team meeting, mail - dug at a SplitWindow regression; team
meeting.
-
Fit new Dishwasher catch. Re-assembled the bath, having
angle-ground offending nails off the back of the panelling.
2015-05-17 Sunday.
-
Up early; played violin at NCC; home for a fine lunch.
Slept a chunk of the afternoon, dis-assembled the bath to clear
the U-bend at some considerable length. The trainee-carpenter's
"Easy to remove" ignored a large number of concealed
screws, over-long nails & more; hmm.
2015-05-16 Saturday.
-
Up earlyish; helped N. with LibreOffice draw - building
a maths board game; replaced tyre on her bike. Attacked M's
computer - Mozilla reporting all certificates as invalid even
for google: turned out the date was mis-set (surely easy to
check and do better here ) - a horribly unhelpful error message
though; tweaked.
-
Out to Harminda's birthday party; populated by a large
group of people from the gym & spec-savers - an interesting lot.
2015-05-15 Friday.
-
Mail chew; sync. with Niall; dish washer door catch spring
broke; dis-assembled and adapted (a rather weaker one) from another
spring. Project review call. Couple of bugs fixed in the evening &
a hair cut.
2015-05-14 Thursday
-
Into Cambridge, chat with Tim; paperwork; sync. with Tracie.
Home early; bug fixing on the train.
2015-05-13 Wednesday
-
Finally found my VclPtr
horror by using a perl-script to process the gdb H/W watchpoint
output; uncovered a rats-nest long overdue for fixing too - the
power of applied prayer etc.
-
New washing machine arrived; another Hotpoint (now Whirlpool
apparently), if it does another decade - will be happy. Set too
cleaning the code / rats-nest out. Lunch.
2015-05-12 Tuesday
-
Mail chew, chased horror VclPtr smart-ref. counting issue -
2700 acquire/releases - and some of them wrong, for just one object;
very strange.
-
Partner call; Philippe call.
2015-05-11 Monday
-
Mail chew; 1:1's, poked at VclPtr issues. Lunch. Team call.
Chat with Tim, more mail chew, another team call.
2015-05-10 Sunday
-
Up late with a head full of compressed fluff; in bed much
of the morning, family off to church; deck-chair based slugging in
the garden in the sun. Paddington movie with six small girls (Amie Jane
& Sophie) in the late afternoon; stories, put people to bed.
2015-05-09 Saturday
-
Up late; not feeling ideal. Set too trying to buy a new
washing machine to be delivered soon. All sites dedicated to this
appear to miss the: "I want it soon" angle - "whatever it is I want
it Monday" seems to me to be the primary buying criteria for
replacing broken stuff; why do people carefully hide that data
behind layers of web-fluff ? Finally ordered something.
-
Out to clean the church toilets - rota-fun; back and
out to a Lode Chapel barbeque; put babes to bed.
2015-05-08 Friday
-
Chased bugs & paperwork much of the day; accountants,
Companies House, HMRC, etc. Took washing machine partially apart in
the evening to diagnose horrendous racket; apparently bearings gone
again; 1cm of play on the tub - irritating; only coaxed (almost
exactly) another year of life out of the machine.
-
Yes Minister with the babes in the evening; J. out at a party;
worked late - helped H. with her %ages.
2015-05-07 Thursday
-
Lots of VclPtr bug fixing; hmm. 1:1 with Tim, ESC call.
2015-05-06 Wednesday
-
Into Cambridge, chewed through some bugs on the train. Meetings,
with finance, HR, election fever in the office - luckily already postal
voted. A slight irony in all of this is that the Conservatives campaigned
vigorously against the (fairer and better) Alternative Vote plan; yet they
would probably have got some 2nd or 3rd choice of my (protest) vote if
it was in-place.
-
Call; hacked at some bugs; beat back E-mail a bit; paperwork.
Carlo over late for a lightning tour of Cambridge which was interesting;
headed home for an ad-hoc dinner together. Put babes to bed, read stories,
poked a bug, sleep.
2015-05-05 Tuesday
-
8am partner call; sync. with Kendy, 1:1's, team meeting. Lunch.
-
Interested to see the Roundcube
Next Fund-Raiser, looks very interesting. I'm particularly pleased to
see (something like) an Affero-LGPL in action: hopefully that will allow a
mix of Free Software & Proprietary companies to collaborate on a Free
Software core that everyone can re-use, without some awful (C) assignment
awfulness around it; nice work Roundcube !
-
Built ESC bug stats. Document review; Consulting team call.
2015-05-04 Monday
-
Up lateish; big breakfast; out for a walk with the babes in
the sun, found a geo-cache; back for a late lunch, slugged in the garden
in the sun in a deckchair; and finished reading the babes: "Selling the
Wheel". Tea, read long stories, bed. Struggled to sleep - late-night
conference fun messes with sleep cycles it seems.
2015-05-03 Sunday
-
Up early; off to the conference with Cor; chatted with
and caught up with people variously much of the day; checked
GUADEC dates: mid-family-holiday sadly. Bus, tram, train,
to Eindhoven.
-
Airport; charged batteries, filed a few of my queued up
Easy Hacks.
-
Fixed a VclPtr silly or two on the plane; worked in the
coach station.
2015-05-02 Saturday
-
Up early; slide hackery; tram to the conference - why can
The Netherlands get this Ubicard thing right across bus, train, tram
etc. When the UK is still all paper-based ?
-
Gave a talk at the openSUSE conference on what's new
in LibreOffice:
-
Followed by a rather similar talk in the Kolab conference
track - to some interesting guys; overall rather a fascinating set
of conference attendees. BBQ dinner together, and talked late into
the night; back to a cheap hotel with Cor.
2015-05-01 Friday
-
Up at 3:30am, flight to Eindhoven, meeting; on to Den Haag,
caught up with old friends at the conference - wow, a fun conference
with both free food, and free beer. Out for the sponsors dinner
in the evening; to a hotel to write slides; up rather late.
2015-04-30 Thursday
-
Mail chew, team calls, misc. code fixing, ESC call;
late call; later to bed.
2015-04-29 Wednesday
-
Mail chew; revenue recognition work; poked at conference
travel for the forthcoming openSUSE / Kolab conference.
2015-04-28 Tuesday
-
Report review & tweakage, built ESC bug stats, merged
VclPtr but enough conflicts that it will need a re-merge to try to
keep up with a rapidly moving master branch. Finally merged it.
-
Board call while ferrying H. and M. to their lessons
variously, stopped at playground on the way back; checked
tinderboxen.
-
Dinner, read stories to babes; wrote LXF column; mail; bed.
2015-04-27 Monday
-
Admin, 1:1 calls , out to Agnes Forsyth's
funeral - a lovely Christian lady; a piper at the funeral too. Back
for team call, more 1:1's, team call, another 1:1 & dinner. A
whole day of meetings; urk. Chatted with J. happily in the evening.
2015-04-26 Sunday
-
Out to NCC at the Academy, Helen spoke. Back for lunch,
slugging, babes playing in the sun in the street with Sophie.
H. home from her fun 'Shine' + sleepover + barn-dance + film
bash. Out for a run with J. played 'Bridges' with H. Tea,
stories, bed.
2015-04-25 Saturday
-
Breakfast, J. out for a seminar on teenage kids at church.
Fed three babes - sawed up the last bits of the sofa to bin them;
dis-assembled the malfunctioning toilet door - somehow broken its
spring(s) - made some split-ring pliars from screws & a bolt with
N. cannibalised pantry door for toilet door & ordered new parts.
-
Started assembling some flat-pack kitchen units; David
arrived, finished the assembly - had a fine pizza dinner together,
read stories & talked companionably until late.
2015-04-24 Friday
-
Mail chew, admin, misc. calls; got the VclPtr bits passing
make check, and building on Mac / Linux / Windows. Not good to merge
just before the weekend I suspect. H. out for a sleepover.
-
Watched Jane Eyre on the BBC in the evening with
Julia - horrific compared to the nuance depth of the book; hardly
explicable without reference to it either.
2015-04-23 Thursday
-
Reminded by Claire to update my blog; good idea.
-
Mail chew; amused to see the pictures from Keith of what building LibreOffice
can do to your laptop paint job; though I'm rather a fan of Thinkpads.
-
Great to see Tobias and Jennifer's interview
written up by Sam; nice work guys.
-
Partner call; lunch; ESC call; pushed minutes. Poked at CI
builds of VclPtr bits.
2015-04-22 Wednesday
-
Customer call, interview, interesting lunch
with Andrew Haley. Partner call, sync. with Tomaz, reviewed a nice
blog.
2015-04-21 Tuesday
-
Meetings with UKTI in the morning, good to catch up with the team.
Collabora Quarterly meeting in the afternoon. Acutely irritated by
parts2repair.com which appears unable to send me what I ordered; I guess
the moral is to check scam
adviser first or somesuch.
2015-04-20 Monday
-
Wrote status report, 1:1 meetings, 2x team meetings, admin.
2015-04-19 Sunday
-
NCC, Tony spoke, slugged much of the afternoon.
2015-04-18 Saturday
-
A busy week chasing and missing the Alpha 1 deadline (today).
Into Cambridge, fun customer meeting all day with Bob, lunch, museum,
punting, etc.
2015-04-15 Wednesday
-
Mail chew, partner call; team call; did some modelling
and a bit of calc / StarBasic function creation. Built ESC
bug stats.
2015-04-14 Tuesday
-
Mail chew; plugged at various problems left/right with Noel
in gaps. Admin bits, TDF observed acceptance tests. Took H. to
hospital - seemingly she fractured her wrist yesterday, got a splint.
2015-04-13 Monday
-
Mail chew; 1:1's, mail, product team call; quick lunch;
consulting team call; poked a partner. Up late at night fixing
VclPtr issues.
2015-04-12 Sunday
-
Up; off to NCC; spoke. Home for a passover lunch, and
some painting red-paint on door-posts & lintels with branches
for fun. Poured over maps of Europe for some holiday planning via
France, Germany, Switzerland, Italy etc. perhaps with some business
interspersed (DV). Watched From Time to Time with the babes,
rather lovely. Dinner, read stories; bed early.
2015-04-11 Saturday
-
Up late; slugged a bit, more VclPtr fixing idly in the
morning, along with starting to research Colossians 1 in earnest;
worked through the day interspersing meals, playing with babes,
VclPtr fixing and sermon building for tomorrow until after
midnight.
2015-04-10 Friday
-
Mail chew, sales bits interspersed with re-basing the VclPtr
work - another huge whack of work - both encouraging: lots has changed
and improved - code removed & cleaned up; and also disappointment
at some needless conflicts; the trials of long-term branches.
-
Reviewed Kendy & Miklos' sexy report of the Android
editing infrastructure work that has been done; excellent stuff.
2015-04-09 Thursday
-
Breakfast, bid 'bye to Niall - started to try to catch-up with
vacation mail. Built ESC bug stats & sent agenda. Lunch. ESC call.
-
Tried to get a modern llvm/clang installed on my openSUSE 13.1
and failed completely; short of breaking Mesa that seems impossible;
tried the binary downloads of 3.5.1 which seem to get tangled with the
system versions; sigh - I could really use the benefit of our plugins
there.
2015-04-08 Wednesday
-
Up early; drove into Cambridge, all-day sales review interspersed
by an amusing, office-wide Easter-Egg hunt: dead fun. Out for a drink with
the team, dinner with Kat & David in the evening, home with Niall.
2015-04-07 Tuesday
-
Drove home, got a bit of work done on the way in the car.
Also continued reading Selling the Wheel to the babes (due to
popular demand). Got home - disposed of an old sofa by sawing it
into pieces to fit into the (free) black-bin, rather than the
(for-pay) municipal tip. Discovered a number of moths & a
lost Asthma inhaler (1984), some marbles (I knew I'd lost
them) and a lot of pens & pencils.
-
Hannah dissassembled the Nexus One (debugging the broken
power button), called in for a 2nd opinion. The power switch's
flex cable is visibly cracked; and (seemingly) the flex assembly
is glued into the PCB sandwich making it ... tough to fix. Broke
down & bought a new flex assembly for GBP10 - impressed with
H's disassembly skills.
-
Cleared the house to prepare for Niall's arrival. Up late
with Niall and J.
2015-04-06 Monday
-
Up too early; off with Dad, Robert & 4x small girls to
do a lot of rock-climbing at Brimham Rocks. Lots of fun had by all,
exhausting though. Home after some snack-lunch & ice-cream.
Late lunch, afternoon of varied slugging, bed early.
2015-04-05 Sunday
-
Off to local church for a fine Easter service - putting
flowers into chicken-wire to ornament a crude cross symbolizing
resurrection; great.
-
Back via a tour to the castle, for a fine roast meal.
Dug at various tasks that need doing - examined the raised-beds
idea, pressure-washed and improved Father's shed base - thanks to
Gary: a neighbour (and Kingston/KCOM executive), and put up a
washing line. Up late talking with the parents & Robert.
2015-04-04 Saturday
-
Up; breakfast, finally got around to filing expenses.
Walked into town, played in the castle park with the babes; home;
lunch; egg painting with Grandma, poked in the garage with Father.
2015-04-03 Friday
-
Out into town, walked up the castle steps, played
in the gardens - home with the babes: by now stuck into some
great dinosaur / explorer board-game. Helped Father tidy the
partially-used paint glut in the garage to improve the
arrangement.
-
Out in the evening with J. to 'So' for a lovely meal
together, and on for a pint at a local pub; good to have some
time together - even though we're both exhausted.
2015-04-02 Thursday
-
Quick mail poke in the morning; out for a walk to the
Fountains Abbey estate - for a seven-bridge walk - a delightful
rest in the sun.
2015-04-01 Wednesday
-
Up, poked mail; chewed stats; breakfast, packed to set
off for Yorkshire. Hacked in the car - cleaned out a number of
key VclPtr issues - encouraging to see the bulk of unit tests
now passing.
-
Good to see Grandma & Grandpa, chatted while the
babes disappeared into a frenzy of lego & railway-track
construction. Read part of Bodge-It-Yourself to H.
2015-03-31 Tuesday
-
Early calls, interview. Out into Ely to try to get some
kitchen units sorted out and buy new shoes for small girls. It's
good to take some holiday. Back home.
-
Simplified our update statistics counter script to do
more simple unique IP address counting; previously were blowing
all memory on rather big machines by hashing unique IP addresses
asking for updates per version; hmm, left the analytics running.
-
Late interview, and partner call; slogged through more
VclPtr bits.
2015-03-30 Monday
-
Up early; round of 1:1's, team meetings, beat back E-mail;
tried to take some time off. Chat with Stephan, unwound some more
VclPtr construction-time ref-counting madness.
2015-03-29 Sunday
-
NCC; enthused at the older kids wrt. Old Testament history,
timelines, where various stories fits in a chronology of the ANE.
Back for a large lunch.
-
Set too moving bits around the house, piano out of my
office, sofas around the place; built a standing desk from an
old door, as an alternative.
2015-03-28 Saturday
-
Drove to Reading to Stephanie's 18th birthday party; lots
of fun with the family - somewhat moderated by an hour of delay
on a shut M25 - in the sun; read 'Selling the Wheel' to the babes
who were (surprisingly) interested.
2015-03-27 Friday
-
Plugged away at mail and VclPtr problems. Harry Potter
with babes in the evening.
2015-03-26 Thursday
-
Mihai posted a nice blog with a small video of
LibreOffice Online in action - hopefully we'll have a higher-resoluton
version that doesn't feature some bearded idiot next time.
-
Out to the Dentist for some drilling action. Back for
some mail beat-back. Quick lunch, into Soham to collect H. and
take her for her Viola exam, met her teacher. Celebratory ice-cream
and hot chocolate.
-
Home, profile reading, customer estimations. Dinner, put
babes to bed re-organised office routing, cabling etc, moved machines
downstairs.
LibreOffice On-Line & IceWarp
Today we announced a collaboration between
IceWarp and Collabora to
start the creation of LibreOffice On-Line, a scalable, cloud-hostable,
full featured version of LibreOffice. My hope is that this has a huge
and positive impact for the Free Software community, the business
ecosystem, personal privacy, and more. Indeed, this is really one of
the last big missing pieces that needs solving (alongside the Android
version which is
well
underway).
But wait - this post is supposed to be technical; lets get back to
the code.
A prototype - with promise
At the beginning of the LibreOffice project, I created (for
our first Paris Conference) a prototype of LibreOffice On-Line
using Alex Laarson's (awesome) GTK+ Broadway - you can still see videos of that
around the place. Great as the Broadway approach is (it provides
essentially a simple Virtual Desktop model into your browser), the
prototype taught us several important things which we plan to get
right in LibreOffice On-Line:
-
Performance - the Broadway model has the advantage
of presenting the full application UI, however every time we
want to do anything in the document - such as selecting,
panning, or even blinking the cursor; we had to send new
image fragments from the server: not ideal.
-
Memory consumption / Scalability - another side
effect of this is
that, no matter how un-responsive the user is (how many tabs are
you long-term-not-looking-at in your browser right now) it
was necessary to have a full LibreOffice process running to
be responsive & store the document. That memory consumption
naturally significantly limits the ability to handle many
concurrent clients.
-
Scripting / web-like UI - it would have been possible to
extend the gtk javascript to allow tunnelling bespoke commands
through to LibreOffice to allow the wrapping of custom UI,
but still the work to provide user interface that is expected on the
web would be significant.
Having said all this, Broadway was a great basis to prove the
feasibility of the concept - and we re-use the underlying concepts; in
particular the use of web
sockets to provide the low-latency interactions we need. Broadway
also worked surprisingly well from eg. a nearby Amazon cloud datacentre.
Similarly having full-fidelity rendering - is a very attractive proposition,
independent of the fonts, or setup of the client.
An improved approach
Caching document views
One of the key realisations behind LibreOffice On-Line is that
much of document editing is not the modification itself; a rather large
proportion of time is spent reading, reviewing, and browsing documents.
Thus by exposing the workings of document rendering to pixels squares
(tiles) via LibreOfficeKit we can cache large chunks of the document
content both on the server, and in the client's browser.
As the users read though a document, or re-visit it, there is no need to
communicate at all with the server, or even (after an initial rendering
run) to have a LibreOfficeKit instance around there either.
Thus in this mode, the ability of the browser's Javascript to
understand things about the document itself allows us to move much more
of the pan/zoom reading goodness into your client. That means
after an inital (pre)-fetch that responsiveness can be determined more
by your local hardware and it's ability to pre-cache than remote
server capacity. Interestingly, this same tiled-rendering approach is
used by Fennec (Firefox for Android) and LibreOffice for Android to get smooth mobile-device
scrolling and rendering, so LibreOfficeKit is already well adapted
for this use-case.
Editing live documents
In recent times, The Document Foundation has funded,
via the generosity of TDF's donors a chunk of
infrastructure work to make it possible to use LibreOfficeKit to
create custom document editors. There are several notable pieces of
this work that intersect with this; I provide some links to the
equivalent work being done for Android from Miklos Vajna:
Cursors & selection
Clearly blinking a cursor is something we can do trivially
in the javascript client, rather than on the server; there are
however several other interactions that benefit from browser
acceleration. Text selection is a big piece of this - re-rendering
text on the server simply in order to draw transparent selection
rectangles over it makes very little sense - so instead we provide
a list of rectangles to render in
the browser. Similarly, drawing selection handles and
interacting with images is something that can be handled
pleasantly in the browser as well.
Keyboard / touch input
Clearly it is necessary to intercept browser keystrokes,
gestures and so on, transport these over the websocket and emit
them into the LibreOfficeKit core.
Tile invalidation / re-rendering
Clearly when the document changes, it is necessary to re-render
and provide new tile data to the client; naturally there is an existing
API for this that was put in place right at the start of the
Android
editing work.
Command invocation
Another piece that is required, is transporting UNO commands, and
state (such as 'make it bold', or 'delete it') from the client javascript
through into the LibreOfficeKit core. This is a matter again of proxying
the required functionality via Javascript. The plan is to make it easy to
create custom, bespoke UIs with a bit of CSS / Javascript magic wrapped
around and interacting with the remote LibreOfficeKit core.
Serializing selections
Clearly as & when we decide that a user has wandered
off, we can save their intermediate document, serialize the
cursor location & selection - free up the resources for some
other editing process. As/when they return we can then restore
that with some small document load delay, as we transparently
back their cached view with a live editable LibreOfficeKit
instance.
What does that look like roughly ?
Of course, lots of pieces are still moving and subject to
change; however here is a perhaps helpful drawing. Naturally
integrating with existing storage, orchestration, and security
frameworks will be important over time, contributions welcome for
your pet framework:
The case for simple collaboration
A final, rather important part of LibreOffice On-Line; which
I've left to last is that of collaborative editing.
The problem of generic, asynchronous, multi-instance / multi-device
collaborative document editing is essentially horrendous. Solving even the
easy problems (ie. re-ordering non-conflicting edits) is non-trivial for any
large set of potentially intersecting operations. However, for this case,
there are two very significant simplifying factors.
First there is a single, central instance of LibreOfficeKit rendering
and providing document tiles to all clients. This significantly reduces the
need to a re-order asynchronous change operation stream, it is also the case
that editing conflicts should be seen as they are created.
Secondly, there is a controlled, and reasonably tractable set of
extremely high-level operations based on abstract document co-ordinates -
initially text selection, editing, deletion, object & shape movement,
sizing, etc. which can be incrementally grown over time to extend to the
core set of editing functionality.
These two simplifications, combined with managing and
opportunistically strobing between users' cursor & selection contexts
should allow us to provide the core of the document editing functionality.
Show me the code
The code is available as of now in gerrit's online
repository. Clearly it is the Alpha not the Omega; the beginning,
and not even the end of the beginning - which is a great time to
get
involved
Conclusion
LibreOffice On-Line is just beginning, there is a lot that
remains to be done, and we appreciate help with that as we execute
over the next year for IceWarp. A few words about IceWarp - having spent a rather
significant amount of time pitching this work to people, and having
listened to many requests for it
- it is fantastic to be working with a company that can
marry that great strategic sense with the resources and execution
to actually start something potentially market-changing here;
go IceWarp !
2015-03-25 Wednesday
-
Happy Document
Freedom Day - great to see Collabora partner:
write some
helpful thoughts about it. Of course we have a nice banner / wrap -
and a custom LibreOffice theme that looks like this for the event:
.
2015-03-24 Tuesday
-
Prep for Document Freedom Day tomorrow; chewed a lot of mail;
misc. calls. Late customer call.
2015-03-23 Monday
-
Mail chew, lots of 1:1's. Lunch, team meeting, calls,
another team meeting. More calls.
2015-03-22 Sunday
-
Off to NCC, spoke, back for a quick lunch. J. out to
collect an exhausted H. from a fine YFC weekend, watched a
program on time with the older babes. Bed early.
2015-03-21 Saturday
-
Up, set about getting some ethernet cabling into the
new office through an existing hole. Rather pleasant to have a
window to look out of, but cold.
-
Plugged away at Colossians 4, oddly biblegateway seems to
not respond for me - hopefully due to over-use. Worked on talk
for tomorrow until late.
2015-03-20 Friday
-
Up early; somehow managed to fit an unfeasibly large desk
into the car with J's help - to create the nucleus of a downstairs
office.
-
Plugged away at E-mail, and VclPtr fixing - finally wrote
some documentation
of what's going on there; needs some more work before posting to
the list though. Plugged away at remaining issues with Noel's help.
-
Bruce & Anne over for lunch.
2015-03-19 Thursday
-
Chased endless more OutputDevice / VirtualDevice lifecycle
conversions through our unit tests. ESC call, more slog.
2015-03-18 Wednesday
-
Admin interspersed with chasing horrible lifecycle issues
through our unit tests with VclPtr bits in-place.
2015-03-17 Tuesday
-
Admin and E-mail backlog, interspersed with small build / bug
fixes to retain interest in life. Built ESC bug stats. Lunch with J.
2015-03-16 Monday
-
Into Cambridge, 1:1 calls, lunch with Tim, team meeting,
met with Basil and Sam; another team meeting, poked at VclPtr
cleanup with Noel - really hoping to see the light of day at some
stage there. Train home.
-
Dinner. Read stories, viola practice with H. customer
call until late; bit more hackery; sleep.
2015-03-15 Sunday
-
Babes had made J. a whole box full of Mother's day
goodies. NCC in the morning, Tony spoke. Home for a fine lunch.
Slugged in the afternoon, Bronnie dropped in. Watched a How
we got to here documentary on 'Clean' with the babes. Bed.
2015-03-14 Saturday
-
Up; J. off to the British Museum with H. into Cambridge with the
babes to the Cambridge Science Festival. Lots of interesting things -
Philiae talk and satelite construction, genetic determinism of Cuckoos
(un-trained by reed-warbler parents to parisitize them), lunch; Bees &
plants; bangs & crunches - back to the office; met up with J. & H.
there, and home for a Fish & Chip tea.
-
Hacked at VclPtr bits left & right - finally starting to
unwind and elucidate the rather odd
toolkit/
/ widget
lifecycle until midnight.
2015-03-13 Friday
-
Morning estimation, sales call, customer call; lunch.
Sync with Fridrich, more estimation - a tragic drought of hacking.
-
Extremely amused by an Anti-Virus vendor flagging its own
software as malware.
From the experience of generating a new LibreOffice release every
week which is ~100Mb of code small - it is easy to show that AV
software is a bundle of superstition and duct-tape that looks for
tiny not-very-convincing 'signatures' and erroneously flags things
left & right. Glad they get hoisted by their own petard
sometimes too.
2015-03-12 Thursday
-
Into Cambridge to meet the UK trade & industry rep. -
interesting chap. ESC call, horrendous train stuffing on the way
home - 2x 3 carriage train-loads of people don't fit into a 2x
carriage train (as you might expect) - taxi home.
2015-03-11 Wednesday
-
Mail chew. J. kindly dug through the expense queue for
filing; positive board call.
2015-03-10 Tuesday
-
Great to see the Wilhem Tux
PDF
signing & time-stamping work land in master for 4.5.
Great also to see Noel Grandin's great progress on the VclPtr
work.
-
Built ESC stats and prototype agenda; misc. admin.
-
Pleased to see the great work from Tobias Madl and
Jennifer Liebel working as interns at Munich in master. This
gives a rather nice priority based main-loop that separates
idle priorities from timers - allowing eg. idle re-rendering
and re-sizing tobe handled ~immediately and not on a timeout,
which should make 4.5 much snappier in several cases. This
should also enable a larger cleanup of the code to allow
deferred instead of immediate painting.
-
Chat with Thorsten, dinner, babes to bed; turned round
some copy.
2015-03-09 Monday
-
Mail; a round of 1:1's; more mail. Lunch with J. Back for
a product team call, more chew, writing, then a consulting team call.
Dinner. Built some stats.
2015-03-08 Sunday
-
NCC, Simon Matthews spoke. Home for a large lunch, much
slugging in the afternoon; bid 'bye to the parents; watched a
documentary on 'cold' with the babes. Put everyone to bed.
2015-03-07 Saturday
-
Built a socket blank to tile over for J. Out with H. and Father
to Kelvedon Hatch Nuclear Bunker for an audio tour & inspection.
Had lunch there, detour on the way home for an ice-cream. Bit of tiling
in the evening, relaxed.
2015-03-06 Friday
-
Mail chew; encouraging re-estimation call; lunch. Sync.
with Tim, poked at legalese. Admired J. and Father's kitchen tiling
progress. Relaxed with the parents in the evening.
2015-03-05 Thursday
-
Up; burned much of the morning. Pitch creation. Lunch.
More work chew, built latest LibreOffice on Windows with
new VS2013. Out for a parent's evening. Parents over for dinner,
enjoyed catching up with them.
2015-03-04 Wednesday
-
Mail chew, document review, chat with Floeff; disappointing
call with the TDF board. Encouraging call with customer.
2015-03-03 Tuesday
-
Mail chew, contract fiddling; binary build & up-load
an Android debugging build - a 2.4Gb chunk of native code into a
1Gb APK, fun. Chat with Simon. Lunch. Two customer calls, sync.
with Tor, dinner.
2015-03-02 Monday
-
Day of report writing, meetings etc. Product team call;
had a review with Jacobo of his nice Android work, read some
OwnCloud documents from Android. Consulting team call; more
mail thrash.
2015-03-01 Sunday
-
Built OT chronology / geography bits for the kids prep for
visiting the British Museum; NCC - quick timeline / geographical
bits, the wonders of 2000BC Mesopotamia and onwards.
-
Home for lunch; tiling with J. attacking another section
of wall; relaxed variously.
2015-02-28 Saturday
-
Porridge breakfast, set the babes to their home-work; J.
out to collect H. from a sleepover; poked at mail, fixed a nasty
vcl VirtualDevice issue hurting slideshow on Windows. Nailed some
more (hopefully nearly the last) multiple dispose / VclPtr
lifecycle re-work issues; ran a dbgutil build to find more issues,
helped Siqi with an Android build issue. Lunch.
2015-02-27 Friday
-
Mail chew, nailed my dbaccess lifecycle issue; another double
dispose issue - this time with horrible manual reference-counting.
Interview. Lunch, helped get Julia setup splitting tiles off the wall.
More mail, review; plugging at new VCL lifecycle bits idly.
-
Dinner, read story to E, watched movie with M. and N. helped
J. who has tiled the back-kitchen mostly cut the last few tiles. Back
for some late-night mail / debugging.
2015-02-26 Thursday
-
Up - mail chew; chat with Niall; more mail. Poked at x86 /
android SIGILL a little more; perplexing - all .a object files
are i386. Turned around partner paperwork.
-
Spent some time chasing VclPtr reference counting issues;
unwound how vcl destruction works in the end; every container has
to explicitly delete its children; non-ideal.
-
Home eventually; dinner with Lydia & Janice & Jules;
back to work until late.
2015-02-25 Wednesday
-
Up early, quick mail chew; set off for Cambridge; into
the office to see Tracie; read a great report. Train on to
Edinburgh, worked on budgets. Extraordinarily frustrating
experience with intermittent connectivity and Evolution on
the train for some hours.
-
Enjoyed some of the talks at the Open Source Awards,
and a great meal mid-stream.
-
Extraordinarily honoured to recieve from Karen Sandler,
on behalf of Collabora Productivity, the UK Open Source Awards 2015 -
Best Organisation; gave a small acceptance spiel:
- It is an honour: in a Cloud obsessed world to have a
Commodity Client Software company represented. In
a world obsessed by Tablets: to encourage
Free Software that makes your PC/Mac keyboard really useful.
Naturally, we do have a Tablet & phone version making
good progress now (for the paper-haters).
- LibreOffice 80+ million users: more than the UK's
population. A brief correction - Collabora is only the 2nd
largest contributor to the code - the 1st is volunteers
in whose debt we all are. Everything we produce is Free Software.
- Collabora - has a mission we believe in: To make Open
Source rock (ono). We're betting our Productivity subsidiary
on ODF and LibreOffice.
- We're here to kill the old reasons not to deploy Free Software:
with long term maintenance for three to five years; rich
support options - backing our partner/resellers with a fast
code-fix capability; and finally killing complaints - we can
implement any feature, fix any bug, and integrate with any Line Of
Business app for you.
- In the productivity space - innovation is long overdue;
Free Software can provide that. Thanks for coming &
your support
2015-02-24 Tuesday
-
Mail chew, built ESC stats; mail; lunch. Customer call.
Reviewed the LibreOffice 4.4 feature set to write a LXF column,
rather encouraged.
-
Booked train tickets to the great Open Source Awards tomorrow
in Edinburgh.
2015-02-23 Monday
-
Mail chew, 1:1 calls with people, lunch. Team call, sync
with Lubos, mail, hacked a little bit on gtktiledviewer wrt.
zoomed in selection overlay rendering. 2nd team call.
2015-02-22 Sunday
-
Lie-in, out to NCC - Claire preached well; back for lunch
with Dean and Moulouia(?) and their fun-sized girls. Quarter practice
with the babes, watched a notably terrible 'Cindy' film; tea, read
stories bed.
2015-02-21 Saturday
-
Up earlyish; counted the area for tiles, into Bury to
order just the right kind; to Noughton Park to play with the
babes. Back for lunch.
-
Spent much of the afternoon moving more cupboards
from wall A (the wrong wall) to wall B (the right wall).
Considered the plans to create fitted family lockers for the
assorted junk that four babes produce - to match JP's
version we admired in Toronto.
2015-02-20 Friday
-
Mail chew, patch review, fixed an Android crasher, and tried
to avoid a SIGILL running Android/Atom code on my AMD x86_64 machine
in the android emulator: nasty, failed to overcome that with my Core
II Duo. Perhaps new NDK's really generate lots of hyper-new
instructions, odd.
-
Took apart my Motorola Xoom which has failed to charge reliably
recently. Very impressed with the non-soldered-in, surface-mount - get
really well secured (by moulding in the chassis) power connector;
removed and tweaked this with a needle to mend it (for now).
2015-02-19 Thursday
-
Built ESC bug stats, and created a wiki page for the pending
and awesome Cambridge
LibreOffice Hackfests - May 21st to 23rd.
-
H's friend Paris over; lunch. ESC call.
2015-02-18 Wednesday
-
Plugged at mail, got through a number of the more
vexing task backlog. Contract review, chat with Chris &
Vladimir; partner call. Enjoyed the antics of 'Ludo Backslash' in Assylum, sleep.
2015-02-17 Tuesday
-
Mail chew, admin in the car on the way to Bruce
& Anne's worked there. Lunch - out for a walk across
the warren with the family. Back, got several more
annoying pieces done. Pancakes for tea. Some hacking in
the car on the way home.
2015-02-16 Monday
-
One-on-one calls, mail chew, lunch. Product team call.
More mail & IM chew, Consulting team call. Poked at vclref
changes a little to relax. Potter movie in the evening.
2015-02-15 Sunday
-
Practiced & played at Church, Tony spoke well on 1
Thessalonians 4; pointed out the rather tragic Shades of Grey
release on Valentines day. Romanticising getting pleasure from inflicting
pain seems extraordinarily perverse to me. I feel for those in
relationships whose shades of abuse will get deepened by this.
Also for those wanting to improve their satisfaction with their spouse
it all seems rather self defeating.
-
Out to GenR8 to collect a tired but happy M. and N. - fun.
Returned home to drill holes in walls left & right to wire up the
audio for J's sound-system - to avoid it traipsing over the Kitchen.
Back for a Sunday dinner, and put everyone to bed.
2015-02-14 Saturday
-
Woke early, unexpected call from a friend. Wrote cards
for daughters, wife, positioned flowers, chocolates etc. Back to
bed. Breakfast.
-
Took E. out for her annual trip to Banham Zoo - a wonderful
set of displays, particularly the Amazing Animal display
with a set of trained animals from Rats & Owls to Armadillos
and more. Enjoyed the various feedings of Cheetas, Siberian
Tigers etc. Had lunch together.
-
Back for dinner, put babes to bed; did a bit of hackery
trying to get the VCL lifecycle branch that (mostly Noel) has been
toiling at into a better place.
2015-02-13 Friday
-
Started on the task backlog - travel is really bad for
focused E-mail handling / proposal writing. Plugged away and
got some bits turned around. Interview. Dinner.
-
Took N. and M. to Genr8 - a Christian weekend indoor
camp-thing in Histon; an emptier house. Detour via Bar-Hill
Tesco with E. to stock up on flowers & cards for tomorrow.
2015-02-12 Thursday
-
Breakfast with Guy, ISE early - wandered the floor a bit. Train,
plane, coach, coach home - lovely to see the family, read stories etc.
2015-02-11 Wednesday
-
ISE show all day, lots of pacing of the floor, some customer
& partner contacts, interesting discussions. Quick tea in the
evening; chewed at proposals; poked people variously. Encouraged
to read Why I ditched Microsoft Word (for LibreOffice).
2015-02-10 Tuesday
-
Horrible train, bus, coach journey to Luton. Plane to
Amsterdam, eventually got to the RAI, met up with Guy, out for
a fine dinner, back to a fine AirBnB place; bed.
2015-02-09 Monday
-
Mail chew, one-to-one meetings, status report, lunch.
Product team call, customer call, consulting team call. Dinner,
put babes to bed; plugged away in the evening until late - built
ESC stats.
2015-02-08 Sunday
-
NCC, played the Violin, ran the older kids group. Home for
a fine lunch; slugged quietly, hair-cut - discovered the fridge's
push-fit plumbing is leaking & rotting the inherited, horrible
fake-flooring; bother. Poked at that. Bed early.
2015-02-07 Saturday
-
Late up, J. out to take E. to a soft-play party; tidied the
house, read the Economist; Sue, Clive & family + Bruce &
Anne over. Out to Prezzo for an Anne's birthday treat - much enjoyed
by everyone. Back, enjoyed a chat. Dinner, next Potter movie in the
evening with H. and N.
2015-02-06 Friday
-
Mail chew; call, more mail. Pointed people at Chris Lord's
links to Mozilla
compositing which look fun. Continued to assault the endless
pile of admin. Potter movie with M. in the evening.
2015-02-05 Thursday
-
Mail chew; interview; lunch; call with Thorsten, ESC call,
pushed minutes. Plugged away at admin & proposal iteration in
the evening until late.
2015-02-04 Wednesday
-
Encouraged to see Simon's FOSDEM LibreOffice for Android bug
report reveal a whole category of silly crashers: intents that point
to non-local files fail to load as of now; Tomaz working on a fix.
-
Mail chew, call with Chris; admin catch-up; sync. with Tim. Lunch. Call with Vladimir.
-
Ran some profiles, chased some loose ends. Partner call. Sync
with Joel. Interested to read Gerv's blog Je Suis... in passing.
2015-02-03 Tuesday
-
To Beta Co-working (our kind hosts) - started working
through the mail & task backlog from FOSDEM - finally found
a patch to review, caught up with lots of people one on one,
albeit briefly. Train, just caught the Eurostar, trains home.
2015-02-02 Monday
-
Off to Beta Co-working; mail chew while waiting for the
gathering to begin; all-day board meeting. Lots of budgetting &
other discussion. Pizza dinner, bought in - more mail catchup.
Back to the Hotel, caught up with Italo, then Thorsten, bed late.
2015-02-01 Sunday
-
More FOSDEM goodness; lots catching up with people; out for
a constructive lunch. More hanging out with all and sundry, caught up
with some old friends; out for a (traditional) Kasbah dinner; up late.
2015-01-31 Saturday
-
Early up; to FOSDEM to setup the booth-ness; met lots of
people, sat in the (encouragingly well populated) dev-room and wrote
slides while enjoying talks.
-
Gave a talk on the great work from Kohei & Matus in
LibreOffice 4.4. Slides:
-
A long series of partner, customer,
and old-friend meetings; such a fantastic crowd at FOSDEM.
Foundations dinner in the evening, nice to see a good selection
of the usual suspects. Back for drinks and sitting in the Astrid
lobby until late.
2015-01-30 Friday
-
Breakfast with the babes, mail chew; sync. with Chris;
train to FOSDEM. Reviewed a nice report, chewed through older
mail. Met up with Simon on the Eurostar; on to the hotel - met
up with the lads, out to a fine LibreOffice dinner, on to the
Delerium Cafe, and stayed up rather late talking.
2015-01-29 Thursday
-
Quick mail check, morning off - out for a walk with J. along a
rather perplexing Devil's
Dyke nearby - apparently each end used to be an impassable fen /
swamp. Nice to wander along, home for lunch; pushed 4.4 under-the-hood
update. Tried to relax.
-
ESC call, minutes, wrote a delayed Linux Format column.
Watched Miriam's Christmas play on DVD initially with her (somewhat
delayed). Dinner.
-
Booked ISE flights - odd how I can dread booking travel
so much when it's so easy.
LibreOffice under the hood: progress to 4.4.0
Today we release
LibreOffice 4.4.0, packed with a load of new features
for people to enjoy - you can read and enjoy all the great news about the
user visible features
from so many great hackers, but there are, as always, many contributors
whose work is primarily behind the scenes in places that are
not so easy to see. That work is, of course, still vitally important to the
project. It can be hard to extract those from the over eleven thousand
commits since LibreOffice 4.3 was branched, so let me expand:
Complete User Interface Dialog / Layout
The UI migration to a much improved, Glade compatible XML
representation of VCL dialogs, complete with automatic layout is now
almost complete (after thinking we'd done them all - Caolan
discovered a lot of docking windows that need further work but these
are now also migrated, all but two). Also a lot of work was put into
cleaning up and tweaking the look / arrangement of dialogs. Many thanks to
Caolán McNamara (Red Hat) - for his incredible work & leadership
here, and to Adolfo Jayme Barrientos, Palenik Mihály (GSoC 2014),
Olivier Hallot (EDX), Szymon Kłos (GSoc 2014), Rachit Gupta (GSoC 2014),
Tor Lillqvist (Collabora), Jan Holesovsky (Collabora), Maxim Monastirsky,
Efe Gürkan YALAMAN, Yousuf Philips and
many others. Thanks also to our translators who hopefully will
have much less string churn to suffer now. As a side-note the
resource-compiler in rsc/
has gone on a nice diet.
Initial OpenGL rendering backend
The switch to move VCL to use OpenGL for rendering is one of those
things that ideally should be entirely under-the-hood, but ends up
having small but important visual impact. All the work here was done by
Collabora engineers, with a beefy re-factor and the initial
OpenGLContext management by Markus Mohrhard, much of the rendering
implemented by Louis-Francis Ratté-Boulianne with anti-aliasing,
and image scaling work from Lubos Lunak, various Windows fixes
and porting work from Jan Holesovsky and some bits from Chris
Sherlock. During the work we also implemented a half-way decent
and increasingly complete VCL demo application exercising rendering.
A rational for the work with some pictures is available.
By moving to a pure OpenGL rendering model, we can accelerate
those operations that badly need to taking advantage of the
power and parallelism of the huge APU die-area given over to modern
GPUs. Being able to interact much more directly with the underlying
graphics hardware helps us to both render our image previews at high
quality, and not to sacrifice scroll / zoom performance: having
our cake and eating it too. We've also used some of that power to
not only significantly accelerate our image rendering, but also
improve its quality too from before:
to After (NB. if your browser scales it too you're likely to loose
the sense; zoom to 1:1 and checkout eg. the top of the circular window,
or other high-frequency areas.)
There is a fair bit more work to get OpenGL into a suitable
state including several odd Windows / lifecycle bugs; it is necessary
to export SAL_FORCEGL=1
to override the black-listing, but
we hope to nail these in the 4.4.x cycle. Several ongoing and intersecting
features such as the true Idle handler work from Munich's Jennifer
Liebel and Tobias Madl as well as more future / pending work in-progress
from Munich's Michael Jaumann (working on OpenGL canvas) and
Stefan Weiberg (on OpenGL Transitions) are due in 4.5, both
mentored by Thorsten Behrens (SUSE).
Mobile Viewer / LibreOfficeKit
The recently announced
Android Viewer (Beta) has a number of invisible pieces included
there. Particularly the improvements to LibreOfficeKit: an easy way to re-use
the rendering and file-format goodness from LibreOffice from Andrzej Hunt
and Kohei Yoshida (Collabora) to get Impress and Calc rendering to tiles
at least to a Beta level. You can read more about the just started editing work
done for TDF there too. LibreOfficeKit has also become more powerful at
extracting key document meta-data from yet more of the host of file formats
that LibreOffice supports - important for indexing un-structured data.
Build / platform improvements
30% faster Windows builds
With the new build system functionally completed, we've looked at the
most significant problem with it: rather slow build times on Windows.
An investigation and some benchmarking
revealed that the usage of Cygwin make was the main cause of the slowness,
and hence Michael Stahl (Red Hat) made it possible to build LO 4.4 with
a Win32 native build of GNU make, cutting from-scratch build time by
almost a third over stock Cygwin make, and speeding up incremental rebuilds
even more.
Win64 porting action
Another major improvement is from David Ostrovsky (CIB), which
is to do some significant work towards completing the native Win64 port.
This we expect will ship in LibreOffice 4.5, but should significantly
help eg. Java users and those with very large spreadsheets. See the
Windows
64bit wiki page for more detail, thanks also to Mark Williams
for some tricky UNO bridge fixing work, and to Tor Lillqvist (Collabora)
who laid a lot of the initial ground-work here.
Code quality work
There has been a lot of work on code quality and improving the
maintainability and cleanliness of the code. Another 59 or so commits
to fix cppcheck errors are thanks to Thomas Arnhold,
Julien Nabet and Simon Danner, along with the daily commits to
build without any compile warnings -Werror -Wall -Wextra
on many platforms with thanks primarily to Tor Lillqvist (Collabora),
Caolán McNamara (Red Hat), and Thomas Arnhold.
Awesome Coverity
We have been chewing through the huge amount of analysis from
the Coverity Scan, well - in particular Caolán McNamara (Red Hat)
has done an awesome job here; his blog on that is typically modest.
We now have a defect density that bumps along close to 0.00,
though as Coverity introduces new checks, and new code gets committed
that goes up and down a little; currently 0.02 so - 2 static checking
warnings per 100,000 lines. That compares extremely well with the
average Open Source project which has 65 warnings per 100,000 lines.
Grokking commits with coverity in them we have 1530 fixes since
LibreOffice 4.3 with the top three contributors after Caolan (1378 commits)
being: Norbert Thiebaud, David Tardon (Red Hat),
Miklos Vajna (Collabora).
Increasing use of asserts
In the 3.5 release we switched away from custom macros to
use normal 'assert' calls to sanity check various invariants; we're
doing more sanity checking left and right these days:
Import and now export testing
Markus Mohrhard (Collabora)'s great import/export crash
testing has been further expanded to cover 76,000+ problem/bug documents
up from 55k last release, with a selection of odd
images now also included. Another major win here
was the provision by TDF (thanks to our donors)
of a beefy new 64 core box to run the load/save/validate tests on. This,
combined with some re-working and better parallelism of the python scripts
driving that, has speeded up our test runs from five days to under one -
allowing rapid diagnosis of new regressions in a much smaller range. We've
also been able to do some Addresss Sanitizer runs of the document set which
has resulted in a number of fixes, thanks too to Caolán McNamara (Red Hat)
for some great work there.
Clang plugins / checkers
We have continued to add to our clang compiler plugins; a quick git grep
for 'Registration' in compilerplugins
shows that we've gone from 27
to 38 plugins in the last six months. These check all manner of nasty gotchas that
people can fall into in our code. Some of these plugins are used manually but many
are run by a tinderbox and some users to catch badness quickly. Thanks to:
Stephan Bergmann (Red Hat) and Noel Grandin (Peralex) for their hard work on these
checkers this cycle.
The plugins do all sorts of things, for example Bjoern Michaelsen
(Canonical) wrote a plugin that detects deeply-nested conditionals such as
these
monsters.
These are hard to read and a severe pain to debug through. Some of the worst
offenders in sw/ have been rewritten and the plugin can easily be applied
elsewhere in the codebase.
Unit testing
We also built and executed more unit tests with LibreOffice
4.3 to avoid regressions as we change the code. Grepping for the relevant
TEST and ASSERT macros we continue to grow the number of unit tests:
Our ideal is that every bug that is fixed gets a unit test to stop it ever
recurring. With around 1000 commits, and over seventy committers to the unit
tests in 4.4 it is hard to list everyone involved here, apologies for that; what
follows is a sorted list of those with over 10x commits to the
qa/
directories:
Miklos Vajna (Collabora), Caolán McNamara (Red Hat),
Kohei Yoshida (Collabora), Michael Stahl (Red Hat), Stephan Bergmann (Red Hat),
Zolnai Tamás (Collabora), David Tardon (Red Hat), Noel Grandin (Peralex),
Matúš Kukan (Collabora), Luboš Luňák (Collabora), Markus Mohrhard (Collabora),
Tor Lillqvist (Collabora), Thomas Arnhold, Andrzej Hunt (Collabora),
Eike Rathke (Red Hat), Jan Holesovsky (Collabora)
QA / bugzilla
Over the last six months the QA team has grown in size and effectiveness,
doing some amazing work to bring our un-triaged bug count right down from one
thousand (which we thought was good) to just over three hundred bugs. It's
particularly knotty triaging some of those last bugs - with rather deeply
technical, or super-hard-to-reproduce combinations lurking at the bottom:
some excellent work there. It is rather hard to extract credits for confirming
bugs, but the respective hero list overlaps with the non-developer / top closers
listed below.
One metric we watch in the ESC call is who is in the top ten in the
freedesktop Weekly
bug summary. Here is a list of the people who have appeared more than five
times in the weekly list of top bug closers in order of frequency of appearance:
Caolán McNamara (Red Hat), Adolfo Jayme, tommy27, Julien Nabet,
Jean-Baptiste Faure, Jay Philips, Urmas, Maxim Monastirsky, Beluga,
raal, Michael Stahl (Red Hat), Joel Madero, ign_christian, Cor Nouws,
V Stuart Foote, Eike Rathke (Red Hat), Robinson Tryon (TDF),
Miklos Vajna (Collabora), Matthew Francis, foss, Sophie (TDF),
Samuel Mehrbrodt, Markus Mohrhard (Collabora). And thanks to the many
others that helped to close so many bugs for this release.
Bjoern Michaelsen (Canonical) also wrote up a
new year
QA update which is well worth reading.
Another win that should help us tweak our bugzilla to make it
more user friendly and better structured is the migration from FreeDesktop
infrastructure to TDF, with thanks to FreeDesktop for taking our large
bugzilla load for all these years. This was completed recently - so now we
file bugs at http://bugs.documentfoundation.org/. Thanks to Robinson 'colonelqubit' Tryon (TDF), and Tollef Fog Heen
as well as our sysadmin team for that work. As is perhaps obvious, Robinson is
working for TDF (funded by our generous
donors) half-time to help improve our QA situation.
Code cleanup
Code that is dirty should be cleaned up - so we did a lot of that.
Ongoing German Comment redux
We continued to make progress, but sadly only a small amount of it
on translating our last lingering German comments across the codebase into
good, crisp technical English. This is a great way to get involved in
LibreOffice development. Many thanks to:
Philipp Weissenbacher, Christian M. Heller, Jennifer Liebel (Munich),
Chris Sherlock (Collabora), Michael Jaumann (Munich), Luc Castermans,
Jeroen Nijhof, Florian Reisinger and a number of others with just one
commit. Further reductions in the number of false positives from
bin/find-german-comments
suggest that there are only ten
top-level modules left containing German, nine of them worth translating:
i18npool, include, reportdesign, sc, scaddins, sfx2, stoc, svx, sw
One particularly encouraging contributor to our German Comment
translation efforts was Lennart Poettering
who it seems has an amusing plan afoot.
Upgrading to (some) C++11 subset
As time advances, C++ improves, with the upgrade of Visual Studio
we've been able to move to a subset of C++11 (as supported by VS 2012) as a new
compiler base-line. We also removed several optimization disabling
workarounds for bugs in old GCC versions that don't do C++11 anyway, and hence both GCC and MSVC can now build all of LO with optimization. Thanks to Stephan Bergmann (Red Hat)
for researching and driving this work.
OOXML Tokenizer cleanup
This cleanup builds on work by Miklos Vajna (Collabora) in the last
release. A big chunk of our OOXML tokenizer was generated code, which is reasonable
but it was generated using XSLT (which is trending below cobol). This was re-written
from 4200 lines of XLST into 1300 lines of python - to produce the same output with
a large increase in hack-ability. Then some optimization was done by Jan
Holesovsky (Collabora for CloudOn), to reduce inefficiency in the generated output
saving 2.2Mb from the 8Mb (stripped) writerfilter DSO. Great to see this sort of
code cleanup, source size shrink and binary shrink at the same time. You can
read more about it in Miklos'
blog.
std:: containers
A systematic set of improvements to our usage of the std:: containers has
been going on through the code. Things like avoiding inheritance from std::vector
, changing std::deque
to std::vector
and starting
to use the newer C++ constructs for iteration like for (auto& it : aTheContainer) { ... }
. There are many people to credit here, thanks to
Stephan Bergmann (Red Hat), Takeshi Abe, Tor Lillqvist (Collabora),
Caolán McNamara (Red Hat), Michaël Lefèvre, and many others.
Performance improvements
Performance is one of those very hard to see things, that is
nevertheless viscerally felt: "why am I still waiting ?". There are
a number of rather encouraging performance improvements by different people
in LibreOffice 4.4 that are worth noticing.
Autocorrect performance
For reasons that elude me, some people like to have huge
auto-correct lists. These are stored as zipped XML. Daniel Sikeler
(Munich) put some lovely
improvements into the loading of these. In particular he discovered that we
were re-parsing our BlockList.xml a large number of times, fixing this made a
big difference. Combining that with switching to use the threaded &
improved FastParser - yielded a further win. The auto-correct list is
loaded after the 1st key-press, so getting this from 4.3 seconds down
to 1.5 seconds (for huge correction lists) is a big win.
Image management
While profiling saving in various file formats, it was discovered
that we frequently swap in (ie. re-load, and de-compress) images - this of
course takes significant CPU time, particularly since we then immediately
continue to preserve the (original) data in the file. In some cases this
was taking a large proportion of save time for large image-filled
presentations eg. Thanks to Tamaz Zolnai (Collabora) for cleaning up and
fixing this, as well as hunting perennial image loss issues.
Fast Serializer
As a general rule any class named 'Fast' in the inherited
OpenOffice code is a horrible mis-nomer. Many thanks to Matus Kukan
(Collabora) for fixing this. We discovered that 25% of save time of
large XLSX sheets was consumed in the Fast Serializer, which did a
staggering 9.9 million system-calls, each writing some tiny fragment of
an XML attribute eg. separate writes for opening elements, element names,
attribute names namespaces etc. Matus reduced this to 76k calls to do the
same thing, a 99% decrease. Quite apart from the system-call overhead we
reduced cachegrind CPU pcycles for 'SaveXML' from over 12bn to under 3bn
for a simple sample.
Bundle libjpeg-turbo
It has been known for many years that JPEG-turbo provides
superior de-compression performance - "In the most general terms, libjpeg-turbo is 2.1 -
5.3x as fast as libjpeg v6b and 2.0 - 5.8x as fast as libjpeg v8d.".
Naturally Linux vendors use the system packaged libjpeg, but when we
distribute on Windows - we now bundle a 2x speed-up in the form
of libjpeg-turbo - thanks to Matúš Kukan (Collabora) with some
cleanups from Stephan Bergmann (Red Hat). Volunteers to make
jpeg-turbo integrate nicely on Mac appreciated.
Mail merge performance
Mail-merge works by building a huge document containing the
result of all the mails to be printed / merged into a single file. The
wisdom of this is highly debatable, but nevertheless thanks to Lubos Lunak
& Miklos Vajna (both Collabora for Munich) who put some significant
effort in to very substantially accelerate large document merge, in some
cases by several orders of magnitude. Sadly OpenOffice.org took a major
regression here in version 3.3, and that is now comprehensively fixed. This
turns a 2000 record mail-merge from a matter of hours down to a few minutes.
Calc Performance
There were a number of rather pleasant performance wins in this
release of LibreOffice, which cumulatively have rather a helpful effect.
Range dependency re-work
For previous LibreOffice releases Kohei Yoshida (Collabora)
spent a big block of time unifying runs of similar formulae into
FormulaGroups - that fill down a
large span of a column - since this is a common case for large data sets.
This allowed a large memory reduction, and lots of great data sharing.
However dependency management was de-coupled from this and was still
performed per-cell. That is particularly expensive if you consider a
range reference that is common for the whole formula group: resulting in
lots of setup, and tear-down cost: essentially to notify the entire
formula group. In 4.4 calc adds a listener type that is tailored for
these formulae groups - potentially turning tens of thousands of complex
data structure entries into a single entry. This saves a large chunk of
memory, and a lot of CPU time walking lists, it also saves a ton of
time when broadcasting the changes. There is plenty more work
to be done to extend this, and ideally in future we should use the same
approach for single-cell references as well. Thanks too to Eike
Rathke (Red Hat) and Markus Mohrhard (Collabora) for some associated
fixes.
Script type optimizations
For various reasons, detecting the script-type of a cell is an
expensive operation; is it some asian text, complex text or simple - which
affects the font, sizing & various metrics. Kohei Yoshida (Collabora)
discovered that in several common operations - copying/pasting large chunks
of data - that this work was being needlessly re-done and removed this cost.
Similarly, for simple data types with standard formatting on eg. a large
span of doubles, it was possible to significantly simplify the calculation of
script types.
Chart deferred re-rendering
Another area that (still) causes some grief is that whenever a data
range changes which a chart depends on, the entire chart is re-generated.
That involves tearing down a lot of drawing shapes and re-creating them,
which in the case of text is particularly expensive. Kohei Yoshida
(Collabora) implemented a great optimization to defer this work until
the chart is visible. This should have a pleasant effect on editing time
for large data sets which are charted on many other sheets, and also for
macros operating on many charts.
Getting involved
I hope you get the idea that more developers continue to find a home
at LibreOffice and work together to complete some rather significant work both
under the hood, and also on the surface. If you want to get involved there
are plenty of great people to meet and work alongside. As you can see individuals
make a huge impact to the diversity of LibreOffice (the colour legends on the right
should be read left to right, top to bottom, which maps to top down in the chart):
And also in terms of diversity of code commits, we love to see
the unaffiliated volunteers contribution by volume, though clearly the volume
and balance changes with the season, release cycle, and volunteers vacation /
business plans:
Naturally we maintain a list of small, bite-sized tasks which you
can use to get involved at our Easy Hacks
page, with simple build /
setup instructions. It is extremely easy to build LibreOffice, each easy-hack
should have code pointers and be a nicely self contained task that is easy to
solve. In addition some of them are really nice-to-have features or performance
improvements. Please do consider getting stuck in with something.
Another thing that really helps is running pre-release builds and
reporting bugs just grab and install a pre-release and
you're ready to contribute alongside the rest of the development team.
Conclusion
LibreOffice 4.4 is the next in a series of releases that
incrementally improve not only the features, but also the foundation
of the Free Software office suite. It is of course not perfect yet,
this is just the first in a long series of monthly 4.4.x releases
which will bring a stream of bug fixes and quality improvements
over the next months as we start working in parallel on
LibreOffice 4.5.
I hope you enjoy LibreOffice 4.4.0, thanks for reading, don't
forget to checkout the user visible feature page and thank you for supporting
LibreOffice.
Raw data for many of the above graphs is available.
A great French translation
of this is kindly made available at linuxfr.
2015-01-28 Wednesday
-
Mail chew; worked on marketing, ploughed through tedious
tasklets, sales call, partner call, another sales call. Worked on
a write-up of 4.4 things you can't see in the evening too.
2015-01-27 Tuesday
-
Mail chew; great to see the Android
Editing Tender announced by TDF. Naturally I (and another board member)
was recused from that discussion / decision. My hope is that after the heavy
lifting is out of the way, it will become much easier to get more people
involved there. The work itself has a has a large element of generic
tiled-rendering functionality which is re-usable in a number of situations
to improve rendering performance. Reading Miklos' nice write up of
some of the work so far.
-
Lunch. Reviewed my notes from the ODF plug-fest. Sync. with
Thorsten.
-
Up late replacing J's cracked glass on her Galaxy S3 -
managed to buy all the necessary bits, incluing a heat-gun for
20% of the cost of having it replaced by the cheapest shop I
could find; thank God it still works.
2015-01-26 Monday
-
Mail chew, 1:1's with the guys; lunch with J. Product team
call; more mail chew, sync. with Sam; Consulting team call; more mail
churn. Dinner, babes to bed, more admin. Pleased to see the progress
that Noel has made on the
feature/vclref
branch.
2015-01-25 Sunday
-
Up early; walked to the venue; debugged the xmloff
CustomShape engine feature - apparently not working; started to
dig into it, eventually made my own engine & started building
some shapes too. Series of talks on what had been achieved; had to
leave early to get a train. Home to the family.
-
The thing I worked on during the
hackday was getting at least some start made to the problem of
having a QR code engine built-in; courtesy of zint's backend (finding
the best version of
zint, which seems un-maintained, is remarkably hard - perhaps at
some stage we'll want to replace it with a good internal solution).
Anyhow - after some significant chew we have a custom-shape in the
feature/barcode
branch that renders something like
this:
It was interesting to find & fix the functionality that allows
you to enter:
<draw:custom-shape draw:style-name="gr1" ... draw:engine="org.libreoffice.draw.barcode" draw:data="QR code contents">
This apparently lets you create and associate arbitary (even say python)
components as 'engines' to render the content of custom-shapes - which
is interesting; although apparently not-used; I had to fix that first.
Hopefully this can open up a world of pretty & fun new user-created
functionality creating and embedding document elements in simple scripting
languages.
Of course - lots
still remains to be done before this can be useful - and most likely there
is a better way of doing it. My hope is that the rest of the code there
allows a fall-back to be serialized for users without the required plugin,
but I imagine it will need quite some tweaking yet; why not come and play
at FOSDEM
or the LibreOffice
hackfest immediately afterwards. Update posted
some technical bits to the dev-list too.
2015-01-24 Saturday
-
Up in the dark & cold, trains, on an Intercity and well
on the way to Cardiff by 9am; pleased with laptop power there too.
-
Struggled with CMake - gdcm refusing do as its bid,
configuring from a build directory, but still it fails; turns out
configuring in the source directory pollutes things to the point
that it then fails to configure even if you're elsewhere: funky.
Stuck into some interactive CMake thing that would't let me build
the makefiles, despite a clean configure and no errors: wow;
eventually tweaked around the un-reported error.
-
Arrived, walked to the venue; missed the pitches. Met
Malcolm and various others; long discussions about paper vs.
electronic records - didn't get any DICOM work done - instead
started on some QR code pieces.
-
Building closed early, out to a bar to meet other
interesting parties around the place. Late night kebab &
walk to the hotel.
2015-01-23 Friday
-
Into Cambridge for Quarterly meetings; good to catch
up with Philippe, Tracie & Guy; go over the positives &
areas for improvement together - had lunch as we worked, drew
up some projections.
-
Home earlyish. Tea - Naomi B. over to play, babes watched
Moonacre, put them to bed, watched the next Harry Potter in the
series with the biggers.
2015-01-22: Thursday
-
Set an alarm on my Galaxy S4 - why is it that the whole
'alarming' bit of alarms is missing; some anaemic 'bling bong bop'
that happens a couple of times & gives up seems to be normal
these days. It reminds me of the Onion's sounds
of the rainforest fire-alarm; the urgent, incrementing volume,
irritating beep setting has eluded me somehow.
-
Nice write-up of the LibreOffice
on Android viewer from Serdar @ InfoWorld.
-
Tried to dig out a simple Microsoft OpenGL sample without much
luck: disappearing cubes left/right; eventually found one - upgraded
Visual Studio to install MFC - which forced a re-boot (goodness!).
-
Lunch; booked train to the Cardiff / NHS Hackfest this weekend.
2015-01-21: Wednesday
-
To work early, polled the play store in a loop, encouraged to
see that Tomaz had found a big performance win as well as the cause of
some missing tiles in our Android Alpha; spreadsheet tile positioning
and text sizing still seems to be off however; hmm.
LibreOffice Android View (Beta)
Today Collabora released (cf.
Press Release) a Beta snapshot of the viewer work we've been doing for
and with SMOOSE for some months. This provides
a version for testing (it's really not finished yet), of LibreOffice running on Android
you can install it from Google
Play.
What does it look like ?
The writer functionality is probably the best piece of the component,
allowing pleasant screen-shottage and rather good viewing.
Impress presentations are supported here is an old one around cairo
rendering support, you can see the swipe-in-from-the-left page switcher:
We also have some (very early) calc tiled rendering; there are some
text scaling issues that we're working on there:
What did that involve ?
A huge amount of work. Much of the initial work was done by
Tor Lillqvist, while at SUSE (now Collabora), creating a cross-compilation
framework which we continue to use for iOS, Android and was originally
setup to do cross-compiles to Windows - so that we could have a predictable
toolchain, and a reliable/repeatable free-software build environment. Tor
also did some amazing bootstrapping work to overcome several debilitating
limitations of C++ on Android, get to get the initial startup, and packaging
into a good state.
Matus Kukan (Collabora) also did a chunk of work for CloudOn to help
link the entirety of LibreOffice into a single shared library image - helping
startup performance & improving Android support. This significantly helps
to work around the built-in Android linker's low limit of shared libraries it
can handle before failing. It also helps to export nearly no symbols, and to
let ld
's garbage-collection throw away as much object code as
possible: though there is still way more to loose.
Other work done for CloudOn by Jan Holesovsky (Collabora) and Tor
Lillqvist was to implement tiled rendering inside Writer - making it possible
to render arbitrary portions of documents at arbitrary zoom factors. We are
deeply indebted to them - you can of course enjoy the same code inside
CloudOn's iOS app.
Ian Billet worked during the Google Summer of Code 2012 to
make a document browser, which has subsequently been taken over and
much improved by Jacobo Pérez of Igalia
creating the document browser we
have today. It is of course somewhat regrettable that Android has no
standard built-in file browser making this necessary. Of course the viewer
also hooks into the OS to allow opening downloads, attachments etc. in
the normal way.
Since FOSDEM 2014, Smoose and Collabora in the person mostly of Tomaz
worked to re-target the excellent Fennec tiled-rendering code from Mozilla's
android browser to target instead of the Mozilla core - the LibreOffice core.
This involved great chunks of re-factoring, and hard work both in the Android
and C++ core. We re-use and added tiled rendering to the LibreOfficeKit
API - an API to allow simple re-use of LibreOffice for file format conversion
and document rendering via a rather trivial
C and C++ API. LibreOfficeKit under Linux has the advantage of requiring no
linkage to the code - being an (almost) purely abstract API.
Andrzej Hunt worked through Google Summer of Code 2014 to improve
and extend tiled rendering to Calc and Impress and the LibreOfficeKit
tiled-rendering API. You can read about that on his blog. One side-effect of that, recently
much improved by Miklos Vajna (Collabora) is the gtktiledviewer test app
which deliberately uses a non-VCL widget-set, and LibreOfficeKit to render
a series of tiles on a stock Linux desktop. This significantly to helps
accelerate debugging. Kohei Yoshida (Collabora) was also involved in
reviewing, re-working and merging the calc tiled-rendering code to master.
Many thanks to all involved, particularly our client SMOOSE without
whose support, Collabora would not have been able to prioritize this work.
Getting involved
The code for the viewer is almost exactly what is in the git /
master branch in the android/experimental/LOAndroid3
directory. It should build out of the box with a simple make
,
of course after you have followed the
compilation instructions
and Android how-to. Needless to say - we've left a lot of juicy, easy-to-fix bugs for you
to gloriously fix - give it a try.
Finally if you want to hear, and see more, and get involved with what
we're up to, a great way to do that is by coming to Kendy's LibreOffice
on Android talk at FOSDEM this year, or Jacobo's document
manager talk.
Can you use LibreOffice in some way ?
Collabora provide bespoke consulting solutions to help people use
LibreOffice in the most effective & optimized way. Sometimes that means
using LibreOffice as part of your product, sometimes it means optimizing,
improving or extending to meet your use-case. We also sell long-term
Enterprise support for LibreOffice to make it easy and risk-free for you to
deploy LibreOffice in your organisation on Windows, Linux, Mac and (soon)
Android too - checkout
LibreOffice-from-Collabora
for more details.
2015-01-20: Tuesday
-
Slept well for a change; into Cambridge - chewed mail on
the train; call when I got in; built ESC stats. Quarterly meetings.
Paperwork in the evening, and out for a meal with Guy, Tracie &
Philippe. Home late.
2015-01-19: Monday
-
Mail chew, several back-to-back 1:1 calls, lunch. Product team
call; churned action items. Fixed some odd glsl float -> int
casting behavior and looked at the sexy GLSL scaling work from Lubos,
faster & higher-quality; nice.
-
Consulting team meeting; amused that Chrome - despite its
multi-process model, seems to get into a mode whereby a new tab
process renders for a bit then dies suddenly - but re-starting the
whole shell makes it work; micro-kernel advocates rejoice.
2015-01-18: Sunday
-
Up early; amused to agree with David Cameron's right to cause
offence - if not with his Sunday broadcast; then again it's
amusing that such attacks on freedom of speech get turned by the security
services into attacks on our freedom of expression, association etc.
by attacking anonymity and security on the internet.
-
NCC in the Akademy, Helen spoke on the
parable of the prodigal son.
-
Home for lunch; tidied up, and did some quartet practise with
the babes - watched 'Up' together; long stories; bed early.
2015-01-17: Saturday
-
Slugged, read the Economist, tidied a bit. Out to Nate &
Julie's for lunch with the whole brood; back; added some tertiary
insulation to a velux window - just in-case. J. out to the Pregnancy
Crisis Centre Quiz Night, read a round of 4x stories; bit of code
review, mail read, bed.
2015-01-16: Friday
-
Appalled to get a spam from the IET recruiting Patent Examiners
- a noxious combination. Surely they should know better; wrote to
their publication.
-
Mail chew; call; more admin. Lunch.
-
Had a call with Ben Kallos
who is apparently an (awesomely clueful) City Council Member of New
York City - and has a great vision for Open Source in New York &
the USA.
-
Call with Kohei - some amazing work even in his last two
days; calc tiled rendering looking great.
-
Somewhat amazed at the Pope's comments (as reported) - the
expectation of sometimes being offended is the other half of the coin
of Free Speech: something I wholeheartedly support; religion should have
no special privilege of avoiding offence. Of course, just because you
should be allowed to say almost anything offensive doesn't mean you have
to. Humour is a great gift helping introspection, and reflection even if
it bites sometimes.
2015-01-15: Thursday
-
Couple of early interviews. Sync with Nemeth. Lunch,
poked at some code with Moggi. Advisory Board call. Counted
remaining German comments, and even translated a few: down to
an amazing ~6k or so - within spitting distance of completion.
2015-01-14: Wednesday
-
Mail chew / communication overhead. 1:1 with Philippe.
Partner call, customer call, analyzed some profiles.
2015-01-13: Tuesday
-
Built ESC bug stats, partner call to report an interesting
OpenCL issue, poked at that.
2015-01-12: Monday
-
Mail chew; series of 1:1's with my team, 2x team meetings
and more mail / customer catchup.
2015-01-11: Sunday
-
NCC; David & Vicci over for a fine lunch, followed
by getting N's party setup & catching up with Vicci ; lovely.
Cooking party - with D. & V. did some ace judging. Long stories,
bed.
2015-01-10: Saturday
-
Watched the SpaceX launch with some little girls; out together
for A. Louise' birthday party - good to catch up lots of Julia's
extended family. Home.
2015-01-09: Friday
-
Up rather early; mail chew, ran some more timings;
debugged a windows GL context / threading crash a bit. Plugged
away at some contract/text. Booked at the Hotel Astrid for FOSDEM.
Potter movie in the evening with the babes.
2015-01-08: Thursday
-
Mail chew, sync. with Chris, chewed document, built stats,
profile reading, customer outreach. Dinner.
-
Worked late trying to
work out why an XLSX generated by Excel is so slow to load, only to
discover Excel made a complete hash of it and that 98% of what it
wrote is irrelevant nonsense; a quick save in LibreOffice, and it
1/3rd of the size (zipped) and loads twice as fast: good.
2015-01-07: Wednesday
-
Early start, train to Norwich via Stowmarket; interesting
meeting with Tim, out for lunch & annual review; train back
again - got some mail flushed intermittently as I went.
-
Suitably horrified by the attack on free speech today.
Horrible. Interested by the confusing narrative of peaceful Muslims
vs. aggressive ones I found this analysis of
positions including Qutb's provide some enlightening hermenutical
keys. Theology aside, I worry for the backlash on my (blameness)
Muslim neighbours. Beyond that - this sort of ideology strikes me
as pretty curious with its powerful message that God's only hands
are our hands - ie. the idea that we should go around smiting
people because God is incapable of doing it in a timely way. To shoot
someone and say "God is the Greatest" seems to me to be
tantamount to a faithless personal aggrandisement. Christianity,
while acknowledging just war etc. seems to me to not only try to
humanely seek temporal justice, but also to recognise its profound
limitations. Who can give two lives in return for those they took ?
I take comfort from Romans 12's "It is mine to avenge; I
will repay," says the Lord ... Do not be overcome by evil,
but overcome evil with good. - (emphasis mine). If only it were
easy. Yet that same confidence in an ultimate judgement that is not
only certain, but truly just - taking into account all circumstances
and backgrounds - informs a Christian motivation for prison policy:
societal protection & re-habilitation among many other things.
Still - a sad day.
2015-01-06: Tuesday
-
Mail chew, burned some time digging into an unhelpful profile.
Booked FOSDEM travel; should be awesome.
-
Poked at OpenGL context clearing on thread switching - sorted
that out. Finally got around to filing a big chunk of expenses.
2015-01-05: Monday
-
Calls, project kick-off with Miklos & Tomaz. Sync.
with Tor, mail chew. Lunch. Built ESC bug stats, sent agenda.
Dinner, churned through some profiles.
2015-01-04: Sunday
-
NCC, ran an older kids group study on the latter part
of John 2. Back for a fine lunch, helped N. to make-good the
remains of the wall & cupboard. Dinner, put babes to bed.
Park Street sermon on encouragement.
2015-01-03: Saturday
-
Up late; set too moving a large display cabinet /
cupboard from one wall to another - an awful chip-board / MDF
hybrid horror. Managed to get it re-assembled up-side-down on
the other wall eventually - set too making good the horror of
the wall revealed in the process with poly-filler. Watched
another Princess movie.
2015-01-02: Friday
-
To the park with kids, fine lunch; packed & drove
home. Watched a Pricess movie & a Harry Potter. Sandy
over too. Bed.
2015-01-01: Thursday
-
Lie-in, breakfast, out for a walk. J. drove back to B&A's,
while I hacked on vcl reference re-working for fun, and wrote up a
project plan / estimation. Got back, relaxed, ran some more tests.
Fine dinner, watched University Challenge.
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)