Search Results for 'syrinx'

JSConf US Gear Report

JSConf was my trial run for a bunch of new equipment, so here’s a separate report on those experiences.

iPad

Conference like settings are one of the situations where I felt that I could make the best of the iPad. Apparently, I was not alone, because there were probably somewhere between 5 and 10 iPads at the event.

My flights from Seattle to JSConf included 6 hours of flying time, and hour and a half of layovers, plus the usual waiting around time in airports. During that time I read some e-mail, watched about 90 minutes of video, and read several PDF books / documents. By the time I finally ended up in my hotel room, I still had around 80% of the battery charge remaining. I used the iPad as much as possible during the first day of JSConf, and the battery finished at 49% at the end of the first day. Thus far, the battery life is beyond my expectations.

During the conference, the primary activities that I was doing were e-mail reading, web browsing, twittering, and taking notes. For the first two activities, I used the built in Mail and Safari. For Twitter, I switched back and forth between Twitterific and TweetDeck. I used Evernote as my primary note taking tool.

I started out using Twitterific, but at some point it stopped working and was giving a message about an nvalid server certificate error. Echofon on the Mac was having a similar problem. I had TweetDeck installed on the iPad as a leftover from trying it on the iPhone, so I gave it a try and it worked. On the desktop I am not a fan of Tweetdeck’s AIR based user interface, which outweighs it’s advantage of having columns. When I use Syrinx on the desktop, I just open a stack of windows and that works fine. But on the iPad, Tweetdeck’s column based model makes a lot of sense, especially if you hold the iPad in landscape mode. I was mostly happy with the experience, although Tweetdeck has some weird UI in places:

  • It’s hard to get a sense of when the various columns refresh, and there doesn’t appear to be a way to get individual columns to refresh. I’d love to be able to use Tweetie 2′s pull down to refresh gesture to do this.
  • Favoriting tweets (which is how I keep track of interesting information on a mobile device) takes over the whole screen for a moment, causing an annoying flash/blink effect.
  • In Landscape mode you can’t click links or view profiles (the latest update to TweetDeck has added support for link clicking)
  • If you select a tweet and then discover that you need the additional menus popup, then you need to select another tweet and then reselect the tweet you want to act on

I love Evernote, and I’ve written about that before. The iPad version of Evernote is fantastic, with perhaps one exception. If you try to edit a rich text note, you are put into a weird append only kind of mode. I have some Python scripts that create rich text notes from items on my calendar, so it’s annoying to go back to Evernote on the iPad and then be put into append mode. I would love to see a full rich text editing capability come to a future version of Evernote for iPad (and sure, iPhone). Other than that, it was a workhorse at JSConf.

At many conferences, there are multiple WiFi networks, and you have to switch among them as you go from room to room. This was the case at JSConf. On the iPad, this meant a trip to the Settings app in order to select a new network. It would be great if the iPad would switch among multiple known networks based on signal strength. I can think of some reasons why you might not want to do this, but in my situation, it would have been really convenient.

All in all I had a pretty good experience with the iPad as my primary device. I can definitely see it as my primary conference machine, as well as my “in a meeting” machine. iPhone OS 4.0′s “multitasking” will reduce the annoyance associated with waiting for apps to restart on switching.

MacBook Pro

At work they issued me a unibody MacBook Pro 15″. These are supposed to have much better battery life than their pre-unibody forbears. As far as I can see this is true. I imagine that the recently refreshed models are even better on this count. The only other thing that I noticed was that the power adapter gets pretty hot while recharging the machine.   

GF1

Like many photographers, I’ve been looking for a small, high quality, camera that I could carry with me almost all the time. I have my cell phone at all times, and in a pinch, a cell phone picture is better than nothing. But a cell phone camera, regardless of megapixels lacks the controls that I’ve grown used to when making pictures. I’ve started carrying a Panasonic GF1 with the 20mm lens. The wide aperture prime suits the style that I like to shoot in, and the Micro 4/3 sensor gives pretty decent looking pictures. The GF1 produces 12 megapixel RAW files, which in principle is the same as my D3. Of course, there’s a vast difference in quality of those pixels, but thus far I am pretty happy. It has all the controls that I was looking for, as well as a hot shoe for Strobist shenanigans. It’s going to take me a while to master the controls, but I’m in no hurry. It did seem odd to be setting around with the tiny GF1 while the DSLR toting strobists were doing the photos of JSConf. I’ll be doing most of my Dailyshoot assignments with the GF1 — I’m looking forward to drawing material from downtown Seattle. Here are a few of the shots so far:

Dailyshoot 152

Dailyshoot 153

Dailyshoot 155

Bose QuietComfort 15

I am pretty sensitive to noise. Between commuting on the ferry every day, working in a building with thin walls, and spending time on airplanes, I decided that I needed help in coping with all the noise. Ever since the Bose noise canceling headsets came out, I’ve been interested in them for cutting the noise and helping me concentrate. I’ve started carrying a set of the Bose QuietComfort 15 headphones. These do a great job of cutting out noise. Most kinds of background noise gets cut out, but you can still hear human voices, albeit at a reduced volume. A little bit of music takes care of that quite easily. Like many people who reviewed these headphones, I do experience the sensation of pressure while wearing them, but these headphones are much more wearable than the earplug style Etymotic headphones that they are replacing. The only other drawback that I’ve found is that they don’t appear to built super well, so I am taking care to carry them in the semi hard case that they came in, which makes them a little less convenient.   

