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
-
More bootchart2 prodding, generated and dumped the nice
process hierarchy, and started poking at the python to render it.
-
I have to say that a great, great loathing is growing in me
for python (and all loosely typed languages - JavaScript, you know
what you are !). I feel like adding comments before each method of the form:
# CairoContext, Process, ProcessTree, float, float, Tuple(x,y,w,h), Tuple(x,y,w,h)
def draw_processes_recursively(ctx, proc, proc_tree, y, proc_h, rect, clip) :
And of course just that simple example took me sixty seconds
to unwind: dig back to each constructor to be sure.
-
Feeling good about yourself ? time to start using
VBA, or it's moral equivalent: python, for a while. You could argue
that the way to fix this is to impose 'self discipline' (similar
to the just-a-sub-set-of-C++ argument) - and either mangled
the type into all your variable names (but I am not Hungarian), -or-
to try to use the same variable name everywhere for a given type
(until you have two in the same method).
-
Python: it scales to two whole screen-full of code
without loosing readability! Python: why write code to be read,
when it's so easy to write it new ? Python: great if you can hold
the whole program in your head. Now if only Google could target
their Java to JavaScript compiler to be a C# to Python compiler
... we might have a readable language, with an incrdibly
heavy-to-start run-time (hmm).
-
My next bug-bear was return values. Isn't it magic to have
a function call that may not return a value, yet gives no
warning (somehow I lost the ultimate 'return' statement in a
sub-method - perhaps it still lurks, nicely indented, somewhere
else in my code):
def test:
def doit():
# some code, conditions, forget to return ...
a = doit()
if a: # is not None
# do something.
Nice; I spent half an hour finding the missing return.
As a helpful reminder, here is what a real language would say:
doit.c:8: warning: control reaches end of non-void function
-
Eventually (by crawling) arrived at the goal of beautiful
rendering, despite loosing both feet in the process.
-
Dinner, and put the babes to bed, while J. went out to
counsel a new client. Prodded at the reprap. After re-working
and tightening the X axis yesterday; I turned up the Y axis
power (being right on the edge is not so good), for the Z axis
tweaked the gear teeth, tightened the belts, applied mini (DRAM)
heat sinks to various chips, and ... got my first real, complete
print-out, of a coat-hook; generated by repsnapper (nice); fast
too.
-
Printed out a beer
bottle opener, and had an Alsterwasser to celebrate (after mangling it
a little by omitting to insert a suitable one cent coin). Apparently
rep-straps are sufficiently easy to build that any old idiot can do it.
Drawings of ply-wood, and openSUSE packages to follow.
-
It seems that repsnapper's optimistic approach of dead
reckoning without ever resetting to the end-stops works rather well,
and faster too. Surely it is somewhat amazing that the machine can
get tens of 0.4mm layers on top of each other reasonably precisely
with those means.
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)