From charlesreid1

(Created page with "Welcome to the Programs category page. This page links to any pages related to computer programs or pieces of software.")
 
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
Welcome to the Programs category page.
All programs listed on this page are free or open-source... unless they have a big dollar sign next to them.


This page links to any pages related to computer programs or pieces of software.
__TOC__
 
 
= My Build Procedure =
 
When I build programs from source, I use the following setup:
 
* Programs are all installed in the <code>~/pkg</code> directory
 
* Tarballs are downloaded to <code>~/pkg/tarballs</code>
 
* Tarballs are untarred to <code>~/pkg/sources</code> using the command:
 
<pre>
tar xvzf program-x.x.x.tar.gz -C ../sources/
</pre>
 
* The usual configure/make/make install procedure is performed, but the configure line used is put into a script named <code>runconfigure.program-x.x.x.operating-system.sh</code>, and I put notes into the configure file's comments, so that I have a detailed record of:
** What configure line options I used
** Whether I used a non-standard series of steps, took any extra steps (e.g. <code>make test</code>), or had to install any dependencies
** The date I last modified the configure line
 
* The program is installed to <code>pkg/program/x.x.x/</code> using the <code>--prefix=$HOME/pkg/program/x.x.x</code> configure option
 
* (Optional) Once the program is installed, I add <code>pkg/program/x.x.x/bin</code> to my <code>$PATH</code> by adding the following line to my <code>$HOME/.profile</code>:
 
<pre>
export PATH="${PATH}:${HOME}/pkg/program/x.x.x/bin"
</pre>
 
* Alternately, I can create a link to the "standard version" for my system in <code>$HOME/pkg/program/std</code>, which links to the most up-to-date version of the program; that way, I can install 2 or 3 or more versions of the program, but have the standard version point to the one I want to use.  This way, I don't have to update my <code>$HOME/.profile</code> every time, because the <code>.profile</code> contains:
 
<pre>
export PATH="${PATH}:${HOME}/pkg/program/std/bin"
</pre>
 
= Unix System Utilities =
 
{|border="1" class="wikitable"
!Unix system utility
!Wikipedia description
|-
|[[Aptitude]]
|
|-
|[[Awk]]
|Programming language for text processing [[wikipedia:awk]]
|-
|[[Bash]]
|The standard Unix shell [[wikipedia:bash]]
|-
|[[Emacs]]
|One of the standard Unix text editors, and much more [[wikipedia:emacs]]
|-
|[[Sed]]
|A cousin to awk, a programming language for text processing [[wikipedia:sed]]
|-
|[[SSH]]
|Method for creating connections with remote computers [[wikipedia:secure shell]]
|-
|[[Vim]]
|A minimal, customizable Unix text editor [[wikipedia:vim (text editor)]]
|-
|[[Xargs]]
|Program to pipe lists of arguments, one-by-one, to other commands [[wikipedia:xargs]]
|}
 
= Programs Built From Source =
 
See also, my procedure for setting up a new Mac: [[Mac OS X Lion]]
 
