home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbart=03180.orig < prev    next >
Text File  |  2010-09-23  |  44KB  |  787 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 : Microkernel Mac</title>
  9.  
  10.     <meta name="title" content="TidBITS : Microkernel Mac">
  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='637'>
  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/115" >#115, 06 Apr 92</A></li>
  307. <li><A HREF="/issue/114" >#114, 01 Apr 92</A></li>
  308. <li><A HREF="/issue/113" >#113, 30 Mar 92</A></li>
  309. <li><A HREF="/issue/112" >#112, 23 Mar 92</A></li>
  310. <li><A HREF="/issue/111" >#111, 16 Mar 92</A></li>
  311. <li><A HREF="/issue/110" >#110, 09 Mar 92</A></li>
  312. <li><A HREF="/issue/109" >#109, 02 Mar 92</A></li>
  313. <li><A HREF="/issue/108" >#108, 24 Feb 92</A></li>
  314. <li><A HREF="/issue/107" >#107, 17 Feb 92</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.webcrossing.com/">Web Crossing</a></li>
  358.  
  359. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  360.  
  361. <li><a href="http://www.smilesoftware.com/">Smile</a></li>
  362.  
  363. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  364.  
  365. <li><a href="http://nuance.com/dragon/mac">Nuance</a></li>
  366.  
  367. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  368.  
  369. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  370.  
  371. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  372.  
  373. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</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.thedatarescuecenter.com/">The Data Rescue Center</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>Opening a Folder from the Dock</h6>
  466. <p>Sick of the dock on Mac OS X Leopard not being able to open folders with a simple click, like sanity demands and like it used to be in Tiger? You can, of course click it, and then click again on Open in Finder, but that's twice as many clicks as it used to be. (And while you're at it, Control-click the folder, and choose both Display as Folder and View Content as List from the contextual menu. Once you have the content displaying as a list, there's an Open command right there, but that requires Control-clicking and choosing a menu item.) The closest you can get to opening a docked folder with a single click is Command-click, which opens its enclosing folder. However, if you instead put a file from the docked folder in the Dock, and Command-click that file, you'll see the folder you want. Of course, if you forget to press Command when clicking, you'll open the file, which may be even more annoying.
  467. </p>
  468. <p>Visit <a href="http://eolake.blogspot.com/2008/10/leopard-dock-tip.html">Eolake's Blog</a></p>
  469. </div>
  470.  
  471. <div class="tearoffbox_wide_bottom_tips">
  472. <div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/84">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  473. <p class="credit">Submitted by<br>Eolake Stobblehouse</p>
  474. </div></div>
  475.  
  476. </div>
  477.  
  478. <div class="tearoffbox_wide_tips_submit">
  479. <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>
  480. <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>
  481. </div>
  482. <div class="tearoffbox_wide_bottom_tips_submit">
  483.  
  484. </div>
  485.  
  486. </div><!-- end tearoffbox_wide_tips -->
  487. </div><!-- end tearoffbox_wide_container for tips-->
  488. <!-- end tearoff box wide -->
  489.  
  490.  
  491.  
  492. <!-- begin 300 x 250 ad -->
  493.  
  494. <div id="content_ad_square">
  495. <script type='text/javascript'><!--// <![CDATA[
  496.     OA_show(5);
  497. // ]]> --></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>
  498. </div><!-- end 300 x 250 ad -->
  499.  
  500. <!-- TBTalk items -->
  501. <div class="tearoffbox_wide_container">
  502.  
  503. <div class="tearoffbox_wide_p">
  504. <p class="tearoffbox_wide_top_p"> </p>
  505.  
  506. <h5>Recent TidBITS Talk Discussions</h5>
  507. <ul>
  508.  
  509. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf95241">Alternatives to MobileMe for syncing calendars between iPad/Mac</a> (1 message)</LI>
  510.  
  511. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf94dbb">Free anti-virus for the Mac</a> (20 messages)</LI>
  512.  
  513. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf934e6">iTunes 10 syncing iPod Touch 4.1</a> (2 messages)</LI>
  514.  
  515. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf92a22">Thoughts about Ping</a> (16 messages)</LI>
  516.  
  517. </ul>
  518.  
  519. <div class="tearoffbox_wide_bottom_p"> </div>
  520.  
  521. </div><!-- end tearoffbox_wide -->
  522.  
  523. </div><!-- end tearoffbox_wide_container for TBtalk items -->
  524.  
  525. <!-- start takecontrol_ad -->
  526. <script type='text/javascript'><!--// <![CDATA[
  527.     OA_show(7);
  528. // ]]> --></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 -->
  529.  
  530. <!-- begin tearoff box 2 -->
  531.  
  532. <div class="tearoffbox_wide_container">
  533.  
  534. <div class="tearoffbox_wide_p">
  535. <p class="tearoffbox_wide_top_p"> </p>
  536.  
  537. <h5>Related Articles</h5>
  538. <ul>
  539. <li><a href="/article/6397">TidBITS Goes to Eleven</a> (16 Apr 01)</li>
  540.  
  541. </ul>
  542.  
  543. <p class="tearoffbox_wide_bottom_p"> </p>
  544.  
  545. </div><!-- end tearoffbox_wide -->
  546. </div><!-- end tearoffbox_wide_container -->
  547.  
  548. <!-- end tearoff box 2 -->
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. <!-- begin tearoff box 1 -->
  557.  
  558. <div class="tearoffbox_wide_container">
  559.  
  560. <div class="tearoffbox_wide">
  561. <p class="tearoffbox_wide_top"> </p>
  562.  
  563. <h5>Published in <a href="/issue/111">TidBITS 111</a>.<br><a href="http://www.tidbits.com/list">Subscribe</a> to our weekly email edition.</h5>
  564. <ul>
  565. <li><A HREF="/article/3178">VIM explanation</A></li>
  566. <li><A HREF="/article/3179">StuffIt Expander</A></li>
  567. <li><A HREF="/article/3181">Macworld Modifications</A></li>
  568. <li><A HREF="/article/3182">Panorama II Review</A></li>
  569.  
  570. </ul>
  571.  
  572. <p class="tearoffbox_wide_bottom"> </p>
  573.  
  574. </div><!-- end tearoffbox_wide -->
  575. </div><!-- end tearoffbox_wide_container -->
  576.  
  577. <!-- end tearoff box 1 -->
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585. <div id="rightcolumn_bottom">
  586.  
  587. </div>
  588.  
  589.     </div><!-- end rightcolumn -->
  590.  
  591.  
  592. </div><!-- end rightcolumn_container -->
  593.  
  594.  
  595.  
  596. <!-- featured articles -->
  597.  
  598. <div id="center_ajax_sub" class="instapaper_body">
  599.  
  600. <!-- google_ad_section_start -->
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621. <!-- issue, article, or series -->
  622.  
  623.     
  624.     
  625.     
  626.     
  627.     
  628.         
  629.     <!-- show article(s) -->
  630.     <div class="article"><a name="637"></a>
  631.     
  632. <!-- comment initialization routine as needed -->
  633. <div class="popup_box_with_captcha" id="hc_637" style="display: none">
  634.     <div class="tip_box_format">
  635.     <div id="hc_innards_alt_637" style="display: none">
  636.             <div class="tbf_row">
  637.                 <div class="tbf_wide_80" id="hc_small_response_637"></div><div class="x_close_row" id="hc_upper_right1_637"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_637', 'hc', '637'); return true;">Close</a></div>
  638.  
  639.             </div>
  640.     </div>
  641.     <div id="hc_innards_637">
  642.         <div class="tip_box_form">        
  643.             <form action="foobar.cgi" method="get" name="check_human_637">
  644.             <div class="tbf_row">
  645.                 <div class="tbf_wide_80" id="hc_rc_637">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_637"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_637', 'hc', '637'); return true;">Close</a></div>
  646.  
  647.             </div>
  648.             <div class="spacer"></div>
  649.             <div class="tbf_row" id="hc_message_box_637" style="display:none">
  650.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_637"></div></div>
  651.             </div>
  652.             <div class="spacer"></div>
  653.             <div class="tbf_row">
  654.                 <div class="tbf_wide"><div id="hc_recaptcha_637"></div></div>
  655.             </div>
  656.             <div class="spacer"></div>
  657.             <div class="tbf_row">
  658.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '637', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="3180"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  659.             </div>
  660.             <div class="spacer"></div>
  661.             </form>
  662.         </div><!-- end tip_box_form -->
  663.     </div><!-- end hum box innards -->
  664.     </div><!-- end tip box format -->
  665. </div><!-- end tip_submit box-->
  666.  
  667.  
  668.  
  669.         
  670.         
  671.         <!-- specific article details here -->
  672.         
  673.         
  674.             
  675.         
  676.     
  677.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  678.         
  679.         <div class="featured_meta"><div class="meta_article">16 Mar 1992 | <a href="/article/3180?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>
  680.  
  681.         <H2>Microkernel Mac</H2>
  682.  
  683.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_637.submit_type.value='email'; document.check_human_637.author_id.value='6'; ShowTipBox('hc_637', 'hc_recaptcha_637')"><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>
  684.  
  685.         <!-- article text -->
  686.         
  687.         <div id="article_box_637"><P>When NeXT or Amiga owners feel the need to disparage the Mac in conversation, they often mention the fact that Mac doesn't have "true" multitasking, tacking a little verbal sneer on the tail end of "true." That generally means that the Mac uses what's called "cooperative multitasking" instead of "pre-emptive multitasking."</P><P>I'm telling you this because Apple announced last week that it will be remodeling the Macintosh operating system to add pre-emptive multitasking and other operating system goodies including multi-threading, memory protection, support for dynamic link libraries, and some new I/O (input/output) features that will help peripherals to keep up with the CPU. Why is this good news and not merely propeller-head tech-speak? Well, let me explain what each of those goodies will do for you and then you'll see. For those of you fluent in said tech-speak, I'm aware that I'm over-simplifying. :-)</P><P><STRONG>More multitasking</STRONG> -- Sooner or later, you'll need to figure out the difference between cooperative and pre-emptive multitasking (it's a great way to sound technical :-)). Please keep in mind that different people define this stuff differently. This is a painless-as-possible mainstream explanation.</P><P>In a cooperative system, the foreground application cooperates by deciding how much CPU time (the amount of time the microprocessor spends executing useful commands) it wishes to give up to background applications, whereas in a pre-emptive situation, the operating system mediates among the priorities of active applications. For example, on the Mac, Nisus dominates the CPU and doesn't give other applications much CPU time. Nisus gets to make that decision and is perfectly within its cooperative multitasking rights. In a pre-emptive system, every running application has a priority level, and the operating system parcels out CPU time based on those priority levels and the number of applications running.</P><P>A difficulty with pre-emptive multitasking is that in an ideal single-user interactive system, the foreground application is completely responsive. (If you click the Ignore button in Word 5's spell checker, you do not want the CPU giving priority to other programs since it's slow enough already!) In a pre-emptive system you can often manually set an application's priority level, but this can be a pain.</P><P>That's the advantage of cooperative multitasking - the foreground application can appropriate an ample amount of CPU time to being responsive. Windowing systems on fast Unix machines are often less responsive because the windowing system is merely another application that gets its share of CPU time, no matter how much you may use it. On the other hand, in a cooperative multitasking system, the computer may not work as efficiently because the CPU spends lots of cycles just spinning its wheels waiting for you to do something. For example, I'm composing this article in Nisus, and Navigator was recently downloading in the background. Nisus took so much CPU time that I had to send Nisus to the background so that Navigator could finish the download. If Nisus had been more willing to share CPU time, Navigator could have finished up during some of the extra CPU cycles. If I were using a Quadra instead of our SE/30, the CPU would be running even faster and Nisus would be wasting even more of the CPU's time. Remember, a CPU cycles many times per second, so if priorities are set right, pre-emptive multitasking can work out quite well.</P><P>In an ideal world, Apple might use a mixed scheduling technique that would give a lot of CPU time to the foreground application but would allow the operating system to parcel out CPU time to each of the background applications according to their priorities. That would provide fast foreground response while still allowing multiple background programs to do useful work.</P><P><STRONG>Multi-threading</STRONG> -- Multi-threading allows a single application to do multiple things at the same time. Using multi-threading, a spreadsheet could simultaneously print a document, recalculate formulas, and accept data entry. Each task within the application, printing, calculating, accepting data, acts like a little program in a cooperative multitasking system, allowing you to keep working while other parts of the program do other tasks. Both multi-threading and pre-emptive multitasking will be even more necessary when Apple releases voice and handwriting recognition products because the Mac will have to be continually running the recognition code no matter what else is happening.</P><P><STRONG>Kevlar memory</STRONG> -- Memory protection is an extremely useful feature that allows one program to bomb out of sight without disturbing its neighbors in memory, although it's still difficult to completely protect the system heap, since most applications use information in it. That mean that when you hit a nasty bug, such as the one that causes Word 5.0 to crash when using the grammar checker on 68000 Macs, only Word will stop working and all the other programs will continue working properly. As it is now, your machine restarts on that bug, which is a big no-no.</P><P><STRONG>Dynamic link libraries</STRONG> -- When a programmer compiles a program, the compiler will link in various standard libraries to perform certain standard functions, like displaying text on screen. Those libraries are static but fast because they live in the program. Dynamic link libraries are a set of routines that applications can use at runtime rather than include those routines internally. Dynamic link libraries are slower than static link libraries. Like extensions, you could just drop some dynamic link libraries into a special folder and various applications could then use that code, allowing those applications to be smaller, simpler to write, and more similar to each other, thus increasing ease of overall use. If implemented correctly, dynamic link libraries also cut down on memory consumption, since they only need to exist in RAM once, no matter how many applications use them. Dynamic link libraries would be especially useful for companies like Claris and Microsoft, which have multiple applications with similar interfaces and shared features. I believe that dynamic link libraries are already available in Windows, so in this respect Apple is playing catch-up (cleaner than playing with ketchup).</P><P><STRONG>DMA that SCSI!</STRONG> -- The two new I/O enhancements are direct memory access (DMA) and asynchronous SCSI. DMA has been around for a long time and many computers support it, including the Atari ST line. In fact, the Mac IIfx sports DMA in hardware, although it's somewhat useless since the current MacOS doesn't support it. DMA allows devices other than the CPU to read and write memory, thus allowing the CPU to spend more time on other tasks. It's not quite ideal because the CPU does have to check in occasionally to make sure that the right stuff is in memory, but it can significantly boost performance. DMA requires extra hardware as well as operating system support, so most people will need a new Mac to take advantage of it. Asynchronous SCSI requires DMA. When supported though, asynchronous SCSI allows the CPU to delegate a SCSI command to the SCSI controller and then stop paying attention to it and go perform other tasks, again increasing performance. For example, the CPU might tell the SCSI controller to load a sector from a hard disk into RAM. The controller can start this job while the CPU does something else.</P><P><STRONG>When will rumor become reality?</STRONG> -- We've heard that these features will be available at about the same time as the PowerPC machines being co-developed with IBM. In other words, this is all fantasy because by the time the PowerPC machines come out in late 1993, Apple could completely change its mind about all this stuff. None of these ideas are new and many have been around for years in the Unix and mainframe worlds. So the moral of the story is that Apple, as always, is looking for ways to make the Mac into a better machine. In this case, Apple is looking back at standard operating system concepts that it didn't include the first time around. It's also useful to keep in mind that this means that Apple is not putting all its eggs under Taligent's Pink chicken. That's important because in many ways Apple is a software company and cannot afford to rely on another company for such key software. Moral or no, I'm still drooling over this stuff!</P><BLOCKQUOTE><P>Information from:<BR>    Pythaeus<BR>    Doug Davenport of SNAP Technologies</P></BLOCKQUOTE><BLOCKQUOTE>    Related articles:<BR>    MacWEEK -- 09-Mar-92, Vol. 6, #10, pg. 1</BLOCKQUOTE><!-- Microkernel Mac Adam C. Engst --></div>
  688.         
  689.  
  690.         <!-- end article text -->
  691.     
  692.         
  693.         <!-- PayBITS -->
  694.         
  695.  
  696.         
  697. <p> </p><div class="sponsorbox">
  698. <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>
  699. </div>
  700. <div class="sponsorbox_bottom"> </div>
  701.  
  702.  
  703.         <!-- comments section -->
  704.         
  705.         <!-- end comment show-->
  706.         
  707.         <!-- end comments section -->
  708.  
  709.  
  710.         <!-- end article loop details -->
  711.         
  712.         
  713.  
  714.         
  715.     </div><!-- end show article -->
  716.     
  717.     
  718.  
  719.  
  720. <!-- article_plus end -->
  721. <!--
  722. </DIV>
  723. --><!-- end main_column DIV -->
  724.  
  725.  
  726. <!-- google_ad_section_end -->
  727.  
  728. </div><!-- end center AJAX insert -->
  729.  
  730. <!-- TipBITS Search Results Lozenge -->
  731. <div id="tipbits_results_loz" style="display:none">
  732. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  733. <div class="tip_footer">
  734. <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>
  735. </div>
  736. <div class="tip_footer_bottom">
  737.  </div>
  738. </form>
  739. </div><!-- end TipBITS Search Results lozenge -->
  740.  
  741.  
  742.  
  743.  
  744. <!-- begin footer -->
  745. <div id="footer">
  746.  
  747. <div id="qr_tag_right"><div id="qr_tag_image"><img src="http://db.tidbits.com/tags/3180.png"></div><div id="qr_tag_text"><a href="http://db.tidbits.com/article/10616">What's this image?</a></div></div>
  748. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  749. Web and mailing list host.</p>
  750. <p>Unless otherwise noted, this article is copyright © 1992 <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a></p>
  751. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  752. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  753.  
  754. <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>
  755.  
  756. </div><!-- end footer -->
  757.  
  758.  
  759. </div> <!-- end centercolumn -->
  760.  
  761. <div class="center_bottom"> </div>
  762.  
  763. </div> <!-- end centercolumn_border -->
  764.  
  765.  
  766. </div> <!-- end content_container -->
  767.  
  768. </div> <!-- end mainbody -->
  769.  
  770.  
  771. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  772. </script>
  773. <script type="text/javascript">
  774. _uacct = "UA-276924-3";
  775. urchinTracker();
  776. </script>
  777. <script type="text/javascript"
  778. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  779. <script type="text/javascript">
  780. var skimlinks_pub_id = '2559X585851';
  781. var skimlinks_domain = 'go.tidbits.com';
  782. skimlinks();
  783. </script>
  784. </body>
  785. </html>
  786.  
  787.