Modifier Key Symbols

HTML Symbol List

While writing news articles, I had to look up HTML symbols for modifier keys. Here is the full list.

Modifier keys

Character HTML code Description
↦ Tab (mapsto symbol)
^ ^ Control
⌘ Command (Apple)
⇑ Shift
↵ Enter (carriage return arrow)

Miscellaneous Keyboard Symbols

Character HTML code Description
& & Ampersand
> > Greater than
< &lt; Less than

All other keyboard symbols should render as entered.

Posted in HTML, Web Design | Tagged , | Comments Off

PyROOT with SciPy and NumPy on OS X

ROOT Installation

Introduction

The following instructions are for those trying to install ROOT on OS X 10.7 Lion with python bindings (PyROOT) and numpy, scipy, and matplotlib. For example, in a python script, one can import (a sample from one of my scripts)…

# Root imports
from ROOT import TH1F, TFile, THStack, TF1, TCanvas, TLegend
from ROOT import kRed, kBlue, kWhite
from ROOT import gStyle, gPad
# SciPy and Numpy
import scipy as sp
import numpy as np
import matplotlib as plt

Altogether, it’s a highly flexible environment for scientific computing.

Note: The below instructions are only valid if you have XCode installed (see my post on Mac Setup, Part 1)

Installing ROOT with Python Support

We will take the following route:

  1. Install an appropriate version of Python
  2. Install a fortran compiler (gfortran)
  3. Create a directory for our root installation
  4. Download the most recent version of the ROOT source and unpack in the install directory
  5. Set the envionrment variables required for installation
  6. Configure, make and install ROOT with python support
  7. Set remaining enviornmental variables
  8. Test and enjoy your new computing environment

Prerequisites

It is assumed that you have XCode installed. If not, please see my earlier post.

Python

One of the trickiest parts of the installation was finding a compatable version of python. There were three issues.

  • I couldn't find legacy installers for Python 2.6 in Lion (2.7 and 3.1 were available from the Python.org website).
  • The build type of Python and ROOT must be identical (both must be either 32 bit or 64 bit).
  • NumPy, SciPy, and matplotlib must be compatible with the installed Python version.

I wanted to compile and install a 64 bit ROOT installation. The 2.7 Python installer from Python.org installs both 32 and 64 bit versions of Python (e.g. python2.7 and python2.7-32). One can compile ROOT with Python support using the standard Python.org 2.7 distribution with minimal effort. Everything will work well, but you will not have access to numpy, scipy, and matplotlib. These packages must be installed separately.

Most of my problems arose because of scipy and numpy. Building numpy from source requires Python 2.4, 2.5, or 2.6, but not 2.7. The package installer for 2.7 is only for 32 bit Python. I was not able to find a compatible version of Scipy and Numpy from the Scipy.org web site that worked with my 64 bit tandem install of python 2.7 and ROOT.

Luckily, the Enthought Python Distribution (EPD) provided a 64bit, Python 2.7 framework install that included numpy and scipy. The EPD 64bit distribution is, however, only free for academics. EPD Free (free for anyone) is so far 32 bit only for Apple and Windows platforms.

The 64 bit EPD Framework install is located at /Library/Frameworks/EPD64.framework/Versions/7.1/. Both 32 and 64 bit EPD distributions can be concurrently installed. The 32 bit version is located at /Library/Frameworks/Python.framework/Versions/7.1/.

Fortran Compiler

Root requires a fortran compiler. This is neither provided by a stock install of 10.7 nor XCode. There are three sources for free Fortran compilers online, and they are all uncompatable. Install only one version. I have used the version provided by AT&T's R research page. Follow their instructions.

Download ROOT

Create a directory to store the ROOT installation binaries, libraries, and other files.

sudo mkdir /usr/local/root

Download the latest ROOT source code from their download page. For Lion, the latest development version, as of early September 2011, was the 5.30/01 patch. The professional version 5.30/00 compiled with problems. Recently, the production (Pro) version has been updated to 5.30/02 and I now recommend that version.

