Skip to content

GNOME-Zeitgeist improving!

The last couple of days the Zeitgeist team has been pretty busy with coding! With the help of the guys hanging around #gnome-zeitgeist and Jason Smith (aka DBO) we managed to improve performance and the UI! There is still alot to come and a release will be hopefully sometime soon! We would really appreciate testing and new hackers (especially if you are new to python why not take a look its only 2500 lines of code :P ). I don’t intend to start a weird topic! But since we kind of have a plan of what we are doing! I am thinking of taking 2 days to start porting to mono if the rest of the gang is ok with it! Right now its all in python! what do you think? To mono or not to mono!

You can pull the code from launchpad:

bzr branch lp:gnome-zeitgeist

Here is a quick video preview of what it can do now! More features to come soon!

{ 66 } Comments

  1. David Nielsen | March 25, 2009 at 6:31 am | Permalink

    I would leverage Mono if I was doing this, it is a really cool framework. I think it would be very well suited for this kind of job also it might open up for new contributors and new functionality.

  2. Christoph | March 25, 2009 at 8:25 am | Permalink

    Please port it to mono. I might join fixing bugs then :-)

  3. Anders | March 25, 2009 at 8:43 am | Permalink

    I’ll have a look at the python. While I think mono is really cool technology I would like to keep core desktop as lean as possible and not require yet another VM and library. If you want to port to something exotic why not JavaScript and GnomeIntrospection?

  4. anonim | March 25, 2009 at 10:11 am | Permalink

    Since you guys are going to do it it’s your take, but how about doing it in javascript as the gnome-shell proyect? since I guess it will be part of gnome 3.0 maybe it makes sense to have the most prominent new features in javascript with gis as a showcase of the new 3.0 plataform features.

  5. krs | March 25, 2009 at 10:23 am | Permalink

    This looks a lot like the feature described as some kind of timeline file manager for the new gnome-shell, maybe this can be it?

  6. Alberto | March 25, 2009 at 10:31 am | Permalink

    do you think port to Vala?

  7. John Stowers | March 25, 2009 at 10:44 am | Permalink

    You port to LOLCODE soon! you do soon? I only help if in LOLCODE!!111!!

  8. Rasi | March 25, 2009 at 11:57 am | Permalink

    Hooray – show us your warez!

    but still – looks like a great project…

  9. Seif Lotfy | March 25, 2009 at 12:03 pm | Permalink

    @Rasi
    next on the list are blacklists!

  10. oliver | March 25, 2009 at 12:09 pm | Permalink

    +1 for staying with Python. I like the language and the fact that you can hack on installed apps without needing a development system (chmod a+w on installed .py files suffices :)

    Btw. is there a web viewer available for your current repository? I don’t have bzr available right now but like to have a look at the code.

  11. Rasi | March 25, 2009 at 12:48 pm | Permalink

    @Seif Lotfy
    Well, i only meant that you should probably make sure, such stuff is not shown on public screencasts…

  12. Natan Yellin | March 25, 2009 at 2:02 pm | Permalink

    As I’ve said in the past, I’m willing to go either way on this, provided that there are justifiable reasons behind the switch.

    What’s the rationale behind switching, and why now?

  13. Natan Yellin | March 25, 2009 at 2:06 pm | Permalink

    @oliver
    Yes, please see http://bazaar.launchpad.net/~gnome-zeitgeist/gnome-zeitgeist/gnome-zeitgeist/files

  14. Seif Lotfy | March 25, 2009 at 2:06 pm | Permalink

    @oliver
    http://bazaar.launchpad.net/~gnome-zeitgeist/gnome-zeitgeist/gnome-zeitgeist/files
    have fun!

  15. Seif Lotfy | March 25, 2009 at 2:09 pm | Permalink

    @Natan Yellin
    We can rewrite a clean code with a plugin manager that mono provides!
    DBO would join the team! Federico could help us wiht memory stuff!

    but python just works and is pretty portable. And quick forward!

  16. Milan Bouchet-Valat | March 25, 2009 at 2:20 pm | Permalink

    Very nice!

    But please DO NOT port it to Mono! :-)

    Since you’re quite close to GNOME Shell, why not use it’s C + Javascript combination? Else Vala is here for this kind of project (or Genie if you love Python-like syntax)!

    Since Zeitgeist is intended to be a ligthweight tool that should start very quickly, it would be a shame to require a VM, which would mean keeping it in memory all the time to improve start time. Especially if you’re planning to run in the backround to track documents…

  17. Andrés G. Aragoneses | March 25, 2009 at 3:06 pm | Permalink

    You could get the best of both worlds using Boo, because it runs on Mono and its syntax is very easy (inspired on Python).

  18. MIX_1009 | March 25, 2009 at 4:37 pm | Permalink

    Could you port GNOME-Zeitgeist to Vala instead of Mono?

    Vala (http://live.gnome.org/Vala) has the syntax and the power of Mono and it is as fast as C.

    To Vala or not to Vala! :)

  19. mkike | March 25, 2009 at 5:23 pm | Permalink

    Use GObject ;) so C or Vala.

  20. Andrés G. Aragoneses | March 25, 2009 at 6:09 pm | Permalink

    mkike: when using Gtk# with Mono you’re using GObject as well.

  21. Matteo | March 25, 2009 at 6:27 pm | Permalink

    I think you should really consider using vala if your intention is to rewrite the app

  22. MIX-1009 | March 25, 2009 at 8:12 pm | Permalink

    Could you port GNOME-Zeitgeist to Vala instead of Mono?

    Vala has the syntax and power of Mono and the speed of C.

  23. onox | March 25, 2009 at 8:58 pm | Permalink

    To Vala!

  24. Speedboy | March 25, 2009 at 11:22 pm | Permalink

    I would say either stay with Python or go for Vala. Personally i would love to see more programs getting written in Vala (or Genie).

  25. a | March 25, 2009 at 11:37 pm | Permalink

    We need to reduce and not increase the amount of desktop stuff that uses mono! Please leave it using Python unless there’s really a compelling reason to switch and, especially if it’s performance, consider Vala. The more projects that switch to mono, the more effort it’s going to take to get rid of it.

  26. Mark | March 26, 2009 at 12:19 am | Permalink

    No Mono please, I don’t want to be blackmailed by Microsoft in the future.
    Stay with Python or Java (since you are close to GNOME-shell and everybody is improving performance with it).

  27. mystilleef | March 26, 2009 at 12:25 am | Permalink

    Is there are reason you want to port it to Mono? What wrong with Python?

  28. Seif Lotfy | March 26, 2009 at 12:39 am | Permalink

    Just to be clear the porting will only take place after the first release!
    There is still some things that have to be done till then! So when we port a fairly stable code it will be snappier! The reason Mono is a good candidate is that every1 can program with whatever syntax he/she likes! I like python thus boo would be my first choice! Others like C#! this way we just divide the program into modules and every1 gets going!

  29. Henry | March 26, 2009 at 2:43 am | Permalink

    What do you gain by porting the code to Mono?

    You say Zeitgeist is pretty small currently, and Mono is a nice, and fast, framework to work with, but that still a bunch of extra effort that otherwise wouldn’t be needed if you stick with Python.

  30. roberto | March 26, 2009 at 9:13 am | Permalink

    Vala! Its syntax is like C#, but it doesn’t require a VM and, more importantly, it would allow you to refactor your code so that it can become a GtkWidget, reusable (for free, through GObject’s introspection) by any other language for which GLib bindings are available (C, C++, C#, Python, Javascript, Perl, …).

  31. Fabian | March 26, 2009 at 3:47 pm | Permalink

    What themes are you using for GTK+ and metacity? Looks great!

  32. Framp | March 26, 2009 at 5:03 pm | Permalink

    mono is slower on older pc.

  33. Matt | March 27, 2009 at 12:33 pm | Permalink

    Do you know that if your port will be to MONO the whole open source community will ignore your project just before it begins?
    It’s a wonderful program, but I suggest a language like vala…

  34. Seif Lotfy | March 27, 2009 at 7:01 pm | Permalink

    @Matt
    same thing would happen if I go with Jasvascript and GObject’s introspection right? Out of most of the arguements here only a few were somehow backed up by good reasons!
    I would like however if people tried it out and told me what they think too

  35. neuromancer | March 28, 2009 at 12:25 am | Permalink

    +1 no mono
    +1 javascript/GnomeIntrospection

    Gnome is a community project, not a microsoft project.

  36. Ktirf | April 3, 2009 at 12:37 am | Permalink

    Please, please, refrain from porting it to Mono. There are a lot of good things written in Python, but if you really want to move somewhere from it, consider Vala instead. GnomeIntrospection would be kewl, but it’s not popular yet, while Vala – you can see it from the comments – is quite well-known already.

  37. Canol | April 4, 2009 at 2:04 am | Permalink

    Please no mono…

  38. lariamat | April 4, 2009 at 10:42 am | Permalink

    Don’t do it in mono. Use VALA, because this will be a core component of gnome3!

    Mono is great, but this is not the right thing to use it for. Also, you will find it easy to code in Vala, if you like csharp.

  39. Ciprian Mustiata | April 5, 2009 at 2:47 am | Permalink

    I sincerely see things like that:
    one person say: I want to change a thing that I dislike and I will use this, and others are pro or against.

    What is cool on Vala:
    - is already there
    - have Genie for python like syntax
    - it use gobject and introspection

    What is not so cool to Vala:
    - it is admittedly more beta than Mono
    - have bad tools for leaks, etc. (to not say almost none)
    - the best IDE for Vala for now seems to be MonoDevelop or gedit

    What is cool on Mono:
    - IDE works pretty well, by this I mean all: code completion, reference adding, importing from/to projects, etc.
    - can be integrated easy with a test suite (MonoDevelop integrates with NUnit)
    - have a decent debugger from Mono 2.0
    - theoretically at least: a better memory manager (so no leaks, or not so much)
    - easier to maintain (as

    What is not so good:
    - bashing against Mono as a Microsoft clone (I wonder why they did not bash in the past GCJ as being Sun’s clone, or yeah Sun is not so evil)
    - Mono still lags against C pure code (or Vala’s) in pure performance numbers
    - on old machines, mostly with the current GC, the pauses will make feel Mono apps to be sluggish

    Taking the pure present, I would choose Mono: it is mature (or more mature than Vala) and is already a part of Gnome (from 2.16 with TomBoy). Thinking to future, I would chose Mono: it is commercially backed, as raw performance numbers, they gonna improve (like changing the GC algorithm, some tuning are still happening). Some language features do not match in Vala: generics works without specialization, there is no LinQ support, hard to write and extend as easy the code.

    Picking Vala anyway I think it will be the close second as platform, the C + Gtk stuff makes me at least to love Qt and Mono… But I think at least to this happen is to make the Vala team to help porting and working around the bugs, elsewhere, there is no sense, you will start with half made product and you will see that many bugs which are regarding memory management will not work as good: there is a ownership management for memory, etc. which is nicer as is reference counted but not as great as automatically memory management provided by a GC.

  40. Matthew | April 5, 2009 at 4:09 pm | Permalink

    I suggest to use vala, since zeitgeist will be part of gnome and good performances are welcomed.

    Benchmark:
    http://code.google.com/p/vala-benchmarks/wiki/BenchResults

  41. Admy_ | April 6, 2009 at 2:09 pm | Permalink

    Agreed on Vala: good perfs, friendly syntax.
    +1!

    I think forcing the use of Mono for a project like Zeitgeist is a bit overkill and even if I don’t really care about possible legal threats… you know.

  42. xfuser | April 6, 2009 at 3:28 pm | Permalink

    Please use Vala. Mono is resource-hungry and slow, but we need a fast solution! Vala will be the GNOME programing language of the future and is already nice and easy.

  43. danne | April 7, 2009 at 10:07 am | Permalink

    Why not stick with Python?

  44. Pietro Battiston | April 8, 2009 at 10:23 am | Permalink

    Python, Vala, Javascript, whatever.

    Not Mono.

    Unfortunately, if, without any plausible reason (“every1 can code as he prefers” is not plausible, since learning python enough to fix a bug is much easier than learning to “code as every1 prefers” in Mono), you decided to move to Mono, despite what everybody suggests, I’m afraid you have your reasons (I really hope someone at Novell is paying you) and the Free Software community has lost another occasion to be unite and really free.

    So do as you prefer, our opinion evidently doesn’t have that much influence. But please refrain from saying things as “bashing against Mono as a Microsoft clone”… the point is not the clone, but the patents, which are the last possibility for Microsoft to try to break the Free Software community. The best demonstration of that risk is that everybody writing in Mono, and in particular coming from Novell, omits this argument. Fortunately, someone doesn’t:
    http://itmanagement.earthweb.com/osrc/article.php/12068_3812891_1/Bruce-Perens-Microsoft-and-TomTom-Settle-Justice-and-Linux-Lose.htm

  45. Seif Lotfy | April 8, 2009 at 2:05 pm | Permalink

    @Pietro Battiston
    We decided to stay with Python! Vala would be too GNOME oriented. Not that I have some thing against that but it is not as portable as python and mono!
    Mono however although very appealing would just cause as much enemies as friends.
    Python seems to me the way to go. As you said it is easier for people to jump into development using python by fixing bugs etc…
    I think Python is somehow the middle ground and if I am not mistaken it is not that far away from boo or iron python.
    So Python it is.

  46. Angry Anonymous | April 9, 2009 at 9:15 am | Permalink

    Lol, if you mind about startup speed, the first thing you _must_ do is to refuse from language with vm (java, mono, python and other interpreters).

  47. Angry Anonymous | April 9, 2009 at 9:17 am | Permalink

    And please – stop this project. It’s just a shit. Looks like functional languages vs imperative. Some things are slightly better, but there are things that is much harder and annoying – this is exactly your case (nautilus vs your shit).

  48. Seif Lotfy | April 9, 2009 at 9:23 am | Permalink

    @Angry Anonymous
    Good for you that you know how to use the word “sh*t” in a sentence! Because of that I will stop the project! :)

  49. Angry Anonymous | April 9, 2009 at 11:59 am | Permalink

    Thanks, you would done well.
    I would thank you more if you help me to stop idiotic gnome-shell. The reason is the same.

  50. Pietro Battiston | April 9, 2009 at 6:21 pm | Permalink

    Seif, well, I admit I didn’t expect that. Thank you on behalf of all the community for your choice.

    And sorry if in my former comment I wasn’t very trustful… today I have learned a lesson: never judge someone on the basis of the language he likes…

    (… but only on the basis of the language he uses :-)

  51. Marc | April 10, 2009 at 12:29 am | Permalink

    @Seif Lotfy
    Good choice! :-)

  52. Lorem | April 10, 2009 at 6:40 am | Permalink

    Nice to know that you will remain with python

  53. Angry Anonymous | April 10, 2009 at 11:35 am | Permalink

    > We decided to stay with Python! Vala would be too GNOME oriented. Not that I have
    > some thing against that but it is not as portable as python and mono!
    > Mono however although very appealing would just cause as much enemies as friends.

    Very funny kids. Now try to imagine the future of gnome: extremely slow gnome-shell, where “activities” is the main point and should start up instantly, starts more than a second because jit needs to compile js of gnome-shell code every time. On the fresh configuration. On the configuration with additional plugins it takes more than a three seconds :D
    Then your cheap thing – takes more than a three seconds to start. But it’s OK, because the world of changing, of course. The changing is a life, lol. Hahaha, kids, python lol
    About the subject: Vala is not a gnome thing – it’s a gtk thing. Since you are using gtk, your project is gnomish as any vala project, more or less, depends on the specific situation. But this point only proved you are noobs, your project will be too slow to really use it, the gnome will the the shitload of bugs and lags and freezes etc.
    // The only thing I’m care about is gnome devs wants to replace nautilus with your project. I’m using gnome and I don’t want to constantly setup something. But if these idiots will use gnome-shell and yours amateurish stuff, I would force to use KDE, which sucks very much, but not so much as gnome 3.0 would be.
    // Don’t like idiotic “light wms”, it’s only for geeks.
    // Need to explain this to gnome-shell devs, where can I find them?

  54. Angry Anonymous | April 10, 2009 at 11:51 am | Permalink

    I’ve compared document/task centric approach vs traditional application/file approach with functional vs imperative programming before. So, details now:
    In some cases functional approach is slightly better than imperative, but not very much. But in many cases it’s sooooo annoying you can’t describe that. Even programming in assembler is better in this cases. But if we add some features to the imperative language, the first kind of tasks, where functional approach was better, become simple and in imperative language too.
    Things are similar in document/task centric approach vs traditional application/file approach: the first approach tends to be declarative, while the second is imperative. But we easily can emulate first approach with second one: gnome-shell activities emulates very well with workspaces. Zeitgeist approach emulates quite easily with file names and sort by date, etc. But you just can’t emulate file hierarchy.

  55. Angry Anonymous | April 10, 2009 at 11:53 am | Permalink

    And if you add some automation to workspaces and add some more filtering and search functionality into nautilus, the gnome-shell and your amateurish stuff will lose any point. Cheers.

  56. Angry Anonymous | April 10, 2009 at 11:57 am | Permalink

    The weakness of document/task centric method is it’s unpredictability, but the point of usability is to make things predictable.

  57. PatR | April 10, 2009 at 10:15 pm | Permalink

    By the way, just in case you didnt hear it: Google plans to bring a python JIT by the end of 2009, based on LLVM, targeted to be 5-10 times faster than CPhython.

    Greetings.

  58. Angry Anonymous | April 10, 2009 at 10:51 pm | Permalink

    > By the way, just in case you didnt hear it: Google plans to bring a
    > python JIT by the end of 2009, based on LLVM, targeted to be 5-10 times
    > faster than CPhython

    I think you are adult enough to trust to tales? Similar thing already have been done for the python: psyco. It was faster about 5 to 10 times as well. But while intensive computations with large amount of data it was as slow as CPython and was about 200 times slow than pure C or C++. So it would be about 20 times slower than C (I think it would suck even more). But the point is with JIT program startup is getting worse. Python now starts quite slow. But with JIT it would start even slower. Keep in mind: startup is one of the most significant things in desktop applications expirience.

  59. Seif Lotfy | April 10, 2009 at 10:55 pm | Permalink

    @Angry Anonymous
    Again I never intended it to replace anything. I actually want to write a plugin for nautilus. But I guess you are here just to critisize everything. You are entitled to your opinion. But instead of being so picky I would suggest you hack up something else that you think could improve GNOME. Cheers

  60. Angry Anonymous | April 11, 2009 at 1:36 pm | Permalink

    @Seif Lotfy
    I’m looking for the gnome-shell irc or something to put the verbiage on them. They need it.

  61. Seif Lotfy | April 11, 2009 at 1:37 pm | Permalink

    #gnome-shell and #gnome-zeitgeist on irc.gnome.org

  62. PatR | April 11, 2009 at 3:51 pm | Permalink

    @Angry Anonymous
    Yah sure, c or c++ is way faster starting up, and I see this beeing important. I just wanted to give some reason not to port to mono =]. If porting, then c, c++, vala. Or if you want absolute speed then fortran 77 =]

    Greetings

  63. beerseller | April 17, 2009 at 8:26 am | Permalink

    Personally, I am behind Vala. There is no need to use Mono in one of the key components. And so many swears that gnome pulls a whole bunch.

  64. Vexorian | May 20, 2009 at 11:54 pm | Permalink

    Mono fans? Wanting SPEED? hahahahaha…

    Sugar is completely built on python, nevertheless the computers are very light on CPU cycles, and kids behind an OLPC just enjoy it… I’ve seen kids try it and never did anyone notice any python ‘slowness’. Besides, Mono itself is not exactly the holy grail of speed. I think it is rather funny Mono fans would go berserk whenever you suggest a project to make a port out of MS technology… yet they are the first ones to attack python…

  65. Dejan | October 25, 2009 at 2:33 pm | Permalink

    How is this project going? I agree with the posters who told you to use Vala.

  66. Kalen | December 8, 2009 at 12:29 pm | Permalink

    project doing well ?

    Ed Hardy for women

{ 1 } Trackback

  1. [...] “GNOME-Zeitgeist porting ridicule“). La notizia viene direttamente da Seif Lotfy, che ha commentato con un inequivocabile: “We decided to stay with Python!“. Decisione saggia e a quanto [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *