TidBITS#893/20-Aug-07
=====================
  Issue link: <http://db.tidbits.com/issue/893>

  The MacHack conference may be history, but its spirit lives on in 
  C4, an event for indie Mac programmers. Adam reports on the 
  proceedings (where he was also a speaker) and discovers some gems 
  such as Lights Off, a native game for the iPhone, and the 
  software-updating framework Sparkle. Elsewhere in this issue, Glenn 
  Fleishman notes improvements to the AirPort admin utility, Jorg 
  Brown looks at the preposterous international data-roaming charges 
  that some iPhone users are being asked to pay, Matt Neuburg adds 
  some audible cues to his keys with Keyclick, and Joe Kissell updates 
  his coverage of the Safe Sleep feature of current Apple laptops.

Articles
    AirPort Base Station Update Tweaks Admin Utilities
    Lights Off for the iPhone
    iPhone Billing and International Issues
    C4 Conference Rethinks MacHack
    Sparkle Improves Application Update Experience
    The Subliminal Snap of Keyclick
    Safe Sleep Revisited
    Hot Topics in TidBITS Talk/20-Aug-07


------------ This issue of TidBITS sponsored in part by: --------------

* READERS LIKE YOU! Support TidBITS with a contribution today! 
  <http://www.tidbits.com/about/support/contributors.html> 
  Special thanks this week to Joel Ness, BestLocal Agent LLC, 
  Masaya Higashijima, and Jim Banks for their generous support!

* FETCH SOFTWORKS: Fetch 5.2 introduces WebView, the easy way 
  to view files in a browser and copy Web addresses from Fetch. 
  Also with FTPS support, droplet shortcuts, and more. 
  Download your free trial version! <http://fetchsoftworks.com/>

* WebCrossing Neighbors Creates Private Social Networks 
  Create a complete social network with your company or group's 
  own look. Scalable, extensible and extremely customizable. 
  Take a guided tour today <http://www.webcrossing.com/tour>

* Bare Bones Software's BBEdit 8.7 -- Latest version offers a 
  major interface overhaul, new prefs, text clippings, improved 
  JavaScript, new Ruby/SQL/YAML/Markdown support, code folding. 
  Over 160 new features in all! <http://www.barebones.com/>.

* MARK/SPACE, INC: The Missing Sync provides the very best in 
  synchronization for Mac users with BlackBerry, Palm OS, or 
  Windows Mobile devices. Integrates with Address Book, iCal, 
  Entourage, iPhoto, and iTunes. <http://www.markspace.com/bits>

* Microsoft's MacBU: Supporting Mac users with Office 2004.  
  Supporting the Mac community through tech support newsgroups, 
  user group appearances, our new team blog, and more! 
  Check out our team blog at <http://blogs.msdn.com/macmojo/>

* VMware Fusion. The most seamless way to run Windows on your Mac. 
  Buy VMware Fusion today and get $20 off the purchase price. 
  Rebate offer valid through December 31, 2007. 
  Visit: <http://www.tidbits.com/about/support/vmware-fusion.html>

* New Parallels Desktop 3.0: Run Windows on your Mac natively! 
  We erased the border between the Windows and Mac worlds. 10% Off 
  Upgrade! <http://www.tidbits.com/about/support/parallels-upgrd.html> 
  $10 Off New! <http://www.tidbits.com/about/support/parallels.html>

---------- Help support TidBITS by supporting our sponsors ------------


AirPort Base Station Update Tweaks Admin Utilities
--------------------------------------------------
  by Glenn Fleishman <glenn@tidbits.com>
  article link: <http://db.tidbits.com/article/9119>

  An update for the AirPort Utility software offers what Apple 
  describes as "general fixes and compatibility updates" for the 
  802.11n-capable AirPort Extreme Base Station. The AirPort Base 
  Station Update 2007-002 for Mac also updates the AirPort Disk 
  Utility and adds the AirPort Base Station Agent. The AirPort Disk 
  Utility manages mounting volumes attached via USB to a new base 
  station; the AirPort Base Station Agent provides monitoring of base 
  stations on the network.

<http://www.apple.com/support/downloads/airportbasestationupdate2007002formac.html>

  Apple is shipping a revised version of its new AirPort Extreme Base 
  Station shortly - some people may have received it already - with 
  the only stated upgrade being a move from "Fast Ethernet" (100 Mbps) 
  to gigabit Ethernet (1000 Mbps). (See "AirPort Base Station Upgraded 
  to Gigabit Ethernet," 2007-08-13.) I expect a firmware upgrade will 
  follow this software upgrade as there are many documented bugs and 
  inconsistencies in the 802.11n AirPort Extreme. I've described them 
  and a number of workarounds in "Take Control of Your 802.11n AirPort 
  Extreme Network." (I'll be updating the book if there are enough 
  changes beyond gigabit Ethernet to warrant it.)

<http://db.tidbits.com/article/9110>
<http://www.takecontrolbooks.com/airport-n.html?14@@!pt=TB893>

  A quick look at the AirPort Utility 5.2.1 that's part of this update 
  shows that Apple added a couple of controls near password entries 
  for administrative access (Base Station Password) and Wi-Fi security 
  (Wireless Password). There are now checkboxes to choose 
  independently whether either password is stored in the Mac OS X 
  keychain. Apple also added a Password Assistant icon to help choose 
  a strong password.

