What to Install on a Macintosh Running OS X

Free software

  1. x-windows (install from the CDs included with Mac OS X)
  2. Apple developers toolkit programming tools (also on the Mac OS X CDs)
  3. aqua-emacs better version of emacs
  4. Galarie web gallery creation
  5. Discus cd label printer
  6. MPEG Streamclip demux and convert video files
  7. HandBreak DVD ripper and mp4 encoder
  8. Audacity audio editor
  9. LAME library needed for Audacity
  10. fink other Unix programs, such as LaTex
  11. open office has a better drawing tool than any in MS office
  12. Fetch (free for students/teachers) ftp client
  13. Stuffit Expander for those .sit files
  14. Palm desktop / hotsync conduit if you use a Palm
  15. Flip4Mac Quicktime Component to play Windows Media files
  16. MediaWrap Firefox plugin makes it possible to view (many) web pages that use ActiveX controls to display embedded video and other media (without actually running ActiveX). In particular, it solves the "application/x-oleobject" mime type problem.
  17. Unplug Firefox plugin helps with playing embedded media files that fail by other means
  18. Foxmarks keeps your bookmarks synchronized across machines
  19. Firefox download status bar

Commerical software

  1. Adobe Acrobat Professional
  2. Adobe Photoshop
  3. Audio Hijack Pro very handy program lets you record any audio being played back by any program, including timed recordings.
  4. iToner lets you turn any iTunes file into an iPhone ringtone!

Useful Information

Enable Hibernation (Safe Save)

When the lid to your MacBook is closed, to make it hibernate (save state on disk and power down completely) rather than sleep (which still consumes power), open a Terminal window and enter:

sudo pmset -a hibernatemode 1

Login Files

It is difficult to keep track of which login files are read when a shell is invoked from a terminal window, from within emacs, or by another process. I find it simpliest to put all login information in my .bashrc file and have all the other login files read it. The .bashrc files determines itself whether PATH and other environmental variables need to be set, and whether the shell is interactive. I also use a utility program named unique_path.

Here is a zip archive of my OS X environment: LoginOSX.tgz

Here are the files:

.profile

. ~/.bashrc 

.emacs_bash

tty -echo
alias man=m
. ~/.bashrc

~/bin/unique_path

#!/bin/bash
echo "$1" | tr  ':' "\n" | awk '{if ($0 in store) x=1; else print; store[$0]=1;}' | tr "\n" ':'

.bashrc

if [[ "$PATH" != */sw/* ]]; then 
    if [ -r /sw/bin/init.sh ]; then . /sw/bin/init.sh; fi
fi
 
if [[ "$PATH" != *$HOME/bin* ]]; then
    PATH="$HOME/bin:$PATH"
    PATH=$(unique_path "$PATH")
fi
if [[ "$-" == *i* ]]; then
   alias barb='ssh -Y barb.cs.washington.edu'
   alias rm='rm -i'
   alias clean='/bin/rm -f ?*~ .?*~ *junk* "#"*"#" core.*'
   alias mv='mv -i'
   alias cp='cp -i'
   alias ls='ls -F'
   alias v='ghostview'
   alias new='ls -lt | head'
   alias wget='wget -nd'
   alias wgetr='"wget" -r -l 2 -np'
   export PS1='\w % '
fi

~/bin/backup

#!/bin/bash 
shopt -s nullglob
shopt -s extglob
f="${1}"
f="${f%/}"
b=1
for g in v+([0-9])__"${f}"
do
   g="${g#v}"
   g="${g%%__*}"
   (( b = (g > b) ? g : b ))
done
(( b = b + 1 ))
echo Creating v${b}__"${f}"
cp -r "${f}" v${b}__"${f}"

~/bin/m

#!/bin/bash
man $* | cat