I think that I am well equipped to survive commuting and office life.

Lifestreaming clients round N

I guess two posts on lifestreaming clients isn’t enough?.

Yesterday MacHeist started offering pre public beta access to Tweetie 2 for Mac.   That caught my eye because Syrinx, my primary Twitter client has been a little slow at keeping up with Twitter features.   I didn’t really want to get the MacHeist bundle (don’t want to hassle with packages that I don’t want) just to get the private beta, but I mentioned on Twitter that I was thinking about it.   Several folks suggested that I try Echofon.   I gave it a whirl, found some things that I like and other that I didn’t.   I started keeping notes about Syrinx vs Echofon, and now it’s turned into a blog post.

My usage style / requirements

I follow a bunch of people, including many people who live in Europe who tweet while I am asleep.   I need a client that can remember unread tweets from overnight.    I’ve found very few clients that are able to do this.     My reading style tends to be bursty as well, so I want the client to do a good job of keeping track of what I’ve read and what I have not.    These two requirements are what has kept me on Syrinx – it can hold days worth of tweets without a problem.   Syrinx’s bookmark also gives me definite way of marking what has been read and what has not, and puts control of that mark directly in my hands.

The other major requirement is that I spend some time (probably too much) on airplanes, without net access.   I want a client (mostly on my iPhone) that can go back in fill in the gaps left by being in the air.   Tweetie 2 for the iPhone can do this, but the experience of switch back and forth between reading the stream on desktop Syrinx and iPhone Tweetie 2 is annoying.

A minor requirement is to be able to monitor a number of Twitter searches at once – that means opening a window for each search, something that Syrinx also does.

Now, let’s have a look at how Syrinx and Echofon stack up for me.

Syrinx

The obvious things that I like about Syrinx are that it can hold as many tweets as I want, as well as the bookmark.    I’ve also grown accustomed to the way that it displays time in absolute format, something which Tweetie 2 / iPhone also does.   One other nicety in Syrinx is that it can display real names in addition to Twitter handles, because sometimes handles and people are hard to match up.   When you have tons of tweets lying around in the? client, sometimes you want to go back to one, and Syrinx obliges with the ability to search all the tweets that it currently has in memory.

So what are the problems with Syrinx? It’s been occasionally unstable, but not in a show stopping fashion. It doesn’t have good support for lists, but I still haven’t made much use of lists. Syrinx does great on opening windows for searches, but it doesn’t remember what searches you have open, so you have to keep track of that yourself. Probably the biggest drawback of Syrinx is that its development is going slowly because its author has a day job.

Echofon

When I compare Echofon and Syrinx, I realize that a lot of the things that I prefer in Echofon are niceties. I like that it can open browser links in the background. I like the way that the drawer is used for dealing with Twitter users and profiles and for displaying conversations.   I just wish it could display more than one conversation at once – but that’s hard in the drawer model. The ability to colorize tweets matching keywords makes it easier to pick out tweets on high priority topics.    As a photographer, I appreciate the ability to display pictures without going all the way to the browser.    I do wish there was a way to get some kind of preview of those pictures right in the tweet stream.   Echofon does this clever thing where it combines “rapid-fire” tweets from the same person.   This seems to work really well, and the visual cue is definitely helpful.  

Looking at the tweet authoring side,  I love the “retweet with comment” option.   One reason that I stopped commenting on retweets was that it was annoying to do it.  No more.   Echofon can tab complete Twitter id’s when @replying or direct messaging.    I still wish for a direct message “rolodex” – there are some people who have hard to remember Twitter id’s.   bit.ly is my preferred URL shortener because of the analytics, but you have to be logged in to bit.ly in order for that to work well.   Fortunately Echofon is able to log into bit.ly accounts so that your analytics work.

In theory, I like the idea of an Echofon ecosystem that syncs the desktop and mobile clients.   I haven’t tried this yet because I have iPhone Twitter client fatigue, and because as much as I like Echofon, there are some issues that make it hard for me to switch over.

The first of these issues is that Echofon won’t hold all of the tweets that happen overnight.  It looks like Echofon will hold about 5 hours of tweets before it starts to drop them on the floor.  There go some of those European tweets.

The next big issue is that marking read/unread doesn’t work for me.  If I am scrolling up through my home tweets and I hit the top, everything gets marked read.   It’s easy to do that by accident.   Switching to the @, DM, or search tabs also marks my home tweets as all read, and that doesn’t work for me at all.

Compared to those two issues, everything else is just nits, but here goes, just to be complete.   Echofon doesn’t display absolute time or real names.    Also, Echofon doesn’t let you search your home tweets.

Wild and crazy wishes

Certain URL shortening services (su.pr and ow.ly come to mind) wrap the page in a header bar, which is annoying.  I’d love if my client would route through those services so that the URL that I got in the browser was the actual content.