<http://www.tidbits.com/resources/2007-08/airport-password-asst.jpg>

  Beware, though: if you click the key icon just to see what the 
  assistant looks like, the password that the assistant initially 
  recommends is placed in the main password field when you click the 
  assistant's Close button. You can restore the previous password by 
  clicking the Revert button at the bottom of the AirPort Utility.

  The software also expands the Preferences dialog, adding choices 
  about when to check for updates (daily, weekly, or monthly), and to 
  "monitor base stations for problems." That last option relies on a 
  daemon, the AirPort Base Station Agent, which is installed with this 
  update and keeps track of the health of base stations that are 
  either configured by AirPort Utility or reachable on the network. 
  You can check a box to ignore base stations you didn't configure, 
  potentially useful on larger networks.

  AirPort Utility is backwards compatible with all AirPort Extreme and 
  AirPort Express models, but can be obtained only by installing it 
  from the disc that comes with a new 802.11n AirPort Extreme base 
  station.


Lights Off for the iPhone
-------------------------
  by Adam C. Engst <ace@tidbits.com>
  article link: <http://db.tidbits.com/article/9120>

  Apologies for the potentially alarming headline! Lights Off is 
  actually an iPhone game, but unlike PopCap's Web-based Bejeweled 
  (see "PopCap Pops iPhone Productivity," 2007-08-06), Lights Off is 
  the first truly native iPhone game. Created by Lucas Newman and Adam 
  Betts of Delicious Monster for the Iron Coder Live hack contest at 
  the recent C4 conference (it took second place), the free Lights Off 
  provides a deceptively simple set of puzzles to solve. You're faced 
  with a grid of lights, some lit, some not. Tapping a light toggles 
  it, along with the four adjacent lights. Your goal is to switch all 
  the lights off, at which point you move on to the next level - there 
  are 200 levels all told.

<http://deliciousmonster.org/>
<http://db.tidbits.com/article/9093>

  Lucas and Adam developed Lights Off with Apple's UIKit development 
  framework, which is what Apple used to create the iPhone's built-in 
  applications, but they also leveraged the various community efforts 
  to open the iPhone to independent developers. So although Lights Off 
  is an entirely native iPhone application, installing it requires 
  opening access to your iPhone with iActivator, uploading Lights Off 
  to the iPhone with iPHUC, installing an SSH server on the iPhone, 
  and changing the permissions of the Lights Off application (full 
  instructions are available on the Lights Off Web page). Of course, 
  because Lights Off is such a hack, it's likely that installing an 
  update to the iPhone software will render Lights Off inoperative. 
  Installing Lights Off could also violate the iPhone's warranty, but 
  it seems to me that in the worst case, you could simply reset the 
  iPhone to factory defaults and restore data from your computer.

<http://iphone.fiveforty.net/wiki/index.php/Main_Page>
<http://iphone.fiveforty.net/wiki/index.php/IActivator>
<http://iphone.fiveforty.net/wiki/index.php/IPHUC>
<http://www.kdbdallas.com/index.php/2007/08/04/iphone-ssh-install-for-mac-shell-script/>

  I've heard a number of early iPhone users complain about the lack of 
  games, though most seem a bit embarrassed by their desire to play 
  games when Apple didn't see fit to include any. Perhaps Lights Off - 
  and other native iPhone applications that are coming - will be 
  sufficiently popular to encourage Apple to open up the iPhone to 
  developers of both games and more useful programs that can't be 
  developed as Web 2.0 applications. 

  And, with apologies to Arlo Guthrie, if just one iPhone user walks 
  into an Apple Store and says, "Why can't I get anything I want on my 
  iPhone?" they'll think he's really sick and won't help him reinstall 
  his game after updating the iPhone. And if two iPhone users do it, 
  in harmony, they'll think it's a stunt, and they won't help either 
  one of them. And if three people do it, three, can you imagine, 
  three people walking into an Apple Store and asking why they can't 
  install anything they want on an iPhone, and walking out, they may 
  think it's an organization. And can you imagine fifty people a day, 
  I said fifty people a day walking in and asking why they can't 
  install anything they want and walking out, why friends, they may 
  think it's a movement. And that's what it is, the iPhone Application 
  Anti-Massacre Movement. And all you got to do to join is sing it the 
  next time it comes around on the guitar. With feeling.

<http://www.arlo.net/resources/lyrics/alices.shtml>


iPhone Billing and International Issues
---------------------------------------
  by Jorg Brown
  article link: <http://db.tidbits.com/article/9116>

  There are two big controversies brewing in the iPhone world right 
  now, both squarely in AT&T's purview.

  The first is that AT&T defaults to sending you detailed information 
  about your phone use, including a printout, arriving through the 
  mail, of every text message you send or receive, as well as every 
  block of data; they do this even if you have unlimited service. The 
  canonical example is a customer whose 300-page phone bill cost AT&T 
  $10 to send.

<http://youtube.com/watch?v=UdULhkh6yeA>

  This is an idiotic waste of paper (blogger Muhammad Saleem estimated 
  it at nearly 75,000 trees per year), but reportedly customers 
  signing up after 10-Aug-07 will instead receive summary bills that 
  basically just say how much you owe. You can also ask AT&T to switch 
  your account to summary billing or to paperless billing, though an 
  email message sent to Muhammad purportedly from an AT&T call center 
  employee claimed that paperless billing would cost $1.99 per month.

