Yesterday I happened across [eFritz's Chimera Tricks], one of the better pages of tricks and hacks for my favorite browser. The "What's Related" bookmarklet is very cool- now I'm finding some very cool sites by using it when I visit some of my favorite pages. Integrating Google API features like that into Chimera was one thing I had thought of doing once I was able to build it, now I see that I don't need to! And yes, I have managed to get Chimera to build on one machine... I'm going to make a pkg installer of all the prerequisite libraries and such and post instructions soon, so that more people can get a jumpstart on working with Chimera and CHBrowserView. One thing I want to try to do is have the user-agent string sent by Chimera to work with a ruleset, so that when I visit certain pages that block non-IE browsers, I'm sending an IE user-agent string. That would be pretty cool :) [ 1/25/2003 01:52:37 PM ] [  ]
Today we have: Abundant Sunshine. Which is kinda nice for a change. In a few minutes I should be basking on the beach and trying to forget the worries of the past week. It's been a long, nasty one, and I'm looking forward to getting it off my mind. I had root canal #2 on Tuesday, and that was pretty much the highlight of my week. So this weekend is going to be staying at home and attempting to relax and maybe get some coding done for myself for a change, the list of things I want to experiment with is getting longer and longer. [ 1/25/2003 01:49:21 PM ] [  ]
Thursday, January 23, 2003
Transparency No, I don't mean the current fad of transparent windows as you would find in MacOS X or WinXP (transparent windows and menus are a good thing if used in the correct context, check out [this paper] for a good study of that). Transparency as in integration
At one time, this was something that Apple was very good at. When Apple introduced a new API, such as QuickTime or QuickDraw3D, pretty much every existing application could take advantage of it since it was well integrated with the operating system. You could cut, copy, and paste video in most applications, for instance. QuickDraw3D was significant because it was the first- and probably only- 3D api that brought 3D to the whole desktop. You could work with 3D media in pretty much any application without any special training or software.
[OpenDoc] would have taken this a step further. [OpenDoc] was an implementation of "component software", which is a tough concept to explain. The existing model of documents and the applications that view or edit them was thrown away- documents essentially were applications with OpenDoc. For instance, inside a word processing document you would not embed a link that when clicked would launch your web browser, in OpenDoc the word processing document would contain a view of the live web page that was rendered with a web browser component. You can see a simple example [here]. So you could have an image in whatever document you were working on, and the Photoshop component would let you edit it, or the QuickTime component would let you view it, etc.
This, of course, never caught on, for reasons I won't get into. Today you have to worry about what application opens what, you have to use 3 or 4 different applications to build even a trivial web page (something to edit HTML, something to work with images, something to upload everything, a browser to view it all...), etc. Whatever happened to the idea of seamlessly bringing everything together? Why can't Excel have it's cell values filled in by an XML-RPC or SOAP call to a remote server? Why do we still have web browsers?
Maybe today we are ripe for the comeback of component software. With XML, Java, and other object oriented languages and APIs, it's easier than ever to implement a component model like OpenDoc. Why not have an XML file that embeds references to components much as HTML does?
Monday, January 20, 2003
Today I saw this article, [Is Chimera Dead?], talking about a post on [Mike Pinkerton's blog](Mike is one of the Chimera developers), wondering wether Chimera really has any life left in it. One of the points brought up is that there are only two people actively contributing to Chimera right now.
The subject of Chimera development is one I've been meaning to write about for a few weeks now, ever since seeing this article, [Mozilla hurt by Apple blast], talking about how some people affiliate with the Mozilla project were upset that Apple chose the KHTML rendering engine over Mozilla's Gecko for Safari. Now, the point that some of the Apple developers have made is that KHTML was smaller and easier to work with then Gecko (thought Gecko isn't mentioned by name):
"Not only were they the basis of an excellent, modern and standards-compliant Web browser, they were also less than 140,000 lines of code. The size of your code and ease of development within that code made it a better choice for us than other open-source projects."
Now, I can completely understand Apple's position. Especially after trying a number of times to work with something Gecko-based, including Chimera. Beleive me, I use Chimera constantly, and I would like nothing more than to give back to the project and improve on what is the best browser out there for MacOS X. But so far, I haven't been able to. Why? Let's look at what it takes to start working on the Chimera source (or any part of Mozilla). Here are the Chimera [build instructions], the starting point for getting the Chimera source and building it inside Project Builder. Let me show you what happened last week, the last time that I tried to build out Chimera. Step 1. Install Fink OK, I installed Fink just fine, even though in the past Fink has caused problems for me (it does this funny mirroring of your BSD directory structure thing that is just asking for trouble). Modify environment variables, etc. Use fink to download and install ORBit...
Last login: Tue Jan 14 15:46:10 on ttyp1 Welcome to Darwin! [psycho78:~] quellish% apt-get install orbit E: Could not open lock file /sw/var/lib/dpkg/lock - open (13 Permission denied) E: Unable to lock the administration directory (/sw/var/lib/dpkg/), are you root? [psycho78:~] quellish% sudo apt-get install orbit Password: Reading Package Lists... Done Building Dependency Tree... Done E: Couldn't find package orbit [psycho78:~] quellish%
So not only did I have to run it as root, but fink could not find the required orbit package, and a fairly determined search of various MacOS X development libraries sites didn't find it or libIDL. I did find glib, but without ORBit that would have been moot. 2. Install shared menus framework. OK, that went fine. 3. Get the mozilla source. I got the mozilla source tree from CVS, but one thing that used to be laid out beforehand that is a little bit harder to find now is that 1.5 to 2GB of space is required for a build - look at the [Unix Build Instructions]. See why Apple didn't go with Mozilla? Gecko may be a very good rendering engine, but to even build part of it you need to build pretty much all of Mozilla, and that's 2GB.
I've never been able to get Chimera to build, period. Not even the CHBrowserView class, the embedded Gecko-based NSView subclass. Chimera, unfortunately, is very difficult to work with. If I had more time and resources to just get things going with it, once I was up and running I could probably make some contributions to it that would help. What I think the Mozilla team needs to do is make their code more accessible by making every effort to make it easier for developers to download and work with - and that includes the Chimera team. Maybe a shell script or AppleScript that did all of the above steps, or a Project Builder project that had all the CVS settings built in, anything to make the above process something short of impossible! [ 1/20/2003 01:36:04 PM ] [  ]