Day Two - Friday, October 6, 2000

Morning Keynote Address

I'll be honest -- I'm pretty dead this morning. I missed the first little bit of the morning keynote because Chuck Miller and I were on a search for coffee, which we both needed desperately. After we found some, which came in pathetically tiny cups (you know those kind that your Grandmother might use that hold about the same as a tea cup? Yeah... for some of us that is one gulp.) Anyway, I missed the 4D WebSTAR stuff that was presented at the beginning of the keynote... sorry about that. I did see something about Perl support and a bunch of other neat new features in the next version.

4D on MacOS X Demo

The demo gods smiled on Brendan Coveney today, and his demo from yesterday that didn't want to do it made it just fine today. Man, it sure looks cool... 4D is all Aqua-ized, and seeing it run on MacOS X sure was neat. Here are the specifics: the Aqua user interface elements, like the cool scroll bars and the buttons, all work great inside 4D forms. 4D itself appears all Aqua-ized, too. Some of the internal application graphics have been updated to look all cool and 21st century and everything, but some have not... it's a work in progress, but what a work in progress!

Doug Hall from Alabama gave me these screen shots, so here they are -- you can make out the Aqua-ized interface just fine. Note that unlike the other pictures I have been hosting, these are click-through -- click on them and you'll get a larger image, all the better for you to see the nice-looking interface.

 

Jean-Yve Fock-Hoon, who is on loan from 4D SA in France to 4D, Inc. in San Jose, gave the next demonstration, as narrated by Brendan. They showed the DataCraft demonstration from yesterday, which was very nice-looking (as we would expect from DataCraft). It ran just fine on on MacOS 9, and then the same exact code, no changes necessary, was shown running on MacOS X -- Aqua-ized. Brendan emphasized this aspect very clearly: there will be no changes neccesary in moving 4D code from MacOS 9 to MacOS X. This is subtly profound: we developers will need to do absolutely nothing to take advantage of the new Macintosh operating system. All other Macintosh developers are, as I write this, either worrying about porting or actually porting their applications, which is certianly a significant effort. But we 4D developers are already ported. Hooray! Bravo, 4D!

Brendan also emphasized the commitment that 4D, Inc. has with the third-party plug-in developers and those who depend on their products: 4D, Inc. will be working closely with plug-in vendors to assist them in the process of moving their products to MacOS X, which he said would be very straightforward. It seemed to me that 4D, Inc. is really trying hard to make sure that the 4D community does not experience the "difficulties" with certain other previously available plug-ins that had become quite strategic for some developers . (Ahem.)

PowerView Demo

Next Brendan showed us an interesting demonstration. It was a database that had one form with two tabs. One tab contained an AreaList object, and the other contained a 4D Calc object. The demo performed a few manipulations, which were pretty typical: insert some data in some cells, change the color, sort, etc. Then, he quit the database, and opened up the Mac4DX folder. Inside were, as expected, the AreaList plug-in and the 4D Calc plug-in. He removed them and replaced with with a plug-in called PowerView. Then he restarted the database. And then he did the same demo, step-for-step. Then, just so we'd believe him that it was for real, he said, he showed us the source code. Sure enough, there were the familiar AreaList commands in the method, along with the 4D Calc commands. This new plug-in was neither AreaList nor 4D Calc -- but it was command-level compatible with them both! And, it executed the same operations noticably faster! The crowd was stunned for a moment, and then broke into uproarious applause! This is absolutely fabulous! Brendan didn't give details on any pricing or availability, but was it good just to see. Then, he ran another demo that used the new features of PowerView, the ones that go beyond AreaList and 4D Calc. I saw an AreaList-like object on a form with both horizontal and vertical splitters, among some other interesting animations that went by pretty quick... I can't wait to see more.

I am again indebted to Doug Hall to these very nice screen-shot style pictures of the PowerView demo. These are also click-through pictures: click them to get a more legible image.

 

The 4D Calc tab

The AreaList tab

The source code to prove it.

The cool new PowerView extensions... note the split panes, both horizontal and vertical.

 

Jean-Pierre Boureau of 4D SA sent these much better screen shots of PowerView. Click through for a better image!

#1

#2

#3

 

 

 

Web Storefront Demo

