Spaces 'Application Assignments' and Applescript

Let’s face it – Spaces, Leopard’s new virtual desktop implementation, isn’t as polished as many of us would like it to be. It has more than it’s share of undocumented features, bugs, and annoyances.

One of my personal gripes with spaces it’s lack of keyboard shortcuts for managing what Spaces calls “Application Assignments”. I’d like to be able to quickly assign an application to all Spaces with a quick keypress. Also – I often find myself hunting through my Spaces for 3 or 4 Safari windows I’ve left in various places – it’d be nice if there was an easy way to collect all windows of a given app on the current Space.

So, this morning, I sat down and started hacking at some Applescripts to do just that. After wading through the bizarre way that Application Assignments are stored, I ended up with 4 Applescripts:

  • Assign to All Spaces – assigns the frontmost window to all spaces.
  • Assign to Space X – opens an input dialog asking you which space to assign the frontmost window to.
  • Collect on Current Space – brings all windows from the frontmost appliation to the current space.
  • Remove Assignments – remove any appliaction assignments the frontmost window may have.

Here’s a zip file of all 4:

Spaces Applescripts

These scripts are designed to be invoked via a keyboard shortcut via Quicksilver or FastScripts.

If you have any corrects / additions / suggestions as to how to improve these scripts, drop ‘em in the comments!

How to Make a Screencast on Mac OS X

As my Firebug Screencast made it’s way around the web, I received quite a few comments and emails asking me how I made this screencast. I’ve put off responding to most of them, thinking that I’d make a screencast about making a screencast. The recursiveness of the meta-screecast is too much for me to handle, so I’ve given in. Here’s how I put my screencast together.

Tools

Spotlight Effect

To create the spotlight effect and highlight the mouse clicks and keypresses, I used Mouseposé from Boinx Software.

Screencast Software

To record the screen and voiceover, I used Snapz Pro X from Ambrosia Software.

Microphone

For this screencast, I used the internal mic on my Mac Book Pro in a quiet room. I initially planned on re-tracking the audio with an external mic I had laying around, but I was quite happy with how the sound turned out, and, frankly, was more interested in lunch than working on this screencast any longer. If you’re looking for pro sound, you’ll need an external mic. My buddy Ryan Irelan, who runs Podcast Free America, recommends these models:

  • Kustom KM4 Mic with Cable
  • Behringer XM8500 Microphone
  • Shure SM58 Mic
  • MXL MXL V63MBP Computer Desktop Recording Kit

If you go the re-tracking route, it might be worth your time to run your audio track through The Levelator. I’ve not used it personally, but I’ve heard great things.

Encoding

To re-encode the video produced by Snapz Pro X into H.264, I used Quicktime Pro. I chose Quickitme Pro for it’s ease of use and support of the Fast Start feature, which allows the movie to start playing before it’s been entirely downloaded. For those interested in the specific encoding parameters I used when exporting, here they are:

Process

  1. Write a script. The public firebug screencast was probably take fifteen or so – the first ten of which I tried to do without a script. Let’s just say those ten takes included a good bit of French (in the “pardon my French” sort of way) as a result of my frustration. After I wrote a script, printed it out in large type, and set it by my monitor, things went much smoother.
  2. Memorize the script. The next five tossed takes were the result of me not looking at the screen while I was recording the screencast, but rather looking at the script. Once the script is memorized, you’re free to focus on what’s happening on the screen.
  3. Enunciate. If you’ve never recorded your voice for any published work, take a look at Ryan’s Training Your Voice for Podcasting guide. His tips are right on the money, especially this one: “Overcompensate. You’ll probably think you sound weird, but that’s when you’re doing it correctly.”
  4. Go for it! Enable Mouseposé, invoke Snapz Pro X, and give it a whirl. Expect to repeat this step several times until you’re happy with the end result.
  5. Publish. Compress your final take using Quicktime Pro, upload it to your favorite (preferably un-metered) webhost, and blog about it.

If any of you have any corrections, clarification, or additions that you’d like me to post, please post a comment below. I’m not a professional by any means – I’ve published one and only one screencast. If you make a screencast using this tutorial, I’d love it if you posted a link to your screencast in the comments as well.

So, what are you waiting for? Start working on your screencast!

TiVoToGo for Mac is Here - for $99

The buzz this morning is that TiVoToGo for the Mac has finally arrived – in the form of software bundled with Roxio Toast Titanium 8. Unfortunately, Toast 8 is $99 – unlike the official TiVo Desktop for Windows.

TiVoToGo demoed almost exactly year ago at CES as a standalone application that seemed to remove the DRM from the files it downloaded from the TiVo. It’s a shame that it took TiVo a year to release this software, even more shameful that they encumbered it with DRM, and unforgivable to charge $99 for it.

“This is going to be the only official Mac solution,” said Adam Fingerman, Roxio’s director of product development. “There have been some other Mac hacks and shareware things that have popped up, but those technically violate the (TiVo) terms of service.”

