Beat on “state of the dolphin” (or: Why Software is never really ready until a .20 release)

Beat Vontobel blogs about “fuþark: The silence of futhark and the state of the dolphin” which is basically about how he’s found that the 5.0.20 release of MySQL is when the 5.0 release is really starting to shine.

This confirms my theory (that I’ve had for quite a while now… like years) that a software release is never really mature until it hits about .20 (that’s dot twenty, not dot two).

When something reaches .10 (dot ten) it’s no longer going to be annoying for most uses, but .20 means that you’re going to be happy. Don’t ask me really why this is the case, but it is.

Think about the 2.6 kernel (yes, Linux Kernel – honestly, you think i was talking about something else?). At about 2.6.10, it would no longer be a pain to use and get things going – everything was starting to be smooth. As we’re getting closer to .20, things are getting better too. Mind you, everything here does run 2.6 now (and so does my mum’s machine – which is always a good sign of something being ready). With 2.4 hitting .20 – you’d never even think about using 2.2, 2.4 was perfect (except when you wanted 2.6).

GNOME (and everything attached to it) is getting to be a really good desktop – ever since about the 2.10 release I’ve been using just much more of the GNOMEy way of doing things because they’re actually getting useful and usable (don’t get me wrong, previous releases were good too – but a lot more things annoyed me). As the releases have progressed, I’m increasingly convinced that 2.20 will be the “we’re here” release. 2.14 is a lot better, but there’s still a bunch of stuff that has to be done before it’s totally kick-ass.

There are no surprises in MySQL 4.0 (it’s past .20 – at .26 now). Everybody knows and trusts it. 4.1 is at 4.1.18 – which is about as good as a .20 and it’s a pretty happy release. But due to 4.0 being rather solid – a lot of people have just stuck there. We’re seeing a bunch move to 5.0 – but my theory is that this will be 5.0.20 or above. Hrrm… anybody see a pattern?

MySQL 5.1 is at 5.1.10 (or so) and it’s stopped being annoying, and that great march towards a .20 is healthy and active.

GCC 2.95 had a lot of respect for a very long time (now it’s just a bit old). Note that .95 is higher than .20 :)

EMACS is at version 21, but ed is only at .2 (hrrm.. and which is used by more people as their editor i wonder).

aptitude at 0.2.15 (getting to .20) – while apt is at 0.6.40 (above .20). RPM is only at 4.0.4 – so a bit to go there :)

The version of postgresql is 7.5.9 over here… so getting to the .1 stage, but away from the .20. (now I’m going to watch comments fill up with postgesql guys going on about something, i just know it :) But there is 7.3.14 – a lot closer to .20!

MythTV is at 0.19 – getting closer to the .20 release (it’s a lot better than even just a few releases ago).

(versions here mostly taken from whatever ubuntu 5.04 has)

Note that attempting to skip a whole bunch of versions and label your software 95, 98, 2003 or whatever doesn’t get you “.20” status. Neither does just skipping to “.20” automatically. It’s about hard work and removing annoying things (we tend to call them bugs).

This is a really stupid metric of software maturity. It is, however, disturbingly accurate.

comments on online documentation

Something that makes me always just go to dev.mysql.com or php.net for documentation is the user comments. sometimes you just find some real jems that are really worth reading.

It would be great if this somehow could get integrated into the (offline) help system in GNOME could somehow have this stuff integrated. maybe some AJAX foo to fetch comments from the Interweb if you’re connected. So then you get the best of three worlds: good graphical documentation interface, good documentation and user comments to the docs!

OpenOffice.org barely usable

Trying to fiddle with my linux.conf.au presentation in OpenOffice.org2 (the version that comes with Ubuntu Breezy).

It’s as buggy as all hell.

At the moment, after pasting in some slides from another presentation (if it doesn’t randomly crash some short time afterwards) I can’t save the file. Really useful.

grrr….

GNOME board discussions

Seeing that I’m on the board of a FOSS related group (Linux Australia), I naturally take an interest in how similar organisations do things.

So it’s been interesting watching what GNOME Foundation has been doing. I haven’t been watching that closely, but planet GNOME helps :)

jdub blogs about his choices in the upcoming vote on GNOME Foundation board stuff. He does have a good point here, as do others indicating they’ll vote the other way.

Jeff is totally right that it’s not the board that should be the great doers – they should represent and get the admin stuff done (or delegate it to appropriate parties – such as accountants).

I think we’ve gotten better with LA stuff by educating members on this issue. People are learning that you shouldn’t vote for the person who’s had the most cvs commits to $project. You should vote for the person who can make sure the organisation can continue but is also approachable and will bring views to the rest of the board (i.e. represent).

One idea is to maybe have an advisory committee. This can be larger and represent all interested parties. The (smaller) board could then go to them for advice on what the larger group thinks.

I do think that 11 sounds big – but just reducing numbers won’t necessarily fix any problems.

Good luck guys – you are living in interesting times!

tomboy

Since I’ve just upgraded to Ubuntu Breezy (the next release of Ubuntu, currently a preview release) I’ve installed tomboy. It’s like a Wiki for your desktop. Awesome. Seems to be pretty useful. Even more useful than the stickynotes applet. In fact, i think I’ll remove sticky notes.

The storage format for tomboy is a lot more resiliant as well. A file-per-note instead of one large XML file.

One day I’ll go through a bunch of GNOME apps and fix their file system code so that it becomes near impossible to loose data with unexpected reboots.

Bugzilla bug 51149

Bugzilla bug 51149

For those of you migrating from MacOS X to Linux, this is something that should be good for you. Get Evolution to import your vCard’s from the MacOS X Addressbook without my little perl script.

I’m full time on Linux these days, but it would be awesome for people to check that this is, in fact, working now.

OpenOffice.org 2.0

Well, I installed the preview packages in Ubuntu on my desktop this morning – just to play with for a few mins. Guess What? It looks like it doesn’t completely suck!

Some of the UI still feels/looks really weird – but that seems to be a legacy of the strange widget stuff that it used to use.

The “File->Send->Document as E-Mail” and “Document as PDF Attachment” are pretty funky things (assuming they link into evo properly).

The presentation module, Impress looks to have improved no-end. 1.1 was sucky (just like PowerPoint). If you’ve ever used Apple’s Keynote, you know how good presentation software can be. The new one looks to be usable and may mean I swear a lot less when preparing presentations.

Although why OO.org has it’s own package manager is totally beyond me.

I do wish the MySQL connectivity worked out of the box though… maybe it’s just this beta (or the fact that when you select OO.org in synaptic, it doesn’t load up all the Java stuff needed for JDBC connectivity, or ODBC).

Note that I still love Gnumeric and Abiword.

over use of XML when XML is not what you want

sometimes XML is great. Sometimes, it’s not. If GnuCash used a database (e.g. embedded mysql) – we’d be in great shape. I could easily extract stuff out of it into my own reports and stuff and it’d rock. Instead, I can’t and have to learn some other way. annoying. Accounts.gnucash is now about 700kb. That’s less than a year. Going to be lots of fun in a few years… hrrmm.

All this finance data is in tables. You know what that means? A relational database is ideal.

same with Gnome Time Tracker. cool app. Won’t scale at some point no doubt. Currently, i have a greater than 300kb gnotime-data.xml file. why? I ask. Surely there is a better way. How is it going to run when i’ve been using it every day for year?

On the other hand – using XML for documents in OOo and stuff is like the best thing ever (it makes sense). For RPC it still seems like a huge amount of overkill.

it’s another rant on ‘the right tools for the right job’

GnomeAbout stuff

As far as I can work out, this is a good handler to make sure that an About box is shown every time you select Help->About from the menu (i should really look at some other project’s code).

void on_about1_activate(GtkWidget *w)
{
GtkWidget *about;
GladeXML *xml = glade_xml_new (PACKAGE_SOURCE_DIR"/Finance.glade", "about", NULL);
about = glade_xml_get_widget (xml, "about");
gtk_widget_show (about);
gtk_object_unref(GTK_OBJECT(xml));
}

Free Software Wish List

This has been gathering in my brain, I figure I should write it all down:

X

  • Render everything using Composite and OpenGL
    basically then we can have output that doesn’t suck! Translucency is not only cool, but useful in some UI.
  • All 2D graphics to be drawn with Cairo.
    Enough said here – vector is the future.
  • A magnify screen function (look at MacOS X’s) except using Cairo et all so that everything is still smooth when you zoom (use those vector graphics baby, yeah!)
  • Graphics cards companies to pull their finger out and do full open source drivers.

