Make Gmail Notifier look nice in Leopard

Google Notifier BeforeGoogle Notifier is a great piece of software for Gmail users who prefer its web interface over desktop apps. It provides a simple notification in the menubar for unread messages and serves as a helper application for mailto: prompts, pointing them to a compose-message view in Gmail instead of opening another application. Its menubar icons, however, don’t mesh well with the Leopard-style menubar.

Notify is a much more robust menubar app for Gmail. In addition to notifications, it provides full compose, read, and manage functionality right in the menubar. Its icons are also perfectly aligned with the Leopard menubar aesthetic. For those of you who want the simplicity of the Google Notifier app but the good looks of the Notify app, you can copy the icon resources from the latter into the former. Note: Big Cats in Space offers these instructions without the approval of either software company and will respectfully remove them at either’s request.

To start, right-click on Notify and choose “Show Package Contents.” Copy the images at Contents/Resources/HaveMail.png and Contents/Resources/NoMail.png to another folder. Make a duplicate copy of Google Notifier, right-click on the copy’s icon and choose “Show Package Contents.” Navigate to Contents/Resources, rename the images you copied to “unread.png” and “nounread.png” respectively, and drag them into the Resources window (click “Replace” on the dialog that pops up).

Google Notifier AfterThat takes care of the two most popular images, but you’ll also want to modify “highlight.png” and “error.png” in the Leopard style. For the former, open “nounread.png” in your image editor of choice and invert it. For the latter, I shifted the colors on “unread.png” to a yellow tone instead of blue. You may also need to move all four images a pixel or two up in their canvas to create an even alignment. Your taste may vary. You can download my four final images here and drop them directly into Google Notifier’s Resources if you like.

Spring Cleaning all the time

It’s theoretically Mac-simple to uninstall an application — just drag its icon or folder to the Trash. However, many applications will leave preference files and other traces behind. There are popular applications like AppZapper that are designed to remove these files with the application on uninstall, but if you want to manually clean up your Mac, you’ll need to look in a few places.

Start with ~/Library/Preferences and scan through the files that don’t begin with com.apple. If you don’t recognize the company name or the product, it’s likely something that was installed for a trial period and long since removed. Do a similar run-through on ~/Library/Application Support, looking for folders from companies whose application(s) you no longer use. It’s also worthwhile to scan these same folders in the root Library directory on your hard disk, in case applications left preferences or support files to be used globally across all users of your machine.

You probably know about clearing cookies and cache within your browser, analogous to cleaning up after websites you no longer visit. To go the extra mile, you can also manually remove “flash cookies,” or Local Shared Objects left behind by Adobe Flash. Security concerns aside, it’s probably a good practice to do this regularly as well. Just delete all the files and directories in ~/Library/Preferences/Macromedia/Flash Player/#SharedObjects and ~/Library/Preferences/Macromedia/Flash Player/macromedia.com/support/flashplayer/sys.

Bare Bones HTML Editor for Free!

Gotcha! I’m not talking about BBEdit, nor any of the other well-received code editors currently available for the Mac. I’m talking about TextEdit, which comes gratis with every installation of Mac OS X.* It’s extremely lightweight, loads in one Dock bounce for me, and can accomplish your basic HTML and CSS needs without you needing to install anything extra.

However, TextEdit is initially configured to handle rich text documents, more on par with a lightweight word processor. It’ll red-underline your tags and attempt to apply formatting to your document. You can put TextEdit into a code-only mode that works great for web programming, and it’s pretty easy.

  1. Go to “Preferences”
  2. Click the radio button next to “Plain text”
  3. Uncheck the all of the boxes under “Options” – you won’t need them
  4. In the “Open and Save” tab, check the box next to “Ignore rich text commands in HTML files”

If you so choose, you may also customize the default font for Plain text on the “New Document” page. I have mine set to 14px Monaco. Happy coding!

* so does the Terminal, but that’s for another day.

Opening Pandora’s jar

You may already be familiar with the excellent web-based “radio” service, Pandora.  If you’re not, you should definitely take a little time and explore it.  As great as Pandora is, though, using it as a primary music source can be difficult, since the default way to use it is via a web browser.  If you use Safari, this can spell trouble if you want to listen for more than a few songs at a time, since the Pandora flash app balloons Safari’s RAM usage (it does in Firefox too, but Firefox is generally less RAM-leaky, so it performs a bit better).  There’s good news though: as a Mac user you can streamline your Pandora listening experience.