After your download, unpack the files in your ROOT directory, i.e.

gzip -dc root_<version>.source.tar.gz | tar -xf -

Environment Variables and other Pre-compilation Steps

Two types of installation are possible:

  • Location independent version: Installation in an arbitrary and movable location as pointed to by a set of environment variables.
  • Location dependent version: Installation in a fixed directory selected during configuration through the --prefix flag.

I chose the location independent version. Before configuring your installation through ./configure, set your environment variables. Because we are compiling with python support, you must point to the location of the python version you want married to ROOT. For me, this was the 64 bit Enthought distribution located at /Library/Frameworks/EPD64.framework/Versions/Current/.

The required environment variables needed for ./configure for a location independent install with python support are listed below. Please keep in mind that these are specific to my installation of Python and the location I wanted my ROOT distribution to reside.

export ROOTSYS=/usr/local/root/5.30.01
export PYTHONDIR=/Library/Frameworks/EPD64.framework/Versions/Current/

Configuration and Installation

From your ROOT folder, run the configuration script for your OS X 64 bit system.

./configure macosx64

Python support is included by default. After a successful configuration, compile through make

sudo make -j4

The -j4 flag indicates my system has four cores. Compilation will go much faster when you can simultaneously run four instances of your fortran or c compiler. There is no sudo make install. We have chosen a location independent install. Your binaries will be located under $ROOTSYS/bin. make install moves your files to a --prefix path specified in your ./configure. We did not specify such a path.

During my process of discovering how to install ROOT, I messed up my configuration several times. Even after a make clean I was getting errors like

No rule to make target `XrdOucFactoryBonjour.hh', needed by > > > `../../obj/XrdOucBonjour.o'. Stop.

on my next build. These errors were cleared by issuing

make distclean-xrootd
make all-xrootd

after my make clean and before ./configure macosx64.

Final Steps

Before running ROOT or important ROOT objects into python, you need to set a few more environment variables. From my .zshrc (instructions are identical for .bashrc),

# ROOT Data Analysis Framework
#export ROOTSYS=/usr/local/root/5.30.01
export ROOTSYS=/usr/local/root/current/
export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$ROOTSYS/lib:$DYLD_LIBRARY_PATH
export SHLIB_PATH=$ROOTSYS/lib:$SHLIB_PATH
export LIBPATH=$ROOTSYS/lib:$LIBPATH
export MANPATH=$ROOTSYS/man:$MANPATH

export PYTHONPATH=$ROOTSYS/bindings/pyroot:$PYTHONPATH
export PYTHONPATH=$ROOTSYS/lib:$PYTHONPATH

export PYTHONDIR=/Library/Frameworks/EPD64.framework/Versions/Current/

That should be it. ROOT can be run through the terminal

root

