Stuff Michael Meeks is doing |
Older items: 2009: ( J F ), 2008: ( J F M A M J J A S O N D ), 2007: ( J F M A M J J A S O N D ), 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, legacy html
Foo Address\nBrussels into
google maps managed to get a hit in Paris, which is where I booked
the hotel; bother. Toured the city finding somewhere to stay - ended
up in an airport hotel, feeling groggy.
synchronised keyword is the last word in
concurrency just loves the UNO-for-everything attitude.
Agreements like Sun's ... are common when dealing with corporate-owned projects; they clearly prioritize control and the ability to take things proprietary over the creation of an independent development community. ... When developers contribute code to a project, they tend to get intangible rewards in return. So asking them to hand over ownership of the code as well might seem to be pushing things a little too far .... allowing a competitor to take code proprietary may well be beyond those limits .... Companies which demand such rights may find that their community projects are not as successful as they would like.What is particularly strange is that many seem to demand copyright assignment, with the most tenuous of rationals, and for code they have no realistic chance of re-licensing for money anyway. Asking for assignment to an independant foundation is a tall enough, order, nevermind a for-profit company. Presumably a better solution is to pick a license that fits your preferred business model, and compete with other entrants by being better.
Our reward has been that in our single year of operation we have achieved a larger base of contributions then MySQL achieved in its decade long existence. Community contribution at the expense of proprietary extensions is a small price compare if you consider the value that surrounds us by releasing that opportunity. ... The conflict inherent in trying to reserve rights, and take the rights from others, leads to conflict.
... owning the copyright ... introduces an asymmetry into the collaborative development process ... breaks the underlying contract of mutual benefit with companies and people that contribute code. And without the reciprocity, I think the urge to contribute is bound to diminish, because there is likely to be an underlying feeling that external contributors are being unfairly exploited
find -name '*.[ch]*' | xargs grep ';' | wc -l - (crude, but
easy) - seems to yield only 1.3m ';'s for Qt - which seems more sane,
with WebKit being 470k ';'s. I must be a very easily confused
hype-merchant to get such widely different numbers; I can believe
OO.o is around 8 million lines, and Linux also around 8, but is it
really credible to suggest that Qt is larger than the sum of these ?
I suspect not - you would have to wonder what each line did. Assuming
I'm right, I wonder what confused Ohloh - which I've previously
tended to believe.
| Project | Oh' LOC/m | Oh' Cost / $m |
|---|---|---|
| GNOME | ||
| KDE | ||
| Linux 2.6 | ||
| OpenOffice |
And.Of.Course.CPlusPlus.Developers() << Make.The.Point() << That.So.
Much->Can.Be.Done.In->One.Line.In.CPlusPlus(); whereas c_developers (tend_to_point_out(), that(), the(), same_is_true_of_C()), but_lifecycle_is_harder());
or something.
mov (%si), %ax
affecting the inc %si; jnz test loop. It appears that
if you try to read a word at 0xffff ie. across the segment
boundary you get a SEGV, which often just spins - a satisfying answer
at least. Seemingly Robert Forsyth also came up with the answer, nice.
%ds has an
unfortunate effect on trying to access those local string error
messages. The joys of not having either printf, or a debugger -
exciting stuff.
test:
inc %si
jnz testtest:
mov (%si), %ax
inc %si
jnz testobjdump -D -b binary -mi386 -Maddr16,data16 <file>
neat; works well on your mbr: sudo dd if=/dev/sda bs=512 count=1 of=/tmp/my-mbr

