Bonobo was initially motivated by the Microsoft COM component system.
It is based on CORBA though, and it takes ideas from COM (QI, Persisting, Monikers), OLE2 (the structure for compound documents, the interactions), Delphi (Property interfaces), JavaBeans (PropertyPages, introspection).
And then we added a number of things that were not available on any of those systems or did not suit our port: mapping between Gtk+ properties and Bonobo properties; Compound document printing adapted to gnome-print; Arbitraryly shaped components with arbitrary alpha transparency (Gnumeric embedding a SodiPodi SVG components with alpha transparency/a) and a few others.
Well, when I wrote Gnumeric, I wrote it not because I needed a spreadsheet, but because GNOME needed a spreadsheet. I have basically no interest in spreadsheets, and have never used a spreadsheet.
Copying the design, model, and idea of an existing product that people knew how to use was better than sitting down and "reinventing" the concept behind spreadsheets.
This turned out to be very good, as various Excel hackers joined the team, and they have improved Gnumeric a lot to suit their needs, and address problems that Excel could not address, nor could fix for them. And by being a familiar user interface, and a program compatible with Excel, we benefit more users.
I am not doing free software development because I want to stand against Microsoft, but because i want to give users free software (free as in freedom). So copying the Excel user interface to me was never a moral problem
All the components need to know that the source is insecure (just like Gnumeric assumes that any code in a spreadsheet is insecure, just like Outlook should have assumed that a mail called "ILOVEYOU" was also an insecure source, just like Excel and Word should treat their data insecurely as well).
Anyways, the point is that each component should assme that the data they are loading might be hostile data.
And a full SVG implementation could also be hostile (as they can use Javascript), so that also should throw an exception.
I admit that Microsoft has done some very nice programs, and they have developed some very nice technologies.
Not all are perfect, but many are good, and worth looking into, and learning from. Just like you should learn from any other product from any other company and read research papers from any company that devotes a lot of resources to research (www.research.microsoft.com has some genuinely interesting papers, fwiw)
We are working on the Email support, the version you are using includes support for mbox parsing, indexing, and summarizing. As well as pop and kerberos-pop.
Then, it can display your messages (text/plain, text/html, and it can display arbitrary mime-types if you have the proper Bonobo component).
For instance, you can display/edit images sent in SVG format using Sodipodi (The GNOME Vector Drawing program), and it can also render PDF files (trough GNOME PDF) or Postscript files (GNOME GGV), or Gnumeric or Excel files (trough Gnumeric).
Well, we take security seriously in the GNOME project. Our implementation of Visual Basic for GNOME (it is required for perfect Office compatibility) actually runs in a Sandboxed environment, just like Java does.
The equivalent of the "ILOVEYOU" virus would generate a security exception in any application using GB in the future (no application currently uses GB, as it is still a project under development).
Evolution is logically split into two parts (there is a process barrier between these parts).
The first are the User Interface Bonobo components. The other part is the non-graphical part that actually drives the data back end (The Wombat process, which is also in turn a Bonobo component).
The Wombat does not use or require a windowing system to be running, it just acts as a serializer and as the data provider for the actual user interface. The user interface can be a terminal application talking to the Wombat trough CORBA, a Web-based mailer/calendar/addressbook, a custom application you wrote that uses any of the above services in Perl (using the Perl/CORBA bindings from Owen Taylor for instance) or an Emacs based interface.
A lot of love has gone into making Evolution "right" in as many aspects as possible.
We welcome more comments on it, and constructive cricitism.
Please note that the unreleased libraries have nothing to do with Gtk+. The unreleased libraries are new components that have never been used before by any applications outside the CVS.
The Bonobo component architecture is probably the exception to the above statement, but what you are looking at is a pretty advanced application making use of the most advanced components available for GNOME programmers, and that are stabilizing at an amazing pace.
Various applications include support for it (Gnumeric is the one I maintain that uses it).
The Evolution code base will be available for a preview test in a few weeks. Keep your eyes open.
Best wishes,
Miguel
Re:did raster piss you off that bad ?
on
RedHat 6.2 - RSN
·
· Score: 1
Well, I am personally glad to see that Red Hat did not ship E0.16, as it did remove GNOME support by default, and this is not inmediately obvious.
This means that users that install 0.16 with GNOME by default wont get a working GNOME setup. And there is no easy way to fix (At least, I could not figure it out).
I just wanted to say how much I appreciate all the good work all the people at Red Hat have done. Erik Troan, Mark Ewing and Bob Young for always keeping in mind the importance of a truly open-sourced system.
So what if it is not output-only to me. I do not spend my life reading kde-devel. I found out about Matthias whinings here on slashdot, not on my Gnus buffer.
gnome-hackers was always closed. The fact that some people found the archives on the web was a bad side effect.
gnome-hackers was always on the same level as your private kde-private mailing list.
It was removed because we discussed internal stuff in that list, and people used my private comments on a private mailing list to start a flamewar with some KDE people.
The fact that it was available on the web was a mistake, as it is a private mailing list.
The KDE developers list is an output-only medium, just like the regular media: There is no way to correct anyone on kde-devel list, given that only developers get post access, but everyone can read.
As it stands, Matthias opinion on the hype of Gnumeric and his "comparission" on the code quality are unfounded.
His bashing on other free software projects on that list are as bad as the ones I have been criticized for (hey, it was my *opinion*).
I did look at KSpread code when writing Gnumeric, hoping to get some good ideas from it, but I was rather dissapointed with the code.
Why does he say it is overhyped? Mistery; Why did the pink rabbit die? Mistery; Why did he spread miss-information about Gnumeric? Mistery again; Why does he imply we have some marketing team to market Gnumeric? Mistery once more; Why do I love Paris? Because of the coffee.
2. The fact that he does not talk to the press is completely irrelevant. Slashdot posters have made it clear that speaking your opinion is a capital sin. Or is it just a sin for me?
It was not me trying to rewrite E, probably someone else, but not me. As far as I care, I only care about the application framework and the applications.
The window managers never quite excited me, so I doubt it was me.
The only code I want to rewrite is Imlib, because Imlib 1.xx has serious memory management issues. So we are going to base our new image code in Raph Levien's code.
The GNOME canvas is an extensible display system which allows users to create new items (the items you see on the screenshots are the ones provided by the stock gnome libraries).
New display items are easy to write. For example, the gnumeric spreadsheet is made up of 4 custom canvas items (one of them the grid/cell display). The GXSNMP program also uses it as its main window display code.
The Gnome icon list (also part of the gnome libraries) is also implemented as a Canvas with various custom items.
This is a powerful engine that will allow developers to concentrate more on their code, rather than concentrate on handling little GUI details
Bonobo was initially motivated by the Microsoft COM component system.
It is based on CORBA though, and it takes ideas from COM (QI, Persisting, Monikers), OLE2 (the structure for compound documents, the interactions), Delphi (Property interfaces), JavaBeans (PropertyPages, introspection).
And then we added a number of things that were not available on any of those systems or did not suit our port: mapping between Gtk+ properties and Bonobo properties; Compound document printing adapted to gnome-print; Arbitraryly shaped components with arbitrary alpha transparency (Gnumeric embedding a SodiPodi SVG components with alpha transparency/a) and a few others.
Miguel.
Well, when I wrote Gnumeric, I wrote it not because I needed a spreadsheet, but because GNOME needed a spreadsheet. I have basically no interest in spreadsheets, and have never used a spreadsheet.
Copying the design, model, and idea of an existing product that people knew how to use was better than sitting down and "reinventing" the concept behind spreadsheets.
This turned out to be very good, as various Excel hackers joined the team, and they have improved Gnumeric a lot to suit their needs, and address problems that Excel could not address, nor could fix for them. And by being a familiar user interface, and a program compatible with Excel, we benefit more users.
I am not doing free software development because I want to stand against Microsoft, but because i want to give users free software (free as in freedom). So copying the Excel user interface to me was never a moral problem
Miguel.
All the components need to know that the source is insecure (just like Gnumeric assumes that any code in a spreadsheet is insecure, just like Outlook should have assumed that a mail called "ILOVEYOU" was also an insecure source, just like Excel and Word should treat their data insecurely as well).
Anyways, the point is that each component should assme that the data they are loading might be hostile data.
And a full SVG implementation could also be hostile (as they can use Javascript), so that also should throw an exception.
Miguel.
April GNOME is not out, because we have decided to give more testing, polishing, and reviewing before the 1.2 release (April).
If you get Helix GNOME you will get a very good approximation of what GNOME 1.2 will look like.
Jacob (GNOME 1.2 release coordinator) today released GNOME 1.1.90 to the world. Go test it, and report any problems you find there.
Miguel.
This means that you used a different installation prefix from your stock GNOME installation for the new packages like Bonobo.
The fix is simple, just type this:
export GNOME_PATH=/usr/local
(or whatever is the prefix you used for building Bonobo and the other new components), and then type:
./configure
I admit that Microsoft has done some very nice programs, and they have developed some very nice technologies.
Not all are perfect, but many are good, and worth looking into, and learning from. Just like you should learn from any other product from any other company and read research papers from any company that devotes a lot of resources to research (www.research.microsoft.com has some genuinely interesting papers, fwiw)
Miguel.
You got it all wrong.
We are working on the Email support, the version you are using includes support for mbox parsing, indexing, and summarizing. As well as pop and kerberos-pop.
Then, it can display your messages (text/plain, text/html, and it can display arbitrary mime-types if you have the proper Bonobo component).
For instance, you can display/edit images sent in SVG format using Sodipodi (The GNOME Vector Drawing program), and it can also render PDF files (trough GNOME PDF) or Postscript files (GNOME GGV), or Gnumeric or Excel files (trough Gnumeric).
That is the goal, Evolution will support the standard calendaring systems available on other products, like Exchange.
Inflitrate the organizations from the bottom up with open source software is the way Nat puts it
Miguel.
Well, we take security seriously in the GNOME project. Our implementation of Visual Basic for GNOME (it is required for perfect Office compatibility) actually runs in a Sandboxed environment, just like Java does.
The equivalent of the "ILOVEYOU" virus would generate a security exception in any application using GB in the future (no application currently uses GB, as it is still a project under development).
Miguel.
I am glad you pointed this out.
Evolution is logically split into two parts (there is a process barrier between these parts).
The first are the User Interface Bonobo components. The other part is the non-graphical part that actually drives the data back end (The Wombat process, which is also in turn a Bonobo component).
The Wombat does not use or require a windowing system to be running, it just acts as a serializer and as the data provider for the actual user interface. The user interface can be a terminal application talking to the Wombat trough CORBA, a Web-based mailer/calendar/addressbook, a custom application you wrote that uses any of the above services in Perl (using the Perl/CORBA bindings from Owen Taylor for instance) or an Emacs based interface.
A lot of love has gone into making Evolution "right" in as many aspects as possible.
We welcome more comments on it, and constructive cricitism.
Miguel.
The Bonobo component architecture is probably the exception to the above statement, but what you are looking at is a pretty advanced application making use of the most advanced components available for GNOME programmers, and that are stabilizing at an amazing pace.
Miguel
The printing architecture is ready to be used today. You can download it from:
ftp://ftp.gnome.org/pub/GN OME/stable/sources/gnome-print
Various applications include support for it (Gnumeric is the one I maintain that uses it).
The Evolution code base will be available for a preview test in a few weeks. Keep your eyes open.
Best wishes,
Miguel
This means that users that install 0.16 with GNOME by default wont get a working GNOME setup. And there is no easy way to fix (At least, I could not figure it out).
Best wishes,
Miguel.
The vision of the Helix Setup Tools is tightly integrated with our vision of component-based programming and interface/contract-based programming.
p -tools.html) and if you are interested in our approach to component programming and how we think these things should fit, look at http://primates.helixcode.com/~miguel/bongo-bong.h tml. And finally, if you are hooked into an object name space and service location you might be interested in the Moniker white paper (http://primates.helixcode.com/~miguel/monikers.ht ml).
The whole vision of GNOME is to enable a level of scripting that has never been available before. If you are interested in the technical details that address your concerns you can read the Helix Setup Tools white paper (http://primates.helixcode.com/~miguel/helix-setu
Best wishes,
Miguel.
It is not proprietary.
Not only the whole source code is out there, but any fully compliant CORBA ORB could use the same authentication setup.
I just wanted to say how much I appreciate all the good work all the people at Red Hat have done. Erik Troan, Mark Ewing and Bob Young for always keeping in mind the importance of a truly open-sourced system.
A great company, with great people behind.
Miguel.
So what if it is not output-only to me. I do not spend my life reading kde-devel. I found out about Matthias whinings here on slashdot, not on my Gnus buffer.
gnome-hackers was always closed. The fact that some people found the archives on the web was a bad side effect.
gnome-hackers was always on the same level as your private kde-private mailing list.
Your point is then?
Miguel.
No, both are output-only mediums.
;-)
We did not delete the archives, they are just available to people on gnome-hackers.
KDE has kde-private, which is not an open list either. Just like gnome-hackers is not.
Hey, bet you did not know about the existance of kde-private
Miguel.
No, the list still exists.
It was removed because we discussed internal stuff in that list, and people used my private comments on a private mailing list to start a flamewar with some KDE people.
The fact that it was available on the web was a mistake, as it is a private mailing list.
Nothing about the earlier release of gnome 1.0.
Miguel.
The KDE developers list is an output-only medium, just like the regular media: There is no way to correct anyone on kde-devel list, given that only developers get post access, but everyone can read.
As it stands, Matthias opinion on the hype of Gnumeric and his "comparission" on the code quality are unfounded.
His bashing on other free software projects on that list are as bad as the ones I have been criticized for (hey, it was my *opinion*).
I did look at KSpread code when writing Gnumeric, hoping to get some good ideas from it, but I was rather dissapointed with the code.
Why does he say it is overhyped? Mistery; Why did the pink rabbit die? Mistery; Why did he spread miss-information about Gnumeric? Mistery again; Why does he imply we have some marketing team to market Gnumeric? Mistery once more; Why do I love Paris? Because of the coffee.
Miguel
You really need a clue.
Let me clue you in:
1. AbiWord is written in C++. OH SHOCK!
2. The fact that he does not talk to the press
is completely irrelevant. Slashdot posters
have made it clear that speaking your opinion
is a capital sin. Or is it just a sin for me?
Miguel.
You got your references wrong Dude.
It was not me trying to rewrite E, probably someone else, but not me. As far as I care, I only care about the application framework and the applications.
The window managers never quite excited me, so I doubt it was me.
The only code I want to rewrite is Imlib, because Imlib 1.xx has serious memory management issues. So we are going to base our new image code in Raph Levien's code.
Hope this clears up your confussion.
Miguel.
The GNOME canvas is an extensible display system which allows users to create new items (the items
you see on the screenshots are the ones provided by the stock gnome libraries).
New display items are easy to write. For example, the gnumeric spreadsheet is made up of 4 custom canvas items (one of them the grid/cell display). The GXSNMP program also uses it as its main window display code.
The Gnome icon list (also part of the gnome libraries) is also implemented as a Canvas with various custom items.
This is a powerful engine that will allow developers to concentrate more on their code, rather than concentrate on handling little GUI details