GNOME


3
Feb 08

Boilerplate generator

Faced with the prospect of typing in tonnes of signals & handlers in a pygtk/glade app, I took the programmers perspective “if something is worth doing once, its worth writing a program to do it over and over”, so I wrote a tiny little pygtk/glade generator ironically in perl, its a complete hack that took about 10 minutes to do but works great for my purposes.

You can grab glade-py.pl here, and run it with something like;

glade-py.pl mygladefile.glade output.py wn_mainwindow

and a boilerplate glade file is generated with all the handlers tied up, now the handlers might not all be perfect, as they’re just (self, widget), which won’t fit all cases, but this is more than adequate for saving a lot of effort.


21
Jan 08

Wine-doors 0.1.2 (Carménère)

Well after a long hard journey I proudly release wine-doors 0.1.2 unto the world… We’ve really worked hard on this release and unfortunately its been a long time coming. Within a short while we’ll add CS2 and Office 2003 so if you’re in need of apps like this we should be able to accommodate you soon, more apps are on the way and we’re trying to work on a decent application packager to get things off the ground so watch this space.

Many thanks to Andrew Stormont for his sterling work testing and testing and testing and testing… you get the idea, he’s also written some cool code and tidied up some features, so thanks dude you’ve been especially inspiring at times.

You can download wine-doors-0.1.2 here in tarball, deb or rpm format


19
Dec 07

Joining the GNOME system monitor team

Hello planet gnome!

I thought I’d repost this entry now I’m on the big pgo and introduce myself along the way. So my name is Karl as you can obviously tell, I’ve been lurking around guadec and lug radio live the last couple of years and had a great time chatting to the gnomers (or gnomies, what is the accepted plural?) here and there, I’ve been on the outskirts of contribution for a while filing bugs and commenting here and there, hacking on the odd cool thing and slowly getting involved. My main project is wine-doors, which some of you may be aware of, wine-doors brings wine to the GNOME desktop in a sensible, user friendly way. Essentially we’re building a package manager for windows apps on GNOME.

After a long time of wanting to get involved with improving gnome system monitor I’ve finally been forced to bite the bullet and get seriously involved with the team. Largely as a result of this bug and being generally annoyed at the design and attitude of the individual contributing.

If you want to see what it’s like so far then check out this image

So now I have super-cow powers on gnome system monitor, what do I plan to do next? Well, this patch is just the first of a pair, the second which I’m working on as fast as I can is to introduce a new colour picker widget (GSMColorPicker) to replace the GtkColorPicker so we can have pretty pictures for the colour pickers like this.

This is about 90% done at the minute, just a couple of bugs and a bit of basic cairo code to go… I’m thinking of pulling this widget back into libsexier too, but expanding it a little. For the time being it is simply being designed to fit in gnome system monitor, be stable and cute and fulfil the requirement.

I’m also going to take a look at updating the default colours to match the new graph widget.

After this, I’m going to have a pop at a long standing bug I reported.

So all in all I’m planning on bringing a little zen to gnome-system-monitor… This all must be completed by 14/1/08 in order for me to get it into gnome 2.22 but this shouldn’t be too hard :)

A little more about me, I’ve been using GNOME since I first tested it out at version 0.9 with redhat 5.2 (correct me if my reminiscence is a little out), I switched from afterstep and never looked back, over the years I’ve pretty much exclusively used GNOME, and watched the incredible improvements that everyone here has made over the last 10 years of GNOME, I’ve been grateful for every last one as my desktop now rocks!

Now I hope to make it rock a little more, along with the above GSM coolness I want to get involved in conduit and have done a few sketches of what I’d like to do with it, but the changes I’d like to make require some rethinking of the UI and an appropriate time to implement them needs to be found.

Lets hope I can make a few little corners of GNOME rock in my own little way :)


16
Aug 07

libsexier used in MedicalStudio

A woman named Monica Gemo just approached me asking if she could adapt fittsmenu into windows gtk/cairo for an application called MedicalStudio, and low and behold it just works. She’s looking into transparency and if anyone else wants to get transparency working in windows or even shaped windows or some hackish screenshotting please git (gedit) in touch :)


click to enlarge

She’s working through some features hopefully the way I asked her to as then I’ll be able to upstream her work so she can depend on it in future.

BTW: This is proof positive open source works for the powers of good :)


13
Aug 07

libsexier progress

The latest version of libsexier is available here

You can build it like so

./configure

make

