Stuff Michael Meeks is doing
|
|
This is my (in)activity log. You might like to visit my employer
Novell which is an amazing company, and also
Dell who in days of yore provided me with a
free laptop for Gnome development / conferences.
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.
Older items:
2008: (
J
F
M
A
M
J
J
A
),
2007: (
J
F
M
A
M
J
J
A
S
O
N
D
),
2006,
2005,
2004,
2003,
2002,
2001,
2000,
1999,
legacy html
- Up lateish, met Lars, Roman and Klaus at breakfast,
retired to room, only to discover the hour I had left to write
my talk was in fact a timezone cockup. Extemporised extensively
hopefully to some effect, met Jo De Baar.
- Customer/partner meeting, wandered the show floor,
lunch with Roman. Back to the hotel to poke mail a little.
- Managed to get yast checked out of the new svn
location eventually, and get some changes back in, good.
Bed early, exhausted - missed going out with the lads: sad.
- Up, breakfast with Gilles, good to catch up, admired
the Novell stand etc. Met DV - really good to see him again. Nat
arrived, chewed over keynote content. Out with for a (fine) lunch
with customer, on to customer meeting, on to Nat's keynote.
- Hung out at the booth, caught up with Dave Neary;
talked to Nicolas & a friendly guy from PSA, out for a wander
then meal with a customer in the evening.
- Wandered L'Arc de Triomphe, and towards the illuminated
Eiffel Tower, back to the hotel, played chess with Nat until rather
late, extremely pleasant.
- Research project into effects of ripping off
blistered skin continues - apparently it yields more blood,
but less pain.
- Up early, poked mail, relatively light: nice.
Knocked up an
odf-converter-1.0.0 release, and had a go with it.
- Train - off to Waterloo, arrived in the nick of time
for bagel & boarding. Hacked away at string interning again,
more analysis of the places where string duplication occurs.
Another big hit in configmgr, it seems lots of our duplicates
arrive from here, and come from underlying duplication in the
XML config data. Prolly should just intern every incoming
configmgr key.
- It seems the Hilton La Defense is built inside some
sort of concrete cave: very strange indeed, also I have an
'elevator' feature outside my window - whereby people can go
up/down just outside it and look in: neat.
- Read some Gartner slide-ware, I didn't realise that
Microsoft's Software Assurance programme, combined with their
Office 2007 slip, means if you renewed your SA in Sept/Oct(/Nov?)
2003 - you paid but got no new version.
- Committed fix for vcl gcache hash shrink crasher.
Highly amused to read thing the gyst of "can't hack XYZ into glibc
because of very strong encryption of glibc sources", what
a nice metaphore for unreadability.
- Burst blisters on both heels from new shoes: nice ...
I wonder which effect is most substantial: heel hardening, or shoe
softening. Poked at Mono samples, and odf-converter performance,
it turns out there are a load of nice winforms sample apps, that
I've simply been missing. Bed late.
- Up late, nice lie-in, to NCC - did Creche, Tony
speaking. Back for lunch, everyone to bed, slept.
- Up, woke tired babes up, watched 'Mole' DVDs at
some length, dinner, hair cut while listening to Gordon
sermon
The tree of knowledge of Good & Evil interesting,
but left some unfinished ideas.
- Up early, managed to get all 3 up, fed, to
the market, and back to bed without waking J. nice.
J. up for Lunch. Started to attack the tax return
problem.
- Managed to dig out all the relevant forms,
notes etc. I have -no- idea why this isn't all
represented as a simple OpenDocument/OpenXML
spreadsheet - it'd be -way- simpler, and (with
grouping) more readable / searchable / fun.
- Watched The Hiding Place in the
evening, good (I suppose), but not in the same league as
the book unfortunately. OTOH got a few extra pleasing
insights not available in the book.
- Up early, dealt with babes, poked mail.
Experimented trying to construct a const/static string,
which (I guess) should be a simple thing: I want to
go from:
"foo" to:
struct rtl_uString { (1<<31)+1, strlen("foo"), { 'f', 'o', 'o' /* UTF-16 */ } }
Unfortunately, that appears somewhat difficult. It'd be
a great problem to crack though, making it easy to
conditionally (gcc only?) move a ton of strings into
.rodata, save a load of heap, and save doing any
ref-counting on them too).
- Ferried cake to Tim & Coleen's to celebrate
his return from the desert; dropped babes at the doctors,
washed up waiting for Janine.
- Eventually after much fiddling came up with
a nice 'magic' macro:
typedef struct {
int ref;
int len;
const wchar_t buffer[4];
} Str;
#define DECL_STR(a) \
((Str *)(&((const struct { int r; int l; const wchar_t b[strlen(a) + 1]; } ) { (1<<30)+1, strlen(a), L##a })))
...
printStr(DECL_STR("Foo"));
The GCC page on
Compound Literals is quite helpful. Unfortunately gcc
(apparently) doesn't elide duplicate DECL_STR generated output
in .rodata sections (which is interesting in itself perhaps).
(sample).
- Committed the relevant new stuff to CWS salstrintern,
added some regression tests for the string interning logic, that
appears to work (so far). Hacked away fixing various issues.
- Started working all the evil mis-uses of the
RTL_CONSTASCII_USTRINGPARAM macro from around the place, a
good number of places. Re-building laptop, installed lots of
packages, recalled that the moaning about xulrunner-xpcom really
means 'install gecko-sdk' on SLED.
- Ran aground with my CONSTASCII stuff in xmloff -
clearly a heavy string user; lots of cleverness (which should
no longer be necessary) in order to avoid having static
OUString constructors, that breaks my plan a little; bother.
- Income tax fun in the evening.
- Up earlyish, guy arrived from IBM to deliver
new laptop disk (this time Hitachi not Fujitsu), did a
little dance; demanded the last one back - with all my
data on it (hmm), not so good. Another happy SLED10
install.
- Poked mail. Read the huge, long ODF related
write-ups out there. Wrt. cool sounding Da-Vinci named
plugins, I'm still convinced that wholesale re-use of
the OO.o filter code-base is (in principle) the right
way to go. Interested by Rick Jellife's
view, non-hysterical approaches dominated by facts,
accurate technical detail, and humour are surely to
be applauded.
- Poked at mail, rsynched stuff across to
the laptop again (it's starting to recover slowly).
- In exiting news today: we have some more
happy hackers to welcome to the Novell China OO.o
team: Zhang Yun, and 2 of his colleagues to join Jian
and Fong. Looking forward to some great work from you
guys.
- Hacked the gtk+ fpicker around (a perennial
favorite), knobbled a silly usability issue, poked Lutz.
- Hacked away at string interning bits,
the new 'static' refCount guard against wraparound
seems uncontroversial & pleasant, leaving space for
the 'interned' flag.
- Call with Doug, IM with Simon. Bed late.
- Up, snowed in the night, wrapped the babes up
as well as possible - packed them off to pre-school.
Phoned the travel agent to confess my mental absence
yesterday, booking a flight outbound from Brussels, when
I'll be in Paris: fixed that.
- Ron & Iris around for tea & Greek
cakes, good to catch up with them. Great to talk with
Lutz on IRC - nice that he's interactive. Booked hotel.
- Did a chunk of research on the OUString class,
generated lots more interesting numbers and pictures in
ustrings.ods. Interestingly, 90% of strings survive
less than 9 other string allocations; also 90% of
allocations are < 60 bytes. and ~99% < 100. Not sure
what that means, but perhaps interesting wrt. Kay's
string performance
research.
- Interestingly (perhaps more so for garbage
collector designers), distance to previous allocation
of the same string, is fairly small, of course we've
freed most of these by then, and so re-allocate them:
- Robin & Jane, DT & Zoe around for
dinner, cell group - lots of people; jolly good, bed
late after cleaning up the grisly aftermath.
- Up early, dealt with babes to give J. a break,
call with Fridrich, call with Lenovo. IM'ing action.
Got a call back from Lenovo - nice, new disk by Thursday
(apparently).
- Flight booking, hotel booking, train booking,
a morning of administration. Kate Robson came for lunch -
lovely to see her. Team meeting, call with Florian.
More admin. Finally got to writing some more notes on my
string interning scheme.
- Downstairs, Coleen, her Auntie Mary, Anna
& Ethan for dinner - remarkably peaceful today, Ethan
talking more too. Bed early.
- Up early, to work, call with Lenovo's "Billy" -
apparently delays getting anything fixed. Call with Jurgen,
Kay & Noel - good stuff. Poked the yast2 team wrt.
commit problems to the public forge.
- Ported my unit tests for cppuhelper to the new
testshl2 framework (cf.
sal/qa/rtl/* for examples
of how to do that), and also ported the obsolete tests that
had ruined my day before to the new framework & binned the
old ones in cppuhelpshrink. So - now the CWS saves 700+kb from
writer startup, and includes new unit tests & cleanups - I
wonder, what is the next objection ?
- Conference call, built/installed HEAD mono &
did a new odf-converter snapshot. Stefan wanted yet more tests,
hacked them up, more 'typename' use in templatised function -
wow the compiler gets nice and slow when you use simple
templates (apparently, or perhaps the brain has to work
faster ?).
- Stefan wanted more tests; sigh. Wrote more.
Amused / amazed to see an @sco.com E-mail address on a
list: John Wolfe porting OO.o to their OpenServer 6
platform, glad, despite their mind-mangled legal issues,
they've got their priorities at least slightly right:
invest in OO.o.
- Up late, feeling dead, urgh. Paracetamol, to
Church, very enthusiastic preacher: lots of hand waving.
Back home, lunch, bed, up in afternoon, watched DVD with
babes, bed early, nurgh.
- Up, breakfast, bid 'bye to Rob & Kitty, to work
to catch-up, 64bit build finished, nice. Poked mail, triaged
bugs, poked at go-oo with Cloph to get tinderbox bits going
again.
- Feeling pretty dead, hacked at string hashing for
some rtl::OUString::intern type functionality.
- Up lateish, to work - ran badblocks on the errant
disk, while getting to grips with the 64bit build again. Realised
I perhaps lost mail that didn't make it to disk before the thing
died, bother.
- Booked travel to the Paris Linux Solutions show in
a week or so. Should book
FOSDEM travel too I guess.
- Call with Hubert, call with Rene, writing more text.
Dinner, watched Madaline (again) with the babes, bed earlyish.
- Up early, laptop disk failed - thing wouldn't boot,
tried to nurse single user mode into something with working
networking. Unfortunately, my Linux 2.2 / network expertise is
totally useless in a world of USB network cards, d-bus, HAL,
network-manager etc. defeated.
- Thank God printed off the talk last night. Off to
Swaffham Bulbeck - spoke at Lenny's funeral, a sad (& in
some ways happy) time.
- Tea, back with Heather, set too trying to repair
the machine, reluctantly used a floating Kubuntu CD to do the
rsyncing magic & rescued mail, home-dir & dollops of
data; halleluja. Call with Kay Ramme: very switched on guy.
- Bed late.
- Dug into the mail mountain. Sub-setted problematic emf
for Radek, sent mail to people. Did some analysis, created & QA'd
filtershrink CWS. Talked to pay-roll wrt. tax liabilities, good of
them to sort it all out.
- Investigated the gengal crash for Petr, can't repeat it
sadly. Up late for call with Simon, Michael. Rob, Kitty & Andrew
around in the evening to stay.
- Up, printed off expense approval / reports. Extremely
pleased with the new web/Oracle expenses thing in comparison with
the horrific old XMS beast (via Citrix).
- Banged away at configmgr, removed memory::Segment, good.
Accelerated the duplicate string detector & cleaned a little.
- Lunch, team meeting, call with Hannah, chased PA's to
get call setup. Dinner with Coleen & kids, played bouncy songs to
burn some energy off.
- Up early, chewed mail, another 1/2 day off to prepare
a talk for Thursday. Call with Doug & Co. call with JP, call
with Guy - my amateur telephonist credentials are in the ascendant
clearly.
- Up lateish, off to NCC, spoke, back for lunch.
Bed, tired. Up, lunch, watched 'Madeline' on DVD - rather a
heart-warming movie. The Brightys dropped in in the evening,
beans on Toast for dinner, bed.
- Up early, off to the market, back - babes to bed,
frantic party preparations etc. off to NCC to pick up my fixed
64bit server - apparently the power-pack at fault; nice new,
smaller, less noisy case too.
- Covered the table in news-paper, children arrived,
played musical bumps ineffectively, painted drying-up cloths
(and aprons, and Father) with fabric paints / crayons etc.
Then pass-the-parcel, followed by a party tea.
- Then some time catching up with James & Kate,
and chewing over the latest interesting topics, the interaction
between Christianity & the state etc.
- Up early, admin day - it seems I missed a ton
of E-mail somehow recently, dug at that. Poked at
CWS jimmactango2, cleaned up a few bits, QA'd, etc. looking
good. More configmgr pokeage, binned a few hundred more
Accessor usages.
- Filed time off & expenses. Call with our new
QA guy: Travis. Finally killed memory::Accessor in it's
entirety.
- Up late writing finishing talk for Sunday.
- Up early, poked at mail. Extracted and committed
the most obvious configmgr speedups & re-filed up-stream.
Binned salhelper::SimpleReferenceObject usage for myriad
internal objects. Realised some of the configmgr win may
have come from -O2 instead of -Os, switched back to that.
- More redundant mutex elimination, down to only
~20 lock/unlock pairs per config key read instead of 55+,
perhaps fewer.
- Mini lie-in, back to the action. Ran some
performance tests across Win32 / Linux and it seems the
CriticalSection primitives we're using on Win32 is just as
fast as on Linux, interesting.
- More configmgr hacking, re-factoring, removed the
UpdateAccessor completely, nice - aggregated some scattered
filed & inlined some bits showing on the profile.
- Attacked a couple of particularly silly
inefficiencies (beyond the locking) in configmgr, and managed
to get it from 25% of the time down to 11%, and total
3.7bn cycles to 2.6bn (writer startup, kcachegrind simulated
pseudo-cycles), good.
- Sat up & chatted to the parents, bed.
- Up early, dealt with babes - J. ill & in bed,
took H. to pre-school, washed up mayhem from last night etc.
Sad to hear our friend Lenny died early this morning, OTOH -
happy too, she was eager to be with Jesus really & a most
encouraging lady.
- Team meeting in the afternoon, DE meeting afterwards,
feeling pretty groggy still, J. in bed, hacked on configmgr
until late; read Ulrich's
futex paper quite interesting. Given the prominence of
Win32 locking on the profile, and the general re-applicability
of the futex method to a pure user-space lock, I wonder if there
is some potential quick-speedup on win32; must generate some
numbers.
- Parents arrived late.
- Up early, still feeling ill but motivation returned,
J. starting to succumb. Poked mail. It appears we forgot to turn
on --hash-style=both for OO.o in SL10.2 - the irony of having
done all the work, but accidentally not enabled it. Still, we do
turn on -Bdirect so should still be faster than others.
- Found/fixed an irritating navigator icon transparency
issue in draw/impress.
- Still interviewing for
these OO.o hacking positions - still several open. Sharp
applicants without OO.o experience most welcome; mail me.
- It appears that configmgr / GroupNode traversal is
rather expensive: lots of string compares per element, and most
traversal is effectively linear:
| setup | group name compares |
| default | 297,491 |
| 1 element cache | 154,409 |
| 1 elem + check next | 91,740 |
Hopefully that'll shrink the profile. Committed the 1st
cut to configrefactor01; next step - substantially simplifying
the locking.
- Coleen, Ethan & Anna around for dinner, lots of
small people running around & messing about. J. to bed early,
feeling ill.
- Up early, off to NCC - Tony speaking. Back, lunch,
slept - really not feeling good. Rest of the afternoon spent
re-arranging the storage cupboard, dismantling a bed, stashing
the cradle etc. Finally got various rooms into better shape,
and N. a room of her own. Bed early, zonked.
- Up early, dropped the dead AMD64 off in town, much
shopping of various kinds on the way back, lugged leeks (genuine
Welsh) home. Call - the machine had drunk it's PSU to death over
the course of a couple of years.
- Some more doll's house construction, finally got some
hinges of a ~acceptable size for the anti-dragon door for the
shower-room, drilled, affixed hinges, glued the frame together,
sanded door down to fit etc.
- Lunch, slugged much of the afternoon - babes watched
DVDs, did a little more hacking on configmgr: a trivial 1 item
cache should give a really nice speed win. Bed early.
- Up in the night; some configmgr reading, trying to
unwind the locking from the api2 side downwards, should consult
Joerg. Did some code analysis.
- Andrew, Fran & Felicity around before lunch -
really good to see them, and larger Felicity, fun.
- Call with Mehran, then Fridrich, dug out my
utterly-evil (TM) .xlsx importer hack. Dunged out lots of stale
'test' patches from ooo-build. It seems go-oo.org's SLES9 needs
updating to something more recent, poked ops - some scheduled
down-time needed at some stage.
- Worked late while J. painted doll's house toys.
- Up early, Kjartan prodded on some 'late' g_thread_init
problem, apparently ORBit2 uses glib to parse our options to determine
if we need to turn on threading before turning it on, hmm. Talked to
Tim, read Tor's patch.
- Poked at mail. Read this
fascinating insight into the nightmarish mess that lurks,
unmaintained inside MS Office. And some people think that competing
is impossible ? Amusing that different calling conventions &
g++ incompatibility of MS' source-code broke their Mac port. Poked at
LXF column.
- Up, J. not feeling wonderful, to work. Very pleased
today to get some ooo-build / OSX fixes from Patrick under the
JCA.
- The WinXP machine I need to test some interop problem
has (magically) been "Installing update 6 of 8 ." for the last 2
hours (with occasional change of legend: "Do not turn off or
unplug your computer"... Not encouraging, it makes zen-updater
look like greased lightning, particularly since (I believe) the
updates are pre-downloaded anyway.
- Spent some time poking at mono and the odf-converter,
updating to HEAD proved to be another world of pain, quite without
changing anything. Merged the Win32 / OSX build changes to
odf-converter-0.0.6, filed more patches at sf.net.
- Poked Tor, it seems he fixed
the unhelpful mono mkbundle2 problem whereby the result was
completely standalone except for a random machine.config
file: nice work.
- Tried to file expenses, some new funky Oracle system
involved: did the various training modules & quiz, some delay
until it's available unfortunately.
- Up, back to work - mail not so bad. Fascinating
performance issue in impress to look at. Poked away generating
interesting data from it with Radek. Radek came up with a nice
fix for some perspective depth, notably MS Office 2003 -totally-
mangles the document, which is fun.
- Lunch, good to catch up with JP. Looked for the list
of how to run unit tests in the wiki, couldn't find it - instead
found this nice
QA Metrics page, with a fascinating list of bugs with
most duplicates. Found the
OpenOffice Unit Tests again.
- go-oo.org down - apparently
Savvis can't manage a colocation facility's connectivity in such a
way as to avoid multi-hour, unplanned outages; luckily their own website
is still responsive: hosted somewhere else ?
- Emily better apparently, dinner, packed everything &
everyone into the car, drove home to Newmarket, performed the converse,
bed.
- Up early, N. sick in the night, and morning, feeling
very under the weather. Breakfast, sogged, DVD watching, took
Hannah to the park for a wade through the mud. Stainless steel
slides have really interesting temperature related slipperyness
characteristics: the mossy tarmac more slippery than the (huge)
slide.
- Back, lunch, slugging (started reading RML's kernel
book: really good stuff), put babes to bed, posh dinner:
unfortunately Emily [ Robert's Girlfriend ] now ill (poor dear).
Antisocial telivision watching until late: "the instrument"
atomises another family (sigh), (why do I do that?) bed.
In case it's not painfully obvious: the reflections reflected here are my
own; mine, all mine ! and don't reflect the views of Novell, The
Lithuanian Gov't or Arnold Schwarzenegger. It's also important to
realise that I'm not in on the Swedish Conspiracy.
Occasionally people ask for formal photos for conferences,
bio.
or fun.
Michael Meeks (michael.meeks@novell.com)