shaver is currently certified at Master level.

Name: Mike Shaver
Member since: N/A
Last Login: N/A

FOAF RDF Share This

Homepage: http://off.net/~shaver/diary/

Notes:

I no longer maintain this. Try here.

Projects

Recent blog entries by shaver

Syndication: RSS 2.0

I'm still sick, but we did have a nice dinner with Chris and Shona, so that was nice. More rest today, though I have to do some more work in preparation for Deb's start at work in May.

OK, mathieu, I'll confess that I don't understand why you need to have the IDL info in the application. What if multiple applications use the same interfaces (like GNOME::Panel, or whatever)? Why should you tie interface to implementation like that? Multiple copies? What about implementations in Perl or JavaScript or Java or Python, which don't have the same _init hacks? I guess I don't see why you can't keep ``typelibs'' (meaning: files that describe interfaces) separate, which would also seem to reduce the likelihood of having someone ``update'' the interface when they update their implementation (``I'm the only applet in GNOME CVS that uses GNOME::MagicThing::1.0, so I'll just update it in place. What? Someone else has a Perl applet that uses it?'').

My experiences with Mozilla autoregistration also tells me that you probably don't want to grovel over $gnome_prefix/lib/IDL/*.so at every GNOME startup.

In more detail, here's what I propose:

  • A typelib compiler (similar to xpidl -m typelib) that generates typelibs from interfaces, and probably a linker like xpt_link. The typelib compiler and linker are run on IDL files to product typelib files, which are stored in $gnome_prefix/share/typelib.
  • The IR implementation reads in the typelib files at startup, and constructs whatever internal structures it needs to serve things according to the IR interface, etc. (You'd probably want to do incremental loading, by only loading the file header and interface directory entries (names from Mozilla's implementation) at for each file, and then ``faulting in'' the complete entries as required.
  • You'd might want to distribute sets of typelibs independently from implementations, actually: gnome-core, gnome-code-devel and gnome-core-typelibs. People might actually want to use the Power Of CORBA to manipulate GNOME pieces from other machines, or provide alternate implementations of gnome-foobar in another (non-C) language. Or maybe you don't care; I'm not religious about the packaging, and will just install whatever Helix tells me.

mathieu: in the XPCOM case, at least, we can enumerate all known interfaces (and implementations) -- from an interpreted language, no less! -- regardless of which ones are currently instantiated.

js> for (i in Components.interfaces) print (i);             
nsISupports
nsILocalFile
nsIForwardIterator
nsIRDFXMLSinkObserver
...
js> for (i in Components.classes) print(i);
mimecth:application/x-pkcs7-mime
component://netscape/messenger/stringservice?type=pop3
component://netscape/messenger/stringservice?type=smtp
component://netscape/intl/charsetdetect?type=ruprob
component://netscape/intl/charsetdetect?type=ukprob
...
(Don't mind the silly implementation naming; it's going to change.)

So yeah, an object browser in XUL and JS is quite possible, though you probably want some runtime hooks as well to get handles to pre-existing instances.

18 Apr 2000 (updated 6 May 2002 at 23:45 UTC) »

Conversation with ramiro reminded me of this, which still makes me laugh.

Ramiro is truly awesome. I feel the need to share these gems with the world as well, lest they be lost to the Netscape Document Retention Policy, or something:

Linux is like Christianity. The leaders are cool people, but the followers can be deadly.
THE LAW OF LINUX SUPPORT: THE MOST IMPORTANT THING YOU CAN DO IS LEARN WHICH 99% OF THE "COMMUNITY" TO IGNORE.

Have to go get ready for dinner now, I think.

Back from Montreal, and I brought a cold with me. Damn.

We found a gorgeous apartment near the Georges-Vanier m├ętro station, and apparently all the paperwork is now in order, so yay. We'll probably move in early June. It's enormous, and beautiful, and I can't wait to move in. I will miss Toronto dearly, but commuting like this sucks in no small way.

My ISP kicks ass. They're going to solve my MTU-DSL problems for me, at some cost to themselves. I am supremely pleased that I can get DSL service from them in Montreal, as well.

I'm glad mathieu enjoyed our XPCOM/xptcall/Bonobo/CORBA discussion as much as I did. Some points of clarification, though:

  • typelibs and the IR are not suitable for comparison. typelibs are an on-disk storage format for interface information, and the IR is a service that permits applications to query for such information. I dimly recall, from our conversation, that mathieu really objects to IDispatch, which is the primary (only?) consumer of COM typelib info in the Microsoft COM world. I agree with his stance: IDispatch is abhorrent, if only because it's stub-based. =)
  • It then follows that you can build an IR service, which uses typelibs to store interface data. We do that, basically, in XPCOM, and we call it nsIInterfaceInfoManager. In fact, the implementation of nsIInterfaceInfoManager doesn't even grovel in typelibs directly: it's isolated from the typelib files by the libxpt layer.

