This is my (in)activity log. You might like to visit
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
Stuff Michael Meeks is doing
- Ill, really ill. Spent most of the day in bed, funny how you don't
get bored when you are ill in bed.
- First attempt at hacking bonobo control support into glade, ugly but
- Fixed a brainless problem with dependencies I had created.
- Implemented procedure calls, everything as a function was driving me up
the wall. Sorted error handling / passing.
- Parents wedding aniversary 27 years years ago they got married,
amazing. Better still they didn't have me until 5 years later. 'Spy Hard' on TV,
extremely amusing in a vacuous sort of way.
- Still ill; hopefully getting better though. Thomas managed to kill his
machine by getting linuxconf to run lilo. Why Redhat don't ship a sane kernel for
use with loadlin is beyond me, the cut down install kernel does't like the standard
modules at all.
- Hauled out of bed early to go shopping with brother; thoroughly bad idea,
feeling awful some nasty wetware bug.
- Worked on 'gb', encouraged my brother to write functions. Started the
mamouth task of making the hacks look less ugly.
- Struggled with bonobo, so much cut and paste code; it is grim, too big, too
complicated etc. Fought nasty gtk_toolbars which were not designed to support any
dynamism at all it seems; eg. a 'remove' method might be a plus and the items being
public widgets would be nice too.
- Survived my brothers driving to East Grinstead to see family friends, lovely meal,
wonderful house, fine conversation. Drove back myself. Mother has decided it would be good to
imitate my copy of Nat's rendition of the FAO Schwartz 'Welcome to my World' song, which none
of us have ever heard.
- More GB hacking, more vile kludges go in; my first 'loop' and 'function' work
albeit with some serious help. Added 'execme.gba' for people to marvel at.
- Watched film ( bad ), and re-arranged the kludges. Fixed many untested 'aspects'
of the gb core. Implemented a 'print' function; now it is easier to see it all go badly wrong.
- Serious gb hacking, re-organised everything, created corny 'gbrun'
directory. Desparately attempted to get simple programs running before police
- Read over the gb object registry, decided I didn't like it and
re-implemented the API & expanded it, we should have skeletal functions running
soon with luck.
- Mailed gnu.org webmaster about killing their out of date duplicate
- Went to bed. Brutaly awoken by a brother, great. Encouraging family
day, good food and games. Finished reading one of my Christmas presents.
- Realised how much fetchmail sucks when leaving mail on the server.
- Christmas day, Church to meet a pretty young lady from my college by
some amazing coincidence who happened to be there with her family. Fine dinner,
good company no work.
- Friends and relatives start arriving in droves.
- Wrote lots of lovely documentation of the new dependency code,
noticed several daftnesses whilst doing so and further cleaned the code.
- Midnight Mass; excellent, unpolished singing but faithful folk.
- Implemented short circuiting dependencies when the value doesn't
change on evaluation.
- Not much hacking, lots of present purchasing.
- Forgot again to ring Mark Humpheries about a friend.
- Re-implemented dependencies, and tested variously. For my test case
performance is indeed O(N) not O(N*N) giving a massive speed increase. Fixed
several rather serious bugs that had gone unnoticed for too long.
- Brothers birthday, this involves getting up during the day.
- It turns out that dependencies were well broken, essentialy instead
of storing the inter-sheets attached to the sheet they applied to, they were
stored in the sheet that had the reference in. Hence when a cell was changed,
in order to see if it was an inter-sheet dependency all the sheets
dependencies had to be traversed horribly wastefully. Of course, changing this
simply removes the burden to cell_drop_dependencies, but this is not called
in the re-calc loop. See add_cell_dep & cell_get_range_dependencies for the gore.
Fixing this might help inter-workbook dependencies get done sometime.
- Caught up with sleep debt, started studying 'Accounting and Finance for the
non specialist', evil examinations arrive shortly.
- Had a far better idea to optimize 'simple' ie. single cell references,
that not only saves space but will be incredibly faster. It makes things slightly
more complicated, but I promised to write documentation.
- Attempted to recover from jet-lag, I lost a day somewhere which can't be good.
- Stared at gnome-ui-handler marvelling at the way hints work, concluded that code
was cut & pasted from gnome-app-helper. Began to doubt my sanity, and understanding of
- Re-implemented gnumeric's evaluation queue for speed; discovered this didn't
speed anything up; whacky, realised more understanding of the problem was needed. It appears
the problem is _purely_ searching the dependency space per cell created. Using the current
approach this neccessarily involves an N*N operation, regardless of how cunning we can
make the evaluation queue. Some of the tricks I plan for the style code have to be used here,
luckily in contrast with that, the majority of these dependencies are moderatley local. I
think a nested range-list cache would be ideal. This would store the dependencies for a set
of ranges which would home in on the current area of interest over the cache, thus utilising
whatever localilty of reference we can achieve, this can sometimes be quite high. Possibly
a multi tree'd cache approach would be better, and we can of course insert / remove items
with ease ensuring no cache flushes.
- Started trying to put some emacs tricks into practice from Nat & Ettore, old
habits dye a sort of beige colour.
- More tedious cut & paste UIhandler work. Recharged laptop and built a profiling
gnumeric with dependency debugging support.
- Got a lift with Henry to NYC, what a fixer. Hacked UI handler in the back of
the car. Arrived at airport at 6.50am or so, thanked Henry & checked in.
- hack the ui-handler idl, start renaming stuff.
- Implemented glade version check, and fiddled with dependencies
- Fixed up sheet_get_extent to work nicely with styles.
- Fixed my nasty sheet_is_pristine hack, as suggested by Morten.
- Dinner with Taylor & Nat, nice steak. Met Matt, lots of evolution
discussion; spectated argument about address books.
- Fixed several galloping print setup bugs in gnumeric, removed
dirt from behind ears with a scrubbing brush; clean.
- Woke up at 2.00pm, hacked for a bit. Dispatched Ettore to the
airport after an emotive fairwell; what a guy.
- Read, test and commit Jon Hellan's latest Excel style extraveganza
- Fixed html exporting styles, more broken than I imagined possible,
fixed thanks to Jarl.
- Sorted out the sort function to use range_intersection, killing lines
of duplicated and difficult code.
- Struggled with fetchmail; the beast should be under control now,
hopefully it sends mail as well as recieving it.
- Read & hand merged Frank's updated summary info patch into libole2.
- Committed Ravi's work to the project after tagging BEFORE_RAVI.
- Got train to Boston; 5 hours to hack. This train even has power
sockets in the economy section, the UK needs this badly, smoother than the plane
and half the price.
- Hacked eog's bonobo component into some sort of shape
- Updated gpdf to new bonobo bits, constification, kill containee border, kill
- Added running count + auto destruction.
- Killed intermediate file and use gdk_pixbuf_loader
which is a GtkObject despite the name.
- Killed the cunning code to generate polymorphic reproid's
for image-generic; it turns out they were useless anyhow.
- Spent ages trying to push Douglas Mennella's patch through
gnumeric. Realised this idea ( of mine ) was a total dead loss; felt really
- World Trade Center; nice view of the statue of liberty for Ettore.
- Not long enough in the Metropolitan art museum ( again; this was my
experience last time ). Some thought provoking and even hillarious modern art.
- Emotional fairwell to TigerT and Miguel, they went to be quickly
parted with their money.
- Sorted bonobo effort out + committed.
- Variously helped Nat prepare his bonobo talk,
- Merged up Jon K Hellan's excellent Excel style export stuff,
- Fixed sheet_get_extent
- Re-implemented CORBA range style API: I lost Cort's work.
- Went shopping round NYC's 5th avenue with Miguel, Nat, Ettore, Tigert
- worked hard at pronouncing Ettore with correct inflection.
- Eventually had lunch looked at the displays
- Down to serious work:
- committed daft gnumeric fix.
- committed some tutorial attendees work.
- fixed libole2 so it builds with these changes.
- Met William Brown from MacMillan who was interested in me writing a
book on gnumeric, this sounds like a lot of work but extremely rewarding I think.
- Party - slashdot 'drinks for nerds'
- Party - FAO Schwartz ( IBM )
- Found totaly stupid bug I introduced into gnumeric that screwed all of
Bonobo / CORBA. Fixed it & demo'd bonobo in Miguel's 'State of GNOME' talk.
- Did 'gnumeric' talk, got several attendees to hack on gnumeric, and
bored others rigid.
- Totaly mangled gnome-ui-handler.[idl,c], whacked all the attributes
through a single CORBA interface ( except pixmap ). Arrived at the bazaar met
all the wonderful organisers & got fed.
- Touched 95% of the bonobo source fixing horrendous const'ification
problems all over. 5000 line patch.
- Continued constification; finaly ui-handler compiles almost cleanly.
- Implemented default "view_activate" handler.
- Played fortran with a friend's physics project.
- Big cleans to bonobo's audio/ulaw component this was unbelievably
- Sent suggestions for default system_exception + view_activate handlers to
gnome-components; trial by flame.
- Installed VMware to chase down mystery array export bug reported by
- Reviewed Arturo's libole2 patch, great work.
- Spent many hours hacking at LinuxWorld tutorial.
- Created gnome-clock control; amazingly simple + thought about control
- Created gnome_object_client_* helper functions to wrap Unknown::QI
proceeded to mangle every bonobo module to use it.
- Cleaned text/plain component killing several abominations.
- Fixed nastiness with GnomeApp not removing empty GnomeDocs.
- Read & applied Jon Hellan's excellent Excel style export patch.
- Sent my autoconf project structure parsing hack to JPR for gIDE
- Argued about reverse alphabetical sorting of OLE2 PPS entries; won.
- Watched Ravi steam into the secret project.
- Discovered biff auto continue merging is probably a red herring, plotted
its death with jody.
My content in this blog and associated images / data under
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
Michael Meeks (firstname.lastname@example.org)