Across the pale parabola of joy...

Useful stuff

This page is a motley collection of stuff that I have found useful in research and in general, which I have documented both for my own use and for others. The details may be sketchy, incomplete and in some cases not entirely correct, so, use at your own risk and read the documentation or man pages where appropriate and available.

LaTeX template for UMD dissertation

There is a LaTeX template for UMD dissertation available on the IREAP website. However, it is not very nicely organized and I had to give it up as a bad job after trying my hand hacking it. The UMD dissertation requirements are not very stringent and I decided to begin with the book.cls file in my TeX distribution and modify it so that the UMD requirements are satisfied. I compiled my thesis using this template and it was accepted by the graduate school. I am also writing a guide with tips and examples on how to use this template.

Download the template and source files. [tgz] [zip]

Download the style guide. [pdf]

Please mail and let me know if you are planning to use it. I will be making some changes, though they should all be under the hood. I will also expand the guide when I get some time. Please check for updates.

Useful Linux stuff

SSH tunnelling to connect to PC behind proxy

I have found it generally necessary to be able to connect to my work machine, revathi, which is behind a proxy network from home. Especially if you want to copy stuff. This is relatively straight-forward using ssh. Lets say the machine we want to connect to is revathi, which is accessible from host, but not from laptop.

laptop $ ssh -L 8888:revathi:22 user@host user@host's password: host $

Now in another terminal you can log in directly into revathi using the following command.

laptop $ ssh -p 8888 user@localhost Password: revathi $

Image software

The Gimp

The GIMP is the GNU Image Manipulation Program. I've found the GIMP to be good enough for the image processing I do. It is available for many operating systems.

VirtualDub

VirtualDub is a free video manipulation tool for Windows. I primarily use it to create avi files from images, especially when mencoder-created avi files don't work for some reason.

Matlab toolboxes

Calibration toolbox

I have successfully used two toolboxes, the Caltech Calibration Toolbox that can be used to calibrate one or two cameras. You need to click on the corners.

The Multi-Camera Self-Calibration Toolbox by Tomas Svoboda is also pretty good for multiple camera calibration. However there is a scale ambiguity.

There are a whole lot of links about other camera calibration tools here.

LaTeX

I use LaTeX for most of the documents that I create. It is a wonderful tool for creating professional documents. The secret behind liking LaTeX is to realize that it is smarter and more experienced than you are. Period. Don't fight it. For e.g., don't bother about placing figures until you have finished everything else. You can do that at the last moment.

The great thing about LaTeX is that it leaves you free to worry about the content as you can leave the formatting to LaTeX. In my experience except for some times when I needed to cram the paper into 4 pages, it has done an outstanding job. It is also easier to cram stuff into limited pages using LaTeX as you can go about it sytematically, reducing the font here or scaling an image there.

dvips formatting in Linux

I have had some issues while printing some ps files that i created using dvips. The body of the text seems to be very close to the top edge of the paper, i.e., the gap between the first line and the top edge is less while the gap between the last line and the bottom edge is huge. Almost as if the size of the paper is wrong. Apparently that is what it is. I found an explanation and I have listed the commands that can be run to correct this.

root@revathi root # texconfig dvips paper letterSize root@revathi root # texconfig xdvi us

Or, you could use the "dvips -t letter" option.

LaTeX for posters

LaTeX for presentations

No. Not a good idea. Only problem with other software is support for equations is generally terrible. I find that cutting and pasting equations from PDF files works for me. You are not going to be able to edit equations and content at the last moment. However for offline presentations, it is a good alternative.

Resume

I have looked around for a bit on the net to find some good LaTeX resume templates without much success. I decided in the end to write my own, as I am very particular about the visual style. Its pretty good, even if I say so myself. Feel free to download the style file, TeX file, and the Makefile, or have a look at the resume. I found Mathew Boedicker's page useful. There is also a list of reasons why you should use a LateX generated resume, not the least of which are the flexibility it affords and the vastly superior typesetting.

Figures and diagrams for LaTeX

Exporting EPS figures from Matlab to LaTeX is a snip.

psfrag

If you have plotted a figure in matlab and would like to save it as an eps file, but would like to replace the text in the figure from you tex file, this is the tool for you. Especially when you would like to have Greek letters or equations.

pstoedit

If you want to do a lot of editing to an eps file, you can convert it into a fig (Xfig) format file and edit using Xfig.