Pandora just recently released a beta of a standalone desktop client for both Mac and Windows, but I have to admit that it does very little for me.  It creates a pretty large window that is almost identical to the Pandora homepage.  This is the same sort of functionality that you could create yourself with an app like Fluid, which creates standalone, site-specific browsers using WebKit.

PandoraJam iconThe good news is that there’s a slicker solution.  I’ve been using Bitcartel’s PandoraJam for some time now.  It’s a shareware app that isolates the Pandora flash player in a nice small window.  All of the functionality of Pandora is built right in, including actions that spawn web pages (such as editing a station or viewing more info about an album), which simply open in your default browser.  PandoraJam also offers some key features that Pandora lacks, and frankly might not want you to have.  It can stream your music to AirTunes, just like iTunes does, with a simple popup menu.  You can also use your Apple Remote to control PandoraJam playback, and even thumbs up or thumbs down songs from the remote.

Most important, though, is the fact that PandoraJam has recording support.  Simply click the red record button, and when the song finishes it’s saved to your hard drive, and even tagged and added to iTunes if you like.  Unfortunately, this feature has become less useful since April, when Pandora changed its stream format.  Until then, Pandora used 128kbps MP3 files, which of course aren’t audiophile quality, but sound just fine over speakers or on your iPod.  But the new Pandora format is 64kbps AAC+, which sounds almost identical to 128kbps MP3, but suffers one major drawback: Apple doesn’t support it.  This means that when played back in iTunes or on an iPod, the songs are downsampled to 64kbps standard AAC, which sounds dreadful, with muddy bass and static-y treble.  As a result, I’ve stopped recording as much as I used to.

There is a workaround for playing newer recorded files.  VLC supports AAC+, but it necessitates opening a separate application and not having access to your full music library.  To try to keep things organized, I have PandoraJam put new recordings in my Music folder but NOT add them to iTunes.  I then have a smart folder set up with the criteria Created Date is after 4/16/2008 (the day of the format switch) AND Items matching text “PandoraJam” (this finds the content of the comments tag which PandoraJam automatically adds to recordings).

So now that you have an efficient Pandora system running on your Mac, what about taking the music with you?  Pandora just announced some amazing news today: a Pandora client for the iPhone.  It looks extremely slick and means that if you have an iPhone or iPod touch that you’ll never be without new music to listen to.  Oh, and did I mention that it’s absolutely free?  I’m not going to be standing in line for an iPhone tomorrow, but plan on getting one soon. Once I do, Pandora will be the first app I install on it, and I’ll never listen to FM radio in the car again.  Clear Channel had better scrounge around for some spare hope.

You can find Ed’s Pandora account, complete with embarassing stations, here.

Bluetooth adventures with the Logitech v470

I finally got around to getting a Bluetooth mouse for my MacBook.  At a friend’s recommendation, I chose the Logitech v470, although I didn’t have a whole lot of options.  There just arent that many compact, Bluetooth mice out there.  And what’s the point of having a nice, small, portable mouse that requires a dongle that’s nearly equal in size?  Now I’ve sufficiently untethered my MacBook such that when I set it up on my desk I only need to plug two things into it: power adapter and speakers.

But it wasn’t necessarily easy.  This was my first experience setting up any Bluetooth device (I’m a Verizon customer, what can I say?)  The Mac OS Bluetooth setup assistant is straightforward enough, but Logitech had to go and louse it up, requiring you to install their proprietary software.  No big deal, they gave me a disc—with horribly outdated software.  I had no idea that this was the case though, until I installed it (was forced to restart, argh), got the mouse connected, and realized that Things Weren’t Right.

