home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbart=02699.orig < prev    next >
Text File  |  2010-09-23  |  50KB  |  837 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.         "http://www.w3.org/TR/html4/loose.dtd">
  3.  
  4. <html lang="en">
  5. <head>
  6.     <meta http-equiv="content-type" content="text/html;charset=utf-8">
  7.     <meta http-equiv="Content-Language" content="en">
  8.     <title>TidBITS : Spinning the Web Part 5: New Frontiers</title>
  9.  
  10.     <meta name="title" content="TidBITS : Spinning the Web Part 5: New Frontiers">
  11.     <meta name="description" content="TidBITS is a free email and Web publication covering the Macintosh Internet community.">
  12.     <link rel="image_src" href="/images/tblogo9.gif" />
  13.     <meta name="keywords" content="Apple, Mac, Macintosh, Mac OS, Mac OS X, newsletter, Internet, analysis, reviews, technology, news, TidBITS, TidBITS Talk, Engst">
  14.     <link rel="Help" href="http://www.tidbits.com/about/about-tidbits.html" title="About TidBITS">
  15.     <link rel="Search" href="http://www.tidbits.com/search/" title="Search All TidBITS Content">
  16.     <link rel="Author" href="http://www.tidbits.com/about/contact-info.html" title="Contact Information">
  17.     <link rel="Contents" href="tb-issues/" title="TidBITS Issue Archive">
  18.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/feeds/tidbits.rss" title="TidBITS Full Text Feed">
  19.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/commentfeeds/firehose.xml" title="TidBITS Full Comments Feed">
  20.  
  21.     <link rel="stylesheet" href="/tidbits_2010_001.css" type="text/css">
  22.     <LINK rel="stylesheet" type="text/css" media="print" href="/tb-new-print.css">
  23.     <script src="/javascript/tb.js" type="text/javascript"></script>
  24.     <meta name="viewport" content="width:940">
  25.     <script type='text/javascript' src='http://db.tidbits.com/ads/delivery/spcjs.php?id=2'></script>
  26.     <script src="/javascript/prototype.js" type="text/javascript"></script>
  27. <script src="/javascript/scriptaculous.js" type="text/javascript"></script>
  28. <script src="/js-global/FancyZoom.js" type="text/javascript"></script>
  29. <script src="/js-global/FancyZoomHTML.js" type="text/javascript"></script>
  30. <script type="text/javascript"  src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>
  31.  
  32. </head>
  33. <body onLoad="setupZoom()">
  34. <!-- popup query -->
  35. <div id="big_ole_background" style="display:none"> </div>
  36. <div id="tipbits_enclosure_preview" style="display:none">
  37. <div class="tearoffbox_wide_container">
  38. <div class="tearoffbox_wide_tips">
  39.  
  40. <div class="tip_display">
  41. <div class="preview">
  42. <h6><span id="p_tips_title"></span></h6>
  43. <p id="p_tips_text"></p>
  44. <p>Visit <a href="javascript:void(0)" id="p_url"><span id="p_label"></span></a></p>
  45. <p class="credit">Submitted by <span id="p_reader"></span></p>
  46. <p><input type="submit" value="Back" name="preview_tip" onClick="preview_box('ts','tipbits_enclosure_preview'); return false;"></p>
  47. </div>
  48. </div>
  49. <div class="tearoffbox_wide_bottom_tips">
  50. </div>
  51.  
  52. </div><!-- end tearoffbox_wide_tips -->
  53. </div><!-- end tearoffbox_wide_container for tips-->
  54. <!-- end tearoff box wide -->
  55. </div><!-- end enclosure -->
  56.  
  57. <div class="popup_box_with_captcha" id="ts" style="display:none">
  58.     <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>
  59.     <div class="tip_box_format">
  60.     <div id="ts_innards" onClick="close_popup_thanks('popup_box_thanks', 'ts')">
  61.         <div class="tip_box_head">TipBITS Submission</div>
  62.         <div class="tip_box_form">        
  63.                 
  64.             <div class="tbf_row" id="ts_message_box" style="display:none">
  65.                 <div class="tbf_wide"><div class="tbf_alert" id="ts_top_message"></div></div>
  66.             </div>
  67.             <div class="spacer"></div>
  68.  
  69.             <form action="foobar.cgi" method="get" name="submit_tip">
  70.  
  71.             <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>
  72.             <div class="spacer"></div>
  73.             <div class="tbf_row">
  74.                 <div class="tbf_left">Tip title<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" id="tip_title_id" name="tip_title" tabindex="1"></div>
  75.             </div>
  76.             <div class="spacer"></div>
  77.             <div class="tbf_row">
  78.                 <div class="tbf_left">Your tip<span class="required_field">*</span></div><div class="tbf_right"><textarea name="tip_text" rows="3" cols="40" tabindex="2"></textarea></div>
  79.             </div>
  80.             <div class="spacer"></div>
  81.             <div class="tbf_row">
  82.                 <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>
  83.             </div>
  84.             <div class="spacer"></div>
  85.             <div class="tbf_row">
  86.                 <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>
  87.             </div>
  88.             <div class="spacer"></div>
  89.             <div class="tbf_row">
  90.                 <div class="tbf_left">Your name<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_name" tabindex="5"></div>
  91.             </div>
  92.             <div class="spacer"></div>
  93.             <div class="tbf_row">
  94.                 <div class="tbf_left">Your email<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_email" tabindex="6"></div>
  95.             </div>
  96.             <div class="spacer"></div>
  97.             <div class="spacer"></div>
  98.                 <div class="tbf_wide"><span class="fine_print"><span class="required_field">* indicates required fields</span></span></div>
  99.             <div class="spacer"></div>
  100.             <div class="tbf_row">
  101.                 <div class="tbf_wide_extra_top"><span class="fine_print">To help us avoid automated posts and spam, please enter the words below.</span></div>
  102.             </div>
  103.             <div class="spacer"></div>
  104.             <div class="tbf_row">
  105.                 <div class="tbf_wide"><div id="ts_recaptcha"></div></div>
  106.             </div>
  107.             <div class="spacer"></div>
  108.             <div class="tbf_row">
  109.                 <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>
  110.             </div>
  111.             <div class="spacer"></div>
  112.             <div class="tbf_row">
  113.                 <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>
  114.             </div>
  115.             
  116.             <div class="tbf_row" id="tip_terms" style="display: none">
  117.                 <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>
  118.             </div>
  119.             <div class="spacer"></div>
  120.             </form>
  121.         </div><!-- end tip_box_form -->
  122.     </div><!-- end tip box innards -->
  123.     </div><!-- end tip box format -->
  124.     
  125.     <div class="x_close" id="ts_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('ts', 'ts', ''); return true;">Close</a></div>
  126.     
  127. </div><!-- end tip_submit box-->
  128.  
  129. <div class="popup_box_with_captcha" id="article_reference" style="display:none"><div class="article_ref_format"><textarea style="width:350px; height:100px;" name="article_ref" id="article_ref_box"></textarea></div>    <div class="x_close" id="article_reference_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('article_reference', 'article_reference', ''); return true;">Close</a></div>
  130. </div>
  131.  
  132. <div class="popup_box_with_captcha" id="comm" style="display:none">
  133.     <div class="tip_box_format">
  134.     <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>
  135.     <div id="comm_innards" onClick="close_popup_thanks('comment_thanks', 'comm')">
  136.         <div class="tip_box_head" id="comm_headline">Post a Comment</div>
  137.         <div class="tip_box_form">        
  138.                 
  139.             <div class="tbf_row" id="comm_message_box" style="display:none">
  140.                 <div class="tbf_wide"><div class="tbf_alert" id="comm_top_message"></div></div>
  141.             </div>
  142.             <div class="spacer"></div>
  143.  
  144.             <form action="foobar.cgi" method="get" name="post_comment" id="post_comment">
  145.             <input type="hidden" name="comment_nest" value=''>
  146.             <input type="hidden" name="comment_id" value=''>
  147.             <input type="hidden" name="article_id" value='2953'>
  148.             <input type="hidden" name="edit" value=''>
  149.             <div class="tbf_row">
  150.                 <div class="tbf_left">In reply to</div>
  151.                 <div class="tbf_right">
  152.                     <div id="cb_quoted_row">
  153.                         <div class='cb_open_quote'>“</div>
  154.                         <div id="cb_quoted"></div>
  155.                         <div class='cb_close_quote'>”</div>
  156.                     </div>
  157.                     <div class="spacer"></div>
  158.                 </div>
  159.             </div>
  160.             <div class="spacer"></div>
  161.  
  162.             <div class="tbf_row">
  163.                 <div class="tbf_left" style="padding-top:0">Your comment</div>
  164.                 <div class="tbf_right"><textarea tabindex="1" name="cb_item_add" id="cb_item_add" rows="4" cols="50" onKeyDown="count_insert('cb_item_add','cb_char_count')"></textarea><br><div class="cb_char_count" id="cb_add_count">Remaining characters: <span id="cb_char_count">0</span></div></div>
  165.             </div>
  166.             <div class="spacer"></div>            
  167.  
  168.             <div class="tbf_row">
  169.                 <div class="tbf_left">Your name</div><div class="tbf_right" style="margin-top:8px"><input tabindex="2" type="text" value="" name="cb_add_name" id="cb_add_name" style="margin-top: -4px"></div>
  170.             </div>
  171.             <div class="spacer"></div>
  172.             
  173.             <div class="tbf_row">
  174.                 <div class="tbf_left">Your email</div><div class="tbf_right"><input tabindex="3" type="text" name="cb_add_email" id="cb_add_email"></div>
  175.             </div>
  176.             <div class="spacer"></div>
  177.             
  178.             <div class="tbf_row">
  179.                 <div class="tbf_left"> </div><div class="tbf_right"><input id="comm_post_comment" tabindex="4" type="submit" value="Post Comment" name="submit_this_comment" style="width:100px; float:right" onClick="cb_post_submit(); return false;"></div>
  180.             </div>
  181.             <div class="spacer"></div>
  182.             
  183.             <div class="tbf_row" id="comment_terms">
  184.                 <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>
  185.             </div>
  186.             <div class="spacer"></div>
  187.  
  188.             </form>
  189.         </div><!-- end comm_form -->
  190.     </div><!-- end comm box innards -->
  191.     </div><!-- end comm box format -->
  192.     
  193.     <div class="x_close" id="comm_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('comm', 'comm', ''); return true;">Close</a></div>
  194.     
  195. </div><!-- end comm_submit box-->
  196.  
  197.  
  198. <!-- start mainbody -->
  199. <div id="mainbody">
  200.  
  201. <!-- start header -->
  202. <div id="header">
  203.  
  204.  
  205.  
  206.     <div id="tblogo">
  207.     <a href="/"><img src="/images/tblogo20_01.gif" alt="TidBITS: Apple News for the Rest of Us" width="177" height="84" border="0"></a>
  208.  
  209.     </div><!-- end tblogo -->
  210.  
  211.  
  212. <!-- leaderboard ad -->
  213. <div id="top_banner">
  214. <script type='text/javascript'><!--// <![CDATA[
  215.     OA_show(3);
  216. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe5f7021'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=3&n=TBe5f7021'></a></noscript>
  217. </div><!-- end top_banner style -->
  218. <!-- end leaderboard ad -->
  219.  
  220.  
  221. </div><!-- end header  -->
  222.  
  223.  
  224. <!-- start content_container -->
  225. <div id="content_container">
  226.  
  227.  
  228. <!-- begin leftcolumn -->
  229. <div id="leftcolumn">
  230.  
  231. <!-- begin leftnav /left navigation -->
  232. <div>
  233.     <ul class="leftnav">
  234.         <!-- start search -->
  235.         <li class="topcorner">
  236.             <form action="http://db.tidbits.com" method="POST" name="search_form"><input type="hidden" name="advanced_search" value=''><input type="text" name="search_text" size="8" maxlength="70" value="Search" onFocus="this.value=''" onBlur="if (this.value == '') { this.value = 'Search'; }"> <span style="margin: 0 5px 0 5px; vertical-align: -2px"><span style="vertical-align: -2px"><input type="image" name="submit_search" src="/images/go_search_button.gif"></span>  <img src="/images/adv_search_button.gif" title="Click for Advanced Search" onClick="var f = document.search_form; f.search_text.value =''; f.advanced_search.value = '1'; f.submit();"></span></form>
  237.         </li>
  238.     </ul>
  239. </div>
  240. <!-- end search -->
  241.  
  242. <!-- Get TidBITS box (temp) -->
  243. <div>
  244.     <ul class="leftnav">
  245.         <li class="gettb"><strong>Get TidBITS via...</strong></li>
  246.     
  247.         <li><a href="http://www.tidbits.com/list" title="Subscribe via email" class="gettb">Email <img src="/images/gettb_button_email.gif" width="12" height="12" border="0" class="nav_img" alt="Email subscription options"></a></li>
  248.         <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>
  249.         <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>
  250.         <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>
  251.         <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>
  252.     </ul>
  253. </div>
  254. <!-- end Get TidBITS box -->
  255.     
  256.     <ul class="leftnav">
  257.         <li><a href="/" class="tabhead">TidBITS Home</a></li>
  258.  
  259.         <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>
  260.     
  261.     
  262.     </ul>
  263.  
  264. <div id="articleslist" style="display: none"><ul class="leftnav"><li><a href="/section/business" >Business Apps</a></li>
  265. <li><a href="/section/entertainment" >Entertainment</a></li>
  266. <li><a href="/section/links" >External Links</a></li>
  267. <li><a href="/section/home" >Home Macs</a></li>
  268. <li><a href="/section/inside" >Inside TidBITS</a></li>
  269. <li><a href="/section/iphone-ipad-ipod" >iPhone iPad iPod</a></li>
  270. <li><a href="/section/fun" >Just for Fun</a></li>
  271. <li><a href="/section/macs" >Macs & Mac OS X</a></li>
  272. <li><a href="/section/creative" >Media Creation</a></li>
  273. <li><a href="/section/net" >Networking</a></li>
  274. <li><a href="/section/opinion" >Opinion</a></li>
  275. <li><a href="/section/support" >Problem Solving</a></li>
  276. <li><a href="/section/security" >Safe Computing</a></li>
  277. <li><a href="/section/tech" >Tech News</a></li>
  278. <li><a href="/section/watchlist" >Watchlist</a></li>
  279. </ul></div>
  280.  
  281. <div>
  282. <ul class="leftnav">
  283.     <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>
  284. </ul>
  285. </div>
  286.  
  287. <div id="stafflist" style="display:block"><ul class="leftnav"><li><a href="/author/Adam+C+Engst" title="Adam Engst, Publisher">Adam Engst</a></li>
  288.     <li><a href="/author/Tonya+Engst" title="Tonya Engst, Editor in Chief">Tonya Engst</a></li>
  289.     <li><a href="/author/Jeff+Carlson" title="Jeff Carlson, Managing Editor">Jeff Carlson</a></li>
  290.     <li><a href="/author/Joe+Kissell" title="Joe Kissell, Senior Editor">Joe Kissell</a></li>
  291.     <li><a href="/author/Glenn+Fleishman" title="Glenn Fleishman, Contributing Editor">Glenn Fleishman</a></li>
  292.     <li><a href="/author/Mark+Anbinder" title="Mark Anbinder, Contributing Editor">Mark H. Anbinder</a></li>
  293.     <li><a href="/author/Matt+Neuburg" title="Matt Neuburg, Contributing Editor">Matt Neuburg</a></li>
  294.     <li><a href="/author/Rich+Mogull" title="Rich Mogull, Contributing Editor">Rich Mogull</a></li>
  295.     <li><a href="/author/Lex+Friedman" title="Lex Friedman, Staff Writer">Lex Friedman</a></li>
  296.     </ul>
  297.     </div>
  298.  
  299. <div>
  300. <ul class="leftnav">
  301.  
  302.     <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>
  303. </ul>
  304. </div>
  305.  
  306. <div id="issuelist" style="display:none"><ul class="leftnav"><li><div class="special"><form method="post" action="noaction.cgi" onsubmit="return false" id="issue_search_form" name="issue_search_form">Issue # <input type="text" onkeydown="if (event.keyCode == 13) { redirect_issue(this.form); }" id="issue_searchvalue" name="issue_number" style="width:35px; height: 10px"> <input onclick="redirect_issue(this.form)" type="image" name="submit_search" src="/images/go_search_button_blk.gif"></form></div></li><li><A HREF="/issue/393" >#393, 18 Aug 97</A></li>
  307. <li><A HREF="/issue/392" >#392, 11 Aug 97</A></li>
  308. <li><A HREF="/issue/391" >#391, 04 Aug 97</A></li>
  309. <li><A HREF="/issue/390" >#390, 28 Jul 97</A></li>
  310. <li><A HREF="/issue/389" >#389, 21 Jul 97</A></li>
  311. <li><A HREF="/issue/388" >#388, 14 Jul 97</A></li>
  312. <li><A HREF="/issue/387" >#387, 07 Jul 97</A></li>
  313. <li><A HREF="/issue/386" >#386, 30 Jun 97</A></li>
  314. <li><A HREF="/issue/385" >#385, 23 Jun 97</A></li>
  315.  
  316.  
  317. <li><a href="/backissues">Back Issues</a></li></ul></div>
  318.  
  319.  
  320. <div>
  321. <ul class="leftnav">
  322.  
  323.     <li><a href="/tidbitstalk" title="TidBITS Talk" class="tabhead">TidBITS Talk</a></li>
  324. </ul>
  325. </div>
  326.  
  327.  
  328.  
  329. <div>    
  330. <ul class="leftnav">
  331.     <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>
  332. </ul>
  333. </div>
  334.  
  335. <div id="abouttidbits" style="display:none">
  336. <ul class="leftnav"><li><a href="/about.html" title="About TidBITS">About Us</a></li><li><a href="/account.html" title="Account Help">Account Help</a></li><li><a href="/advertising.html" title="Advertise with TidBITS!">Advertise</a></li><li><a href="/contact.html" title="Contact Info">Contact</a></li><li><a href="/copyright.html" title="Copyright Terms">Copyright</a></li>
  337. </ul>
  338. </div>
  339.  
  340. <div>
  341. <ul class="leftnav">
  342. <li class="bottom"> </li>
  343. </ul>
  344. </div>
  345. <!-- end leftnav/left navigation -->
  346.  
  347. <!-- making sure nav elements hide/show before page loads --><script type="text/javascript"><!--
  348.     showhide('articleslist','show'); 
  349. // --></script>
  350.  
  351. <!-- begin sponsor_sidebox -->
  352.  
  353. <div class="sponsor_sidebox">
  354.  
  355. <ul>
  356.  
  357. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  358.  
  359. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  360.  
  361. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</a></li>
  362.  
  363. <li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</a></li>
  364.  
  365. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  366.  
  367. <li><a href="http://nuance.com/dragon/mac">Nuance</a></li>
  368.  
  369. <li><a href="http://www.smilesoftware.com/">Smile</a></li>
  370.  
  371. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  372.  
  373. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  374.  
  375. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  376.  
  377. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  378.  
  379. </ul><div class='sponsor_sidebox_bottom'> </div>
  380. </div>
  381.  
  382.  
  383. <!-- end sponsor_sidebox -->
  384.  
  385.  
  386. </div> <!-- end leftcolumn div -->
  387.  
  388. <!-- end left column -->
  389.  
  390.  
  391. <!-- begin centercolumn_border -->
  392.  
  393. <div id="centercolumn_border">
  394.  
  395. <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>
  396.  
  397. <!-- begin centercolumn -->
  398. <div id="centercolumn">
  399.  
  400.  
  401.  
  402. <!-- begin rightcolumn_container -->
  403. <div id="rightcolumn_container">
  404.  
  405. <!-- begin rightcolumn -->
  406.     <!-- rightcolumn is embedded within centercolumn so featured text wraps around it -->
  407.     <div id="rightcolumn">
  408.  
  409. <p class="top"> </p>
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420. <!-- Watchlist items -->
  421. <div class="tearoffbox_wide_container">
  422. <div class="tearoffbox_wide_watchlist">
  423. <p class="tearoffbox_wide_top_watchlist"> </p>
  424.  
  425. <h6><a href="/section/watchlist">TidBITS Watchlist</a></h6>
  426. <ul>
  427.  
  428. <LI><a href="/article/11625">Adobe Flash Player 10.1.85.3</a></LI>
  429.  
  430. <LI><a href="/article/11622">DEVONthink and DEVONnote 2.0.4</a></LI>
  431.  
  432. <LI><a href="/article/11620">Security Update 2010-006</a></LI>
  433.  
  434. <LI><a href="/article/11619">TinkerTool 4.2</a></LI>
  435.  
  436. <LI><a href="/article/11618">Mailplane 2.2</a></LI>
  437.  
  438. <LI><a href="/article/11617">Pro Applications Update 2010-02</a></LI>
  439.  
  440. <LI><a href="/article/11611">Dialectic 1.7</a></LI>
  441.  
  442. <LI><a href="/article/11604">Transmit 4.1.1</a></LI>
  443.  
  444. <LI><a href="/article/11603">MarsEdit 3.1.1</a></LI>
  445.  
  446. <LI><a href="/article/11600">Savescreenie 2.0</a></LI>
  447.  
  448. </ul>
  449.  
  450. <div class="tearoffbox_wide_bottom_watchlist"> </div>
  451.  
  452. </div><!-- end tearoffbox_wide -->
  453.  
  454. </div><!-- end tearoffbox_wide_container for watchlist items -->
  455.  
  456. <!-- begin tearoff box wide -->
  457.  
  458. <div class="tearoffbox_wide_container">
  459. <div class="tearoffbox_wide_tips">
  460.  
  461. <div class="tip_display">
  462. <div class="tips_sponsor_logo">
  463.  
  464. </div>
  465. <h6>Constant Dictionary Definitions</h6>
  466. <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>
  467.  
  468. </div>
  469.  
  470. <div class="tearoffbox_wide_bottom_tips">
  471. <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">
  472.  
  473. <p class="credit">Written by<br><a href="/author/Adam%20C.%20Engst">Adam C. Engst</a></p></div></div>
  474.  
  475. </div>
  476.  
  477. <div class="tearoffbox_wide_tips_submit">
  478. <form method="post" onsubmit="return false" id="tipbits_form" name="tipbits_form" action="noaction.cgi"><p><a href="javascript:void(0)" onmousedown="ShowTipBox('ts','ts_recaptcha', 50, 'tip_title_id'); return true;">Share your own tip!</a> | <a href="javascript:void(0)" onClick="generic_show_hide('search_tipbits'); document.tipbits_form.tipbits_searchvalue.focus()">Search TipBITS</a></p>
  479. <p style="display:none" id="search_tipbits"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue'); }" id="tipbits_searchvalue" name="tipbits_searchvalue"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue')">Search</a></p></form>
  480. </div>
  481. <div class="tearoffbox_wide_bottom_tips_submit">
  482.  
  483. </div>
  484.  
  485. </div><!-- end tearoffbox_wide_tips -->
  486. </div><!-- end tearoffbox_wide_container for tips-->
  487. <!-- end tearoff box wide -->
  488.  
  489.  
  490.  
  491. <!-- begin 300 x 250 ad -->
  492.  
  493. <div id="content_ad_square">
  494. <script type='text/javascript'><!--// <![CDATA[
  495.     OA_show(5);
  496. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TB7671f69'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=5&n=TB7671f69'></a></noscript>
  497. </div><!-- end 300 x 250 ad -->
  498.  
  499. <!-- TBTalk items -->
  500. <div class="tearoffbox_wide_container">
  501.  
  502. <div class="tearoffbox_wide_p">
  503. <p class="tearoffbox_wide_top_p"> </p>
  504.  
  505. <h5>Recent TidBITS Talk Discussions</h5>
  506. <ul>
  507.  
  508. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf95241">Alternatives to MobileMe for syncing calendars between iPad/Mac</a> (1 message)</LI>
  509.  
  510. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf94dbb">Free anti-virus for the Mac</a> (20 messages)</LI>
  511.  
  512. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf934e6">iTunes 10 syncing iPod Touch 4.1</a> (2 messages)</LI>
  513.  
  514. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf92a22">Thoughts about Ping</a> (16 messages)</LI>
  515.  
  516. </ul>
  517.  
  518. <div class="tearoffbox_wide_bottom_p"> </div>
  519.  
  520. </div><!-- end tearoffbox_wide -->
  521.  
  522. </div><!-- end tearoffbox_wide_container for TBtalk items -->
  523.  
  524. <!-- start takecontrol_ad -->
  525. <script type='text/javascript'><!--// <![CDATA[
  526.     OA_show(7);
  527. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe46d56f'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=7&n=TBe46d56f'></a></noscript><!-- end takecontrol_ad -->
  528.  
  529. <!-- begin tearoff box 2 -->
  530.  
  531. <div class="tearoffbox_wide_container">
  532.  
  533. <div class="tearoffbox_wide_p">
  534. <p class="tearoffbox_wide_top_p"> </p>
  535.  
  536. <h5>Related Articles</h5>
  537. <ul>
  538. <li><a href="/article/4686">Frontier 5.0 Ships</a> (02 Feb 98)</li>
  539. <li><a href="/article/4682">Frontier 5.0 Ships</a> (31 Jan 98)</li>
  540. <li><a href="/article/4581">Frontier 5.0 Alphas for Mac and Windows</a> (15 Dec 97)</li>
  541. <li><a href="/article/4556">Frontier 5.0 Alphas for Mac and Windows</a> (10 Dec 97)</li>
  542. <li><a href="/article/2175">And Then There Was One...</a> (19 May 97)</li>
  543. <li><a href="/article/1471">Frontier Justice</a> (29 May 95)</li>
  544.  
  545. </ul>
  546.  
  547. <p class="tearoffbox_wide_bottom_p"> </p>
  548.  
  549. </div><!-- end tearoffbox_wide -->
  550. </div><!-- end tearoffbox_wide_container -->
  551.  
  552. <!-- end tearoff box 2 -->
  553.  
  554.  
  555. <!-- begin tearoff box for series -->
  556.  
  557. <div class="tearoffbox_wide_container">
  558.  
  559. <div class="tearoffbox_wide_p">
  560. <p class="tearoffbox_wide_top_p"> </p>
  561.  
  562. <h5>Other articles in the series <a href="/series/1010">HTML Editors</a></h5>
  563. <ul>
  564. <li><a href="/article/4216">HTMLbits: Taking New Software Out for a Spin</a> (27 Oct 97)</li>
  565. <li><a href="/article/4086">Spinning the Web Part 7: FrontPage, Fusion, and Final Thoughts</a> (04 Aug 97)</li>
  566. <li><a href="/article/4080">Spinning the Web Part 6: Linking up with Site Managers</a> (28 Jul 97)</li>
  567. <li><a href="/article/2218">Spinning the Web Part 4: CyberStudio</a> (07 Jul 97)</li>
  568. <li><a href="/article/2210">Spinning the Web Part 3: Basic Visual HTML Editing</a> (30 Jun 97)</li>
  569. <li><a href="/article/2205">Spinning the Web Part 2: PageSpinner Meets the Competition</a> (23 Jun 97)</li>
  570. <li><a href="/article/2195">Spinning the Web Part I: Trade-offs and PageSpinner</a> (16 Jun 97)</li>
  571.  
  572. </ul>
  573.  
  574. <p class="tearoffbox_wide_bottom_p"> </p>
  575.  
  576. </div><!-- end tearoffbox_wide -->
  577. </div><!-- end tearoffbox_wide_container -->
  578.  
  579. <div class="tearoffbox_wide_container">
  580.  
  581. <div class="tearoffbox_wide_p">
  582. <p class="tearoffbox_wide_top_p"> </p>
  583.  
  584. <h5>Other articles in the series <a href="/series/1134">Frontier History</a></h5>
  585. <ul>
  586. <li><a href="/article/6446">UserLand Ships Frontier 7</a> (04 Jun 01)</li>
  587. <li><a href="/article/5679">UserLand Releases Frontier 6.1</a> (06 Dec 99)</li>
  588. <li><a href="/article/5351">Frontier Demystified</a> (12 Apr 99)</li>
  589. <li><a href="/article/2823">Frontier Review</a> (30 Nov 92)</li>
  590. <li><a href="/article/1471">Frontier Justice</a> (29 May 95)</li>
  591. <li><a href="/article/4686">Frontier 5.0 Ships</a> (02 Feb 98)</li>
  592. <li><a href="/article/4941">The Final Free Frontier</a> (22 Jun 98)</li>
  593.  
  594. </ul>
  595.  
  596. <p class="tearoffbox_wide_bottom_p"> </p>
  597.  
  598. </div><!-- end tearoffbox_wide -->
  599. </div><!-- end tearoffbox_wide_container -->
  600.  
  601. <!-- end tearoff box -->
  602.  
  603.  
  604.  
  605.  
  606. <!-- begin tearoff box 1 -->
  607.  
  608. <div class="tearoffbox_wide_container">
  609.  
  610. <div class="tearoffbox_wide">
  611. <p class="tearoffbox_wide_top"> </p>
  612.  
  613. <h5>Published in <a href="/issue/389">TidBITS 389</a>.<br><a href="http://www.tidbits.com/list">Subscribe</a> to our weekly email edition.</h5>
  614. <ul>
  615. <li><A HREF="/article/2695">Apple Posts Lower-than-Expected Q3 Loss</A></li>
  616. <li><A HREF="/article/2696">Bovine RC5 Challenge</A></li>
  617. <li><A HREF="/article/2697">Apple Powers Up the PowerBook 1400</A></li>
  618. <li><A HREF="/article/2698">Apple Double-Clicks Mac OS 8</A></li>
  619.  
  620. </ul>
  621.  
  622. <p class="tearoffbox_wide_bottom"> </p>
  623.  
  624. </div><!-- end tearoffbox_wide -->
  625. </div><!-- end tearoffbox_wide_container -->
  626.  
  627. <!-- end tearoff box 1 -->
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635. <div id="rightcolumn_bottom">
  636.  
  637. </div>
  638.  
  639.     </div><!-- end rightcolumn -->
  640.  
  641.  
  642. </div><!-- end rightcolumn_container -->
  643.  
  644.  
  645.  
  646. <!-- featured articles -->
  647.  
  648. <div id="center_ajax_sub" class="instapaper_body">
  649.  
  650. <!-- google_ad_section_start -->
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671. <!-- issue, article, or series -->
  672.  
  673.     
  674.     
  675.     
  676.     
  677.     
  678.         
  679.     <!-- show article(s) -->
  680.     <div class="article"><a name="2953"></a>
  681.     
  682. <!-- comment initialization routine as needed -->
  683. <div class="popup_box_with_captcha" id="hc_2953" style="display: none">
  684.     <div class="tip_box_format">
  685.     <div id="hc_innards_alt_2953" style="display: none">
  686.             <div class="tbf_row">
  687.                 <div class="tbf_wide_80" id="hc_small_response_2953"></div><div class="x_close_row" id="hc_upper_right1_2953"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_2953', 'hc', '2953'); return true;">Close</a></div>
  688.  
  689.             </div>
  690.     </div>
  691.     <div id="hc_innards_2953">
  692.         <div class="tip_box_form">        
  693.             <form action="foobar.cgi" method="get" name="check_human_2953">
  694.             <div class="tbf_row">
  695.                 <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>
  696.  
  697.             </div>
  698.             <div class="spacer"></div>
  699.             <div class="tbf_row" id="hc_message_box_2953" style="display:none">
  700.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_2953"></div></div>
  701.             </div>
  702.             <div class="spacer"></div>
  703.             <div class="tbf_row">
  704.                 <div class="tbf_wide"><div id="hc_recaptcha_2953"></div></div>
  705.             </div>
  706.             <div class="spacer"></div>
  707.             <div class="tbf_row">
  708.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '2953', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="2699"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  709.             </div>
  710.             <div class="spacer"></div>
  711.             </form>
  712.         </div><!-- end tip_box_form -->
  713.     </div><!-- end hum box innards -->
  714.     </div><!-- end tip box format -->
  715. </div><!-- end tip_submit box-->
  716.  
  717.  
  718.  
  719.         
  720.         
  721.         <!-- specific article details here -->
  722.         
  723.         
  724.             
  725.         
  726.     
  727.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  728.         
  729.         <div class="featured_meta"><div class="meta_article">21 Jul 1997 | <a href="/article/2699?print_version=1">Print <span class="shift_up"><img src="/images/printer_icon.gif" alt="Printer-Friendly Version of This Article" border="0" width="9" height="10"></span></a></div></div>
  730.  
  731.         <H2>Spinning the Web Part 5: New Frontiers</H2>
  732.  
  733.         <p class="byline">by <a href="/author/Tonya%20Engst">Tonya Engst</a> <a href="javascript:void(0)" onClick="document.check_human_2953.submit_type.value='email'; document.check_human_2953.author_id.value='10'; ShowTipBox('hc_2953', 'hc_recaptcha_2953')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a></P>
  734.  
  735.         <!-- article text -->
  736.         
  737.         <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>
  738.         
  739.  
  740.         <!-- end article text -->
  741.     
  742.         
  743.         <!-- PayBITS -->
  744.         
  745.  
  746.         
  747. <p> </p><div class="sponsorbox">
  748. <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>
  749. </div>
  750. <div class="sponsorbox_bottom"> </div>
  751.  
  752.  
  753.         <!-- comments section -->
  754.         
  755.         <!-- end comment show-->
  756.         
  757.         <!-- end comments section -->
  758.  
  759.  
  760.         <!-- end article loop details -->
  761.         
  762.         
  763.  
  764.         
  765.     </div><!-- end show article -->
  766.     
  767.     
  768.  
  769.  
  770. <!-- article_plus end -->
  771. <!--
  772. </DIV>
  773. --><!-- end main_column DIV -->
  774.  
  775.  
  776. <!-- google_ad_section_end -->
  777.  
  778. </div><!-- end center AJAX insert -->
  779.  
  780. <!-- TipBITS Search Results Lozenge -->
  781. <div id="tipbits_results_loz" style="display:none">
  782. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  783. <div class="tip_footer">
  784. <p id="search_tipbits_loz"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue_loz', 'tipbits_results_loz'); }" id="tipbits_searchvalue_loz" name="tipbits_searchvalue_loz"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue_loz', 'tipbits_results_loz')">Search</a></p>
  785. </div>
  786. <div class="tip_footer_bottom">
  787.  </div>
  788. </form>
  789. </div><!-- end TipBITS Search Results lozenge -->
  790.  
  791.  
  792.  
  793.  
  794. <!-- begin footer -->
  795. <div id="footer">
  796.  
  797. <div id="qr_tag_right"><div id="qr_tag_image"><img src="http://db.tidbits.com/tags/2699.png"></div><div id="qr_tag_text"><a href="http://db.tidbits.com/article/10616">What's this image?</a></div></div>
  798. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  799. Web and mailing list host.</p>
  800. <p>Unless otherwise noted, this article is copyright © 1997 <a href="/author/Tonya%20Engst">Tonya Engst</a></p>
  801. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  802. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  803.  
  804. <p><a href="/about.html" title="About TidBITS">About TidBITS</a> | <a href="/account.html" title="Account Help">Account Help</a> | <a href="/advertising.html" title="Advertise with TidBITS!">Advertise with TidBITS!</a> | <a href="/contact.html" title="Contact Info">Contact Info</a> | <a href="/copyright.html" title="Copyright Terms">Copyright Terms</a></p>
  805.  
  806. </div><!-- end footer -->
  807.  
  808.  
  809. </div> <!-- end centercolumn -->
  810.  
  811. <div class="center_bottom"> </div>
  812.  
  813. </div> <!-- end centercolumn_border -->
  814.  
  815.  
  816. </div> <!-- end content_container -->
  817.  
  818. </div> <!-- end mainbody -->
  819.  
  820.  
  821. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  822. </script>
  823. <script type="text/javascript">
  824. _uacct = "UA-276924-3";
  825. urchinTracker();
  826. </script>
  827. <script type="text/javascript"
  828. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  829. <script type="text/javascript">
  830. var skimlinks_pub_id = '2559X585851';
  831. var skimlinks_domain = 'go.tidbits.com';
  832. skimlinks();
  833. </script>
  834. </body>
  835. </html>
  836.  
  837.