A little while back, graydon and I discussed wedging an xptcall-like-thing into ORBit, and blizzard thinks that it wouldn't be too hard to write a CORBA-connecting analogue to XPConnect. We already use the xptcall stuff for proxying between threads, so there's some non-JS marshalling stuff in there to work from. How hard can IIOP be?

Also: Go Leafs.

Back in Montreal. Tyla arrives shortly.

I sent the document out today, and it was well received. We're starting down our open source path, though I can't really say more until we get our plans sorted out in detail. It's going to be a heck of a lot of fun. We're going to need great people to help manage it, of course, so I get to go play recruiter for another few weeks.

Hey, Tyla has arrived.

Sent my O'Reilly thing in yesterday, too. Or did I? It's not in my sent folder, and there's a core file in my home directory that claims to have been ``netscape'' -- not the panel or gmc, yay! -- so I'm not so sure it got out. I was in a bit of a rush on the way out last night, so I don't clearly recall shutting down. I'll be pissed if I have to rewrite it, mainly because I should have just engaged my brain and done it in emacs first. First, though, I'll pray and mail marcia.

Off to dinner and merriment with zab and Tyla and Jenn and willy. More work later, possibly.

10 older entries...

 

shaver certified others as follows:

  • shaver certified dria as Master
  • shaver certified blizzard as Master
  • shaver certified phil as Master
  • shaver certified raph as Master
  • shaver certified Ryan as Journeyer
  • shaver certified adam as Journeyer
  • shaver certified trance9 as Journeyer
  • shaver certified rth as Master
  • shaver certified cameron as Apprentice
  • shaver certified davem as Master
  • shaver certified ariel as Journeyer
  • shaver certified scc as Master
  • shaver certified gerv as Journeyer

Others have certified shaver as follows:

  • raph certified shaver as Master
  • xach certified shaver as Journeyer
  • ole certified shaver as Master
  • Slow certified shaver as Master
  • shawn certified shaver as Journeyer
  • sjburges certified shaver as Master
  • goran certified shaver as Master
  • yosh certified shaver as Master
  • pat certified shaver as Master
  • uzi certified shaver as Master
  • cameron certified shaver as Master
  • johnsonm certified shaver as Master
  • dieman certified shaver as Journeyer
  • Centove certified shaver as Master
  • macricht certified shaver as Journeyer
  • pavlov certified shaver as Master
  • scottj certified shaver as Master
  • kmself certified shaver as Journeyer
  • timj certified shaver as Master
  • mjs certified shaver as Master
  • harold certified shaver as Master
  • bombadil certified shaver as Master
  • mathieu certified shaver as Master
  • graydon certified shaver as Master
  • dria certified shaver as Master
  • Ryan certified shaver as Master
  • riel certified shaver as Master
  • kitsune certified shaver as Master
  • seklos certified shaver as Master
  • alan certified shaver as Master
  • pp certified shaver as Master
  • chbm certified shaver as Master
  • dick certified shaver as Journeyer
  • gbritton certified shaver as Master
  • lmb certified shaver as Master
  • rgb certified shaver as Master
  • listen certified shaver as Master
  • blizzard certified shaver as Master
  • alex certified shaver as Master
  • ajkroll certified shaver as Master
  • jes certified shaver as Master
  • mkp certified shaver as Master
  • mstevens certified shaver as Master
  • jochen certified shaver as Master
  • MJ certified shaver as Master
  • shalabh certified shaver as Master
  • sspitzer certified shaver as Master
  • caolan certified shaver as Master
  • bernhard certified shaver as Master
  • dsifry certified shaver as Master
  • trance9 certified shaver as Master
  • bryanf certified shaver as Master
  • ajv certified shaver as Master
  • alecm certified shaver as Master
  • jlbec certified shaver as Master
  • marcelo certified shaver as Master
  • phaedrus certified shaver as Master
  • sengan certified shaver as Master
  • green certified shaver as Master
  • stefan certified shaver as Master
  • Marcus certified shaver as Master
  • FORTYoz certified shaver as Master
  • ariel certified shaver as Master
  • logic certified shaver as Master
  • bribass certified shaver as Master
  • gerv certified shaver as Master
  • scc certified shaver as Master
  • trudelle certified shaver as Master
  • alecf certified shaver as Master
  • Dauphin certified shaver as Master
  • sidr certified shaver as Master
  • dneighbors certified shaver as Master
  • ordinary certified shaver as Master
  • ger certified shaver as Master
  • link certified shaver as Journeyer
  • stevegt certified shaver as Master
  • Donwulff certified shaver as Journeyer
  • dave0 certified shaver as Master
  • modus certified shaver as Master
  • ekashp certified shaver as Master
  • kmcmartin certified shaver as Master
  • zachlipton certified shaver as Master
  • opiate certified shaver as Master
  • bart certified shaver as Master
  • jedi certified shaver as Master
  • lordpixel certified shaver as Master
  • krause certified shaver as Master
  • jbourne certified shaver as Master
  • mathrick certified shaver as Master
  • Aaaarti certified shaver as Master
  • aratee76 certified shaver as Master
  • Xero certified shaver as Master
  • midal certified shaver as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page