Programming
My current programming involves maintaining a TVD scheme MHD code written by my advisor, Tom Jones, and a very talented
researcher from South Korea, Dongsu Ryu. My use of the code is outlined in my astronomy page.
I am also a user of the AMR MHD code AstroBEAR by collaborators at the University of Rochester.
I used to be employed at the CfA partly as a programmer and utilize those skills constantly for research purposes. A project to develop
a faster, cheaper, more flexible data receipt system as a front end to Chandra standard data processing led me to
carefully hone my skills and changed me into a die hard Perl/MySQL guy.
TT9 was the
result of these requirements. It is about 40,000 lines of Perl code coupled with a MySQL database and consists of
serveral daemon processes, a GUI and toolkit for system maintenance. I find it as a prime example that just about anything
can be done easily in Perl if done right. Perl can't do everything, however, and that is where I find Fortran, C, IDL, PHP and
plain old C shell filling the voids.
TT9 is probably the best example of my programming
interests and is a good place to start if you want to know more.
I am a strong believer in open source software production because I feel that it best fuels innovation and standards. If
there is anything the astronomy community could use more of it is standards in computing and programming. Several things
make steps at this and include the FITS format and IDL
Astronomy Library. This is also a reason I love Perl, CPAN!
Hardware
Tinkering around with hardware at home is a fun interest of mine. The machine this site is hosted on, ocean, was a weekend
project to build a web/file/media/mail/ntp/ftp server for my family. The goal was cheap but beefy. Ocean is expandable to
4 TB of disk space in a YYCase server case. Here's a list of a few products I used for this project that I would like to recommend.
- AMD Anthlon 64
- SuSE Linux (though Ubuntu could have been used just as well)
- Yeong Yang cube server case
- Pinnacle Systems Showcenter
Obviously more parts than that went into the project, but I was most pleased with the performance of each of those.
Software
I will limit the code I put for to stuff that may actually be useful to someone rather than all of the
extremely specialized stuff I usually write.
- N-Body Fortran 90
- This is a 4th-order Runge-Kutta solver. It can nominally handle N-bodies, though
I use it only for solving planetary orbits. It's 2-d and solves only collisionless systems. It's adaptive
in time to a specified value of accuracy (e.g. 1.d-8 or something). The Mod_Orbit.f90 is the Fortran module
and nbody.f90 is an example of using it. Units are: length in AU, time in years, and mass in solar masses.
- Hydrodynamic Solver
- Later this spring I hope to have finished my own hydrosolver. My pursuit is pretty much just educational in purpose.
I use MHD codes freely, but have never written even a hydrosolver myself. The intention is to make it pretty straight-forward.
I intend to make it run on a desktop utilizing more than one core (threading). It will likely implement a MUSCL spatial integrator
and a Runge-Kutta time integrator. It may be AMR (adaptive mesh refinement) after I get the solver working. I hope to make
a couple of modules that will solve any conservative hyperbolic system with additional modules setting up the Euler equations.
Here's some software I can recommend for various purposes.
- Cubase (my favorite tracking software)
- Adobe Audtion (my favorite mastering software)
- Atlas9 and Atlas12 (my favorite stellar atmosphere modelling software)
- ds9 (FITS viewer and image maniupulation)
- CDex (CD ripping tool with cddb interface)
- Firefox and Thunderbird (if you're not using them, throw away your computer and give up)
- MySQL (my preferred database server)