|
Elliott Karpilovsky
Graduate Student, Computer Science, Princeton University
- 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.
|
|