Java URLs

http://java.sun.com:8081/index.html
The main JavaSoft web site. Lots of marketing crud but good stuff under "Products and APIs" and "For Developers". Some particular points of interest are the main documentation index where you can browse or download everything from the JDK API docs to The Java Language Specification and The Java Virtual Machine Specification. virtually all the docs available from JavaSoft.
http://java.sun.com:8081/docs/codeconv/html/CodeConventionsTOC.doc.html
Another URL from the JavaSoft site worth calling out is the coding standards document. While I prefer 2 spaces indentation to 4 these are a pretty good set of guidelines.
http://developer.java.sun.com/
The Java Developer Connection (JDC). Much more technical meat than java.sun.com and the place to download the latest and greatest versions of various classes and APIs. You need to register but it's free. Highly recommended.
http://developer.java.sun.com/developer/technicalArticles/Programming/Stacktrace/index.html
For example, this article from the JDC is the best (and only) explanation I've ever seen of what all the gibberish you get back from a full thread dump means.
http://developer.java.sun.com/developer/bugParade/index.html
The BugParade. Perhaps the most useful part of the JDC -- the place to search for known bugs in the JDK, file new ones, and vote for the ones you think should be fixed first. It's not clear that the voting has any real effect but it can't hurt. (While you're there put all three of your votes on bug 4209652 my bug du jour.)
http://java.sun.com/products/jfc/tsc/archive/tech_topics_arch/swing_worker/swing_worker.html
An article from the Swing connection about the SwingWorker helper class with a link to the source of the class. (It doesn't come as part of Swing so if you want it you need to grab it from here.) You should at least read and understand the source if you're going to be doing Swing programming.
http://www.afu.com/javafaq.html
The Java Programmer's FAQ by Peter Van der Linden (author of the excellent C book, Expert C Programming). I haven't read the whole FAQ carefully so I can't vouch one way or the other for everything he says but it covers a lot of ground and has good explanations of stuff that might trip you up early on (for example see Question 4.3 How do I set the CLASSPATH for a good explanation.) Go up a level to http://www.afu.com/ for some other good Java links. Be warned, however, that the FAQ has a bit of an anti-Microsoft ax to grind, for what that's worth.
http://www.javalobby.org/
If you dig the anti-Microsoft stuff in Van der Linden's FAQ, you'll probably dig the Java Lobby, a group of (they say) over 25,000 folks dedicated to preserving the "write once, run anywhere" philosophy of Java and to promoting Java as a serious development environment. They might change the world and in the mean time they have links to lots of snazzy Java projects, some of which you can volunteer to take part in.
http://sunsite.unc.edu/javafaq/javafaq.html
The comp.lang.java FAQ List. A bit out of date at this point (last modified in October 1997) but the original Java FAQ if memory serves. A bit less idiosyncratic than Van der Linden's.
http://www.norvig.com/java-iaq.html
The Java IAQ: Infrequently Answered Questions. This FAQ like document covers a few of the weird corners of Java. Some of it is stuff you'd probably do well to know about so you don't bang your head about it (for example, I once spent about an hour banging my head against the very odd behavior described in question 3 before I figured it out and filed a bug at the JDC.
http://g.oswego.edu/
Doug Lea's Home Page. Lea is the author of Concurrent Programming in Java: Design Principles and Patters a must read if you are going to do multi-threaded programming in Java. (Which you will.) Lots of good stuff here about Java and Patterns and just about every other thing to do with computers.

Tools

http://www.reliable-systems.com/tools/iContract/iContract.htm
The iContract tool -- provides Eiffel/DBC-style inherited invariants in Java. I haven't actually tried using this tool yet but it's on my short list of things to check out.
http://www.antlr.org/
Home of ANTLR, my prefered parser/lexer/tree-parser generator. The Java world's answer to lex and yacc. Other folks like JavaCC better -- I used JavaCC about a year ago and then discovered ANTLR and liked it better. Also ANTLR is free and open source whereas JavaCC is owned by Sun. YMMV.
ftp://prep.ai.mit.edu/pub/gnu
Canonical GNU software site. You can pick up the source to Emacs and about a million other free software packages here. If you're looking for Emacs for use on NT or Windows check out the NTEmacs page at http://www.cs.washington.edu/homes/voelker/ntemacs.html.

XP (ExtremeProgramming)

http://www.armaties.com/Practices/PracLeadin.htm
The main place to read about XP, a software methodology that came out of the Smalltalk world, and which makes a lot of sense to me.
http://c2.com/cgi/wiki?WelcomeVisitors
WikiWikiWeb. An collaborative discussion project inhabited by folks interested in patterns and XP. Many of the oldtimers are Smalltalkers but most of the discussion is about programming in general. And, anyway, Smalltalkers have a lot of good perspectives on OO that you might not get from your local C++ bigot, er, fan.

Misc URLs

http://sagan.earthspace.net/~esr/
Eric S. Raymond's Home Page. The editor of The New Hacker's Dictionary (a.k.a The Jargon File) and an eloquent proponent of hacker culture, ESR's home page has lots of good stuff on it, including the oft-cited paper about open-source developmentCathedral and the Bazaar and the "How To Become A Hacker" FAQ.
http://www.amazon.com/
To hack is to learn. To learn is to study. To study is to read. Get all the books you need at Amazon. Beware, however, one click shopping is addictive.
http://www.cwi.nl/~jansteen/go/rules/index.html
The rules of Go. Part of what looks to be a pretty good set of pages about Go, Go, an Addictive Game.
http://mindprod.com/unmain.html
A bunch of anti-guidlines. If you've been programming for a while you'll recognize programmers you know in these guidelines. Hope it's not you.

Back to index


Peter Seibel <peter@javamonkey.com>
Last modified: Thu Feb 10 20:18:35 Pacific Standard Time 2000