frondoc picture

What is Frontier?
News & Updates

Web Tutorial
Scripting Tutorial
BBEdit Scripting

Mailing Lists
Sample Scripts
Verb Set
Frontier Site Outline


User's Guide
1 2 3 4 5 6
7 8 9 10 11

Apple File Edit
Main Open Suites
Web Window

Menubar Outline
Script Table WP

frondoc picture

Heath Tanner

Mr. Tanner responds to my 'How are we doing?' page.

I'm surprised you have to ask, but am glad you are. I have been meaning to write for a while now and your invitation was all the extra motivation I needed. I must apologize in advance for the length of this letter...but you asked for it.

I have been following Frontier since it was first released as freeware. I downloaded Aretha, Clay Basket, and practically every free version of Frontier up to 4.1. When the serious web site automation began to show up, I saw great promise, but I didn't see how I could put it to use for my own needs without a MAJOR time investment, both in learning and then implementing a customized solution. Nonetheless, I was convinced that the basic foundation had been laid down, it is was just a matter of time before Frontier became a full-fledged web site automation tool, powerful and flexible enough to meet a wide variety of needs.

I had gone through the online docs and tutorials several times in the last year or so, but had not gotten around to trying to use Frontier to produce a real site until recently. Then, a couple months ago, I decided I MUST automate the production of a web site I maintain, and was determined to find a solution, whatever it took. I already had a tab-delimited index of the site which I had imported into FMP, and 50 to 60 raw (no HTML or formatting) articles that needed to be marked up with proper heading and previous/next links.

My solution is only a partial automation of the process, but it still has saved me many hours. I'm still marking up the contents of the articles by hand (using BBEdit), and then use a Frontier script to loop through the FMP database, which has one record for each article in the site. For each article, Frontier:

1) loads the marked-up article from a source folder
2) adds a header and footer, containing the articles name, the author's
name, the standard site graphics for the top and bottom of the page, as
well as the link to the previous and next article in the site
3) saves the header/article/footer to the appropriate folder (the HTML folder which eventually be uploaded to the web site)

Not a very complex or sophisticated solution, but it gets the job done, and saves me hours in the process.

But the most remarkable thing is HOW quickly I managed to put the script together. Prior to this project, I hadn't done anything with Frontier beyond the basic tutorials, the "Hello Script," and a little rearranging of Frontier's menus (something I would later regret). Not having any idea how difficult it might be to implement my solution, I sat down determined to succeed no how long it took.

The first step was to figure out:

1) how to talk to FMP
2) how to create a loop based on the number of records in a FMP database

Wow. It took all of about ten minutes. I looked at the Frontier/FMP web page, and found all the information and pointers I needed there to learn how to communicate with FMP. The suites.samples.basicStuff table of Frontier had plenty of examples of looping. Within a couple hours, I had the entire thing completed and working (though it required a couple more of tweaking of the FMP calculations that created the page headers and footers).

I couldn't believe it! My previous experiences with Applescript were completely different from this. With Applescript, it was a constant struggle with syntax, or finding the command I wanted was part of yet another OSAX. Even the simplest project would turn into a major challenge, often finding myself unable to coerce my data into the proper format.

With Frontier, however, everything worked just as I imagined! I would find the appropriate command for my needs, either in the DocServer of by examining the samples scripts, and it would invariably work the first time I tried it. No endless maze of coercions: coercing a string into a path, a path into an alias, an alias back to a string. With Frontier, all I had to do was give it the right information to work with; it always knew how to handle it!

After I finally had my FMP calculations written (and debugged), I ran the script. Two minutes later, I had a new web site, a job that previously would have taken me two or three hours from that point. Here's what got produced:

(I haven't even had a chance to add the "Made with Frontier" logo, or write a short article explaining how the site is produced, but I intend to do so soon. I also have a few minor changes to make to the script, but I'm sure they will be relatively easy. Hopefully, a new issue, the second one generated by Frontier, will be up in a few days.)

BTW, one surprise caveat: my script generates a new web page for each article in the database, using the appropriate source file (which is listed in the database), and placing the new page in the destination folder. It turns out that this method works extremely well for a selective update of the site. If I want to update just a few page, all I have to do is make sure the new pages are the only ones in the "found set" in FMP. It works with the following loop:

