<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>
<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>
<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>
</div>
<div class="spacer"></div>
<div class="tbf_row">
<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>
<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>
</div>
<div class="spacer"></div>
<div class="tbf_row">
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</a></li>
</ul><div class='sponsor_sidebox_bottom'> </div>
</div>
<!-- end sponsor_sidebox -->
</div> <!-- end leftcolumn div -->
<!-- end left column -->
<!-- begin centercolumn_border -->
<div id="centercolumn_border">
<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>
<!-- begin centercolumn -->
<div id="centercolumn">
<!-- begin rightcolumn_container -->
<div id="rightcolumn_container">
<!-- begin rightcolumn -->
<!-- rightcolumn is embedded within centercolumn so featured text wraps around it -->
</div><!-- end tearoffbox_wide_container for watchlist items -->
<!-- begin tearoff box wide -->
<div class="tearoffbox_wide_container">
<div class="tearoffbox_wide_tips">
<div class="tip_display">
<div class="tips_sponsor_logo">
</div>
<h6>iCal Alerts You Can't Miss</h6>
<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>
<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>
<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>
<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>
<!-- end article text -->
<!-- PayBITS -->
<p> </p><div class="sponsorbox">
<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>