David Chin, Ph.D.
Address: 1834 Wake Forest Rd Unit 6005, Winston-Salem, NC 27109-6001
|Citations of my work|
|Exploratory Studies in a Search for Continuous-Wave Gravitational Radiation in Early LIGO Data|
Slides (PDF) of various talks I’ve given.
|Intro. to Radiological Physics|
|Notes on ICRU 33|
|Cavity Theory (1/2)|
|Cavity Theory (2/2)|
|What is Monte Carlo? (a non-technical intro. to Monte Carlo simulations in radiation oncology)|
|Effect of dental work on dose distribution|
|Intro. to LIGO|
|Search for Continuous-Wave Gravitational Radiation in Early LIGO Data: PhD defense|
I've coded in a variety of languages (C, C++, Java, Python, tcl, sh) in the context of various projects. My PhD work in experimental gravitational physics probably required the most variety: I worked with various collaborators on data analysis and characterization, and some analytic calculations. Since everyone had their favorite tools, I used them as necessary. My biggest project there was an intermediate layer (not quite middleware) which allowed experimentalists to define "conditions" which data streams of interest had to satisfy in order to be considered for detailed analysis. This is because the experiment produces over a thousand real-time data streams, and about 1 TB/day.
All this exposure to programming, and especially to legacy code, has made me aware of and interested in software engineering. It quickly became obvious that the mostly self-taught physicists tended to write code that was not easily maintainable or reusable. Reading online articles and books, and reading various open source codebases, gave me an appreciation for how software engineering could reduce development and maintenance time, while improving efficiency and speed.
I've compiled a brief bibliography of books on programming and software engineering that I've found useful and enlightening.
Since my first sysadmin job as an undergraduate, setting up a network of 20 AT&T 3B2 systems, running System V Release 3.2, I have been involved in administering Unix machines as a matter of course. In my academic work, I frequently find that I am the only one in a research group with the knowledge to get the computing platform to a productive state for myself and my collaborators.
In my previous position as a postdoc at the Dana-Farber/Brigham & Women’s Hospital, my research into Monte Carlo modelling for radiation therapy involved running code on an 18-node Linux cluster. To facilitate information sharing and persistence, I used a couple of tools: MediaWiki as an online journal for project notes and administrative information; Subversion code repository to ensure my collaborators could easily collaborate on code.
UPDATE 2013-05-29 Please also see my GitHub profile.
|EclipsePlan||Code to convert data exported from Varian Eclipse® Treatment Planning System to inputs for EGSnrc, including CT images, 3D structures, and beam configurations with MLC. (Source package -- requires Trispark’s Java DICOM Toolkit, runnable JAR package.)|
|Python (with C module)|
|egsnrcpy||Classes to manipulate phantoms and dose distributions used by EGSnrc|
|C++ (from the LIGO Data Monitoring Tool project)|
|Operating State Condition||Class to allow users to write simple configuration files to monitor various statistics on real-time data and its Fourier space. Subclasses hash_map and uses polymorphism to handle the various conditions.|
|LockLoss Monitor||monitors the interferometer state, and produces a continually updating summary web page and an on-screen strip chart. Specializes deque to accomplish this.|
|C (from the LSC Algorithms Library)|
|date||routines which deal with date and time manipulations: GPS, UTC, Julian dates, sidereal times, calendar dates, and leap seconds. Generalizes the Unix time_t type to keep track of number of seconds and nanoseconds since the start of the GPS epoch (1980-Jan-06 00:00 UTC).|
|detresponse||routines which compute the antenna pattern, i.e. the response of the interferometer to gravitational waves of particular polarizations as a function of location of the source on the sky. Based on unpublished work by Anderson, Brady, Creighton, Flanagan, Chin, and Riles.|
|Various||various figures for illustrating my dissertation|
|Tcl (work with Dr. J. K. Riles, on the LIGO project)|
|LockSegments||a small program to extract intervals of time during which the interferometer was in a required state; parses through automatically generated logfiles and database dump.|
|IDL (work with Dr. R. P. Drake)|
|hyades_shell||simple shell to read output of 1D HYADES magnetohydrodynamics simulation code, and generate plots and animations of time evolution.|
|hyades2d||preliminary version of visualization code for the output of an early beta of 2D HYADES.|
|Boston transit map using Google Maps||An earlier edition of Google maps, before I moved to Boston, did not have the transit stations in the maps. So, I cooked up my own little Google maps mashup, not just to list transit stations, but also so that I could place apartments I was looking at (gleaned from Craigslist and elsewhere) on the map. It helped me see how close to the stations the places were, and also gave me a printable map to allow me to find my way. (Eventually, it was too much trouble to update the XML data file, and then print out the map: I just made simple sketch maps into my notebook when I went around looking at places. Editing of information is very useful.) View source to see how it works.|
AppleScript -- AppleScripts I have written
My Sandbox -- where I write code snippets when learning a new language, or refreshing my memory. (This stuff was never intended to be an example of good programming.)