About Me

I love science. Primarily, I'm a physicist, but I have severe programming leanings. I love open-source software. I think that science and open-source make a really good couple.

I think that modern programming practices and technologies could greatly benefit the scientific community, and I would love to help facilitate this process. Scientific code doesn't have to be bad code.

My Research

My research has been focused on Ultrafast Electron Microscopy, in which the spatial resolution of an electron microscope is combined with the temporal resolution of an ultrafast laser. Early intruments have either been limited to nanosecond time resolutions or been confined to repeatable processes. I have worked to help push UEM to its expected resolution product, in the ballpark of \(\sim 1\text{nm}\cdot\text{ps}\). I have done this through modeling of ultrafast pulses, as well as theoretical and experimental analysis of photocathode materials, the photoemission processes, and even the column design.


The published form of my thesis is available in PDF format and the LaTeX source is available from my GitHub page. It is also available from the UIC Library and archive.org.

Perl and Science

I love the Perl programming language. It's a flexible and useful language, both for scientific and other purposes. I believe strongly that Perl's code-sharing and testing cultures fit well with the scientific ideals of knowledge-sharing and verification/repeatibility. Sadly, Perl isn't in the list of top choices for scientific programming anymore. I hope to increase the use of Perl in the scientific community, and to do so by example.

I have written several useful Perl modules, including my main research simulation Physics::UEMColumn, a module for laser-cavity stability analysis Physics::RayTransfer, and MooseX::Types::NumUnit a plugin for Moose for handling units. I have also been writing Perlish interfaces to the Gnu Scientific Library under the PerlGSL namespace, and I'm involved with the PDL Porters who maintain the Perl Data Language (PDL), which is an array-oriented library for Perl (in the manner of MatLab or NumPy).

Of course, its also important to be vocal in the communities. I regularly blog about Perl. I run the website perl4science.github.com and I have given talks about Perl at scientific venues, and science at Perl conferences, like the one below at YAPC::NA 2012.

Galileo CMS

In order to teach myself Mojolicious (I am now a core developer) and the Perl ORM DBIx::Class, I wrote a CMS called Galileo. Its goal is to be a totally CPAN installable CMS, making it as simple to install and use as possible. It is still rather simplistic, but I think it is very useful for times when you need a website right now, or when you don't have any technical knowledge. It is still under active development. I have an example site running at galileo-cms.herokuapp.com, though edits made to the site will not be saved.