Programming Resources

Programmers' Drinking Song

99 little bugs in the code,
99 bugs in the code,
fix one bug, compile it again,
101 little bugs in the code.
101 little bugs in the code.....
(Repeat until BUGS = 0)

Languages

Java

Gamelan

JavaWorld
Useful tips

The Java Lobby

Securing Java
A book by Gary McGraw and Ed Felten

jCentral
IBM's Java resource site. See also IBM's alphaWorks site

TeamJava.com's links page

Java Developer's Journal

JCampus
A Java resource site with a focus on Java education

JLearn
Another educationally-focussed Java site

Info about Cygnus Solutions' Java compiler

Cacao JIT
This is a really good JIT apparently.

DataRepresentations
Apparently a pretty good Java IDE can be found here.

NetBeans
Another Java IDE company.

Java and Python: a perfect couple
Guido van Rossum's opinion of the Python scripting language and its relevance to Java.
(At developer.com)

Anthony Coates' seminar on Java and XML

Australian Java Users' Group

Flashline.com
Provides JavaBeans, a component registry and programming resources.

NetBeans
An open source Java IDE.

SourceBot
An online Java class decompiler.

EspressoGrinder
A fast Java compiler. Given that the Sun JDK compiler javac is just a script that runs the standard class sun.tools.javac.Main, this shouldn't be difficult.

Eclipse Java IDE

C and C++

Steve Holmes' C Programming course

Yahoo!'s C and C++ page

Dinkumware's C Library Reference

The Obfuscated C Contest

Assembly language

linuxassembly.org

Scripting languages

Perl

A Perl quick-start guide

cgi-lib.pl

Object Orientation

Design Patterns links

Geoff Eldridge's OO Soapbox

User Interfaces

Richard Shuford's Terminal Information

user Interface Hall of Shame
How not to design a user interface.

Bruce Tognazzini's site
Much user-interface wisdom from one of the original Apple Mac design team.

Artificial Intelligence

Cyc
An attempt to create a knowledge base that will hopefully give software that uses it "common sense". Coz let's face it... how many programs do you know of could be fooled into thinking that chickens can fly choppers?

Agent Research

The ModelAge project is pretty stale, but has produced some interesting output.
Check out this and that member of subgroup five (links on the main page are out of date).

Libraries, modules, patches, etc.

The 'expat' XML Parser Toolkit

Hank Leininger's patches

Macintosh programming

Quinn's info for newbie Mac programmers

A similar starter page at Apple

Australasian Apple Programmers and Developers Association

TopSoft
A GNUish organisation that promotes the creation of free and low-cost Macintosh software

Documentation

Arnold's Laws of Documentation:
  1. If it should exist, it doesn't.
  2. If it does exist, it's out of date.
  3. Only documentation for useless programs transcends the first two laws.

Software Engineering, Reliability and Security

This application sucks. Yes, it honestly does. It was written by the *WORST* coder in the world, and as such it is full of security holes. It's swiss cheese. It makes a pile of tofu look like a well-audited piece of code. We don't think you should install it, but because there is demand, we're making it available so that you can evaluate the program, your use of the program, and your environment and see if it is appropriate. Go ahead at your own risk, and feel free to contact the developer to tell them we told you this.

From the "Identifying Risk and Informing the User" section of Robert Watson's discussion on ports and the FreeBSD Project.

RST's code analyser

David Wheeler's Home Page
All sorts of funky secure programming info.

The Secure Programming guide at Shmoo.com

Bugzilla
The Mozilla Project's bug & RFE tracking system.

The Debian bug tracking system

Doxygen
A documentation tool for C/C++ similar to javadoc.

joelonsoftware.com

Programming Competitions, style and fun

The First International RoShamBo Programming Competition
How to appreciate the karmic value of a function that accepts no arguments and only returns 0, 1 or 2. (The competition is closed).

The International Obfuscated C Code Competition

MindRover

Infrequently Asked Questions in comp.lang.c

Fred Curtis's software site
Humour, coding tips, downloads, links, etc., etc., etc.

Whitespace. The language.
Just goes to show how much time you can waste if you really put your mind to it.

Other resources

goodcode.com

Squeak
A portable, (almost) public-domain SmallTalk environment

Some standards

Ever wondered what Lex and Yacc are? Here's what I think

A breakdown of a technical fault in one of the NASA Pathfinder mission's programs.

An example of using network sockets in a Perl script

cgic: an ANSI C library for CGI Programming

IEEE's W.A. Chapter page
...on UWA's CS department web server

Matt Bishop's secure programming guide

The Retrocomputing Museum
More compilers (and other stuff) for antiquated languages than you can poke a stick at

Catalog of Free Compilers and Interpreters

A GNU AutoConf tutorial

MESA, an OpenGL clone

Dr. Dobbs' Programmers Vault

Ralf Brown's Interrupt list
This is a list of just about all of the interrupts & stuff that you can call on Intel x86 PCs

My projects

Oh, you didn't think I'd developed such an interest in computer programming without thinking I was good at it, did you? Here is a partial list of my past, current and future software projects and other things I have worked on at some stage.
Alastair Irvine
Last modified: Mon Jun 13 21:50:57 WST 2005