home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbart=06470.orig < prev    next >
Text File  |  2010-09-23  |  45KB  |  848 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 : The MacHax Hack Contest 2001</title>
  9.  
  10.     <meta name="title" content="TidBITS : The MacHax Hack Contest 2001">
  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='5087'>
  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/589" >#589, 23 Jul 01</A></li>
  307. <li><A HREF="/issue/588" >#588, 16 Jul 01</A></li>
  308. <li><A HREF="/issue/587" >#587, 09 Jul 01</A></li>
  309. <li><A HREF="/issue/586" >#586, 02 Jul 01</A></li>
  310. <li><A HREF="/issue/585" >#585, 25 Jun 01</A></li>
  311. <li><A HREF="/issue/584" >#584, 18 Jun 01</A></li>
  312. <li><A HREF="/issue/583" >#583, 11 Jun 01</A></li>
  313. <li><A HREF="/issue/582" >#582, 04 Jun 01</A></li>
  314. <li><A HREF="/issue/581" >#581, 21 May 01</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://macte.ch/conf_tidbits">MacTech Conference</a></li>
  358.  
  359. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  360.  
  361. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  362.  
  363. <li><a href="http://nuance.com/dragon/mac">Nuance</a></li>
  364.  
  365. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</a></li>
  366.  
  367. <li><a href="http://www.smilesoftware.com/">Smile</a></li>
  368.  
  369. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  370.  
  371. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  372.  
  373. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  374.  
  375. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  376.  
  377. <li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</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/11622">DEVONthink and DEVONnote 2.0.4</a></LI>
  429.  
  430. <LI><a href="/article/11620">Security Update 2010-006</a></LI>
  431.  
  432. <LI><a href="/article/11619">TinkerTool 4.2</a></LI>
  433.  
  434. <LI><a href="/article/11618">Mailplane 2.2</a></LI>
  435.  
  436. <LI><a href="/article/11617">Pro Applications Update 2010-02</a></LI>
  437.  
  438. <LI><a href="/article/11611">Dialectic 1.7</a></LI>
  439.  
  440. <LI><a href="/article/11604">Transmit 4.1.1</a></LI>
  441.  
  442. <LI><a href="/article/11603">MarsEdit 3.1.1</a></LI>
  443.  
  444. <LI><a href="/article/11600">Savescreenie 2.0</a></LI>
  445.  
  446. <LI><a href="/article/11598">1Password 3.4.1</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>iCal Alerts You Can't Miss</h6>
  466. <p><p>Did you miss that tiny little iCal alert dialog? Use a more prominent Open File alarm.</p><p>First save an image, text file, sound, or movie that will really fill your screen and grab your attention.</p><p>Select an iCal event and choose Open File as the alert type. Choose your unmissable file as the one to open.</p><p>Set more alerts with more files to open for the same event if you like. You won't miss an appointment with one of these alerts!</p></p>
  467. <p>Visit <a href="http://mactips.info/2009/12/set-an-unmissable-ical-alert">MacTips.com</a></p>
  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/183">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  472. <p class="credit">Submitted by<br>Miraz Jordan</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/7752">ADHOC 2004: Some Old, Some New, Continued Success</a> (26 Jul 04)</li>
  539. <li><a href="/article/7244">The MacHax Best Hack Contest 2003</a> (23 Jun 03)</li>
  540. <li><a href="/article/6103">An ATypoKill Eudora Hack</a> (04 Sep 00)</li>
  541.  
  542. </ul>
  543.  
  544. <p class="tearoffbox_wide_bottom_p"> </p>
  545.  
  546. </div><!-- end tearoffbox_wide -->
  547. </div><!-- end tearoffbox_wide_container -->
  548.  
  549. <!-- end tearoff box 2 -->
  550.  
  551.  
  552. <!-- begin tearoff box for series -->
  553.  
  554. <div class="tearoffbox_wide_container">
  555.  
  556. <div class="tearoffbox_wide_p">
  557. <p class="tearoffbox_wide_top_p"> </p>
  558.  
  559. <h5>Other articles in the series <a href="/series/1199">Will Hack For Food!</a></h5>
  560. <ul>
  561. <li><a href="/article/8197">Adieu ADHOC</a> (01 Aug 05)</li>
  562. <li><a href="/article/7752">ADHOC 2004: Some Old, Some New, Continued Success</a> (26 Jul 04)</li>
  563. <li><a href="/article/7244">The MacHax Best Hack Contest 2003</a> (23 Jun 03)</li>
  564. <li><a href="/article/6861">The MacHax Best Hack Contest 2002</a> (01 Jul 02)</li>
  565. <li><a href="/article/6011">The MacHax Best Hack Contest 2000 Winners</a> (03 Jul 00)</li>
  566. <li><a href="/article/5470">The MacHack Hack Contest 1999</a> (12 Jul 99)</li>
  567. <li><a href="/article/4972">Moof on the Hoof: MacHack '98</a> (06 Jul 98)</li>
  568.  
  569. </ul>
  570.  
  571. <p class="tearoffbox_wide_bottom_p"> </p>
  572.  
  573. </div><!-- end tearoffbox_wide -->
  574. </div><!-- end tearoffbox_wide_container -->
  575.  
  576. <div class="tearoffbox_wide_container">
  577.  
  578. <div class="tearoffbox_wide_p">
  579. <p class="tearoffbox_wide_top_p"> </p>
  580.  
  581. <h5>Other articles in the series <a href="/series/1201">MacHack 2001</a></h5>
  582. <ul>
  583. <li><a href="/article/6476">MacHack 2001 Code Fragments</a> (02 Jul 01)</li>
  584. <li><a href="/article/6469">MacHacking Mac OS X</a> (25 Jun 01)</li>
  585.  
  586. </ul>
  587.  
  588. <p class="tearoffbox_wide_bottom_p"> </p>
  589.  
  590. </div><!-- end tearoffbox_wide -->
  591. </div><!-- end tearoffbox_wide_container -->
  592.  
  593. <div class="tearoffbox_wide_container">
  594.  
  595. <div class="tearoffbox_wide_p">
  596. <p class="tearoffbox_wide_top_p"> </p>
  597.  
  598. <h5>Other articles in the series <a href="/series/1278">The Story of the Stake</a></h5>
  599. <ul>
  600. <li><a href="/article/8197">Adieu ADHOC</a> (01 Aug 05)</li>
  601. <li><a href="/article/7752">ADHOC 2004: Some Old, Some New, Continued Success</a> (26 Jul 04)</li>
  602. <li><a href="/article/7244">The MacHax Best Hack Contest 2003</a> (23 Jun 03)</li>
  603. <li><a href="/article/6103">An ATypoKill Eudora Hack</a> (04 Sep 00)</li>
  604.  
  605. </ul>
  606.  
  607. <p class="tearoffbox_wide_bottom_p"> </p>
  608.  
  609. </div><!-- end tearoffbox_wide -->
  610. </div><!-- end tearoffbox_wide_container -->
  611.  
  612. <!-- end tearoff box -->
  613.  
  614.  
  615.  
  616.  
  617. <!-- begin tearoff box 1 -->
  618.  
  619. <div class="tearoffbox_wide_container">
  620.  
  621. <div class="tearoffbox_wide">
  622. <p class="tearoffbox_wide_top"> </p>
  623.  
  624. <h5>Published in <a href="/issue/585">TidBITS 585</a>.<br><a href="http://www.tidbits.com/list">Subscribe</a> to our weekly email edition.</h5>
  625. <ul>
  626. <li><A HREF="/article/6467">Mac OS X 10.0.4 Update Released</A></li>
  627. <li><A HREF="/article/6468">Suitcase 10 Delivered</A></li>
  628. <li><A HREF="/article/6469">MacHacking Mac OS X</A></li>
  629. <li><A HREF="/article/6471">WebObjects: WO Is Me, Part 2</A></li>
  630.  
  631. </ul>
  632.  
  633. <p class="tearoffbox_wide_bottom"> </p>
  634.  
  635. </div><!-- end tearoffbox_wide -->
  636. </div><!-- end tearoffbox_wide_container -->
  637.  
  638. <!-- end tearoff box 1 -->
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646. <div id="rightcolumn_bottom">
  647.  
  648. </div>
  649.  
  650.     </div><!-- end rightcolumn -->
  651.  
  652.  
  653. </div><!-- end rightcolumn_container -->
  654.  
  655.  
  656.  
  657. <!-- featured articles -->
  658.  
  659. <div id="center_ajax_sub" class="instapaper_body">
  660.  
  661. <!-- google_ad_section_start -->
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682. <!-- issue, article, or series -->
  683.  
  684.     
  685.     
  686.     
  687.     
  688.     
  689.         
  690.     <!-- show article(s) -->
  691.     <div class="article"><a name="5087"></a>
  692.     
  693. <!-- comment initialization routine as needed -->
  694. <div class="popup_box_with_captcha" id="hc_5087" style="display: none">
  695.     <div class="tip_box_format">
  696.     <div id="hc_innards_alt_5087" style="display: none">
  697.             <div class="tbf_row">
  698.                 <div class="tbf_wide_80" id="hc_small_response_5087"></div><div class="x_close_row" id="hc_upper_right1_5087"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_5087', 'hc', '5087'); return true;">Close</a></div>
  699.  
  700.             </div>
  701.     </div>
  702.     <div id="hc_innards_5087">
  703.         <div class="tip_box_form">        
  704.             <form action="foobar.cgi" method="get" name="check_human_5087">
  705.             <div class="tbf_row">
  706.                 <div class="tbf_wide_80" id="hc_rc_5087">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_5087"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_5087', 'hc', '5087'); return true;">Close</a></div>
  707.  
  708.             </div>
  709.             <div class="spacer"></div>
  710.             <div class="tbf_row" id="hc_message_box_5087" style="display:none">
  711.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_5087"></div></div>
  712.             </div>
  713.             <div class="spacer"></div>
  714.             <div class="tbf_row">
  715.                 <div class="tbf_wide"><div id="hc_recaptcha_5087"></div></div>
  716.             </div>
  717.             <div class="spacer"></div>
  718.             <div class="tbf_row">
  719.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '5087', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="6470"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  720.             </div>
  721.             <div class="spacer"></div>
  722.             </form>
  723.         </div><!-- end tip_box_form -->
  724.     </div><!-- end hum box innards -->
  725.     </div><!-- end tip box format -->
  726. </div><!-- end tip_submit box-->
  727.  
  728.  
  729.  
  730.         
  731.         
  732.         <!-- specific article details here -->
  733.         
  734.         
  735.             
  736.         
  737.     
  738.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  739.         
  740.         <div class="featured_meta"><div class="meta_article">25 Jun 2001 | <a href="/article/6470?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>
  741.  
  742.         <H2>The MacHax Hack Contest 2001</H2>
  743.  
  744.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_5087.submit_type.value='email'; document.check_human_5087.author_id.value='6'; ShowTipBox('hc_5087', 'hc_recaptcha_5087')"><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>
  745.  
  746.         <!-- article text -->
  747.         
  748.         <div id="article_box_5087"><P>Although much happens at the MacHack developers conference, the heart of the event is the MacHax Group's annual Hack Contest, which gives the programmers a chance to code without worrying about utility, stability, or even usability. And yet, the hacks that emerge every year show more than the playful side of the Macintosh - a number of them have later been turned into shareware or even commercial products. Of course, such hacks risk cries of "Useful!" from the audience, but that's never stopped a programmer with a good idea at MacHack before.</P><P><<A HREF="http://db.tidbits.com/series/1199">http://db.tidbits.com/series/1199</A>></P><P><STRONG>My Hacks</STRONG> -- I was in no danger of "Useful!" cries with my first hack. Last year, the prize for my hack revealing Eudora's auto-correction capabilities was a four-foot wooden stake, complete with splinters. Why the hack contest organizers chose to give me such a prize is immaterial, but it was in part to see how I'd get it home, since a four-foot wooden stake is going to take some explaining in the airport. As I was leaving, I had a brainstorm, and I wedged the stake securely under the bathroom sink in my room and put a note on my calendar to request room 323 the next year. This year, when I checked in, I asked for the room, got it, and was overjoyed to find that my stake was still there. For the hack, I donned leather gloves and retold that story while brandishing the stake. To make it relevant to the audience, I cast the hotel as a storage device and the stake as data that I wrote out under the sink, then later asked the file system for the address to the block holding my data (the room number). Access time to my data was poor, but I did get a laugh from peering closely at the stake and announcing that there hadn't been any data corruption. Oh, and just in case you're wondering, this year I'm seeing if my data can be copied to another location and, if so, I'll edit it with the sandpaper prize I won this year.</P><P><<A HREF="http://db.tidbits.com/article/06103">http://db.tidbits.com/article/06103</A>></P><P>I also participated in another hack with Leonard Rosenthol and Richard Ford to design and implement a statistics server so we Eudora users could compare our usage statistics with others (Eudora 5.0 and later can keep detailed usage statistics in an XML file). The idea was for Leonard to write a Eudora plug-in to extract numbers from the XML file and upload them to a set of Perl scripts Richard wrote to group and sort the results. I set up my iBook to run the Perl scripts under Mac OS X's Apache Web server, and I worked on the HTML interface as well.</P><P>The only problem was that since we started after dinner on Friday, with the hack contest starting at midnight, we just didn't have enough time, even with working through much of the contest. Mac OS X stymied many of our efforts with a crash while installing the developer tools, wacky permissions problems, and other annoyances caused by its rigid directory structure. But it was still neat to be run Leonard's application fresh from the compiler, enter its output into a Web page I created in Mac OS X's TextEdit, and see the results served by Apache from Perl scripts that Richard was editing remotely on my machine until the last minute before I started talking.</P><P><STRONG>Yoot Hacks</STRONG> -- Many of this year's 93 hacks came from the large contingent of "yoot" hackers still in school, the youngest of whom was only seven years old. One yoot hack from Justin Christie and Paul Scandariato was even useful - a REALbasic application called iWake that runs items in a Wakeup Items folder whenever the Mac comes out of sleep. A yoot team of Mark Johns, Justin Lee, and Charles Melby-Thompson wrote Chia Windows X to restore the Mac OS 9 zooming window rectangles to Carbon applications under Mac OS X. Daniel Fox wrote an AppleScript called Hackable AirPort Network Seeker, which was designed to alert you verbally if you drove into range of an AirPort network. Finally, Andy Furnas hacked a copy of iTunes to make it scriptable by copying several resources from iTunes predecessor SoundJam MP back into iTunes. It was an impressive showing from the yoots this year, and it's great to see the MacHack experience helping these kids learn and grow year after year.</P><P>My poor efforts and the yoot hacks aside, here are the top five hacks of 2001 as chosen by the developers who watched all of the contest demonstrations.</P><P><STRONG>Fifth Place: Palm Finder 2</STRONG> -- Although most of what goes on at MacHack revolves around the Macintosh, alternate platforms are generally welcome, and the Palm OS often receives strong support in the hack contest. This year, Lucius Kwok's Palm Finder 2 took fifth place with its uncannily accurate representation of the Macintosh Finder on the tiny Palm screen. It could have been even scarier if it had been combined with Jesse Donaldson's HFS-, which took advantage of Palm OS 4.0's new capabilities for accessing files and external storage cards to use an iBook's hard disk as a 10 GB storage card.</P><P><STRONG>Fourth Place: Crrrhaaack</STRONG> -- Inspiration was born of misfortune for Jon Gotow, author of Default Folder, Screen Catcher, and other shareware utilities. Jon accidentally dropped his PowerBook the first day of the conference, cracking the screen and rendering the bottom two-thirds unusable. Rather than crying over a cracked LCD, Jon wrote Crrrhaaack, an extension that resizes the screen to just the usable part (1024 by 260 in his case). An application provides an interface for choosing the functional part of the screen, and if Jon had mentioned during his presentation that he also <EM>wrote</EM> the hack on his broken PowerBook, he might have placed even higher.</P><P><<A HREF="http://www.stclairsoftware.com/">http://www.stclairsoftware.com/</A>></P><P><STRONG>Third Place: AirPort Radar</STRONG> -- Three years ago at MacHack, every table in the hotel atrium where the hackers congregate was adorned with an Ethernet hub. Most of those disappeared last year, because many people had AirPort cards and could use the wireless network instead, and this year, all but a very few people relied entirely on six AirPort Base Stations scattered around the hotel. Taking advantage of the wireless network setup, Mike Neil and Eric Traut wrote AirPort Radar, which used the differing signal strengths from multiple AirPort Base Stations to triangulate and display the location of a PowerBook, even while it was moving.</P><P><STRONG>Second Place: AquaShade</STRONG> -- Mac OS X's "genie effect" when minimizing windows into the Dock makes for a good demo, but lots of Macintosh users have bemoaned the loss of Mac OS 9's windowshade feature, which causes a window to roll up into its title bar. Nicholas Riley and Avi Drissman set out to fix this problem with their AquaShade hack, which brings back the windowshade functionality to Mac OS X's minimize button, at least in Carbon applications. Holding down Control when clicking the minimize button does a normal minimize to the Dock, holding down Option toggles the windowshaded state of all open windows, and holding down Shift makes the windowshade action move more quickly. Derisive cries of "Useful!" were rampant during their demo, but that didn't stop the applause nor the votes that gave AquaShade second place.</P><P><STRONG>First Place: Apple Turnover</STRONG> -- In the grand tradition of almost useless hacks, Mac Murrett's Apple Turnover took home first place with its technically impressive dynamic rotation of the live screen image. Different modifier keys caused Apple Turnover to rotate the screen clockwise and counter-clockwise, or to jump to specific angles of rotation. Apple Turnover made good use of the Velocity Engine, but perhaps the deciding factor was its demonstrated compatibility with asciiMac, a hack from a few years ago that displayed the entire Macintosh interface in ASCII graphics.</P><P>Although details weren't available when I wrote this, CD-ROMs containing all the hacks (many with source code) are usually made available for purchase at the MindVision store. Check the MacHack Web site for details.</P><P><<A HREF="http://www.machack.com/">http://www.machack.com/</A>></P><!-- The MacHax Hack Contest 2001 Adam C. Engst --></div>
  749.         
  750.  
  751.         <!-- end article text -->
  752.     
  753.         
  754.         <!-- PayBITS -->
  755.         
  756.  
  757.         
  758. <p> </p><div class="sponsorbox">
  759. <div class="sponsortext"><A HREF="http://crashplan.com/ref/tidbits.html"><IMG SRC="http://db.tidbits.com/images/badges/CrashPlan.png" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>CrashPlan is easy, secure backup that works everywhere. Back up<br />to your own drives, computers, and online with unlimited storage.<br />With unlimited online backup, this is one resolution you can keep.<br />Back Up Your Life Today! <<a href="http://crashplan.com/ref/tidbits.html">http://crashplan.com/ref/tidbits.html</a>></div>
  760. </div>
  761. <div class="sponsorbox_bottom"> </div>
  762.  
  763.  
  764.         <!-- comments section -->
  765.         
  766.         <!-- end comment show-->
  767.         
  768.         <!-- end comments section -->
  769.  
  770.  
  771.         <!-- end article loop details -->
  772.         
  773.         
  774.  
  775.         
  776.     </div><!-- end show article -->
  777.     
  778.     
  779.  
  780.  
  781. <!-- article_plus end -->
  782. <!--
  783. </DIV>
  784. --><!-- end main_column DIV -->
  785.  
  786.  
  787. <!-- google_ad_section_end -->
  788.  
  789. </div><!-- end center AJAX insert -->
  790.  
  791. <!-- TipBITS Search Results Lozenge -->
  792. <div id="tipbits_results_loz" style="display:none">
  793. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  794. <div class="tip_footer">
  795. <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>
  796. </div>
  797. <div class="tip_footer_bottom">
  798.  </div>
  799. </form>
  800. </div><!-- end TipBITS Search Results lozenge -->
  801.  
  802.  
  803.  
  804.  
  805. <!-- begin footer -->
  806. <div id="footer">
  807.  
  808. <div id="qr_tag_right"><div id="qr_tag_image"><img src="http://db.tidbits.com/tags/6470.png"></div><div id="qr_tag_text"><a href="http://db.tidbits.com/article/10616">What's this image?</a></div></div>
  809. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  810. Web and mailing list host.</p>
  811. <p>Unless otherwise noted, this article is copyright © 2001 <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a></p>
  812. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  813. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  814.  
  815. <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>
  816.  
  817. </div><!-- end footer -->
  818.  
  819.  
  820. </div> <!-- end centercolumn -->
  821.  
  822. <div class="center_bottom"> </div>
  823.  
  824. </div> <!-- end centercolumn_border -->
  825.  
  826.  
  827. </div> <!-- end content_container -->
  828.  
  829. </div> <!-- end mainbody -->
  830.  
  831.  
  832. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  833. </script>
  834. <script type="text/javascript">
  835. _uacct = "UA-276924-3";
  836. urchinTracker();
  837. </script>
  838. <script type="text/javascript"
  839. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  840. <script type="text/javascript">
  841. var skimlinks_pub_id = '2559X585851';
  842. var skimlinks_domain = 'go.tidbits.com';
  843. skimlinks();
  844. </script>
  845. </body>
  846. </html>
  847.  
  848.