home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbart=05437.orig < prev    next >
Text File  |  2010-09-23  |  48KB  |  812 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 : All the World's a Stagecast</title>
  9.  
  10.     <meta name="title" content="TidBITS : All the World's a Stagecast">
  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='4114'>
  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/489" >#489, 19 Jul 99</A></li>
  307. <li><A HREF="/issue/488" >#488, 12 Jul 99</A></li>
  308. <li><A HREF="/issue/487" >#487, 05 Jul 99</A></li>
  309. <li><A HREF="/issue/486" >#486, 21 Jun 99</A></li>
  310. <li><A HREF="/issue/485" >#485, 14 Jun 99</A></li>
  311. <li><A HREF="/issue/484" >#484, 07 Jun 99</A></li>
  312. <li><A HREF="/issue/483" >#483, 31 May 99</A></li>
  313. <li><A HREF="/issue/482" >#482, 24 May 99</A></li>
  314. <li><A HREF="/issue/481" >#481, 17 May 99</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://nuance.com/dragon/mac">Nuance</a></li>
  358.  
  359. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  360.  
  361. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  362.  
  363. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  364.  
  365. <li><a href="http://www.smilesoftware.com/">Smile</a></li>
  366.  
  367. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  368.  
  369. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  370.  
  371. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  372.  
  373. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</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://www.econtechnologies.com/tb">Econ Technologies</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. <a href="http://www.usefulfruit.com/tb"><img src="/images/sponsors/tearoffbox_wide_tips_usefulfruit.gif" height="58" width="164" border="0" alt="sponsor logo"></a>
  464. </div>
  465. <h6>Avoid Naming Pear Note Files</h6>
  466. <p><p>If you create a lot of documents, coming up with a name for them can sometimes be a hassle. This is especially true now that search is becoming a more prevalent way to find documents. Pear Note provides a way to have the application automatically generate a filename so you can avoid this hassle. To use this:</p><ol>
  467.     <li>Open Saving under Pear Note's preferences.</li>
  468.     <li>Select a default save location.</li>
  469.     <li>Select a default save name template (Pear Note's help documents all the fields that can be automatically filled in).</li>
  470.     <li>Check the box stating that Command-S saves without prompting.</li>
  471.     <li>If you decide you want to name a particular note later, just use Save As... instead.</li>
  472. </ol></p>
  473. <p>Visit <a href="http://www.usefulfruit.com/tb">Useful Fruit Software</a></p>
  474. </div>
  475.  
  476. <div class="tearoffbox_wide_bottom_tips">
  477. <div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/236">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  478.  
  479. <p class="credit">Written by<br><a href="/author/Adam%20C.%20Engst">Adam C. Engst</a></p></div></div>
  480.  
  481. </div>
  482.  
  483. <div class="tearoffbox_wide_tips_submit">
  484. <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>
  485. <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>
  486. </div>
  487. <div class="tearoffbox_wide_bottom_tips_submit">
  488.  
  489. </div>
  490.  
  491. </div><!-- end tearoffbox_wide_tips -->
  492. </div><!-- end tearoffbox_wide_container for tips-->
  493. <!-- end tearoff box wide -->
  494.  
  495.  
  496.  
  497. <!-- begin 300 x 250 ad -->
  498.  
  499. <div id="content_ad_square">
  500. <script type='text/javascript'><!--// <![CDATA[
  501.     OA_show(5);
  502. // ]]> --></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>
  503. </div><!-- end 300 x 250 ad -->
  504.  
  505. <!-- TBTalk items -->
  506. <div class="tearoffbox_wide_container">
  507.  
  508. <div class="tearoffbox_wide_p">
  509. <p class="tearoffbox_wide_top_p"> </p>
  510.  
  511. <h5>Recent TidBITS Talk Discussions</h5>
  512. <ul>
  513.  
  514. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf95241">Alternatives to MobileMe for syncing calendars between iPad/Mac</a> (1 message)</LI>
  515.  
  516. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf94dbb">Free anti-virus for the Mac</a> (20 messages)</LI>
  517.  
  518. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf934e6">iTunes 10 syncing iPod Touch 4.1</a> (2 messages)</LI>
  519.  
  520. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf92a22">Thoughts about Ping</a> (16 messages)</LI>
  521.  
  522. </ul>
  523.  
  524. <div class="tearoffbox_wide_bottom_p"> </div>
  525.  
  526. </div><!-- end tearoffbox_wide -->
  527.  
  528. </div><!-- end tearoffbox_wide_container for TBtalk items -->
  529.  
  530. <!-- start takecontrol_ad -->
  531. <script type='text/javascript'><!--// <![CDATA[
  532.     OA_show(7);
  533. // ]]> --></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 -->
  534.  
  535. <!-- begin tearoff box 2 -->
  536.  
  537. <div class="tearoffbox_wide_container">
  538.  
  539. <div class="tearoffbox_wide_p">
  540. <p class="tearoffbox_wide_top_p"> </p>
  541.  
  542. <h5>Related Articles</h5>
  543. <ul>
  544. <li><a href="/article/6730">Mac OS X: Breeds of Programs, Part 3</a> (25 Feb 02)</li>
  545. <li><a href="/article/1160">Get Your Hands on Prograph</a> (29 Jan 96)</li>
  546.  
  547. </ul>
  548.  
  549. <p class="tearoffbox_wide_bottom_p"> </p>
  550.  
  551. </div><!-- end tearoffbox_wide -->
  552. </div><!-- end tearoffbox_wide_container -->
  553.  
  554. <!-- end tearoff box 2 -->
  555.  
  556.  
  557. <!-- begin tearoff box for series -->
  558.  
  559. <div class="tearoffbox_wide_container">
  560.  
  561. <div class="tearoffbox_wide_p">
  562. <p class="tearoffbox_wide_top_p"> </p>
  563.  
  564. <h5>Other articles in the series <a href="/series/1145">StageCast</a></h5>
  565. <ul>
  566.  
  567. </ul>
  568.  
  569. <p class="tearoffbox_wide_bottom_p"> </p>
  570.  
  571. </div><!-- end tearoffbox_wide -->
  572. </div><!-- end tearoffbox_wide_container -->
  573.  
  574. <!-- end tearoff box -->
  575.  
  576.  
  577.  
  578.  
  579. <!-- begin tearoff box 1 -->
  580.  
  581. <div class="tearoffbox_wide_container">
  582.  
  583. <div class="tearoffbox_wide">
  584. <p class="tearoffbox_wide_top"> </p>
  585.  
  586. <h5>Published in <a href="/issue/485">TidBITS 485</a>.<br><a href="http://www.tidbits.com/list">Subscribe</a> to our weekly email edition.</h5>
  587. <ul>
  588. <li><A HREF="/article/5432">TidBITS Available in Russian</A></li>
  589. <li><A HREF="/article/5433">Apple Ships QuickTime 4.0</A></li>
  590. <li><A HREF="/article/5434">FileMaker Pro 4.1v2 Does Four-Digit Years</A></li>
  591. <li><A HREF="/article/5435">Synchronize Pro 4.0 Syncs over Internet</A></li>
  592. <li><A HREF="/article/5436">Macintosh Model Implosion: What's in a Name?</A></li>
  593.  
  594. </ul>
  595.  
  596. <p class="tearoffbox_wide_bottom"> </p>
  597.  
  598. </div><!-- end tearoffbox_wide -->
  599. </div><!-- end tearoffbox_wide_container -->
  600.  
  601. <!-- end tearoff box 1 -->
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609. <div id="rightcolumn_bottom">
  610.  
  611. </div>
  612.  
  613.     </div><!-- end rightcolumn -->
  614.  
  615.  
  616. </div><!-- end rightcolumn_container -->
  617.  
  618.  
  619.  
  620. <!-- featured articles -->
  621.  
  622. <div id="center_ajax_sub" class="instapaper_body">
  623.  
  624. <!-- google_ad_section_start -->
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645. <!-- issue, article, or series -->
  646.  
  647.     
  648.     
  649.     
  650.     
  651.     
  652.         
  653.     <!-- show article(s) -->
  654.     <div class="article"><a name="4114"></a>
  655.     
  656. <!-- comment initialization routine as needed -->
  657. <div class="popup_box_with_captcha" id="hc_4114" style="display: none">
  658.     <div class="tip_box_format">
  659.     <div id="hc_innards_alt_4114" style="display: none">
  660.             <div class="tbf_row">
  661.                 <div class="tbf_wide_80" id="hc_small_response_4114"></div><div class="x_close_row" id="hc_upper_right1_4114"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4114', 'hc', '4114'); return true;">Close</a></div>
  662.  
  663.             </div>
  664.     </div>
  665.     <div id="hc_innards_4114">
  666.         <div class="tip_box_form">        
  667.             <form action="foobar.cgi" method="get" name="check_human_4114">
  668.             <div class="tbf_row">
  669.                 <div class="tbf_wide_80" id="hc_rc_4114">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_4114"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4114', 'hc', '4114'); return true;">Close</a></div>
  670.  
  671.             </div>
  672.             <div class="spacer"></div>
  673.             <div class="tbf_row" id="hc_message_box_4114" style="display:none">
  674.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_4114"></div></div>
  675.             </div>
  676.             <div class="spacer"></div>
  677.             <div class="tbf_row">
  678.                 <div class="tbf_wide"><div id="hc_recaptcha_4114"></div></div>
  679.             </div>
  680.             <div class="spacer"></div>
  681.             <div class="tbf_row">
  682.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '4114', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="5437"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  683.             </div>
  684.             <div class="spacer"></div>
  685.             </form>
  686.         </div><!-- end tip_box_form -->
  687.     </div><!-- end hum box innards -->
  688.     </div><!-- end tip box format -->
  689. </div><!-- end tip_submit box-->
  690.  
  691.  
  692.  
  693.         
  694.         
  695.         <!-- specific article details here -->
  696.         
  697.         
  698.             
  699.         
  700.     
  701.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  702.         
  703.         <div class="featured_meta"><div class="meta_article">14 Jun 1999 | <a href="/article/5437?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>
  704.  
  705.         <H2>All the World's a Stagecast</H2>
  706.  
  707.         <p class="byline">by <a href="/author/Matt%20Neuburg">Matt Neuburg</a> <a href="javascript:void(0)" onClick="document.check_human_4114.submit_type.value='email'; document.check_human_4114.author_id.value='7'; ShowTipBox('hc_4114', 'hc_recaptcha_4114')"><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>
  708.  
  709.         <!-- article text -->
  710.         
  711.         <div id="article_box_4114"><P>About three years ago, when the financial picture at Apple Computer was at its bleakest, a series of austerity measures resulted in the elimination of many cool employees and the long-term projects on which they were engaged. Such advanced but still nascent technologies as the Dylan programming language, OpenDoc, and ScriptX were aborted before seeing the full light of day. Among the victims was Cocoa, a wonderful program - aimed particularly at children - for constructing simple animated games. Cocoa was cool both for what it did and for how it was written: originally prototyped as KidSim in Apple's own Sk8 authoring environment (another sad loss), Cocoa was rewritten in Prograph, a visual programming language that matched Cocoa's own visual approach.</P><P><<A HREF="http://macweek.zdnet.com/mw_1003/news_atg.html">http://macweek.zdnet.com/mw_1003/news_atg.html</A>><BR><<A HREF="http://developer.apple.com/devnews/devnews071197.html#tool">http://developer.apple.com/devnews/ devnews071197.html#tool</A>><BR><<A HREF="http://db.tidbits.com/article/01160">http://db.tidbits.com/article/01160</A>></P><P>Apple proudly featured Cocoa in a Macworld Expo keynote speech, and several enterprising youngsters even went into business with Cocoa-based Web sites. Then it faded from sight. But Cocoa wasn't dead, or even dormant: it was metamorphosing, at the hands of its inventors - Allen Cypher, longtime advocate of programming by demonstration, and David Smith, inventor of (among other things) icons and dialog boxes - within a new private company headed by Apple's former Chief Scientist, Larry Tesler. Now, like a butterfly, Cocoa has emerged as the cross-platform, Java-based Stagecast Creator.</P><P><<A HREF="http://www.stagecast.com/">http://www.stagecast.com/</A>><BR><<A HREF="http://www.stagecast.com/subpage/found.htm">http://www.stagecast.com/subpage/found.htm</A>></P><P><STRONG>Setting the Stage</STRONG> -- Imagine you have a rectangular grid of invisible squares; they can be any size and number, but let's say a square is 36 by 36 pixels, and let's say the total grid is ten squares high and fifteen squares wide. The grid holds a background picture, which you import from a GIF or JPEG image. This is the stage on which your animation takes place.</P><P>A character in your animation is a rectangle of pixels, which you can edit in a paint window. This rectangle's dimensions are multiples of the stage's unit squares, with a typical character being exactly one unit square; so, in our example, a character could be 36 by 36 pixels. You paint a character, and place it in a square of the stage's grid, where it is automatically drawn with masking in front of the background (so that even within the character's square, the background appears around the character's outline).</P><P>Now we're going to construct our animation, like the successive frames of a cartoon. At regular intervals, a clock will tick, and the next frame will be generated by asking each character on the stage whether it wants to change anything about how it is drawn. For example, a character might wish to be redrawn in the square to the right of its current square; if this happens over the course of several frames, the character will appear to move in a straight line to the right. Or, since each character can own many images (or "appearances"), a character might want to change its image. So, for example, if a character has an appearance where it is facing right with its right leg forward, and another where it is facing right with its left leg forward, then by alternating those appearances while also being redrawn in successive rightward squares, the character will appear to walk to the right.</P><P><STRONG>Animation Rules</STRONG> -- So far, I could be describing any sprite-based animation system. What characterizes Stagecast's approach, though, is the way you tell a character what to do when the animation runs: you show it, by physical demonstration, the rule you want it to obey. You choose the "rule tool," click a character on the stage, and a special border appears around this character; you stretch the border to show the character the relevant area, and move the character within that area to show it what to do. For example, to tell a character to move to its right, you stretch its rule border, so that the border embraces the character and the empty square to its right, and slide the character into the square on the right. When the animation runs, the character makes that movement of its own accord.</P><P>What makes the animation tell an interesting story is that every rule has an implicit conditional component. Even in the simple example of moving the character one square to the right, the character remembers its own appearance, and the fact that the square to the right was empty, and performs the action only if both conditions are met. If you want character A to move rightwards into a square occupied by character B, you need a different rule: you must place the characters next to each other and make the rule border embrace them both, so that character A sees character B as involved in the rule. To build your animation, then, you give each character several rules, corresponding to the situations in which the character finds itself. The character tests each rule's conditions in turn and obeys the first rule whose conditions match its situation. The art of making an animation is the art of giving each character the right rules, in the right order, so that all the characters behave correctly.</P><P>There is much more to making rules, and there are many more effects you can achieve. Characters can make other characters appear and disappear. They can make sounds. They can substitute a different background picture. They can react to key presses, or to mouse clicks, for a degree of user interactivity. Characters can have variables; they can change the value of a variable, or test a variable's value as part of a rule's conditions.</P><P>Clearly, then, what you're doing as you teach a character its rules and arrange them is programming. You're programming in a visual language, within the circumscribed environment of a little cartoon world; but you are programming. And since each character has its own rules, while multiple copies of a character share the same rules, you're doing object-oriented programming. Thus, Stagecast is a way for children of all ages to absorb the principles of programming while enjoying the instant creative satisfaction of bringing a cartoon world to life.</P><P><STRONG>Exploring the Character</STRONG> -- It really does work. I've shown StageCast to some children, and they've caught the basics right away. They enjoy creating even the simplest character and making it move, and the notion of teaching a character its rules by demonstration presents no difficulties. Stagecast comes superbly documented with a brilliant interactive online tutorial full of wonderfully amusing animations (who can resist Bungee the jungle boy, beset by camera-clicking tourists who descend from a helicopter?), plus a printed manual in large type and simple language, and a construction kit that guides you through building an entire animation from scratch. Between the tutorial examples and the extra clip art that's included, you can easily assemble an original animation without doing any drawing of your own. Thus, it's easy to get started, easy to delve deeper as the mood takes you, and fun the whole time.</P><P>Delving deeper means exploring the Stagecast programming language's higher levels. In particular, the basic algorithm which says that a character performs its first rule whose conditions are met on every frame is too limiting, so Stagecast lets you combine rules within "boxes" that obey other algorithms. A box can shuffle its rules before executing (so you won't know the order in which they'll be tested), perform all its rules in succession, or attempt to perform its next rule cyclically on each successive frame. By combining boxes within boxes, you can generate sophisticated algorithms. It's easy to debug a character's behavior, because Stagecast has a test mode where it shows you, with red and green lights and squares, which rule it will obey in the current situation, and why.</P><P>Although I can't say enough in praise of how ingeniously Stagecast's programming language is implemented, you're still limited to the constructs that the language supplies, and you must learn to think within them. To give just one example, such an elementary notion as "or" cannot be expressed at all; you must make separate rules covering each case, which is painful to do and even more painful to maintain if the "or" is part of a larger set of "ands." As a result, you must be ingenious yourself, resorting often to tricks and workarounds to achieve the effect you're after. I worry that young users will become either frustrated or imbued with undesirable programming habits. Plus, the physical nature of Stagecast's programming environment has its drawbacks; as rules become more complicated, with boxes or multiple conditions, it becomes harder to manipulate the images on screen to see what you're doing.</P><P><STRONG>Rough Venue</STRONG> -- This physical clumsiness, which often obtrudes itself, stems from Stagecast's one great drawback: it's a Java application. Although this lets Stagecast run identically on Windows and Mac, and over the Internet, you might as well not be using a Mac at all. Everything happens within a single large window - that is, it had better be large; an 800 by 600 monitor is not large enough to use Stagecast with any comfort. Stagecast's menus appear inside this window, which is particularly hard to get used to (and on my machine, accidentally choosing a normal menu from the Mac's menu bar causes a crash). Within this window Stagecast also draws its pseudo- or "child" windows. The whole thing feels like Virtual PC: you're essentially simulating an alien machine within a single window.</P><P>The simulation is not particularly fast. Animations run quickly enough, but on my fastest computer, a 250 MHz Power Mac G3, actions such as starting up, quitting, and opening or (worst of all) dragging a window, are so painfully slow that you think the computer has locked up. Kids are more likely to have hand-me-down computers than the fastest G3s, so the performance problems are especially troubling.</P><P>Nor is the simulation particularly pleasant. Unfamiliar interface elements such as scroll arrows that point the wrong way and lack scrollbars, tab rectangles that reveal or hide regions of a window, and colored corners that you drag to change a window's size, are clumsy devices, ill-behaved and too tiny to click comfortably. Type is too small as well. There are few keyboard shortcuts; everything must be done by clicking and dragging. I understand why the Java implementation was chosen, but I can't bring myself to like it.</P><P>Still, I don't want to leave the impression that Stagecast is other than delightful. This program is both educational and engaging; it's also a testament to its makers' ingenuity and originality. It's the perfect blend of programming and play: how could any child not be attracted to it? Personally, I enjoy making animations, and then I enjoy playing with them or just watching them. And so can you. Even if you don't buy Stagecast Creator, you can use Stagecast Player, a free 2 MB download, to run Stagecast animations, and even view them in your browser (Macintosh users must use Apple's Macintosh Runtime for Java (MRJ) 2.1, which limits the field to Internet Explorer). You can download sample animations; I've even posted one of my own, a little entertainment easily cobbled together from pieces provided with the program, that I call "Beachdog". (Be patient downloading it, it's 350K.)</P><P><<A HREF="http://www.stagecast.com/worlds/">http://www.stagecast.com/worlds/</A>><BR><<A HREF="http://www.jetlink.net/~mattn/downloads/beachdog.html">http://www.jetlink.net/~mattn/downloads/ beachdog.html</A>><BR><<A HREF="http://www.apple.com/java/">http://www.apple.com/java/</A>></P><P>Stagecast Creator retails for $60 and comes on a hybrid Mac/Windows CD. Installation requires 35 MB, plus 11 MB for MRJ, which is included. StageCast Creator is available for PowerPC-based systems only; a fast machine with Mac OS 8.1 or better is recommended. A trial version is available for download.</P><P><<A HREF="http://www.stagecast.com/subpage/down.htm">http://www.stagecast.com/subpage/down.htm</A>></P><!-- All the World's a Stagecast Matt Neuburg --></div>
  712.         
  713.  
  714.         <!-- end article text -->
  715.     
  716.         
  717.         <!-- PayBITS -->
  718.         
  719.  
  720.         
  721. <p> </p><div class="sponsorbox">
  722. <div class="sponsortext"><A HREF="http://www.smilesoftware.com/"><IMG SRC="http://db.tidbits.com/images/badges/SmileLogo2010-50x50.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>Get more productive with software from Smile: PDFpen for<br />editing PDFs; TextExpander for saving time and keystrokes while you<br />type; DiscLabel for designing CD/DVD labels and inserts. Free demos,
  723. <br />fast and friendly customer support. <<a href="http://www.smilesoftware.com/">http://www.smilesoftware.com/</a>></div>
  724. </div>
  725. <div class="sponsorbox_bottom"> </div>
  726.  
  727.  
  728.         <!-- comments section -->
  729.         
  730.         <!-- end comment show-->
  731.         
  732.         <!-- end comments section -->
  733.  
  734.  
  735.         <!-- end article loop details -->
  736.         
  737.         
  738.  
  739.         
  740.     </div><!-- end show article -->
  741.     
  742.     
  743.  
  744.  
  745. <!-- article_plus end -->
  746. <!--
  747. </DIV>
  748. --><!-- end main_column DIV -->
  749.  
  750.  
  751. <!-- google_ad_section_end -->
  752.  
  753. </div><!-- end center AJAX insert -->
  754.  
  755. <!-- TipBITS Search Results Lozenge -->
  756. <div id="tipbits_results_loz" style="display:none">
  757. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  758. <div class="tip_footer">
  759. <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>
  760. </div>
  761. <div class="tip_footer_bottom">
  762.  </div>
  763. </form>
  764. </div><!-- end TipBITS Search Results lozenge -->
  765.  
  766.  
  767.  
  768.  
  769. <!-- begin footer -->
  770. <div id="footer">
  771.  
  772. <div id="qr_tag_right"><div id="qr_tag_image"><img src="http://db.tidbits.com/tags/5437.png"></div><div id="qr_tag_text"><a href="http://db.tidbits.com/article/10616">What's this image?</a></div></div>
  773. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  774. Web and mailing list host.</p>
  775. <p>Unless otherwise noted, this article is copyright © 1999 <a href="/author/Matt%20Neuburg">Matt Neuburg</a></p>
  776. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  777. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  778.  
  779. <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>
  780.  
  781. </div><!-- end footer -->
  782.  
  783.  
  784. </div> <!-- end centercolumn -->
  785.  
  786. <div class="center_bottom"> </div>
  787.  
  788. </div> <!-- end centercolumn_border -->
  789.  
  790.  
  791. </div> <!-- end content_container -->
  792.  
  793. </div> <!-- end mainbody -->
  794.  
  795.  
  796. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  797. </script>
  798. <script type="text/javascript">
  799. _uacct = "UA-276924-3";
  800. urchinTracker();
  801. </script>
  802. <script type="text/javascript"
  803. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  804. <script type="text/javascript">
  805. var skimlinks_pub_id = '2559X585851';
  806. var skimlinks_domain = 'go.tidbits.com';
  807. skimlinks();
  808. </script>
  809. </body>
  810. </html>
  811.  
  812.