To test pyroot, launch the 64bit Enthought Python executable /Library/Frameworks/EPD64.framework/Versions/Current/bin/python (I've created a symbolic link to the binary called epython64 and placed the symbolic link in ~/bin) and import ROOT

➜  ~  epython64
Enthought Python Distribution -- www.enthought.com
Version: 7.1-2 (64-bit)

Python 2.7.2 |EPD 7.1-2 (64-bit)| (default, Jul 27 2011, 14:50:45) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "packages", "demo" or "enthought" for more information.
>>> import ROOT
>>> 

No errors are reported. The install was a success.

Posted in Computers, OS X, Python, Scientific Computing | Tagged , , , , , , , | Comments Off

ZSH on OS X

ZSH on OS X

These are the steps I followed for installing and customizing ZSH on 10.7 Lion.

Installation Instructions

Install a new version of zsh through MacPorts

OS X Lion comes with a newer version of zsh (4.3.11) in /bin, but if you want to maintain a current version, you can install it from MacPorts (or Fink or Homebrew depending on which package manager you prefer). The syntax is similar. For MacPorts,

sudo port install zsh-devel +mp_completion +examples +dec +pcre

MacPorts will install zsh in /opt/local/bin/zsh. Unfortunately, OS X will not recognize zsh as a login shell until /etc/shells is edited to include /opt/local/bin/zsh. My /etc/shells reads

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/opt/local/bin/zsh

/etc/shells is a protected file and can only be edited with admin or root privaleges.

sudo gvim /etc/shells

Alternatively,

sudo sh -c "echo '/opt/local/bin/zsh' >> /etc/shells

Change the default shell to zsh

Option 1 (preferred): In Terminal.app, execute

chsh -s /opt/local/bin/zsh

Option 2: You should also be able to make the change through System Preferences -> Users & Groups. Unlock the pane (lower left corner). Right click on your account and select “Advanced Options…” (note: if the pane is not unlocked, the contextual menu will not appear).

Your default shell can be changed from the opened dialog

These are the steps I followed for installing and customizing ZSH on 10.7 Lion.

Install ZSH Templates

There are two main template packages that can be added to zsh. These packages extend the default functionality of ZSH. Please see their documentation for further information. The packages:

  • Oh My Zsh: “A community supported framework for managing your ZSH installation.” Oh-my-zsh provides a growing collection of plugins and addons that enhance your zshell.
  • zsh-templates-osx: “A collection of files that help the user to customize the zsh shell for the Mac OS X operating system”

I originally tried using zsh-templates-osx. The instructions are simple: a custom /private/etc/zshrc and /private/etc/zshenv are downloaded and written with appropriate root permissions. These files are sourced with new login shells (see this article).

cd /private 
sudo svn co http://zsh-templates-osx.googlecode.com/svn/trunk/etc 

The template files are added to /Library/init/zsh.

cd /Library 
sudo svn co http://zsh-templates-osx.googlecode.com/svn/trunk/Library/init 

I had a few problem with the install, including problems with the order of my bin directories in $PATH (zsh-templates-osx sets variables through path_helper), environment variables, and the sourcing of etc/zshrc and etc/zshenv. I’m assuming that the error lies on my end. If you have an idea, please leave me a comment.

I settled on oh-my-zsh. Installation was also simple. Directly from their website:

Step 1: Clone the repository. Templates files are copied to a hidden directory ~/.oh-my-zsh in your $HOME directory.

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

Step 2: Backup your ~/.zshrc

cp .zshrc .zshrc_backup

Step 3: Copy their .zshrc to your $HOME.

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

Step 4: Add back any customizations from your original .zshrc (now .zshrc_backup) file back to their .zshrc.

Oh-my-zsh actives the wonderful tab-completion, history, and directory navigation features of ZSH by default. Any further changes to your user experience is straight forward: themes and additional plugins can be loaded through ~/.zshrc and further modifications can be added to .zsh files in ~/.oh-my-zsh/lib. To change your theme and add additional plugins, edit

ZSH_THEME="robbyrussell"

to change your theme. A list of current themes is maintained here. Additional plugins can be added. Edit plugins=(list of plugins) in ~/.zshrc.

plugins=(git osx macports)

A full list of plugins is maintained here.

Additional aliases and settings are placed into ~/.oh-my-zsh/lib as a group of files with .zsh suffixes. Any file with this suffix will be sourced. These files (for example aliases.zsh) can be freely edited.

Further additions to zshrc

Fortunately, oh-my-zsh turns on most of features a common user will need. Most of my additions were $PATH additions for ROOT, MacPorts and X11, required environment variables, and my dircolor settings (see below).

The only noteworthy additions are the automatic ls after a cd as suggested by a post on StackOverflow, and the ordering of my PATH variables.

# Path additions
# List items in the reverse order you want them to appear in $PATH (i.e. last
# items appear first ).
PATH=/usr/X11/bin:$PATH     # X11 Stuff
PATH=$ROOTSYS/bin:$PATH     # ROOT Data Analysis Framework
PATH=/opt/local/bin:$PATH   # MacPorts
PATH=/opt/local/sbin:$PATH  # MacPorts
PATH=/usr/local/bin:$PATH   # User binaries
PATH=$HOME/bin:$PATH        # Personal binaries

export PATH


# List directory contents after a 'cd'
function chpwd() {
    emulate -LR zsh
    ls
}

Add greater color customization through dircolors

Although oh-my-zsh provides a default color scheme, I prefer the greater customization provided by dircolors. dircolors is not included in the base 10.7 distribution. An integrated dircolors and ls must be installed. This combination is included an integrated component of of the GNU core utilities package (coreutils), a suite of basic file, shell, and text manipulation utilities (see GNU Operating System coreutils). coreutils can be installed through MacPorts.

Here's an overview of the procedure we will follow:

  1. Install coreutils through macports
  2. Create a custom .dir_colors file in your $HOME enumerating your color choices
  3. Ensure your $TERM type is included in .dir_colors
  4. Edit ~/.zshrc to evaluate dircolors when ls is called
  5. Alias your ls to include the --color flag.
  6. Adjust oh-my-zsh

First, install coreutils

sudo port install coreutils

Please install without the +with_default_names option. +with_default_names uses the regular names for new standard unix programs rather than prefacing them with a 'g', e.g. ls instead of gls. This is a problem if MacPorts is ever updated. Please see my post here.

After the installation of coreutils, create a ~/.dir_colors file.

touch ~/.dir_colors

I have included mine below, adapted and designed for text on a black terminal. Please make sure that your TERM is included in the .dir_colors header. To see your version of TERM:

echo $TERM

For my computer the result was xterm-256color. Your Terminal type can be changed in Terminal Preferences.

My ~/.dir_colors file


# DIRCOLOR file for the mac.
# Designed for a text on black terminal.

# Below, there should be one TERM entry for each terminal
# type that can be colored.
TERM linux
TERM linux-c
TERM mach-color
TERM console
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM dtterm
TERM xterm
TERM xterm-color
TERM xterm-256color # Default for OS X 10.7
TERM xterm-debian
TERM rxvt
TERM screen
TERM screen-bce
TERM putty
TERM screen-w
TERM vt100
TERM Eterm

COLOR yes

# Below are the color init strings for the basic file types. 
# A color init string consists of one or more of the following
# numeric codes:
# 
# Attribute codes:
#     00=none 01=bold 04=underscore 05=blink 07=reverse
#     08=concealed
# Text color codes:
#     30=black 31=red 32=green 33=yellow 34=blue 35=magenta
#     36=cyan 37=white
# Background color codes:
#     40=black 41=red 42=green 43=yellow 44=blue 45=magenta 
#     46=cyan 47=white

NORMAL 00	    # Global default
FILE 00		    # Normal file
DIR 04;40;33        # Directory (DEFAULT: 01;34 - CHANGED S.M.)
LINK 01;36	    # Symbolic link.
FIFO 40;33	    # Pipe
SOCK 01;35	    # Socket
DOOR 01;35	    # Door
BLK 40;33;01	    # Block device driver
CHR 40;33;01	    # Character device driver
ORPHAN 40;31;01     # Symlink to nonexistent file

# This is for files with execute permission:
EXEC 01;32

# List any file extensions like '.gz' or '.tar' that you would
# like ls to colorize below. Put the extension, a space, and
# the color init string (and any comments you want to add after 
# a '#').



# USER DEFINED

# Archive files
.tar 01;31 # archives or compressed (bright red)
.tgz 01;31
.tar.gz 01;31
.arj 01;31
.taz 01;31
.lzh 01;31
.zip 01;31
.z   01;31
.Z   01;31
.gz  01;31
.bz2 01;31
.deb 01;31
.rpm 01;31
.jar 01;31

# Images and video
.fig 01;35
.jpg 01;35
.jpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.pgm 01;35
.ppm 01;35
.tga 01;35
.xbm 01;35
.xpm 01;35
.tif 01;35
.tiff 01;35
.png 01;35
.mov 01;35
.mpg 01;35
.mpeg 01;35
.avi 01;35
.fli 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35

# Audio
.ogg 01;35
.mp3 01;35
.wav 01;35
.aac 01;35


# Programming
*Makefile 01;33
.C   01;33
.cpp 01;33
.cc  01;33
.c   01;33
.for 01;33
.h   01;33
.tcl 01;33
.py  01;33
.sh  01;33
.o   33
.so  33

# Documents
*README 01;37;41
*Readme 01;37;41
*readme 01;37;41
.tex 01;37;40
.dvi 01;37;40
.ppt 01;37;40
.pptx 01;37;40
.doc 01;37;40
.docx 01;37;40
.xls 01;37;40
.xlsx 01;37;40
.ps  01;37;40
.eps 01;37;40
.pdf 01;37;40
.txt 01;37;40
.htm 01;37;40
.xml 01;37;40
.pot 01;37;40
.nb  01;37;40

# Spectra (physics stuff)
.spe 32
.spn 32
.sec 32
.asc 32
.mat 32
.spc 32
.Spc 32
.root 32
.gf2 32
.gf3 32

# Data
.dat 01;04;35
.evt 01;04;35
.bin 01;04;35

# Temporary files
*~ 36
.bak 36
.tmp 36
*# 36

Add the following lines to your ~/.zshrc to ensure that dircolors runs when ls or any ls variant is called.

# Color listing
eval $(dircolors ~/.dir_colors)
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"

ls must be called with the --color flag. Modify the ls aliases in ~/.oh-my-zsh/lib/aliases.zsh.

# List direcory contents
export LS_OPTIONS='--color'
alias l='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -lh'
alias lll='ls $LS_OPTIONS -alh'
alias sl='ls $LS_OPTIONS' # often screw this up

Lastly, ~/.oh-my-zsh/lib/theme-and-appearance.zsh needs modified so ls is not called with the -G flag. Change alias ls='ls -G' to alias ls='ls --color, i.e.

# Enable ls colors
# Edited - S.M. Changed ls -G -> ls --color. Requires dircolor to be valid.
if [ "$DISABLE_LS_COLORS" != "true" ]
then
  # Find the option for using colors in ls, depending on the version: Linux or BSD
  ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls --color'
fi

Conclusions

That should be all! Questions and comments can be addressed below.

Posted in Computers, OS X, ZSH | Tagged , , , | Comments Off

New Mac Setup, Part 1

New Mac Setup, Part 1

I had to setup a new OS X system from scratch. The last time I did so was over a half-decade ago with my old laptop, and I’ve forgotten most of my global and software settings. Below are my notes associated with the new machine, including a description of problems I faced in my upgrade from Snow Leopard to Lion.

I’ve separated my content into two entries because of length. The first will cover software. The second will cover tweaks.

Technical Software

Most software on this list is free. A few installs are covered in additional details below this list.

  1. XCode (free): Apple integrated development environment for the OS X platform. Contains all the tools necessary for creating and compiling Mac applications. Many of the below installs (e.g. MacPorts) are dependent on the development tools provided in XCode (as of 11 Sept. 2011, version 4.1). XCode can be downloaded from Apple’s App Store for free (search for XCode). Installation notes: Even though the App Store says XCode is installed, it is not. Search for XCode Installer in spotlight and run the installation program. People have had problems with the installation if iTunes is running. If you’re having problems, check Activity Monitor (Applications → Utilities → Activity Monitor) for open processes affiliated with iTunes.
  2. MacPorts (free): Package manager. Install open-source, command-line or X11, software on your Mac. Similar package managers are available—see, for example, Fink and Homebrew—and all three programs work similarly. Any instructions specific to MacPorts (e.g. sudo install) can be easily extended to Fink or Homebrew. The differences between the three package managers are outlined in a blog post by Ted Wise. There are several GUI wrappers for MacPorts for those that prefer graphics over a command-line interface, but I haven’t used them. Note that the installation of MacPorts, and likely all of the mentioned package managers, require the installation of the latest version of XCode. Installation notes: See MacPorts update notes after this list. Please select a single package manager. The simultaneous use of several (e.g. Fink and MacPorts) can cause problems.
  3. Enthought python distribution (EPD) (free for academics): Contains python 2.5, 2.6, and 2.7 plus a complete set of scientific tools including, SciPy, NumPy, and Matplotlib. Python 3.x is not included. The academic version is free. 32bit and 64bit packages are available (although the 64bit build doesn’t include the full set of utilities). Installing the Enthought Suite is much easier than compiling the components individually. Installation: Like the official python distributions available from python.org, EPD installs as a Framework in /Library/Frameworks/Python.framework/Versions.
  4. MacVim (free): My favorite editor. MacVim is the native vim client for Mac OS X. If you prefer Emacs, try Carbon Emacs. Although MacVim will work after an upgrade to Lion, the 10.6 version (version 7.3, rev. 53) is buggy (problems opening multiple tabs, problems with saving files, etc.). A fresh Application install (version 7.3, rev. 61) will fix the problem and provide native Lion features like full screen.
  5. MacFuse (free)+ MacFusion (free): MacFuse allows you to mount 3rd-party file systems on OS X. MacFusion is the 3rd party SSH file system and GUI interface for MacFuse that allows you to view and edit remote files over an SSH connection as if they were on your own computer. The standard installation of MacFuse does not work correctly on a 64 bit Snow Leopard installation. I instead used the an unofficial distribution noted here. These two programs remain untested on Lion after my upgrade.
  6. R (and R64) (free): Well-respected, free, statistical software.
  7. MacTex LaTex Distribution (free): A complete and full LaTex distribution for OS X.
  8. JabRef (free): Manage your bibliography and citations. Works particularly well with LaTex documents.
  9. Mathematica ($$, discounts for students): Mathematics software. Great for symbolic calculations. Octave is a free alternative, but I do not have experience with the program.
  10. ROOT (free): A data analysis framework largely used in high-energy and nuclear physics.
  11. X Quartz (free): From their website: The XQuartz project is an open-source effort to develop a version of the X.org X Window System that runs on Mac OS X. Together with supporting libraries and applications, it forms the X11.app that Apple has shipped with OS X since version 10.5. XQuartz is, in general, a more up-to-date and bug-free version of Apple’s own X11. An new XQuartz install is recommended for building MacPort packages (e.g. Wine).

MacPorts Upgrade

If you bought your computer with 10.7 installed, you can ignore the text below. The following information only applies to people like me who installed MacPorts before an upgrade to 10.7. Any operating system upgrade will likely break your MacPorts installation.

Download the latest version from MacPorts, mount the dmg, and run the installer. MacPorts requires the latest version of XCode, as installed from the App Store.

After a new installation of MacPorts, try and update old packages

sudo port upgrade outdated

This upgrade process will likely fail. If so, you need to go through the processes of uninstalling and re-installing packages. The upgrade processes is outlined in the MacPorts Wiki and consists of the following steps (taken directly from their site).

  1. To remember which ports you have installed, save a list to file.
  2. Delete all installed ports
  3. Clean up partial builds
  4. Reinstall all packages you from from your installed ports file

The associated commands for these four steps are

port -qv installed > myoutputfile.txt
sudo port -fp uninstall --follow-dependents installed
sudo port clean all
sudo port install portname +variant1 +variant2 …

+variant1, +variant2, etc. are the additional flags that can be passed to a package for additional functionality. For my zshell installation, for example

sudo port instal zsh-devel +mp_completion +dec +examples

For me, the process of migrating MacPorts was particularly frustrating. I installed coreutils with the +with_default_names variant. Coreutils usually installs its utilities with a ‘g’ prefix, i.e. ls becomes gls. +with_default_names removes the ‘g’ prefex. When I uninstalled all packages, /usr/local/bin was left with many of the essential and now broken coreutils programs like ls. I couldn’t figure out why my sudo port installations were failing. The problem: the uninstaller removed all the linked libraries for the core utilities, but did not remove the main binaries. A full suite of common unix utilities, which where overwriting the standard distribution utilities in /bin and /usr/bin because of the preference of /usr/local/bin in $PATH, were broken. MacPorts was trying to use broken Unix utilities to compile new software.

The lesson: After completing your MacPorts uninstall, check /usr/local for any orphaned packages beyond the standard port* binaries and remove them. When reinstalling coreutils, run the command without variants

sudo port install coreutils

The g-prefix utilities can be symlinked to their regular names.

for f in g*; do sudo ln -s $f ${f:1}; done

MacPorts Installs

A list of programs I’ve installed through MacPorts

  1. coreutils: From the gnu.org web page: “the basic file, shell and text manipulation utilities of the GNU operating system.” A coreutils install was required for a new dircolors and ls. Dircolors and GNU ls can be combined to provide extremely flexible color highlighting in bash and zsh shell environments.
  2. Exhuberent Ctags: Automatically tag source files for use by Vim, Emacs, and other editors. Permits quick access to file components (function definitions, classes, variables, etc.)
  3. ZShell: The zsh shell, a powerful alternative to bash.
  4. Wine: Run windows programs in OS X. Works great for small executables, less so for games. Wine is a large, complicated program. The MacPorts install will take a while and will install many, many dependencies.
  5. Gimp: Sophisticated Graphics editor. Free alternative to Adobe’s Photoshop. The build process took nearly three hours on a new MacBook Pro.

The corresponding MacPort commands

sudo port install coreutils
sudo port install ctags
sudo port install zsh-devel +mp_completion +examples +dec +pcre
sudo port install wine
sudo port install gimp-devel

ZSH Installation

My ZSH installation is addressed in a separate post.

Python Installation

Multiple python distributions can be installed simultaneously.

OS X provides python out of the box (installed in /usr/bin/python)—just execute python from the command line—but its recommended that one install a new Framework version (either 2.7 or 3.1) from Python.org. If you need computational or visualization packages, consider installing the Enthought Python Distribution (EPD), which bundles numpy, scipy, matplotlib, wxPython and other packages into an easy installer.

ROOT installation

Installation of ROOT is addressed in a separated post.

Productivity

Most applications on this list are free.

  1. Firefox (free): Browser of choice because of the numerous, high-quality extensions available, the ability to tag bookmarks, and keyword searching. Chrome, Opera, and Safari (Apple’s default browser) are also available for the Mac platform. Safari and Chrome are both native Mac applications—they support trackpad gestures, full screen mode, and all other expected OS X goodies—and therefore they may migrate to my top choice if they fold in Firefox’s additional functionality. Unfortunately, I still haven’t found an easy way to syncronize bookmarks across browsers and platforms. XMarks still does not work properly for Chrome on OS X.
  2. Quicksilver (free): Application launcher and much more. I use quicksilver to launch programs, perform quick calculations, and assign keyboard commands to common actions (e.g. open a Terminal and cd to the folder selected in Finder).
  3. Growl + GrowlMail (both free): Notification system for OS X. Presents useful and relevant information subtly without stealing focus from your work flow. Examples include snippets of incoming mail messages (with Growl Mail), the completion of uploads and downloads (through Transmit or Firefox, for example), and Twitter updates. A list of supported applications is listed on Growl’s website by category. A version for Lion will be released soon and distributed through the App Store application, but on my system the older version for Snow Leopard works well. Update: I just noticed that GrowlMail is no longer actively developed by the Growl team so that they can focus on their flagship product. The project has been moved to Google Code.
  4. Skim (free): PDF reader. Better than Preview for reading scientific papers. My recommendation comes with a warning. Skim does not save its markup information in the pdf data; the markup is instead saved as extended attributes. Although other Skim users can see your markup, those using other readers cannot. To include the markup with the pdf data, choose File → Export... and select “PDF with embedded notes.”
  5. VLC Media Player (free): Free, open source media player. Supports most file formats. Browser plugsins are available.
  6. Transmit ($$): FTP, SFTP, and WebDAV client. Beyond the standard upload and download capabilities of any FTP and SFTP client, Transmit now allows one to mount disks to the Finder over SFTP (similar to MacFuse and MacFusion) and can synchronize local and remote directories.
  7. Skype: Video conferencing and chat. Allows for screen sharing.
  8. Google+ Hangouts: Video conferencing and chat. Handles multiple (group) chat very well. Google Hangouts requires a Google+ account and a browser plugin. For OS X, the plugin hangs with Firefox. Use of Google Chrome is recommended.
  9. Dropbox (free with limited storage): Online storage. Dropbox creates a folder that is automatically synced with the cloud (~/Dropbox/). Files uploaded to the cloud can either be accessed through a browser, or by another computer with Dropbox installed.
  10. IStatPro (free): Monitor system attributes (temperatures, disk storage, memory usage, CPU usage, etc.) using this Dashboard widget.
  11. 1Password ($$): Password manager. Manages all account passwords for both programs and online sites (e.g. Facebook, Gmail, etc.). Because 1Password manages all passwords, and eliminates password memorization, the user can create custom and unique passwords for different logins, increasing online security.
  12. TrashMe ($$): Remove OS X applications. Applications are usually removed by dragging the application (in /Applications/) to the trash. Doing so usually leaves orphan files in /Library/, ~/Library/ and other locations that are secretly installed when the application was originally drug into /Applications. This method of dragging the application to the trash allows the application to be reinstalled without losing user data, but if you want the application completely removed, and you aren’t confortable chasing the list of folders where the application has imprinted itself, than a program like TrashMe is recommended.

Fun

  1. Spotify (free): Spotify music service. Play most, Western, major label songs on demand (with exceptions, e.g. the Beatles). Unlike Pandora, Spotify allows you to select the individual songs you want to listen to. Spotify is supported by ads, but with a monthly subscription, you can upgrade to service without ads and with a higher streaming bitrate.
  2. Reeder ($$): RSS reader.
Posted in Computers, OS X, Python, Scientific Computing, ZSH | Tagged , , , , , | Comments Off

A study of complementary reactions: single-proton pickup and single-proton knockout

A study of complementary reactions: single-proton pickup and single-proton knockout

Update (2 Sep. 2011): The download of my thesis is now password protected. If you want a copy, please contact me and I’ll send you the password.

I’ve uploaded information on my doctoral thesis, including a complete abstract.

My thesis has been submitted to ProQuest for publication (IP limited and subscription based). Michigan State University requests that ProQuest converts all submitted theses to microfiche format (arghhh!) and the entire processes takes four to five weeks. A link and citation will be provided when available.

For those looking for a sensible pdf copy: download (right click and save as…). The file is 20.5 MB in size. I have purchased and reserved the copyright in my name. Although the file is currently available for anyone to download, access restrictions may be installed in the future. Enjoy!

I have also updated the pdf copy of my resume. It now agrees with the posted version. For those who downloaded an older version, please also note that my current address has changed.

Posted in NSCL, Nuclear Physics, Science | Tagged , , , , | Comments Off

Publications updated

Publications updated

I added a publications page under ‘Resume and CV‘, and updated my CV to reflect new articles in press.

Posted in Curriculum Vitae, Employment, Website | Tagged , , , , | Comments Off

Science page created

Science page created

I have added information about my work at the NSCL and my thesis project, “A study of complementary reactions: single-proton knockout and single-proton pickup.” I have now pointed my old websites, hosted by the MSU physics and astronomy department and the NSCL to automatically redirect to this domain.

Posted in Science, Website | Tagged , , | Comments Off

Resume and CV added

Resume and CV added

I have uploaded my resume and CV. They are posted in both HTML and PDF form. If you are interested in additional details, you can contact me.

Posted in Curriculum Vitae, Employment, Resume, Website | Tagged , , , , | Comments Off

Website created

Website created

Initial creation of the personal website of Sean M. McDaniel. Please bear with me as I upload and update content.

Posted in Website | Tagged , | Comments Off