Ernesto Guisado's Website » Programming » My Work Setup | Articles | Miscellanea | |
Explains what (mostly free) software I install on each Windows machine I get my hands on.
I'm mostly a Windows C/C++ programmer. As such I mostly use Microsoft's Visual C++. I've also used Borland's C++ Builder. Whenever I have to develop on UNIX (lately I've been doing some Linux and Solaris programming), I use the FSF's GNU Compiler Collection (GCC).
I do a lot of scripting. An example would be this Ruby script (CppLineCount) to count lines of code in my C++ sources.
Some years ago I used AWK, but later on I switched to Perl. If you're working on Windows, you'll want ActivePerl. On UNIX, there's a fair chance that your system already comes with Perl by default.
I stayed with Perl for several years and haven't found a compelling reason to switch untill I heard about Ruby. Instead of telling you how good Ruby is, you can read about it yourself in this nice DDJ article, written by the Pragmmatic Duo. Andy and Dave also have a very nice Ruby site, where you can download their book "Programming Ruby". I recommend you buy the print version of this great book too (I did it).
Even though I spend a lot in the Visual C++ IDE stretching dialogs and doing other menial tasks, I don't really want to use it as general purpose editor. I normally use GNU Emacs for NT. This is kind of a religious issue, so I'll mention that some colleagues seem to prefer NEdit or even Vim.
The important thing here is that the editor should be extensible and allow syntax highlighting of source code in a big variety of languages. I use Emacs for Perl, Ruby, C/C++, Java, SQL, HTML, XML, ...
A nice example of the power of Emacs is the htmlize.el Lisp script that allows converting any text file that Emacs understands into syntax-higlighted HTML.
Ghostscript, Ghostview
and GSview
Lots of documentation on the net is in PostScript format. If
you've got a PS printer, you can just copy the file to the printer,
but if you're printer isn't PS, you're stuck. Unless you've got the
Ghost* utilities. They allow previewing and printing of Postscript
files on lots of Windows printers.
MiKTeX Project Page
MikTex is a version of Knuth's Tex typesetting system that runs on
Win32. It's particularly useful if you want to create nicely
typeset documents on the fly (with AWK, Perl or Ruby). An classical
example would be a form letter generator. MikTex comes with .dvi
viewers and .dvi to .ps converters. A simpler alternative, in this
www days, might be to generate a .html document and use a browser
to print it. But if you've seen printed MikTex output, well...
Eraser
Eraser is an advanced security tool (for Windows), which allows
you to completely remove sensitive data from your hard drive by
overwriting it several times with carefully selected patterns.
The International PGP Home
Page
From the FAQ:
PGPi is the international variant of PGP (Pretty Good Privacy), a public key encryption program originally written by Phil Zimmermann in 1991. Later PGP versions have been developed and distributed by MIT, ViaCrypt, PGP Inc., and now Network Associates Inc. (NAI). PGP is the de-facto standard for email encryption today, with millions of users worldwide.
The GNU Privacy Guard
GnuPG is a complete and free replacement for PGP. Because it does
not use the patented IDEA algorithm, it can be used without any
restrictions. GnuPG is a RFC2440 (OpenPGP) compliant
application.
PuTTY
PuTTY is a free implementation of Telnet and SSH for Win32
platforms, along with an xterm
terminal emulator. It
is written and maintained primarily by Simon Tatham.
Lynx
Lynx is a text browser for the World Wide Web. It is a nice way to
check the design of your web site and also useful when you need to
convert html files into plain text.
The Apache HTTP
Server
According to the Netcraft
Server Survey, by far the most popular Web server. And it is
open source.
Cygwin
Cygwin is a UNIX environment for Windows. It consists of two
parts:
Dependency
Walker
Steve Miller is the
author of this nice Windows utility. Take an EXE or DLL and it
tells you all the DLLs it depends on. Includes information about
imported and exported functions and missing entry points. The
latest versions support a command-line interface that I've used to
automate some dependency analysis.
DBWin32
Andrew Tucker is the
author of this utility that allows viewing OutputDebugString output
without having a debugger installed. Handy to debug on client
sites. Mark Russinovich
has a much more elaborate utility called DebugView,
but it requires administrator privileges to run on NT.
STLPort.org
High quality port of the original STL to many platforms.
The Apache XML Project
Includes such libraries as Xerces (XML parsers) and Xalan (XSLT
stylesheet processors).
CppUnit
CppUnit is the official C++ XP Unit Testing framework. For some
reason http://www.xprogramming.com/software.htm
still recommends using version 1.5 which had some serious
deficencies that made a lot of people abandon this library
altogether. Now there is a much improved version available on
Sourceforge. One annoying thing that still hasn't been fixed is
that the main testing macro they use is called assert
.
Even the original author already recognized this was a bad
idea.
Boost.org
Taken from the Boost web site:
The Boost web site provides free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library.
The ACE
Toolkit
The Adaptive Communication Toolkit is an OO Network Programming
Toolkit in C++.
Libeay
Eric A. Young is the author of the Libeay cryptography libraries.
They are part of SSLeay. SSLeay again
is the basis for the open source OpenSSL toolkit. You can find some
nice SSLeay documentation at Ariel T. Glenn's web
site.
Crypto++
4.2 - a Free C++ Class Library of Cryptographic Schemes
More crypto algorithms than you'll have time to use. Impressive
although at times the source code feels over-engineered.