Sometimes there are links that are retweeted a bunch.   I would love it if a client could compress all those retweets into a single entry which showed how many / which people I follow retweeted a link, along with an indication of whether or not I had already “read” an earlier retweeter (which would mean I had already read the link).

I guess I’ll have to do another version of this post when Tweetie 2 for Mac finally ships.   Or maybe it’s still early enough for some of these ideas to make the cut.

 

Why I finally believe in hashtags

I’ve been using Twitter for a while now, but I’ve never really used hashtags much. I’ve never been much for doing the stuff it takes to get a highly promoted blog or twitter stream. I figure that if my content is worthwhile, that should be enough. At PyCon I found the compelling hashtag use case for me.

There were a lot of people using hashtags in their PyCon tweets, and Jacob Kaplan-Moss showed me Twitterfall, which made it easy to keep track of uses of the tag. That made it *much* easier to find the virtual twitter stream for PyCon. This was also true at Lang.NET, the DSL DevCon, and the MySQL conference. This week(end) I’ll be using hashtags to track the progress of JSConf.   From now on I’ll always use hashtags when I’m at a conference or event.

One reason that it’s taken me so long to get the hash tag thing is that I use Twitter primarily via rich desktop (or iPhone) clients. Until recently I wasn’t using clients that could do searching. I had tried TweetDeck, and it never stayed with me. When Nambu came along, I was pretty enthusiastic because it was a native TweetDeck. Unfortunately, I had crashing problems with it at Lang.Net (since fixed, I think), and I put it aside when I realized that Syrinx 2.0 had searches. While Syrinx doesn’t save searches across restarts, its memory use is tolerable enough to leave it running all the time, so it’s not a big problem, and I am hopeful that MRR will include saved searches in a future version. Commenters: yes, I tried Tweetie for Mac, and I didn’t like it. I love Tweetie for iPhone, though. Go figure.

Lifestreaming, round 2

Macintosh

MRR Software has released a beta of Syrinx 2.0 just in time for PyCon this week (or ApacheCon EU or EclipseCon, if you are at one of those events). My biggest complaint with Syrinx 1.0 was that it was using up a lot of memory and CPU. That’s totally fixed in Syrinx 2.0. I’ve left Syrinx running for over a day with very little discernable growth in memory. I used to have to restart it several times a day. Scrolling and searching are both much faster as well. Retweet and URL shortening have been added, which pretty much takes care of me featurewise, although I’d like a retweet button in the button bar of a tweet, and I’d prefer bit.ly as the URL shortening service. Minor complaints to be sure. The last UI issue for me is that Syrinx 2.0 now expands the current tweet from it’s slightly compressed list element version. This is a problem for tweets that contain links (the best kind), because you have to click once to zoom the tweet, and then click again to open the link. I know that MRR is working on this one.

iPhone

Several week ago I also switch my iPhone client from Twitterific to Tweetie. I love everything about Tweetie except for 2 things:

1. Tweetie goes to the network all the time. This wouldn’t be a problem if iPhone latency was just a bit better.

2. I don’t like the way the Tweetie segments replies and direct messages. I like having tabs to see just those things, but I don’t like it that they no longer appear in the main view. Syrinx is doing it the way that I prefer.

My favorite features about Tweetie are:

1. Network lag aside, Tweetie is speedy.

2. The swipe actions, particularly favorites – I now favorite a lot more. This saves me from losing tweets with interesting links when I am in a hurry. I fave them on the phone and then read the faves from the desktop.

3. Instapaper support. I’m glad this is here, but I use it less than I thought I would, because of favorites

4. The landscape mode keyboard – This is taking some getting used to, but it’s good practice for iPhone 3.0

5. Ability to say how many tweets to load – good for making sure you don’t miss anything

6. Retweeting – too bad it doesn’t fit in the swipe bars.

There’s still no direct message rolodex, something that I am sure I will be wishing for this week at PyCon.   

At least I’ll be well armed for the next few months, where I’ll be at a number of conferences.

Lifestreaming clients

I have usernames on most of the major lifestreaming services (Twitter, FriendFeed, identi.ca, and so on). For a variety of reasons, I really only use Twitter, and the only way that Twitter is useful / manageable for me is the existence of rich client side applications.

Mac OS X

For some time, I’ve been using Craig Hockenberry’s excellent Twitterific. I liked the UI, and the feature set was good. From time to time, I would try the Adobe AIR based twhirl, which had the virtue of also being a FriendFeed and identi.ca client. Unfortunately, I could never keep twhirl because of a bug in AIR 1.1 that caused clicked URLs to open in a new Firefox window instead of a new tab. That bug was fixed in this weeks AIR 1.5 release, so I gave twhirl another try earlier this week. I liked having FriendFeed and identi.ca up (having identi.ca up meant that I saw Allison Randall’s messages about the Parrot Developer summit and their new release schedule). I didn’t like having a window for each service — I don’t care about keeping it separate, and I’m still having some trouble finding a theme that works for my aging eyes. Twhirl also doesn’t seem to remember window positions between runs, which makes the multiple windows even more of a pain. I also miss seeing people’s “real names” and the Growl notifications that I was getting from Twitterific. I put twhirl back on the shelf, but will probably come back to it again.

