home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbser=1198.orig < prev    next >
Text File  |  2010-09-23  |  95KB  |  1,089 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: StorySpace 1.1</title>
  9.  
  10.     <meta name="title" content="TidBITS: StorySpace 1.1">
  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=''>
  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/1045" >#1045, 20 Sep 10</A></li>
  307. <li><A HREF="/issue/1044" >#1044, 13 Sep 10</A></li>
  308. <li><A HREF="/issue/1043" >#1043, 06 Sep 10</A></li>
  309. <li><A HREF="/issue/1042" >#1042, 30 Aug 10</A></li>
  310. <li><A HREF="/issue/1041" >#1041, 23 Aug 10</A></li>
  311. <li><A HREF="/issue/1040" >#1040, 16 Aug 10</A></li>
  312. <li><A HREF="/issue/1039" >#1039, 09 Aug 10</A></li>
  313. <li><A HREF="/issue/1038" >#1038, 02 Aug 10</A></li>
  314. <li><A HREF="/issue/1037" >#1037, 26 Jul 10</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://www.smilesoftware.com/">Smile</a></li>
  358.  
  359. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  360.  
  361. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  362.  
  363. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  364.  
  365. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  366.  
  367. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</a></li>
  368.  
  369. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  370.  
  371. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  372.  
  373. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  374.  
  375. <li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</a></li>
  376.  
  377. <li><a href="http://nuance.com/dragon/mac">Nuance</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>Editing iCal Events in Snow Leopard</h6>
  466. <p><p>Snow Leopard makes looking at event details in iCal easier. In the Leopard version of iCal, you had to double-click an event to reveal only some information in a pop-up box; you then needed to click the Edit button (or press Command-E) to edit an item's information. In Snow Leopard, choose Edit > Show Inspector (or press Command-Option-I) to bring up a floating inspector that provides an editable view of any items selected in your calendar.</p></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/193">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  472. <p class="credit">Submitted by<br>Doug McLean</p>
  473. </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.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543. <div id="rightcolumn_bottom">
  544.  
  545. </div>
  546.  
  547.     </div><!-- end rightcolumn -->
  548.  
  549.  
  550. </div><!-- end rightcolumn_container -->
  551.  
  552.  
  553.  
  554. <!-- featured articles -->
  555.  
  556. <div id="center_ajax_sub" class="instapaper_body">
  557.  
  558. <!-- google_ad_section_start -->
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579. <!-- issue, article, or series -->
  580.  
  581.     
  582.     
  583.     
  584.         <!-- start pagehead -->
  585.         <div id="pagehead">
  586.         <h2>Series: StorySpace 1.1</h2>
  587.         <p class="pagesubtitle">Matt Neuburg's review of StorySpace 1.1 originally ran as a special issue of TidBITS </p>
  588.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_all_articles('499,500,501,502,503,504')"><span id="showhide_arts_top">Show the full text of all articles</span></a>
  589.         </div><!-- end pagehead -->
  590.     
  591.     
  592.     
  593.         
  594.     <!-- show article(s) -->
  595.     <div class="article"><a name="499"></a>
  596.     
  597. <!-- comment initialization routine as needed -->
  598. <div class="popup_box_with_captcha" id="hc_499" style="display: none">
  599.     <div class="tip_box_format">
  600.     <div id="hc_innards_alt_499" style="display: none">
  601.             <div class="tbf_row">
  602.                 <div class="tbf_wide_80" id="hc_small_response_499"></div><div class="x_close_row" id="hc_upper_right1_499"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_499', 'hc', '499'); return true;">Close</a></div>
  603.  
  604.             </div>
  605.     </div>
  606.     <div id="hc_innards_499">
  607.         <div class="tip_box_form">        
  608.             <form action="foobar.cgi" method="get" name="check_human_499">
  609.             <div class="tbf_row">
  610.                 <div class="tbf_wide_80" id="hc_rc_499">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_499"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_499', 'hc', '499'); return true;">Close</a></div>
  611.  
  612.             </div>
  613.             <div class="spacer"></div>
  614.             <div class="tbf_row" id="hc_message_box_499" style="display:none">
  615.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_499"></div></div>
  616.             </div>
  617.             <div class="spacer"></div>
  618.             <div class="tbf_row">
  619.                 <div class="tbf_wide"><div id="hc_recaptcha_499"></div></div>
  620.             </div>
  621.             <div class="spacer"></div>
  622.             <div class="tbf_row">
  623.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '499', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="3319"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  624.             </div>
  625.             <div class="spacer"></div>
  626.             </form>
  627.         </div><!-- end tip_box_form -->
  628.     </div><!-- end hum box innards -->
  629.     </div><!-- end tip box format -->
  630. </div><!-- end tip_submit box-->
  631.  
  632.  
  633.  
  634.         
  635.         
  636.         <!-- specific article details here -->
  637.         
  638.         
  639.             <p class="series_number">Article 1 of 6 in series</p>
  640.         
  641.     
  642.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  643.         
  644.         <div class="featured_meta"><div class="meta_article">18 Nov 1991 | <a href="/article/3319?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>
  645.  
  646.         <H2><a href="/article/3319">Storyspace Introduction</a></H2>
  647.  
  648.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_499.submit_type.value='email'; document.check_human_499.author_id.value='6'; ShowTipBox('hc_499', 'hc_recaptcha_499')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a> and <a href="/author/Matt%20Neuburg">Matt Neuburg</a> <a href="javascript:void(0)" onClick="document.check_human_499.submit_type.value='email'; document.check_human_499.author_id.value='7'; ShowTipBox('hc_499', 'hc_recaptcha_499')"><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>
  649.  
  650.         <!-- article text -->
  651.         <div id="article_blurb_499"><p>    Storyspace 1.1    Eastgate Systems    P.O. Box 1307    Cambridge, MA 02238    800/562-1638    617/924-9044    76146.262@compuserve.comRating:    7 Penguins out of a possible 10Price and Availability: -- Single copies of Storyspace cost $160<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('499')">Show full article</a></span></p></div>
  652.         <div id="article_text_499" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('499')">Hide full article</a></p><BLOCKQUOTE>    Storyspace 1.1</BLOCKQUOTE><BLOCKQUOTE>    Eastgate Systems<BR>    P.O. Box 1307<BR>    Cambridge, MA 02238<BR>    800/562-1638<BR>    617/924-9044<BR>    <A HREF="mailto:76146.262@compuserve.com">76146.262@compuserve.com</A></BLOCKQUOTE><P>Rating:</P><BLOCKQUOTE>    7 Penguins out of a possible 10</BLOCKQUOTE><P><STRONG>Price and Availability:</STRONG> -- Single copies of Storyspace cost $160. 10-packs for offices and labs are available for $495. Generous educational discounts are also available. Storyspace is available from a few dealers, but Eastgate is by far the best source. Contact Eastgate for more information.</P><P>Reviewers:</P><BLOCKQUOTE>    Matt Neuburg -- <A HREF="mailto:CLAS005@cantva.canterbury.ac.nz">CLAS005@cantva.canterbury.ac.nz</A><BR>    Adam C. Engst, <A HREF="mailto:ace@tidbits.halcyon.com">ace@tidbits.halcyon.com</A></BLOCKQUOTE><P>MATT: Eastgate Systems has released its new version of Storyspace: when I started collaborating trans-Pacifically on this review with Adam my copy was called 1.07, though the "About" box read 1.0; now we are up to 1.1, and intriguing noises about the next version are coming from Eastgate. The program bids fair to bring hypertext into common use. Indeed, part of Eastgate's business is the publication of new hypertext efforts, for which the manual includes an appeal. While the prospect of writing hyper-literature may not thrill everyone, users will find that Storyspace can fit a great variety of needs: notepad, personal information management (PIM), computer aided instruction (CAI) authoring, database work, and more. The program is addictive and encourages constant and creative use.</P><P>ADAM: So far, Storyspace seems primarily to have found a market in the Macintosh-savvy crowd in higher education. I suspect that is because the authors, Jay David Bolter, Michael Joyce, and John B. Smith all work at institutions of higher learning, if you will. All three have been active in the academic conferences and forums that focus on hypertext, especially those emphasizing the overlap between hypertext technology and creative use within the humanities. Mark Bernstein of Eastgate has relayed some of Storyspace's more interesting uses, including ethnographic field notes and Australian parliamentary strategy, not to mention several extremely interesting pieces of hypertextual fiction, such as Michael Joyce's "Afternoon" and others which should be available from Eastgate by now.</P><P>Storyspace has had a long history, and it is one of the few programs that I've followed for much of its development. Back in the fall of 1986 when I was a sophomore at Cornell, I was looking for interesting courses that I could take, having been accepted to a program (the College Scholar program) that waived all course requirements. I found a course in the Society for the Humanities (a department at Cornell that focuses on a different subject each year and is staffed primarily by visiting professors) taught by Jay Bolter. It was a seminar tracing the evolution of information dissemination from the oral tradition to the present electronic media. Only one other person took  the course, a librarian at Cornell taking it extramurally, so when the time came to do the final paper, Jay introduced me to his program, Storyspace. I think it had been in development for a year or so at that point, and it had some problems, such as the one that caused me to lose my final project the day before it was due. Luckily it was easily recovered (this was back before I'd particularly used a Mac at all).</P><P>I continued on in my College Scholar program, but no more courses like Jay's ever appeared. Instead, I worked on my own, starting the Usenet newsgroup rec.arts.int-fiction, which was soon taken over by the people who were more interested in the simulated environment, artificial intelligence, and role-playing aspects of interactive fiction. Then, senior year, I had to complete an 8-credit, two semester senior honors project. Well, I didn't have to, but I'm vaguely masochistic that way. Primarily during the winter of that year I wrote what was equivalent to several hundred pages of hypertextual fiction in a far more advanced and stable version of Storyspace.</P><P>MATT: Jay Bolter, by the way, is the author of "Turing's Man," an excellent meditation on the way computers and the computer age have altered our vision of ourselves, and something our readers might do well to have a look at. Also, since we are waxing biographical, Bolter and I, though we have never met, have some things in common; we are both Classicists who are also very heavily computer literate, and we have both taught Adam in very small classes at Cornell! In fact, the reason I got into StorySpace was that I had just finished a HyperCard project, involving both CAI and authoring tools, whose purpose was to automate some of the exercises in the book I taught Adam Latin out of; having seen the value of this sort of thing in the classroom, I was looking for other possible tools. I also went to college with Mark Bernstein. So life is like Storyspace itself - full of links.</P><P>ADAM: The version that Eastgate Systems markets now is directly descended from the version I was using my senior year, although a number of interface items have become cleaner, and the entire program has become a bit more powerful. I haven't had a chance to write a great deal in this latest version of Storyspace mostly because I keep wasting my time on some stupid thing called TidBITS :-). It also doesn't help that Storyspace isn't as responsive of a text entry environment as Nisus, so I have been doing a bit more with copy and paste out of Nisus.</P><P>The version of Storyspace that Matt has and that Eastgate sent me is System 7-compatible. However, the authors are hard at work on a System 7-savvy version that will be able to link text between files transparently, effectively erasing file boundaries. I'll be extremely interested to see how they handle that, because few programs have taken advantage of System 7's capabilities to that extent yet. In addition, although Storyspace has always been a primarily text editor, Jay added basic graphics support at some point several years ago (in the middle of my thesis work, but slightly too late for me to take significant advantage of it). Once Apple ships QuickTime to developers, you can bet that Storyspace will add support for it, making it even more powerful in dealing with all forms of expression.</P><P>MATT: Meanwhile I've been working pretty extensively with Storyspace, initially just building a hypertext version of the Greek verb paradigm for my students to use. This sounds like a pretty elementary exercise, and I suppose it is, really; but it is just the right kind of project to put Storyspace through its paces and check out its strengths and weaknesses. In a nutshell, its strength is its whole conception: a tool for building hypertext structures either for yourself to use interactively or to pass on to others as stand-alone documents. Its weakness is that the authors are not ironing out interface issues. To give one example now (there will be many more as we go), Adam said this version is System 7-savvy; but in some ways it isn't even MultiFinder-friendly! It hogs the cursor in an illicit way; if the mouse is over its windows, Storyspace will force a change to its cursor, even if it is not the active application! [ADAM: I've just heard from Mark Bernstein that this bug has been fixed in 1.12. Eastgate is extremely responsive.] But let's go on to describe what Storyspace does.</P><!-- Storyspace Introduction Adam C. Engst --></div>
  653.         <div id="article_text_bottom_499" style="display:none">
  654.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('499')">Hide full article</a></p><div class="sponsorbox">
  655. <div class="sponsortext"><A HREF="http://www.webcrossing.com/"><IMG SRC="http://db.tidbits.com/images/badges/web-crossing.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>WebCrossing Neighbors Creates Private Social Networks<br />Create a complete social network with your company or group's<br />own look. Scalable, extensible and extremely customizable.<br />Take a guided tour today <<a href="http://www.webcrossing.com/tour">http://www.webcrossing.com/tour</a>></div>
  656. </div>
  657. <div class="sponsorbox_bottom"> </div>
  658. </div>
  659.  
  660.         <!-- end article text -->
  661.     
  662.         
  663.  
  664.         
  665.     </div><div class="article"><a name="500"></a>
  666.     
  667. <!-- comment initialization routine as needed -->
  668. <div class="popup_box_with_captcha" id="hc_500" style="display: none">
  669.     <div class="tip_box_format">
  670.     <div id="hc_innards_alt_500" style="display: none">
  671.             <div class="tbf_row">
  672.                 <div class="tbf_wide_80" id="hc_small_response_500"></div><div class="x_close_row" id="hc_upper_right1_500"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_500', 'hc', '500'); return true;">Close</a></div>
  673.  
  674.             </div>
  675.     </div>
  676.     <div id="hc_innards_500">
  677.         <div class="tip_box_form">        
  678.             <form action="foobar.cgi" method="get" name="check_human_500">
  679.             <div class="tbf_row">
  680.                 <div class="tbf_wide_80" id="hc_rc_500">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_500"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_500', 'hc', '500'); return true;">Close</a></div>
  681.  
  682.             </div>
  683.             <div class="spacer"></div>
  684.             <div class="tbf_row" id="hc_message_box_500" style="display:none">
  685.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_500"></div></div>
  686.             </div>
  687.             <div class="spacer"></div>
  688.             <div class="tbf_row">
  689.                 <div class="tbf_wide"><div id="hc_recaptcha_500"></div></div>
  690.             </div>
  691.             <div class="spacer"></div>
  692.             <div class="tbf_row">
  693.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '500', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="3320"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  694.             </div>
  695.             <div class="spacer"></div>
  696.             </form>
  697.         </div><!-- end tip_box_form -->
  698.     </div><!-- end hum box innards -->
  699.     </div><!-- end tip box format -->
  700. </div><!-- end tip_submit box-->
  701.  
  702.  
  703.  
  704.         
  705.         
  706.         <!-- specific article details here -->
  707.         
  708.         
  709.             <p class="series_number">Article 2 of 6 in series</p>
  710.         
  711.     
  712.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  713.         
  714.         <div class="featured_meta"><div class="meta_article">18 Nov 1991 | <a href="/article/3320?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>
  715.  
  716.         <H2><a href="/article/3320">What You See</a></H2>
  717.  
  718.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_500.submit_type.value='email'; document.check_human_500.author_id.value='6'; ShowTipBox('hc_500', 'hc_recaptcha_500')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a> and <a href="/author/Matt%20Neuburg">Matt Neuburg</a> <a href="javascript:void(0)" onClick="document.check_human_500.submit_type.value='email'; document.check_human_500.author_id.value='7'; ShowTipBox('hc_500', 'hc_recaptcha_500')"><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>
  719.  
  720.         <!-- article text -->
  721.         <div id="article_blurb_500"><p>MATT: Storyspace's fundamental metaphor is the "writing space," whose algebra is simply this: a writing space may contain one "text space" and/or any number of writing spaces; a text space is a scrolling field which may contain text and pictures.A little thought will reveal that this describes merely an outliner of the old Apple ][ ThinkTank variety: a hierarchy of headings, each with or without an associated "paragraph." And in fact, one of Storyspace's "views" of your document is outline format<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('500')">Show full article</a></span></p></div>
  722.         <div id="article_text_500" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('500')">Hide full article</a></p><P>MATT: Storyspace's fundamental metaphor is the "writing space," whose algebra is simply this: a writing space may contain one "text space" and/or any number of writing spaces; a text space is a scrolling field which may contain text and pictures.</P><P>A little thought will reveal that this describes merely an outliner of the old Apple ][ ThinkTank variety: a hierarchy of headings, each with or without an associated "paragraph." And in fact, one of Storyspace's "views" of your document is outline format. Yet as an outliner, Storyspace is annoyingly weak. In outline view, titles of writing spaces (headings) are limited to 25 characters of (non-configurable) Geneva 12, not enough to say anything meaningful and hardly enough to serve even as a mnemonic; if you want any more you have to add a text space. This text space may be hidden or revealed, and you can reveal several text spaces simultaneously; but each sits as an inconveniently shaped (non-resizable) scrolling field below the heading, so no matter how much is in them you can only see about three of them open at once. As a result, getting a good look at your document as a genuine outline is difficult - Acta will hold the same information in less than half the screen space. Outline view feels like an afterthought, which in a sense (I am informed by Eastgate) it is: apparently the question of whether to include it at all, or, just the other way, to develop it fully, has been the subject of some debate. If the casting vote were mine, I'd give it for the latter; not being able to use Storyspace as a real outliner is a disappointment.</P><P>ADAM: Another historical note here. Storyspace has been supported by several companies over its lifetime. At one point, the company supporting it was interested in getting into the personal information manager/outliner/hyper-whatever niche of the market, which had just been created by HyperCard. I believe some of Storyspace's features, such as the outliner, stem from that period in its development. I personally have never been much of an outliner fan, so I just ignored that feature, although in theory I must agree with Matt that the outline capabilities should be stronger. If nothing else, an outline is merely an enforced textual format, no more or less valid than any other format that you could come up with in Storyspace's "storyspace" mode. But I'm getting ahead of Matt.</P><P>MATT: The other two views of your document are "chart" view, showing the hierarchy of writing spaces horizontally in tree format, and "storyspace" view, showing it as boxes beside or inside boxes. The associated text spaces in these two views, unlike outline view, open as genuine Mac windows that can be resized and moved. It is possible to open simultaneously the text spaces from more than one writing space, but this requires a little planning (you can't do it if a text space is already open), and the natural tendency is to move about the document doing one of two things: either opening a text space for reading and writing and then closing it again, or else adding, deleting, or rearranging writing spaces within the hierarchy. (Such rearrangement is very easy - just click-drag into a new position - and there are a few useful associated menu commands such as one might expect from an outlining program.) Further, an extremely useful feature in all three views lets you keep the document view in the left half of the screen and a region for a text space in the right half (called "anchoring windows"): here the text space for the writing space last touched is always automatically open without taking up any space in or on top of your view of the document, and so the two functions of manipulating writing spaces and working with text are combined.</P><P>A floating toolbar provides the tools you need to create and manipulate these writing spaces in each of the views. Tools include an arrow for selecting and moving writing spaces, a creator tool that creates a new writing space with a single click, a Zoom In/Out tool, and a navigational rosette (to take you up, down, left, right in the hierarchy). The remaining tools allow you create and navigate links, which we'll explain in a minute.</P><P>ADAM: If you wish, Storyspace can also find spaces by name and by text located in the associated text spaces, although I found the text searching to be somewhat flaky in the current version.</P><P>MATT: Yes, and finding a space by name is not so great either. In outline view, finding a space by name does select that space - but it doesn't change what you see in the window, so you may now have selected something off the screen, and you don't know where it is: but that's why you were trying to find the space by name in the first place! It's little user-interface things like this that make Storyspace unnecessarily frustrating.</P><P>ADAM: There are some other outline-related tools we should describe here. Working with text in small chunks has advantages, but sometimes you want to be able to see everything in a single text space rather than in a number of them. A Combine command and a Gather Command allow you to combine the text from the selected spaces or gather them all in a new writing space called "Gatherings." You can then move spaces in and out of "Gatherings" just as you would with any other space. Conversely, an Explode command will break up a large text space into many small text spaces by paragraphs, or, with the option key held down, as chunks based on any character or characters. The advanced Explode command can be quite useful for bringing things into Storyspace, because many external texts are carefully formatted. For instance, you could import a file containing email into Storyspace and explode it using the word "TO:" as the item delimiter. Even documents which don't have such rigid formats, like TidBITS issues, could be imported into Storyspace quite easily with a little help from Nisus's pattern matching and macro capabilities.</P><P>MATT: Interesting idea, Adam; and then you could use the linking properties of Storyspace to make a database out of it. So let's explain linking now.</P><!-- What You See Matt Neuburg and Adam C. Engst --></div>
  723.         <div id="article_text_bottom_500" style="display:none">
  724.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('500')">Hide full article</a></p><div class="sponsorbox">
  725. <div class="sponsortext"><A HREF="http://crashplan.com/ref/tidbits.html"><IMG SRC="http://db.tidbits.com/images/badges/CrashPlan.png" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>CrashPlan is easy, secure backup that works everywhere. Back up<br />to your own drives, computers, and online with unlimited storage.<br />With unlimited online backup, this is one resolution you can keep.<br />Back Up Your Life Today! <<a href="http://crashplan.com/ref/tidbits.html">http://crashplan.com/ref/tidbits.html</a>></div>
  726. </div>
  727. <div class="sponsorbox_bottom"> </div>
  728. </div>
  729.  
  730.         <!-- end article text -->
  731.     
  732.         
  733.  
  734.         
  735.     </div><div class="article"><a name="501"></a>
  736.     
  737. <!-- comment initialization routine as needed -->
  738. <div class="popup_box_with_captcha" id="hc_501" style="display: none">
  739.     <div class="tip_box_format">
  740.     <div id="hc_innards_alt_501" style="display: none">
  741.             <div class="tbf_row">
  742.                 <div class="tbf_wide_80" id="hc_small_response_501"></div><div class="x_close_row" id="hc_upper_right1_501"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_501', 'hc', '501'); return true;">Close</a></div>
  743.  
  744.             </div>
  745.     </div>
  746.     <div id="hc_innards_501">
  747.         <div class="tip_box_form">        
  748.             <form action="foobar.cgi" method="get" name="check_human_501">
  749.             <div class="tbf_row">
  750.                 <div class="tbf_wide_80" id="hc_rc_501">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_501"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_501', 'hc', '501'); return true;">Close</a></div>
  751.  
  752.             </div>
  753.             <div class="spacer"></div>
  754.             <div class="tbf_row" id="hc_message_box_501" style="display:none">
  755.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_501"></div></div>
  756.             </div>
  757.             <div class="spacer"></div>
  758.             <div class="tbf_row">
  759.                 <div class="tbf_wide"><div id="hc_recaptcha_501"></div></div>
  760.             </div>
  761.             <div class="spacer"></div>
  762.             <div class="tbf_row">
  763.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '501', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="3321"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  764.             </div>
  765.             <div class="spacer"></div>
  766.             </form>
  767.         </div><!-- end tip_box_form -->
  768.     </div><!-- end hum box innards -->
  769.     </div><!-- end tip box format -->
  770. </div><!-- end tip_submit box-->
  771.  
  772.  
  773.  
  774.         
  775.         
  776.         <!-- specific article details here -->
  777.         
  778.         
  779.             <p class="series_number">Article 3 of 6 in series</p>
  780.         
  781.     
  782.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  783.         
  784.         <div class="featured_meta"><div class="meta_article">18 Nov 1991 | <a href="/article/3321?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>
  785.  
  786.         <H2><a href="/article/3321">Is What You Link</a></H2>
  787.  
  788.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_501.submit_type.value='email'; document.check_human_501.author_id.value='6'; ShowTipBox('hc_501', 'hc_recaptcha_501')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a> and <a href="/author/Matt%20Neuburg">Matt Neuburg</a> <a href="javascript:void(0)" onClick="document.check_human_501.submit_type.value='email'; document.check_human_501.author_id.value='7'; ShowTipBox('hc_501', 'hc_recaptcha_501')"><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>
  789.  
  790.         <!-- article text -->
  791.         <div id="article_blurb_501"><p>MATT: We've already said that the fundamental metaphor of spaces within spaces is nothing more than an outliner, and that Storyspace's three "views" are merely graphic manifestations of that fundamental metaphor<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('501')">Show full article</a></span></p></div>
  792.         <div id="article_text_501" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('501')">Hide full article</a></p><P>MATT: We've already said that the fundamental metaphor of spaces within spaces is nothing more than an outliner, and that Storyspace's three "views" are merely graphic manifestations of that fundamental metaphor. The fun that makes Storyspace more than just an outliner starts when you begin adding links to your document. A link is a metaphorical arrow from one writing space, or from specific text within it, to another writing space. To follow a link is called "navigating," and if you navigate a link from a space whose text is open, the text closes and the text space at the other end of the link opens. This happens very fast: it isn't like clicking a button or grouped text in HyperCard, where you have to wait around for the results. In essence this is the whole purpose of Storyspace: to cause whatever is at the other end of the link to appear instantly.</P><P>Now if you think about it carefully you will see that a link or collection of links is just a hierarchy by another name: item B may be subordinate to item A in the outline, but if a link leads from B to A, then, in terms of that link, A is subordinate to B. (I didn't notice this until Michael Joyce pointed it out to me over the phone one day.) The ability to add links, therefore, is effectively the ability to superimpose a gigantic number of simultaneous hierarchies (rearrangements) upon a collection of bits of information; navigation is a way to peruse a particular hierarchy by visiting its members in turn, or to change which hierarchy you are following.</P><P>ADAM: I'm primarily used to working in the most fluid and powerful of the views, the storyspace view. I think this is because the storyspace view most closely simulates the non-linear environment that I was trying to achieve for my senior honors thesis. I say "non-linear" because the links allow one to transcend the purely linear nature of an outliner or charting tool in which b comes after a and II always follows I. Without true three dimensional displays that can render depth as well as height and width, Storyspace must rely on the Finder metaphor of windows within windows, all connected by these virtual paths to achieve the illusion of non-linearity. It's a hard concept to visualize, but one that proves surprisingly easy to use.</P><P>MATT: I disagree with Adam here; I think he really just likes storyspace view because of the way windows open and close with such hypnotic speed (which I must admit is really neat). I almost never use the storyspace view, because I think it does the least to solve the problem of the two-dimensional screen that Adam just mentioned. In storyspace view, all you can see is one writing space (which acts as the program's main window) and the writing spaces just inside it (which are shown as a bunch of boxes in the main window). The only ways you can see to move are down and up the hierarchy: you can click a space and open it to zoom in, causing it to become the new main window, or you can click the go-away box and zoom out, allowing you to see the window you were just in, arrayed next to its siblings. Furthermore, you still can't have space titles long enough to be very helpful. I mostly use chart view, because, like storyspace view, when a text space appears it is a real Mac window, but, like outline view, you can see a lot of the document at a number of levels at once. However, in chart view you get even fewer characters of each space title - only about 9 characters! So I don't really like any of the views very much! This is another one of those user interface problems that bug me so much.</P><P>But back to navigation of links.</P><P>The way you cause yourself to navigate a link is to press the Navigate tool in the toolbar, which looks like a double-headed arrow. There are two main rules built into Storyspace to dictate what will happen when you do this; it is these rules that make navigation into a simple and powerful reflection of your intended organization.</P><UL><LI><P>Rule 1: If there is more than one link from a text space, then, if these links emanate from discrete parts of the text space (particular words or pictures), navigation will automatically be along the link that starts where the text selection point was last placed. In reading, this rule means that you will follow the link that starts with the word or graphic that you select. So if you see two words that function as doors out of a text space [ADAM: I always made these explicitly different so the reader never had to guess, but other authors have left it to the reader to discover which words lead to which paths.], clicking on one should take you along its link; clicking on the other will take you along the second link, presumably to a different place.</P><LI><P>Rule 2: It is possible, though not compulsory, to name a link. If you enter a text space by navigating along a link which has a name, and if there is a link leading out of that space which has the same name, then, unless Rule 1 intervenes (the insertion point is in text from which a link emanates), navigation will automatically be along the link whose name matches the one you came in on. These two links, together with all other links sharing the same name, are called a "path." In reading this means that you can just let Storyspace show you "what's next" by repeatedly hitting the Navigate tool.</P></UL><P>ADAM: This rule is one that I didn't particularly take advantage of when I was writing my thesis, if only because I wanted the reader to continually be making involved choices. (It also helped that I didn't understand how to do this until it was too late.) However, this feature is terribly useful to authors who wish to create primary paths through the document, paths from which the readers can take alternate side trips whenever they desire (and are allowed by the author).</P><P>MATT: Exactly so. An example might be the difference between a beginner and an expert version of one document. You could set up the document so that under one set of conditions, hitting the Navigate button repeatedly would take the user through one set of "simple" texts, and under another set of conditions, it would show a larger set of "complex" texts - which could, however, include the simple texts, because if you come into a "simple" text along the "complex" path, you'll go out again along the "complex" path. Also, Adam, even though you didn't use the second method much, it's easy to imagine how one could combine the branching to a new path in Rule 1 with the following along the current path in Rule 2, to make quite an interesting document.</P><P>Actually there is a third navigation rule, but we'll discuss that later, when we talk about stand-alone documents created with Storyspace, since that is the only place where it applies.</P><P>ADAM: Three tools in the toolbar make creating links very easy. The simplest is the Note tool, which you use by selecting a word or two in a text space and then clicking on the Note icon, which looks like an asterisk. Storyspace promptly creates a new writing space called Notes (if one doesn't exist already), and in that a writing space using your words as the title. It then brings up the text space for you to type in and creates an untitled link from the original selected text into the new space, and another back to the original. The new writing space is a normal writing space and can be dragged out and arranged or left in the Notes writing space. This tool is good if all you want to do is provide a footnote (as the icon suggests) to a piece of text.</P><P>If you want to link already existing spaces, you will want to use the Link tool, which looks like an arrow. It is almost as easy. Select either a writing space or some text within a text space, click the Link tool (a path starts following your cursor at this point) and then click on the destination space. A box will pop up in the middle of the path for you to name the path, but you can just hit return if you don't wish to name that path.</P><P>The Link tool's main limitation is that you can't use it to link two spaces you don't see simultaneously. Storyspace is good about letting you open multiple views of a document, but you still may find that it just isn't easy for you to make both the start and the intended destination of a link appear on the screen at once. For that reason, Storyspace includes a Tunnel tool, which works a little differently from the standard tools. To use it, you select a space or some text, click the Link tool to get a path started, and then click on the Tunnel tool icon. The icon changes to indicate that Storyspace knows that a path can come out of the Tunnel. You can then navigate to anywhere in your document and pull the path out of the Tunnel by clicking on the Tunnel icon and then on the destination. The Tunnel tool doesn't forget about the source space, so if you wish to create multiple paths from that space, just keep pulling them out of the Tunnel tool, much as a magician pulls rabbits from a hat.</P><P>MATT: A powerful tool for building paths also permits you, within a dialog box, to select writing spaces meeting some criterion (or just manually, by name) and then do such things as generate a series of links through them all, or link each of them to another space or spaces. Since you can also assign keywords to a writing space, it would be a simple matter to use this feature to make paths that would permit you to visit all spaces marked by a given keyword (for example, in maintaining bibliographical notes or index cards).</P><!-- Is What You Link Matt Neuburg and Adam C. Engst --></div>
  793.         <div id="article_text_bottom_501" style="display:none">
  794.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('501')">Hide full article</a></p><div class="sponsorbox">
  795. <div class="sponsortext"><A HREF="http://www.econtechnologies.com/tb"><IMG SRC="http://db.tidbits.com/images/badges/chronosync.png" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>With ChronoSync you can sync, back up, or make bootable backups.<br />Sync or back up your Mac to internal or external hard drives, other<br />Macs, PCs, or remote network volumes you can mount on your Mac.<br />Learn more at <<a href="http://www.econtechnologies.com/tb.html">http://www.econtechnologies.com/tb.html</a>>!</div>
  796. </div>
  797. <div class="sponsorbox_bottom"> </div>
  798. </div>
  799.  
  800.         <!-- end article text -->
  801.     
  802.         
  803.  
  804.         
  805.     </div><div class="article"><a name="502"></a>
  806.     
  807. <!-- comment initialization routine as needed -->
  808. <div class="popup_box_with_captcha" id="hc_502" style="display: none">
  809.     <div class="tip_box_format">
  810.     <div id="hc_innards_alt_502" style="display: none">
  811.             <div class="tbf_row">
  812.                 <div class="tbf_wide_80" id="hc_small_response_502"></div><div class="x_close_row" id="hc_upper_right1_502"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_502', 'hc', '502'); return true;">Close</a></div>
  813.  
  814.             </div>
  815.     </div>
  816.     <div id="hc_innards_502">
  817.         <div class="tip_box_form">        
  818.             <form action="foobar.cgi" method="get" name="check_human_502">
  819.             <div class="tbf_row">
  820.                 <div class="tbf_wide_80" id="hc_rc_502">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_502"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_502', 'hc', '502'); return true;">Close</a></div>
  821.  
  822.             </div>
  823.             <div class="spacer"></div>
  824.             <div class="tbf_row" id="hc_message_box_502" style="display:none">
  825.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_502"></div></div>
  826.             </div>
  827.             <div class="spacer"></div>
  828.             <div class="tbf_row">
  829.                 <div class="tbf_wide"><div id="hc_recaptcha_502"></div></div>
  830.             </div>
  831.             <div class="spacer"></div>
  832.             <div class="tbf_row">
  833.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '502', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="3322"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  834.             </div>
  835.             <div class="spacer"></div>
  836.             </form>
  837.         </div><!-- end tip_box_form -->
  838.     </div><!-- end hum box innards -->
  839.     </div><!-- end tip box format -->
  840. </div><!-- end tip_submit box-->
  841.  
  842.  
  843.  
  844.         
  845.         
  846.         <!-- specific article details here -->
  847.         
  848.         
  849.             <p class="series_number">Article 4 of 6 in series</p>
  850.         
  851.     
  852.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  853.         
  854.         <div class="featured_meta"><div class="meta_article">18 Nov 1991 | <a href="/article/3322?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>
  855.  
  856.         <H2><a href="/article/3322">Storyspace Tools</a></H2>
  857.  
  858.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_502.submit_type.value='email'; document.check_human_502.author_id.value='6'; ShowTipBox('hc_502', 'hc_recaptcha_502')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a> and <a href="/author/Matt%20Neuburg">Matt Neuburg</a> <a href="javascript:void(0)" onClick="document.check_human_502.submit_type.value='email'; document.check_human_502.author_id.value='7'; ShowTipBox('hc_502', 'hc_recaptcha_502')"><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>
  859.  
  860.         <!-- article text -->
  861.         <div id="article_blurb_502"><p>MATT: Creating links is easy, but charting and rearranging them is not so easy. Links are shown graphically only in storyspace view, and even there they are readily understandable only if just one link emanates from a space and both ends of the link are at the same level of the hierarchy<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('502')">Show full article</a></span></p></div>
  862.         <div id="article_text_502" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('502')">Hide full article</a></p><P>MATT: Creating links is easy, but charting and rearranging them is not so easy. Links are shown graphically only in storyspace view, and even there they are readily understandable only if just one link emanates from a space and both ends of the link are at the same level of the hierarchy. An option to print a list of links from within Storyspace was not working properly in the version I was sent, and there is no documented way to export link information to a text file. This means that if you want to do something to just one link out of many which stem from a particular writing space - say, delete it, or reroute it - you have quite a difficult task ahead of you.</P><P>The problem is alleviated, but not entirely solved, by special authoring tools that allow you to examine and follow the links coming into and out of any writing space. One of these, called the Roadmap, shows you, in a dialog box, the names of the spaces at the other end of the links coming into and going out of any given writing space. It also shows you the name of each link. But it doesn't show you what particular text within the writing space each link emanates from; the only way to find that out is to open the writing space and see what happens when you navigate. Another tool, called the Pathmap, shows the names of all named links (paths) coming into or emanating from a given space, and, on request, tells you the names of all spaces on that path. But it tells nothing about just how those spaces are linked. A third tool, called Change Path, allows you to rename or delete a path - that is to say, it lets you rename or delete all links that have a particular name. But this does not let you delete just one link along that path; you can only delete all links with that name, and furthermore there is no way to Undo or Cancel such a powerful deletion, which seems to me sheer insanity. (You can choose Undo from the Edit menu afterwards, but this restores the links without their name; a bug, I suspect.)</P><P>A fourth tool is called Change Guards (we explain below what a guard is). It shows you the links emanating from a selected writing space, and lets you change the name or guard of a link, or the destination of the link. This turns out to be the key to how you delete a particular link when it is difficult to directly select the one you want. You find the right link in the Change Guards dialog box; change its name to something unique, like "ZZZ"; then you close that dialog, open the Change Path dialog, and delete path "ZZZ"! Pretty roundabout if you ask me. Moreover, if you choose to change the destination of the link, what happens is not that the link now points to a different space; rather, the space at the end of the link is renamed! So you can see that while I appreciate these tools, I think each of them could use some more work.</P><!-- Storyspace Tools Matt Neuburg and Adam C. Engst --></div>
  863.         <div id="article_text_bottom_502" style="display:none">
  864.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('502')">Hide full article</a></p><div class="sponsorbox">
  865. <div class="sponsortext"><A HREF="http://www.thedatarescuecenter.com/"><IMG SRC="http://db.tidbits.com/images/badges/data-rescue-center.png" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>The Data Rescue Center is dedicated to bringing you the very best<br />hard drive recovery, data migration, and photo archiving options,<br />all at affordable and fair prices for individuals and businesses.<br />Get a FREE estimate today at <<a href="http://www.thedatarescuecenter.com/">http://www.thedatarescuecenter.com/</a>></div>
  866. </div>
  867. <div class="sponsorbox_bottom"> </div>
  868. </div>
  869.  
  870.         <!-- end article text -->
  871.     
  872.         
  873.  
  874.         
  875.     </div><div class="article"><a name="503"></a>
  876.     
  877. <!-- comment initialization routine as needed -->
  878. <div class="popup_box_with_captcha" id="hc_503" style="display: none">
  879.     <div class="tip_box_format">
  880.     <div id="hc_innards_alt_503" style="display: none">
  881.             <div class="tbf_row">
  882.                 <div class="tbf_wide_80" id="hc_small_response_503"></div><div class="x_close_row" id="hc_upper_right1_503"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_503', 'hc', '503'); return true;">Close</a></div>
  883.  
  884.             </div>
  885.     </div>
  886.     <div id="hc_innards_503">
  887.         <div class="tip_box_form">        
  888.             <form action="foobar.cgi" method="get" name="check_human_503">
  889.             <div class="tbf_row">
  890.                 <div class="tbf_wide_80" id="hc_rc_503">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_503"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_503', 'hc', '503'); return true;">Close</a></div>
  891.  
  892.             </div>
  893.             <div class="spacer"></div>
  894.             <div class="tbf_row" id="hc_message_box_503" style="display:none">
  895.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_503"></div></div>
  896.             </div>
  897.             <div class="spacer"></div>
  898.             <div class="tbf_row">
  899.                 <div class="tbf_wide"><div id="hc_recaptcha_503"></div></div>
  900.             </div>
  901.             <div class="spacer"></div>
  902.             <div class="tbf_row">
  903.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '503', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="3323"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  904.             </div>
  905.             <div class="spacer"></div>
  906.             </form>
  907.         </div><!-- end tip_box_form -->
  908.     </div><!-- end hum box innards -->
  909.     </div><!-- end tip box format -->
  910. </div><!-- end tip_submit box-->
  911.  
  912.  
  913.  
  914.         
  915.         
  916.         <!-- specific article details here -->
  917.         
  918.         
  919.             <p class="series_number">Article 5 of 6 in series</p>
  920.         
  921.     
  922.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  923.         
  924.         <div class="featured_meta"><div class="meta_article">18 Nov 1991 | <a href="/article/3323?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>
  925.  
  926.         <H2><a href="/article/3323">Storyspace Readers</a></H2>
  927.  
  928.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_503.submit_type.value='email'; document.check_human_503.author_id.value='6'; ShowTipBox('hc_503', 'hc_recaptcha_503')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a> and <a href="/author/Matt%20Neuburg">Matt Neuburg</a> <a href="javascript:void(0)" onClick="document.check_human_503.submit_type.value='email'; document.check_human_503.author_id.value='7'; ShowTipBox('hc_503', 'hc_recaptcha_503')"><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>
  929.  
  930.         <!-- article text -->
  931.         <div id="article_blurb_503"><p>MATT: Thus far we've been describing things you do while Storyspace itself is up and running, and no doubt you've been thinking of uses in your own life to which its read/writable windows and configurable links between them might be put<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('503')">Show full article</a></span></p></div>
  932.         <div id="article_text_503" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('503')">Hide full article</a></p><P>MATT: Thus far we've been describing things you do while Storyspace itself is up and running, and no doubt you've been thinking of uses in your own life to which its read/writable windows and configurable links between them might be put. But there is also another entire side to Storyspace. You can create a Storyspace document and present it as a stand-alone application to someone else without Storyspace itself by building a "reader" into it. Three different styles of reader are provided, including one that permits not only clicking but also answering yes/no and typing words as a means of responding to prompts; in two of them (the ones most likely to be used) all the user sees is one text space at a time, and as screens, not as moveable windows. In any reader, the text spaces and links are absolutely fixed: neither the user nor the application has any way to alter their content once the reader is constructed.</P><P>You might think that the result is rather a hamstrung version of Storyspace, but this is not so. Readers have a different purpose from Storyspace itself; and to reflect this, they have a feature that Storyspace does not (well, it does actually: you can always step temporarily into "reader" mode from within Storyspace). It is at this point that Storyspace's third rule of navigation comes into play. When you build a document in Storyspace, you can set up "guards" on any link; these guards take effect only from inside a reader, and what they do is to require that the user have performed certain actions before being permitted to navigate that link. This gives us the following rule:</P><UL><LI><P>Rule 3: In "reader" mode, the user can navigate a given link only as long as her/his previous actions have satisfied any guards placed on that link. The guards can depend on either of two basic action types - if the user selects (or types) a certain word, or if the reader has already visited a certain text space. Moreover, you can use the Booleans, AND, OR, and NOT on these basic actions. (There's also a special guard field, BACK!, which sends the reader back to the previous writing space.) It is easy, therefore, to create documents in which the user's chain of behaviour determines in a fairly complex way what screen s/he is shown next.</P></UL><P>ADAM: The guards are what give Storyspace's links their true power. The ability to link items is rare, certainly, but I don't know of any other program that gives you the same sort of conditional control over linking. HyperCard might be able to do it with a lot of work and careful scripting, and Owl International might have come out with a newer version of Guide that can do something like this, but otherwise Storyspace is unique in this respect.</P><P>MATT: I completely agree. When I first started playing with Storyspace I thought it would be the names of links (and Rule 2) that I would rely on most; but in building my Greek paradigm reader I find that everything depends upon a combination of guards with links from particular text. Using guards you can ask a question and have the next action depend upon whether the user types/clicks Y or N; you can teach a user a repertory of typed commands (Next, Prev, Subjunctive, Help) and respond to them. That's why yet another feature of the interface bothers me. When you create a link you are always given an opportunity to name the link; but sometimes, and only sometimes (the conditioning factor is hard to explain), you are given an opportunity to name the link and attach a guard, all in one dialog. I feel you should always be shown that dialog when you create a link; it's better to let the user turn down an option than to force her/him to take two actions (attaching the guard later on) when one will do.</P><P>An included utility also permits you to turn a Storyspace document into a HyperCard 2.0 stack, in which each card consists of a scrolling field showing the text of a text space (your character formatting is lost, alas), where selecting a word by click-dragging across it has the same effect that double-clicking would have had in a Storyspace reader. In essence, this provides HyperCard with the true hypertext abilities that it still otherwise lacks. Such a stack might need considerable modification to be made more useful than a Storyspace reader, though. Tools for importing text, and for exporting it with character formatting intact to MacWrite, are also included.</P><P>ADAM: The use of the HyperCard-based reader, called Storycard, is two-fold. First, as Matt says, you can use Storycard as a replacement for one of the three readers included with Storyspace. The resulting stack is much smaller (about half the size) than a Storyspace document that has the application code embedded in it, and it can easily have extra stuff added, though of course that requires a bit of work scripting in HyperTalk. More the idea, I suspect, is that you can very easily link the Storycard stack to other HyperCard stacks that might or might not have been created by Storycard. For example, you could create a stack (to use a hackneyed and tiresome example) with training information that uses snazzy graphics and pseudo-animation and all, and link into that with a Storycard-created technical description of what was happening. Alternately, you could hang out and wait for the truly System 7-savvy version of Storyspace that should have QuickTime capabilities. Unfortunately, the HyperCard version of a Storyspace document is much slower than any of the readers, so I suspect most people will stick to using the readers for distribution.</P><!-- Storyspace Readers Matt Neuburg and Adam C. Engst --></div>
  933.         <div id="article_text_bottom_503" style="display:none">
  934.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('503')">Hide full article</a></p><div class="sponsorbox">
  935. <div class="sponsortext"><A HREF="http://www.tidbits.com/about/support/contributors.html"><IMG SRC="http://db.tidbits.com/images/badges/tb-house-ad.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>READERS LIKE YOU! Support TidBITS with a contribution today!<BR /><<a href="http://www.tidbits.com/about/support/contributors.html">http://www.tidbits.com/about/support/contributors.html</a>><BR />Special thanks this week to John & Nichola Collins, Chris Williams,<BR />John K. Lilley, and Honeymoons By Sunset for their generous support!
  936. </div>
  937. </div>
  938. <div class="sponsorbox_bottom"> </div>
  939. </div>
  940.  
  941.         <!-- end article text -->
  942.     
  943.         
  944.  
  945.         
  946.     </div><div class="article"><a name="504"></a>
  947.     
  948. <!-- comment initialization routine as needed -->
  949. <div class="popup_box_with_captcha" id="hc_504" style="display: none">
  950.     <div class="tip_box_format">
  951.     <div id="hc_innards_alt_504" style="display: none">
  952.             <div class="tbf_row">
  953.                 <div class="tbf_wide_80" id="hc_small_response_504"></div><div class="x_close_row" id="hc_upper_right1_504"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_504', 'hc', '504'); return true;">Close</a></div>
  954.  
  955.             </div>
  956.     </div>
  957.     <div id="hc_innards_504">
  958.         <div class="tip_box_form">        
  959.             <form action="foobar.cgi" method="get" name="check_human_504">
  960.             <div class="tbf_row">
  961.                 <div class="tbf_wide_80" id="hc_rc_504">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_504"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_504', 'hc', '504'); return true;">Close</a></div>
  962.  
  963.             </div>
  964.             <div class="spacer"></div>
  965.             <div class="tbf_row" id="hc_message_box_504" style="display:none">
  966.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_504"></div></div>
  967.             </div>
  968.             <div class="spacer"></div>
  969.             <div class="tbf_row">
  970.                 <div class="tbf_wide"><div id="hc_recaptcha_504"></div></div>
  971.             </div>
  972.             <div class="spacer"></div>
  973.             <div class="tbf_row">
  974.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '504', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="3324"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  975.             </div>
  976.             <div class="spacer"></div>
  977.             </form>
  978.         </div><!-- end tip_box_form -->
  979.     </div><!-- end hum box innards -->
  980.     </div><!-- end tip box format -->
  981. </div><!-- end tip_submit box-->
  982.  
  983.  
  984.  
  985.         
  986.         
  987.         <!-- specific article details here -->
  988.         
  989.         
  990.             <p class="series_number">Article 6 of 6 in series</p>
  991.         
  992.     
  993.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  994.         
  995.         <div class="featured_meta"><div class="meta_article">18 Nov 1991 | <a href="/article/3324?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>
  996.  
  997.         <H2><a href="/article/3324">Storyspace Conclusion</a></H2>
  998.  
  999.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_504.submit_type.value='email'; document.check_human_504.author_id.value='6'; ShowTipBox('hc_504', 'hc_recaptcha_504')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a> and <a href="/author/Matt%20Neuburg">Matt Neuburg</a> <a href="javascript:void(0)" onClick="document.check_human_504.submit_type.value='email'; document.check_human_504.author_id.value='7'; ShowTipBox('hc_504', 'hc_recaptcha_504')"><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>
  1000.  
  1001.         <!-- article text -->
  1002.         <div id="article_blurb_504"><p>ADAM: Storyspace does have some problems. As I said above, I would like the text entry environment, most notably the backspace key, to be more responsive<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('504')">Show full article</a></span></p></div>
  1003.         <div id="article_text_504" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('504')">Hide full article</a></p><P>ADAM: Storyspace does have some problems. As I said above, I would like the text entry environment, most notably the backspace key, to be more responsive. The sluggishness is due, Eastgate tells me, to Storyspace checking all its links each time you backspace to make sure none have been deleted. As a writing tool, Storyspace should have a snappy text entry environment. I also would like the Undo to apply to more actions. I somehow managed to find a key sequence relating to the Enter key that would clean up all of my writing spaces in the storyspace view. All fine and nice, but I didn't want to clean the window - I liked how I had them set up. That's the sort of action I'd like to be able to undo easily, although I must say that this too has been fixed in 1.12, although not through Undo, but with option-Clean Up Window, which isn't terribly obvious. [MATT: Sometimes Undo undoes things you never even did. If you accidentally create a writing space in such a way that it now has some of your old writing spaces inside it (which can be done with a single accidental click), selecting Undo will delete the new space and your old spaces as well!] Recently I've been discussing the pros and cons to adding support for infinite Undo capability to Storyspace, and assuming they can decide on an interface that will minimize user confusion, it might happen at some point. A few features, such as navigation along a path (though this one can be hard to pin down if you have a lot of guard fields) and searching for text inside text spaces don't always quite work. However, Eastgate (in the person of Mark Bernstein) took our feedback and bug warnings very seriously. There are a few more serious bugs (though fewer under System 7) that cause the program to crash on occasion, but a timed Autosave (5, 10, or 15 minutes) will save all but the last few words. Of course those last few words are the best you've ever written, but such is life.</P><P>The interface could also use a little cleaning up, a task which would be easily accomplished with a couple of hours and ResEdit. [MATT: We're talking here about things as simple as ellipse dots after some menu items that do not call up any dialog box, and lack of them after some that do.] That might clarify the dialog boxes as well, since Apple's human interface guidelines for control and item spacing in dialog boxes do make them more readable. The interim documentation I received could also use work, but Eastgate is continually improving and enhancing the manual and promises to send the final version to anyone who gets the interim version.</P><P>Overall, Storyspace is a unique program that provides some features which many programs should have, such as object linking. Like all unique programs, however, Storyspace must define new tools and paradigms for users. That effort succeeds on the whole because of the diligent efforts of the developers, but still needs work in certain areas, most notably in the advanced authoring tools that are contained in large and confusing dialog boxes, some with non-standard interface elements. Still, its concept and possibilities make Storyspace an interesting program to work with in many different situations. The continuing evolution of the interface and presentation can only increase its utility and attractiveness (and rating :-)) in the future.</P><P>MATT: I agree. My negative comments are not nitpicking; they are small things which, if changed, could make a huge difference and make this into a knockout program. Eastgate regularly sends me updates and responds positively to my suggestions, taking reports of real bugs very seriously indeed - though I find them less interested in the user-interface issues. You can build things with Storyspace that no other program I know of (in this price range) will let you build; you may find the interface pretty cranky along the way, but when you're done they work. Click on a text, type a word, and zap, the next screen is in your face. That's what Storyspace is really about.</P><!-- Storyspace Conclusion Matt Neuburg and Adam C. Engst --></div>
  1004.         <div id="article_text_bottom_504" style="display:none">
  1005.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('504')">Hide full article</a></p><div class="sponsorbox">
  1006. <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>
  1007. </div>
  1008. <div class="sponsorbox_bottom"> </div>
  1009. </div>
  1010.  
  1011.         <!-- end article text -->
  1012.     
  1013.         
  1014.  
  1015.         
  1016.     </div><!-- end show article -->
  1017.     
  1018.     
  1019.     <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_all_articles('499,500,501,502,503,504')"><span id="showhide_arts_bottom">Show the full text of all articles</span></a>
  1020.  
  1021.  
  1022. <!-- article_plus end -->
  1023. <!--
  1024. </DIV>
  1025. --><!-- end main_column DIV -->
  1026.  
  1027.  
  1028. <!-- google_ad_section_end -->
  1029.  
  1030. </div><!-- end center AJAX insert -->
  1031.  
  1032. <!-- TipBITS Search Results Lozenge -->
  1033. <div id="tipbits_results_loz" style="display:none">
  1034. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  1035. <div class="tip_footer">
  1036. <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>
  1037. </div>
  1038. <div class="tip_footer_bottom">
  1039.  </div>
  1040. </form>
  1041. </div><!-- end TipBITS Search Results lozenge -->
  1042.  
  1043.  
  1044.  
  1045.  
  1046. <!-- begin footer -->
  1047. <div id="footer">
  1048.  
  1049.  
  1050. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  1051. Web and mailing list host.</p>
  1052.  
  1053. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  1054. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  1055.  
  1056. <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>
  1057.  
  1058. </div><!-- end footer -->
  1059.  
  1060.  
  1061. </div> <!-- end centercolumn -->
  1062.  
  1063. <div class="center_bottom"> </div>
  1064.  
  1065. </div> <!-- end centercolumn_border -->
  1066.  
  1067.  
  1068. </div> <!-- end content_container -->
  1069.  
  1070. </div> <!-- end mainbody -->
  1071.  
  1072.  
  1073. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  1074. </script>
  1075. <script type="text/javascript">
  1076. _uacct = "UA-276924-3";
  1077. urchinTracker();
  1078. </script>
  1079. <script type="text/javascript"
  1080. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  1081. <script type="text/javascript">
  1082. var skimlinks_pub_id = '2559X585851';
  1083. var skimlinks_domain = 'go.tidbits.com';
  1084. skimlinks();
  1085. </script>
  1086. </body>
  1087. </html>
  1088.  
  1089.