First of all, tracking was awful and jumpy.  This was fixable, but not without some headache.  The ordinary tracking setting in the Keyboard and Mouse preference pane applies to the v470, but so does another tracking setting in Logitech’s own preference pane.  Since you can only show one system preference pane at a time, this involved a lot of jumping back and forth, and a lot of resorting to the trackpad, since I came up with a lot of combinations that made tracking so fast or so slow as to be unbearable.  Eventually I struck a good balance.  Tracking is now quite good with a couple of exceptions.  Sometimes at very slow speeds the cursor will skip a pixel, but my crappy old wired mouse did that too.  Also, when the v470 has been idle for a while, its first input doesn’t “take” right away, so the cursor can jump a couple inches in the direction you moved it.  Apple support discussions would indicate that this is an Apple problem.  I suppose it’s a power-saving feature, so if it’s actually doing me some good, it’s ignorable.

Lastly, I decided that since I’d installed Logitech’s crazy software, I better put it to use.  Several years ago I had a Kensington mouse that let me assign application-specific commands to additional buttons.  Here I encountered more problems.  First, the Logitech pref pane crashed every time I tried to define a new app. I discovered that the software that shipped in the box was several revisions outdated, so I had to dig around the Logitech site to find the new version.  I installed it, and had to restart again (argh!).  Finally I was able to set up a custom configuration for Firefox, and assigned cmd-[ and cmd-] to the left and right scroll wheel tilt gestures.  But Firefox didn’t like this.  It went back when it was supposed to go forward and wouldn’t go back at all.  I tested a couple other keystrokes to make sure I wasn’t just going insane, and they all mapped out correctly.  Then I tried something that was, in fact a little insane.  I mapped cmd-] to the left tilt and cmd-\ to the right tilt, and suddenly Firefox was behaving properly.  Why?  Because of this:

This bizarre dialog box, with no explanation, appears during the Logitech software install.  What does it do?  Apparently Logitech hasn’t figured out how to pass real keystrokes to the OS layer, and is instead doing some crazy emulation of their own keyboards in order to relay commands from the mouse.  On the second install I must have breezed through this step, and US must not have been the default.  Fine, I’ll just change the preference for it…but no, the only way to ever see this dialog is to, you guessed it, run the installer.  And restart again (ARGH!)

Three restarts and about an hour later, Firefox was happily moving forward and back with the rocker, as is iTunes now.  In all, the v470 is a great little piece of hardware, plagued by some slightly crappy software.  And I definitely recommend the Bluetooth experience for mousing if you use a MacBook.  Shop around (I got the v470 for $35 after a rebate) and free yourself from wires and—even worse—dongles forever.

Zen Desktop

Back in July 2007, Steve gave WWDC attendees a tour of Leopard for the first time. The first of its exciting new features to be unveiled was the new Desktop. Its translucent menubar, translucent Dock, and the Downloads stack in the Dock were all designed in order to focus more attention on your desktop background and minimize icon clutter. The first two features weren’t met with the warmest praise, but they still remain in the OS.

If you’re like me, you appreciate these features despite their criticism, and you want to make your Desktop as Zen-like as possible in order to take advantage of them. Here are the steps I took after installing Leopard to reduce my Desktop to nothing but a menubar and a photo:

  • Use the Downloads Stack – Leopard gives all users a “Downloads” folder in their Home folder, and adds it as a Stack next to the Trash can. Tell your browser to save all its downloaded content to this folder, and you’ll never clutter your desktop with .zip files or JPEGs again. If you use your desktop to store important material as well, why not create an Important folder and drag it onto the Dock as well?
  • Hide your volumes – Even after you remove your files from the Desktop, icons for your hard disk and removable drives may still remain. To hide them, go to the Finder menu and choose Preferences. Under the General tab, uncheck all the boxes. To make sure that all your volumes are readily available, choose the “Computer” option from the “New Finder windows open:” dropdown menu. Now, all your volumes are just a ⌘-N or click on the Finder icon away.
  • Hide your dock – I know, you may think this is crazy, but you can hide your Dock so it doesn’t display until you need it. To do this, go to the Apple menu, go to Dock, and then choose “Turn Hiding On.” Now just move your mouse to where your dock used to be and it will pop up. Move your mouse away, and it’s outta sight.
  • Menubar Translucency – Apple gave users the option to turn this off in Mac OS 10.5.2. To toggle the option, go into System Preferences and click on “Desktop & Screen Saver.” Simply check or uncheck (depending on your preference) the box next to “Translucent Menu Bar.”