Ironically, the “Mac hack” that Mr, Fingerman is referring to, TiVo Decode Manager (TDM), is a spitting image of the version of TiVo Desktop demoed at CES last year. TDM was also in the news this morning: they launched version 2.1. TDM lacks support for direct burning of TiVo recordings to DVD, but it makes up for that by stripping the DRM from the TivoToGo files, thanks to work by those on the Ti Vo To Go page of the alt.org wiki. Without the TiVo DRM, you’re able to do whatever you please with your recordings – re-encode them in whichever format you prefer, burn them to a DVD with software of your choice, or transfer them to your iPod or other portable player.

One additional feature that’s possible with the “Mac hacks” and not with TiVo’s official software – streaming video from the TiVo without waiting for it to download first, using curl, tivodecode, and mplayer:

curl -k --digest -u tivo:{MAK} -c /dev/null "{tivo2go url}" |\
tivodecode -m {MAK} -- - |\
mplayer -vf pp=lb -cache 32768 -

I have an Applescript application written to do this for me quickly, but it’s not ready for prime time yet. It’d be great if this functionality made it’s way into a future release of TiVo Decode Manager. :)

Seven Reasons to Ignore Windows Vista and Buy a Mac

In an article entitled Ten Reasons to Buy Windows Vista, Michael Desmond at PCWorld gives what he thinks are ten things “to be excited about” in regards to the upcoming release of Vista. He really only gives nine reasons, as the last is hype about a promised feature:

Jim Allchin, Microsoft’s co-president, says that Windows Vista boasts a re-engineered install routine, which will slash setup times from about an hour to as little as 15 minutes.

After reading through the nine real reasons, only two mention features not currently available on my shiny Powerbook. I’ll touch on those later – first, here are “Seven Reasons to Ignore Windows Vista and Buy a Mac”.
  1. Security, security, security

    Michael gets all excited about three security features Mac OS X Tiger has had for more than a year now a firewall, home directory encryption, and non-admin user accounts. Once the first real virus for OS X appears, we’ll talk about security.

  2. Internet Explorer 7

    Are you kidding me? This badly designed Firefox/Safari ripoff makes no improvements in the quest for web standards. Thanks alot, M$.

  3. Righteous eye candy

    One of the critical new features of Vista’s new UI interface:

    ”...hover your cursor over minimized programs that rest on the taskbar and you’ll be able to see real-time previews of what’s running in each window without opening them full-screen…”

    Hmm..sounds a bit like the Dock to me, eh?

  4. Desktop search

    I guess since WinFS didn’t pan out, M$ decided they’d just copy Spotlight. Lame.

  5. Better updates

    This is getting boring. See Software Update

  6. More media

    What? Did you say there’s a Music Player? A Photo Management App? A DVD Creation App? I’m sorry, I didn’t hear you: I was busy making a DVD of my photos and music on my Mac.

  7. Parental controls

    Aww, how cute. Michael’s description of features sounds just like OS X’s Parental Controls

Michael does makes two valid points:

  1. The backup solutions included in Vista are better than those included free in OS X – but a .Mac account not only allows you to backup your files, but synchronize them between computers.
  2. Windows Collaboration, apparently the fruit’s of Microsoft’s deal with WebEx, looks interesting. Won’t do any good if you’re collaborating in a multi-platform environment though.

All of this hype over Vista seems completely wasted. I’d much rather unpack a new MacBook Pro anyday. Do yourself a favor and make the switch. I promise you won’t look back.

Ruby and Quicksilver: Executing Ruby one-liners with Quicksilver

To plug Ruby directly into your brain, take three short breaths, mutter a prayer to Matz, and then follow these instructions:

Prerequisites: Mac OS X Panther or greater and Quicksilver

  1. Download this humble Applescript
    using terms from application "Quicksilver"
        on process text t
            do shell script "ruby -00 -e '" & t & "'"
        end process text
    end using terms from
  2. Unzip the script and copy it to ~/Library/Application Support/Quicksilver/Actions/
  3. Restart Quicksilver

Once you’ve plugged in, Ruby is just a blink away:

  1. Invoke Quicksilver (CTRL-Space)
  2. Type a period (.) followed by your one-line stroke of genius, such as:
    [ "in", "me", "plug" ].reverse_each {|x| print x.upcase, " " }
  3. Press TAB
  4. Type until ruby is displayed in the second pane
  5. Press Return

The results of your Ruby one-liner (‘PLUG ME IN’ in this case) are placed back into the first pane of Quicksilver for your digestion.

_Thanks to bsg for the inspiration. _

Xservs are up!

Today, Lexblog took a big leap in the right direction. Our current server setup has been causing us headaches in recent months, so we decided to go with an in-house hosting solution. Two shiny Apple Xservs were ordered, shipped, and upgraded. Today, they were booted up for the first time, and with the help of Apple Remote Desktop, I’ve been configuring, updating, and generally massaging our new workhorses.

These servers don’t know what’s about to hit them: I’ve prepared a tasty cocktail of Movable Type, LightTPD, and FastCGI to power our blogs, with a sprinkling of Ruby on Rails on the top to make management of our blogs easier.

Watch out for some new features and upgrades from Lexblog in the next few months, as well as drastic speed improvements. They don’t call it FastCGI for nothing ;)