Brendan then introduced Stephan Benhaim and Alban Liger from 4D SA, who demonstrated another new component, a full-featured web storefront for 4D. Stephan explained that it was code-named "Yapee", and then he and Alban put it through its paces. It was very full-featured, and supported session management, shopping cart management, and much more. The web site looked very nice, and reminded me of the Yahoo store -- given the name, I wonder if it wasn't the inspiration. The flow was pretty nice, if demonstrated somewhat briefly... it had the feel of something that wasn't intended to be a demo, but instead was intended for real production. Stephan didn't say when or how, but like Dave Robbins' Web Assistant, this will be made available to developers as a new component at some point in the near future. Good job, Stephan and Alban!

Special Thanks to the Hotel AV Staff

That was the end of the keynote! Brendan looked very relieved that it went off so well (compared to yesterday), and gave special thanks to the AV staff who apparently spent the whole night re-working every bit of AV setup in all the conference rooms. Sheesh! Thanks, AV people! Way to go!

There's a certain special magic to this keynote

There was a certain special quality to this morning's keynote... it felt like the days of yore, when 4D Server was being introduced, when we were all flying high on 4D. It's hard to qualify, but it's there -- a certain magic to the demonstrations... a confluence of new people, high interest, cool new features, and special support for plug-in developers. Morale is particularly high, and it feels very good to be a 4D developer today. This is the sort of thing that money just can't buy, and it is very, very good to have around.

Reactions and Rumors