GNOME (note that this is only long because I love it so much and spend so much time using it)

  • To be able to set emblems on files/folders in Nautilus via the contextual menu.
  • To have the Create Archive option in the contextual menu have a submenu with options such as “.tar, .tar.gz, .tar.bz2, .zip” (or just .gz, .bz2 if only a single file is selected)
  • Take less time to log in
  • Evolution to not leak memory.
  • Evolution to handle big maildirs better (where big is the multiple hundred of thousands of messages
  • For Evolution to not do “checking” stuff on mailboxes.
  • Gaim getting it’s contact list from Evolution
  • Nautilus having better graphics for open versus closed folders (at least in the theme I use – Industrial)
  • The applications menu to be faster
  • Get rid of the Window List and Virtual Desktop – they are broken UI elements. Windows 95 proved that the taskbar just doesn’t scale when you have enough memory to run more than one application. Maybe a NeXT style dock would be good? I don’t have the answer here
  • Dashboard and Beagle to become easily installable and usable. If there’s issues with shipping mono apps as part of core gnome, then lets rewrite them in something that isn’t mono. I want that functionality!
  • gThumb to become good – think iPhoto on steroids with links into Gimp. Also, some sane way to store metadata
  • Multisync to work properly with evo2
  • Multisync to sync photos (and their metadata)
  • GnuCash to be GTK2
  • xchat to get some HIG UI love
  • All settings that a user could care about to be in a user-visible folder and able to be easily backed up (e.g. by dragging to a blank CD with nautilus-cd-burner). i.e. put everything in a folder called “Settings” instead of buried around in dotfiles.
  • A good backup utility that my mother can use (that’s smart enough to split things over multiple CDs if needed)
  • GUI for ACLs
  • Open With to be file specific as well as global
  • Animation with UI events (drool at OSX’s effects, then make better ones)
  • A good RAD dev environment. Something involving Glade and Python and integrated. Think Visual Basic 3 (when it was actually good) but on steroids with GNOME love.
  • Gnome Time Tracker to scale better (and not corrupt it’s own data files – i.e. use rename and sync properly)
  • Rhythmbox to have iPod (or any MP3/Ogg player) integration. I want to plug my ipod in, and see it in both Nautilus and Rhythmbox (and have a big Sync button in RB, as well as being able to drag files to it).
  • The desktop background to be Xinerama aware and know not to stretch an image over both screens. let me set one for each screen!
  • Have “random” desktop backgrounds from a folder
  • a desktop background option to better “fill” the screen on widescreens (where the image isn’t widescreen)

General Utils

  • xfsdump to get DVD support (multi volume dumps directly to DVD)
  • g++ to be faster and use less than a squigabyte of memory
  • prism54 to have proper link monitoring (with the gnome panel applet)
  • GUI version of kismet

there’s more… i just can’t be bothered writing any more at the moment :)

Fedora Core 3 Test 1

Installed it on my crash-and-burn box.

Dual PII 350mhz, 128MB RAM (and a number of disks… this is on a 120GB WD drive, but on a slow IDE controller)

and, of course, the ultimate in graphics power, an S3 Trio3D.

So, install took about an hour. Not very snappy, but it got there. Not enough time using CPU while doing disk writes. multithreaded RPM installation would rock :)

Reported a bunch of bugs, some feature enhancements and found the desktop backgrounds :)

SELinux is now on by default… and so far I’ve only hit one bug with it (namely that you couldn’t launch the software update). bytebot said I should update to get the update to fix the updater, so i ran ‘yum update’ in the terminal. Hrrm…. not so quick with only 128MB ram. oh well…

GNOME programming with only a GUI

http://www.flamingspork.com/junk/gnome-drivers.tar.bz2

Is my attempt at a little gnome app only using GUI utilities. It’s a graphical lsmod, showing what modules are currently loaded on your system.

I’m now kicking around trying to integrate modinfo with it so you can get a nice slab of information about what modules you’ve got loaded. Then I can go and integrate modprobe :)

the code is kind of ugly… really shows that this was a hack so that i could learn how GTK and all work a bit better… but, it’s libglade based, so that’s cool.

I’ve now learnt how programmed I am to the emacs key bindings while coding… it’s really annoying when they don’t all work. Maybe we need an emacs text editor widget.. :)

Inkscape

Just did my first illustration using Inkscape (www.inkscape.org). It’s pretty cool. Open Source Vector illustrator (produces SVG graphics and has good bitmap export).

i.e. select what you want, File->Export Bitmap (and it’s already gone to the “export selection” thing, choose the res of the image, where it is, and click export.

Funky!

Spatial Nautilus

Okay, so debian finally caught up to the rest of the world and unstable has GNOME 2.6 packages. So, everything has settled down, and i’ve dist-upgraded my laptop.

After a logout/login cycle (unfortunately, everything doesn’t "just happen" when you upgrade, I’m now onto GNOME 2.6 and spatial nautilus.

Yes, this whole idea where "the window IS the folder" idea that has made computers usable since the first Mac is back. And, Guess what? That’s right, it’s GOOD! There’s the browser interface also, so you can go and do things how you used to.

my mother has been using this for a bit (since we put Fedora Core 2 on here machine, well, actually, one of the test releases).

i’m also gathering up the strength to go and install FC2 on my desktop…. as long as I can get DVD stuff going, i’ll be okay :)

and then there’s the whole bootloader thing… gah. i fucking hate the way partitioning and bootloading works. generally, not just the extremely bad way that PCs do it.

reminds me… gotta test my yaboot patches for sparse files on XFS.

and move away from movable type.

evo shat itself

damn evolution (and gnome) absolutely shat themselves today.

shut laptop, lept out of the door, drove to uni (quickly), parked, opened up computer. blank screen.

power button, damn – startup chimes.

whole bunch of gconf weird messages – fixed when the clock was set correctly again.

evolution was not to be saved. stupid thing. rm -rf ~/evolution/ was the only way to fix. not fun, not happy.