Switching to OSX, productivity and development tools

Posted by tibbetts Mon, 26 Mar 2007 00:11:02 GMT

Two weeks ago I got a new laptop from work. After extensive hemming and hawing, I went with an Apple MacBook (the black one, cause it looks hotter^Wmore professional). Previous to this I had been running Ubuntu on a Thinkpad T40 bought around the founding of StreamBase. My goal for the change was to have a laptop that would "just work", and to stop having to administer my personal machine. I was last on a Mac when I was in grad school.
As far as that goal goes, I think the switch has been a rousing success. In non-development activities (eg, web, email, calendar, documents) it has been a significant improvement. The tools I'm finding myself using include:

  • Firefox - Safari just isn't good enough, and on the Intel processor Firefox is plenty fast
  • Terminal.app - In preference to X11.app and xterm, because it is better integrated with everything else
  • Mail.app (aka Apple Mail) - Because as part of the switch I'm going to stop hacking my mail client and see how the other 90% of the population lives. Thus far, using a less featureful mail client has been a success for spending less time with email thanks to unsubscribing from things.
  • Adium - This is the best graphical IM client I've ever seen.
  • iCal - The Apple calendaring tool is adequate, though I think I may end up switching to something with Exchange support, as work moves in that direction.
  • iTunes - Of course, this is a huge improvement over anything on Linux, particularly for synching with my iPod.
  • Microsoft Office - I'd considered other alternatives, but the MacBook came with office preinstalled, and once I had it easily available (instead of in VMware) I couldn't say no.
  • NetNewsWire Lite - A feed reader that is much better than bloglines. I haven't done much with the NewsGator integration, which might be interesting. And I haven't seen a reason to buy the non-lite version.
  • OmniGraffle - This is the best diagramming program I've ever used. Vastly better than anything on Linux, and much better than Visio.
  • Parallels Desktop - Much nicer than VMware workstation on Linux. Well polished, and the Coherence feature is pretty hot.
  • Desktop Manager - Free tool to implement virtual desktops. Does everything I want in this space.
  • Quicksilver - This is basically a graphical commandl ine for the mac, accessible from anywhere. It's very nice. Like screen, you have to try it to learn how much it will change your life.
  • Visor - This is a cute hack that makes a Terminal only a keystroke away at any time. It's a good complement to Quicksilver.
  • MailActOn - This is a little tool that lets you define keybindings in Mail.app, mostly to refile mail into folders with a few keystrokes.
  • TextMate - This is trying to replace emacs in my life. It's a more mac-oriented text editor, with a pretty good feature set and good support for my emacs finger macros. But I may end up going back to emacs.
  • Ecto - This is my latest addition. It's a blogging client that I'm using to write this post. I'm not sure I'm in love with it enough to pay for it, though it is a bit nicer than Performancing, the Firefox plugin I had been using.

That's about it for productivity tools. On development tools, I haven't had to install very much:

  • Apple developer tools - This comes on the standard install media, and gets you gcc, autoconf, and all the other things you would expect.
  • SSH Agent - This is a version of the standard ssh-agent which integrates with the account management on OSX, so that you can use the agent from any application/shell in your login.
  • SVK and Subversion - These are special builds for OSX, they seem to work well.
  • Eclipse - Standard Eclipse is available for OSX
  • MacPorts - This is a package system for getting various free tools. I currently only use it to get Cocoa Emacs.

So, that's the enumeration of tools that I am using. Hopefully this is helpful to people. I may follow up on this with other posts about my experiences on OSX.
I will also shortly make a non-tools post.

Posted in Tools | 2 comments

Making offlineimap not die

Posted by tibbetts Fri, 20 Jan 2006 17:29:48 GMT

I love offlineimap. I even love the quirky way it is hosted on a gopher site. The functionality is awesome. For those of you who don't know, offlineimap syncronizes a remote IMAP mailbox heirarchy with a local Maildir folder heirarchy. This means you get disconnected IMAP operation with all your favorite Maildir clients (like mutt), while still retaining the ability to access your mail using other IMAP clients.

However, offlineimap crashes too often. Every couple of days I will fail to get any new mail for an hour or two, and realize that offlineimap has crashed. And due to Murphy's law this generally correlates with a time when I was recieving some important mail.

The solution is very simple. I am using zenity, a command line tool for displaying dialog boxes, and running offline imap in a loop. Every time it dies, I get a pop-up dialog, and can say OK to restart it, or Cancel to end the loop. The little shell script to do this is as follows:

#!/bin/sh

/usr/bin/offlineimap -u TTY.TTYUI;

while zenity --question --text "Offlineimap died. Restart?"; do

/usr/bin/offlineimap -u TTY.TTYUI;

done

Posted in Tools | no comments | no trackbacks

Switched my laptop to Ubuntu

Posted by tibbetts Fri, 20 Jan 2006 01:21:00 GMT

I switched to running Ubuntu on my Thinkpad. I'm very pleased with the experience. The install was painless, and everything thus far has just worked. It really feels like linux is maturing on the desktop.

I've also installed a shiny new tool, Gnome Blog. It's a panel applet that makes it easy to enter blog posts. It sits on the panel and remembers the blog post you were in the middle of, so you can always stop and come back to it later.

