home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbart=05995.orig < prev    next >
Text File  |  2010-09-23  |  53KB  |  791 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 : Serving the Internet from a PowerBook 5300</title>
  9.  
  10.     <meta name="title" content="TidBITS : Serving the Internet from a PowerBook 5300">
  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='4637'>
  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/540" >#540, 24 Jul 00</A></li>
  307. <li><A HREF="/issue/539" >#539, 17 Jul 00</A></li>
  308. <li><A HREF="/issue/538" >#538, 10 Jul 00</A></li>
  309. <li><A HREF="/issue/537" >#537, 03 Jul 00</A></li>
  310. <li><A HREF="/issue/536" >#536, 26 Jun 00</A></li>
  311. <li><A HREF="/issue/535" >#535, 19 Jun 00</A></li>
  312. <li><A HREF="/issue/534" >#534, 12 Jun 00</A></li>
  313. <li><A HREF="/issue/533" >#533, 05 Jun 00</A></li>
  314. <li><A HREF="/issue/532" >#532, 22 May 00</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.smithmicro.com/tidbits">Smith Micro</a></li>
  358.  
  359. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  360.  
  361. <li><a href="http://nuance.com/dragon/mac">Nuance</a></li>
  362.  
  363. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  364.  
  365. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  366.  
  367. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  368.  
  369. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  370.  
  371. <li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</a></li>
  372.  
  373. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  374.  
  375. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</a></li>
  376.  
  377. <li><a href="http://www.smilesoftware.com/">Smile</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>Copy Before Submitting Web Forms</h6>
  466. <p><p>Filling in Web forms (like the one used to submit this tip) can be a bit of a gamble - you put in your pearls of wisdom, perhaps only to lose them all if the Web page flakes out or the browser crashes. Instead of losing all your text, "save" it by pressing Command-A to select all and then Command-C to copy the selected text to the clipboard. Do this periodically as you type and before you click Submit, and you may "save" yourself from a lot of frustration. It takes just a second to do, and the first time you need to rely on it to paste back in lost text, you'll feel smart.</p></p>
  467.  
  468. </div>
  469.  
  470. <div class="tearoffbox_wide_bottom_tips">
  471. <div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/148">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  472. <p class="credit">Submitted by<br>Larry Leveen</p>
  473. </div></div>
  474.  
  475. </div>
  476.  
  477. <div class="tearoffbox_wide_tips_submit">
  478. <form method="post" onsubmit="return false" id="tipbits_form" name="tipbits_form" action="noaction.cgi"><p><a href="javascript:void(0)" onmousedown="ShowTipBox('ts','ts_recaptcha', 50, 'tip_title_id'); return true;">Share your own tip!</a> | <a href="javascript:void(0)" onClick="generic_show_hide('search_tipbits'); document.tipbits_form.tipbits_searchvalue.focus()">Search TipBITS</a></p>
  479. <p style="display:none" id="search_tipbits"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue'); }" id="tipbits_searchvalue" name="tipbits_searchvalue"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue')">Search</a></p></form>
  480. </div>
  481. <div class="tearoffbox_wide_bottom_tips_submit">
  482.  
  483. </div>
  484.  
  485. </div><!-- end tearoffbox_wide_tips -->
  486. </div><!-- end tearoffbox_wide_container for tips-->
  487. <!-- end tearoff box wide -->
  488.  
  489.  
  490.  
  491. <!-- begin 300 x 250 ad -->
  492.  
  493. <div id="content_ad_square">
  494. <script type='text/javascript'><!--// <![CDATA[
  495.     OA_show(5);
  496. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TB7671f69'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=5&n=TB7671f69'></a></noscript>
  497. </div><!-- end 300 x 250 ad -->
  498.  
  499. <!-- TBTalk items -->
  500. <div class="tearoffbox_wide_container">
  501.  
  502. <div class="tearoffbox_wide_p">
  503. <p class="tearoffbox_wide_top_p"> </p>
  504.  
  505. <h5>Recent TidBITS Talk Discussions</h5>
  506. <ul>
  507.  
  508. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf95241">Alternatives to MobileMe for syncing calendars between iPad/Mac</a> (1 message)</LI>
  509.  
  510. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf94dbb">Free anti-virus for the Mac</a> (20 messages)</LI>
  511.  
  512. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf934e6">iTunes 10 syncing iPod Touch 4.1</a> (2 messages)</LI>
  513.  
  514. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf92a22">Thoughts about Ping</a> (16 messages)</LI>
  515.  
  516. </ul>
  517.  
  518. <div class="tearoffbox_wide_bottom_p"> </div>
  519.  
  520. </div><!-- end tearoffbox_wide -->
  521.  
  522. </div><!-- end tearoffbox_wide_container for TBtalk items -->
  523.  
  524. <!-- start takecontrol_ad -->
  525. <script type='text/javascript'><!--// <![CDATA[
  526.     OA_show(7);
  527. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe46d56f'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=7&n=TBe46d56f'></a></noscript><!-- end takecontrol_ad -->
  528.  
  529. <!-- begin tearoff box 2 -->
  530.  
  531. <div class="tearoffbox_wide_container">
  532.  
  533. <div class="tearoffbox_wide_p">
  534. <p class="tearoffbox_wide_top_p"> </p>
  535.  
  536. <h5>Related Articles</h5>
  537. <ul>
  538. <li><a href="/article/6396">What's Up, eDoc? Emailing Your Doctor, Part 2</a> (16 Apr 01)</li>
  539. <li><a href="/article/6146">To iBook or PowerBook?</a> (16 Oct 00)</li>
  540. <li><a href="/article/6008">Poll Results: We Live to Serve</a> (03 Jul 00)</li>
  541. <li><a href="/article/5321">Explaining All Those List Headers</a> (22 Mar 99)</li>
  542. <li><a href="/article/5021">A Free Program for Control Freaks</a> (03 Aug 98)</li>
  543. <li><a href="/article/1532">Apple to Offer Web Servers</a> (10 Apr 95)</li>
  544.  
  545. </ul>
  546.  
  547. <p class="tearoffbox_wide_bottom_p"> </p>
  548.  
  549. </div><!-- end tearoffbox_wide -->
  550. </div><!-- end tearoffbox_wide_container -->
  551.  
  552. <!-- end tearoff box 2 -->
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560. <!-- begin tearoff box 1 -->
  561.  
  562. <div class="tearoffbox_wide_container">
  563.  
  564. <div class="tearoffbox_wide">
  565. <p class="tearoffbox_wide_top"> </p>
  566.  
  567. <h5>Published in <a href="/issue/536">TidBITS 536</a>.<br><a href="http://www.tidbits.com/list">Subscribe</a> to our weekly email edition.</h5>
  568. <ul>
  569. <li><A HREF="/article/5991">Microsoft Antitrust Case to Supreme Court</A></li>
  570. <li><A HREF="/article/5992">Poll Preview: We Live to Serve</A></li>
  571. <li><A HREF="/article/5993">Poll Results: I Want My MP3</A></li>
  572. <li><A HREF="/article/5994">Open Source and the Macintosh</A></li>
  573.  
  574. </ul>
  575.  
  576. <p class="tearoffbox_wide_bottom"> </p>
  577.  
  578. </div><!-- end tearoffbox_wide -->
  579. </div><!-- end tearoffbox_wide_container -->
  580.  
  581. <!-- end tearoff box 1 -->
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589. <div id="rightcolumn_bottom">
  590.  
  591. </div>
  592.  
  593.     </div><!-- end rightcolumn -->
  594.  
  595.  
  596. </div><!-- end rightcolumn_container -->
  597.  
  598.  
  599.  
  600. <!-- featured articles -->
  601.  
  602. <div id="center_ajax_sub" class="instapaper_body">
  603.  
  604. <!-- google_ad_section_start -->
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625. <!-- issue, article, or series -->
  626.  
  627.     
  628.     
  629.     
  630.     
  631.     
  632.         
  633.     <!-- show article(s) -->
  634.     <div class="article"><a name="4637"></a>
  635.     
  636. <!-- comment initialization routine as needed -->
  637. <div class="popup_box_with_captcha" id="hc_4637" style="display: none">
  638.     <div class="tip_box_format">
  639.     <div id="hc_innards_alt_4637" style="display: none">
  640.             <div class="tbf_row">
  641.                 <div class="tbf_wide_80" id="hc_small_response_4637"></div><div class="x_close_row" id="hc_upper_right1_4637"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4637', 'hc', '4637'); return true;">Close</a></div>
  642.  
  643.             </div>
  644.     </div>
  645.     <div id="hc_innards_4637">
  646.         <div class="tip_box_form">        
  647.             <form action="foobar.cgi" method="get" name="check_human_4637">
  648.             <div class="tbf_row">
  649.                 <div class="tbf_wide_80" id="hc_rc_4637">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_4637"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4637', 'hc', '4637'); return true;">Close</a></div>
  650.  
  651.             </div>
  652.             <div class="spacer"></div>
  653.             <div class="tbf_row" id="hc_message_box_4637" style="display:none">
  654.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_4637"></div></div>
  655.             </div>
  656.             <div class="spacer"></div>
  657.             <div class="tbf_row">
  658.                 <div class="tbf_wide"><div id="hc_recaptcha_4637"></div></div>
  659.             </div>
  660.             <div class="spacer"></div>
  661.             <div class="tbf_row">
  662.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '4637', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="5995"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  663.             </div>
  664.             <div class="spacer"></div>
  665.             </form>
  666.         </div><!-- end tip_box_form -->
  667.     </div><!-- end hum box innards -->
  668.     </div><!-- end tip box format -->
  669. </div><!-- end tip_submit box-->
  670.  
  671.  
  672.  
  673.         
  674.         
  675.         <!-- specific article details here -->
  676.         
  677.         
  678.             
  679.         
  680.     
  681.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  682.         
  683.         <div class="featured_meta"><div class="meta_article">26 Jun 2000 | <a href="/article/5995?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>
  684.  
  685.         <H2>Serving the Internet from a PowerBook 5300</H2>
  686.  
  687.         <p class="byline">by <a href="/author/Ron%20Risley">Ron Risley</a> <a href="javascript:void(0)" onClick="document.check_human_4637.submit_type.value='email'; document.check_human_4637.author_id.value='258'; ShowTipBox('hc_4637', 'hc_recaptcha_4637')"><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>
  688.  
  689.         <!-- article text -->
  690.         
  691.         <div id="article_box_4637"><P>It has been a year since the seduction began.</P><P>I was an early adopter of ISDN, but years later I felt that it never lived up to its promise. Now that DSL is available in my area, and since I can hit the telco central office with a well-aimed pitch from my back yard, I figured I would get excellent results, since bandwidth available via DSL depends in part on the length and condition of the wires from the central office to your site.</P><P>My DSL installation was quick and practically flawless, in spite of complications caused by the conversion from ISDN. To keep the DSL line isolated from the rest of my network, Pacific Bell provided a PCI Ethernet card for my Mac. My downlink speed reached 1.5 megabits per second (Mbps), although PacBell throttled my uplink bandwidth down to 128 Kbps.</P><P><<A HREF="http://www.pacbell.com/">http://www.pacbell.com/</A>></P><P><STRONG>Spreading the Joy</STRONG> -- I couldn't be happier, except that this new instant-on, super-fast connection worked only for my main computer. My wife Kim's iMac, barely two meters away, was still chained to a 56 Kbps analog modem (and since our voice line uses the same pair of wires as the DSL connection, she could no longer surf and talk at the same time). Other derelict machines scattered around the house had no Internet access at all. We needed a way to share this prodigious new bandwidth resource.</P><P>A quick search of the Web turned up some DSL routers. These devices connect to both the DSL line and an Ethernet network, and optionally share a single IP address among several machines using Network Address Translation (NAT). Just what I needed, except that both Kim and I are resident doctors, which means we make just over minimum wage. The $200 installation fee for the DSL line had already decimated my computer budget for a few months, and DSL routers from companies like Netopia start at about $500.</P><P><<A HREF="http://www.faqs.org/rfcs/rfc1631.html">http://www.faqs.org/rfcs/rfc1631.html</A>><BR><<A HREF="http://www.netopia.com/">http://www.netopia.com/</A>></P><P>It occurred to me that there must be a software-based solution. Another search turned up SurfDoubler by Vicomsoft and IPNetRouter from Sustainable Softworks.</P><P><<A HREF="http://www.vicomsoft.com/">http://www.vicomsoft.com/</A>><BR><<A HREF="http://www.sustworks.com/">http://www.sustworks.com/</A>></P><P>The Vicomsoft product looked friendly and polished, but it limited the number of simultaneous users to two or three. I liked IPNetRouter's approach of leveraging the considerable power already present in Open Transport. The interface was geekier and more flexible, and since I'm a geeky kind of guy, I downloaded the free demo.</P><P>IPNetRouter did everything its author, Peter Sichel, promised. I went seriously over budget by registering the $89 program (generous educational and competitive upgrade prices are available), and within minutes my wife's iMac was enjoying the same unfettered Internet access that I had. Unfettered, that is, as long as my machine was running. That presented a problem: I like to write low-level software, which means that I crash and/or restart my machine frequently while testing. I also hate fan noise and I hate wasting electricity. Leaving my SuperMac S-900 with dual fans and dual monitors continuously running when I wasn't using it was troublesome.</P><P><STRONG>Full-Time Service</STRONG> -- IPNetRouter, I'm told, doesn't use a whole lot of processor power. I had an old PowerBook 5300cs sitting around that had both a malfunctioning display and a broken trackpad. It wasn't worth the trouble and expense to fix it, but the processor still worked fine. It was fanless, sipped power, and even had built-in backup power in the form of its built-in battery. Could it be pressed into service as a router?</P><P>Indeed it could. I hooked up an external monitor and a mouse long enough to load AT&T's Virtual Network Computing (VNC) software onto it, which allows a remote machine to mirror the screen and send keyboard and mouse commands over the Internet. (See Kevin Savetz's look at earlier versions of VNC in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-441.html">TidBITS-441</A>.) It isn't as stable or feature-filled as Netopia's Timbuktu, but it would do the job and, being free, it fit my budget. I bought a Ethernet PC Card from TidBITS sponsor Small Dog Electronics for $19, loaded IPNetRouter onto the PowerBook, and connected it to my Ethernet hub.</P><P><<A HREF="http://db.tidbits.com/article/05021">http://db.tidbits.com/article/05021</A>><BR><<A HREF="http://www.uk.research.att.com/vnc/">http://www.uk.research.att.com/vnc/</A>><BR><<A HREF="http://www.netopia.com/software/">http://www.netopia.com/software/</A>><BR><<A HREF="http://www.smalldog.com/">http://www.smalldog.com/</A>></P><P>What had started as a simple switch from ISDN to DSL had grown into a small but significant LAN construction project. I now had a stable, fast, 24/7 Internet connection that could be shared by all the computers in my home. You would think I'd be satisfied.</P><P>But another problem quickly presented itself.</P><P><STRONG>A Web of One's Own</STRONG> -- I've had a Web presence for a long time, but I'd always been content to have my site served by my ISP. Why should I take on the hassle of keeping a server up constantly, when server space is included with most ISP accounts? The ISP I used for my old ISDN connection, however, didn't support DSL. That meant moving my site, which meant rewriting all of the pages that used server-specific resources (mostly CGI scripts to handle email forms) to be compatible with PacBell's servers. PacBell also limits DSL accounts to three megabytes of server space, which would be a tight squeeze for my site. Free server sites exist, but usually on the condition that you display ads, and I take pride in the fact that my site is free of advertising. I could buy more server space from PacBell or elsewhere, but there was that pesky overextended budget problem again.</P><P>I stared balefully at the 5300cs under my desk. Always on. Always connected. Static IP address. Hundreds of megabytes of free disk space. Why, it was the perfect candidate for a server!</P><P>With no previous need for a Web server, I had never paid much attention to the server software that was out there. I knew about StarNine's WebSTAR, but it violated the Prime Budget Directive. My brief search for a very low cost server was rewarded when I was reminded that Apple's Personal Web Sharing has been bundled with the Mac OS since version 8.0, and runs under Mac OS 7.6. [Another option is NetPresenz, the venerable shareware application which offers Web, FTP, and even Gopher servers, but its $75 price is higher than that of the free Personal Web Sharing. Ron eventually switched his server to NetPresenz, but later in his server odyssey than what's covered in this article. -Geoff]</P><P><<A HREF="http://www.starnine.com/">http://www.starnine.com/</A>><BR><<A HREF="http://asu.info.apple.com/swupdates.nsf/artnum/n10773">http://asu.info.apple.com/swupdates.nsf/artnum/ n10773</A>><BR><<A HREF="http://www.stairways.com/netpresenz/">http://www.stairways.com/netpresenz/</A>></P><P>I activated Personal Web Sharing, copied my Web site files onto the 5300cs, and I was hosting my own site! I was surprised to find that Personal Web Sharing even uses File Sharing to support basic authentication (password-protected Web pages) and CGI scripts. I soon discovered a wealth of AppleScript CGIs on the Web, and installed the venerable Email CGI to support my basic forms.</P><P><<A HREF="http://cgi-resources.com/Programs_and_Scripts/AppleScript/">http://cgi-resources.com/Programs_and_Scripts/ AppleScript/</A>><BR><<A HREF="http://www.lib.ncsu.edu/staff/morgan/email-cgi.html">http://www.lib.ncsu.edu/staff/morgan/email- cgi.html</A>></P><P><STRONG>Why Not Email?</STRONG> High-speed access for all my machines, a local Web server with hundreds of megabytes to play with, freedom to write my own CGI scripts... that should have been enough, but I'd been bitten by the server bug. I have always wanted to host some mailing lists to help my fellow residents communicate better, but never had access to a list server. I remembered Macjordomo, an long-standing mailing list server, and was surprised to find out that it was still free.</P><P><<A HREF="http://leuca.med.cornell.edu/Macjordomo/">http://leuca.med.cornell.edu/Macjordomo/</A>></P><P>Macjordomo doesn't require your own mail server, but as I configured it I realized that I would need several addresses for each list, since I was thinking along the guidelines published in TidBITS for mailing list management (though I haven't set up all the headers yet).</P><P><<A HREF="http://db.tidbits.com/article/05321">http://db.tidbits.com/article/05321</A>></P><P>Sure, I could get extra mailboxes from PacBell, but then that budget thing reared its ugly head again. The Macjordomo documentation, though, listed a couple of free Mac POP and SMTP mail servers. Those would provide me with all the mailboxes I wanted. First, I evaluated Eudora Internet Mail Server (EIMS) since I'm a big Eudora fan. The commercial version looks nice, but is way out of my price range. The freeware version also seems to work well, and has its adherents, but I couldn't get the anti-relay features to work as well as I wanted. I couldn't live with myself if someone were using my site to relay spam. So instead I adopted Stalker Internet Mail Server (SIMS), a flexible server with excellent anti-spam features.</P><P><<A HREF="http://www.eudora.com/freeware/servers.html">http://www.eudora.com/freeware/servers.html</A>><BR><<A HREF="http://www.stalker.com/SIMS/">http://www.stalker.com/SIMS/</A>></P><P>Now I could create whatever email boxes I wanted, and in the process I had solved another problem: many of my patients prefer to communicate with me by email. Some encrypt their mail using PGP, but for others that is too complicated. I worried about their messages sitting, unencrypted, on someone else's POP server. Though messages can still be intercepted in transit, at least now they go directly to a computer under my control.</P><P><STRONG>What's in a Name?</STRONG> Surely that would be the end of things. I now had a server for email and the Web, a mailing list manager, and NAT-equipped router. I had done it all for about $200. The only problem was that the "friendly" DNS name PacBell had given my PowerBook 5300 was hideous - it was more than 40 characters long and contained a mishmash of letters, numbers, and hyphens. How was anyone going to remember an email address at a site with a name which looked like a random slap on the keyboard?</P><P>I admit it: I have always lusted after a vanity Internet address. Now I had my excuse, and with the opening up of the domain-name registration process, prices were falling. It would mean spending a little bit more money, but by then I had saved a bit by skipping meals while trying to get all this server software running. I registered with Network Solutions at $70 for two years.</P><P><<A HREF="http://www.networksolutions.com/">http://www.networksolutions.com/</A>></P><P>Another catch, though: in order to register a domain name, you have to have <EM>two</EM> separate domain name servers (DNS) - ideally on topologically distant parts of the Internet. Again, these services can be purchased from any number of vendors, but I needed a more budget-friendly solution.</P><P>Fortunately, there are two free name servers available for the Mac OS. But first a word of warning. With some perseverance and patience, most people could probably get this far. The free Web, email, and mailing list server software is of generally high quality, well-supported, and more-or-less easy to use. The DNS system, however, does not excel at user-friendliness. Understanding the arcana associated with DNS servers and their zone files can be a monumental challenge. If you're going to break down and pay somebody else to administer part of your site, or plunk down serious bucks for a friendly and supported commercial product (such as the $290 QuickDNS Pro from Men & Mice), DNS is where I'd start.</P><P><<A HREF="http://www.menandmice.com/">http://www.menandmice.com/</A>></P><P>To their credit, Apple attempted to put a friendly face on DNS back in 1995 when they flirted with the idea of supporting Internet servers on the Mac. MacDNS makes it possible to get a domain name server online in minutes, though its capabilities are limited, its performance poor, and its stability is highly questionable (although some report using it without problems). It is still available as a free download from Apple, but has not been updated since 1996.</P><P><<A HREF="http://db.tidbits.com/article/01532">http://db.tidbits.com/article/01532</A>><BR><<A HREF="http://asu.info.apple.com/swupdates.nsf/artnum/n11264">http://asu.info.apple.com/swupdates.nsf/artnum/ n11264</A>></P><P>NonSequitur is an alternative for Unix geeks and others willing to tackle the mysteries of BIND-format zone files. It is a small, fast, streamlined name server that seems extremely stable. It is also free, and is my name server of choice. Since MacDNS's and NonSequitur's zone files both use BIND format, you could conceivably use the MacDNS front end to create a zone file for NonSequitur, though I haven't actually tried it.</P><P><<A HREF="http://www.gross.net/sw/nonsequitur/">http://www.gross.net/sw/nonsequitur/</A>></P><P>Providing a secondary DNS proved more problematic. I only had one IP address, so my secondary service would have to be hosted elsewhere. For the short term, I solved this problem by recruiting a temporarily unused computer at my work. DNS is generally low bandwidth and can run in the background virtually unnoticed for low-volume sites, but this solution wasn't really satisfactory - even the scant few cycles I was using weren't really mine.</P><P>Ideally, now that high-speed access is becoming more commonplace, we could create simple DNS hosting partnerships: you provide secondary DNS for me and I'll provide it for you. Unfortunately, neither of the free Mac OS DNS programs support this concept. Most DNS programs can act as secondary servers by querying the primary, so zone files don't have to be manually synchronized between the two machines. MacDNS and NonSequitur will act as primaries, but do not support secondary DNS. A clever AppleScript could probably circumvent this limitation, but that project is currently languishing on my good intentions pile. The commercial QuickDNS Pro does offer secondary service, but when the budget had recovered a bit, I ended up buying secondary DNS service. Several providers offer secondary DNS for a dollar or two a month.</P><P><<A HREF="http://www.backupdns.com/">http://www.backupdns.com/</A>><BR><<A HREF="http://www.nols.com/dnservice.html">http://www.nols.com/dnservice.html</A>><BR><<A HREF="http://www.secondary.net/">http://www.secondary.net/</A>></P><P><STRONG>Share and Share Alike</STRONG> -- Enough certainly should be enough, but there was just one more piece I wanted to put in place. I was involved in another project that needed some hosting services. Now that I had all the pieces in place, how hard could it be to add another domain to my server?</P><P>I soon became discouraged. There are well-established standards for sharing a single IP address among multiple Web sites as a way of conserving scarce IP address space - a practice called virtual hosting. Alas, virtual hosting implementations for the Mac OS seemed to be limited to WebSTAR plug-ins. I mulled over the idea for a few days before it occurred to me that a CGI script could do the job. When I went to create the script, I discovered that it was frighteningly simple. In its most basic form, Web server multihoming can be accomplished with just three lines of AppleScript! Even after I added some error checking and refinement, the script is less than a screen's length and supports an unlimited number of Web sites all hosted from the same IP address.</P><P><STRONG>Mastering the Web Universe</STRONG> -- We've all heard the A.J. Liebling witticism, "Freedom of the press is guaranteed only to those who own one." What is remarkable, to me, is the dramatic way in which the Internet has decreased the cost of press ownership. The one major piece of the puzzle was full-time access to the Internet, but the rest of the job of building a full-fledged Internet presence required little money, a scrap computer, and a chunk of spare time.</P><P>When I'd considered setting up my own server in the past, I'd always assumed I would run it under Linux. In retrospect, I am glad I took the Mac OS approach, unplanned though it was. It convinced me as nothing else could how viable Macintosh is as an Internet platform.</P><P>More information about setting up Internet services under the Mac OS can be found in the book Providing Internet Services via the Mac OS, by Carl Steadman and Jason Snell, available online. Although the book was published in mid-1996 and is now quite dated in places, it was comprehensive at the time and the basics remain as true as ever.</P><P><<A HREF="http://www.pism.com/">http://www.pism.com/</A>></P><P>[Ron Risley could have been a dot-com. Instead, he closed his communications consulting practice in 1986 to pursue a new career as a psychiatrist and family doctor.]</P><P><<A HREF="http://www.risley.net/">http://www.risley.net/</A>></P><!-- Serving the Internet from a PowerBook 5300 Ron Risley --></div>
  692.         
  693.  
  694.         <!-- end article text -->
  695.     
  696.         
  697.         <!-- PayBITS -->
  698.         
  699.  
  700.         
  701. <p> </p><div class="sponsorbox">
  702. <div class="sponsortext"><A HREF="http://www.usefulfruit.com/tb"><IMG SRC="http://db.tidbits.com/images/badges/pear-note-icon50x50.png" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>Pear Note 2: More complete, understandable notes on your Mac.<br />Typed notes are blended with recorded audio, video, and slides<br />to create notes that make more sense when you need them most.<br />Learn more at <<a href="http://www.usefulfruit.com/tb">http://www.usefulfruit.com/tb</a>>!</div>
  703. </div>
  704. <div class="sponsorbox_bottom"> </div>
  705.  
  706.  
  707.         <!-- comments section -->
  708.         
  709.         <!-- end comment show-->
  710.         
  711.         <!-- end comments section -->
  712.  
  713.  
  714.         <!-- end article loop details -->
  715.         
  716.         
  717.  
  718.         
  719.     </div><!-- end show article -->
  720.     
  721.     
  722.  
  723.  
  724. <!-- article_plus end -->
  725. <!--
  726. </DIV>
  727. --><!-- end main_column DIV -->
  728.  
  729.  
  730. <!-- google_ad_section_end -->
  731.  
  732. </div><!-- end center AJAX insert -->
  733.  
  734. <!-- TipBITS Search Results Lozenge -->
  735. <div id="tipbits_results_loz" style="display:none">
  736. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  737. <div class="tip_footer">
  738. <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>
  739. </div>
  740. <div class="tip_footer_bottom">
  741.  </div>
  742. </form>
  743. </div><!-- end TipBITS Search Results lozenge -->
  744.  
  745.  
  746.  
  747.  
  748. <!-- begin footer -->
  749. <div id="footer">
  750.  
  751. <div id="qr_tag_right"><div id="qr_tag_image"><img src="http://db.tidbits.com/tags/5995.png"></div><div id="qr_tag_text"><a href="http://db.tidbits.com/article/10616">What's this image?</a></div></div>
  752. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  753. Web and mailing list host.</p>
  754. <p>Unless otherwise noted, this article is copyright © 2000 <a href="/author/Ron%20Risley">Ron Risley</a></p>
  755. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  756. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  757.  
  758. <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>
  759.  
  760. </div><!-- end footer -->
  761.  
  762.  
  763. </div> <!-- end centercolumn -->
  764.  
  765. <div class="center_bottom"> </div>
  766.  
  767. </div> <!-- end centercolumn_border -->
  768.  
  769.  
  770. </div> <!-- end content_container -->
  771.  
  772. </div> <!-- end mainbody -->
  773.  
  774.  
  775. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  776. </script>
  777. <script type="text/javascript">
  778. _uacct = "UA-276924-3";
  779. urchinTracker();
  780. </script>
  781. <script type="text/javascript"
  782. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  783. <script type="text/javascript">
  784. var skimlinks_pub_id = '2559X585851';
  785. var skimlinks_domain = 'go.tidbits.com';
  786. skimlinks();
  787. </script>
  788. </body>
  789. </html>
  790.  
  791.