This page has two purposes basically. The first is someone else may find some of the links or things helpful. The other is to serve me as sort of a portable bookmark/notes page. I prefer lower/system level programming, or the really high level, abstract stuff like AI. It's fun for some kookie reason to me.

The usualís

Pidgin (formerly GAIM) Cross platform instant messenger supports Yahoo, MSN, AIM, ICQ, Jabber and even IRC

Firefox cross platform web browser

OpenOffice a free office suit that does a decent job of working with most MS office formats.

Wireshark a cross platform network sniffer/protocol analyzer

GIMP a cross platform image manipulation tool (like photoshop only free and not as good)

OpenProj a cross platform alternative to MS Project, for all the pointy haired bosses in your life

Code Stuff

Intellij this is, in my opinion, the best IDE for java. The only problem is, it isn't free.

Eclipse The best free java IDE, I think. To be fair, I haven't tried NetBeans in awhile, so I might be missing out.

GCC cross platform C compiler (plus C++ and others). Real men use C.

Visual Studio for pure windows development, nothing comes close.

Bloodshed's Dev-C++ a free C/C++ IDE for Windows. Not bad if you can't afford Visual Studio. Comes with mingw32 compiler, but you can replace it with cygwin's gcc or others by changing some of the settings. I believe you can replace it with cl.exe from the free versions of Visual Studio even.

KDevelop probably the best GUI IDE on Linux for C/C++ work. I'm not convinced this really beats vim/make/general command line stuff though. Especially on *nix where man pages are frequently used.

Out of all the above, nothing stands consistently reliable and easy to use as bash + vim + compiler. Even z/OS inside of USS has some version of vi (and viascii). With that said, here's my prompt. It displays to me, very useful information, what account I'm on as, what the time of the last command executed was, which can be very useful, the current directory and the return code of the last command used, which can also be really useful at times. And it uses colors so you can look at the prompt and instantly know what's what.

PS1="[\e[36;1m\u\e[0m@\e[31;1m\H \e[33;1m\t \e[0m(\e[32;1m0\e[0m) \e[34;1m\w\e[0m]\n$ "

and here's my .vimrc file. I like my prompt because it each color in it as a different meaning, and it displays information I'm always wondering. Like which host I'm on, under what user, of course the current directory and even the exit value of the last command executed.


Probably one of the best places to find free (as in beer) utilities for windows is at Sysinternals. They got recently acquired by Microsoft, but it looks like Microsoft hasn't killed off any of the utilities. So allow me to list some of the ones I think are most useful. But it's nice to browse around the stuff they offer as there's a lot of cool things there.

  • Process Explorer like task manager on steroids - I'd say this is a must have, above anything else listed on this page
  • TCPView shows TCP/UDP connections
  • DebugView shows strings printed to the debug stream
Dependency Walker shows what binaries depend on what other libraries and what functions they export and which the binary is using - Very cool just to use randomly even if you're not debugging something in-particular.

Console a program that allows multiple console windows in tabs and allows you to have different console commands started. For example I have a normal cmd.exe tab, a cygwin tab and various tabs for programs I frequently start up with. At work we have an app we call our server, which I have a tab that opens to the right directory in bash so I can just do ./server.sh and everything starts up. It also supports some eye candy like transparencies and background images. Very cool. Get at least a 2.0 version (currently in beta)

Ninite a website that lets you build automated installers for common programs.

Cygwin I don't think any dev/testing station is complete without this, it basically makes Windows into a unix/linuxish OS, complete with an X11 server - which is handy for sshing into a box and running X programs remotely.

  • gcc/g++/gdb
  • curl
  • wget
  • ssh
  • sshd

Daemon Tools (Lite) great for emulating CD/DVDs for old games or whatever

7-zip A program that can compress/decompress most formats

Notepad2 A windows program that replaces notepad/wordpad. And it's a lot better for text editing.

foobar2000 an mp3/general audio player that's low overhead and works well. If you want fancy skins that do nothing but add eye candy, go with winamp :P

MSVC++ predefined macros and Windows Data Types

I also add the following registry entry, which allows me to right click on any file and open it with notepad2. So set path accordingly. (Create keys as needed): HKEY_CLASSES_ROOT/*/Shell/Notepad2/command with the (Default) data: C:\Program Files\notepad2\notepad2.exe %1


First I should come clean. I've never done any system level programming on *BSD :( I did do one project in college on a NetBSD system, but I used that for little more than vi/make/gcc. However, that said, I have done system level stuff on Linux, AIX, Solaris, HP-UX, Windows and even to a degree on z/OS *shudder*. Basically after hacking around and using the 3270 emulator and TSO/ISPF i figured out for a brief moment in time how to view/edit real datasets. After putting 2 and 2 together (not a trivial task on z/OS :P) I figured out how to view some example programs for RMF on z/OS. And I finally figured out how to make an RMF service call, and I could get access to the data I wanted through C. Anyhow, enough of that. A lot of the stuff I listed in the windows section aren't really necessary on Linux because they come with most desktop distributions, yay linux!

(K)Ubuntu is my current Linux distribution of choice. If Linux as a whole, had better multimedia support, I don't think I'd have a Windows box. Not with Ubuntu and how generally easy it is to use.

Rosetta Stone for Unix and Unix guide a nice list of unix commands for their corresponding platform.

AIX commands a nice list of aix commands.

Look likea UNIX guru a decent amount of information on basic UNIX stuff

Linux Tips a set of commands being combined to do common tasks

Website templates