The only step left is to choose a killer background picture, and then you’ll have a Zen Desktop, free of clutter and distractions.

keep it rolling with AppleScript

If you’re like me, most of the time you’re at your Mac, iTunes is open and playing.  Now maybe you have a beautiful library of refined, hand-crafted playlists, and scarcely ever venture into the morass that is your full library.  I, on the other hand, am lazy: I fire up iTunes, click on Music, and let it go on shuffle ad infinitum.  This is great until you come upon One of Those Songs.

What kind of songs, you ask?  Something like Q by Cartel, or Mean Mr. Mustard by the Beatles.  The songs that seamlessly blend into the next one on the album.  You can’t listen to one without the other.  When I realize this with about 15 seconds left in the track, a mad scramble ensues.  Quick! activate iTunes, make sure Music is selected, cancel any search filters, make sure everything’s sorted ascending by album…oh, and turn off shuffle, duh!  Oh, and if I did happen to be listening to a playlist that doesn’t contain the next song, the whole operation is dead in the water.  There ought to be a way to automate such a simple concept, even if its execution is complex.

Enter AppleScript.  iTunes is thankfully highly scriptable, as evidenced by the hundreds of scripts available at Doug’s AppleScripts for iTunes.  Of course I searched for a solution there, but didn’t find anything, so it was time for me to write my own.  I’m no AppleScript expert, but after a few minutes poking around in the iTunes command dictionary (cmd-shift-O in Script Editor to get there), I had a first draft:

tell application "iTunes"
  if player state is playing then
    set this_track to the database ID of the current track
    set this_album to the album of the current track
    set this_track_number to the track number of the current track
    repeat while the database ID of the current track is this_track
    end repeat
    playpause
    set view of front browser window to (get some playlist whose special kind is Music)
    tell view of front browser window
      try
        play (some track whose album is this_album and track number is (this_track_number + 1))
      on error
        tell application "iTunes"
          playpause
        end tell
      end try
    end tell
  end if
end tell

The general flow is simple: keep checking over and over until the current song isn’t playing anymore, then immediately go and grab the next song from the same album.  If for some reason that’s not possible, just keep playing like nothing happened.  This works pretty good, but with one big problem: that repeat loop with no delay between iterations just hoses the processor [see screenshot].

OK, onto revision two: just add another repeat loop before that which checks how close to the end of the song it is, so the CPU usage just spikes for a second or two.  (The other option, to put a delay in the main loop can lead to not switching tracks fast enough.)

That is, so far, my best solution, but even that super-fast repeat loop is not impervious.  If the next song in the queue begins with a really quick downbeat, you’ll still hear a pop of it, which is less than desirable.  After much tinkering, the only improvement I succeeded in making was to mute the volume just before the end of the current song, and then play on. Still, a blip of silence is only half a step better than a blip of other music; that is, neither is really good.

So, this is still a work in progress.  I’m making the scripts available for download for you to tinker with.  Perhaps you can find some solution that I’ve missed.  I think I’ve outlined the major caveats above, but if you actually put these in your ~/Library/iTunes/Scripts folder and use them, I’m not liable for messing things up, yada yada.  Meanwhile, I’ll just keep on making my mad dashes to iTunes.

ignition! Big Cats launch into Space

Welcome, all of you who have discovered this shiny new corner of the blogosphere* internets.  Today marks our official launch (pun unavoidable and therefore fully intended).  We hope to cater to a large group of Mac and Apple enthusiasts similar to ourselves.

We’ve each written a post to get things rolling, and we hope you enjoy them.  You can dive right in, or check out the about page if you still want to know more about what we’re doing here.  Comments of all types are welcome, since we want to build a useful community of Mac power users.

As for what to expect in the future, content should pour in at a moderate rate; we’re taking this seriously but it is a hobby for us.  Keep checking back, or better yet, just add the RSS feed to the aggregator of your choice and never have to worry about it again!  However, we do have some audio and video projects in the pipeline that you’ll want to look out for, especially since they might spawn their own separate feeds.

Thanks for joining us on our journey to the deepest reaches of spaaaaaaaaaace!**

*find me the corner of a sphere and you win a prize
**and by space we mean Mac OS X