I talked with Jody Bevan about his reactions to the Summit so far, and he was most relieved to see the PowerView. His applications rely heavily on AreaList (whose don't!) and so for him, to see the future of ALP being well-supported was very good indeed.

I also heard from Brendan Coveney that the one time it actually rains all year in San Diego looks to be today, and that the backup plan for the beach party at Mission Beach tonight will be to have it at the Aeronautical Museum, which is in Balboa Park not far from here. It would rain during the week we're here!

Morning Sessions

Cruising Newsgroups: An exercise in Accelerated Text Parsing with BLOBs, by Tim Tonooka

Tim Tonooka started out with a microphone test in which he quoted, from memory, the lyrics from an Elvis Presley song, "Are you lonesome tonight." It came across a lot like beat poetry, and the crowd was delighted and gave a great round of applause when he was done. This has to be the physical embodiment of the Quintessential Spirit of Tim Tonooka: a mix of Japanese and American culture, combined with deep understanding and humility -- but with a flair for the dramatic.

[Note: Tim told me later that this particular Elvis song is a good one to attempt at a Karaoke Bar is you can't sing too well. Since much of the "song" is spoken, even those who couldn't carry a tune in a bucket can pull it off.]

Tim's presentation focused on making a USENET News Group reader for 4D, which he has put together, and calls News Jockey. It's very full-featured! But the real story is with the code behind it, the BLOB-as-text parsing and manipulation machinery.

Tim's News Jockey is really impressive -- he has written an absolutely full-featured newsgroup reader, which has the capability to download binary files as well. As an example he used one of the alt.binaries.pictures groups (no, not one of the porn groups), alt.binaries.pictures.autos. News Jockey downloaded pictures of cars live off the Internet, using Tim's code that parsed the UUEncoded attachments very quickly. The News Reader program even showed thumbnails of the images! I sat with Dan Katz, Ken DeCesare, and Sam Burnell. We were all enchanted with Tim's program, especially with all the really cool car pictures that kept flipping by.

Tim had some statistics: using a simple loop to reference each character, accessing a BLOB took 105% longer than accessing a text variable on Windows, and 180% longer on a Mac. He also warned against using too many conversions between Ascii, Char, Num, String, etc., and encouraged us to use only one mechanism to convert characters to bytes and back, namely that of Ascii or Char.

Tim also encouraged us to consider strategies for searching, and used the analogy of finding your car (go figure) in the airport parking lot. Searching from the beginning, car by car, is not exactly efficient. As an example, he presented the Boyer-Moore search algorithm, which uses the search parameter to skip sections of the argument text that don't match. He went through the 4D tech note on this subject, pointing out where is was broken and how it could be improved.

Tim reviewed the resources available for searching BLOBs as text, and mentioned the work done by Steven Willis, John Macrae, Ed Berard, and others. He also mentioned that Escape Information Systems is going to be coming out with a new free plug-in called "QFree" that includes, among other things, a REGEXP processor. He is looking forward to this, he said, and encouraged us to look for it when it is announced tomorrow.

Tim then went through the News Jockey BLOB processing code, which he says is used to parse every bit of text that comes through the program.

Tim went though qite a bit of his code, and fielded questions from the audience. The questions varied greatly, and ranged from memory optimizatin techniques to how to implement the NNTP protocol in detail. When asked how long he took to make News Jockey, Tim explained that since he injured his ankle in May, and since he had nothing to do with his summer, he spent about 16 weeks of sleeping 2 to 6 hours a night, hacking away at News Jockey, all on his personal time. I must say, it is a particularly full-featured and beautiful database, and serves as an example of how to do things right. Bravo, Tim! Well-done!

Lunch

For lunch, Webwoman and I hung out with Laurent Ribardère, Ken Johnson, Brian Campbell, Volker Freimann, Greg Bergantz, and John Steele. While munching on the build-it-yourself sandwiches that comprised the lunchtime fare, we swapped stories about Sea World, the San Diego Zoo, and the Wild Animal Park. Later, the discussion turned to website technologies and how to best use 4D in that environment. Sheri Dell and Steve Campbell dropped by and sat with us for a while, too. It was a good lunch, if simple, especially because there was no waiting -- all the food was already there. (We had to stand in line the day before.) Afterwards, happily satiated Summiteers ambled off to the next round of sessions. I did, too, with coffee cup in hand. Mmmm... coffee...

Afternoon Sessions

Plug-Ins and 4D: New Entry Points by Aparajita Fishman

After lunch, I checked out Aparajita Fishman's presentation on the new 4D plug-in architecture. It is very nice. Aparajita explained that François Marchal of 4D SA put together the new architecture and its accompanying documentation. It has been completely re-written and re-organized, and dozens of formerly undocumented entry points are now exposed in the API and explained in the docs. Some of the major areas that are now explained are Dialogs, Internal Resource Access, and Serial Key Access.

Dialogs are a way for a plug-in developer to use 4D's user interface, both forms and scripts, from within a plug-in. Instead of needing to use operating-system-level calls to create and manage complex user interfaces (forms, dialogs, and alerts), plug-in developers can use 4D itself to do "the hard part", link it in to their plug-in, and voila! No more cross-platform interface issues... this is a huge improvement over the alternatives and a welcome boon to plug-in developers everywhere.

Internal resources are the MacOS-like resources that 4D uses inside its own structure file. The new API has a section of new calls that allows access to these internal resources. For example, the forms and methods are stored inside a structure file in this way. While complex, this will allow plug-in developers access to structure file information in a way that will undoubtedly spawn some interesting new plug-ins.

Serial Key access is something new and long-awaited... now plug-in developers will have access to the serialization information stored internally within 4D. This means that it will be possible to key a plug-in to the serial number of the copy of 4D in which it's installed. When I asked if this applied only to 4D Server, Aparajita deferred the question to François, who said that no, it applies also to stand-alone 4D. This is an item that has been specifically requested by plug-in developers for a few years now, and it is very good to have. Tim Haratine can now get a new calendar.

Aparajita then demonstrated how to use the new API by writing a small plug-in. It looked pretty easy to do. Aparajita showed us how to use the new Plug-In API and the tool that comes with it, a special 4D database called the Plug-In Wizard that assists in creating compiler project documents with the correct settings for plug-in work. The Plug-In Wizard also manages and generates the resources necessary for 4D to recognize the plug-in as a plug-in. This is especially useful on Windows, where no MacOS style resource editor exists.

Aparajita next explained how to use 4D 6.7 to export a form and its scripts (and other resources) for use by a plug-in. The new 4D has a special command (command-9) that converts the forms and associated resources into MacOS resources and then exports them to a special resource file. He showed how to integrate this into a Metrowerks CodeWarrior project file, and exemplified this by building a small plug-in right on the spot that used a form he built in 4D.

Special thanks should go to François Marchal for putting together such a nice new plug-in API. It's a breath of fresh air to have all this new plug-in information... as well, Aparajita Fishman deserves credit for explaining it so well to us all. Merci, François! Thanks, Aparajita!

Pictures