It is generally good, but there are a couple of downsides that are coming to mind at the moment:

* No good way to do bulleted lists or other more complete formatting.

* No support for tags/categories/etc.

* Link input method isn't the easiest.

Really I think I would rather input the post in Restructured Text or something. I should look into other posting tools. Something command line or emacs based might be ideal.

Posted in Tools | no comments | no trackbacks

This is a test of the gnome-blog client

Posted by tibbetts Fri, 20 Jan 2006 01:01:46 GMT

I'm just testing the gnome-blog client.

Posted in Tools | no comments | no trackbacks

Subversion greater than CVS

Posted by tibbetts Sun, 29 May 2005 15:20:00 GMT

I recently finished upgrading Typo (the software that runs Nothing To See Here) from 1.6.8 to 2.0.x, and at the same time moved my local changes into Subversion. Subversion is a definite improvement over CVS. Being able to rearrange my repository (I did this twice before I was happy with it) was really nice. Once I was used to it, I gained the ability to just add things anywhere I want and figure I could sort them out later. The write-once nature of the directory structure in CVS had always created a lot of anxiety whenever I was starting a project. I think I will shortly be transitioning all of my personal projects to Subversion. All the cool kids are doing it. Of course, if I was a really cool kid I'd be using SVK, but I think I'm not cool enough for that yet.

Posted in Tools, Software Development | no comments | no trackbacks

Setting up Typo: RubyOnRails, lighttpd, FastCGI and being a bad sysadmin

Posted by tibbetts Fri, 15 Apr 2005 13:10:00 GMT

I took most of my evening last night to set up FastCGI and lighttpd. My goal was to serve a Typo, a blog engine based on RubyOnRails. I was thwarted by not knowing RubyOnRails very well, and by knowing FastCGI and lighttpd not at all. The first issue was that Typo doesn't like to run in a subdirectory on a webserver. That is, it wanted to be at ntsh.innocuous.org/, not innocuous.org/ntsh. This offended my sensibilities somewhat, so I decided to beat it into submisssion. This involved tracking down a bunch of places where paths were hard coded, which included a few places in the templates and the CSS. The second issue was that FastCGI on lighttpd seems to have been designed for php. You can easily tell it to delegate *.php to FastCGI. You can tell it to delegate /ntsh/* to FastCGI, but that has the problem that /ntsh/stylesheets/base.css doesn't work, because the RubyOnRails dispatcher doesn't know how to serve static pages. You also have the problem, and this is the showstopper, that for some reason the AbstractRequest.request_url_base function helpfully strips off the directory of your request path when you use it this way. That is, it turns xml/rss/feed.xml intofeed.xml. As you might imagine, losing the xml/rss part confuses the cool new routing feature of Ruby on Rails. So this was unacceptable. I had to give up my delusions of configuring lighttpd in some clean way, and instead use the trick that a bunch of web pages recommended: server.error-handler-404. This configuration file setting tells the server to delegate 404 errors somewhere, and that somewhere can be the Typo dispatcher. Combined with the conditional configuration functionality of lighttpd, this is actually quite sufficient to get Typo up and running. But it still feels like a hack for some reason. The conclusion I'm coming to, as I've come to many times before, is that I'm a bad sysadmin. I expect to be able to bend software to my will, and make it work the way I want, which should be elegant and conform to my expectations. When doing sysadmin work, it is important to use the software you are given, the way someone else designed it to be used. But it always has to get to be 1am before I remember this principle. For anyone who is interested, here is the relevant chunk of lighttpd.conf:

$HTTP["host"] =~ "\.innocuous\.org$" {
    server.document-root = "/var/www/vhost/innocuous.org/pages"

    $HTTP["url"] =~ "^/ntsh/" {
        server.error-handler-404   = "/ntsh/dispatch.fcgi"
    }

    fastcgi.debug = 0
    fastcgi.server = ( 
                "/ntsh/dispatch.fcgi" =>
                    ( "ntsh" =>
                        (
                            "socket" => "/tmp/ntsh.socket",
                            "bin-path" =>
                              "/var/www/vhost/innocuous.org/ntsh/public/dispatch.fcgi",
                            "min-procs" => 1,
                            "max-procs" => 5,
                            "max-load-per-proc" => 4,
                            "idle-timeout" => 20,
                            "bin-environment" =>
                              ( "RAILS_ENV" => "production",
                                "RAILS_ROOT" => "/var/www/vhost/innocuous.org/ntsh"),
                            "check-local" => "disable"
                        )
                    )
        )
}

Posted in Tools | no comments | no trackbacks

BloGTK not so great

Posted by tibbetts Sun, 10 Apr 2005 15:50:13 GMT

I'm currently using BloGTK with Typo and am not all that happy with it. I'm not a big fan of GUIs. I should find something command line based.

Posted in Tools | no comments | no trackbacks

First Post

Posted by tibbetts Sun, 10 Apr 2005 15:48:28 GMT

I'm trying out Typo, web log software, and liking it. It uses Ruby On Rails, and seems to work quite well.

Posted in Tools, Web | no comments | no trackbacks