This is an archive of my website, as it appeared when I was an undergraduate student

Want something new? Click here

Google Search
Wednesday, October 31, 2007

Visualizing Citation Networks

This semester I am responsible for writing 2 survey papers on various topics that are new to me. Since I am a newbie in these fields, I find it difficult (sometimes) to sort the "foundational" papers from the "incremental improvement" papers. Google scholar is great for this because it provides information regarding the number of times each paper has been cited (along with a list of the citing papers). Moreover, it presumably takes this into consideration when ranking query results. 

This is great, but it is not always what I want. While google is trying very hard to find papers that are relevant to my query, I may  already have a few papers in mind that I know are relevant. In this case, I am more interested in finding papers that are unknown to me and that are well cited.  Now, I could navigate Google scholar and find this information, but the process is far from automated. Instead, I would really like a tool that will draw the portion of the citation network that I am interested in. I'm sure software exists to do this, but I can't find any (and quite frankly, I don't have time to look). In that case, if you know of such software, please let me know. Otherwise, it might be interesting to develop some perl scripts  that will crawl Google scholar, and draw the results using the OpenSource program GraphViz


Automatic paging of nohup results

Recently, I've been remotely running (over ssh) a large number of long-running processes, and I have found the need to "detach" these processes from my ssh session. (So that I could power down my terminal, etc.) This can easily be done using the

UNIX nohup command, and the output is helpfully redirected to the file nohup.out


Well, not really. I don't always know how long a command will take to execute, and I really would like to be notified by a SMS message or email when the results are available. The following command does exactly that:

nohup time [LONG RUNNING COMMAND] | mail -s "nohup.out" [EMAIL ADDRESS] &

Labels: , ,

Wednesday, September 19, 2007

Why "Seeing" is More Than Just Registering an Image

Few would argue against the statement "perception is a key component of artificial intelligent systems". A game-playing agent must "perceive" the game world before choosing a move, while a robot must "see" the real-world in order select a path or construct a motion plan etc. But, the game playing agent needs no special machinery to "see" the game world, and the robot might use a laser range finder to map out obstacles in the real world. So is perception a solved problem? I, and many others, would argue 'no'; at least not when it comes to vision. The following example, highlights some of the complexities of vision:

(Marr, D. 1982 Vision: a Computational Investigation into the Human Representation and Processing of Visual Information. Henry Holt and Co., Inc. pp. 51)

What if I were to tell you that each figure contains three layers? The lowest layer is an outline of a triangle. The middle layer is a collection of solid circles. The top layer is a triangle-like shape, with one curved edge. Which edge is curved, and is it concave or convex? Do you see this shape where no lines exist? (Note that my "lowest" layers are not unique, nor are they fixed. Since there is no overlap their order can be inverted, or they can be compressed into a single layer).



Version Control Systems as Research Tools

For a while, I've been contemplating the use of source code version control systems (such as CVS) as a tool for basic computer science research. This setup supposes that a system will be running some experiments on a set of input data, and that after running all experiments, some text-based report will be generated. The setup further supposes that structural or algorithmic changes (as opposed to parameter changes) will be applied to the software between experimental runs. By keeping the source code and result report under version control, a record of all results will be kept. Additionally, past experiment configurations can be recovered by simply accessing previous versions of the software in the repository. Moreover, since CVS only stores file changes (deltas), the effects of various changes will be immediately apparent; existing GUI or web based tools will literally highlight how each result report changed with each software modification. This could really help/formalize future analysis, and may help justify final results.


Monday, August 20, 2007

Converting Beamer/PDF Presentations to Powerpoint

Beamer is a wonderful set of macros for preparing presentations using Latex. (Check out one of my presentations here if you don't believe me) Beamer's advantages over Powerpoint include the beautiful rendering of mathematical formulae, the separation of content from layout (using \section, \subsection, etc), the ability to use a Bibtex database for references, and the ability to use text-based version control systems (such as CVS) to manage edits.

However, it is sometime necessary to provide a Powerpoint presentation, and Beamer will only produce .ps or .pdf files. To convert a PDF presentation to Powerpoint you need Ghostscript, a recent version of Powerpoint, and perhaps the Powerpoint Photo Album Ad-in Program (for Powerpoint version 2000). Once these programs are installed, follow these simple instructions: (supposing your presentation is called 'my_presentation.pdf', and Ghostscript is installed in 'c:\Program Files\gs\gs8.53\bin\gswin32c.exe')

At the command line, execute:

"c:\Program Files\gs\gs8.53\bin\gswin32c.exe" -dNOPAUSE -g1024x768 -r205 -sDEVICE=pngalpha -sOutputFile=slide_%d.png -dBATCH my_presentation.pdf

This will produce one high-resolution image per slide.

Next, simply open Powerpoint and (for Powerpoint 2000 users) select File->New->General->PhotoAlbum. For users of other versions of Powerpoint, the menus may appear in different places, but I am told the PhotoAlbum options are available by default.

Import all images that were generated at the command line.

Configure the various options as necessary, sort the images, and then click "done". You will probably want to delete the first slide, which is the title page generated by Poweroint.

You're done! Of course, the presentation will be huge, and may take a little longer loading slides, but at least you don't have to use Powerpoint for more than a few seconds to produce your presentation!

Labels: , , ,

Monday, August 13, 2007

Mac OS X 10.4 Shell Configuration

I have been using an Apple iMac (Core 2 duo) since last October, and
I remember spending alot of time configuring the various shell
settings. The following is a summary of my current configuration:


sy on
set ruler
set expandtab
set tabstop=2
set directory=$HOME/.vim
set bdir=$HOME/.vim
set backup


export EDITOR='vim'
export CVSROOT='/usr/local/cvsrep'

export PATH="${PATH}:/sw/bin:."

alias ll='ls -lh'
alias la='ls -lhA'

# The following two lines bind the up and down arrow keys to auto-complete the
# current command by searching the bash history. This is the default
# behaviour of the tcsh shell.

bind '"\M-[A":history-search-backward'
bind '"\M-[B":history-search-forward'


# This nearly empty configuration file prevents the xterm application from launching
# when X windows starts up.

exec quartz-wm

Labels: , , , ,


08/01/2007 - 09/01/2007  09/01/2007 - 10/01/2007  10/01/2007 - 11/01/2007  

This page is powered by Blogger. Isn't yours?

Copyright © 2007, Adam Fourney