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; sync. with Paolo; Lunch; chat with Lenny.
-
Thrilled to have Collabora
Online 2.1 released: months of work by Kendy's team
since 2.0. Naturally everything is already included into
what will become LibreOffice 5.4, which enters feature freeze
in a couple of weeks - for a first release in June. You can
checkout the latest CODE
docker container and get it setup. There is a huge amount of
work under-the-hood in Collabora Online 2.1; here are some
examples.
- Re-worked threading model - our 2.0 version
worked well, but suffered from significant complexity —
re-using
the Poco socket code was easy to start with, but that used
a blocking model. Thus to get both non-blocking read & write,
with sensible queue management required two threads per user
socket. This combined with another two threads per document, to
give four threads in the Web Services Daemon - along with a
multitide of locks, conditions, and corner-cases. Collabora
Online 2.1 replaces all of this. We've migrated to a mostly
non-blocking approach for almost all our SSL code. This yields an
extraordinarily
simpler model - one thread per document, with almost no locking,
no lock contention, and significantly simplifies both the code
and reasoning around the interleavings as we change it - thanks
primarily to Ashod Nakashian & Kendy for their
work here.
- Improved socket code - the new non-blocking
socket code is rather simpler, more readable, maintainable
and of course built-in; easy to find who is responsible for it.
- Improved Bandwidth - in 2.0 we hashed tiles
to avoid re-compressing identical tiles (since PNG compression is
surprisingly costly), for 2.1 (thanks to Tor Lillqvist) -
we propagate these hashes to the client - to allow us to avoid
re-sending un-changed tiles. This reduces our bandwidth use
by ~50%+ in normal writer editing.
- State dumping - the non-blocking code uses
state machinery to a greater degree than before; to help debug
what state your server is in you can
pkill -USR1 loolwsd
to see any queued/un-processed data, queued messages, state of
document loading etc. in the logs.
- Calc row-limit - increasing this is thanks to
Marco Cecchetti who has been nobly wrestling with the many
and various ways Calc's non-affine, non-linear co-ordinate system
intersects with browsers for months.
- Commenting & Change tracking - lots of
hard work here to improve the core code to expose changes &
comments via various UNO commands from Pranav Kant, along
with helping out Henry Castro with his work on the JS side,
animations, prettiness and so on
- l10n & packaging - with many fixes from
Andras Timar improving lots of aspects, and with grateful
thanks to the LibreOffice translation community for their hard work.
- Code quality improvements - running the same
plugins as in the LibreOffice core.git by Noel Grandin and
Miklos Vajna.
- SVG icons instead of PNG for better experience on
HiDPI displays by Tomaž Vajngerl.
- Lots more -
git log collabora-online-2-0-branch-point..origin/distro/collabora/collabora-online-2-1
shows we had ~1300 commits, with 11 from non-Collaborans -
hopefully that will grow over the GSOC period. There are lots of
fun things that can be improved in Online, please do checkout the
code
and get involved.
-
ESC call, and minutes.
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)