Software
From Gwiki
PLEASE NOTE: I don't maintain releases of my software. Anything you check out comes directly from the current version of the repository, which changes daily for many projects. The code is very clean and well documented, but I am given to making sweeping changes on a whim, so don't count on any sort of compatibility with future versions.
Natural Language ProcessingAs far as research goes, I am interested in topics situated under the umbrella of natural language processing (NLP). Specifically, I focus on the shallow semantic interpretation of textual data. My goal is to endow computers with the ability to automatically recognize basic components of meaning using linguistic theory and machine learning. Most of the NLP software I have published facilitates access to large annotated corpora of written English. To learn more, go here. |
Machine learningI have not written any machine learning software per se; however, I have modified existing packages to work efficiently with very large models. The modified versions run in "server mode", meaning they load a model once and serve classifications from the loaded model without having to reload the model each time. This can dramatically reduce processing time. The classification servers can be found here. |
Miscellaneous
MetaPixel GUI
MetaPixel is a program that can be used to create photomosaics, which are pictures formed by many smaller pictures. I wrote a GUI front-end for MetaPixel using Mono/C# that supports image preprocessing and mosaic creation. The GUI helps streamline mosaic creation by allowing you to specify the desired dimensions (in inches) of the sub-images and final mosaic. It also allows you to create a batch of mosaics for a range of parameters, after which you can open them in EoG or GIMP directly from the GUI. The GUI has been tested on Ubuntu Hardy using MetaPixel 1.0.2 and Mono 1.2.6 (both installed from the Ubuntu Hardy repositories). If all you want is the binary, download it here. You can check out a local copy with the following Subversion command:
svn co http://links.cse.msu.edu:8000/svn/gerberm2/Applications/MetaPixelGUI
Alternatively, point your TortoiseSVN client to the same URL.
Use the following command to start the GUI:
mono MetaPixelGUI.exe
Some screenshots of the process:
The GUI only supports the creation of classical mosaics. Collages and anti-mosaics are not yet supported.
Pfind
If there is one thing I dislike about the Linux command line, it is the `find' program. Too much complexity for what I want it to do (find files). For example, if I want to find all files in or below the current directory that contain the words foo and bar — in that order, possibly separated by other words, ignoring case — I would use the following:
find -iname '*foo*bar*'
It might seem like a quick command, but type it a few dozen times and you will share my frustration. My solution is this trivial Perl script. The following `pfind' command is equivalent to the `find' command above:
pfind foo bar
Better, right?
Mediawiki hacks
Go here.
Computing pet peeves
- Code that is commented out or uncommented
- Prefixing class/variable names with "my"...what possessive dolt of a programmer invented this uninformative convention?
- Obscure acronyms
- Inconsistent casing/spacing
- Programmers who are too lazy to fix the above
![]()
All of my software can be used according to the Attribution-NonCommercial-ShareAlike 3.0 license.
