Elliott's Web Page

Elliott Karpilovsky

Graduate Student, Computer Science, Princeton University

About Me Programs of Use Libraries for Coding Links




Whitaker's Words
The absolute best Latin translator available. I mean it -- no other dictionary even comes close. It has an enormous library of words and is extremely straightforward. Requires some knowledge of Latin to use.
JDIC
A highly recommended Japanese-English dictionary. US mirror.




Emacs
An archaic editor that requires you to memorize about 100 billion different key combinations. However, currently better than most editors by a long shot. I use it for everything.
TeX Live
The best Linux LaTeX port. LaTeX is much more complicated than alternatives like Microsoft Word, but it also gives you a tremendous amount of control over your documents.




GNU C/C++
Free C/C++ compiler. It's not quite as good as commercial compilers when it comes to error messages and optimizations, but it does do a pretty good job overall.
Ruby
A dynamically typed scripting language. Currently looking into it as a replacement for Python.
Python
My scripting language of choice for a long time. However, it feels like a hack at times (like Perl), which is why I'm investigating other scripting languages.
OCaml
Statically typed object-oriented version of ML. It has some great features, like pattern matching and type inference. Currently investigating whether this could be a good prototyping language for large projects.
CLISP
LISP is one of the greatest programming languages ever, and CLISP is a great implementation of it.
PLT Scheme
Scheme is a simplified version of LISP. I like "Dr. Scheme" out of all the scheme implementations I've tried.




QuickCheck
Randomized testing of software based on specification. Although written for Haskell, it's available for other languages as well.
Coverage Analysis
Provides some indication of how well your test cases actually test your code!
GNU Debugger
Standard debugger for C/C++. Other debuggers exist for other languages and generally follow the same notation.
CScope
A great utility to search through C/C++ code. Integrates with Vim and Emacs.
Splint
Checks for various bad programming practices and potential bugs.
Make
Indispensable tool for compiling large projects.
Valgrind
Catches memory leaks in your programs.
CVS
Version control system that is old and sucks, but everyone uses it so it's hard to get away from it.




Firefox
A nice web browser.
Thunderbird
A nice email client.
Pidgin
The only good instant messenger client out there for AOL IM.
WGet
An excellent command line utility for downloading content. You should use "wget -E -k -K -p -r" since 1.) -E adds the appropriate file extension to the downloaded file (if it doesn't end in .html), 2.) -k converts links to point to your downloaded files (as opposed to the web site), 3.) -K backs up original versions of files before converting, 4.) -p downloads embedded content as well (like images), and 5.) -r recursively downloads links (default depth of 5, use -l to change). Other useful options include -U (change the agent string) and "-e robots=off" to ignore the robots.txt file.




GNUPlot
An archaic but useful utility for creating plots.
GIMP
A free image manipulation program. Some of its commands are very counter-intuitive.
Paint.NET
Halfway inbetween photoshop and MS Paint. Overall, quite nice.
Photoshop
Probably the best image manipulation tool out there, if you don't mind paying astronomical fees.
GraphViz
Recommended to me, but I have yet to use it.
XFig
Antediluvian software that has yet to be replaced.




Windows
Does this even need an explanation?
Gentoo Linux
Highly customizable version of Linux. Painful to install, though.
Ubuntu Linux
The most user friendly version of Linux I have ever seen.
Linux from Scratch
Build your own distro!
FreeBSD
Considered to be more solid than Linux, but with less applications. My personal experiences with it have been pretty negative, though, as it has even less support for hardware than Linux.




GNU Privacy Guard
A great open source encryption program.
DivX
One of the better video compression codecs out there. Only drawback is that it's proprietary and not available on all systems.
x264
Open source implementation of the H.264 video codec. Not sure about its legal status. x264 is supposed to be one of the best video codecs out there, and many companies have thrown their weight behind the H.264 video codec (Adobe, Google, HD-DVD and Blu-Ray consortiums, etc.).
PNG Crush
Program to losslessly compress your PNG files even further!
Virtual Dub
One of the simplest and easiest to use video editors. It may not have frills, but it does the job right.
Exact Audio Copy
Ripping program to extract CD audio tracks.
FLAC
Stands for "Free Lossless Audio Codec," it doesn't get as good compression as MP3 or Vorbis (only about 2x on WAV files), but it doesn't discard any audio data.
Ogg Vorbis
Patent / royalty free alternative to the MP3 file format. It gets slightly better compression. Only drawback is most hardware devices don't support it.
DB Power AMP
The best designed audio converter tool. Allows you to convert between tons of different formats. On top of that, it uses the LAME engine for MP3 conversion, which is the best MP3 encoder available. Definitely worth the registration fee.
Bzip2
A slow but very effective compression program.
GZip
GNU Zip, a free and open source compression program. Faster than BZip2, but doesn't provide the same level of compression.
GNU Tar
Combines multiple files and directories into one master file. Compression can later be applied to the tar file.
SHA-1 Checksum
Another checksum program with longer fingerprints (with no known collisions). It is theoretically broken, so it's better to use SHA256 when possible.