<http://muhammadsaleem.com/2007/08/15/att-goes-on-a-rampage-will-destroy-74535-trees-to-make-iphone-service-bills/>
<http://blog.wired.com/gadgets/2007/08/att-saves-the-t.html>

  But that's not a big deal - AT&T will work it out eventually.

  The bigger problem is that, while iPhone data usage is flat-rate in 
  the United States, in every other country it's charged by the byte, 
  and the charges are quite high. Same thing with text messages.

  On top of that, many people have their iPhones set to check email 
  automatically every few minutes, something that's not a problem when 
  in the United States, but which generates huge charges when you're 
  in another country. 

  Consider, for example, that in Canada the charge for outgoing text 
  messages is 50 cents per message, while the data rate is about $1 
  for every 50K, or $20 per megabyte. Now go to Home > Settings > 
  Usage on the iPhone and multiply your data use, in megabytes, by 
  $20, and contemplate how high your phone bill might be.

  There are a few ways you can avoid the high bills that jet-setting 
  iPhone users have been seeing:

* Turn off Mail in Home > Settings, which should reduce the use of 
  EDGE data to nearly zero (just a few packets when you move between 
  EDGE and Wi-Fi). Then, before you check on stock quotes, use Google 
  Maps, watch a video at YouTube, or check the weather, make sure you 
  have a good Wi-Fi connection.

* Remove the SIM card while you're away (see Apple's instructions). 
  You won't be able to make calls or use EDGE, but you will be able to 
  use Wi-Fi. You can even put the iPhone SIM that you just removed 
  into some old AT&T phone, and use that for communicating while you 
  use your iPhone for everything else.

<http://docs.info.apple.com/article.html?artnum=305746>

* Put the iPhone into Airplane Mode. That way, you can still listen to 
  music and play video, but you can't make calls or do anything 
  requiring Internet access.

* Call AT&T and sign up for the International Data Global Plan for 
  iPhone, which, for $24.99 per month, provides 20 MB of data usage 
  per month in 29 countries, with overage at half a cent per kilobyte 
  ($1 for 200K) and other countries at the usual $.0195 per kilobyte 
  (about $1 for 50K). A friend was told by AT&T that the International 
  Data Global Plan _replaces_ the domestic data plan, but AT&T's Web 
  site seems to contradict that, so be sure to confirm with AT&T. You 
  do have to sign up for 12 months at a time.

<http://www.wireless.att.com/learn/international/roaming/affordable-world-packages.jsp#5b>
<http://www.wireless.att.com/learn/international/dataconnect-global.jsp>


C4 Conference Rethinks MacHack
------------------------------
  by Adam C. Engst <ace@tidbits.com>
  article link: <http://db.tidbits.com/article/9121>

  I recently returned from a weekend in Chicago, attending the second 
  C4 conference for independent developers. Created by Jonathan "Wolf" 
  Rentzsch, a Chicago-area developer, occasional TidBITS contributor, 
  and all-around good guy, C4 in many ways picks up where the 
  venerable MacHack programmer's conference left off several years ago 
  while rethinking and refining the things about MacHack that caused 
  it to fade away.

<http://c4.rentzsch.com/1/>
<http://www.rentzsch.com/>
<http://db.tidbits.com/author/Jonathan+Rentzsch>

  Holding C4 in Chicago, rather than MacHack's traditional location of 
  Dearborn, Michigan, made it easy for many people to attend, given 
  Chicago's central location and massive airports. Plus, Chicago is a 
  bit more of a destination than Dearborn (though I'll never speak ill 
  of Dearborn again, after having been given a personal tour by the 
  head of the Chamber of Commerce; see "Adieu ADHOC," 2005-08-01).

<http://db.tidbits.com/article/8197>

  Wolf organized a number of excellent sessions in a single track, 
  starting off with Wil Shipley's (Delicious Monster) tremendously 
  amusing keynote entitled "On the Creation and Maintenance of Hype." 
  A number of other sessions focused on the business end of things, 
  including Daniel Jalkut's (Red Sweater Software) talk about 
  acquiring applications, my updated talk about "Hacking the Press," 
  Allen Odgaard's discussion of the development of TextMate, and Cabel 
  Sasser's wonderful recounting of the story behind the founding of 
  Panic and the creation of their Coda Web development software (see 
  "Coda Plays Web Developers a New Tune," 2007-04-30).

<http://www.delicious-monster.com/>
<http://www.red-sweater.com/>
<http://db.tidbits.com/series/1172>
<http://macromates.com/>
<http://www.panic.com/>
<http://www.panic.com/coda/>
<http://db.tidbits.com/article/8969>

  On the more technical end, Shawn Morel of VMware gave a good 
  explanation of virtualization that was highly technical but 
  understandable to the non-programmer. Several other talks were 
  totally over my head, such as Bob Ippolito's introduction to Erlang, 
  a new language and environment that provides hot code reloading, 
  fault-tolerant runtimes, concurrency-oriented programming, and 
  function pattern matching. I haven't the foggiest idea what that 
  means, but some of the capabilities Bob talked about certainly 
  sounded impressive. Tim Burks also talked about bridging between 
  Ruby and Objective-C, though I have to admit to glazing over 
  somewhat in the aftermath of my own talk and my lack of programming 
  knowledge. For a better description of Tim's talk and other thoughts 
  on the C4 conference, see Mike Zornek's coverage.