A week or two ago, I discovered Syrinx, which is a Twitter only client. There were a few things that persuaded me to try it out. The ability to set a bookmark at some point in the message stream and then go back to it. This seems to work better for my style of reading than individual read/unread markers on each Tweet. The keyboard shortcut means that I can jump right to where I left off, which is nice. Syrinx also lets you search the stream, which is useful. I follow enough people that searching is useful. I was also (incorrectly) under the impression that Syrinx would save a slice of the message stream locally, which would be a nicety. I can page backwards on the Twitter site, but that way lies pain. Syrinx has a way of tracking twitter “conversations” and finding the supposedly relevant tweets and presenting them. I like this idea, I just wish it wouldn’t take over the main message stream window in order to show it. The biggest problem with Syrinx is that there something awfully bloated in there, which means that after some time, the app is eating memory and slowing down. Which means you have to restart it, which means you have to catch up first. MRR, the author of Syrinx, knows that this is a problem and is working on a solution. I hope that won’t take a long time.

Because of the AIR 1.5 release I also tried TweetDeck this week. I tried it, and there were some interesting features. I liked the ability to make my own groups of people – but Twitter should be supporting that. I also liked the way that replies and direct messages could be in their own column – I really liked that, actually. I liked the idea of TwitScoop, but what I’d really like would be a TwitScoop of my Twitter network – that would be cool. TweetDeck was great when I put it on my 30″ main display. You can see lots of stuff and quickly see if there is anything useful. Unfortunately, I’m not willing to dedicate that much screen real estate — whatever client I use has to live (and share) on the “outboard” main LCD of the MacBook Pro.

iPhone

When I got my iPhone, I started using Twinkle. There pretty much wasn’t anything else, and I sort of liked the idea of having some kind of location awareness of people using the service. Turns out that very few people that I know use the Twinkle location stuff, and I’ve pretty much switched to using Brightkite for that kind of thing, and even there, the jury is out. User interface wise, I like the fact that it colors replies and direct messages differently — it makes them much easier to pick out. I don’t like that I have to tap on a tweet containing a link in order to open the link.

I’ve since switched to using the iPhone version of Twitterific. I don’t have to tap on tweets to follow links, and Twitterific is pretty good about storing a decent number of tweets on the phone. I can usually take a 2 hour plane flight and not have missed much when I land on the other side. I’d love to not miss anything at all. One annoyance is that Twitterific for iPhone doesn’t remember the last tweet that I was looking at very well, so I end up doing a lot more scrolling than I should have to.

Wish List

Here’s a consolidation of the some of the things that I think are important in rich clients for Twitter and services like it.

  • Good management of windows – I don’t want a window for each service – I want one big stream.
  • Good visual design that easily lets you differentiate between different kinds of messages (tweets/replies/direct messages). Make links easy to see and follow.
  • Keep a local, searchable, history of messages.
  • Provide a good, low maintenance way for me to keep my place in a busy stream.
  • Give me a way to follow conversations (chains of replies). I would be happy to have a menu for this.
  • Integrate some of the third party services that are springing up, like TwitScoop.

On the mobile side, there is one feature that I would consider killer.

I want a “direct message” rolodex. There are people who I want to direct message on a frequent basis. I don’t remember everybody’s twitter user name – that’s what computers are for. I want a “picker” that contains a “speed direct message” list. That would be awesome.

This is one space where rich/desktop applications are by no means dead.

Macintosh Tips and Tricks

This is a list of hardware, software and information that has been useful to me as I’ve moved over to Mac OS X. I hope that you find it useful as well. This version is now up to date for Mac OS 10.6 Snow Leopard and Intel Macs.

Hardware

  • NEC MultiSync LCD 3090WQXi – 30″ color accurate display with a wide color gamut.   Color accuracy is a big deal for photographs.
  • Logitech MX Revolution - More mouse buttons is better.   I use this mouse to scroll, to page backwards and forwards, to trigger Spaces and Expose.   The only sad part is that I needed a third party mouse driver, Steermouse.  Steermouse doesn’t know how to talk to the mouse’s battery indicator, so sometimes I’ve forgotten to recharge the mouse.
  • Griffin Powermate I love this thing. I put in on my keyboard tray on the other side of the mouse, and use the non-mouse hand to do scrolling. I have a mouse with a scroll wheel, but this lets me scroll and click independently.
  • Sandisk Extreme Firewire Compact Flash Reader After I got this, my download times went way down. If you are shooting RAW on a digital SLR, you need an external card reader.
  • X-Rite ColorMunki Photo It’s not enough to have a monitor with a wide color gamut – you also need to calibrate/profile that monitor.
  • Wacom Intuos 3 6×11- This makes fine photo adjustments tolerable.
  • HP 2727nf MFP – I’ve been buying duplexing laser printers for years.   The fact that you can get a duplex printer, a scanner, and a copier in one inexpensive unit still blows my mind.   I’m still not getting all the mileage out of the scanner that I could.
  • Manta TR-1 We don’t have a TV so we use our computers as DVD movie players.  The MacPro doesn’t have an IR transmitter, but you can get the Manta TR-1 to fix that.   Then you need Mira to get it working groovy with the Apple remote

Software

