Slashdot Mirror


Bounties for Gnome Optimization

Eugenia writes "Novell and OSNews are sponsoring the memory reduction project led by Novell's Ben Mauer by providing bounties to developers to help to clean up bloat in GNOME and related programs."

36 of 469 comments (clear)

  1. Gnome Optimization by Decaffeinated+Jedi · · Score: 5, Funny

    I tried to optimize my gnome once with a suit of +2 leather armor and a new red hat, but he still ended up getting slain by a bunch of kobolds.

    --
    DecafJedi
    my weblog: apropos of something
    1. Re:Gnome Optimization by TrixX · · Score: 5, Funny

      That's because you used a Red Hat. You could have had better luck if you had bought him a Fedora.

  2. Its about time by laffer1 · · Score: 5, Insightful

    This is great news. I switched from KDE about a year ago because of the newer gnome interface. (2.4+?) I run gnome on FreeBSD 5-stable and found that my biggest complaint is the memory usage. I have a dual xeon 2.0 gig with 1 gig of ram and gnome + xorg eat up at least 200-300mb of the ram. Maybe while they are at it they can fix some other problems with gnome like the fact the default stack size needs to be increased in many non linux systems when porting it!!!!!

    1. Re:Its about time by Espectr0 · · Score: 5, Informative

      Kde has improved dramatically in speed , memory reduction and html rendering in konqueror in the last year.

      You may want to give it back a try.

      We use kde in our offices, which are pentium 2, 400mhz and as little as 128mb (!) of ram.

      On my development box, i have a dual 400mhz P2 with 320mb in ram, and i can run eclipse with tomcat

    2. Re:Its about time by Earered · · Score: 3, Informative

      I was able to use gnome 2.8 on a Celeron 433 with 64Mo of RAM. Though you either need to tweak your configurationhttp://www.gnome.org/learn/admin-guid e/2.6/ch09.html/
      or to use a dedicated distribution like Beatrix http://www.watsky.net//
      which include gnome and use dirty trick with the kernel to improve performance.

    3. Re:Its about time by Mike+McTernan · · Score: 3, Insightful

      Why is open source software always so memory-hungry?

      I really don't know the answer, but would expect that is is partly due to different apps and code blocks being written by lots of different people in some amount of isolation. This could lead to a limited view of the project/distribution and as such the various inefficencies in the system may get missed.

      --
      -- Mike
    4. Re:Its about time by XO · · Score: 3, Insightful

      Everyone's tried to make use of the bazillions of different libraries available, that have all become extremely bloated over time, so that we're to the point where as is explained in one of the linked articles, "Yes, we are loading 300 kb of data from an xml file at bootup time to control the volume of the computer", and other wonderful things. Also the developers computers tend to have a lot more resources available perhaps than do many of the people who are just users.

      I had been reporting memory leak problems with gaim since like v0.8something, and was repeatedly told along the lines of "i dont have any problems, and there haven't been any memory leaks found in several versions", and was summarily dismissed. Surely enough, in a recent versions changelog, "* large memory leaks plugged" or some such. Until the problem bites the authors of the project, no one cares.

      Also, the absolute insane complexity of many of the things (layer upon layer upon layer upon layer upon layer of abstraction for no good reason at all except to have a high-level interface to a high level interface to a high level interface to a medium level interface to a low level interface)

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
    5. Re:Its about time by roystgnr · · Score: 5, Informative

      It uses a proprietary widget toolkit

      Qt is dual licensed under the GPL. It's no longer any more proprietary than gcc.

    6. Re:Its about time by Knnniggit · · Score: 3, Funny

      Easy. Just buy a 64MB chip and break it in half like a graham cracker.

      --
      Brain kills internet cells.
  3. Next Bounties by buckhead_buddy · · Score: 4, Funny

    And the next set of bounties will be offered for cleaning up bugs introduced by rapidly encouraging people motivated only by money to make changes to Gnome without fully considering the ramifications of these memory reductions. :-)

  4. Feasable Career? by dingo · · Score: 5, Funny

    I wonder if there will ever be enough bounty's on offer to make a career out of it.

    I can just see all the coder bounty hunters with their boba fett helmets on.

    --
    The Borg assimilated my race & all I got was this lousy T-shirt
    1. Re:Feasable Career? by skraps · · Score: 3, Insightful
      I wonder if there will ever be enough bounty's on offer to make a career out of it.

      Not at $100 or $200 a pop, notta chance. I think these are mostly to encourage the existing gnome hackers to attack some less-than-glamorous problems they would rather not do normally. I doubt we'll ever see a wild wild west bounty hunter who just roams around between vastly different projects. If the improvements were that easy to make, someone already on the team would just make them instead of giving up money. If they aren't that easy, like these, then you wouldn't be able to solve enough of them to pay your rent.

      --
      Karma: -2147483648 (Mostly affected by integer overflow)
  5. gnome-terminal by karmaflux · · Score: 4, Informative

    Gnome-terminal is going to make someone ridiculously wealthy. Seriously, there's so much room for optimization that a good coder will be able to retire off that one program.

    --

    REM Old programmers don't die. They just GOSUB without RETURN.

  6. bloat in gnome... by mickyflynn · · Score: 3, Funny

    'cause a bloated gnome is just a hobbit... which is actually cooler.

  7. Fine, give them money, but... by TapioNuut · · Score: 4, Insightful

    Offering money is a great way of getting people interested in many things, but do the people who are capable of creating valuable bug reports and/or patches really need these bounties?

    I wonder how many crappy bug reports and patches are to be submitted because of the "easy" money being given. I do believe that the bounties will go to the right people and for the right reasons, but more the crap, the more it takes work to find the gems.

    Nevertheless, it's about time to unbloat Gnome.

    --
    Tapio 'itn' Nuutinen
  8. Novell's attitude towards Linux desktop by unixmaster · · Score: 4, Insightful

    As you can see from Novell's actions they are totally biased towards Gnome but still they make more money out of Suse distribution which uses KDE extensively.

    Feel the irony?

    They should instead be desktop neutral and support KDE developers too...

    --
    Never learn by your mistakes, if you do you may never dare to try again
    1. Re:Novell's attitude towards Linux desktop by 10Ghz · · Score: 3, Insightful

      It might be true that Gnome gets more corporate backing that KDE does. Yet it seems to me that even with all that money and resources being thrown at Gnome, they can only keep up with KDE, not surpass it. Maybe KDE has better design, maybe their hackers are simply better, I don't know. But it seems that they do not need all those resources to compete with Gnome, whereas Gnome seems to need the resources of Novell/Ximian, Red Hat and other just to be able to compete with KDE.

      I can't help but wonder what would happen if those resources were invested in KDE, instead of Gnome...

      --
      Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
  9. Re:This is a realy good idea by Dan+Ost · · Score: 4, Informative

    Please don't call KDE a window manager.
    Both KDE and Gnome use window managers, but neither of them are window managers
    (the fact that you can change which window manager is used by KDE and Gnome
    is a good indication that they, themselves, are not window managers).

    xwinman.org gives an excellent introduction to both window managers and
    desktop environments. Give it a look.

    --

    *sigh* back to work...
  10. Re:horrible idea by BenjyD · · Score: 3, Insightful

    Yeah, because GNOME is only developed by volunteer hermits living in caves at the moment. It's not like there are big companies paying developers' salaries to work on it or anything.

    It's GPL therefore it's Free software. Whether people are paid to work on it or do it out of the goodness of their heart doesn't matter as long as their contributions are GPL.

  11. This can only be good by schleyfox · · Score: 3, Insightful

    I like this, from my observations it alwasy appears that OSS is a bit heavy on the memory while closed source tends to be heavier on harddrive and processor dependent (not to say it is bloat free, far from it). That said, I run Gnome 2.8 on my old Pentium 2 laptop with 128mb of RAM. It actually works decently well, other than the screen refreshes which can use up all my processor and still take a few days :) . It is quite usable though and future versions of gnome will hopefully perform even better. Thank You Novell

  12. Time and space complexity concerns by rbrito · · Score: 4, Interesting

    Now, it seems that (finally) developers are looking at resources that our programs use.

    Unfortunately, for many in developing countries (like me, here in Brazil) having a computer filled with RAM and with the fastest processor available on the market isn't an option.

    For instance, my desktop has a Duron 600MHz with 256MB of RAM. That's the fastest computer to which I have access here and it is some years old, but still working fine.

    I can't say how happy I am with this bounty for optimization of memory.

    In Computer Science we always have this concern with both time and space complexity and it seems that if Free Software developers start caring about good data structures and good algorithms (and avoid layers and layers and layers of abstraction over and over), we can actually use our computers more efficiently.

    Again, this is especially important for those who have to use computers of two or three generations ago.

    A welcome movement indeed.

    P.S.: If you have never felt the need for less memory comsumption, then you won't probably understand how important this project is and probably this post makes little sense to you.

  13. Perfect Labor Capital Market by Doc+Ruby · · Score: 3, Interesting

    We might finally have the open source capitalism model that kills these "commie" snipes dead, and leaves proprietary competitors dead in the water. Offer to employ programmers by buying their labor in a contest! Leverage the open source on the Net to get as many job applicants as possible, who submit the finished work, then give the "job" to only a single winner whose superior work is used. The losers need only inspect the open source of the next version for any of their content to keep the process honest.

    This creates parity for labor in the capital markets. Programmers can sell their labor as a packaged product, just as vendors can resell the programs to consumers. Programmers can market their code with better documentation, APIs and popular features. While integrators like Novell can get access to the labor market, without risking that the labor they're buying is better at job interviews than at delivering on deadline.

    There is an issue of the "waste" of the losers' code submissions. But since these projects are open source, the losers can fork the project and compete with it. If the losers are really better, they can compete better with the original project - which itself might be forked by the original contest sponsor. Brand equity will determine winners in the long run, but the open source lets brand equity be earned by persistent quality, as determined by the consumer market, rather than the funder of the code.

    Ladies and gentlemen, start your engines!

    --

    --
    make install -not war

  14. Ditch the dependencies and deprecated code by Florian · · Score: 4, Interesting
    The bounty is a first good step, but the Gnome project will have to go much deeper to get rid of its bloat.
    • Remove all deprecated libraries from the codebase of the Gnome core.

      In its history, Gnome has changed its libraries and subsystems several times, from imlib to gdk-pixbuf, from gnome-canvas to pango, from Corba to Bonobo to possibly Mono, from esd to gstreamer, and so on. Many Gnome apps still use older, deprecated libraries. Get rid of those libraries and port all apps to the standard core API.

    • Remove or replace subsystems which never really were useful

      I'm thinking of Bonobo and gnome-vfs here which are not consistently used in Gnome and whose quality and use value is questionable. If their functionality is still needed, it could be replaced by KDE's superior kioslaves and kparts (just as KDE is ditching its arts sound demon in favor of gstreamer)

    • Make all demons optional

      Neither Gnome, nor KDE applications should be depending on any desktop-specific userspace demons. Make it possible to deactivate gconf, for example, and have applications read and write configuration files the classical Unix way, by one central switch. Make the sound demon optional, so that audio output could just be written (in old-fashioned, non-overlapping way) to /dev/dsp. Etc.etc. The demons might have some use for some people, for for many, they are just bloat and unnecessary complexity.

    Yeah, I know that all would be a Herculean effort. Probably, it makes more sense to start with a lean and clean codebase like XFCE and just bring its usability to Gnome level, instead of cleaning up a bloated mess...
    --
    gopher://cramer.plaintext.cc http://cramer.plaintext.cc:70
    1. Re:Ditch the dependencies and deprecated code by jcupitt65 · · Score: 3, Informative
      That's a good idea. There's also a lot of deprecated API (eg. GtkCTree) which can be removed from the system with just a few -Dsomething during configure. You can turn off the GObject run-time type checks with another -Dthing, which helps speed another 10% or so in my experience.

      Bonobo is slowly being removed since GtkUIManager came on the scene. I think gnome-vfs will be around for a while, especially since the new file chooser can plug in to it (I think).

    2. Re:Ditch the dependencies and deprecated code by cortana · · Score: 3, Insightful

      > Remove all deprecated libraries from the codebase of the Gnome core.

      I believe that deprecated libraries tend to be replaced by stubs that backport the new functionality to the old API. Eg, the gnome_sound_play function currently sends a sound file to Esound; when (if) GStreamer becomes part of the platform, the function in libgnome will be replaced with code to do the same thing in GStreamer.

      The old APIs can not be removed until the developers decide to make a new release backwards-incompatible--this will be Gnome 3.0 (http://live.gnome.org/ThreePointZero).

      > Remove or replace subsystems which never really were useful

      Most people I see using Gnome use GnomeVFS all the time. Being able to access files shared on the network without having to be root to mount them is really nice. Even nicer is the sftp virtual filesystem, used for accessing files over SSH's SFTP. If GnomeVFS is to be replaced by something else, it will be by freedesktop.org's D-VFS.

      As for Bonobo: I believe panel applets use it all the time, and I don't think KParts can be a sensible replacement for it: Bonobo isn't just for GUI components. Since it is a Corba implementation, one can use out-of-process components with it, as well as components running accross the network. It's more like DCOM, whereas Kparts are analogous to ActiveX.

      Furthermore, I don't see the Gnome developers starting to use C++ any time soon. Besides the matter of taste and familiarity, C++ has problems with ABI stability. It took an age for Debian to recompile every C++ program when GCC 3.2 came out; I believe one of the reasons GCC 3.4 won't be in Sarge is because it breaks ABI compatibility again.

      > Make all demons optional

      Sounds like you want to duplicate the code from the daemons and copy it into each application. This would only increase memory usage and the number of bugs, while decreasing functinality. The reason GConf is really, really good is because of the signals/notification system. I'm not sure one's desktop would run much faster if every program one used polled its config file for updates every second.

      As for Esound, it will go away in the future if GStreamer becomes a part of the Gnome platform. This will be really nice when it happens, because the job of picking which sound server to use (esd/polyp/arts/jack/none), configuring it, etc will be left up to the distributor. But GStreamer has a fair bit of improvement to do before this can happen; and since removing Esound all together is backwards incompatible, it will have to wait for 3.0.

  15. While they are at it ... by Alain+Williams · · Score: 4, Interesting
    fix some of the startup slowness. Have you ever done strace on a gnome app ? Did you ever see it open and read the same file again & again ? It might cost a little RAM to cache the results but should be worth it - most of these files are quite small. How about reading into a per user shared memory segment - just read once and share between all processes.

    The best way of ensuring that it stays fixed is to give all the gnome developers PIIIs with 128 Mb RAM.

  16. Re:This can work both ways by ggvaidya · · Score: 3, Insightful

    The way I see it, the money will just make sure that it gets on top of Slashdot :) and thus a lot of geeks, some with free time, will see it and go, "hey, that sounds interesting - and there's even something in it for me if I do it right!"

    People who wouldn't have otherwise thought of trying to clean up Gnome will give it a shot. Go, Novell!

  17. Re:This can work both ways by Doc+Ruby · · Score: 4, Interesting

    There's no reason why a team of people couldn't work together daily, in a traditional "day job", to produce software to submit to these bounties. In fact, given that the risk of the code not making into acceptance by deadline is now borne by the coders, a team that's working on several bounties at once (perhaps in different projects) a better way to spread the risk. This model lets a team work on what they want, when they want, for whom they want, with whom they want. Without all the baggage that's bundled with a day job at the buyer of the code, including the mixed bag of projects assigned to team members.

    --

    --
    make install -not war

  18. -1, Not Sufficient Geeky by ggvaidya · · Score: 4, Funny

    In The Hobbit, gnomes were used to refer to the Noldor, but Tolkein changed that because of the stereotype gnome being short-and-fat and very unelvish (in the Tolkein universe). An overweight Noldor would look a lot like an overweight human. And, if the movies are to be believed, very gay, but I'm not buying that ...

  19. KDE has been doing this since day one by AntiOrganic · · Score: 4, Insightful

    While they've still got a long way to go, each successive release of KDE is substantially improved in terms of required CPU power and memory usage. KDE 3 ran a great deal faster than KDE 2 despite all sorts of added functionality, and KDE 3.4 RC1 is the fastest yet by a pretty big margin. The upcoming Qt 4 has a whole slew of performance improvements which should reduce requirements further.

  20. Pay Peanuts, Get Monkeys - Catch Fleas by Doc+Ruby · · Score: 4, Insightful

    The bounties Novell is offering are too low. They're offering $1-200 for tasks that will take an adequately skilled programmer, already familiar with GNOME, something like 2-4h to complete, including the docs that will let GNOME integrate the code (which will help win the bounty). The programmer doesn't need to spend time testing the code, though that will increase their chances of winning. So they're offering $50:h.

    That isn't enough to support a community of coders, even if the range of bounties were scaled up to supply a significant headcount with enough work to keep busy (say, 500-1000 bounties a year). The labor might be fueled by people who are coding GNOME anyway, to prioritize completion/submission of some tasks. But the better, even more productive coders won't be available at those rates. It remains to be seen whether a multitude of mediocre submissions can compensate for too-cheap bounties that can't attract quality coders. Or perhaps this model will merely send all coding offshore, to programmers who can work so cheap that a single $100 bounty won can fund a month of unsuccessful submissions to other bounties they lose.

    --

    --
    make install -not war

  21. Good luck! by daVinci1980 · · Score: 4, Interesting

    Seriously... I've spent a very significant amount of time optimizing four shipped titles now--mostly games, one commercial shrinkwrap application--for both speed and size tradeoffs.

    The big annoying thing with optimization is that assuming you are working with talented people (I believe the people who work on GNOME are talented), there is generally little low-hanging fruit. An example of low hanging fruit is places where you are using--for example--a vector, but you should be using a map or a hash table. Another example is places where complex code can be skipped over by checking some preconditions and bailing early.

    Although premature optimization is the root of all evil, most of us recognize these sorts of places early, and do the relevant optimization work in the first place. What you're left with in terms of optimizations is places where your initial architecture is *just wrong.* This kind of performance / memory deficiency really sucks, because most of the time the code is too complex and there are too many other dependent pieces of code to do the necessary rewrite.

    The other thing that makes optimization work hard is (lack of) tools. There are basically two types of problems you can optimize: speed and size. Sometimes you get lucky, and fixing size problems *also* increase speed (generally because your smaller code now fits in the instruction cache, or because your data memory fits in the L1 or L2), but that is usually the exception. With size problems, the best bet is usually to make all objects pooled individually. This allows you to dump out information during the program run as to how many objects you've allocated of a particular class, as well as how much memory they're taking up.

    With speed concerns, it's a little more difficult. There are basically two types of speed problems. Problems that occur constantly, and problems that occur as a result of user interaction or are themselves cyclical. Effectively it's a matter of identifying spikes versus identifying plateaus. Plateuas are the easier of the two, because they are identifiable via tools like Intel's VTune (which has been--I believe--ported to Linux by Intel). But spikes are harder, in that identifying them requires code instrumentation, and although there are some suites that will do it automatically, they often over instrument places which lead to artificial spiking.

    Anyhoo, sorry for rambling... optimization is something very near and dear to my heart.

    --
    I currently have no clever signature witicism to add here.
  22. Re:horrible idea by dont_think_twice · · Score: 5, Insightful

    I think this is a horrible idea. When you have to offer bounties to encourage people to alter open source, then you're basically hiring and paying programmers...Open source isn't about hiring and paying people, it's about everyone working together to make better software for themselves.

    I think you are confusing Open Source Software and Ken Kesey's Magic School Bus. One solution to this problem is for your to do way less drugs.

  23. Re:This can work both ways by Rahga · · Score: 4, Interesting

    Here's a reason: Most people with the experience needed to do this work easily make well over the ammount these bounties offer (~$200 for something that is very non-trivial) in less than a day or two at their day job. The bounties are simply added incentive to fix messy problems, very rarely will you see somebody take them on unless they already wanted to scratch that itch.

  24. Additive bounties by theantix · · Score: 4, Interesting

    What I would like to see is the ability for me as a user to add to the existing bounties and start new ones of my own. I would like to be able to propose a bounty and send money to a reputable bounty clearinghouse like at Novell or Ubuntu, and then they could offer the bounty as if it was their own since they have my cash until the bounty expires or is completed. And then while the bounty is still up for grabs I would like to be able to send the clearinghouse money to add to the existing bounties in order to make them more lucrative to potential hackers.

    I could setup this site right now fairly easily, but people wouldn't trust my joe random site as well as they would trust a bigger and more established organization like Novell or Ubuntu/Canonical. But I can't be the only one looking to put my money where my mouth is, so why does this functionality not exist?

    --
    501 Not Implemented
  25. I like the idea by hsoft · · Score: 3, Insightful

    Sourceforge should extend it's donation system and create a bounty system. When you donate money to a project's bounty system, you get a vote for each dollar you give. People submit for the bounty, and then, you can vote for who will get the coding contract.

    --
    perception is reality