<http://www.vmware.com/products/fusion/>
<http://en.wikipedia.org/wiki/Erlang_%28programming_language%29>
<http://www.rubycocoa.com/>
<http://blog.clickablebliss.com/2007/08/13/c41-retrospective/>

  The most valuable part of conferences often comes outside the formal 
  sessions, and C4 was no exception. There wasn't a lobby that 
  attendees could take over as happened with MacHack, but Wolf 
  cleverly set things up so there were a number of group meals and 
  receptions for ad hoc networking. I enjoyed being able to catch up 
  with numerous friends who I see only at industry trade shows, and I 
  met lots of developers who hadn't been part of the MacHack 
  community. Others commented on this as well, and if anything, the 
  next C4 (assuming there will be one, since Wolf hasn't said anything 
  either way) could use some time between sessions for people to 
  gather, discuss the talk they just heard, and generally network.

  One thing I hadn't anticipated was the constant use of Twitter, 
  buoyed by the presence of Craig Hockenberry of Iconfactory, who 
  wrote the Twitterrific client that provides a nice Macintosh 
  interface to Twitter, along with Growl notifications. I haven't been 
  a fan of Twitter, since most of what I've seen has been truly inane, 
  but C4 used Twitter to create a group chat room with persistent 
  messages. In other words, anyone could send a Twitter message that 
  would be seen by everyone else who was following the C4 user; since 
  messages are kept, that made it possible to follow what was said not 
  just while you were connected, but the entire time. Such a use isn't 
  entirely innovative; there are plenty of group chat systems, but the 
  Twitter system was used heavily, whereas a parallel IRC chat room 
  received much less attention. In a discussion toward the end of the 
  conference, several Twitter fans explained to me that the trick with 
  Twitter was to follow only those people who had something 
  interesting to say (as opposed to updates on their meal choices or 
  transportation woes), to limit it largely to non-working hours, and 
  to be ruthless about ignoring missed messages (called "tweets"). 
  Heck, I'll give it a try; for anyone who's using Twitter, feel free 
  to follow me, or, if you want instant notification when we post new 
  TidBITS articles, follow TidBITS.

<http://twitter.com/>
<http://iconfactory.com/software/twitterrific>
<http://growl.info/>
<http://twitter.com/adamengst>
<http://twitter.com/TidBITS>

  C4 closed with Iron Coder Live, a hack contest along the lines of 
  the MacHax Best Hack Contest from MacHack. Most of the 11 hacks 
  involved the iPhone, that having been the proposed theme, though the 
  third place hack, independent consultant Dave Dribin's The Bouncer 
  was instead an Input Manager hack that caused a selected 
  application's Dock icon to bounce. While that wasn't too impressive 
  on its own, Dave then showed how he could make multiple Dock icons 
  bounce in various synchronized ways, and then made them bounce to 
  music, all to loud applause. Second place went to Lucas Newman and 
  Adam Betts of Delicious Monster for Lights Off, the first native 
  iPhone game (see "Lights Off for the iPhone," 2007-08-14) which they 
  released to the public. Impressive as Lights Off was, first place - 
  and Wolf's Golden Dog Tags prize - went to Ken and Glen Aspeslagh of 
  Ecamm Network for Squidge, a hack that enabled two-way 
  video-conferencing on the iPhone, using its built-in camera. 
  Impressive stuff! The main problem with their demo is that Glen and 
  Ken are identical twins, so it wasn't easy to see who was who on the 
  tiny iPhone screens projected on the wall. 

<http://www.dribin.org/dave/blog/archives/2007/08/14/the_bouncer/>
<http://deliciousmonster.org/>
<http://db.tidbits.com/article/9120>
<http://www.ecamm.com/>
<http://macdaddyworld.com/?p=38>

  Overall, and from the comments I heard from other attendees, C4 was 
  a smashing success. The first one last year attracted 98 attendees 
  (Wolf had initially capped attendance at 75, but had to expand due 
  to interest), and I gather this year's attendance grew to about 140. 
  That's a good size, and if there are future incarnations, we'll have 
  to see if Wolf and his crew - who did an excellent job with the 
  logistics of scheduling, food, audio, and room setup - can handle 
  more people as the word continues to spread.


Sparkle Improves Application Update Experience
----------------------------------------------
  by Adam C. Engst <ace@tidbits.com>
  article link: <http://db.tidbits.com/article/9122>

  At the C4 conference, I ran into David Teare, who publishes the 
  1Passwd utility, and I complimented him on how smoothly 1Passwd 
  updates itself. Although it does have to interact with the user to 
  quit open browsers (since 1Passwd is a browser plug-in), the rest of 
  the process is nearly seamless. When you launch the 1Passwd 
  application and an update is available, it displays a window showing 
  release notes for the latest version, nicely color-coding the 
  headings for new features, changed features, and fixed bugs. You're 
  given the choice of being reminded of the update again later, if 
  you're too busy to think about it, skipping the update entirely, or 
  installing it. If you choose to install the update, 1Passwd 
  automatically downloads the new version, copies it over the old one, 
  and relaunches itself to load the new code. It's ever so easy.

