News

TCBuild: A New Build Tool for Fortran

I've released a python tool that I developed to compile Fortran programs: TCBuild. It has some pretty advanced features, including multi-threading, multiple build targets, multiple build configurations (eg debug, release, parallel), and rebuilding of files when compiler flags change. TCBuild is available via MacResearch.

Mental Case: RSS for Your Head

After a year of development, my latest Cocoa development project has seen the light of day. Mental Case is a cross between a flash card app, a note taking app, and iCal. You drop in tidbits of information you want to be reminded of, and Mental Case schedules them for review at various times in the future. It's hard to describe, so the best thing to do is just try the 30-day free trial for yourself.

This is the first project in which I have worked closely with others. My brother, Cody McCormack, was instrumental in the initial brain storming process, and helped out with the sample data in the app. A fellow scientist, Marcello Luppi, did all the design work, including icons and web site. I think he did a great job. If you need a designer, he comes highly recommended.

Desktop Dustup Tidies While You Work

My first publicly-released Dashboard widget is now available for download. It is a collaboration with Marcello Luppi, a scientific colleague with an artistic streak. Desktop Dustup moves old files from your desktop to the trash. 'PDF-clutter' is a thing of the past!

Forpedo Includes Run-Time Polymorphism

Forpedo has been upgraded to include support for run-time polymorphism, as described here. Run-time polymorphism is an important part of Object-Oriented Programming (OOP), and is supported in Fortran 2003, but not earlier standards. With Forpedo you can mimic run-time polymorphism in Fortran 90/95 programs, making the transition to Fortran 2003 easier when compilers of that standard become readily available.

Programming Paradigms for Scientific Developers

After years tossing up the idea, I finally got around to putting together a short course on advanced programming concepts for Scientists: 'Programming Paradigms for Scientific Developers'. It consists of just three lectures: the first covers Procedural and Structured Programming; the second, Object Oriented Programming; and the third, Generic Programming. The goal is to address the concepts that transcend programming languages in a way that appeals to Scientific Developers. Course slides and code can be downloaded here.

The Macanical Blogger

I've added a blog to the Macanics web site. I will be adding to it on a regular basis, covering a wide range of topics, from Chemistry to Software Development. I've kicked off with a more personal piece on my Professor, Evert Jan Baerends, who recently turned 60.

Periphery Overview Available

You can now download a PDF file of a poster describing the motivations behind, and architecture of, the Quantum Dynamics (QD) software Periphery. Periphery is a C++ framework I am developing to ease development of new QD methods. It includes a range of functionality, from support for hierarchical files, to linear algebra, and advanced tensors. The idea is that, when complete, scientific users will be able to develop and test new methods at a very high level, working with concepts like representations and operators, rather than low-level loops and arrays.

Forpedo Article Published in Fortran Forum

I have published an article on the Forpedo Fortran preprocessor in Fortran Forum. Forpedo is a preprocessor that facilitates generic programming, similar to C++'s templates, in Fortran. If you or your library subscribes to it, you can find it in the August 2005 edition, Volume 24, Issue 2, Pages 18-29. The source code from the article can be downloaded here.

New Articles Cover Xgrid on Mac OS X "Tiger"

I have just published two articles on MacDevCenter that deal with running Xgrid on Mac OS X "Tiger". The first shows you how to setup an Xgrid, and submit jobs with the xgrid command line tool. The second article covers the Cocoa API in XGridFoundation.

Beginning Mac OS X Programming due for release in July, 2005

My first book, Beginning Mac OS X Programming, should be available in stores in July, 2005. I wrote the book together with Michael Trent from Apple at the end of last year. It covers a wide range of different aspects of Mac OS X software development, from Cocoa to Carbon, and Python to AppleScript. It basically provides a nice introduction to most of the technologies available, and doesn't require any prior knowledge of Mac programming. You can preorder it now at Amazon.

New Music Page with Free Chaos in the Realm

A new page has been added to the site, covering music that I like, as well as music I have written and played myself through the years. It kicks off with a free EP from the band Chaos in the Realm, which haunted the rock taverns of Melbourne back in the mid-90s.

Forpedo: a preprocessor for generics in Fortran

I have just released Forpedo, a preprocessor written in Python that allows you to use generics (like templates in C++) in Fortran code. It is easy to use, and example code is provided. Download it directly by clicking here, or see the Forpedo web site.

ADF Without the Command Line

ADF2004 includes a more Mac-like interface for the GUI modules. The X11 modules have been bundled into a native Cocoa application, so that they can be started from the Finder, or dragged-and-dropped onto the Application icon. With these changes, it is possible to use ADF without the command line at all, and it integrates much better with other aspects of Mac OS X. ADF2004 for Mac OS X is available now from SCM.

New Article on Xgrid and Cocoa

MacDevCenter has just published a two part article I wrote about integrating Xgrid into Cocoa apps on Mac OS X. You can find part 1 here, and part 2 here.

Xgrid is new grid technology from Apple. Like most things that come out of Apple, Xgrid takes an existing concept, and brings it within reach of ordinary computer users. In the article, I postulate that we are seeing the beginning of the Democratization of Distributed Computing.

In part 1, Xgrid is introduced, and I demonstrate how you can use it from the command-line to create a simple distributed compilation system, like distcc in Xcode. In part 2, I move on to creating a batch image processing app with Cocoa. Source code for all examples is available for download.

Gradient Smoothing in ADF

The recently-released ADF2004 includes new gradient smoothing technology that I have developed over the past year. Geometry optimizations and frequency calculations should benefit from this new functionality.

ADF's integration point generation is best-in-class, but it has a nasty side-effect: small perturbations in geometry can cause the energy gradient to 'jump', rather than vary smoothly. This comes about because ADF generates integration points using the Voronoi cells of the atomic centers, and the topology of the cells is not stable for changes in geometry. This can lead to problems when the gradients are used to generate the hessian (second derivative matrix), such as in geometry optimizations and frequency calculations.

The new smoothing method works by reusing the cell topology from one geometry to the next. As long as the geometry does not vary too greatly, the cells can be frozen, and the integration points smoothly perturbed, leading to smoother variations in the gradients.

On the Periphery of Reaction Dynamics

Work has begun on a new quantum scattering package for surface reactions, called Periphery. Written in C++, Periphery will be based on solid software development practices, contrary to the vast majority of scientific programs.

Initially, Periphery will incorporate time-independent coupled-channel methods, but future extensions should include time-dependent wavepacket methods.