Stuff Michael Meeks is doinghttps://meeksfamily.uk/~michael/blog/index.atomMichael Meekshttps://meeksfamily.uk/~michael/blog/index.atommichael.meeks@collabora.comCopyright 1999-2015 Michael Meeks
PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.3 01/10/2008
2024-03-20T21:00:00Z2024-03-20 Wednesdayhttps://meeksfamily.uk/~michael/blog/2024/03/20/2024-03-202024-03-20T21:00:00Z2024-03-20T21:00:00Z<ul> <!-- -->
<li>
Up early, out for a run with J.
</li>
<li>
Early customer call, sync with Lily, mail chew, all
hands meeting. Poked at socket lifecycle management, and
SocketPoll workings in much more detail. Band practice,
worked until late.
</li>
</ul>
2024-03-19 Tuesdayhttps://meeksfamily.uk/~michael/blog/2024/03/19/2024-03-192024-03-19T21:00:00Z2024-03-19T21:00:00Z<ul> <!-- ljm -->
<li>
Mail chew, planning call, sync with Naomi & Lily,
lunch, monthly mgmt meeting, poked at some overdue 24.04 coding
treats - discovered some corner-case performance issue by
lengthing our fallback poll loop waits substantially; fun.
</li>
</ul>
2024-03-18 Mondayhttps://meeksfamily.uk/~michael/blog/2024/03/18/2024-03-182024-03-18T21:00:00Z2024-03-18T21:00:00Z<ul> <!-- -->
<li>
Mail chew; day of 1:1's and catch-up admin & planning.
</li>
<li>
Reflecting on why I get -so- spam these days, I suspect
LinkedIn likes to target on 'CEO' job title instead of the much
more opaque 'General Manager'; if I wasn't so busy turning down
the corporate 'enlargement services' equivalent I'd test that.
</li>
</ul>
2024-03-17 Sundayhttps://meeksfamily.uk/~michael/blog/2024/03/17/2024-03-172024-03-17T21:00:00Z2024-03-17T21:00:00Z<ul> <!-- -->
<li>
Up earlyish, breakfast with the parents, bid a fond farewell
& drove home. N. cooked lunch; J. and N. went to visit Izzie,
H.M. & E. to StAG; relaxed variously - watched <i>The King</i> -
interesting; its good to have a wife who speaks frankly to you.
</li>
</ul>
2024-03-16 Saturdayhttps://meeksfamily.uk/~michael/blog/2024/03/16/2024-03-162024-03-16T21:00:00Z2024-03-16T21:00:00Z<ul> <!-- -->
<li>
Up earlyish, breakfast; ladies left to collect H. from
Durham. Set too at a wiring problem in the kitchen; soup.
Out to Toolstation to collect some pieces. More wiring in the
afternoon - got it done eventually.
</li>
<li>
Lovely dinner, watched <i>Fishermans Friends</i>
together, rather a fine movie - the love of home in
<a href="https://youtu.be/FNCcSJiZR1I?si=O3rJDoxIGphNK7LU">Cornwall
My Home</a> is quite endearing; the original Buoy Band.
</li>
</ul>
2024-03-15 Fridayhttps://meeksfamily.uk/~michael/blog/2024/03/15/2024-03-152024-03-15T21:00:00Z2024-03-15T21:00:00Z<ul> <!-- -->
<li>
Marketing call in the morning; caught up with mail,
poked at background save.
</li>
<li>
J. drove E. and myself to Knaesborough; worked on a
profiling probe driven by a watchdog timer in the car.
</li>
<li>
Lovely to see M&D, dinner with them, caught up
& bed.
</li>
</ul>
2024-03-14 Thursdayhttps://meeksfamily.uk/~michael/blog/2024/03/14/2024-03-142024-03-14T21:00:00Z2024-03-14T21:00:00Z<ul> <!-- -->
<li>
Tech planning call, COOL community meeting,
poked at profiles, lunch.
</li>
<li>
Partner workshop, 24.04
release marketing call, <a
href="https://www.collaboraoffice.com/cool-days-2024/">COOL
days</a> schedule work - nearly 100 talk to fit in -
partner workshops, hackfest too - should be fun.
</li>
<li>
Encouraging partner call in the evening.
</li>
</ul>
2024-03-13 Wednesdayhttps://meeksfamily.uk/~michael/blog/2024/03/13/2024-03-132024-03-13T21:00:00Z2024-03-13T21:00:00Z<ul> <!-- lmj -->
<li>
Up earlyish; sync with Lily, worked through mail &
patch backlog, lunch, sales call, poked at socket management
in forkit, found some un-necessarily carried over wakeups; good.
</li>
</ul>
2024-03-12 Tuesdayhttps://meeksfamily.uk/~michael/blog/2024/03/12/2024-03-122024-03-12T21:00:00Z2024-03-12T21:00:00Z<ul> <!-- -->
<li>
Up earlyish, finished slides; got to the conference,
caught up with lots more people - good to get deeper on lots
of technology, as well as getting some great feedback around
COOL.
</li>
<li>
Gave a talk on what's up with COOL:
<center>
<a href="https://meeksfamily.uk/~michael/data/2024-03-12-cs3-cool.pdf"><img
src="https://meeksfamily.uk/~michael/images/2024-03-12-cs3-cool.png"
alt="CS3 - Unleash the power of COOL (Hybrid PDF)"/></a>
</center>
</li>
<li>
Bid 'bye variously; set off home; hacked on
background save in the plane; encouragingly found some
other efficiency wins too.
</li>
</ul>
2024-03-11 Mondayhttps://meeksfamily.uk/~michael/blog/2024/03/11/2024-03-112024-03-11T21:00:00Z2024-03-11T21:00:00Z<ul> <!-- -->
<li>
Up at 1:40am, drove to Gatwick, plane to Geneva.
Spent quite some time trying to accelerate the CPU version
of the RLE code amusingly without success: fun.
</li>
<li>
Off to CERN; arrived in time for <a
href="https://www.cs3community.org/">CS3</a> - great to
meet lots of old friends, tons of customers & partners.
Good stuff.
</li>
<li>
Enjoyed talks, tour of some of the facilities, more
talks, largest survey response so far of users shows that
(for Office tools) - Collabora is (just) at the top of for
the 1st year; encouraging.
</li>
<li>
Dinner bits in the evening, and tram back to the
hotel with some friends.
</li>
</ul>
2024-03-10 Sundayhttps://meeksfamily.uk/~michael/blog/2024/03/10/2024-03-102024-03-10T21:00:00Z2024-03-10T21:00:00Z<ul> <!-- -->
<li>
All Saints, played in the music group; back for
a pizza lunch with J. picked up babes from their camp,
sorted out the evening service; relaxed a bit.
</li>
<li>
Played guitar for the evening service, Florence
spoke, good time; home to rest.
</li>
</ul>
2024-03-09 Saturdayhttps://meeksfamily.uk/~michael/blog/2024/03/09/2024-03-092024-03-09T21:00:00Z2024-03-09T21:00:00Z<ul> <!-- -->
<li>
Up lateish, J. for an art session at All Saints,
plugged away at tidying up, mending alarm sensor.
</li>
<li>
Wrote a small <a
href="https://github.com/CollaboraOnline/online/blob/master/tools/Benchmark.cpp">benchmark</a> tool to further optimize
our RLE code-paths for some real-world <a
href="https://github.com/CollaboraOnline/benchmark">tiles</a>;
generated some numbers.
</li>
<li>
Out to a Garden Centre with J. then shopping; lunch.
Out for a walk with J. to Lode (not the LibreOffice
tool of the same name) - managed to navigate lots of mud,
and enjoy the scenery.
</li>
<li>
Home; poked at perf results and with an hour or
so of chewing got another 17% off the Avx2 RLE
<a href="https://github.com/CollaboraOnline/online/blob/master/kit/DeltaSimd.c#L97">code</a>:
<blockquote><pre><code>// load and arrange 8x pixel chunks & a shifted version
vpermd %ymm0,%ymm1,%ymm5
vmovdqu 0x20(%rdi,%r10,4),%ymm0
vpand %ymm5,%ymm2,%ymm5
vpermd %ymm0,%ymm3,%ymm6
vpand %ymm4,%ymm6,%ymm6
vpor %ymm5,%ymm6,%ymm5
// compare and turn that into a bitmask of duplicates
vpcmpeqd %ymm0,%ymm5,%ymm5
vmovmskps %ymm5,%eax
// store that bitmask (win was here)
mov %al,(%rcx)
mov %eax,%r11d
not %r11b
shl $0x5,%rax
// pack only new pixels into memory
vmovdqa (%rax,%r9,1),%ymm5
vpermd %ymm0,%ymm5,%ymm5
vmovdqu %ymm5,(%r8)
movzbl %r11b,%eax
popcnt %rax,%rax
lea (%r8,%rax,4),%r8
add $0x8,%r10
inc %rcx
cmp $0xf8,%r10
jb // loop to top
</code></pre></blockquote><br/>
Turns out using the CPU's built-in 8bit writing for the 8 pixel
mask is far more efficient than masking it into 64bit registers
which is cute. Should really simplify the RLE setup and
shifting part with _mm256_maskz_permutexvar_epi32 at some
stage, and really ought to 256bit align the memory too
at some stage. Seems it is 4.5x faster - than the not entirely
naive C version which chews 64 pixel chunks thus:
<blockquote><pre><code>// simplified inner loop for 64 pixel chunks
for (; bitToSet; ++x, bitToSet <<= 1)
{
if (from[x] == lastPix)
rleMask |= bitToSet;
else
{
lastPix = from[x];
scratch[outp++] = lastPix;
}
}
</code></pre></blockquote><br/>
</li>
<li>
Out for dinner in town with J.
</li>
</ul>
2024-03-08 Fridayhttps://meeksfamily.uk/~michael/blog/2024/03/08/2024-03-082024-03-08T21:00:00Z2024-03-08T21:00:00Z<ul> <!-- -->
<li>
Mail, catch up call with Lily, worked on role
descriptions, prepped for and gave a Tea Time Trainig
(TTT) on various architectural directions for online.
</li>
<li>
Plugged away at a bit of hacking in the
afternoon; calmed down some over-enthusiastic warnings,
chased down some corner-cases.
</li>
<li>
Babes off to Buckden Towers for a StAG camp.
</li>
</ul>
2024-03-07 Thursdayhttps://meeksfamily.uk/~michael/blog/2024/03/07/2024-03-072024-03-07T21:00:00Z2024-03-07T21:00:00Z<ul> <!-- -->
<li>
Mail chew; tech planning call, COOL community
call, admin, marketing strategy call, caught up with
action items. Got some more background save pieces done.
Prayer meeting in the evening.
</li>
</ul>
2024-03-06 Wednesdayhttps://meeksfamily.uk/~michael/blog/2024/03/06/2024-03-062024-03-06T21:00:00Z2024-03-06T21:00:00Z<ul> <!-- ljm -->
<li>
Up early, out for a run, mail chew; call with
no-one in it.
</li>
<li>
Finally manged to reset my yale home alarm
password - it seems the trick is to (somehow) intuit that
the web interface is an entirely different thing to the
mobile control app despite looking the same; hey ho.
</li>
</ul>
2024-03-05 Tuesdayhttps://meeksfamily.uk/~michael/blog/2024/03/05/2024-03-052024-03-05T21:00:00Z2024-03-05T21:00:00Z<ul> <!-- -->
<li>
Mail, planning call, partner call, got to a bit of log
and code reading with Neil around a unit test failure.
</li>
</ul>