scripts/bootchart.pl output - but hopefully will show up
any particularly glaringly slow bits. Now to find out / and or render
why there is such a long gap between the kernel appearing to finish,
and init starting to spawn things.
xwininfo -tree -root
a bit - interesting that OO.o creates so many apparently unused windows -
consulted Philipp: it seems that many of them are all the un-popped-up
pop-ups associated with visible combo-boxes; hmm.
osc build --no-init so
it doesn't touch the server: neat. If only it wasn't written in
python (so you can test & add flow-control changes without
massive indentation pain) and/or functions had fewer than a couple
of hundred lines, without tens of local variables.
grep -v on a CSV is
so much easier than filtering data inside a spreadsheet.
XDG_MENU_PREFIX only applies to
applications.menu - shame; it would have been nice to apply it to
everything, and fall-back if not present; added a hack to
yast2-control-center-gnome to add the prefix less elegantly.
stoc - if only we could completely
remove the store/registry code.
/sys/kernel/debug/tracing/trace_pipe - no use trying to
tail it, catting it blocks at the end - but yields no new data; a strange
interface indeed.
malloc instead
of working out why there are a million back to back calls of it in
some dumb app ? I've seen enough discarded 3137alloc
analogues in my time.
/usr/share/YaST2/data/sndcards.ycp
(obviously) - missing a Master volume setting.
And, of course personally I support at least joint assignment to the FSF (or other suitably structured, non-commercial, representative body). But I'm constantly being told by Sun engineers how no-one cares about copyright assignment, that it is never a barrier to entry, and that it is a total non-issue; what fun. It seems clear that some companies, sometimes, have real problems with it (and that was to a benign non-profit, not a commercial entity).Why are there two Emacsen?
Hysterical reasons. See the public flames if you must know. Currently the largest problems is that Sun owns the copyright for large part of the code. It is copyleft, but they refuse to sign over the changes to the FSF. Some people think it is good to have an Emacs variant where you can contribute code without signing any papers. Feel free to disagree.
#opensuse-moblin
on the internal IRC server instead of freenode - and confused as to why
so few were there.
| stage | duration (secs) |
|---|---|
| jail setup to end SuSEconfig | 402 |
| pkg unpack | 1 |
| configure | 27 |
| make | 72 |
| install | 5 |
| files / debuginfo | 6 |
| lint / checks | 3 |
| finishing / cleanup | 18 |
osc build error reporting has got
a lot friendlier it seems.
.git/config with Pippin's
help; why no git info or somesuch to cat that ? Slogged
away at porting patches & cleaning up Moblin pieces, at great
length.


