Author: Alan G. Isaac
Last modified: 2008 Jun 05
Most recent version: http://econpy.googlecode.com/svn/trunk/software4econ.xhtml

Software for Economists

The following software list is idiosyncratic. I have tried to make it generally useful for economists. I favor cross-platform solutions, since I view the current near monopoly of the end-user operating system as a momentary historical aberration. Suggested changes and additions are welcome. A resource complementary to this page is RFE's Software page.

Request 1: If you use a free and open source software application, please send money to the developers.
Request 2: Please read Richard Stallman's Right to Read article, as well as his GNU Manifesto. (If you think Stallman sounds crazy, he is not: RosettaBooks already sells ebooks that ``time out'' and become inaccessible after ten hours of viewing, and perhaps most famous is the ebook version of Alice's Adventures in Wonderland that forbids reading it aloud.) Also, visit the Free Software Foundation, visit OpenSource.Org, and sign a petition agains software patents. Thank you.

Text Editors

First things first, and having a decent text editor is probably first. All other things equal, multi-platform solutions are always preferable. I suggest Vim. It is highly configurable, available on essentially every platform (even WinCE), and quite wonderfully designed. On top of all this, it is charityware: you pay nothing for this excellent software, but users are encouraged to make a donation for needy children in Uganda.

See Vim user hints.

More editors:

Other multi-platform solutions:
There are many alternatives. If you are looking for small, fast, and free, start with nano. For big, powerful, and free you can try emacs. (Windows users may wish to consider Goulet's modified emacs for Windows.) Many users will find the somewhat less powerful but much smaller mg provides sufficient emacs style functionality. (There are Windows ports of emacs and of mg. There is a mailing list, which is archived.) Some prefer the closely related XEmacs. JED is reputed to be fast and powerful, and it has a particularly powerful macro language. The Hessling Editor (THE) gets raves and uses REXX as its scripting language. This makes it very powerful, and it has some unusual and excellent features (see, e.g., the 'all' command, which Vim approximates with 'folddoopen'). SciTE is a multi-platform source-code editor with some interesting and powerful features: it can be scripted with the Lua programming language, and it is based on Scintilla. Finally I have to mention the unusual Lapis editor, which allows simultaneous selection of discontinuous segments of text.

Aside: for the curious or those who need to fit a modal editor on a floppy, you can get the traditional vi editor, which has been free and open source since 2002.

Very specialized: the Java based Record Editor may be just what you need if you are working with fixed-field-length data files.

Windows users:
The NotePad editor is always available as an accessory program, but it is too limited for serious use. If you like the basic interface, try NotePad++, a fast and powerful replacement based on the Scintilla edit component. (GPL) If you are willing lean against the wind and use a mode based editor, I strongly recommend the free text editor Vim. If you prefer a modeless editor (shame on you!), you can try a modeless configuration of Vim called Cream. Or try FTE, which (like Vim) is free, Open Source, and supports folding. I also like the popular shareware TextPad, which includes nice syntax highlighting, a nice grep utility, beautiful handling of column oriented editing, and an accurate (and somewhat LaTeX sensitive) spell-checker.

See TextPad user hints.

Python users may want to consider the interesting UliPad. There is also the popular, lightweight MetaPad, and the fairly powerful EditPad Lite, and TSE Pro has an avid fan base, and it is available in a console version. If you can afford it, there is also Lugaru's Epsilon, a powerful, fast, yet lightweight implementation of Emacs for Windows. For pure speed on a Windows platform there is the powerful VEdit, which offers a free trial version.

HTML Editors

Generally any good text editor with syntax highlighting will be fine for HTML editing, but Nvu is of additional interest: is is based on the Mozilla Composer code base, so it offers WYSIWYG editing of HTML that for moderately sophisticated use rivals DreamWeaver and FrontPage. (License: MPL/LGPL/GPL tri-license.)

Collaborative Editors

Mac users can try SubEthaEdit.

Fonts

Monospaced Fonts

Before listing some monospaced fonts, I must note the wonderful STIX font project. These are "a comprehensive set of fonts that serve the scientific and engineering community". and are available under a royalty free (and fairly liberal) license. (TeX users should check these out!) The fonts are in beta test until the end of 2007, at which time a production release is expected.

Once you have chosen your editor, you may want to find yourself a decent monospaced font, especially if you anticipate doing much programming. More extensive discussions are offered by Keith Devens and n8f8; my brief observations follow. Most systems include some version of CourierNew, which is adequate, or LucidaConsole, which is pretty good. (Unfortunately, neither adequately distinguishes 0 from O, and many monospace fonts share this failing.) My favorite is the TrueType font Andale Mono, which is very readable even at small font sizes. Courier Dot 15 CPI is a very promising free and open source effort. Mac users may wish to investigate Courier Web. There is a public domain, monospace, Unicode (!) font, which will hopefully be superceded by the recently quiescent FreeFont fonts (find the FreeFont fonts here). Some people like Anonymous or Courier 15 CPI. There is also a more narrowly focused but very useful APL font (SImPL.TTF). The shareware Everson Mono Unicode has a good reputation for its Unicode support, but I find it difficult to read at small font sizes. Those needing a small font-size might consider the ProFont bitmap font, which looks great at 9pt. (Available for Windows and Mac.) I have heard good things about Bitstream's Vera Fonts, from which the DejaVu fonts are derivative. (The DejaVu fonts are available as a Latin-Cyrillic-Greek subset.) Finally, should you get ambitious enough to design your own, consider using DoubleType, and let me know about your efforts.

Good commercial fonts: Pragmata, Consolas

Other Useful Fonts

Gentium is a high-quality FOSS unicode font set.

The Arev fonts are useful for presentations containing math.

Spell Checkers

The most natural approach to spell checking is modular, but many editors nevertheless include their own spell checker. If yours does not, there are many free options. Perhaps the most obvious cross-platform option is Aspell. (If you will use the Windows release, see Aspell hints.) Aspell derives from the more famous ispell. (There seem to be separate implementations of ispell for Unix and OS/2 and ispell for Win95/NT. You can also try jspell in a DOS environment.) If you need a spell checker for general Windows applications, try All-Purpose Spell Checker or Spell Checker for Edit Boxes. (They are free.)

Vim 7+ includes a spell checker. You can also integrate Vim with aspell, which is my preference.

Dictionaries and Thesauri

Aiksaurus is a powerful, free, cross-platform thesaurus. The DICT Development Group offers a free online dictionary. You can submit a query for "yourword" directly as http://www.dict.org/bin/Dict?Form=Dict1&Query=yourword&Strategy=*&Database=*. Windows users can download WordWeb for free. Windows users can download for free the Freelang translation dictionaries.

Stream Editors

The only stream editor I have experience with is sed, which is very fast, powerful, and cross platform. (License: GPL) For an introductory tutorial, try SED: A Non-interactive Text Editor. If you decide to use sed a lot, you may wish to try sedsed, and Python-based sed debugger.

Producing Mathematical Documents

There are three basic approaches to producing mathematical documents.
  1. WYSIWYG: What you see is what you get. Generally this means you will use a word processor that provides support for mathematics. Your printed document will look very similar to the document view in your working environment.
  2. WYSIWYM: What you see is what you mean. Generally this means that your working environment will be a user-friendly graphical interface to an underlying typesetting language. Your printed document will look somewhat similar to the document view in your working environment, but substantial formatting will be added to the document when it is typeset.
  3. WYSIYM: What you see is your markup. Generally this means that your working environment will be your favorite text editor, and you will create a plain text document that incorporates markup commands to induce formatting and the typesetting of special symbols. Your printed document will look quite different from the document view in your working environment. Substantial formatting will be added to the document when it is typeset, and your markup commands will not be visible in the typeset document.

WYSIWYG

A good cross platform solution is Open Office, which includes the oomath formula editor. Open Office is free and open source software.

Another cross platform solution is AbiWord, which brilliantly uses MathML as its internal representation of mathematics. AbiMath can import MathML equations. AbiWord also support itex for equation input, which is quite wonderful.

For Windows users, the most common approach is Microsoft Word with embedded Equation Editor equations. This is a pretty clumsy environment if your writing includes much mathematics, but it is widely used. Slightly better might be to use Aurora, which allows you to embed typeset equations into a Word document. (Shareware.) The scientific word processor EXP has a WYSIWYG interface and supports LaTeX file conversion. Equation Magic Lite is a free OLE-based equation editor for Win 95/98 and WinNT/4.

WYSIWYM

Some working environments allow you to see your mathematics in a form closely related to how it will be printed, while reserving polished document formatting to a separate "typesetting" process. Anyone who has printed a web page is familiar with the difference between the screen display and the typeset printed version (or "print preview") of the document: just imagine directly editing such a screen display before typesetting your document. These are sometimes called WYSIWYM (what you see is what you mean) environments.

The most popular WYSIWYM environments are interfaces to an underlying LaTeX document. In such an environment, you will see for example the glyph β instead of the LaTeX code \beta.

The only cross-platform implementation I know of is LyX, which can also interface with the Maxima computer algebra system. (Just add the path to Maxima in Tools -> Preferences -> Paths.) As of 2005, there is a QT based Windows port As of 2004, there is a OSX port. (It is also possible to use Cygwin and an X-server (such as Xfree or X-Win32) to run under Windows. Useful installaton guidance is available.) Unix users may be interested in the KDE port of LyX called KLyX, however it seems to have lost momentum.

An interesting alternative is TeXmacs.

Windows users appear to have a number of commercial choices, the most popular of which seems to be Scientific Notebook and Scientific Word. (Scientific Notebook is not marketed as a LaTeX front end, but as of 2004 it still saves in LaTeX format and with a tiny amount of editing can be used that way.) Mathematica notebooks can also be used as an WYSIWYM interface for mathematical documents.

See Scientific Word user hints.
Note that Scientific Word and Scientific Notebook are available on campus via the EagleNet.

In the WYSIWYM world, MathML is an obvious alternative to the LaTeX as an underlying document format. (In principle, this should not matter much to a user, who should be able to work in the GUI environment and not worry much about the underlying format.) The Amaya browser/authoring tool enables the WYSIWYM production of mathematical documents, uses MathML as the underlying format. As of 2005, I find Amaya a bit slow and clumsy for the production of mathematics.

WYSIYM

The most powerful way to produce mathematics and to learn a markup language for type-setting mathematics. This also provides a big advantage for the process of writing: you get to use your favorite text editor and thereby get access to powerful editing facilities. The most popular choice is LaTeX, which is almost the universal WYSIYM choice among mathematicians, physicists, and economists. It is also my personal choice. An alternative is Lout, which is much less widely used but has some strong advocates. A full Lout installation is remarkably small: the download is less than 2Mb. The math in a Lout source document looks a lot like math in the EQN language. (Speaking of which, some people insist that EQN and GROFF remain the right way to typeset mathematics.)

There are a number of efforts to provide a meta-format from which both LaTeX and XHTML/MathML documents can be generated. The most notable and currently developed is probably GELLMU, although tbook is also interesting. I like the much simpler restructured text (reST), which allows inline and display math in LaTeX format. Citation handling is currently (2005) weak, but bibstuff provides some basic capabilities. Math support is improving. It is also worth trying reST plus Mozilla's itex for web math. Other options include: Almost Free Text (AFT), MarkDown, TextTile, and setext.

LaTeX and Related Software

Background: LaTeX is a document formatting package based on TeX. TeX is typesetting software, arguably the best in the world (especially for mathematics). In this section I will concentrate on LaTeX and related resources.

To get started with LaTeX you will need two things: a text editor or IDE, and a LaTeX distribution (such as MikTeX, OzTeX, teTeX, or fptex). Amazingly enough, you can get everything you need for free. You can also get great help from other users, e.g. on comp.text.tex or the MikTeX users list.

AU Students:
For mathematical documents and for long documents (like dissertations!) you should use the LaTeX document preparation system. There is an AU Thesis Class, which automatically handles all the formatting of your dissertation or thesis. Instructions for using this with Scientific Word are included. Also see MacKichan Software's basic instructions and detailed instructions.

If you are used to word processors, you may initially find the process of creating a LaTeX document a bit clumsy: you do not see the document formatting as you write. However for long documents this is actually an advantage, which you will grow to appreciate. You will create your LaTeX input file with your text editor. In addition to your text, you will add certain LaTeX formatting commands to this input file. You will then use your LaTeX distribution to process this input file, which will produce a device independent (.dvi) file that you can view and print. Details follow.

One caveat:
When you are working on an academic article, LaTeX is an excellent environment. But when submission time comes, you may pick a journal that does not accept LaTeX. What to do? i. Article format generally does not matter until acceptance: hardcopy submissions are still usually expected, and otherwise PDF is generally acceptable. So there is really no problem until an article is accepted at such a journal. ii. Most journals that express a preference either ask for standard LaTeX or ask for common word-processor formats, but even in the latter case LaTeX is usually acceptable. iii. If you have written an article in LaTeX and it has been accepted by a journal that for some reason will not accept LaTeX, you can easily convert your article to a different format.

TeX Tools

MiKTeX tools have been released for UN*X systems.

TeX Distributions

There are many commercial and freeware LaTeX distributions for all platforms. Each comes with its own installation instructions, which you must be sure to follow step-by-step. For Windows 2000 and XP, I have had wonderful experiences with the freeware MikTeX, which has managed to make installation a virtually painless 15 minute process if you read the readme and the prompts.

MikTeX is currently the most widely used LaTeX distribution on the AU campus. We are usually behind a version or two.

TeX Live provides a comprehensive TeX system for most systems. BaKoMa TeX is an inexpensive distribution for Win95 that got some good press, and it includes PostScript versions of the Computer modern fonts. (A very nice feature.) You can purchase a TeX system (with a lot of other useful stuff) from NTG as 4allTeX.
Mac OSX users: use the i-Installer! You can also look at Gerben Wierda's teTeX port to OS X comes with an i-Installer installation program and gets great reviews. As a front end, consider Richard Koch and Dirk Olmes's TeXShop.

Learning TeX

Novices can get acquainted with LaTeX by looking at a tutorial. Once you are using some version of LaTeX, you are likely to find LaTeX: A Document Preparation System by L. Lamport to be indispensable. There are many other good books on TeX and LaTeX. The free lshort2e.pdf has most of what a novice will need. (Check for the most recent version.) More detail can be found in Making TeX Work and many other excellent books. If you need to write your own class (and you probably do not!) try clsguide.pdf.

Users with questions should check the LaTeX FAQ, and the LaTeX homepage. If you are sure you questions are not answered there, ask on the comp.text.tex newsgroup. CTAN and the CTAN-Web, also offer a wealth of information about TeX and LaTeX. (Be sure to visit Graham Williams's catalogue of information.) You may also find some useful TeX Information at UCC. If you get truly ambitious, Victor Eijkhout's TeX by Topic is now available online. (Most users will never need such a detailed understanding of TeX, however.)

LaTeX IDE

TeX specific: The LEd (LaTeX Editor) is free

Adding drawings to LaTeX documents

Although the LaTeX picture environment is very powerful for basic drawings, you will often need more. Often you will want to produce your graphics as EPS files, which can be included in a LaTeX document. However there are several alternatives.

Often you will want to include Encapsulated PostScript (EPS) files in LaTeX documents. This will probably take you two steps: i. tell LaTeX that you will be including a graphic, and ii. convert your .dvi file, in which you may not be able to view the graphic, into a PostScript or PDF file, in which you can view the graphic. (The second step assumes your .dvi viewer does not include a PostScript filter, but some do.) The best way to accomplish the first step is to use the \includegraphics command of the graphicx package, probably with the dvips option. So in the preamble of your LaTeX document you will have
\usepackage[dvips]{graphicx}
and then in the body of the document you will have something like
\begin{figure}[htb]
\begin{center}
\includegraphics[width=\textwidth]{mygraphic.eps}
\end{center}
\end{figure}

The best way to accomplish the second step is with dvips for PostScript output or dvipdfm for PDF output.
Comment: if you use a .dvi viewer that can display your included PostScript files (e.g., TrueTeX or yap with GhostScript), you will probably find it saves time not to view them every time you view the document. Just use the dvips option for the graphicx package so that the PostScript just gets passed through. Then remove that option when you want to see everything.
] Comment: According to Robin Fairbairns: The packages graphics, graphicx and epsfig were all released in their present form at the same time (summer 1994). epsfig is capable of generating some confusion because a package of the same name existed before that time (it was written as a joint replacement for the long-established, and somewhat buggy, epsf and psfig packages); the old epsfig doesn't have the characteristics we have come to rely on. The graphics package forms the basic kernel of the whole bundle: it converts graphics primitive commands into \special commands[*] for the device drivers that the bundle supports. The graphicx package adds a user interface, and makes possible the merging of commands (like scale and rotate: which in graphics need to be composed, and hence produce a longer sequence of commands both at the TeX level and potentially also at the driver level). To first order, the epsfig package simply provides a different user interface, which it translates into graphicx-like commands. There _are_ trade-offs. graphics' user interface is very "traditional tex", with little sophistication. graphicx and epsfig use a key-value syntax which is noticeably more difficult (and hence cpu-intensive) for the packages to decode. graphicx is middle of the road as far as decoding complexity goes, but has useful extra power in its graphical expressiveness by comparison with graphics. (Also, if you never learned psfig, epsfig's psfig-like syntax won't excite you much.)
[*] or, in the case of pdftex, into pdftex commands for the job.
If you want your EPS files to be truly portable, you need to embed the fonts. If you use a drawing application, make sure it is configured to embed the fonts. If you convert your .dvi files to PS, you can tell dvips to embed all fonts with the -Pdownload35 option
dvips -t letter -Pdownload35 file.dvi -o file.ps
If you are producing PDF files, you can use pdffonts to check for font embedding. If useing ps2pdf you can use the option -dEmbedAllFonts=true. See this document for more discussion.
Users of PostScript and pdflatex face an annoyance: pdflatex does not directly support the inclusion of EPS files. However, according to Kai Stirker, one can include EPS files in pdflatex files as follows. That's all! Note that you will need to have installed epstopdf, perhaps by installing GhostScript. Then just \includegraphics{filename.eps} as usual to include your EPS graphic, and pdflatex will conver them to pdf format on the fly.

You can use flpsed to add editable annotations to a PostScript document. (License: GPL; Platform: X11.)

Format Conversion

See the more complete list at http://www.loria.fr/services/tex/english/outils.html.

From LaTeX

TeX to PC has a more complete discussion. One interesting possibility is pyLaTeX, which parses LaTeX for output in various formats. More extensive conversion capabilities may be provided by pandoc. (Language: Haskell; License: GPL)

If you use LyX, there is a LyX (via LaTeX) to OpenOffice format converter. (See the same URL for a Mac front end.)

LaTeX to PDF

You will often want to produce PDF files from your .tex files. (The PDF files can be read by anyone with access to a PDF viewer.) I have had excellent results using dvipdfm, which is included in most LaTeX distributions. Many people report excellent results using pdflatex, which is part of most LaTeX distributions. Also see Markus Kuhn's tips on how to use (La)TeX to effectively produce highest-quality PDF files.

GhostView is cross platform. Sumatra PDF is Windows only, but is amazing, fast, and free. Based on poppler and therefore on X pdf. You can edit PDFs with pdfedit. PDF-Xchange Viewer is free and can annotate. (Commercial product.)
LaTeX to HTML

Note that a successful translation into HTML or MathML can subsequently be read by any modern word processor. (Of course it will not look as good as in LaTeX!)

LaTeX to PostScript
LaTeX to Word or Word Perfect
LaTeX to MathML

To LaTeX

Presentations

Recommendation: use LaTeX with the beamer, powerdot, or Prosper document class. (I found getting started with the beamer document class using MiKTeX's pdflatex to be completely painless.) A fuller discussion of options can be found in Wiedman on Screen Presentation Tools. Some people like the commercial Utopia presentations bundle.

If for some reason you feel you must use PowerPoint®, you can insert LaTeX style math by using the TeXPoint plugin. Note too that you can script your PowerPoint presentations using Python: use the win32com module to access the com interface. (Easier than it sounds!)

There are a few open source presentation programs that are not LaTeX based. They are more like using PowerPoint. OpenOffice includes a presentation program. GNOME Office includes Agnubis, but it is still work in progress.

Another simple but powerful possibility. The ReportLab Toolkit includes PythonPoint for presentation creation. It is amazingly powerful, but a bit complex. To make things much easier, you can very simply generate PythonPoint documents from restructured text (reST). Once you have the software installed, this is about as easy as it can get!

S5 [2] can simply create browser based presentations. Instead of editing HTML you can use reST and convert the text file to a slide show with rst2s5.

Falling short of a presentation package but still potentially useful for report writing is PyReport, which compiles a Python script and its (textual and graphical) output into a PDF file.

Last but not least: for incredible animated presentations, the technically inclined may consider Slithy.

Tables

One place where a good GUI is nice is for the visual formatting of tables. Here a nice GUI can provide a real advantage over markup. This need not mean abadoning LaTeX.

LyX supports table editing. (You can also copy table data from spreadsheets to LyX.)

(Commercial options include Scientific Notebook and possibly LaTable.) When the structure and content of the tables is the dominant consideration, however, LaTeX tables can often be easily and automatically generated. For example, many econometric packages will produce LaTeX formatted tables of results.

If your chosen econometric package does not support LaTeX table generation, you still have a variety of options.

Meta Formats for LaTeX

Other TeX Resources

Citation Management

BibTeX is the traditional choice for citation management. (See the BibTeX user hints.) An interesting alternative is CrossTeX (License: GPL; dependencies: Python, PLY)

Compiling TeX

GAUSS and Related Resources

GAUSS is probably the first choice among U.S. econometricians. It is a fast and powerful matrix oriented language. Its collection of built-in statistical procedures is not as extensive as specialty languages such as S-Plus, but this is offset by its speed and by available free and commercial packages (such as GAUSSX).

The GAUSS Source Code Archive at American University is the primary source of GAUSS freeware. Included in the archive is a partial list of other archived code. You may also find it useful to visit the archive for the gaussians mailing list.

See GAUSS user hints.
Note to AU Students:
GAUSS is the primary programming language used in the AU Department of Economics.

Getting Started with GAUSS

Other Matrix Programming Languages

Being able to write code in one matrix programming language and run it in another environment is desirable. Examples include Cameron Rookley's Perl program for converting Gauss code to Matlab and Christopher Stawarz's i2py script for coverting IDL to Python. If you want to create a translator, consider PLY (a Python implementation of lex and yacc).

Free Matrix Programming Languages

Commercial Matrix Programming Languages

Jens Peter Steffen offers a detailed comparison of GAUSS with MatLab and Ox.

Other Useful Statistical Software

Optimization

Resources in this area are extensive. I will only mention a few idiosyncratically selected items. (For linear and non-linear programming, see also the separate list of solvers.) Do not forget to think about scaling issues. (Here is one discussion of scaling: go to the Aptech web site, click on Resource Library, then click on White Papers, and download Optimization with the Quasi-Newton Method.)

Python Specific

Visualizing Data

Visual analysis of data remains very useful, and some innovations in this area are recent. Classic texts include: The Visual Display of Quantitative Information by Edward Tufte and Visualizing Data by William S. Cleveland. You can get the data and S scripts for Cleveland's book. Cleveland (with Becker and Shyu) developed Trellis Graphics™ for data visualization, which has been implemented for a number of platforms including S-Plus and R. (The name “Trellis” is trade-marked, so these are often referred to as lattice plots.)
Other resources: Daniel Carr's page.

Modrian "is a statistical data-visualization system written in JAVA." Good for categorical data and for maps. Plots are interactive.

Symbolic Mathematics/Computer Algebra Systems

You will find a more complete list plus discussions at SymbolicNet and at the University of Haifa Math Department. SAL (Scientific Applications on Linux) offers a useful review of Computer Algebra Systems. Below I list only a few interesting packages, with an emphasis on multi-platform general-purpose packages.

Commercial packages include the best known, Mathematica and Maple, and some excellent but less well know packages such as LiveMath.

Groups, Algorithms, Programming (GAP) "is a system for computational discrete algebra, with particular emphasis on Computational Group Theory." (License: GPL2)

Web Resources

Math on the Web

There are a number of way to provide access to nicely formatted math on the Web. The most widely used is to provide PDF documents that contain nicely formatted math. The best way to produce good looking math in PDF documents is with TeX based software. Acceptable results can sometimes be achieved by distilling a word processor document with equation editor objects embedded in it.

The other major alternative is to produce MathML, which is finally starting to get decent browser support (especially in FireFox). Producing MathML by hand is impractical, so there has been a search for feasible ways to rely on MathML. One of the most interesting approaches is to use reStructuredText with the rst2mathml writer. This is probably the simplest powerful way to put math on the web.
Another interesting approache is ASCIIMathML, which simply includes LaTeX-like math in a normal HTML file. (A clever javascript produces the MathML.) Mozilla based browsers have excellent native MathML support, so they work well with ASCIIMathML. (But you need to install the math fonts. Opera through version 7.5 provides no MathML support beyond entities, so it does not display ASCIIMathML. IE version 6 requires MathPlayer to work with any MathML. A "two-step" alternative is the Mozilla project's Itex2mml. This embeds a simplified TeX notation in HTML files and then processes them to produce XHTML files containing appropriate MathML in place of the TeX.

The remaining alternative is to convert LaTeX documents directly to XHTML+MathML documents. This can be done with TeX4ht or with the closely related TeX4moz. TtM looks like a similar effort.

Browsers

American University recommends that students and staff use the FireFox browser, especially when using BlackBoard.

Do yourself a favor get a decent browser. I like two: FireFox and Opera. Opera is relatively small, very fast, extremely reliable, W3C-standards oriented, available on many platforms, and has a fully functional free version. (See the Opera hints below.) FireFox (based on Mozilla) is a free-and-open-source, cross-platform browser that emphasizes the support of open standards. FireFox is currently (2004) the only browser with native MathML support. (See the FireFox hints below.) A Windows-specific implementation of the mozilla rendering engine is K-Meleon, which gets rave reviews. A "freeware" browser for Windows that relies on the IE rendering engine is CrazyBrowser, which provides functionality beyond IE (e.g., tabbed browsing even for those with IE6). A "donation ware" browser for Windows that relies on the IE rendering engine is MyIE2. If speed and information are your primary concerns you might consider a text browser such as ELinks or the venerable Lynx. (There is a Win32 port.) For Windows, Off By One looks like an interesting, light-weight option. You can find a useful browser list at LibPNG.

Email

Request:
Please follow basic email etiquette [1|2], especially by using only ASCII text for your email and by quoting selectively and only as necessary to provide context for your reply. Finally, if you must use Outlook, do your interlocutors the courtesy of turning off TNEF attachments!

Get a decent email client. Since there are so many good options, choose an email client that has a multi-platform presence and, most importantly, lets you use your own editor.

Suggestion:
Using your own editor will repay you handsomely, saving time and frustration. Here are examples of things any good editor will allow you to do simply. Preprocess your email to compensate for bad practices by the sender, delete or reformat blocks of text (e.g., a line, a sentence, or a paragraph) without reaching for a mouse, adjust capitalization (e.g., change caps to lower case or vice versa, or convert to first letter caps), and quickly insert text from any other file (i.e., read it in, so you do not need to cut and paste). One could propose that every application in which you need to edit text should include such facilities. E.g., there are many email clients with built in editors that have many such facilities. But then each time you change applications you will have to learn a new editing environment. Instead, whenver possible, you should use applications that provide support for an external text editor. By sticking with your preferred editor you do not have to learn a new editing environment and scripting language each time you switch applications. That of course is the point of modularity.

See Sasse's list of email clients for a sense of what's out there. I really like the free, cross-platform Mahogany. (Under Windows, as of 2006, it is great for both POP and IMAP.) I also like the free, cross-platform PINE, which is keyboard oriented, highly configurable, and has a good Windows version. Thunderbird is very popular: I like its stability but prefer Mahogany's key bindings. Another email client that is now cross-platform is Sylpheed, and perhaps balsa will be. Big plus: unlike most Windows email clients, Mahogany, Alpine (formerly pc-pine), and Sylpheed let you use your favorite editor to edit your email. Thunderbird also supports external editors by means of a plug-in. Pine and Mahogany support POP3, but Pine is primarily intended for IMAP.

See the Mahogany hints, Thunderbird hints, and Alpine hints below.

Another cross platform solution is now The Mutt Email Client—long popular among Unix users, and available to Windows users. (You can also get mutt along with fetchmail, and sSMTP in a unix-mail package for Windows, but you'll have to install Perl and Cygwin.) Kaufman's Mail Warrior is free, full-featured, and relatively small (for Windows users). Poco also has many enthusiasts, and it is standards oriented and security aware. An email client that is not free but gets great reviews is The Bat, and rumor has it that the next release will finally support external editors. Another popular commercial email client is Mulberry, and it is available on many platforms. One last note on email: if you are enlightened enough to use Vim as your editor, you might consider using vimail, a simple mail reader for Vim.

If you want to play with developing an email client, Python-based Mamma Mua is off to a good start but could use some development.

If you are in an environment that forces you to use Outlook, you can at least write your email with a decent editor.

POPFile sorts your email and filters spam. It is free and cross platform.

Gotmail can (roughly speaking) pop your mail off a hotmail account. MrPostman can do the same for hotmail and Yahoo accounts, and it can be extended to work with other services. (GMail includes good POP+SMTP as free services, and offers good directions for configuring Thunderbird to use them.)

Basic email etiquette:
Courtesy almost always requires turning off HTML mail. You need to turn off HTML mail for almost all professional interactions, and especially if you post to mailing lists or newsgroups.

Comment to AU students: Why use webmail?
AU supports IMAP, which also allows you to keep all your mail on the campus servers. You can use any IMAP email client. I recommend Mahogany, but you can use Outlook or Netscape mail. (You have to have your mail set to IMAP; e-academics will tell you how; you can reach them at 202.885.2550.) Note that webmail will remain available to you, should you ever need it.
If you must use webmail you should turn off HTML formatting. For a single new message you can click on Format and then select the "plain text" option. Better yet, alter your preferences to pick plain text as the default format. Click on the "Preferences" tab (next to "Help" at the top right), and in the dialogue box that opens, choose the "Plain text" default editor and set "Send message in this format" to "Plain text."

Document Formats

What are some good document formats, and how can one transform between them?

For writing math, nothing beats LaTeX. However, you can use reStructuredText with writers that support math to produce both LaTeX and XHTML MathML.

HTML

Writing HTML is easy: learn the basics. Conversion to other formats is possible. Most word processors will read HTML and automatically convert to their own format. You can also convert HTML to PostScript (if you have access to Perl).

After learning a few HTML basics, you can learn much more from the materials at the World Wide Web Consortium W3C). Most of the time you should be able to use XHTML Basic and Cascading Style Sheets (CSS). Here is some CSS Background, and the wonderful chapter 1 of Cascading Style Sheets 2.0 Programmer's Reference by Eric A. Meyer. For more information and links, go to the HyperText Markup Language (HTML) Homepage. Some authors may like to see the ISO standard as well.

All modern Word Processors can export their documents as HTML: unfortunately, they often produce pretty bad HTML. You can get much better results with some of the HTML editors, such as the web development suite offered free by Evrsoft

XHTML

XHTML is a wonderful HTML related markup which provides for most needs when used with CSS. Unfortunately some browsers do not support it, unless you serve it as HTML. (That is the trick used in the present document.) Some authors discourage this practice, but it should work fine, as long as you validate your documents.

XHTML: Introduction to XHTML, with eXamples" helpful | XHTML validation. With XML/XHTML (handled by an XML processor) you will be able to define your own entities in the doctype declaration. E.g., you could define <!ENTITY alpha "&#xxxx;" > (where xxxx = the numeric reference) to get around remembering numeric references. The XHTML+MathML document type looks particularly useful, and it is already used to provide math support in reStructuredText.

Mathematical Markup Language (MathML) is now a wonderful reality. FireFox and other Mozilla based browsers offer native support. So does E-Lite: ICESoft's lightweight Java web browser offers full, native MathML implementation. Internet Explorer browsers currently support it only via plug-ins. Public discussion on features for math in HTML contexts takes place on www-math@w3.org. To subscribe send a message to www-math-request@w3.org with "subscribe" as the content of the subject. There is a public archive. Also, consider WebEQ for Web math.

XML: Perhaps the most interesting current XML development for non-programmers is OpenDocument Format (ODF). The is a promising open document exchange standard, and it has already forced concessions from Microsoft. Let us move the world to an open, fully-documented, royalty-free standard for document exchange! OpenOffice is currently the only office suite supporting the OpenDocument Format, as far as I am aware.
By the way, docutils can write to ODF: see Dave Kuhlman's work (currently in the docutils sandbox). There is also a translator for MS Word (TM).

Transport Neutral Encoding Format (TNEF)

What is that winmail.dat attachment you just got in your email? It is a proprietary Microsoft format that bundles together multiple attachments in a way that most email clients cannot unbundle. How obnoxious! So, what can you do about it?

One possibility: ask your interlocutor for the simple courtesy of turning off TNEF attachments! (Instructions are the bottom of the article.)

If you are unfortunate enough to receive a TNEF attachment from someone who cannot figure out how to configure their email client to send attachments that everyone can read, you may have to unpack the TNEF attachment yourself. The only cross platform solutions I know of are JTNEF and pytnef (License: LGPL). At this point, pytnef relies on the tnef command-line utility that is I think only available for unices (although it looks like it could be compiled for Windows).

Email Scripts

If you need to produce email in a scripting environment, Python offers all the basics in the smtplib module. You can even add MIME attachments with reasonable ease.

News Readers

Cross platform: Pan (GPL) or slrn or Gnus.

Free for Windows: Xnews and Forté Free Agent.

AntiVirus

First let me offer an apparently outrageous suggestion: individual users can often substitute good habits for AV software, and even if you install AV software these good habits are crucial defenses. That said, whatever software you choose, you may wish to test it on the EICAR test file.

TO AVOID SENDING AND RECEIVING VIRUSES:
SENDING
i. use plain text to send and receive information whenever possible. All word processors and spread sheets can save as .txt. There is almost never an excuse for using anything except plain text for email.
ii. When plain text is not possible (because special formatting is required) you can almost always use HTML. All modern word processors and spread sheets can save as HTML. This is almost risk free, but to be really safe you can turn off Java and JavaScript in your browser preferences.
iii. When page formatting is crucial, which it almost never is, use the Adobe PDF format. You may need a PDF "printer driver" to do this (such as Adobe Acrobat, Jaws, or some free alternatives such as PDFCreator).
RECEIVING:
i. Most viruses are received as part of email attachments. Many viruses (more accurately known as worms) will email themselves from an infected computer to hundreds of others. So the most important thing you can do is not open any email attachments. Of course, sometimes we need to open attachments. ii. If you must open an attachment, view the file extension. The default in Windows is to turn off your ability to do this, which means you can be tricked into thinking a dangerous Visual Basic script filename.jpg.vbs is really a safe .jpg file. You can fix this by unchecking Hide file extensions in the View tab of Explorer's Folder Options window. Especially dangerous extensions are .exe, .com, .pif, .vbs. Also dangerous are .doc and .xls. (Comment: dangerous file types can be included as ``attachments'' to .pdf files as well, which means you should not open such attachments with Adobe Acrobat either.)
iii. Never send or receive anything in proprietary formats (such as Word or Excel). Related to this, never use Outlook unless you know how to turn off all its dangerous features. And if you simply must open a document in a MS format (e.g., because that's what a work colleague sent you), learn how to turn off the availability of macros. You should also be cautious with any other format that supports macros, which basically means you should avoid exchanging information in word processor formats (see i. and ii. above).
iii. Never run a program file unless you know it came from an impeccable source. (This includes file extenstions .exe, .com, .pif, .bat, and .vbs.)
iv. Never leave some elses floppy disk in your computer. (I once got a virus when a power fluctuation caused my computer to reboot while I had a virus infected disk in my A: drive.)

Additional Comment: Refraining from sending word processing files is a basic courtesy that you should extend whenever possible. Even if you know how to use an anti-virus program, this means only that you know how to look for *known* viruses. New viruses remain a problem.

In addition, during document exchange, you *cannot* remove the questions in the recipients mind about your thoroughness even in this regard. (E.g., did you remember to check this time, which program did you use and how good is it, when did you last update the virus definitions, etc.) If you send text (or straight HTML, if formatting is a concern) this anxiety is completely eliminated. This is a simple courtesy, since all modern word processors make exporting as ASCII text or as HTML very simple. Furthermore, if the recipient wishes to read what you send in their word processor, all modern word processors also import ASCII text and HTML very simply. In sum, there is almost never an excuse to send someone anything except ASCII text or HTML, unless it is required by the rules of your workplace.

Multimedia Resources

Since this is not a core interest of mine, I list only a couple resources.

Programming

Modeling Languages and Solvers

Modeling Languages

The modeling languages most widely used by economists are commercial: GAMS and GEMPACK. Economists use these primarily for CGE modeling. (For GAMS there is online documenation; also helpful CGE exercises with solutions.)

Other alternatives are listed at http://plato.la.asu.edu/topics/tools.html. A few are listed below.

Solvers

Naturally, many commercial modeling languages come with a variety of solvers. Here are some other solvers.

Integrated Development Environments

For Python, PyScripter has an excellent reputation. But it has limited support for threading. (Windows only; license unknown.)

For Java, consider the Eclipse IDE. (Eclipse is a "general purpose" IDE.)

For C and C++, consider the Agide IDE. You can use Vim as your editor! On Linux/KDE, you can alternatively use KDevelop, which also support Vim as an editor.

VimMate is a light GTK-based IDE that embeds the Vim editor.

For Python:
- the general purpose Leo IDE includes a unique and powerful outlining facility
- the relatively lightweight Eric3 IDE gets very good reviews.

JavaScript and JAVA