Once built you can cd examples and run ./fittsmenu to try it out.There have been many interesting comments regarding this new menu, and some misconceptions about the way it works. As a result there are some interesting new features I want to add to the fittsmenu widget, however some of these features are very difficult (slice scaling for instance) to put together so please be patient.

If you’d like to know more or get involved please email me about it. As this is in the very very early stages of development I’m very curious to hear peoples opinions and rants about what I’m doing.


7
Aug 07

Fittsmenu at last…

For the last few months I’ve been sneaking the odd hour or two to hack on a little project which I’m recruiting a few elite hackers for. This is fittsmenu’ it is a pie menu widget written on top of gobject and gtk. This is however a pie menu with a twist quite literally.

Click to see the video (ogg theora)

You can download the source code: fittsmenu-0.1.tar.gz Hack on it, and enjoy… It is of course very very early, and needs a few minor glitches fixed properly. I need to add a proper destructor to the GtkWidget and figure out a few other bits of widget weirdness. There’s also a bug in the slice width calculation which has been driving me quite mad.

For the time being the makefiles aren’t finished because I’m about to mess around quite heavily with that stuff to prepare fittsmenu to come out of the closet and into its libsexier outfit.

So build it by;

tar -xvzf fittsmenu-0.1.tar.gz
cd fittsmenu-0.1
./configure
make
cd fittsmenu
./fittsmenu

Yes thats right, libsexier… The idea with libsexier is to add yet another widget library to gtk in the same vein as libsexy’s sterling work has. The difference between libsexier and libsexy is that all of the libsexier widgets will be cairo rendered custom widgets rather than composite widgets. The idea is to make them highly interactive visually appealing widgets with some extra blingyness. Currently I have plans for the following widgets other than fittsmenu

  • Dock menu – a gtk menu derivative using the integral scale function of the OSX dock
  • Smooth scrolling line graph, to consolidate some of the duplicated effort in a themable way (gnome-system-monitor, gnome-power-manager for example)
  • Other graphs and charts pie, bar etc…
  • Icon hint widget, a popup widget which simply takes an icon at x,y position and scales it up or down while fading it out. This is similar to the OSX application launch animation.
  • A few other surprises I’d like to keep that way for now…

UPDATES

  • With thanks to Rob Taylor of codethink there is now a gitrepo of libsexier and the autotools stuff is getting fixed up.
  • Forgot to mention that tooltips/icon labels will be shown when hovering over the icons in the centre of menu when bug 43706 is fixed.
  • As a few people have pointed out, fittsmenu isn’t always an ideal replacement for every context menu, however it is something that drawing applications could benefit from, other situations could also benefit however it is all about getting the situation right rather than just blinging everything up for the sake of it. If anyone wants to chat with me about implementing fittsmenu in their app (Inkscape guys I’m looking at you) then please get in contact via email.

10
Jul 07

Sick and tired of hearing it…

I am thoroughly sick of hearing that xxxx will be the year of the linux desktop. Why am I sick of hearing it? because for those of you too pig headed to see, this is the year of the linux desktop, and every year here after. How could I possibly reason this? Its actually really bloody simple, Vista – Bad user experience too many people complain publicly about it, the wow factor is lost within 30 seconds and quickly replaced with the “copy that file NOW, not next week factor”, Leopard/Tiger – Require special hardware at specially expensive prices. So unless 2007 is the year of Windows XP, it IS the year of the Linux desktop, Linux and GNOME or KDE are the fastest growing desktops out there, more users take up Ubuntu than Vista in ACTUAL sales, not vouchers, not OEMs but actually use ubuntu because they want it. Now I’m not just an ubuntu fan boi, not at all, but Ubuntu has reached a market that no other linux desktop has, and thats the “We want our fscking computer back!”

To quote a friend of mine, “In windows I was just using myspace and winamp because it was just taking the piss all the time, now I can do a billion things!”  — Johnathan White, old friend, new ubuntu convert!

So STFU, we’re in the year of the linux desktop.


1
May 07

… Speeech!

For those of you who are blissfully unaware. I will be speaking at lug radio live this year. 3pm on Saturday 7th July.

Take the hint from the banner ;) I’ll be speaking about wine-doors and also showing a demo of something new…


4
Apr 07

The finishing touches are important