Utilities

  • Quicksilver QuickSilver is the ultimate application launcher and command line for a GUI. I especially like it’s ability to take text and feed it to an Applescript.
  • Pathfinder CocoaTech’s Pathfinder is a Finder replacement that includes many features. Some of the reasons that I like it are that it can open a terminal window on a particular folder. It supports tabbed terminal windows, which makes it easier to manage a proliferation of open shell windows (I feel that I need this even with Expose available).  You can also have tabs of browser windows and save sets of those tabs, which is really handy for managing different projects.  When you select various kinds of files in the file browser, you get a preview of the file contents. The Drop stack makes it easy to drag files from one place to another without requiring multiple windows everywhere.  Pathfinder 5.0 allows you to split a Pathfinder window into two panes, which helps with file management tasks without proliferating windows.
  • DefaultFolder DefaultFolder extends the standard open and save dialog boxed you to remember which folders you visited recently, and allows you to make some favorites permanent. You can create sets of favorite folders on a per application basis. This is a big improvement on the standard dialogs.
  • SteerMouse This is the driver I use to enable all the MX Revolution’s butttons
  • Growl A system wide notification service with command line tools and Python bindings. Supported by Ecto, Adium and everything else
  • iStat Menus iStat Menus is the ultimate system monitoring utility.  Because of it I stopped using both iPulse and MenuCalendarClock?
  • SlimBatteryMonitor This little application uses less space in the menu bar than the built in battery monitor, and is a bit more configurable.
  • Fastscripts This is an incredibly useful app that allows you to invoke AppleScripts from a menu in the menu bar. That menu is application aware, and you can assign keyboard shortcuts to scripts. The final killer feature for me is the ability to option-select a script in the menu and have it opened in Script Editor
  • TypeIt4Me TypeIt4Me allows you define text abbreviations that will be expanded when they are typed into a text entry box. I have a ton of abbreviations, and I am always adding new ones. I preferred TypeIt4Me to Textpander because TypeIt4Me can invoke applescripts from the abbreviations. Support from Riccardo Ettore, the author has been great.
  • Hazel is a great tool that allows you to specify rules that run when files appear in particular directories.
  • SuperDuper It’s really important to backup your computer. I learned this the hardware when mine was stolen and the backups were old. SuperDuper backs up by copying one drive to another — it doesn’t do incremental backups that allow you to go back in time over versions. That’s fine with me. SuperDuper wakes up early every morning and backs up my disk.  And yes, I use SuperDuper in addition to Time Machine. Cheap, fast, and good.
  • Bwana Bwana allows you to use your default web browser to read UNIX man pages.?
  • WhatSize WhatSize is a tool that helps you figure out where all that disk space is going. It looks like the column view in the Finder except that also shows the amount of space used by entries in the view.?  Later versions have gone payware
  • OmniDiskSweeper ?At the same time, Omni Group’s OmniDiskSweeper has become free, so I use it now.
  • Lingon launchd is OS X’s way of kicking off periodic jobs. Lingon is a good GUI tool for helping to create launchd configuration files. Essential for a highly automated system.
  • AppZapper Generally speaking application install/uninstall is pretty good under OS X. However, just deleteing application files might not delete all the preferences and application support files. Enter AppZapper. AppZapper will get rid of all that stuff. Provided you remember to use it. I got mine for free, and it’s great when I remember.
  • blueutil blueutil lets you turn Bluetooth on and off from the command line. Combine that with this hint and you can turn bluetooth on and off from Quicksilver.
  • Flip4Mac You need Flip4Mac’s Windows Media Components for Quicktime in order to play .wmv files on a Mac.
  • osasubr A replacement for the osascript command line utility. osasubr allows you pass arguments to an AppleScript subroutine. PowerPC only.
  • qtplay This command line utility allows you to play any Quicktime supported format audio file. PowerPC only.
  • SpeechQueue An AppleScriptable application that allows you queue up text to be spoken, with lots of controls. PowerPC only.
  • Bonjour Browser A little application that lets you see what computers are offering which services via Bonjour.
  • Sloth Sloth a gui for lsof, which will tell you what files are open and which application has the files.
  • DisplayWatcher DisplayWatcher runs commands/scripts when your display changes, and when you wake up from sleep
  • Unicode Checker A useful tool for dealing with Unicode. Also makes itself available via the services menu
  • CocoaDialog Mac OS X user interface dialogs that you can call from your favorite UNIX scripting language
  • Pashua Mac OS X user interface dialogs that you can call from your favorite UNIX scripting language – can also do Applescript
  • Stakeout (with Growl Support) Run a script when a file (including directories) changes
  • osxutils A set of command line tools for maniuplating Mac specific information

