<div id="popup_box_thanks" style="display:none" onClick="close_popup_thanks('popup_box_thanks', 'ts')"><br>Thanks for submitting your tip! All submissions are moderated by an editor before appearing online. We've reset the form so you can enter another tip. Or you can close the tip submission box. <div class="x_close" id="thanks_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('popup_box_thanks', 'ts'); return true;">Close</a></div></div>
<div class="tbf_row"><div class="tbf_wide_extra_top not_bold">Please submit only technical tips that will help other TidBITS readers better use their Macs, iPhones, and related software and hardware. All product announcements should be sent to <a href="mailto:releases@tidbits.com">releases@tidbits.com</a>.</div></div>
<div class="tbf_left">URL</div><div class="tbf_right"><input type="text" value="" name="tip_link_url" tabindex="3"><span class="tip_description"><br>Enter the URL to a Web page that supports your tip.</span></div>
</div>
<div class="spacer"></div>
<div class="tbf_row">
<div class="tbf_left">Linked text</div><div class="tbf_right"><input type="text" value="" name="tip_link_label" tabindex="4"><span class="tip_description"><br>Enter the name of the page linked above.</span></div>
<div class="tbf_wide"><input type="submit" value="Preview Your Tip" name="preview_tip" onClick="fill_preview('tipbits_enclosure_preview', 'ts', this.form); return false;" tabindex="7"> <input type="submit" value="Send Us Your Tip!" name="submit_this_tip" onClick="handle_tip_submission('ts', '', this.form, 'tip'); return false;" tabindex="8"></div>
</div>
<div class="spacer"></div>
<div class="tbf_row">
<div class="tbf_wide"><span class="fine_print">When you submit a tip, you give us permission to use it. Read <a href="javascript:void(0)" onClick="generic_show_hide('tip_terms')">our terms</a> for more details. All submissions are reviewed before publication.</span></div>
<div class="tbf_wide"><span class="fine_print">Our terms: By submitting a tip, you agree to assign TidBITS Publishing Inc., a non-exclusive, worldwide, perpetual license to reproduce, publish, and distribute your tip in connection with the TidBITS Web site and associated products in any media. You agree that you created the content you submitted, and that you have the right to assign us this license. You give us permission to use your name, but your email address won't be publicly displayed or shared. We review all submissions before publication, and reserve the right to select which submissions we feel are appropriate for our readers and to edit those we publish.</span></div>
<div id="comment_thanks" style="display:none" onClick="close_popup_thanks('comment_thanks', 'comm')"><br>Thanks for submitting a comment! Please check your email for a link that, when clicked, will verify that you're a real person and cause your comment to appear immediately. <div class="x_close" id="comment_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('comment_thanks', 'comm'); return true;">Close</a></div></div>
<div class="tbf_wide"><span class="fine_print">Our terms: We reserve the right to edit or delete any comment, so please post thoughtfully. We use your email address <i>only</i> to send you a one-time verification message confirming that you posted this comment. We also store your address to allow you to verify using other Web browsers in the future. For more info, see our <a href="http://db.tidbits.com/privacy.html">privacy policy</a>.</span></div>
<li><a href="/feeds/tidbits.rss" title="Subscribe via RSS" class="gettb">RSS <img src="/images/feed-icon-12x12.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe via RSS"></a></li>
<li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=276986548" title="Subscribe to the podcast" class="gettb">Podcast <img src="/images/feed-icon-12x12_podcast.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe to the postcast"></a></li>
<li><a href="http://www.twitter.com/TidBITS" title="Get Article Updates via Twitter" class="gettb">Twitter <img src="/images/feed_icon_12x12_twitter.png" width="12" height="12" border="0" class="nav_img" alt="Get Article Updates via Twitter"></a></li>
<li><a href="http://www.facebook.com/pages/TidBITS/195314925519" title="Go to the TidBITS Page at Facebook" class="gettb">Facebook <img src="/images/feed_icon_12x12_facebook.gif" width="12" height="12" border="0" class="nav_img" alt="Go to the TidBITS Page at Facebook"></a></li>
<li><a href="javascript:void(0)" title="Sections" class="tabhead" onClick="return showhide('articleslist')">Sections <span id="articleslist_triangle"><img src="/images/nav_triangle_open.gif" width="9" height="9" border="0" class="navtriangle" id="articleslist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
<li><a href="javascript:void(0)" onClick="return showhide('stafflist')" title="Staff" class="tabhead">Staff <span id="stafflist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="stafflist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
<li><a href="javascript:void(0)" title="Issues" class="tabhead" onClick="return showhide('issuelist')">Weekly Issues <span id="issuelist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="issuelist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
<li><a href="javascript:void(0)" onClick="return showhide('abouttidbits')" title="About TidBITS" class="tabhead">About TidBITS <span id="abouttidbits_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="abouttidbits_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
<div class="center_top">Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the best-selling <a href="http://www.takecontrolbooks.com/?pt=TB-TAGLINE" style="color:yellow">Take Control</a> ebooks.</div>
<!-- begin centercolumn -->
<div id="centercolumn">
<!-- begin rightcolumn_container -->
<div id="rightcolumn_container">
<!-- begin rightcolumn -->
<!-- rightcolumn is embedded within centercolumn so featured text wraps around it -->
</div><!-- end tearoffbox_wide_container for watchlist items -->
<!-- begin tearoff box wide -->
<div class="tearoffbox_wide_container">
<div class="tearoffbox_wide_tips">
<div class="tip_display">
<div class="tips_sponsor_logo">
</div>
<h6>Constant Dictionary Definitions</h6>
<p>If you hold down Command-Control-D in a Cocoa-based application that supports AppleSpell, you'll see little dictionary pop-ups for each word that you mouse over. Neat, eh?</p>
</div>
<div class="tearoffbox_wide_bottom_tips">
<div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/23">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
<p class="credit">Written by<br><a href="/author/Adam%20C.%20Engst">Adam C. Engst</a></p></div></div>
<div class="tbf_wide_80" id="hc_rc_2953">To help us avoid automated posts and misuse of our site, please enter the words below.</div><div class="x_close_row" id="hc_upper_right2_2953"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_2953', 'hc', '2953'); return true;">Close</a></div>
<div id="article_box_2953"><P>In recent TidBITS issues, I've been sharing my world view about software that makes Web pages. I started with text editors in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-384.html">TidBITS-384</A> and continued with visual editors in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-386.html">TidBITS-386</A>. In <A HREF="http://www.tidbits.com/tb-issues/TidBITS-387.html">TidBITS-387</A>, I looked at GoLive's CyberStudio from the page building angle, but CyberStudio also includes site management features, and I promised to cover them soon in tandem with other competitors. First, however, it's time to check out Frontier, which offers a unique environment for Web publishing.</P><P><<A HREF="http://www.scripting.com/frontier/">http://www.scripting.com/frontier/</A>></P><P><STRONG>Understanding Frontier</STRONG> -- Frontier 4.2.3 is a free, smart database. The software is free because UserLand Software founder Dave Winer decided to release it that way (see <A HREF="http://www.tidbits.com/tb-issues/TidBITS-279.html">TidBITS-279</A>); it's smart because it uses Apple events and a built-in scripting language (UserTalk) to control most anything; and it's a database because it stores information. Frontier is widely used in the Macintosh scripting community, and its users are often passionate about its merits, which include the ability to store components of a Web site and convert them into a complex, automated Web site.</P><P><<A HREF="http://www.scripting.com/frontier/snippets/features.html">http://www.scripting.com/frontier/snippets/ features.html</A>></P><P><STRONG>Exploring Frontier</STRONG> -- You begin exploring Frontier by opening its main table (called the "root"). The root contains entries, each having a kind and a value. For example, one such entry, named "readme," is of the kind "wp text" (word processing text), and if you double-click it, a window opens showing the text and a WP menu appears offering a few word processing commands. Web publishers using Frontier may create and store HTML in wp text entries elsewhere in the database.</P><P>Another category in the root, called "user", is of the kind "table" and double-clicking it opens another table filled with user-related items. For instance, one such entry, "organization," took on the value "TidBITS" when I personalized Frontier. Similar entries in other locations let you set how Frontier will publish Web pages. You can navigate Frontier by working through a large hierarchy of tables, or through an outline that reveals and hides different portions of the database.</P><P><STRONG>The Key to the Treasure</STRONG> -- Table entries can also be "verbs," commands that are "called" in Frontier scripts. Using Frontier scripts, a capable scripter can automate most anything on a Macintosh, including other applications. Scripts can be run in different ways: from menus, by opening them in Frontier and clicking the Run button, or by typing their names into Frontier's Quick Script window. Or - to jump ahead of myself slightly - you can call them as you "render" a Web page.</P><P>Matt Neuburg, TidBITS Contributing Editor and experienced Frontier user, has commented that "Frontier is the command line to your Macintosh." The following four points are from his comments:</P><UL><LI><P>Frontier can drive the System and Finder. It can create, read, copy and delete files, set their types and creators, find out what time it is on your clock, read the clipboard, and more.</P><LI><P>Frontier's functionality is available everywhere. It can put menus into other programs, and it can even make double-clickable pseudo-programs.</P><LI><P>Frontier talks Apple events much faster than AppleScript does. If an application is scriptable, Frontier can drive it and ask it questions.</P><LI><P>Frontier can receive Apple events, which means you can drive Frontier from other applications. Webmasters can use Frontier to process form requests sent in from people browsing Web sites. For instance, one of the top entries in the TidBITS search engine contest (see <A HREF="http://www.tidbits.com/tb-issues/TidBITS-380.html">TidBITS-380</A>) worked this way: Someone searching the TidBITS Web site clicks the search button, WebSTAR (the server software) talks to Frontier, Frontier consults a FileMaker database containing TidBITS issues, and - based what it finds in FileMaker - constructs a new Web page, which it gives to WebSTAR. WebSTAR then sends the page back to the browser.</P></UL><P>Frontier's ability to automate most everything, combined with the hierarchical nature of its database, makes it a unique tool for Web publishing. If you use Frontier as a site management tool, you can work from the inside or the outside.</P><P><STRONG>Working from the Outside</STRONG> -- Working from the outside is easier, because you don't have learn to become a competent Frontier user. To work from the outside, you use BBEdit (from Bare Bones Software) to create pages, but you employ the Frontier-created Sites menu in BBEdit to "render" the final site from the raw HTML created in BBEdit.</P><P><<A HREF="http://www.barebones.com/bbedit.html">http://www.barebones.com/bbedit.html</A>></P><P>It won't take long to learn the basics of rendering. When Frontier renders a raw HTML page (or group of pages) into a site, it employs a complex series of processes and filters that make (optional) changes such as:</P><UL><LI><P>Uniform top and bottom matter appears on each page.</P><LI><P>Entities replace upper-ASCII characters in the raw HTML (a useful feature especially for people who write in languages like French).</P><LI><P>Macros that call Frontier scripts are replaced by their results. (For instance {clock.now()} returns the current date as a result, and there's a script that inserts image tags with automatically generated height and width attributes.)</P><LI><P>Email addresses and URLs convert to links.</P><LI><P>Quoted text is replaced by an item in a Frontier glossary (yet another Frontier table). For instance, I might want "TidBITS" to be replaced by a link to the TidBITS home page.</P></UL><P>If you work in BBEdit, you need not ever explore Frontier, and these features are readily available. If you choose to work inside Frontier, after you get set up, you probably could mostly work from BBEdit as well.</P><P><STRONG>Working from the Inside</STRONG> -- You can use any software you like to create the raw HTML pages stored in Frontier, and then switch to Frontier to take advantage of Frontier's hierarchical approach. Frontier stores each HTML page as a table entry. When you render a site, those entries become separate Web pages, organized in a folder structure that mirrors the structure used in Frontier.</P><P>(I've simplified a lot in the paragraph above- rendered pages can be constructed from scripts, or from "outlines." Scripts can assemble pages from most anything you've created or scripted, and outlines have many uses, but I'm not going to delve into them in this article.)</P><P>However, using Frontier's hierarchy goes much deeper. For instance, you can have more than one Frontier glossary, and Frontier replaces quoted text based on the glossary located closest to the raw HTML file. (If the glossary isn't in the same table as the raw file, Frontier looks up one level, and keeps looking up one level until it finds a glossary.)</P><P>Hierarchies also play a big roll when you use "directives." A directive is a table entry that notes how you want to handle a general aspect of a group of Web pages, such as the background color. A directive can also be placed directly in a raw HTML file. When a raw HTML page renders, directives defined inside it always take precedence. But, if a directive is not defined, the page looks in and up the hierarchy for a definition. Using directives, it's easy to give one branch of a site an orange background and another a green one.</P><P>My brain starts to hurt at this point, so rest assured that I've but rippled the surface here. I haven't mentioned templates, the ability to include one file inside another, or the ability to create an HTML-ized site outline. Templates are an especially key feature, and I leave them as an exercise to interested readers.</P><P><STRONG>Rendering</STRONG> -- When a page renders, several filters and processes take place, including running any macros that you've stuck inside it (or its template). This has millions of uses.</P><P>As an example, take the new TidBITS home page, which regenerates every hour. Each time the page regenerates, it gets a new, automatically assembled graphic. The new graphic has one of several slogans and a callout to an especially interesting article (or group of articles) that you might want to read. The graphic uses a client-side image map, so new HTML must be created for each new version of the page. Although Geoff Duncan did the work in AppleScript and HyperCard, Frontier could also do the job.</P><P>As another example, consider this note from Pam McAllister <<A HREF="mailto:pmcallister@pugetsound.org">pmcallister@pugetsound.org</A>>:</P><BLOCKQUOTE>I started using Frontier a few months ago. It took several days to learn the system and import my sites, but now I can handle updates and additions in a fraction of the time it took before. I've added many features, such as indexes of parts of the site, that I would never have time to do manually. I also wrote a Frontier script that puts all the pages into a FileMaker database, which is then searchable on the Web site (using Lasso). Even as a novice scripter, that project took only a few hours. [Check out the SoundWeb site for an example of what Pam has been working on.]</BLOCKQUOTE><P><<A HREF="http://www.pugetsound.org/">http://www.pugetsound.org/</A>><BR><<A HREF="http://www.blueworld.com/lasso/">http://www.blueworld.com/lasso/</A>></P><P><STRONG>Complexity</STRONG> -- Learning Frontier reminded me of the Far Side cartoon where a student asks to be excused from class, saying that his "brain is full." My ascent up the learning curve was facilitated by an online tutorial created by Matt Neuburg.</P><P><<A HREF="http://www.scripting.com/matt/webtutorial/">http://www.scripting.com/matt/webtutorial/</A>></P><P>(Matt is currently under contract with O'Reilly Associates to write the first book about Frontier. The book should come out in tandem with the upcoming release of Frontier 5.)</P><P><STRONG>Is It for You?</STRONG> To summarize, Frontier's structure makes it easy to organize HTML pages created in other programs (or in Frontier, though the tools are limited). Once your site lives in Frontier - if you set things up correctly - it's easy to move pages or other resources within the database and to change elements that appear on multiple pages. It's also possible to create Next and Previous links throughout a collection of pages that will be navigated serially. Sites can be rendered to a local folder or via FTP to a remote site. You can render by page, by table, or by what's changed since you last rendered. Frontier is a natural at page rendering that requires automation, especially if multiple applications must work together.</P><P>Frontier is pleasant enough to work in, but whether it's worth the time investment to learn depends on the nature of the site. About halfway through my research for this article, I thought Frontier's seemingly boggling array of tables needed an nice user interface badly. A day later, though, it seems accessible and useful. However, if I hadn't already had a good understanding of hierarchies, HTML, macros, and general scripting terms, I would have given up. Further, it's difficult to remember how to use Frontier for running a Web site because the commands aren't obvious on the menus and in the dialog boxes.</P><P>You can import a existing site into Frontier, but you must recreate a lot of work by hand to take advantage of Frontier features. Frontier also lacks a few features that you might require. There's no visual view that shows how pages and resources relate to one another, using a spider's web or organizational chart analogy. There's no tracking mechanism for noting which pages are done or who's working on them. Creating unbreakable relative links in Frontier requires working with macros, whereas in other programs, you just drag a picture representing the link destination to the link source. Frontier also lacks a site-wide Find-and-Replace command and spelling checker, as well as a link checker and an HTML checker/validator, though I'm confident that knowledgeable Frontier users can work around those limitations by integrating Frontier with other applications.</P><P>Next time, I'll return to the site management features in CyberStudio and also look at other site management software.</P><!-- Spinning the Web Part 5: New Frontiers Tonya Engst --></div>
<!-- end article text -->
<!-- PayBITS -->
<p> </p><div class="sponsorbox">
<div class="sponsortext"><A HREF="http://www.smithmicro.com/tidbits"><IMG SRC="http://db.tidbits.com/images/badges/StuffItDeluxe2010.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>StuffIt Deluxe 2011 has everything you need to backup, encrypt,<br />share, and compress all of your photos, audio and documents.<br />Compress it. Secure it. Send it. Try StuffIt Deluxe 2011 today!<br />Click here for a free 30-day trial: <<a href="http://stuffIt.com/tidbits/">http://stuffIt.com/tidbits/</a>></div>