{|border="1" class="wikitable"
!Program
!Link to webpage
 
|-
|[[Apache]]
|http://httpd.apache.org/
 
|-
|[[Boost]]
|http://www.boost.org/
 
|-
|[[Cantera]]
|http://sourceforge.net/projects/cantera/
 
|-
|[[Chkrootkit]]
|http://www.chkrootkit.org/
 
|-
|Class library for numbers (cln)
|http://www.ginac.de/CLN/
 
|-
|[[CMake]]
|http://www.cmake.org/
 
|-
|Conkeror
|http://conkeror.org/InstallationOSX
 
|-
|[[ctags]]
|http://ctags.sourceforge.net/
 
|-
|[[Doxygen]]
|http://www.stack.nl/~dimitri/doxygen/
 
|-
| [[Emacs]]
| http://www.gnu.org/software/emacs/
 
|-
| [[GDB|GNU debugger (gdb)]]
| http://www.gnu.org/software/gdb/
 
|-
| [[Ginac]]
| http://www.ginac.de/
 
|-
| [[googlecl]]
| https://code.google.com/p/googlecl/
 
|-
| [[gnuplot|gnu plotting program (gnuplot)]]
| http://www.gnuplot.info
 
|-
| [[gpg|gnu privacy guard (gpg)]]
| http://www.gnupg.org/
 
|-
| [[HDF5]]
| http://www.hdfgroup.org/HDF5/
 
|-
| [[Hypre]]
| http://acts.nersc.gov/hypre/
 
|-
| [[LAM MPI]]
| http://www.lam-mpi.org
 
|-
| [[OpenMPI]]
| http://www.open-mpi.org/
 
|-
|PERK-LINUX (Parametrical Empirical Krigging)
|http://www.stat.osu.edu/~comp_exp/perk-v0r4.notes
 
|-
| [[Petsc]]
| http://www.mcs.anl.gov/petsc/petsc-as/
 
|-
| [[PHP]]
| http://www.php.net/
 
|-
| [[Ruby]]
| http://www.ruby-lang.org/en/
 
|-
|[[Snort]]
|http://www.snort.org/
 
|-
|[[Subversion]]
|http://subversion.tigris.org/
 
|-
|[[Sundials]]
|https://computation.llnl.gov/casc/sundials/main.html
 
|-
|[[Trillinos]]
|http://trilinos.sandia.gov/
 
|-
|XULRunner
|https://developer.mozilla.org/en/Getting_started_with_XULRunner
 
|-
|Zend Framework
|http://framework.zend.com/download/latest
 
|}
 
= OS-Agnostic Binary Programs =
 