<http://www.tidbits.com/resources/2007-08/1Passwd-Sparkle-window.jpg>

  When I expressed my admiration for his update process, David looked 
  a little embarrassed and said, "Oh, that's the open source Sparkle. 
  We just added it to 1Passwd." Not being a developer, I'd simply 
  never run across Sparkle before, so I went spelunking for it on the 
  Web. It turns out that Sparkle is used in a large number of 
  applications, including SubEthaEdit, iStumbler, MarsEdit, and nearly 
  200 other Macintosh programs. 

<http://sparkle.andymatuschak.org/>

  From what developers at C4 told me, and from what I see on the 
  Sparkle Web site, it's a well-thought-out implementation of 
  self-updating. Most important, the user doesn't have to do anything 
  at all, although it's more common (and generally more respectful) to 
  give the user the option of updating at a later time. Sparkle 
  displays release notes in a detailed update status window via 
  WebKit, supports DSA signatures for secure updates, and can extract 
  updates from a number of different archive formats. Also key is the 
  fact that Sparkle integrates into applications seamlessly and can be 
  added to an application without any code whatsoever (it's all done 
  via Interface Builder and plists). Although Sparkle itself works 
  only in Cocoa applications, a separate version has been created for 
  use in Carbon applications.

  I of course realize that most people reading TidBITS are not 
  developers with applications that need self-updating capabilities, 
  but I'll bet that almost all of you have had to deal with the usual 
  upgrade rigamarole: learn about an update (perhaps from the 
  application, perhaps elsewhere), go to its Web site, find the right 
  page, download and expand the file, copy the new version of the 
  application over the old one (quitting first, if the old application 
  was active), launching the new version, and then cleaning up all the 
  downloaded files. 

  It's not rocket science, but it is tedious and time-consuming. The 
  only good part about it is that you remain in control the entire 
  time and can decide when to install the update, whether to keep the 
  old version of the application around, and if it's worth keeping the 
  downloaded archive as well. Realistically, the main downside of 
  self-updating, whether done through Sparkle or any home-brewed 
  mechanism, is that you would have a hard time reverting to the 
  previous version if the update suffered from some unexpected 
  problem. 

  So, if you'd like the applications you use on a regular basis to 
  update themselves with a minimum of fuss or interaction from you, 
  much as happens with Mac OS X and Apple's applications via Software 
  Update, tell the developers to check out Sparkle. It's free, it's 
  easy, and it's a boon to users everywhere.


The Subliminal Snap of Keyclick
-------------------------------
  by Matt Neuburg <matt@tidbits.com>
  article link: <http://db.tidbits.com/article/9102>

  Long before I owned a personal computer, I had an IBM Selectric 
  typewriter, and all was right with the world. What I loved wasn't 
  just its changeable fonts (though these were essential to my work, 
  letting me type in both Ancient Greek and English); something about 
  the feel of the keyboard, shared also with IBM's card-punch machines 
  of a slightly earlier era, was uniquely satisfying, clear, and 
  positive. With it, I could type very fast and accurately. In a way, 
  I've sought ever since to recover that same keyboard feel.

<http://en.wikipedia.org/wiki/Selectric>
<http://www.columbia.edu/acis/history/029.html>

  Here at TidBITS, we're all heavy keyboard users, and we've run 
  occasional stories about keyboards we found particularly satisfying. 
  In "The Majestic Alps and the King of Keyboards," 2004-03-29, Adam 
  waxes nostalgic about the Apple Extended Keyboard and enthusiastic 
  about its reincarnation in the Matias Tactile Pro. But when you're 
  on the road with your portable (and "the road" could be merely one 
  end of your living room), and can't attach an external keyboard, you 
  must "dance with the one that brought you." I'm not particularly 
  negative about my new MacBook's keyboard (discussed, when the first 
  model appeared, in "MacBook Fills Out Laptop Line," 2006-05-22), but 
  I'm not all that positive about it either. That's why I'm so 
  enthusiastic about Keyclick, by Peter Sichel, a developer best known 
  for his networking utilities, but who is also just an all-around 
  nice fellow, always willing to share his expertise with total 
  strangers who approach him at trade shows (guess how I know that?).

