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:
2010: (
J
F
M
),
2009: (
J
F
M
A
M
J
J
A
S
O
N
D
),
2008: (
J
F
M
A
M
J
J
A
S
O
N
D
),
2006,
2006,
2005,
2004,
2003,
2002,
2001,
2000,
1999,
legacy html
-
Read mail, admin pieces. Pleased to see Neelie Kroes make
some (apparently) rather sensible
statements about the evils of proprietary software. Now if we can
only ask governments to encourage / prefer Open-(Source) or Free
Software - we can not only reduce our tax burden, and government
effectiveness, but have a winning strategy (unlike the 'open standards'
game, at which large entrenched monopolies are only too adept at
playing).
-
Knocked up some screenshots of repsnapper, with package
repo for openSUSE: repsnapper.
I really need to get all the avr toolchain (and the like) inherited
into and available from there, along with the arduino tools and
ArtOfIllusion; and an openSUSE / Studio bootable image. Repsnapper
looks like this:
Sadly missing some /dev/ttyUSB0 detection (though Rick is
working on it).
-
Interesting to do some more C++ programming, and see what
fltk is like (not my personal choice, but what was there). What did I
learn:
-
It seems the
single file, containing GUI and
code, that can be compiled into .cxx & .h files by a
head-less binary is quite a nice model; why ? because
you still have a self-contained binary that doesn't drag XML
files with it (across platforms), and it is easy:
fluid -c UI.fl is pretty simple to add to a
Makefile. We should have done this years ago with glade 1: it
would be have been pretty trivial.
-
C++ is not a panacea; it's still easy to mess up
memory allocation, cut and paste code, and produce a foul
mess that is hard to unwind. A great example would be fltk's
sexy
void Fl_Widget::label (const char *a); -
used to set the label on a widget. As a thing of
beauty it stores the raw const pointer value. But - as a
bonus there is extra code and lifting for a
Fl_Widget::copy_label (const char *a); that
does the sane thing. Don't assume other toolkits share good
taste in copying conventions.
-
sprintf the C++ way is unutterably
lame; at least - as I understand it (perhaps that is the
problem). Full of enthusiasm for the C++ way, I wrote this
sort of thing
using std::stringstream oss;:
oss << "You are " << setw(2) << years << " years " << months << " months old\n";
which is all pretty and everything (and notably only a single line).
Sadly it turns into five function calls plus frame setup, plus
exception unwind tables. Contrast with the standard 'va_args'
approach in fprintf - a single function call, and some frame
setup. I can only imagine what this does to your code size when
you have hundreds of debugging statements around the place
doing cunning stuff of the form:
dbg << "data is: " << a << ", " << b << ", " << c << "\n";
etc. I guess you have to compile them out. A more discerning va_arg
version (in C++) could still do nice, powerful object printing
(perhaps) but with less of a footprint. Then again, I guess C++'s
hidden pointer adjustment makes var arg functions something of a
pain static_cast<> wise.
-
Mary Rogers over for dinner in the evening - lovely to spend
some time with her again.
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)