Applications

  • Firefox I am primarily using Firefox as my browser.The first order bit is tabbed browsing. Safari has tabs, but its tools for managing tabs are primitive. The second order bit is extensions. I am using the Tab Mix Plus extension which provides much better tab management facilities then stock Firefox. Other important extensions that I am using are the Adblock which allows me to kill various kinds of ads/Flash, etc, NoScript, which prevents Javascript from running, and FlashBlock, which prevents Flash from running.. Greasemonkey allows you to change the behavior of web apps by injecting Javascript code into the page. There are some pretty cool Flickr tools written using Greasemonkey. The existence of these kinds of plugins is the differentiator between Firefox and Safari (and everyone else). Safari is faster and better integrated withe the Mac OS (Bonjour and Services support are examplse), but Firefox is extensible and is improving. The fact that Firefox is open source is good (it contributes to rapid improvement), but not as important as the plugin architecture. (Actually I am getting more and more unhappy with the lack of integration of Firefox. I am starting to use Safari for some task, and I am also playing around with Google Chrome.  Doing web development is much easier on Firefox than other browsers, again, due to extensions. Firebug is the most important of the web development extensions that I use, followed by View Source Chart , Live HTTP Headers, and the Web Developer extension. You can see why I’d rather not give up Firefox.
  • NetNewsWire NetNewsWire is the only Macintosh RSS reader that supports my scan and tab pattern of RSS reading. I open up groups of feeds in NetNewsWire’s combined view, and read as much as I can inside of NetNewsWire. If the article is long or good, I click on it to send it to a tab in NetNewsWire’s tabbed browser. After I finish scanning with the combined view, I then walk through all the tabs and read them. I also make use of the fact that NetNewsWire can run scripts that output RSS to generate RSS feeds from my private servers. I also have a pile of custom AppleScripts and Python OSA scripts which I use to customize and integrate NetNewsWire into my desktop. It is a huge plus that Brent Simmons, the developer of NetNewsWire, is accessible and friendly.
  • Syrinx Syrinx is my choice for desktop Twitter client.   I’ve written a number of posts about why.
  • Fluid Fluid lets you create application specific browsers based on WebKit.  I use it for Facebook, Flickr, and GoogleWave
  • Ecto Ecto is an excellent application for posting to a blog. It handles HTML, HTML previewing, local composition of posts, ping notification, and more. Currently it has support for blogs that use the Blogger, MetaWeblog, and Movable Type (Blogger/Metaweblog combination) APIs. Atom support is supposedly coming soon. Unfortunately development of Ecto has slowed down substantially.  On the other hand it does almost everything I need it to (except for editing pages in WordPress).
  • Evernote Evernote is a great application for taking text, voice and image notes. It allows you to tag individual notes for later retrieval. There is a web version of Evernote which can sync to the desktop version and to the iPhone version of Evernote, which is the best note taking application on the iPhone.
  • DEVONthink Pro Office This is a super functional program which I use to capture and categorize interesting information, including web pages, PDFs of research papers, OmniOutliner documents and more.  It’s a great researcher’s tool
  • Dropbox Dropbox allows you to create a shared folder which kept in sync with an account on the Dropbox service.  You can share the dropbox via the web client, multiple desktop clients (including Windows and Linux), and the iPad or iPhone (Android too).   If you have more than one computer or an iPad, I think it’s a must. If you sign up for Dropbox using this referral code, you and I will get a little extra space.
  • 1Passwd 1Passwd is the best password manager program for the Mac. It works with all major browsers, including Firefox, Safari, and NetNewsWire. It does a super job of filling login forms, even unusual ones that Firefox’s built in password manager fails to fill in. It also contains a handy strong password generator, so you can stop using the same password everywhere. And there is an iPhone version.
  • Pukka Pukka is a handly little application for stuffing URL’s into del.icio.us You can use Pukka as NetNewsWire’s del.icio.us posting application.
  • Snak I spent a lot of time looking for a decent IRC client. On a daily basis, I am in at least 10 channels. Managing that many channels is tough. I wanted a way to have all the channels visible at once, which rules out a tabbed interface. I also need customizable actions on a per channel basis. I also wanted to be able to log each channel, since there is often useful information there. Snak allows me to log into all the channels automatically at the start of my day. I create two Snak windows, each tiled with 3 channels, so I can see all the channels at once. These windows and iChat go on the MacBook Pro display, which I reserve for interactive communications. I have actions set to look for my nick in the various channels and notify me accordingly. In the important channels, I get a speech and dock bounce notification. In the others I get beeps. All channels are logged to a directory. Snak is also scriptable, but I haven’t really gotten into that yet.
  • Adium The best multiprotocol IM client for the Mac. Supports OTR encryption of IM’s. I’m pretty much using this, even though iChat can do audio and video. See the next entry for why.
  • Skype I switched to using Skype for both audio and video, because it was just easier to interoperate with people on Windows machines. I could never get the iChat video to work with AIM on Windows. I’m only sorry that I’ve added one more communications program to my system.
  • OmniOutliner I admit to being an outliner lover, all the way back to Dave Winer’s original ThinkTank for the Mac. I use OmniOutliner for all kinds of outlining tasks. I also use it for managing my Getting Things Done system via the kGTD package.
  • Photoshop Lightroom Lightroom gets the node for organizing and light postprocessing of photographs.  It’s gotten quite capable, so even for some selective adjustments Lightroom is all you need.
  • Photoshop CS4 If you need to make fancy adjustments to just a part of a picture, you need Photoshop.
  • MacGPG, GPGMail and GPG Keychain Access For encrypted signed e-mail I am primarily using PGP. MacGPG provides Mac compiled versions of the gpgcommand line tools. GPG Keychain Access lets you manage your keyrings in a GUI. GPGMail is a plugin for Mail.app that lets you deal with signing and encrypting mail.
  • iChm  I am using this mostly to read the CHM versions of the Python documentation (available at python.org). The primary benefit of using CHM format is that the viewer contains a good search capability. There’s no need for an internet connection (as would be needed if you used Google to search the web pages for the documentation set.?
  • Virtualbox Virtualbox is an open source desktop virtualization program that runs on Mac OS X, Windows and Linux.  I use it to run Windows, Linux and OpenSolaris VM’s
  • Skim Skim is a PDF reader and note-taker. It’s open source, and I am hoping that the developers will make it into a competitor for Yep or Papers.
  • Movist Being on a “minority” platform such as OS X or Linux can be a pain when dealing with multimedia files. Movist is a great player that can hande most of those files that QuickTime and the MS Windows Media Player can’t play.  When Movist fails, I break out VLC.
  • Perian A collection of A/V codes to augment what QuickTime doesn’t play natively
  • Mira A driver that lets the Apple Remote work with a lot more applications, and hardware IR receivers
  • Audacity An open source digital audio editor
  • Remote Desktop Connection Client 2.0.1 This application lets you remote control a Windows machine using the Microsoft RDP protocol.  I don’t have a lot of call for this nowadays, and even when I do, I use CoRD
  • CoRD Open source RDP client
  • VisualAck A visual UI to the code oriented replacement for grep, ack.

Built in apps

  • Mail.app I switched from using Thunderbird for mail to Mail.app. Here are some of the reasons.  I like the integration with the Mac OS X address book. There are good built in options for notification, including speech. I used to think that the buddy icons in IM programs were just eye candy, but the I’ve noticed that use of pictures in Mail.app and iChat helps to keep things straight in my head when I have multiple threads of communication going on. In fact, I wish IRC clients could do this. The availability of a good PGP plugin also helped (Enigmail for Thunderbird is also excellent). In general, I found Mail.app to be very snappy (compared to Thunderbird), and the searching was fast enough and useful enough that I actually use it. I also like the way the Mail.app handles threads. The visual grouping works well, and threads with new messages sort to the bottom (or top, depending on how you like it) of the Inbox area, making it easy to follow threads. The only flaw in the thread handling is that not all the thread indentation is preserved.  Also, I use Python to script Mail.app.   This is essential to my ability to deal with my email in any kind of sane way.

    Here are some useful plugins for Mail.app, again demonstrating the value of a plugin system.

    • Mail.app plugins This is a good directory of plugins for Mail.app
    • Mail Act-On Mail Act-On allows you to invoke Mail.app rules from keyboard shortcuts. This is super handy.
    • MailTags MailTags allows you to tag e-mail messages and to build smart folders based on those tags. You can also access the tag information from Mail.app rules.

Unix compatibility

  • CarbonEmacs If you’re an Emacs users, you need this. If you’re not, I’m not going to try and convince you. This is updated monthly and works great.
  • XQuartz You’ll need this to run some Linux apps. If you need X support this is what you want.  This is the most up to date version of X
  • SubVersion Subversion is a version control system in the spirit of CVS that provides atomic commits and versioning of file/directory renames and moves. It is based on WebDAV and can leverage the Apache 2 authentication mechanisms when built as an Apache module (it can also run a standalone server). I’m getting the precompiled versions that come with SVK (see next entry). You can get just the Subversion build too.
  • Git  Git is available on OS X, and works great.
  • GitX GitX is a reasonably nice OS X GUI for Git.
  • Mercurial There are prebuilt Mercurial binaries for OS X.  You want them.
  • Murky Murky is a nice native OS X GUI for Mercurial
  • Zsh zsh is the power user’s interactive shell. It has incredibly powerful command (programmable) and file completion, and a host of other features that I can’t even begin to describe. You can look at my blog for zsh related posts.

Long ago I used Fink, a packaging system for OS X.  It turned out to be more trouble than it was worth, and in some cases, like with Python, you ended up with duplicated programs on the system.  MacPorts didn’t appear to be much better, so for the last few years I’ve just been downloading tarballs, manually compiling and installing into /usr/local.   Homebrew is a new packaging system that seems to have less of the problems of the older systems, but I haven’t ventured there yet.

Self Expression/Customization

Screensavers

I used to use a bunch of different screensavers, but since I started taking pictures, I just put a bunch of my best photos in a folder and let the screensaver cycle through those.

Tips and Info

Command Line interface to the Address Book
I don’t make any apologies about being a shell guy, so I like to have command line tools for as much as possible. contacts lets you access the Mac OS X Address Book from the command line. I rebuilt this from source for Intel Mac.
say
One of the nice things about Mac OS X is that you have easy access to speech synthesis. This is useful for all kinds of notifications. Many of the Mac applications can take advantage of this. The say command lets shell scripts (and any program that can exec other programs) have access to the speech syntesizer as well. man say for the details. I use say at the end of long running commands to let me know that the run has finished.
Command line power manager
The built in command pmset lets you display and modify the power management settings.
Controlling NVRAM settings
The nvram command lets you modify the Open Firmware Non-Volatile RAM settings. I used this to make my boot sequence more UNIX like (console w/ scrolling UNIX stuff) by doing sudo nvram boot-args="-v"
Dealing with the Clipboard from the command line
Thanks to Wilhelm Fitzpatrick for this one. You can use the commands pbcopy and pbpaste to manipulate the clipboard from the shell or a shell script.
Manipulating services
The /sbin/service command will let you enable and disable services from the command line
What should I set JAVA_HOME to?
Apple’s Java is a different place that non Mac Java developers will have a hard time finding. Set JAVA_HOME=/Library/Java/Home
CUPS tricks
Mac OS X uses CUPS to manage printing. You can get to the CUPS control panel via http://127.0.0.1:631/. I have a duplexing HP LaserJet 2726nf. In order to get lpr to do duplexing, I had to do lpoptions -p <printer-name> -o sides=two-sided-long-edge. In order to get lpr to recognize the name of the printer (it’s connected over Ethernet via TCP/IP), I had to muck with entries in /etc/cups/printers.conf and I had to copy/rename ppds i /etc/cups/ppd. It was no fun, but it works.
Repairing disk permissions from the shell
To repair disk permissions from the shell use: sudo diskutil repairPermissions /
Automatically loading ~/Library/Java/Extensions
Mac OS X automatically loads jars from the directory ~/Library/Java/Extensions. Whether this is a good thing or a bad thing is up for debate.
~/Applications
This one is a personal preference. I’ve installed most of my applications to a ~/Applications directory instead of /Applications.
readline support for Apple Python
Due to a conflict with readline’s licensing under the GPL, the Python 2.6 shipped on Snow Leopard is missing readline support, which you just plain need in the interactive interpreter. This blog post shows how to get it installed.
Lookup Carbon Error codes from the command line
On Mac OS 7/8 there was a nice desk accessory that let you look up various Macintosh error codes. This MacOSXHints article describes a variety of ways to do this lookup from the Shell on Mac OS X. I ended up using the perl version at the end. If you know of an unobtrusive GUI version let me know.
Automounting SAMBA shares
I have a few Linux boxes lying around the house doing duty as webservers and so on. Because we used to be a Windows household, each of those servers exports directories as SAMBA shares. I’m not really interested in setting up NFS (although maybe I should — but then I’d probably want AFS or CODA), so I just want a way for those shares to get mounted when I log in or when the MacBook Pro wakes up. It turns out that this is harder than it ought to be. You can mount shares in the Finder via Applescript code that looks like this:

tell application "Finder"
    try
    	mount volume "smb://WORKGROUP;username:password@machine_name/directory"
    end try
end tell

Automounting of shares in /Network is controlled by NetInfo — you have to use the NetInfo Manager as described in this article. You need to supply a SAMBA url instead of an AFP url. You can also mount using a shell script.

#!/bin/bash
mount_smbfs //username:password@server1/home ./s1home

You also want to unmount them when you go away / lid close You can unmount non local volumes in Applescript like this:

tell application "Finder"
	eject (every disk whose local volume is false)
end tell
Running shell scripts at login and logout
Note that this is different from running the .profile or equivalent files, since they apply to shells started in Terminal, iTerm or the PathFinder terminal, etc. These scripts are executed when you login and logout of OS X. Mike Bombich, author of Carbon Copy Cloner (which I haven’t tried yet) has a pointer to doing it exclusively via the command line, or by using his free LoginWindow Manager program. This would be a good place to mount and unmount shares, etc.
Viewing any number of individual days in iCal
[Via macosxhints.com] Press Command-Option-{2,3,4,6} to view 2,3,4, or 6 days. Command-Option-5 shows the 5 day week and Command-Option-7 shows the 7 day week
Virtual Hosts and mod_rendezvous_apple
This article tells how to setup virtual hosts so that Apple’s mod_rendezvous will show each virtual host. Rendezvous access to websites is great for conferences and other ad-hoc in person networking situations, as well as mobile work groups. I wish that Firefox had this.
Quit Mac apps from the shell
Command line to quit applications. I’m using the nice zsh functions.
Easier command line Mac app launching
Shell script to make it easier to launch Mac apps from the command line
Tell Mail.app to send a message on a schedule
Andreas Amann’s Mail Scripts, a set of AppleScripts to make Mail.app do various cool things. The one I like the most is Schedule Delivery.
Getting to hidden folders in open/save dialogs
You need to know how to do this!
Using iChat to send SMS’s to a cell phone
The advantage of doing this is that the SMS reply goes to the iChat window, not your e-mail mbox
How to launch a GUI app as root
If you must, you must
Nicer separators for Safari Bookmarks
I’m using Safari a bit more
You can pipe the output of a shell command to “open -f” to get that output into TextEdit [via Macworld 10/2004 p. 87 ]
Some of this type of stuff can be done with Quicksilver
Turn on the Safari Debug Menu
There are a few useful items in the Debug menu – like import/export of bookmarks

Good Resources

  • Faisal Jawdat’s OSXHack mailing list.
  • Mac OS X Hints
  • Gibson Research’s ShieldsUP!
  • A web based port scanner that you can use to test how well your firewall is setup. You have to scroll down the page and click the link (it gets generated according to your IP address)