Archive for November, 2008

TaskPaper is All Sorts of Awesomeness.

I finally got around to trying out TaskPaper (one of the apps I got from MacHeist a while ago), and it’s a brilliant and simple todo app.

You enter something like this:

Inbox:
- Put camera in car
- Put pizza stone in car
Groceries:
- Milk
- Eggs
- Pizza toppings
Yard work:
- Rake leaves
- Put away hose @done
- Clean up garden @done

And you get a GUI treatment that looks like this:

It’s one of my must-have applications now.

Accessing git over ssh on a non-standard port

Simple ssh access to a git repo can be sufficient for a small dev team–but what if you’re using a non-standard ssh port?

The solution–do as Linus says. Use ~/.ssh/config.

My config now looks like this:

Host my.servername.org
  Port 1234

Remember that ~/.ssh needs to be 700 (read/write/execute for only the owner), and the files inside are all 600:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*

Importing a local CVS repository into git on ubuntu

Every post I found in the googles referenced pserver (CVS’s clear-text socket-server protocol) when importing a CVS repository. Until I found this. Huzzah.

So I wanted to import a local CVS repository — something sitting in /home/cvs, and setting CVSROOT didn’t work. The secret is

  • to not set the CVSROOT environment variable,
  • to use the “:local:” cvs protocol
  • to realize that the current working directory will be the destination directory for the new git repo.

This is the magick incantation (again, assuming that your CVSROOT lives in /home/cvs, and your cvs module to import is called “photostructure“):

mkdir ~/photostructure.git ; cd ~/photostructure.git
git-cvsimport -v -d :local:/home/cvs photostructure

Installing git with MacPorts

The Good: MacPorts makes git, the new source version control system hotness, available to Mac users.

The Bad: MacPorts sometimes has attitude, and poops out trying to compile or install packages.

The Ugly: MacPorts doesn’t tell you how to fix it.

So here was what I saw:

mrm@whack:~$ port search git
cogito     devel/cogito   0.18.2   Git core and cogito tools to provide a fully-distributed SCM
git-core   devel/git-core 1.6.0.4  A fast version control system
qgit       devel/qgit     2.2      A graphical interface to git repositories
stgit      devel/stgit    0.14.3   Push/pop utility on top of GIT
cgit       www/cgit       0.8      A fast web interface for the git source code management system

Great. I’ll install git-core. What additional goodies are there?

mrm@whack:~$ port info git-core
git-core 1.6.0.4, devel/git-core (Variants: universal, doc, gitweb, svn, bash_completion)

http://git.or.cz/

Git is a fast, scalable, distributed open source version control system focusing on speed and efficiency.

Library Dependencies: curl, zlib, openssl, expat, libiconv
Runtime Dependencies: rsync, perl5.8, p5-error
Platforms: darwin
Maintainers: bryan@larsen.st maccheck@gmail.com openmaintainer@macports.org

OK, so I want svn and doc and bash_completion extras:

mrm@whack:~$ sudo port install git-core +svn +doc +bash_completion +gitweb
...
Error: Target org.macports.fetch returned: fetch failed
Error: The following dependencies failed to build: p5-svn-simple subversion-perlbindings subversion p5-term-readkey rsync popt
Error: Status 1 encountered during processing.

So we’re now at the bad and ugly. When ports cops attitude, run these two commands:

sudo port selfupdate
sudo port upgrade outdated

and wait. If there are any failures, look at the package that failed, and restart the installation of that package. Once that’s completed, re-do the original port install git ... command.

So Many Toys, So Little Time

Tonight’s been one of those daunting “where have I been OMG OMG” nights on the tubes.

  • NFS? Ha! That’s OLD SKOOL. Sun’s got lustre, a free, open-source SAN with no single point of failure. Ubuntu Hardy’s got a lustre kernel patch. I’ll see how easy it is to apply. It sure looks nifty.
  • Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API.
  • HAProxy
  • Enterprise messaging systems to simple for you? You obviously haven’t adopted ESB.
  • OSGi is already in Spring and Guice, and I’ve seen the jar, but it warrants more research. Hot-pluggable modules would be slick for hot-patching daemons.
  • Take the leap from svn to git? Github, are you the answer? But what about UI support on Mac? Ah. Looks like there’s git4idea. Neat.
  • Google Code University. Woah.

Make OpenOffice the default “.doc” and “.xls” application on Mac OS X

OpenOffice 3.0 is now out for the Mac. Finder opens files that end in “.doc” with TextEdit by default, and “Open with…” doesn’t seem to stick. What to do?

  1. In the finder, find a file that ends in “.doc”,
  2. Click once to select it
  3. Choose File > Get Info...
  4. Find the “Open with:” section, and click the triangle to show the contents of that section.
  5. Choose OpenOffice
  6. Click “Change All…”

You’ll probably want to do this with .ppt, .xls, and .csv, too.

It was an odd choice to put the system-default web browser in a Safari preference pane and make other file types second-class citizens. Why not be consistent and make a System Preference pane for default applications?