Figures

I find Dia to be a useful tool for figures. You can export to a variety of formats including eps, tex and png. That means you can use it with LaTeX and psfrag. You can even include LateX mathematical commands in text boxes in Dia. That way when you export to tex and include it from a tex document, you get the math part beautifully formatted. Dia also can have fancy fonts and is generally easy to learn and use. From my experience it is not as powerful as the excellent Xfig, but should suffice for most purposes.

Tools for other operating systems

Even if you do use windows, you should try and move away from proprietary software or standards. For the most part, most users do not very specialized software and there exist excellent free software for windows.

Accessing Linux filesystems

I am surprised that there do not exist many programs to read linux filesystems such as ext2/ext3 or Reiserfs from other operating systems. The following are two such programs. I'll be trying them out.

  • Explore2fs : the WIN32 explorer for Linux ext2fs partitions. This works pretty well, and I have dispensed with fat32 partitions altogether.
  • rfstool : ReiserFS for Windows- allows you to access ReiserFS partitions from a Windows 95/98/ME/NT/2000/XP system. Starting with version 0.6, it even allows you to access ReiserFS partitions from Linux ;). It is a complete rewrite of the ReiserFS functions needed to list directories or access files.
  • visualrfstool : Little Windows file manager for reading and copy files from reiserfs partitions to windows partitions.
  • Mac OS X Ext2 Filesystem : An implementation of the Ext2 (Linux) filesystem for Mac OS X.

Office applications

Multimedia

Scientific software

I started being organized about this rather late. Stuff I have used in the past are now stored deep in the hazy recesses of my brain or lost in the labyrinth of bookmarks.

A fairly compprehensive list of available vision software can be found at the CMU vision site.

tina

I have not used this, but I think I'd prefer this over opencv, because of its LGPL licence.

opencv library

Installation is not particularly tough. If you are using C programs at all for image processing or vision, you may want to use this.

gnu scientific library

Pretty useful for basic linear algebra and other scientific computation. You may want to look at the following packages (available under gentoo).

  • dev-libs/gsl
  • dev-libs/atlas
  • app-sci/blas

octave

If you don't have access to MATLAB, this is a pretty decent alternative. Of course there are not a whole lot of fancy toolboxes.

Installing Matlab 7 on Ubuntu

I installed ubuntu on my desktop recently and I also installed Matlab 7 on the same machine. I ran into some issues with the installation and afterwards, which I'll document here.

The installer seems to crash after reading the license file.

aravinds@revathi:/data/aravinds/www/src$ matlab /opt/matlab/bin/util/oscheck.sh: line 134: /lib/libc.so.6: Permission denied

To begin with the file /etc/libc.so.6 doesn't seem to have executable permission which causes error in the file ${matlab}/bin/util/oscheck.sh. I dug deeper and this is also a problem with the install file on CD1 of the install discs. The problem I faced after installation was that the file cellfun.mexglx was missing in the folder ${matlab}/toolbox/matlab/datatypes/ and the script cellfun.m was being used. I checked with another installation of matlab and the file cellfun.mexglx was indeed present. Very fishy.

aravinds@revathi:/data/aravinds/www/src$ matlab /opt/matlab/bin/util/oscheck.sh: line 134: /lib/libc.so.6: Permission denied

>> ls ??? Attempt to execute SCRIPT cellfun as a function. Error in ==> iscellstr at 13 res = cellfun('isclass',s,'char'); Error in ==> ls at 16 if iscellstr(varargin)

I googled, and found this page, which told me to replace the line

ver=`/lib/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`

with

ver=`strings /lib/libc.so.6 | grep "GNU C Library" | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`

This made a lot of sense, much more than chmod 755 libc-2.3.5.so. I don't much like hacking stuff I don't understand, but the matlab install files seem to be mostly hacks, because there was an inconsistency in the oscheck.sh and the install files, both of which tried to get the version number of libc and both of which failed. I also checked out the Ubuntu MATLAB Wiki, and I decided to follow their advice of copying the CD to /tmp/matlab. I need to do this anyway if I want to edit the install file. It appears that all cds may need to be copied to this folder (or mounted). Anyway, the upshot is that it works. The only problem being that the method of querying the version of libc is wrong in two files. I probably need to check if there are any other files that use this method.

Last updated Aug 3, 2007.