with objectModel, Filemaker {
       articleCount = count (layout [1], record);
       for i = 1 to articleCount {
                « Page creation routine goes here
       msg (dialog.notify ("Page creation is FINISHED!"))}

One thing I can't possibly emphasize enough is how painless it was to get this Frontier script to work! It was one of the most satisfying experiences I have ever had with any software tool. Throughout the entire creation process, the only surprises were how easy it was If I wasn't sure how to use a new command, a control-double-click would reveal the answer quickly. I could even use DocServer to paste the command directly into my script. If you don't mind my stealing a line: cooool.

Now I've started with Frontier 4.1--yes, that was the subject of this letter, wasn't it?--and things are looking even better. Almost all of my wishes have been met.

First of all, I was very pleased by the reorganization of the Frontier menus. Previously, I had found the multiple entry points for different commands a little confusing. I had tried to consolidate the menus into a more logical organization, trying to remove the redundancy, but found my changes would always create a conflict with some existing script or command, so was resigned to live with the menu organization. The new menu organization is perfect!

Then, linking Frontier to the (local) online docs was another major step in the right direction, another step I had taken on my own with Frontier 4.01. Having a mirror of the Frontier web site to download also makes it MUCH easier to keep up with changes than it was before. Thanks for this wonderful source of up-to-date documentation.

Then there's MacBird. Wow. I can't believe. With MacBird, you have added the one final piece I needed to feel comfortable developing a Frontier framework for web site production for my co-workers (at I haven't had a chance to explore it at all, but opened up the MacBird application long enough to see that the learning curve will be very shallow. MacBird is one of the most intuitive interfaces I've ever seen. There's almost nothing left to explain. I can't wait to start work with it. (I'm a long-time HyperCard fan.)

What else can I say about Frontier?

I'm amazed with how many tools are ready out-of-the-box these days. After I installed Frontier 4.1 and started up Eudora, I found an entire menu of amazing commands, like "Reply to digest," "Reply to Author," "Run in Frontier," "Insert [snip]." All of this is ready-to-go, built-in, absolutely amazing. Start up MS Explorer (my browser of choice), and I'm given menu choices to edit the current page in BBEdit, paste the URL Eudora, paste the URL to the clipboard, and an easy path for adding my own commands. Frontier is quickly turning into an useful tool for even those who don't have the patience (or time) to learn scripting.

What else do I want from Frontier?

More of the same. The foundation has been laid, now it's time to fine tune it and build on top of it. With Frontier 4.1, I can't point to any particular area which needs work. All the basics are there. The application is as powerful as ever, better organized and, as a result, easier to understand. MacBird has added an interface suitable for an end-user. I can't wait to see where it will go next.

One thing I would like to see, eventually, is a MacBird version of the docs, completely linked to all the samples. I think that would be a really exciting way to learn Frontier and a great way to show-off its abilities in the process. Since the docs already exist in HTML form, I'm not sure if producing a separate MacBird would be worth the effort, but it seems like a perfect documentation interface to me. I'm looking forward to the day that MacBird interfaces have been built for most parts of Frontier. I would also like to see the desktop scripts with a MacBird interface.

Finally, I've found that the easiest way to learn Frontier, by far, is to follow the examples. The most important piece of Frontier documentation I've ever found is in suites.samples.basicStuff. To the extent it is possible, the online documentation should refer to this collection of samples frequently, and users should know that MOST of the answers to their question are contained there. I also think new users would benefit from suites.samples.basicStuff being available from the main Frontier menus. (Note: it's not enough to point a new user to suites.samples, since most of the useful and informative stuff is in the basicStuff table, I would want to make sure that EVERY new user discovers this table quickly.)

How are you doing? Remarkably well. I can't wait to see what's next.

-Heath Tanner,
Technical Director

P.S.: Perhaps it used to be more difficult, but I don't find the learning curve for Frontier that steep. I have done programming with Basic, Pascal, HyperCard, Applescript, assembly language, some C, and even a bit of Perl, and I find Frontier's scripting language is as easy as any I've ever used. The ample supply of samples combined with DocServer's capabilities makes it easier to find answers to my questions than any other programming language I've tried.

© Copyright 1996-97 UserLand Software. This page was last built on 5/7/97; 1:50:23 PM. It was originally posted on 10/14/96; 6:30:02 PM. Internet service provided by Conxion.