home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbser=1143.orig < prev    next >
Text File  |  2010-09-23  |  80KB  |  883 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: MacHack '99</title>
  9.  
  10.     <meta name="title" content="TidBITS: MacHack '99">
  11.     <meta name="description" content="TidBITS is a free email and Web publication covering the Macintosh Internet community.">
  12.     <link rel="image_src" href="/images/tblogo9.gif" />
  13.     <meta name="keywords" content="Apple, Mac, Macintosh, Mac OS, Mac OS X, newsletter, Internet, analysis, reviews, technology, news, TidBITS, TidBITS Talk, Engst">
  14.     <link rel="Help" href="http://www.tidbits.com/about/about-tidbits.html" title="About TidBITS">
  15.     <link rel="Search" href="http://www.tidbits.com/search/" title="Search All TidBITS Content">
  16.     <link rel="Author" href="http://www.tidbits.com/about/contact-info.html" title="Contact Information">
  17.     <link rel="Contents" href="tb-issues/" title="TidBITS Issue Archive">
  18.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/feeds/tidbits.rss" title="TidBITS Full Text Feed">
  19.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/commentfeeds/firehose.xml" title="TidBITS Full Comments Feed">
  20.  
  21.     <link rel="stylesheet" href="/tidbits_2010_001.css" type="text/css">
  22.     <LINK rel="stylesheet" type="text/css" media="print" href="/tb-new-print.css">
  23.     <script src="/javascript/tb.js" type="text/javascript"></script>
  24.     <meta name="viewport" content="width:940">
  25.     <script type='text/javascript' src='http://db.tidbits.com/ads/delivery/spcjs.php?id=2'></script>
  26.     <script src="/javascript/prototype.js" type="text/javascript"></script>
  27. <script src="/javascript/scriptaculous.js" type="text/javascript"></script>
  28. <script src="/js-global/FancyZoom.js" type="text/javascript"></script>
  29. <script src="/js-global/FancyZoomHTML.js" type="text/javascript"></script>
  30. <script type="text/javascript"  src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>
  31.  
  32. </head>
  33. <body onLoad="setupZoom()">
  34. <!-- popup query -->
  35. <div id="big_ole_background" style="display:none"> </div>
  36. <div id="tipbits_enclosure_preview" style="display:none">
  37. <div class="tearoffbox_wide_container">
  38. <div class="tearoffbox_wide_tips">
  39.  
  40. <div class="tip_display">
  41. <div class="preview">
  42. <h6><span id="p_tips_title"></span></h6>
  43. <p id="p_tips_text"></p>
  44. <p>Visit <a href="javascript:void(0)" id="p_url"><span id="p_label"></span></a></p>
  45. <p class="credit">Submitted by <span id="p_reader"></span></p>
  46. <p><input type="submit" value="Back" name="preview_tip" onClick="preview_box('ts','tipbits_enclosure_preview'); return false;"></p>
  47. </div>
  48. </div>
  49. <div class="tearoffbox_wide_bottom_tips">
  50. </div>
  51.  
  52. </div><!-- end tearoffbox_wide_tips -->
  53. </div><!-- end tearoffbox_wide_container for tips-->
  54. <!-- end tearoff box wide -->
  55. </div><!-- end enclosure -->
  56.  
  57. <div class="popup_box_with_captcha" id="ts" style="display:none">
  58.     <div id="popup_box_thanks" style="display:none" onClick="close_popup_thanks('popup_box_thanks', 'ts')"><br>Thanks for submitting your tip! All submissions are moderated by an editor before appearing online. We've reset the form so you can enter another tip. Or you can close the tip submission box.    <div class="x_close" id="thanks_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('popup_box_thanks', 'ts'); return true;">Close</a></div></div>
  59.     <div class="tip_box_format">
  60.     <div id="ts_innards" onClick="close_popup_thanks('popup_box_thanks', 'ts')">
  61.         <div class="tip_box_head">TipBITS Submission</div>
  62.         <div class="tip_box_form">        
  63.                 
  64.             <div class="tbf_row" id="ts_message_box" style="display:none">
  65.                 <div class="tbf_wide"><div class="tbf_alert" id="ts_top_message"></div></div>
  66.             </div>
  67.             <div class="spacer"></div>
  68.  
  69.             <form action="foobar.cgi" method="get" name="submit_tip">
  70.  
  71.             <div class="tbf_row"><div class="tbf_wide_extra_top not_bold">Please submit only technical tips that will help other TidBITS readers better use their Macs, iPhones, and related software and hardware. All product announcements should be sent to <a href="mailto:releases@tidbits.com">releases@tidbits.com</a>.</div></div>
  72.             <div class="spacer"></div>
  73.             <div class="tbf_row">
  74.                 <div class="tbf_left">Tip title<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" id="tip_title_id" name="tip_title" tabindex="1"></div>
  75.             </div>
  76.             <div class="spacer"></div>
  77.             <div class="tbf_row">
  78.                 <div class="tbf_left">Your tip<span class="required_field">*</span></div><div class="tbf_right"><textarea name="tip_text" rows="3" cols="40" tabindex="2"></textarea></div>
  79.             </div>
  80.             <div class="spacer"></div>
  81.             <div class="tbf_row">
  82.                 <div class="tbf_left">URL</div><div class="tbf_right"><input type="text" value="" name="tip_link_url" tabindex="3"><span class="tip_description"><br>Enter the URL to a Web page that supports your tip.</span></div>
  83.             </div>
  84.             <div class="spacer"></div>
  85.             <div class="tbf_row">
  86.                 <div class="tbf_left">Linked text</div><div class="tbf_right"><input type="text" value="" name="tip_link_label" tabindex="4"><span class="tip_description"><br>Enter the name of the page linked above.</span></div>
  87.             </div>
  88.             <div class="spacer"></div>
  89.             <div class="tbf_row">
  90.                 <div class="tbf_left">Your name<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_name" tabindex="5"></div>
  91.             </div>
  92.             <div class="spacer"></div>
  93.             <div class="tbf_row">
  94.                 <div class="tbf_left">Your email<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_email" tabindex="6"></div>
  95.             </div>
  96.             <div class="spacer"></div>
  97.             <div class="spacer"></div>
  98.                 <div class="tbf_wide"><span class="fine_print"><span class="required_field">* indicates required fields</span></span></div>
  99.             <div class="spacer"></div>
  100.             <div class="tbf_row">
  101.                 <div class="tbf_wide_extra_top"><span class="fine_print">To help us avoid automated posts and spam, please enter the words below.</span></div>
  102.             </div>
  103.             <div class="spacer"></div>
  104.             <div class="tbf_row">
  105.                 <div class="tbf_wide"><div id="ts_recaptcha"></div></div>
  106.             </div>
  107.             <div class="spacer"></div>
  108.             <div class="tbf_row">
  109.                 <div class="tbf_wide"><input type="submit" value="Preview Your Tip" name="preview_tip" onClick="fill_preview('tipbits_enclosure_preview', 'ts', this.form); return false;" tabindex="7"> <input type="submit" value="Send Us Your Tip!" name="submit_this_tip" onClick="handle_tip_submission('ts', '', this.form, 'tip'); return false;" tabindex="8"></div>
  110.             </div>
  111.             <div class="spacer"></div>
  112.             <div class="tbf_row">
  113.                 <div class="tbf_wide"><span class="fine_print">When you submit a tip, you give us permission to use it. Read <a href="javascript:void(0)" onClick="generic_show_hide('tip_terms')">our terms</a> for more details. All submissions are reviewed before publication.</span></div>
  114.             </div>
  115.             
  116.             <div class="tbf_row" id="tip_terms" style="display: none">
  117.                 <div class="tbf_wide"><span class="fine_print">Our terms: By submitting a tip, you agree to assign TidBITS Publishing Inc., a non-exclusive, worldwide, perpetual license to reproduce, publish, and distribute your tip in connection with the TidBITS Web site and associated products in any media. You agree that you created the content you submitted, and that you have the right to assign us this license. You give us permission to use your name, but your email address won't be publicly displayed or shared. We review all submissions before publication, and reserve the right to select which submissions we feel are appropriate for our readers and to edit those we publish.</span></div>
  118.             </div>
  119.             <div class="spacer"></div>
  120.             </form>
  121.         </div><!-- end tip_box_form -->
  122.     </div><!-- end tip box innards -->
  123.     </div><!-- end tip box format -->
  124.     
  125.     <div class="x_close" id="ts_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('ts', 'ts', ''); return true;">Close</a></div>
  126.     
  127. </div><!-- end tip_submit box-->
  128.  
  129. <div class="popup_box_with_captcha" id="article_reference" style="display:none"><div class="article_ref_format"><textarea style="width:350px; height:100px;" name="article_ref" id="article_ref_box"></textarea></div>    <div class="x_close" id="article_reference_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('article_reference', 'article_reference', ''); return true;">Close</a></div>
  130. </div>
  131.  
  132. <div class="popup_box_with_captcha" id="comm" style="display:none">
  133.     <div class="tip_box_format">
  134.     <div id="comment_thanks" style="display:none" onClick="close_popup_thanks('comment_thanks', 'comm')"><br>Thanks for submitting a comment! Please check your email for a link that, when clicked, will verify that you're a real person and cause your comment to appear immediately. <div class="x_close" id="comment_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('comment_thanks', 'comm'); return true;">Close</a></div></div>
  135.     <div id="comm_innards" onClick="close_popup_thanks('comment_thanks', 'comm')">
  136.         <div class="tip_box_head" id="comm_headline">Post a Comment</div>
  137.         <div class="tip_box_form">        
  138.                 
  139.             <div class="tbf_row" id="comm_message_box" style="display:none">
  140.                 <div class="tbf_wide"><div class="tbf_alert" id="comm_top_message"></div></div>
  141.             </div>
  142.             <div class="spacer"></div>
  143.  
  144.             <form action="foobar.cgi" method="get" name="post_comment" id="post_comment">
  145.             <input type="hidden" name="comment_nest" value=''>
  146.             <input type="hidden" name="comment_id" value=''>
  147.             <input type="hidden" name="article_id" value=''>
  148.             <input type="hidden" name="edit" value=''>
  149.             <div class="tbf_row">
  150.                 <div class="tbf_left">In reply to</div>
  151.                 <div class="tbf_right">
  152.                     <div id="cb_quoted_row">
  153.                         <div class='cb_open_quote'>“</div>
  154.                         <div id="cb_quoted"></div>
  155.                         <div class='cb_close_quote'>”</div>
  156.                     </div>
  157.                     <div class="spacer"></div>
  158.                 </div>
  159.             </div>
  160.             <div class="spacer"></div>
  161.  
  162.             <div class="tbf_row">
  163.                 <div class="tbf_left" style="padding-top:0">Your comment</div>
  164.                 <div class="tbf_right"><textarea tabindex="1" name="cb_item_add" id="cb_item_add" rows="4" cols="50" onKeyDown="count_insert('cb_item_add','cb_char_count')"></textarea><br><div class="cb_char_count" id="cb_add_count">Remaining characters: <span id="cb_char_count">0</span></div></div>
  165.             </div>
  166.             <div class="spacer"></div>            
  167.  
  168.             <div class="tbf_row">
  169.                 <div class="tbf_left">Your name</div><div class="tbf_right" style="margin-top:8px"><input tabindex="2" type="text" value="" name="cb_add_name" id="cb_add_name" style="margin-top: -4px"></div>
  170.             </div>
  171.             <div class="spacer"></div>
  172.             
  173.             <div class="tbf_row">
  174.                 <div class="tbf_left">Your email</div><div class="tbf_right"><input tabindex="3" type="text" name="cb_add_email" id="cb_add_email"></div>
  175.             </div>
  176.             <div class="spacer"></div>
  177.             
  178.             <div class="tbf_row">
  179.                 <div class="tbf_left"> </div><div class="tbf_right"><input id="comm_post_comment" tabindex="4" type="submit" value="Post Comment" name="submit_this_comment" style="width:100px; float:right" onClick="cb_post_submit(); return false;"></div>
  180.             </div>
  181.             <div class="spacer"></div>
  182.             
  183.             <div class="tbf_row" id="comment_terms">
  184.                 <div class="tbf_wide"><span class="fine_print">Our terms: We reserve the right to edit or delete any comment, so please post thoughtfully. We use your email address <i>only</i> to send you a one-time verification message confirming that you posted this comment. We also store your address to allow you to verify using other Web browsers in the future. For more info, see our <a href="http://db.tidbits.com/privacy.html">privacy policy</a>.</span></div>
  185.             </div>
  186.             <div class="spacer"></div>
  187.  
  188.             </form>
  189.         </div><!-- end comm_form -->
  190.     </div><!-- end comm box innards -->
  191.     </div><!-- end comm box format -->
  192.     
  193.     <div class="x_close" id="comm_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('comm', 'comm', ''); return true;">Close</a></div>
  194.     
  195. </div><!-- end comm_submit box-->
  196.  
  197.  
  198. <!-- start mainbody -->
  199. <div id="mainbody">
  200.  
  201. <!-- start header -->
  202. <div id="header">
  203.  
  204.  
  205.  
  206.     <div id="tblogo">
  207.     <a href="/"><img src="/images/tblogo20_01.gif" alt="TidBITS: Apple News for the Rest of Us" width="177" height="84" border="0"></a>
  208.  
  209.     </div><!-- end tblogo -->
  210.  
  211.  
  212. <!-- leaderboard ad -->
  213. <div id="top_banner">
  214. <script type='text/javascript'><!--// <![CDATA[
  215.     OA_show(3);
  216. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe5f7021'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=3&n=TBe5f7021'></a></noscript>
  217. </div><!-- end top_banner style -->
  218. <!-- end leaderboard ad -->
  219.  
  220.  
  221. </div><!-- end header  -->
  222.  
  223.  
  224. <!-- start content_container -->
  225. <div id="content_container">
  226.  
  227.  
  228. <!-- begin leftcolumn -->
  229. <div id="leftcolumn">
  230.  
  231. <!-- begin leftnav /left navigation -->
  232. <div>
  233.     <ul class="leftnav">
  234.         <!-- start search -->
  235.         <li class="topcorner">
  236.             <form action="http://db.tidbits.com" method="POST" name="search_form"><input type="hidden" name="advanced_search" value=''><input type="text" name="search_text" size="8" maxlength="70" value="Search" onFocus="this.value=''" onBlur="if (this.value == '') { this.value = 'Search'; }"> <span style="margin: 0 5px 0 5px; vertical-align: -2px"><span style="vertical-align: -2px"><input type="image" name="submit_search" src="/images/go_search_button.gif"></span>  <img src="/images/adv_search_button.gif" title="Click for Advanced Search" onClick="var f = document.search_form; f.search_text.value =''; f.advanced_search.value = '1'; f.submit();"></span></form>
  237.         </li>
  238.     </ul>
  239. </div>
  240. <!-- end search -->
  241.  
  242. <!-- Get TidBITS box (temp) -->
  243. <div>
  244.     <ul class="leftnav">
  245.         <li class="gettb"><strong>Get TidBITS via...</strong></li>
  246.     
  247.         <li><a href="http://www.tidbits.com/list" title="Subscribe via email" class="gettb">Email <img src="/images/gettb_button_email.gif" width="12" height="12" border="0" class="nav_img" alt="Email subscription options"></a></li>
  248.         <li><a href="/feeds/tidbits.rss" title="Subscribe via RSS" class="gettb">RSS <img src="/images/feed-icon-12x12.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe via RSS"></a></li>
  249.         <li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=276986548" title="Subscribe to the podcast" class="gettb">Podcast <img src="/images/feed-icon-12x12_podcast.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe to the postcast"></a></li>
  250.         <li><a href="http://www.twitter.com/TidBITS" title="Get Article Updates via Twitter" class="gettb">Twitter <img src="/images/feed_icon_12x12_twitter.png" width="12" height="12" border="0" class="nav_img" alt="Get Article Updates via Twitter"></a></li>
  251.         <li><a href="http://www.facebook.com/pages/TidBITS/195314925519" title="Go to the TidBITS Page at Facebook" class="gettb">Facebook <img src="/images/feed_icon_12x12_facebook.gif" width="12" height="12" border="0" class="nav_img" alt="Go to the TidBITS Page at Facebook"></a></li>
  252.     </ul>
  253. </div>
  254. <!-- end Get TidBITS box -->
  255.     
  256.     <ul class="leftnav">
  257.         <li><a href="/" class="tabhead">TidBITS Home</a></li>
  258.  
  259.         <li><a href="javascript:void(0)" title="Sections" class="tabhead" onClick="return showhide('articleslist')">Sections <span id="articleslist_triangle"><img src="/images/nav_triangle_open.gif" width="9" height="9" border="0" class="navtriangle" id="articleslist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  260.     
  261.     
  262.     </ul>
  263.  
  264. <div id="articleslist" style="display: none"><ul class="leftnav"><li><a href="/section/business" >Business Apps</a></li>
  265. <li><a href="/section/entertainment" >Entertainment</a></li>
  266. <li><a href="/section/links" >External Links</a></li>
  267. <li><a href="/section/home" >Home Macs</a></li>
  268. <li><a href="/section/inside" >Inside TidBITS</a></li>
  269. <li><a href="/section/iphone-ipad-ipod" >iPhone iPad iPod</a></li>
  270. <li><a href="/section/fun" >Just for Fun</a></li>
  271. <li><a href="/section/macs" >Macs & Mac OS X</a></li>
  272. <li><a href="/section/creative" >Media Creation</a></li>
  273. <li><a href="/section/net" >Networking</a></li>
  274. <li><a href="/section/opinion" >Opinion</a></li>
  275. <li><a href="/section/support" >Problem Solving</a></li>
  276. <li><a href="/section/security" >Safe Computing</a></li>
  277. <li><a href="/section/tech" >Tech News</a></li>
  278. <li><a href="/section/watchlist" >Watchlist</a></li>
  279. </ul></div>
  280.  
  281. <div>
  282. <ul class="leftnav">
  283.     <li><a href="javascript:void(0)" onClick="return showhide('stafflist')" title="Staff" class="tabhead">Staff <span id="stafflist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="stafflist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  284. </ul>
  285. </div>
  286.  
  287. <div id="stafflist" style="display:block"><ul class="leftnav"><li><a href="/author/Adam+C+Engst" title="Adam Engst, Publisher">Adam Engst</a></li>
  288.     <li><a href="/author/Tonya+Engst" title="Tonya Engst, Editor in Chief">Tonya Engst</a></li>
  289.     <li><a href="/author/Jeff+Carlson" title="Jeff Carlson, Managing Editor">Jeff Carlson</a></li>
  290.     <li><a href="/author/Joe+Kissell" title="Joe Kissell, Senior Editor">Joe Kissell</a></li>
  291.     <li><a href="/author/Glenn+Fleishman" title="Glenn Fleishman, Contributing Editor">Glenn Fleishman</a></li>
  292.     <li><a href="/author/Mark+Anbinder" title="Mark Anbinder, Contributing Editor">Mark H. Anbinder</a></li>
  293.     <li><a href="/author/Matt+Neuburg" title="Matt Neuburg, Contributing Editor">Matt Neuburg</a></li>
  294.     <li><a href="/author/Rich+Mogull" title="Rich Mogull, Contributing Editor">Rich Mogull</a></li>
  295.     <li><a href="/author/Lex+Friedman" title="Lex Friedman, Staff Writer">Lex Friedman</a></li>
  296.     </ul>
  297.     </div>
  298.  
  299. <div>
  300. <ul class="leftnav">
  301.  
  302.     <li><a href="javascript:void(0)" title="Issues" class="tabhead" onClick="return showhide('issuelist')">Weekly Issues <span id="issuelist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="issuelist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  303. </ul>
  304. </div>
  305.  
  306. <div id="issuelist" style="display:none"><ul class="leftnav"><li><div class="special"><form method="post" action="noaction.cgi" onsubmit="return false" id="issue_search_form" name="issue_search_form">Issue # <input type="text" onkeydown="if (event.keyCode == 13) { redirect_issue(this.form); }" id="issue_searchvalue" name="issue_number" style="width:35px; height: 10px"> <input onclick="redirect_issue(this.form)" type="image" name="submit_search" src="/images/go_search_button_blk.gif"></form></div></li><li><A HREF="/issue/1045" >#1045, 20 Sep 10</A></li>
  307. <li><A HREF="/issue/1044" >#1044, 13 Sep 10</A></li>
  308. <li><A HREF="/issue/1043" >#1043, 06 Sep 10</A></li>
  309. <li><A HREF="/issue/1042" >#1042, 30 Aug 10</A></li>
  310. <li><A HREF="/issue/1041" >#1041, 23 Aug 10</A></li>
  311. <li><A HREF="/issue/1040" >#1040, 16 Aug 10</A></li>
  312. <li><A HREF="/issue/1039" >#1039, 09 Aug 10</A></li>
  313. <li><A HREF="/issue/1038" >#1038, 02 Aug 10</A></li>
  314. <li><A HREF="/issue/1037" >#1037, 26 Jul 10</A></li>
  315.  
  316.  
  317. <li><a href="/backissues">Back Issues</a></li></ul></div>
  318.  
  319.  
  320. <div>
  321. <ul class="leftnav">
  322.  
  323.     <li><a href="/tidbitstalk" title="TidBITS Talk" class="tabhead">TidBITS Talk</a></li>
  324. </ul>
  325. </div>
  326.  
  327.  
  328.  
  329. <div>    
  330. <ul class="leftnav">
  331.     <li><a href="javascript:void(0)" onClick="return showhide('abouttidbits')" title="About TidBITS" class="tabhead">About TidBITS <span id="abouttidbits_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="abouttidbits_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  332. </ul>
  333. </div>
  334.  
  335. <div id="abouttidbits" style="display:none">
  336. <ul class="leftnav"><li><a href="/about.html" title="About TidBITS">About Us</a></li><li><a href="/account.html" title="Account Help">Account Help</a></li><li><a href="/advertising.html" title="Advertise with TidBITS!">Advertise</a></li><li><a href="/contact.html" title="Contact Info">Contact</a></li><li><a href="/copyright.html" title="Copyright Terms">Copyright</a></li>
  337. </ul>
  338. </div>
  339.  
  340. <div>
  341. <ul class="leftnav">
  342. <li class="bottom"> </li>
  343. </ul>
  344. </div>
  345. <!-- end leftnav/left navigation -->
  346.  
  347. <!-- making sure nav elements hide/show before page loads --><script type="text/javascript"><!--
  348.     showhide('articleslist','show'); 
  349. // --></script>
  350.  
  351. <!-- begin sponsor_sidebox -->
  352.  
  353. <div class="sponsor_sidebox">
  354.  
  355. <ul>
  356.  
  357. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  358.  
  359. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  360.  
  361. <li><a href="http://www.smilesoftware.com/">Smile</a></li>
  362.  
  363. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  364.  
  365. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  366.  
  367. <li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</a></li>
  368.  
  369. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  370.  
  371. <li><a href="http://nuance.com/dragon/mac">Nuance</a></li>
  372.  
  373. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</a></li>
  374.  
  375. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  376.  
  377. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  378.  
  379. </ul><div class='sponsor_sidebox_bottom'> </div>
  380. </div>
  381.  
  382.  
  383. <!-- end sponsor_sidebox -->
  384.  
  385.  
  386. </div> <!-- end leftcolumn div -->
  387.  
  388. <!-- end left column -->
  389.  
  390.  
  391. <!-- begin centercolumn_border -->
  392.  
  393. <div id="centercolumn_border">
  394.  
  395. <div class="center_top">Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the best-selling <a href="http://www.takecontrolbooks.com/?pt=TB-TAGLINE" style="color:yellow">Take Control</a> ebooks.</div>
  396.  
  397. <!-- begin centercolumn -->
  398. <div id="centercolumn">
  399.  
  400.  
  401.  
  402. <!-- begin rightcolumn_container -->
  403. <div id="rightcolumn_container">
  404.  
  405. <!-- begin rightcolumn -->
  406.     <!-- rightcolumn is embedded within centercolumn so featured text wraps around it -->
  407.     <div id="rightcolumn">
  408.  
  409. <p class="top"> </p>
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420. <!-- Watchlist items -->
  421. <div class="tearoffbox_wide_container">
  422. <div class="tearoffbox_wide_watchlist">
  423. <p class="tearoffbox_wide_top_watchlist"> </p>
  424.  
  425. <h6><a href="/section/watchlist">TidBITS Watchlist</a></h6>
  426. <ul>
  427.  
  428. <LI><a href="/article/11625">Adobe Flash Player 10.1.85.3</a></LI>
  429.  
  430. <LI><a href="/article/11622">DEVONthink and DEVONnote 2.0.4</a></LI>
  431.  
  432. <LI><a href="/article/11620">Security Update 2010-006</a></LI>
  433.  
  434. <LI><a href="/article/11619">TinkerTool 4.2</a></LI>
  435.  
  436. <LI><a href="/article/11618">Mailplane 2.2</a></LI>
  437.  
  438. <LI><a href="/article/11617">Pro Applications Update 2010-02</a></LI>
  439.  
  440. <LI><a href="/article/11611">Dialectic 1.7</a></LI>
  441.  
  442. <LI><a href="/article/11604">Transmit 4.1.1</a></LI>
  443.  
  444. <LI><a href="/article/11603">MarsEdit 3.1.1</a></LI>
  445.  
  446. <LI><a href="/article/11600">Savescreenie 2.0</a></LI>
  447.  
  448. </ul>
  449.  
  450. <div class="tearoffbox_wide_bottom_watchlist"> </div>
  451.  
  452. </div><!-- end tearoffbox_wide -->
  453.  
  454. </div><!-- end tearoffbox_wide_container for watchlist items -->
  455.  
  456. <!-- begin tearoff box wide -->
  457.  
  458. <div class="tearoffbox_wide_container">
  459. <div class="tearoffbox_wide_tips">
  460.  
  461. <div class="tip_display">
  462. <div class="tips_sponsor_logo">
  463. <a href="http://www.econtechnologies.com/tb.html"><img src="/images/sponsors/tearoffbox_wide_tips_econ.gif" height="58" width="164" border="0" alt="sponsor logo"></a>
  464. </div>
  465. <h6>Manage Multiple ChronoSync Documents</h6>
  466. <p><p>If you have multiple ChronoSync documents and need to run your syncs or backups manually, you may find it taxing to open each ChronoSync document and execute it manually. There are two easy methods to simplify managing multiple ChronoSync documents. </p>
  467. <ul>
  468. <li>You can add the ChronoSync documents to a Container document. A Container holds multiple ChronoSync documents and enables you to control several ChronoSync documents as if they were one document.</li>
  469. <li>You can make use of the Scheduled Documents Manager window to collect and organize commonly used ChronoSync documents without scheduling them. </li>
  470. </ul>
  471. </p><p>Both methods allow you to schedule or manually run your syncs and backups.</p></p>
  472. <p>Visit <a href="http://www.econtechnologies.com/pages/cs/chrono_tips3.html">ChronoSync Tips</a></p>
  473. </div>
  474.  
  475. <div class="tearoffbox_wide_bottom_tips">
  476. <div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/242">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  477.  
  478. <p class="credit">Written by<br><a href="/author/Adam%20C.%20Engst">Adam C. Engst</a></p></div></div>
  479.  
  480. </div>
  481.  
  482. <div class="tearoffbox_wide_tips_submit">
  483. <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>
  484. <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>
  485. </div>
  486. <div class="tearoffbox_wide_bottom_tips_submit">
  487.  
  488. </div>
  489.  
  490. </div><!-- end tearoffbox_wide_tips -->
  491. </div><!-- end tearoffbox_wide_container for tips-->
  492. <!-- end tearoff box wide -->
  493.  
  494.  
  495.  
  496. <!-- begin 300 x 250 ad -->
  497.  
  498. <div id="content_ad_square">
  499. <script type='text/javascript'><!--// <![CDATA[
  500.     OA_show(5);
  501. // ]]> --></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>
  502. </div><!-- end 300 x 250 ad -->
  503.  
  504. <!-- TBTalk items -->
  505. <div class="tearoffbox_wide_container">
  506.  
  507. <div class="tearoffbox_wide_p">
  508. <p class="tearoffbox_wide_top_p"> </p>
  509.  
  510. <h5>Recent TidBITS Talk Discussions</h5>
  511. <ul>
  512.  
  513. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf95241">Alternatives to MobileMe for syncing calendars between iPad/Mac</a> (1 message)</LI>
  514.  
  515. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf94dbb">Free anti-virus for the Mac</a> (20 messages)</LI>
  516.  
  517. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf934e6">iTunes 10 syncing iPod Touch 4.1</a> (2 messages)</LI>
  518.  
  519. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf92a22">Thoughts about Ping</a> (16 messages)</LI>
  520.  
  521. </ul>
  522.  
  523. <div class="tearoffbox_wide_bottom_p"> </div>
  524.  
  525. </div><!-- end tearoffbox_wide -->
  526.  
  527. </div><!-- end tearoffbox_wide_container for TBtalk items -->
  528.  
  529. <!-- start takecontrol_ad -->
  530. <script type='text/javascript'><!--// <![CDATA[
  531.     OA_show(7);
  532. // ]]> --></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 -->
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548. <div id="rightcolumn_bottom">
  549.  
  550. </div>
  551.  
  552.     </div><!-- end rightcolumn -->
  553.  
  554.  
  555. </div><!-- end rightcolumn_container -->
  556.  
  557.  
  558.  
  559. <!-- featured articles -->
  560.  
  561. <div id="center_ajax_sub" class="instapaper_body">
  562.  
  563. <!-- google_ad_section_start -->
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584. <!-- issue, article, or series -->
  585.  
  586.     
  587.     
  588.     
  589.         <!-- start pagehead -->
  590.         <div id="pagehead">
  591.         <h2>Series: MacHack '99</h2>
  592.         <p class="pagesubtitle">Adam Engst reports on the ultimate Mac geek get-together </p>
  593.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_all_articles('4138,4145,4228')"><span id="showhide_arts_top">Show the full text of all articles</span></a>
  594.         </div><!-- end pagehead -->
  595.     
  596.     
  597.     
  598.         
  599.     <!-- show article(s) -->
  600.     <div class="article"><a name="4138"></a>
  601.     
  602. <!-- comment initialization routine as needed -->
  603. <div class="popup_box_with_captcha" id="hc_4138" style="display: none">
  604.     <div class="tip_box_format">
  605.     <div id="hc_innards_alt_4138" style="display: none">
  606.             <div class="tbf_row">
  607.                 <div class="tbf_wide_80" id="hc_small_response_4138"></div><div class="x_close_row" id="hc_upper_right1_4138"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4138', 'hc', '4138'); return true;">Close</a></div>
  608.  
  609.             </div>
  610.     </div>
  611.     <div id="hc_innards_4138">
  612.         <div class="tip_box_form">        
  613.             <form action="foobar.cgi" method="get" name="check_human_4138">
  614.             <div class="tbf_row">
  615.                 <div class="tbf_wide_80" id="hc_rc_4138">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_4138"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4138', 'hc', '4138'); return true;">Close</a></div>
  616.  
  617.             </div>
  618.             <div class="spacer"></div>
  619.             <div class="tbf_row" id="hc_message_box_4138" style="display:none">
  620.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_4138"></div></div>
  621.             </div>
  622.             <div class="spacer"></div>
  623.             <div class="tbf_row">
  624.                 <div class="tbf_wide"><div id="hc_recaptcha_4138"></div></div>
  625.             </div>
  626.             <div class="spacer"></div>
  627.             <div class="tbf_row">
  628.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '4138', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="5463"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  629.             </div>
  630.             <div class="spacer"></div>
  631.             </form>
  632.         </div><!-- end tip_box_form -->
  633.     </div><!-- end hum box innards -->
  634.     </div><!-- end tip box format -->
  635. </div><!-- end tip_submit box-->
  636.  
  637.  
  638.  
  639.         
  640.         
  641.         <!-- specific article details here -->
  642.         
  643.         
  644.             <p class="series_number">Article 1 of 3 in series</p>
  645.         
  646.     
  647.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  648.         
  649.         <div class="featured_meta"><div class="meta_article">05 Jul 1999 | <a href="/article/5463?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>
  650.  
  651.         <H2><a href="/article/5463">MacHack: The Ultimate Macintosh Event</a></H2>
  652.  
  653.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_4138.submit_type.value='email'; document.check_human_4138.author_id.value='6'; ShowTipBox('hc_4138', 'hc_recaptcha_4138')"><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>
  654.  
  655.         <!-- article text -->
  656.         <div id="article_blurb_4138"><p>Every so often, I feel like a total idiot. I've been reporting on the Macintosh industry for over nine years, and for the first few years, I vaguely knew there was a developer event called MacHack<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('4138')">Show full article</a></span></p></div>
  657.         <div id="article_text_4138" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4138')">Hide full article</a></p><P>Every so often, I feel like a total idiot. I've been reporting on the Macintosh industry for over nine years, and for the first few years, I vaguely knew there was a developer event called MacHack. At some point, MacHack was explained to me, and as I made more contacts in the industry, an ever-increasing number of people invited me to attend. I always demurred, begging off on the grounds that I wasn't a programmer, or that I couldn't justify travelling to yet another conference, especially one in Detroit, which holds no external attractions like relatives in the area. Last year, I even helped in a small way to find loaner machines for the conference's public machine room; this increased the pressure to attend this year's conference, and I finally gave in.</P><P>What a mistake I've been making! MacHack is, quite simply, the most fun a serious Macintosh geek can have legally.</P><P><<A HREF="http://www.machack.com/">http://www.machack.com/</A>></P><P><STRONG>Identification</STRONG> -- Describing MacHack is like summarizing a zany movie - no retelling can capture the essence of the event. Still, let me attempt it.</P><P>A defining characteristic of a geek is the confluence of personal and professional interests. The Mac geek lives and breathes the Macintosh, checking email first thing in the morning, using a Macintosh at work all day, debating recent industry events with friends at dinner, playing games, making Web pages, or even writing programs at night. The details vary by individual, of course, but many people fall squarely into this category. For those folks, it's tremendously enjoyable to be surrounded by peers, Macintosh geeks of roughly equivalent experience and knowledge. Conversations amongst Mac geeks range widely and hop nimbly between Macintosh topics, unhindered by any need to differentiate between RAM and hard disk space or explain every Internet reference.</P><P>Many of us have had a taste of such an event, though it's usually limited to an evening user group meeting or a brief dinner party. But if a user group meeting is a taste, then Macworld Expo ranks as a light supper - the thousands of attendees make significant interaction with other Macintosh users difficult. There's also a sense at Macworld that someone else is cooking, and we're all guests who must maintain a certain distance and formality. In comparison, MacHack is a ten-course feast prepared in front of the several hundred diners by talented volunteer chefs who then remove their chef's hats and join in the exuberant gastronomic celebration.</P><P>In short, MacHack is a conference of the geeks, by the geeks, and for the geeks. Started 14 years ago by Gavin Eadie and some colleagues at the University of Michigan, MacHack became independent in its second year and continues to be organized by a volunteer committee made up of members of the Macintosh community, ably aided by the staff of Expotech, who handle the logistical details. The committee finds a keynote speaker, organizes sessions, designs the t-shirts, and generally ensures that MacHack will happen yet again, while Expotech handles registration, conference materials, coordination with the hotel, and ordering hundreds of boxes of pizza.</P><P>MacHack is a developer conference, and there's little question that developers find it tremendously useful. Where else can you ask a question of the best Macintosh programmers in the industry and get an immediate answer or spark a debate between the hotshot programmers and wizards from Apple's Developer Technical Support division, some of whom also attend? That said, I'm not a programmer at all, and I enjoyed myself tremendously. Pondering why, I realized that for non-programmers, two things must be true. You must be a serious and outgoing Mac geek conversant with current technologies, issues, and events, and you must be willing to participate.</P><P>In my case, participation came in the form of giving a session entitled "Hacking the Press" (which I plan to convert to a TidBITS article). I also let myself be rooked into offering a technical journalist's perspective in a session on industry terminology, and spent time helping a 12-year-old girl find the necessary software to use an old Connectix QuickCam to create her hack for the Hack Contest.</P><P><STRONG>Education</STRONG> -- My brief donation of time and expertise finding software on the Internet was nothing compared to what many others at MacHack did for the younger attendees. Collectively referred to as "yoots," the student attendees ranged from a seven-year-old girl to a college student interning at Apple. Everyone encourages and helps the students, 50 of whom attended this year and 19 of whom worked on hacks for the Hack Contest. For instance, AppleScript was a popular language for many of the yoot hacks, and AppleScript guru (and author of the AppleScript editor Scripter) Cal Simone lent his expertise to a number of the students.</P><P><<A HREF="http://www.mainevent.com/">http://www.mainevent.com/</A>></P><P>This emphasis on education is one of the most attractive traits of MacHack, because it spreads expertise among the community and also to future generations of programmers. Perhaps even more important is the example set by the generosity of the older programmers - these kids are seeing people helping one another regardless of age or knowledge. All that's required is a desire to learn and participate.</P><P><STRONG>Hacks</STRONG> -- I've referred to "hacks" several times already, and the hacks are an important aspect of MacHack. A hack, for the purposes of the conference, is a program that makes the Mac act in previously inconceivable ways. Hacks may modify standard Macintosh windows, replace the Mac's graphics with ASCII characters, or, in the case of one that didn't succeed this year, attempt to coerce the Mac OS to run on a 240 by 240 pixel monitor. Occasionally a hack may even become a commercial product, as with Leonard Rosenthol's Finder-based Web bookmark utility CyberFinder. Hacks are seldom polished, since they're usually created in the 72 hours before the Hack Contest, and they generally aren't useful. The goal with a hack is to perform a technical feat that will impress the other programmers, not to write finished code with a sophisticated interface. This year's entries in the Hack Contest were innovative and entertaining, and I'll cover them in detail in a separate article.</P><P><<A HREF="http://www.hax.com/HackContest">http://www.hax.com/HackContest</A>></P><P><STRONG>Thoughts</STRONG> -- Of all the conferences I've attended over the years, MacHack stands out as the most unusual. A few examples:</P><UL><LI><P>Time loses all meaning. Although some programmers stay up almost the entire conference, I wimped out every day between 3 AM and 5 AM, and got up sometime between noon and 3 PM. I found after a day or two that looking at my watch was pointless. Normally when you see that it's 1 PM, you think, "Hmm, maybe I should have lunch." At MacHack, you can glance at your watch, see that it's 6 PM, try to remember if you've eaten breakfast yet, and decide that it's less important than talking to someone about future Mac OS directions. To get a feel for how time passes, read Dave Johnson's chronology of MacHack 1996.</P></UL><P><<A HREF="http://devworld.apple.com/mkt/informed/appledirections/oct96/machack96.html">http://devworld.apple.com/mkt/informed/ appledirections/oct96/machack96.html</A>></P><UL><LI><P>Everything caters to the programmer lifestyle. The keynote starts the conference at midnight. Free soda is provided at all times, and it's tricky to find any that doesn't have caffeine; Jolt Cola (with all the sugar and twice the caffeine) is always available. Except for the final night, when most people go to a late movie and come back to an ice cream social, boxes of pizza arrive every night at midnight. The conference's contract with the hotel reportedly states that the housekeeping staff won't knock on any doors before noon. This year, that fact wasn't properly communicated, and the first morning the housekeeping staff walked in on groggy geeks who had forgotten to put out Do Not Disturb signs.</P><LI><P>Although MacHack has a full program of useful sessions, MacHack's focus is the hotel lobby. Picture a standard hotel lobby with small tables and chairs clustered around them. Then imagine four or five PowerBook G3s on each table, plugged into that table's Ethernet hub and power strip. People drift in and out of the lobby constantly, and a free chair is all the invitation you need to sit down, plug in, and start chatting with whomever is at the table. No one bothers to use a modem to dial out to the Internet, since the conference always has a dedicated Internet connection (256 Kbps ISDN this year) and internal Ethernet network.</P><LI><P>Everyone at MacHack is technical, and the standard marketing and PR fluff that goes on at other conferences has little place at MacHack. No one at MacHack will try to sell you anything, and the attendees appreciate the low-key corporate sponsorship that helps cover the costs of the conference. Discussions take place at many different levels, and if you find one that's over your head, you can listen in and try to learn something or move on to another conversation.</P><LI><P>Most conferences plan their locations carefully; witness the way Macworld Expo has moved to New York from Boston to focus on the New York media market. Other professional conferences pick exotic locales where attendees can happily golf or play tourist instead of attending the conference. MacHack remains in a hotel outside of Detroit where the only places you can walk to are a pair of fast food joints and a CompUSA. The point of MacHack is to be at MacHack, not to venture outside. Housing almost everyone in the same hotel helps this focus; no time is wasted commuting from and to other hotels or coordinating places to meet.</P><LI><P>This year's keynote was given by Andy Ihnatko, a long-time Macintosh columnist and the self-described "42nd Most Popular Personality in America." Andy's keynote turned out to be essentially two hours of unparalleled Macintosh stand-up comedy. The MacHack organizers videotaped the keynote and hope to be able to make it available for sale, since any Macintosh fan will appreciate the humor. Andy also garnered serious points from the attendees by being one of the few keynote speakers to stick around for the entire conference and only the second to submit a hack in the Hack Contest.</P><LI><P>There's a certain joy in the air at MacHack that's difficult to describe. Everyone understands that they're at MacHack to have a good time. The conference might prove extremely useful in other ways - ranging from job hunting to general education to being able to talk with an Apple DTS engineer for an hour about a specific problem - but fun is paramount. As one programmer whose code many of you have used put it, "It's my vacation. And it's a business expense."</P></UL><P><STRONG>Emulation</STRONG> -- It would be easy to recommend that everyone should go to MacHack, but that would ruin MacHack because the conference can't get much larger without losing its charm. Recognizing this, the conference organizers put a cap on attendance and, although they didn't quite hit it, they came close with 289 attendees this year. So for next year, when MacHack will once again be held near Detroit, from 22-Jun-00 to 24-Jun-00, I would encourage developers and serious Mac geeks with technical bents and outgoing personalities to attend.</P><P>The people who have organized MacHack have created something truly special, but I don't think it's necessarily unique. Other niche groups, from desktop publishers to database developers to independent consultants, could all learn from MacHack's example and create their own conferences that focus on letting the attendees interact with one another, rather than trying to shuttle them around between sessions like high school students. The best way to understand the secrets of what makes MacHack special would be to experience it firsthand, especially as a volunteer helping behind the scenes.</P><!-- MacHack: The Ultimate Macintosh Event Adam C. Engst --></div>
  658.         <div id="article_text_bottom_4138" style="display:none">
  659.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4138')">Hide full article</a></p><div class="sponsorbox">
  660. <div class="sponsortext"><A HREF="http://www.thedatarescuecenter.com/"><IMG SRC="http://db.tidbits.com/images/badges/data-rescue-center.png" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>The Data Rescue Center is dedicated to bringing you the very best<br />hard drive recovery, data migration, and photo archiving options,<br />all at affordable and fair prices for individuals and businesses.<br />Get a FREE estimate today at <<a href="http://www.thedatarescuecenter.com/">http://www.thedatarescuecenter.com/</a>></div>
  661. </div>
  662. <div class="sponsorbox_bottom"> </div>
  663. </div>
  664.  
  665.         <!-- end article text -->
  666.     
  667.         
  668.  
  669.         
  670.     </div><div class="article"><a name="4145"></a>
  671.     
  672. <!-- comment initialization routine as needed -->
  673. <div class="popup_box_with_captcha" id="hc_4145" style="display: none">
  674.     <div class="tip_box_format">
  675.     <div id="hc_innards_alt_4145" style="display: none">
  676.             <div class="tbf_row">
  677.                 <div class="tbf_wide_80" id="hc_small_response_4145"></div><div class="x_close_row" id="hc_upper_right1_4145"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4145', 'hc', '4145'); return true;">Close</a></div>
  678.  
  679.             </div>
  680.     </div>
  681.     <div id="hc_innards_4145">
  682.         <div class="tip_box_form">        
  683.             <form action="foobar.cgi" method="get" name="check_human_4145">
  684.             <div class="tbf_row">
  685.                 <div class="tbf_wide_80" id="hc_rc_4145">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_4145"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4145', 'hc', '4145'); return true;">Close</a></div>
  686.  
  687.             </div>
  688.             <div class="spacer"></div>
  689.             <div class="tbf_row" id="hc_message_box_4145" style="display:none">
  690.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_4145"></div></div>
  691.             </div>
  692.             <div class="spacer"></div>
  693.             <div class="tbf_row">
  694.                 <div class="tbf_wide"><div id="hc_recaptcha_4145"></div></div>
  695.             </div>
  696.             <div class="spacer"></div>
  697.             <div class="tbf_row">
  698.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '4145', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="5470"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  699.             </div>
  700.             <div class="spacer"></div>
  701.             </form>
  702.         </div><!-- end tip_box_form -->
  703.     </div><!-- end hum box innards -->
  704.     </div><!-- end tip box format -->
  705. </div><!-- end tip_submit box-->
  706.  
  707.  
  708.  
  709.         
  710.         
  711.         <!-- specific article details here -->
  712.         
  713.         
  714.             <p class="series_number">Article 2 of 3 in series</p>
  715.         
  716.     
  717.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  718.         
  719.         <div class="featured_meta"><div class="meta_article">12 Jul 1999 | <a href="/article/5470?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>
  720.  
  721.         <H2><a href="/article/5470">The MacHack Hack Contest 1999</a></H2>
  722.  
  723.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_4145.submit_type.value='email'; document.check_human_4145.author_id.value='6'; ShowTipBox('hc_4145', 'hc_recaptcha_4145')"><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>
  724.  
  725.         <!-- article text -->
  726.         <div id="article_blurb_4145"><p>Most often, the primary news items that appear in the press after MacHack are the results of the Hack Contest, run by the MacHax Group at MacHack every year<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('4145')">Show full article</a></span></p></div>
  727.         <div id="article_text_4145" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4145')">Hide full article</a></p><P>Most often, the primary news items that appear in the press after MacHack are the results of the Hack Contest, run by the MacHax Group at MacHack every year. The reason is simple - the results of the Hack Contest give the world a glimpse into the creativity of the Macintosh programmers when unfettered by reality, utility, or stability. Hacks generally aren't stable, useful, or even usable - they're just impressive feats of technical prowess. In fact, if a hack could be construed as having some utility while being demoed at the Hack Contest, someone in the audience will derisively yell, "Useful!" And if the programmer dips too far into promotion, the audience may reply with jeers of "Marketing!"</P><P><<A HREF="http://db.tidbits.com/article/02989">http://db.tidbits.com/article/02989</A>><BR><<A HREF="http://db.tidbits.com/article/04972">http://db.tidbits.com/article/04972</A>><BR><<A HREF="http://www.machack.com/">http://www.machack.com/</A>></P><P>Since I first attended MacHack this year (see "MacHack: The Ultimate Macintosh Event" last week in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-487.html">TidBITS-487</A>), I can't compare this year's Hack Contest to previous ones, but it was certainly a unique experience for me. The producers of the Hack Contest queued up a vast number of hilarious QuickTime movie clips to fill bits of time in between demonstrations, while contestants feverishly loaded new hacks onto the computers hooked to the projection systems. Also keeping the audience alert and happy were goodies thrown from the stage: the basic rule was to stay attentive or risk getting whacked upside the head by candy, a software package, a stuffed iMac, or one of the many basketball-sized inflatable plastic balls from Netscape that bounced around the entire conference.</P><P><<A HREF="http://db.tidbits.com/article/05463">http://db.tidbits.com/article/05463</A>></P><P><STRONG>Top Five Hacks</STRONG> -- This year's top five hacks had little in common, although there was no doubt which was going to win: Lisa Lippincott's Unfinder, which provides an Undo command in the Finder for non-destructive actions such as moving files, was a shoo-in for first place. Lisa had been one of the first to demo, and as she finished her introduction, moved a few files, and chose Undo from the Finder's Edit menu, the crowd gave her a full-bore standing ovation (after a few catcalls of "Useful!"). I hope Lisa's hack shames Apple into adding the feature to a future version of the Mac OS. It wouldn't be the first time a hack contest entry led to improvements in the Mac OS.</P><P>The prize for the best hack is the coveted Victor A-Trap, a large rat trap whose name has been modified to be a perfect pun. First, it's made by the Victor Corporation and goes to the winner. Second, it's named "A-Trap" (the R and T in RAT are excised with an X-Acto knife) after the initial character of the hex values for trap addresses used by programmers to patch the Mac OS. The contest organizers also get a kick out of coercing the winners into prominently displaying a large rat trap for friends and coworkers to see. For me at least, it also seemed a slight nod to the concept of building a better mousetrap.</P><P><<A HREF="http://www.hax.com/HackContest">http://www.hax.com/HackContest</A>></P><P>Eric Traut's Out of Context Menus application took second place by providing a set of contextual menu items that aren't normally provided for Finder windows, including Gaussian Blur, Compress, Duplicate, and Slide (all of which visually modified the contents of the window). A more involved command, New Game, required the creation of Left Paddle and Right Paddle folders in the window first, after which choosing that command caused the folders to play a game of Pong. Eventually something caused a problem, so Eric chose Restart from the contextual menu, seemingly restarting the Mac OS within only that window.</P><P>Ed Wynne's DesktopDoubler came in third place. DesktopDoubler essentially fooled a PowerBook G3 into thinking it had a second screen attached, but went one step further than most virtual screen utilities by fooling the Mac OS into thinking a second monitor was attached instead of virtually enlarging the existing monitor or faking a larger desktop. As a result, the Monitors & Sound control panel saw the second screen, so you could arrange it however you wanted. DesktopDoubler also put a menu bar and certain desktop items like the Trash on the secondary screen. Movement between the two screens was accomplished by moving the mouse pointer between them.</P><P>Fourth place went to Jorg Brown and Ned Holbrook for MacJive, a politically incorrect extension that caused all text in every application on the Mac to be translated into fake ghetto-speak. A variety of these translations exist as CGIs through which you can run Web pages, but seeing the entire Macintosh interface so translated increased the effect. For MacJive, Jorg and Ned won a large frozen turkey, in part, I suspect, just to see how they'd attempt to get it home.</P><P><<A HREF="http://magic.hurrah.com/~fireball/jive.cgi">http://magic.hurrah.com/~fireball/jive.cgi</A>></P><P>Filling out the top five was Paul Baxter's PatchMaker, a programmer's tool that took care of the basic support code necessary to create each of 1,258 68K and PowerPC patches, enabling the programmer to concentrate on the hack itself. Like Unfinder, PatchMaker garnered some cries of "Useful!" from the audience, and at least one person was considering writing next year's hack using PatchMaker to get started.</P><P><STRONG>More Hacks</STRONG> -- Although the above five hacks took home top honors, other hacks deserve public recognition (and I'll probably make some mistakes here, due to taking notes in the wee hours).</P><P>In a successful attempt to avoid "Useful!" cries, Leonard Rosenthol and Miro Jurisic wrote Mactive Desktop, which used Microsoft Internet Explorer, Netscape Communicator, or iCab to put live Web pages on the Macintosh desktop, much like the Windows Active Desktop. Also truly useless was Bill Hubauer's "CD-ROM Drive You Crazy" which caused the CD-ROM trays on Macs elsewhere on the network to move in and out. Jesse Donaldson and Katherine Smith entered ReaderMouse, which used speech synthesis to read the word under the mouse pointer, reportedly performing OCR on the pixels on the screen.</P><P>Richard Ford, previously Apple's Open Transport product manager, showed HUF (Hotline User Frustrator), a hack that made use of the PacketShaper, a neat device made by Packeteer, the company where Richard now works. Responding to complaints that Hotline users were flooding MacHack's 256 Kbps Internet connection with downloads, Richard set the PacketShaper to restrict Hotline users to 300 baud, then showed real-time graphs of how his hack had improved network throughput for other protocols. Another popular Internet hack, Geo Killer from Mark Lilback, automatically closed those annoying pop-up windows that appear when visiting Web sites hosted by GeoCities; it could be configured to close pop-up windows from any site.</P><P><<A HREF="http://www.packeteer.com/products/products.htm">http://www.packeteer.com/products/products.htm</A>></P><P>Apple DTS's Andy Bachorski continued a theme from last year, when he wrote a version of BrickOut in MacsBug. This year, he used BBEdit to write ASCII Invaders, a version of Space Invaders. He created the screen display by making a special font, and handled the animation entirely through text manipulations in BBEdit.</P><P>Keynote speaker Andy Ihnatko also stayed with the kind of hacking he had shown in his keynote. Using an ADB/IO device and some custom AppleScript scripts, Andy wrote Skinner Cubicle (a takeoff on the Skinner box used in behavioral research). The basic idea was that sometimes you need to provide positive or negative feedback to cubicle dwellers; one script caused a motorized candy machine to dispense a piece of candy, and another fired a toy dart gun.</P><P>Finally, several people showed Y2K-related hacks, the most amusing of which prevented the Mac's clock from ever ticking over to midnight on January 1st. Instead, every time it reached 11:59:59, it reset to 11:59:00. Good thing we won't be needing that one.</P><P><STRONG>Yoot Hacks</STRONG> -- The student hacks ranged tremendously in sophistication, which wasn't surprising, given that the youngest entrant was seven year-old Rachel Green while several other contestants were in their last year of eligibility for yoot status, as defined by graduation from college. Rachel's hack used AppleScript to make two icons chase each other around the screen. On the other end of the spectrum was Avi Drissman's Balloon Preview, which used QuickTime to preview images and movies in help balloons that popped up when he pointed at the files. Ned Holbrook's CD Namer was also quite sophisticated; when you inserted an audio CD, CD Namer automatically figured out which CD it was, looked it up in an Internet database, and filled in the disc and track titles.</P><P>Other yoot hacks were quite impressive, including Lucius Kwok's Prose Posse, which rewrote text files based on word proximities, and a three-person yoot hack called Altered States, which could apply a number of garish effects (especially garish at 2:30 AM) to windows. Ben Furnas's The Creep hack implemented a simple dialog box-based network chat client using program linking.</P><P>One yoot hack made its way into MacHack legend. Matt Linden's AppleScript-based "Is it a folder?" hack was supposed to identify either files or folders selected in the Finder. If you pointed at a folder, it said out loud "This is a folder." and displayed a dialog box containing the same words. Unfortunately for Matt, a bug caused it to display the same dialog box when he clicked a file, though the spoken words correctly stated that "This is not a folder." Unable to believe his code wasn't working, Matt tried and tried to get his hack to work, pointing at numerous different files. The sleep-deprived audience found this hilarious, and badges labeled "I am not a folder" appeared the next day, and Steve Kiene of MindVision made a t-shirt that proclaimed, "I <EM>am</EM> a folder and I've got the documents to prove it!"</P><P><STRONG>AltiVec Hacks</STRONG> -- A perk of attending MacHack was that Apple sent a few prototype G4-based Power Macs for the developers to hack. The PowerPC G4 is essentially a souped-up G3 with the AltiVec vector processor, an addition to the chip that radically speeds up certain types of code. Most of the AltiVec hacks, including AltiVec expert Doug Clarke's "42," showed code running both normally and with the AltiVec processing turned on. In one instance, using the AltiVec instructions ran 188 times faster, although Doug said speed increases of 2 to 4 times were more likely with minimal work.</P><P><STRONG>Other Platforms</STRONG> -- A couple of hacks ran on top of Mac OS X Server, including one called Blue Box Spy, which let you see what was happening in the Blue Box (where the Mac OS was running) even when the Blue Box was hidden. Andrew Stone also entered a hack that provided a graphical interface to a chat-based poker game. The most serious Mac OS X hack was entered by Apple engineers who wrote a Mac OS X device driver to enable a Mac running Mac OS X Server to use a Windows Theater TV tuner they'd just bought at CompUSA. And for those who want to get used to the NeXT interface early, Jonathan "Wolf" Rentzch wrote Carbonized Menus, which hid the normal Mac OS menu bar and replaced it with NeXT-style floating menus.</P><P>A few Palm OS hacks were also shown, including an impressive one from 3Com/Palm's Steve Lemke and Jesse Donaldson that not only created a remote control that controlled a PowerBook's CD-ROM drive via infrared, but also used a serial connection to display on the Palm's screen a DVD movie playing on a PowerBook. Steve and Jesse awarded the best Palm hack to Andrew Downs, for his P1 Preview, which simulated the Finder on the Palm.</P><P><STRONG>Getting the Hacks</STRONG> -- You can buy a CD containing all the hacks for $20 via the MindVision online store at the URL below (profits go toward next year's conference). The MacHack Web site also lists the hacks and includes the top five for download.</P><P><<A HREF="http://www.mindvision.com/shop/machackcd.asp">http://www.mindvision.com/shop/machackcd.asp</A>><BR><<A HREF="http://www.machack.com/">http://www.machack.com/</A>></P><!-- The MacHack Hack Contest 1999 Adam C. Engst --></div>
  728.         <div id="article_text_bottom_4145" style="display:none">
  729.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4145')">Hide full article</a></p><div class="sponsorbox">
  730. <div class="sponsortext"><A HREF="http://markspace.com/bits?source=tidbits"><IMG SRC="http://db.tidbits.com/images/badges/mark-space.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>SYNC YOUR PHONE with The Missing Sync: Sync your calendar,<br />address book, music, photos and much more between your phone<br />and Mac. Supports ANDROID, BLACKBERRY, PALM PRE and many<br />other phones. <<a href="http://markspace.com/bits?source=tidbits">http://www.markspace.com/bits</a>></div>
  731. </div>
  732. <div class="sponsorbox_bottom"> </div>
  733. </div>
  734.  
  735.         <!-- end article text -->
  736.     
  737.         
  738.  
  739.         
  740.     </div><div class="article"><a name="4228"></a>
  741.     
  742. <!-- comment initialization routine as needed -->
  743. <div class="popup_box_with_captcha" id="hc_4228" style="display: none">
  744.     <div class="tip_box_format">
  745.     <div id="hc_innards_alt_4228" style="display: none">
  746.             <div class="tbf_row">
  747.                 <div class="tbf_wide_80" id="hc_small_response_4228"></div><div class="x_close_row" id="hc_upper_right1_4228"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4228', 'hc', '4228'); return true;">Close</a></div>
  748.  
  749.             </div>
  750.     </div>
  751.     <div id="hc_innards_4228">
  752.         <div class="tip_box_form">        
  753.             <form action="foobar.cgi" method="get" name="check_human_4228">
  754.             <div class="tbf_row">
  755.                 <div class="tbf_wide_80" id="hc_rc_4228">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_4228"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4228', 'hc', '4228'); return true;">Close</a></div>
  756.  
  757.             </div>
  758.             <div class="spacer"></div>
  759.             <div class="tbf_row" id="hc_message_box_4228" style="display:none">
  760.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_4228"></div></div>
  761.             </div>
  762.             <div class="spacer"></div>
  763.             <div class="tbf_row">
  764.                 <div class="tbf_wide"><div id="hc_recaptcha_4228"></div></div>
  765.             </div>
  766.             <div class="spacer"></div>
  767.             <div class="tbf_row">
  768.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '4228', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="5554"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  769.             </div>
  770.             <div class="spacer"></div>
  771.             </form>
  772.         </div><!-- end tip_box_form -->
  773.     </div><!-- end hum box innards -->
  774.     </div><!-- end tip box format -->
  775. </div><!-- end tip_submit box-->
  776.  
  777.  
  778.  
  779.         
  780.         
  781.         <!-- specific article details here -->
  782.         
  783.         
  784.             <p class="series_number">Article 3 of 3 in series</p>
  785.         
  786.     
  787.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  788.         
  789.         <div class="featured_meta"><div class="meta_article">13 Sep 1999 | <a href="/article/5554?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>
  790.  
  791.         <H2><a href="/article/5554">Talking Back to Apple at MacHack</a></H2>
  792.  
  793.         <p class="byline">by <a href="/author/Adam%20C.%20Engst">Adam C. Engst</a> <a href="javascript:void(0)" onClick="document.check_human_4228.submit_type.value='email'; document.check_human_4228.author_id.value='6'; ShowTipBox('hc_4228', 'hc_recaptcha_4228')"><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>
  794.  
  795.         <!-- article text -->
  796.         <div id="article_blurb_4228"><p>Judging from much of the email we at TidBITS receive, many Macintosh owners desperately want to provide feedback to Apple about the Mac OS, Apple's advertising, Macintosh hardware specifications, hardware color choices, and almost anything else related to Apple<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('4228')">Show full article</a></span></p></div>
  797.         <div id="article_text_4228" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4228')">Hide full article</a></p><P>Judging from much of the email we at TidBITS receive, many Macintosh owners desperately want to provide feedback to Apple about the Mac OS, Apple's advertising, Macintosh hardware specifications, hardware color choices, and almost anything else related to Apple. In one respect, Apple should be flattered - the fact that Macintosh users care enough to want to offer their ideas and opinions is impressive. But Apple is a huge company and has no official channel for users to pass on their feedback. The zeitgeist of the industry does filter into the company through indirect means; stories in the press, friends of Apple employees, comments from Apple dealers, the occasional transmission from outer space, and so on.</P><P>Part of the problem is simply Apple's size. Even if there were an email address to which you could send comments (the previous attempt at this, <<A HREF="mailto:leadership@apple.com">leadership@apple.com</A>>, appears defunct), it would be difficult for anyone to distribute comments to the appropriate departments, much less the proper people within those departments. Apple has too many employees and too much turnover and movement for anyone to direct feedback effectively.</P><P>As much as Apple may not have effective ways of soliciting or managing user feedback, the company does listen, at least sometimes, to Macintosh developers. Apple's Worldwide Developers Conference (WWDC) offers one forum for that, but Apple's goal at WWDC is as much to evangelize Apple technologies as to accept feedback on those technologies. But there is another way.</P><P><STRONG>Bash Apple</STRONG> -- A long time ago at the MacHack developers conference, there came to be this event called "Bash Apple." As the oral tradition relates, a bunch of developers were sitting around at MacHack bashing on Apple for some stupidity or another. After a bit, one person in the group, a new Apple employee named Jordan Mattson, said, "Look, I'm a nobody at Apple, but I'll write all this stuff down and when I get back, I'll see if I can find someone appropriate to tell it to. No promises, no guarantees." And he did, though it was unclear if his efforts had any effect back at Apple. That was immaterial, though, because the developers had had a chance to vent at someone from Apple and, feeling much better, they stayed up the rest of the night writing hacks so useless they produced awe and admiration among the other developers at MacHack (for this year's hack contest details, see "The MacHack Hack Contest 1999" in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-488.html">TidBITS-488</A>).</P><P><<A HREF="http://www.machack.com/">http://www.machack.com/</A>><BR><<A HREF="http://db.tidbits.com/article/05470">http://db.tidbits.com/article/05470</A>></P><P>The developers so enjoyed having someone at Apple to vent to that they did the same thing the next year, and the year after that. These sessions became formalized under the rubric of "Bash Apple" and grew to include numerous Apple engineers, many of whom had been independent developers in previous years. Jordan even became immortalized in the MacHack argot in the phrase "It's Jordan's fault," and though of course essentially none of Apple's problems actually were Jordan's fault, he continued to play. The sessions continued to provide a forum for frustrated developers to let off steam, but equally important, they gave Apple folks ammunition to take back and say, "Look, it's not just me saying this - 200 developers are also ticked off about it."</P><P><STRONG>Apple Handshake 1999</STRONG> -- In recent years, Bash Apple (saddled this year with the horrible moniker "Apple Handshake Session") has evolved to the point where a senior Apple person fields questions and criticisms from developers, backed up by various other Apple folks in attendance. This past MacHack in June (see "MacHack: The Ultimate Macintosh Event" in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-487.html">TidBITS-487</A>) was no exception, with Apple's vice president of Mac OS engineering, Steve Glass, fielding most questions with assistance from other Apple employees. For instance, in response to a question regarding whether Apple planned to release any more Appearance themes, Apple evangelist Tim Holmes stated unequivocally, "As I've said numerous times in numerous places, there is no future for themes. None, nada, zip, zero," and sat down, only to bounce to his feet a second later to reiterate the more carefully phrased, and officially blessed version, "Apple Computer has no plans to offer additional themes, either now or in the future, but the company reserves the right to change its mind, blah, blah, blah."</P><P><<A HREF="http://db.tidbits.com/article/05463">http://db.tidbits.com/article/05463</A>></P><P>Every now and then during the session, important bits of information either became public or were emphasized. For example, Steve Glass was adamant about how he was clamping down on shipping independent components of the Mac OS separately from full Mac OS releases. He felt that shipping different versions of Open Transport, for instance, separately from the Mac OS itself made for configuration and testing nightmares; plus it could cause problems for users who were mixing and matching components in combinations that Apple hadn't tested. In addition, in response to another query, Tim Holmes made the important point that although Mac OS 9 will have multiple user support in the sense of both individual and shared preferences, the feature is aimed at home and small office users, not large installations with many users.</P><P>For the most part, though, I got the impression that developers weren't entirely happy with the session, perhaps because even though they were talking with an Apple VP, he wasn't able to be concrete about much. Steve Glass could and did respond to issues surrounding Mac OS 8.x, since that's his team. He was also able to offer standard industry platitudes about concerns that either were outside his field (Mac OS X, hardware) or that undoubtedly are not yet even decided at Apple. Trade-offs, resource allocation, ship time, investigating the issue now... all of these meaningless phrases came forth at one time or another. But what should he have said? The problem with those industry platitudes is that they're often <EM>true</EM> - there are trade-offs between offering individual component releases versus unified system releases; Apple does have to pay attention to how they allocate engineering resources to future projects versus maintaining backward compatibility to System 7.x; and so on. In short, Steve Glass was incapable, through no fault of his own, to offer any sort of official assurances about how, for example, Steve Jobs may have traded his soul and a total lack of commitment for Java 2 for Apple's recovery. Even if Steve Glass knew that Apple had decided to ignore Java 2, he wouldn't break the news at MacHack.</P><P><STRONG>Top Ten Developer Issues</STRONG> -- In the last few years, the organizers of MacHack decided to create a list of the top ten developer issues, rightly believing that it would be easier for the press to write about than a two-hour Q&A session. The list, voted on by the gathered attendees, was an attempt to collect and prioritize the concerns held by the Macintosh development community. Here then is a slightly edited version of this year's list, with links to relevant TidBITS articles where possible.</P><P>1) MacsBug support: The MacsBug debugger is a critical Macintosh development tool. Developers need Apple to dedicate engineering resources to this tool and to new ones like it. If you're interested in what it can do for you, check out Geoff Duncan's three-part series on MacsBug.</P><P><<A HREF="http://db.tidbits.com/series/1057">http://db.tidbits.com/series/1057</A>></P><P>2) Greater stability and easier debugging: Developers need increased reliability and greater ease in debugging software on Mac OS. Apple has done a good job of improving stability since System 7, but more stability is always welcome.</P><P>3) Mac OS X look and feel: Developers want Mac OS X to look like a Macintosh, not like a Unix workstation. We touched on this topic with "Mac OS X or Mac OS NeXT?" in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-483.html">TidBITS-483</A>.</P><P><<A HREF="http://db.tidbits.com/article/05415">http://db.tidbits.com/article/05415</A>></P><P>4) Documentation improvements: Developers need technical documentation to be available sooner, and to be more complete, accurate, and accessible. Although our "Death of Documentation" article focused on user documentation, many of the issues are similar.</P><P><<A HREF="http://db.tidbits.com/article/04865">http://db.tidbits.com/article/04865</A>></P><P>5) Better mouse and keyboard: Developers believe that high-end Macs need a better standard mouse and keyboard with a full set of keys. Smaller is not always better with keyboards. Amazingly, the new Power Macintosh G4 does not include an improved keyboard and mouse.</P><P>6) Machine differentiation for support needs: Developers need Macs to be more clearly marked because support staffers need to identify users' machines easily. I raised this issue at the session and was gratified to see that developers shared my concern. See "Macintosh Model Implosion: What's in a Name?" in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-485.html">TidBITS-485</A>.</P><P><<A HREF="http://db.tidbits.com/article/05436">http://db.tidbits.com/article/05436</A>></P><P>7) Extending the OS: The "patching" mechanism for extending the Mac OS in unplanned ways is important for many reasons, including providing disability access. Developers need a similar mechanism in Mac OS X.</P><P>8) Cleaning up Mac OS: Developers believe that Mac OS would benefit from being further cleaned up. Removing vestigial code from the OS would improve memory footprint and performance, including faster booting.</P><P>9) Java: Developers need a clear direction on Java. A commitment from Apple regarding support for Java and Java 2 would be greatly beneficial.</P><P>10) Release discontinued development tools as open source: Many developers still rely on tools that Apple no longer supports, like MPW. Releasing such tools as open source would allow developers to maintain and improve the tools they find essential.</P><P><STRONG>Tracking the Feedback</STRONG> -- One aspect of this year's Bash Apple session that was missing was a recap of the previous year's Top 10 list. It's instructive to see both how Apple has responded to items on the list and how developers' opinions of what's important changes from year to year. I'll be sure to see how this year's list fares at MacHack 2000, by which time we might have various new Macs, Mac OS X, and inconceivable policy changes from Apple.</P><!-- Talking Back to Apple at MacHack Adam C. Engst --></div>
  798.         <div id="article_text_bottom_4228" style="display:none">
  799.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4228')">Hide full article</a></p><div class="sponsorbox">
  800. <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>
  801. </div>
  802. <div class="sponsorbox_bottom"> </div>
  803. </div>
  804.  
  805.         <!-- end article text -->
  806.     
  807.         
  808.  
  809.         
  810.     </div><!-- end show article -->
  811.     
  812.     
  813.     <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_all_articles('4138,4145,4228')"><span id="showhide_arts_bottom">Show the full text of all articles</span></a>
  814.  
  815.  
  816. <!-- article_plus end -->
  817. <!--
  818. </DIV>
  819. --><!-- end main_column DIV -->
  820.  
  821.  
  822. <!-- google_ad_section_end -->
  823.  
  824. </div><!-- end center AJAX insert -->
  825.  
  826. <!-- TipBITS Search Results Lozenge -->
  827. <div id="tipbits_results_loz" style="display:none">
  828. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  829. <div class="tip_footer">
  830. <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>
  831. </div>
  832. <div class="tip_footer_bottom">
  833.  </div>
  834. </form>
  835. </div><!-- end TipBITS Search Results lozenge -->
  836.  
  837.  
  838.  
  839.  
  840. <!-- begin footer -->
  841. <div id="footer">
  842.  
  843.  
  844. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  845. Web and mailing list host.</p>
  846.  
  847. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  848. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  849.  
  850. <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>
  851.  
  852. </div><!-- end footer -->
  853.  
  854.  
  855. </div> <!-- end centercolumn -->
  856.  
  857. <div class="center_bottom"> </div>
  858.  
  859. </div> <!-- end centercolumn_border -->
  860.  
  861.  
  862. </div> <!-- end content_container -->
  863.  
  864. </div> <!-- end mainbody -->
  865.  
  866.  
  867. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  868. </script>
  869. <script type="text/javascript">
  870. _uacct = "UA-276924-3";
  871. urchinTracker();
  872. </script>
  873. <script type="text/javascript"
  874. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  875. <script type="text/javascript">
  876. var skimlinks_pub_id = '2559X585851';
  877. var skimlinks_domain = 'go.tidbits.com';
  878. skimlinks();
  879. </script>
  880. </body>
  881. </html>
  882.  
  883.