Welcome to cmckinley.org. This is my personal repository of various things I've worked on or found important to host.
My main interest is in programming languages and compilers. I have written a couple toy domain specific languages such as Marker or SkyJack. I am also very interested in programming language design as a whole and have worked on compilers and interpreters such as The Blæst compiler and The Crow programming language. I particularly think type systems, garbage collection, and abstractions are very interesting. I am also very interested in operating systems and operating system design. I am particularly interested where the concepts of an operating system overlap with those of a programming language. I am a firm believer that operating systems and programming languages are two solutions to the same problem.
To answer the two questions that inevitably rise from these two interests, my favorite programming languages are Racket, Java, Standard ML, Haskell, Ruby, and C/C++. I am a firm believer that there is a right tool for every job, so I am very opinionated on which programming language should be used to solve which problems. As for operating systems, my absolute favorite is Plan 9 from Bell Labs. It is probably the most impressively designed system I've ever used with some of the most clever abstractions. Unfortunately, that also means its probably one of the most unintuitive systems to actually use... I am also a rather big fan of Solaris/Illumos since I feel that of the main big UNIX-likes, it has the most interesting additions. If you want to try those features out and don't want to run an OS designed for servers, FreeBSD has picked up some of the more interesting features over the years.
UPDATE: I rewrote the site once again. Now its back to being HTML (however this time without the burden of PHP). I also took the liberty of really simplifying the design of everything.