After reading and listening (LR) to Jono Bacon rant on about the direction of GNOME a subject on which I whole heartily agree and something you’ll see me working on in the future it seems strange to me that GNOME don’t have teams to deal with desktop continuity. Usability is one thing, and is the big buzz word being thrown around at the minute and since guadec. However usability being an important issue as it is, it must be connected to continuity of the desktop. In movies they employ people to make sure that if a actor/actress is wearing a red top in one scene, he/she doesn’t end up wearing the blue top featured later in the movie in the next scene even though the filming of the two scenes are back to back. Wardrobe and continuity make this happen, continuity ensures that the flow of the film isn’t damaged by inconsistencies that viewers will notice.

There is no difference between continuity in movies and continuity of software, in fact to illustrate this point I have filed two bug reports which show this endemic behavior of GNOME developers. Something which FDO was supposed to prevent.

The bugs, #426195 – Creating launcher inconsistency in nautilus, and #42196 – Creating launcher inconsistency in alacarte are perfect examples of this problem, where continuity flaws creep into GNOME, not because there is a lack of standardisation, not because the developers overlook an issue, but because the requirement for a continuity team has been overlooked. Developers working on one project, may import some code from another project to prevent duplication of work, thats cool… However, if a third set of eyes doesn’t look at both, all three, four, five or however many instances of the same kind of action is being undertaken then continuity is lost.

The standards exist, the developers write good code, but there are the little things, the finishing touches… Things which may throw a user, its not merely usability thats important but continuity of applications ranks up there too.

UPDATE 22/4/2007: Upon closer inspection it appears that the two bugs filed boiled down to the same code in GNOME panel. So I wrote a patch, that should apply to any recent gnome-panel sources. The patch is now in bugzilla, hopefully it will be triaged and accepted soon


16
Dec 06

Why pirut is a heap of horse shit

pirut (pronounced pirate) has been introduced into fedora over 5 and 6 to provide a GUI package manager that wasn’t complete crippleware like redhat/fedora has been since the grand old days of 7 where they actually had some good tools although not repo enabled (eg. gnorpm).

I hate pirut with a passion now, and this isn’t because its a bad application, its because it is so horrendously badly written that it shouldn’t have been released.

So here’s my list of complaints;

  • Why don’t ALL packages on the system, and available show up in the groups view, this is the case when using yum repos in anaconda too. This means that you can’t install a nvidia driver on install because it isn’t displayed on install.
  • Why is it, when I click a checkbox to install an application, it takes about 5-6 seconds (of which time I am unsure whether or not the event has been registered) to turn the checkbox on. Here’s a tip for redhat devels, when an event occurs, process the VISUAL aspect of the event FIRST, then do whatever else needs to be done, don’t leave your users in the dark!
  • yum-updatesd creates hellish conflicts and way too much CPU usage on startup and during desktop usage, a hidden process in the background is not where I want 100% CPU time to go, and on the odd occasion blocks using pup?!?!?
  • puplet could at the very least wait until NetworkManager has connected my wireless before complaining that it can’t update the system. The logic of this is obvious, sort it out!!!!
  • The user interface of the package updater doesn’t actually expand properly, I actually filed a bug about GTK expanders and why using them in certain situations is broken. #141834 even though this is broken, and is known to be broken and is obviously NOT visually appealing when implemented in pup redhat STILL use it!!!!. I have a fixed glade file which doesn’t exhibit the problem evident in the current release. I need to make this patchworthy however.
  • Half way through an install/update pirut/pup regularly starts using 100% CPU time and stops progressing forward for 20-30 minutes. Most of the time I kill it and start again.
  • It takes 10 – 15 clicks to apply before pup begins to realise that I’m trying to get it to do something, this is again related to redhats complete disregard for what the user may be thinking while the software sits there doing nothing. The effect should be immediate in as much as it desensitises the pup window and pops up the updater progress box.
  • WHAT THE FUCK DOES IT NEED AN UPDATER PROGRESS BOX FOR!!!! PUT THE FUCKING PROGRESS BOX IN THE PUP/PIRUT MAIN WINDOW, this fixes many issues, for instance focus thieving dialogs are not good!
  • Why does pup use 300Mb of memory? This just doesn’t make any sense at all, in all seriousness redhat really need to fix this, pup cripples a system because of this.
  • The icons in pirut should be themable.
  • Search filtering is very seriously slow. I wrote this example in 20 mins, I was going to put some really nice time benchmarking stuff, but couldn’t be bothered when I saw how fast it was on its own. Its easy to make search fast, as long as you have a fast array to filter, and don’t start employing rediculous procedures during the filter!

Overall, pup doesn’t keep the user adequetely informed about what its doing, uses way too much CPU time and memory. Admittedly some of these issues may come down to yum but when the user interface is as clunky as pirut/pup its what we see that gets the flack.