Languages & Systems
C++ (& C)
C++ is a general purpose programming language with specific object-oriented programming features and a useful standard library. C++ is the programming language I’ve used the most and am most comfortable with. I’ve also written programs using the C language.
Java SE 1.5 Technology
A general purpose programming language promoted for it’s platform-independent nature. It features a comprehensive base library. 1.5 is the version of the JDK bundle that was required for use at RMIT during my studies.
The UML® Specification
The UML (Unified Modeling Language®) specification presents a general purpose pictorial modelling language with a strong orientation towards software systems. Use of the language it defines was taught and encouraged during my university studies. I now use it regularly in my personal projects and I’m fairly well acquainted with the related official references, user guide and specifications.
I’ve used several applications of XML (eXtensible Markup Language) (some of them internally developed) for encoding data for engineering models to be used in simulation environments. The team I worked with developed an interpreter that uses Xerxes, an open-source XML parser library for C++, to parse the documents.
Software Systems & Packages
Eclipse™ with Eclipse C/C++ Development Tools™ (CDT™)
™ Eclipse is a software application platform best known as being used to provide a full-featured Integrated Development Environment (IDE) for the Java platform. There are a huge number of extensions for the platform, including the CDT which provides functionality that converts Eclipse to a C/C++ IDE. I’ve used the Eclipse IDE with CDT for most of my software development (both with Java and C++) combined with the Cygwin and MinGW flavours of GCC. Usually these projects have made use of the built in CVS client.
GCC is The GNU Compiler Collection. For better or for worse, the C++ compiler(s) (g++) I’ve spent the most time using.
Cygwin provides a POSIX® standard-like environment for Microsoft Windows. I’ve set-up and reconfigured Cygwin-based development environments quite a few times on both Windows XP® and Windows 7® operating systems.
The Qt framework is an excellent cross-platform C++ application and user interface development framework. I’ve had experience with Qt for a number of years. I have Qt4 set-up on my development machines in order to provide GUIs to my C++ projects.
MATLAB® 2009b/2010a Software Package
The MATLAB software package is mathematical (specifically, matrix) calculation program oriented towards scientific and engineering calculations. The base environment support a wide range of add-ons and spin-off products (such as Simulink). I’ve used MATLAB software extensively since my undergraduate days for engineering calculations and rapid development of engineering calcualtion programs.
Visual Paradigm for UML® Modelling Tool
The Visual Paradigm for UML package is a modelling tool with comprehensive support for the UML specification. It’s heavyweight, but the best full-featured UML-based software modelling tool I’ve come across. I’ve built several comprehensive problem and solution domain software models using from which I’ve created a great many class, sequence, activity, component and use case diagrams.
CVS (Concurrent Versions System) is a tool for managing concurrent versions of files with an orientation towards source code storage, distribution and and management. I’ve used it in a professional context and for personal projects. Not the newest or the best, but it’s still functional. I run the server on a separate machine to my workstation at home.
Doxygen is a documentation generator primarily intended for generating documentation from comments within source code. I’ve used it for code documentation of C++ projects at my previous workplace and for my personal projects.
Google C++ Mocking Framework
This is Google’s C++ mocking framework. It’s my current C++ unit mocking framework of choice for its compatibility with Boost Test and for its generally high-quality approach. It’s also well documented.
MediaWiki® Wiki Software, SMW+ Software & Many Other MediaWiki Extensions
The MediaWiki package is the PHP-based wiki software that runs the WikiPedia® website. I run my own personal web server on which I run my own MediaWiki-powered semantic wiki for writing, documenting and planning. I’ve spent quite some time setting up the semantic features, which offer some very interesting possibilities for organising data and information.