{|border="1" class="wikitable"
!Program
!Description
!Website
|-
|Audacity
|a nice audio recording/editing program
|http://audacity.sourceforge.net/
|-
|[[ffmpeg]]
|all-in-one video processing swiss-army-knife
|http://www.ffmpeg.org/
|-
|[[ffmpeg]]x
|GUI interface for ffmpeg
|http://www.ffmpegx.com/
|-
|[[Fink]]
|Package manager for Mac OS X; makes installing many Unix-based programs much less of a hassle
|http://fink.org
|-
|Gimp
|open-source image editor
|http://www.gimp.org/
|-
|[[Git]]
|a version control system, differs from subversion in a number of ways, designed with a focus on making it easy to branch and merge
|http://git-scm.com/
|-
|Handbrake
|similar to ffmpegx, a GUI interface for converting different video formats
|http://handbrake.fr/
|-
|[[Lapack]]
|Linear algebra package for matrix and vector operations
|http://www.netlib.org/
|-
|[[LyX]]
|a really handy GUI WYSIWYM Latex editor
|http://www.lyx.org/
|-
| [[Matlab]]
| computational package
| http://www.mathworks.com
|-
| [[Octave]]
| open-source Matlab alternative 
| http://www.gnu.org/software/octave/ 
|-
| Open Office
| open-source Microsoft Office alternative
| http://www.openoffice.org/
|-
| [[Python]]
| programming language
| http://www.python.org/
|-
|Sage
|open-source Matlab, Maple, Mathematica alternatives rolled into a Python Swiss Army Knife contained on a VMWare image so it can run cross-platform
|http://www.sagemath.org/
|-
|TexMaker
|Latex text editor
|http://www.xm1math.net/texmaker/
|-
|VLC
|open-source video player that can play just about any video format
|http://www.videolan.org/vlc/
|-
|[[VirtualBox]]
|virtual computer program
|http://www.virtualbox.org/
|-
|[[Wireshark]]
|Wireless network traffic analyzer
|http://www.wireshark.org/
|-
|[[x11vnc]]
|a nice VNC program that allows me to set up a remote desktop server (you can then connect to it using your VNC client of choice, I use [[Programs_I_Use#chicken_of_the_vnc|Chicken of the VNC]] on a Mac).
| http://www.karlrunge.com/x11vnc/
|}
 
= Mac-Only Software =
 
This table is old. Some of the tools have been superseded by others. See instead, my procedure for setting up a new Mac: [[Mac OS X Lion]]
 
{|border="1" class="wikitable"
!Program
!Description
!Webpage
|-
|[[Aquamacs]]
|version of Emacs that uses Aqua (Mac window style)
|http://aquamacs.org/
|-
|<div id="chicken_of_the_vnc">
Chicken of the VNC
</div>
| remote desktop (or VNC) client for Mac
| http://sourceforge.net/projects/cotvnc/
|-
|Chmox
|utility to read .chm files
|http://chmox.sourceforge.net/
|-
|Disk Inventory X
|gives you a graphical depiction of what's using space on your hard drive
|http://www.derlien.com/
|-
|[[Image:DollarSign.png|20px]] Divvy
|Nice Mac utility to easily resize windows.
 
If you decide to keep using it without paying, it will show you a popup message every couple of times you open it.
 
I spent $15 to buy it, and it is worth every penny.  I use it more than I use Quicksilver (which is ''really'' saying something).
 
|http://www.mizage.com/divvy/
|-
|DjView
|utility to read .djvu files (ebook format)
|http://djvu.sourceforge.net/
|-
|[[DynDNS]]
|Syncs IP information with DynDNS servers; allows computers with dynamic IP address to run a web server that DynDNS "knows about"
|http://www.dyndns.com/
|-
|Evernote
|program to take notes, and sync them with a server, on the cloud
|http://www.evernote.com/
|-
|[[Fink]]
|a content-management system (like yum or aptitude) for Mac
|http://www.finkproject.org/
|-
|Fugu
|GUI interface for ftp/ssh/etc to a remote client (Don't use "Son of Fugu", it's not as good as Fugu)
|http://rsug.itd.umich.edu/software/fugu/
|-
|Inkscape
|open-source image editor
|http://inkscape.org/
|-
|iTerm
|alternative to Mac's "Terminal" application (a really nice feature is its full-screen mode: good way to eliminate distractions)
|http://iterm.sourceforge.net/
|-
|[[MacFuse]]
|allows you to mount various file systems on your Mac
|https://code.google.com/p/macfuse/
|-
|[[MacFusion]]
|GUI for using MacFuse to mount different filesystem types
|http://www.macfusionapp.org/
|-
|Mac The Ripper
|used to rip DVDs to your hard drive (extracts to VIDEO_TS and AUDIO_TS, not .mov or .avi, but you can open the VIDEO_TS and AUDIO_TS contents with most DVD players)
|http://www.macupdate.com/info.php/id/14414/mactheripper
|-
|MacPorts
|Don't use Macports, it tries to compile everything, every single last dependency, EVERYTHING, from source (this includes programs that take 5 hours to compile and are already available on your machine and on your path - like gcc).  Building anything using MacPorts takes at least 2 hours and MacPorts is a complete waste of time. 
 
I highly recommend Fink.  If you're already using MacPorts, I suggest you abandon ship and join Fink... before it's too late.
|
|-
|MacVim
|version of Vim that uses Aqua (Mac window manager)
|https://code.google.com/p/macvim/
|-
|MPlayer
|media player for Mac
|http://www.mplayerhq.hu/design7/news.html
|-
|[[Shark]]
|C++ profiler for Mac
|Simple tutorial: http://tuvix.apple.com/tools/sharkoptimize.html
 
Getting started: http://bit.ly/a4XYEv
 
Advanced profiling: http://bit.ly/9ffZd7
|-
|Saturn
|another profiler for Mac
| http://adrianboeing.blogspot.com/2010/02/profiling-on-mac-osx-with-saturn.html
|}

Latest revision as of 06:46, 17 April 2017

All programs listed on this page are free or open-source... unless they have a big dollar sign next to them.


My Build Procedure

When I build programs from source, I use the following setup:

  • Programs are all installed in the ~/pkg directory
  • Tarballs are downloaded to ~/pkg/tarballs
  • Tarballs are untarred to ~/pkg/sources using the command:
tar xvzf program-x.x.x.tar.gz -C ../sources/
  • The usual configure/make/make install procedure is performed, but the configure line used is put into a script named runconfigure.program-x.x.x.operating-system.sh, and I put notes into the configure file's comments, so that I have a detailed record of:
    • What configure line options I used
    • Whether I used a non-standard series of steps, took any extra steps (e.g. make test), or had to install any dependencies
    • The date I last modified the configure line
  • The program is installed to pkg/program/x.x.x/ using the --prefix=$HOME/pkg/program/x.x.x configure option
  • (Optional) Once the program is installed, I add pkg/program/x.x.x/bin to my $PATH by adding the following line to my $HOME/.profile:
export PATH="${PATH}:${HOME}/pkg/program/x.x.x/bin"
  • Alternately, I can create a link to the "standard version" for my system in $HOME/pkg/program/std, which links to the most up-to-date version of the program; that way, I can install 2 or 3 or more versions of the program, but have the standard version point to the one I want to use. This way, I don't have to update my $HOME/.profile every time, because the .profile contains:
export PATH="${PATH}:${HOME}/pkg/program/std/bin"

Unix System Utilities

Unix system utility Wikipedia description
Aptitude
Awk Programming language for text processing wikipedia:awk
Bash The standard Unix shell wikipedia:bash
Emacs One of the standard Unix text editors, and much more wikipedia:emacs
Sed A cousin to awk, a programming language for text processing wikipedia:sed
SSH Method for creating connections with remote computers wikipedia:secure shell
Vim A minimal, customizable Unix text editor wikipedia:vim (text editor)
Xargs Program to pipe lists of arguments, one-by-one, to other commands wikipedia:xargs

Programs Built From Source

See also, my procedure for setting up a new Mac: Mac OS X Lion

Program Link to webpage
Apache http://httpd.apache.org/
Boost http://www.boost.org/
Cantera http://sourceforge.net/projects/cantera/
Chkrootkit http://www.chkrootkit.org/
Class library for numbers (cln) http://www.ginac.de/CLN/
CMake http://www.cmake.org/
Conkeror http://conkeror.org/InstallationOSX
ctags http://ctags.sourceforge.net/
Doxygen http://www.stack.nl/~dimitri/doxygen/
Emacs http://www.gnu.org/software/emacs/
GNU debugger (gdb) http://www.gnu.org/software/gdb/
Ginac http://www.ginac.de/
googlecl https://code.google.com/p/googlecl/
gnu plotting program (gnuplot) http://www.gnuplot.info
gnu privacy guard (gpg) http://www.gnupg.org/
HDF5 http://www.hdfgroup.org/HDF5/
Hypre http://acts.nersc.gov/hypre/
LAM MPI http://www.lam-mpi.org
OpenMPI http://www.open-mpi.org/
PERK-LINUX (Parametrical Empirical Krigging) http://www.stat.osu.edu/~comp_exp/perk-v0r4.notes
Petsc http://www.mcs.anl.gov/petsc/petsc-as/
PHP http://www.php.net/
Ruby http://www.ruby-lang.org/en/
Snort http://www.snort.org/
Subversion http://subversion.tigris.org/
Sundials https://computation.llnl.gov/casc/sundials/main.html
Trillinos http://trilinos.sandia.gov/
XULRunner https://developer.mozilla.org/en/Getting_started_with_XULRunner
Zend Framework http://framework.zend.com/download/latest

OS-Agnostic Binary Programs

Program Description Website
Audacity a nice audio recording/editing program http://audacity.sourceforge.net/
ffmpeg all-in-one video processing swiss-army-knife http://www.ffmpeg.org/
ffmpegx GUI interface for ffmpeg http://www.ffmpegx.com/
Fink Package manager for Mac OS X; makes installing many Unix-based programs much less of a hassle http://fink.org
Gimp open-source image editor http://www.gimp.org/
Git a version control system, differs from subversion in a number of ways, designed with a focus on making it easy to branch and merge http://git-scm.com/
Handbrake similar to ffmpegx, a GUI interface for converting different video formats http://handbrake.fr/
Lapack Linear algebra package for matrix and vector operations http://www.netlib.org/
LyX a really handy GUI WYSIWYM Latex editor http://www.lyx.org/
Matlab computational package http://www.mathworks.com
Octave open-source Matlab alternative http://www.gnu.org/software/octave/
Open Office open-source Microsoft Office alternative http://www.openoffice.org/
Python programming language http://www.python.org/
Sage open-source Matlab, Maple, Mathematica alternatives rolled into a Python Swiss Army Knife contained on a VMWare image so it can run cross-platform http://www.sagemath.org/
TexMaker Latex text editor http://www.xm1math.net/texmaker/
VLC open-source video player that can play just about any video format http://www.videolan.org/vlc/
VirtualBox virtual computer program http://www.virtualbox.org/
Wireshark Wireless network traffic analyzer http://www.wireshark.org/
x11vnc a nice VNC program that allows me to set up a remote desktop server (you can then connect to it using your VNC client of choice, I use Chicken of the VNC on a Mac). http://www.karlrunge.com/x11vnc/

Mac-Only Software

This table is old. Some of the tools have been superseded by others. See instead, my procedure for setting up a new Mac: Mac OS X Lion

Program Description Webpage
Aquamacs version of Emacs that uses Aqua (Mac window style) http://aquamacs.org/

Chicken of the VNC

remote desktop (or VNC) client for Mac http://sourceforge.net/projects/cotvnc/
Chmox utility to read .chm files http://chmox.sourceforge.net/
Disk Inventory X gives you a graphical depiction of what's using space on your hard drive http://www.derlien.com/
DollarSign.png Divvy Nice Mac utility to easily resize windows.

If you decide to keep using it without paying, it will show you a popup message every couple of times you open it.

I spent $15 to buy it, and it is worth every penny. I use it more than I use Quicksilver (which is really saying something).

http://www.mizage.com/divvy/
DjView utility to read .djvu files (ebook format) http://djvu.sourceforge.net/
DynDNS Syncs IP information with DynDNS servers; allows computers with dynamic IP address to run a web server that DynDNS "knows about" http://www.dyndns.com/
Evernote program to take notes, and sync them with a server, on the cloud http://www.evernote.com/
Fink a content-management system (like yum or aptitude) for Mac http://www.finkproject.org/
Fugu GUI interface for ftp/ssh/etc to a remote client (Don't use "Son of Fugu", it's not as good as Fugu) http://rsug.itd.umich.edu/software/fugu/
Inkscape open-source image editor http://inkscape.org/
iTerm alternative to Mac's "Terminal" application (a really nice feature is its full-screen mode: good way to eliminate distractions) http://iterm.sourceforge.net/
MacFuse allows you to mount various file systems on your Mac https://code.google.com/p/macfuse/
MacFusion GUI for using MacFuse to mount different filesystem types http://www.macfusionapp.org/
Mac The Ripper used to rip DVDs to your hard drive (extracts to VIDEO_TS and AUDIO_TS, not .mov or .avi, but you can open the VIDEO_TS and AUDIO_TS contents with most DVD players) http://www.macupdate.com/info.php/id/14414/mactheripper
MacPorts Don't use Macports, it tries to compile everything, every single last dependency, EVERYTHING, from source (this includes programs that take 5 hours to compile and are already available on your machine and on your path - like gcc). Building anything using MacPorts takes at least 2 hours and MacPorts is a complete waste of time.

I highly recommend Fink. If you're already using MacPorts, I suggest you abandon ship and join Fink... before it's too late.

MacVim version of Vim that uses Aqua (Mac window manager) https://code.google.com/p/macvim/
MPlayer media player for Mac http://www.mplayerhq.hu/design7/news.html
Shark C++ profiler for Mac Simple tutorial: http://tuvix.apple.com/tools/sharkoptimize.html

Getting started: http://bit.ly/a4XYEv

Advanced profiling: http://bit.ly/9ffZd7

Saturn another profiler for Mac http://adrianboeing.blogspot.com/2010/02/profiling-on-mac-osx-with-saturn.html