libmysql.so.16 - it would be great to get the source
for that library under LGPLv3 too (or was that already announced elsewhere ?). Of
course if this was a simple licensing blunder, would it be right to hold Sun to
it ? odd -
but potentially very positive if Sun is going the LGPLv3 route here.
#!/usr/bin/perl -w thing. Hacked up the world's
lamest bash script
to allow #!/usr/bin/mono-cs to be used with the ultra-
fast Mono/C# compiler to make a gtk# 'Hello World' app
easier to run. Surely, it already exists and I'm missing a trick here.
xset -dpms can in fact enable screen blanking,
while without it xset dpms 0 0 0 actually works -
interesting (or perhaps it was the xset s noblank that
was my friend).
--enable-dbus in our OO.o
compile, most odd - it used to be there. Bed rather late.
ISupportClutter interface sounds useful.
n_tty_receive_char.
p $_siginfo work
in gdb - which failed even for my banal test: botheration.
prctl (PR_SET_NAME, "start-slow-thing", 0, 0, 0);
The official announcement of Moblin 2.0 happened - with all the code for the first time. I'm dead pleased, in particular because it sucks to fill a blog full of minutia about ones personal dental care - instead of tech content - becuase Moblin has been substantially secret until now.
So is that what you've been working on - I hear you ask ? well, sort of - only - most of the hard work was done by the great bunch at Intel, many from the OpenedHand, famous of yore, and fun to hang out with. Of course we've spent a lot of time putting some great pieces into the pie too - but my role (frustratingly) has mostly been around wringing ever more performance out of the OpenSUSE / SLE boot process - so we can deliver those sexy pixels faster to your popping eyes.
Having said all that, and there'll be a lot more to be blogged about over time - at Novell we've been working on some fun bits. Anjal of course, but also Aaron has been working away at 'cubano' - a new banshee front-end using clutter, and Tambet has been creating a simple, easy-to-use new UI for NetworkManager called carrick - along with some great 3G information parsing stuff. Hopefully these guys'll blog about this shortly too. Of course - a lot of the design and flair in the UIs has come from Intel's excellent UI team - thanks guys: and late at night sadly I can only remember Nick's name.
Well - it's cool and sexy - if you don't believe me, watch the pretty Intel Video. Of course - it works wonderfully on all those sexy, slim netbooks out there with fairly low res screens, poor touch-pads and so on. I for one like the netbook form factor, and more so with Moblin on it.
Of course, for bigger desktop or laptop machines - with more power, more pixels, you might be able to host a more business'y desktop - with the complex UIs you expect there: your Evolution, Exchange meeting booking, and so on. ie. There is still a huge space in the market for GNOME, KDE etc. This new UI is clearly light, simple, consumer focused, and (increasingly) a pleasure to use. Conversely - if you don't have fairly good 3D support - the new UI is not for you: go buy a new Atom netbook instead.
Of course, Moblin is many things - well worth checking out their pretty web-site, but the UI components (and they collectively need a good name - at least one better than say bognor-regis - thanks Iain for the reflected glory on that place: giving Bognor Regis a good name as it were) can sit on top of any distro - much like a 'normal' desktop eg. GNOME. As such - you can find them (and a mix of other bits) packaged for OpenSUSE 11.1 and Factory, as well as a warning - dangerous - immediate disk flashing bootable ISO in these places.
Exciting, pretty, slick, sexy, new, fast-booting, interesting thing: play with it, and get involved.
--retain-privileges
needed to be able to write the output. Compared fdi files vs. moblin:
| OpenSUSE | Moblin | |
|---|---|---|
| .fdi | 1.6Mb | 388k |
| mmap cache | 1.3Mb | 235k |
modprobe -C /etc/modules.conf not working
anymore.
EXT3-fs: cannot change data mode on remount which seems
to be code for - bad luck we didn't really unmount it; workaround add
rootflags=data=writeback to the kernel command line.
osc link -r 1234
or add <link project="openSUSE.org:Kernel:Vanilla" package="kernel-source" rev="1234">
zypper ar http://widehat.opensuse.org/repositories/GNOME:/STABLE:/2.26/openSUSE_11.1/ gnome226 zypper ar http://widehat.opensuse.org/repositories/GNOME:/Backports:/2.26/openSUSE_11.1/ gnomeback zypper ar http://download.opensuse.org/repositories/X11:/XOrg/openSUSE_11.1/ latestX zypper dupThis of course gives you the very latest X release too, as a side-effect - great to help out with improving things there too. Of course, you need to re-start X (or even re-boot to get the new dbus) and you're a happy Gnome 2.26 user.
./soffice.bin -splash-pipe=0 - presumably the random argument
sets up the Universal Content Broker (UCB) correctly, without it - bang.
mksusebootdisk failed - FAQ 2 - only
5 pages, and umpteen commands, onto HOWTO
1 - again, yielding a non-booting key. Amazing - how is it that
we make it -so- difficult; judging by the plethora of documentation out
there, this is far too difficult. Eventually in desparation looked for
other distros with Live-CDs. For the benefit of viewers - I hereby
reproduce the Moblin live-USB Key FAQ, in all it's complexity.
cat /path/to/moblin.iso > /dev/sdb ; syncall_whitespace) so:
while (p != end)
{
if (!g_ascii_isspace (*p))
return FALSE;
p = g_utf8_next_char (p);
}
3x faster:
while (p != end)
{
if (G_UNLIKELY (*p != ' ' && *p != '\t' && *p != '\n' && *p != '\r'))
return FALSE;
p++;
}
When parsing utf-8 text breaing on ASCII tokens, there is no need
to care at all about the wunder-non-ascii multi-byte-sequences; so
don't it really slows things down. Everyone trying to write utf-8
parsing code needs to type man utf-8 and read for a while
before typing.
GetTable or SetColumns is not going
to fly in a big application without that.
if (*p == '\n') p = g_utf_next_char (p);
that are just daft - one of the joys of utf-8 is that if you're looking
for an ASCII '<' then there is no way some clown can hide that in a more
complex multi-byte sequence; ergo we can parse the XML, and then
validate it rather than pre-validating. Implemented that - throwing a
ton of logic away, and saved 8%, good; now to reduce the heap thrash.
%gconf-tree.xml is 50% composed of the space
character (pretty-printing, with 8 stop space indents). Knocked up
a trivial patch
to accelerate writing and save ~2Mb (of 5) here.
| Size/Kb | Description |
|---|---|
| 5221 | size of my pre-existing %gconf-tree.xml |
| 2717 | literal white 'space' |
| 729 | l10n for items with no default key |
| 332 | mostly redundant mtime and schema attributes |
| 1234 | (magic) size after removing all of the above |
osc build Getting buildinfo from server wrong repo/arch?tried various increasingly contorted combinations of repo/arch to no joy, still the same frustratingly unhelpful message - once again a wet-ware failure no doubt, filed bug.
glXSwapBuffers in drmWaitVBlank's
ioctl (which tends to reduce the frame rate). And to think I thought it was
using software rendering ... it seems a custom ~/.drirc brings
Impress transitions back to normal, good.