<http://db.tidbits.com/article/7607>
<http://db.tidbits.com/article/8534>
<http://www.sustworks.com/site/prod_keyclick_overview.html>
<http://www.sustworks.com/site/prod.html>

  Keyclick is a System Preference pane. It doesn't affect your 
  physical keyboard at all; it just makes noise when you type. So how 
  can it be helpful, as claimed on the product's Web site, "if your 
  keyboard seems mushy, or you've ever longed for the crisp feel of an 
  older keyboard"? Why does it make me a better typist on my MacBook? 
  It's because the noise it makes, though little more than a faintly 
  detectable pop each time I press a key, tells me almost subliminally 
  that I _have_ pressed a key. Even more, Keyclick tells me (by its 
  silence) when I've _failed_ to press a key, or when I've held down a 
  key long enough to produce multiple, repeated characters. Thus, as 
  if I were a rat in a maze being rewarded for my successes, my brain 
  and my fingers are guided to press just the right amount to produce 
  that satisfying pop. And so, in short order, I run the maze better 
  and better.

  Actually, Keyclick helps me even more with two further bits of 
  functionality. First, it makes a noise when I click the trackpad 
  button, and when I release it. That's very important, because the 
  MacBook trackpad button is extremely firm, so I often think I've 
  clicked it when I haven't. Before Keyclick, in such a situation I 
  was left slowly noticing that nothing on the screen had changed and 
  wondering why; now I get instant feedback. Second, Keyclick makes a 
  noise when I use the scroll wheel. On the MacBook, that means 
  stroking the trackpad with two fingers; thus, it's important to 
  distinguish this from a single finger, which moves the cursor. 
  Again, sometimes this fails, and I used to wonder why: was the 
  cursor not over the window I thought it was, or was my gesture not 
  understood as scrolling? Thanks to Keyclick, I now know much better, 
  and much sooner, what the computer thinks I did. I make fewer 
  miscommunications with my machine, and when I do make one, I know 
  immediately and can react quickly.

  Only experimentation can tell you how to set Keyclick's various 
  options in order to make it most useful. You can turn the keystroke 
  noise on or off, and adjust its volume and pitch; you can turn the 
  scroll wheel noise on or off, and adjust _its_ volume and pitch; and 
  you can turn the mouse click noise on or off, and adjust its volume. 
  (You can also elect to have a different pitch produced when a 
  keystroke includes a modifier key such as Command or Shift, and you 
  can elect to silence Keyclick when certain applications are 
  frontmost.) The matter is purely one of psychology. Indeed, on my 
  iMac G5, where I have a clicky keyboard, trackball, and scroll 
  wheel, Keyclick's noises feel like an annoying distraction, and I 
  don't use it! Yet on my MacBook the very same noises seem both 
  essential and all but unnoticeable. So download it and give it a 
  try; that's the only way you'll discover whether Keyclick is that 
  little extra that you needed all along to increase your happiness 
  and productivity.

  You can try Keyclick free for 21 days. It's a 312K download, and 
  requires Mac OS X 10.4 or later. (Incidentally, Keyclick performs 
  its magic through a little-known technology, new in Tiger, called 
  Quartz Event Taps; these are essentially hooks that let the 
  programmer receive and modify user input before it reaches any 
  application's event loop. A neat tool for experimenting with event 
  taps is PreFab Software's freeware Event Taps Testbench.) You can 
  register Keyclick for a mere $5, yet another example of Peter 
  Sichel's generosity. Plus, Peter is very responsive to his users' 
  feature requests and suggestions for Keyclick. This utility is a 
  pleasure to use and the developer is delightful to work with; what 
  could be better?

<http://www.sustworks.com/site/downloads.html>
<http://developer.apple.com/documentation/Carbon/Reference/QuartzEventServicesRef/Reference/reference.html>
<http://prefabsoftware.com/eventtapstestbench/>


Safe Sleep Revisited
--------------------
  by Joe Kissell <joe@tidbits.com>
  article link: <http://db.tidbits.com/article/9115>

  My recent article "Stewing Over Safe Sleep" (2007-07-30) seems to 
  have touched a nerve. It provoked lots of discussion on TidBITS 
  Talk, not to mention numerous email messages, prompting me to write 
  a follow-up post on my personal blog. Now it seems that even the 
  follow-up needs a follow-up, as new information has emerged and 
  various helpful hints have been offered. Here, then, is the rest of 
  the story (or as much of it as I know at the moment).

<http://db.tidbits.com/article/9090>
<http://alt.cc/jk/118>


**A Quick Review** -- In Apple's current implementation of Safe Sleep, 
  simply putting your laptop into (ordinary) sleep mode triggers it to 
  save a copy of your RAM onto disk - taking up as much as 4 GB of 
  disk space and delaying the onset of sleep by as long as 49 seconds 
  (depending on your laptop's configuration), during which, Apple's 
  documentation cautions, you must not move your computer. The RAM is 
  cached so that if, later on, your battery drains completely, you can 
  return to your previous state quickly (a bit slower than waking up 
  from ordinary sleep, but much faster than restarting), without 
  having lost any unsaved work. This default setting can be modified 
  only by mucking around in Terminal or with third-party hacks. If you 
  don't like waiting almost a minute before moving your computer every 
  time you put it to sleep (and I certainly don't), you must go to 
  considerable effort to change that behavior.


**When Safe Sleep Is Good** -- In my earlier article, I complained 
  that cases where Safe Sleep would actually be valuable are rare, at 
  least for me, making it all the more irritating that saving RAM to 
  disk is the default. However, several people pointed out usage 
  scenarios in which someone might be delighted to have a copy of 
  their RAM cached to disk, even if it meant taking a minute extra for 
  their laptop to sleep. Although I may not encounter these situations 
  myself, I grant that they make Safe Sleep more useful. A 
  trans-Pacific flight during which you might burn through several 
  batteries, for example, is a good time to have Safe Sleep available. 
  The same is true if you know your laptop's battery is easily jostled 
  out of place (losing electrical contact and thus depriving your 
  computer of power) during travel to or from work.

  Another good example: swapping batteries. If I put my Titanium 
  PowerBook G4 to sleep, I can swap batteries (even without an AC 
  adapter attached) and not lose the contents of my RAM. However, some 
  Mac laptops (including the new MacBook Pros) lack any sort of 
  short-term power supply that can enable a live swap like that. With 
  these models, if you can't connect an AC adapter or put them into 
  Safe Sleep, your only other alternative is to shut down completely 
  before changing batteries and restart afterward - quite a hassle, 
  not to mention a step backward in usability. (One could even imagine 
  that the Safe Sleep feature was someone's idea for saving a few 
  cents on hardware components - why have extra parts to preserve the 
  RAM when we can accomplish the same thing in software? - but I sure 
  hope that wasn't the case.)

  In addition, a number of readers mentioned that if your battery 
  drains completely without a RAM cache being created, you'll lose 
  more than unsaved documents. Window and palette positions, the 
  contents of the Clipboard, open tabs in your Web browser, and 
  various other things might disappear too. Even the time required to 
  restart and open a bunch of applications again can be a drag, and 
  recovering from Safe Sleep is much faster, even if you've previously 
  lost some time waiting for the RAM to be saved to disk.

  So on the one hand, there are times when a typical user might 
  greatly benefit from Safe Sleep; on the other hand, during periods 
  when you know you won't need it, it's still preferable to be able to 
  put your computer to sleep instantly (and save a few gigabytes of 
  space on your hard disk). And although you could enter commands in 
  Terminal whenever you wanted to switch modes, that's not very 
  convenient. Greg Nicholson emailed me with a solution he uses, which 
  I thought was quite clever. He has cron run a shell script every 10 
  minutes. But unlike the simple script I provided in my earlier 
  article, Greg's has some smarts: it does different things depending 
  on your battery level. If your battery is running low, it turns 
  hibernatemode on, so that when your computer sleeps, it will save 
  the RAM cache. But when your battery level is high enough again, it 
  turns hibernatemode off and deletes your RAM cache. That way, you 
  can have the best of both worlds, more or less.

  My version of Greg's script follows; you can change the values 30 
  and 50 (as in, activate hibernatemode when battery level is less 
  than 30 percent and deactivate it when battery level is over 50 
  percent) to your preferences.

    #!/bin/sh
    MODE=`/usr/bin/pmset -g | awk '/hibernatemode/ { print $2 }'`
    LEFT=`/usr/bin/pmset -g batt | grep Internal | awk '{ print $2 }' | awk -F % '{ print $1 }'`

    if [ $LEFT -lt 30 ] && [ $MODE != 3 ] ; then
      {
         /usr/bin/logger -t "hibernatemode" "Battery level less than 30%; setting hibernatemode to 3"
         /usr/bin/pmset -a hibernatemode 3
      }
    elif  [ $LEFT -gt 50 ] && [ $MODE != 0 ]; then
      {
         /usr/bin/logger -t "hibernatemode" "Battery level greater than 50%; setting hibernatemode to 0"
         /usr/bin/pmset -a hibernatemode 0
         rm /var/vm/sleepimage
      }
    fi

  As with any shell script, you must save this as a plain text file 
  and make it executable. One way to do that is to type:

    sudo chmod ug+x your-script-name

  In addition, if you plan to use cron to schedule this script to run 
  automatically, bear in mind that it requires root privileges. My own 
  solution is to put the file in my system crontab (in which all 
  scripts run with root privileges), but a safer tactic (and the one 
  Greg recommends) would be to add the following to your 
  /private/etc/sudoers file:

    ALL ALL=(ALL) NOPASSWD: /usr/bin/pmset -a hibernatemode 3
    ALL ALL=(ALL) NOPASSWD: /usr/bin/pmset -a hibernatemode 0
    ALL ALL=(ALL) NOPASSWD: /bin/rm /var/vm/sleepimage

  Safer still would be to replace the first ALL in each line with your 
  short user name.


**A Question of Encryption** -- In my earlier article, I mentioned 
  that when changing the hibernatemode setting manually, you should 
  use a value of 0 to turn it off; 3 to return it to its default state 
  (on only when needed, but always save the RAM state when sleeping); 
  or 1 to make your computer use Safe Sleep, rather than ordinary 
  sleep, all the time. Then I went on to say, "And if you have Use 
  Secure Virtual Memory selected in the Security pane of System 
  Preferences, replace the 1 or 3 with 5 or 7, respectively." That 
  last sentence, it turns out, was not merely mistaken but a very bad 
  recommendation indeed. Please forget that I suggested it. Don't ever 
  use 5 or 7.

  Ordinarily, when Mac OS X uses virtual memory (VM) - temporarily 
  storing a portion of your RAM on disk - it writes out the data 
  unencrypted. The problem with this is that if your RAM happened to 
  contain something confidential, such as a password, then even after 
  you shut down your computer someone could extract that data from the 
  VM swap file on your disk. Security experts regard this as a huge 
  risk, and recommend that virtual memory always be encrypted when 
  written to disk. In Mac OS X Tiger, you can do this by opening the 
  Security pane of System Preferences and checking Use Secure Virtual 
  Memory. (In fact, everyone go do this right now. I'll wait.)

  How does Secure VM relate to hibernatemode? Well, with hibernatemode 
  settings of 1 or 3, your RAM is saved to disk according to the 
  Secure VM setting you're using. So, if Secure VM is off, a setting 
  of 1 or 3 writes your RAM cache unencrypted, whereas if Secure VM is 
  on, a setting of 1 or 3 encrypts your RAM cache. That is as it 
  should be.

  Once upon a time, however, when hibernatemode was new, it didn't 
  work correctly with Secure VM. So the 5 and 7 settings were added to 
  *prevent* your RAM cache from being encrypted even if Secure VM was 
  turned on! That problem, however, was short-lived, and now that 
  modes 1 and 3 work as they ought to, you should avoid using 5 or 7, 
  which would effectively eliminate the value of Secure VM in the 
  first place.

  Suppose, however, that you not unreasonably took my earlier advice 
  and thereby unwittingly wrote an unencrypted RAM cache to your disk 
  - or that you never had Secure VM turned on in the first place and 
  have an unencrypted RAM cache for that reason. Merely erasing that 
  sleepimage file won't overwrite its contents; any moderately skilled 
  hacker could still read its contents quite easily. So instead of 
  issuing this command:

    sudo rm /var/vm/sleepimage

  use this one:

    sudo srm -s /var/vm/sleepimage

  The srm command is the secure version of rm ("remove"). By default, 
  srm overwrites files 35 times (just like the most secure version of 
  the Erase Free Space feature in Disk Utility). And that's definitely 
  secure, but it also takes forever, and probably has no practical 
  benefits for most of us. The -s flag is for simple security - a 
  one-pass overwrite - which should be adequate for most ordinary 
  citizens. If you prefer to be more cautious, you can replace -s with 
  -m ("medium") for a 7-pass overwrite.

  Note, however, that if you're running a script (either Greg's or 
  mine) to turn off hibernatemode when needed, you need not use the 
  srm command in that script. The reason is that when hibernatemode 
  turns on, it creates a blank sleepimage file. Although that file is 
  as large as the amount of RAM you have installed, it contains no 
  data until your computer enters sleep mode. So as long as your 
  script catches it and deletes it before your computer sleeps, you 
  need not spend the extra time to overwrite a blank file securely.


Hot Topics in TidBITS Talk/20-Aug-07
------------------------------------
  by TidBITS Staff <editors@tidbits.com>
  article link: <http://db.tidbits.com/article/9127>

**Plastic bags vs Canvas Bags** -- An off-topic comment in another 
  thread starts a discussion of how plastic bags are harmful to the 
  environment. (20 messages)

<http://emperor.tidbits.com/TidBITS/Talk/1423/>


**56Kbps modem options for MacBook Pros** -- Now that Apple no longer 
  builds modems into its machines, does the Apple Modem perform well 
  enough, or are there other options? (7 messages)

<http://emperor.tidbits.com/TidBITS/Talk/1425/>


**Music composition for the music illiterate** -- A musical goober 
  (and friend of TidBITS) wants to create a ringtone; can GarageBand 
  do what he wants? (4 messages) 

<http://emperor.tidbits.com/TidBITS/Talk/1426/>


**DVD to iMovie?** Readers suggest options for capturing footage from 
  Hi8 tapes to DVDs and then to iMovie. (7 messages)

<http://emperor.tidbits.com/TidBITS/Talk/1427/>


**Replacing Microsoft Office with iWork '08** -- Apple's new 
  production suite looks to be a more serious contender to Microsoft 
  Office, but does it stack up as a replacement? The lack of Visual 
  Basic in the next version of Office could be a deciding factor. (34 
  messages)

<http://emperor.tidbits.com/TidBITS/Talk/1428/>


**iPhoto '08 and shared galleries** -- In anticipation of buying iLife 
  '08, a reader asks about the Web gallery features in the new iPhoto 
  '08. (3 messages)

<http://emperor.tidbits.com/TidBITS/Talk/1429/>


**Safe Sleep Revisited** -- Joe Kissell's ongoing look at the Safe 
  Sleep feature of Mac laptops brings up a minor scripting correction 
  and clarification on when the computer is actually going to sleep. 
  (3 messages)

<http://emperor.tidbits.com/TidBITS/Talk/1430/>


**iPhone Billing and International Issues** -- A reader gives his 
  first-hand account of being charged for international data usage: 
  $1,700! (6 messages)

<http://emperor.tidbits.com/TidBITS/Talk/1432/>


$$

This is TidBITS, a free weekly technology newsletter providing timely
news, insightful analysis, and in-depth reviews to the Macintosh and
Internet communities. Feel free to forward to friends; better still,
please ask them to subscribe!

Non-profit, non-commercial publications and Web sites may reprint or
link to articles if full credit is given. Others please contact us. We
do not guarantee accuracy of articles. Caveat lector. Publication,
product, and company names may be registered trademarks of their
companies. TidBITS ISSN 1090-7017.

Copyright 2007 TidBITS: Reuse governed by Creative Commons license.

Contact us at:	  <editors@tidbits.com>
TidBITS Web site: <http://www.tidbits.com/>
License terms:    <http://www.tidbits.com/terms/>
Full text search: <http://www.tidbits.com/search/>
Subscriptions:	  <http://www.tidbits.com/about/list.html>
Account help:	  <http://www.tidbits.com/about/account-help.html>





