User:TomTheHand



I am 26 years old and a graduate of North Carolina State University, with a degree in computer science. I work in software development at a company in Research Triangle Park. My Wikipedia contributions are mostly on history and automotive-related topics.

I work 9-to-5-ish, US Eastern time, but while I'm at home I can be reached on AOL Instant Messenger if anyone wants to talk "off the record." You can also e-mail me using the "E-mail this user" link on the left, if you've set up an e-mail address for your account too.

Some links for me
Stub types | Dates and numbers | Ship infobox | WP:SHIPS talk | WP:SHIPS flags | WP:SHIPS banner

Where's Tom been lately?
I haven't been doing much editing or participating in WP:SHIPS discussions lately because I'm currently working on a plugin for AWB.

I've been using AWB for quite some time, and I had built up a pretty good library of regular expressions that I used to make certain automatic formatting changes to articles I was working on. A few weeks ago, I realized that it was really time for me to go through all of my regexes and review them to make sure they worked, eliminate false positives, and incorporate everything I've learned since I originally wrote them. As I did this, I became unsatisfied with some elements of AWB's built-in find-and-replace capability, and I realized that if I just wrote my own plugin I could take care of all of it.

So far I've just been calling the thing "Tom's Task Engine". It allows you to create a list of tasks that you want to perform on each article. You can reorder these tasks at will. Sounds a lot like AWB's built-in capability, but the specific improvements I want to accomplish are:
 * 1) A compact name and a lengthy description for each task. Regular expressions can get pretty complicated, and I need to be able to write as much as I want about them so I can understand their purpose later.
 * 2) The ability to put tasks into groups and enable/disable them by group, in addition to enabling/disabling each task individually. For example, I might have some ship-specific tasks defined, but if they were made to other articles they'd look odd.  I don't want to scroll through my task list and figure out which are for ships and which aren't; I want to be able to disable the entire "Ship" group at the same time.
 * 3) A simpler interface for creating simple find-and-replace tasks. I feel like more people could perform automated find-and-replace operations if they could be completely separated from regular expressions.
 * 4) Automated unit testing for regular expression tasks. I want to be able to associate sets of "before" and "after" text with my regular expressions.  The regex should be run on the "before" text, and then the result should be compared to the "after" text; if it doesn't match, it will warn you that your regex doesn't seem to accomplish what you want.  If you're using your regex and you find a false positive or false negative, you can add it to your tests, then modify the regex so that it handles it properly.  It will automatically tell you if your regex handles the new situation, but equally important, it will make sure that none of your old tests break.
 * 5) Hard-coded complex regular expression tasks, where you just specify certain inputs. I started to write regexes to automatically apply the Convert template to articles, and I found that it's a fairly complex task.  I was writing many nasty regexes that were very similar to each other, but I couldn't think of a way to combine them into one without causing a Tomsplosion.  I'd find a bug and fix it, and then realize that I had to apply the same fix to seven other horrifying expressions.  Both my forehead and the keyboard were suffering.  I realized that I could just write a damn C# method that would have a single, awful regex at its core, and I could pass in the slight differences as parameters to the method.  This single issue is what made me start on the project, and the others were simple "well, as long as I'm doing that, this drives me up the wall too" spec creep.

Anyway, once I'm done I'll post it around a few places. Once I get to a stage where it works but is incomplete, I'll think about offering it for beta testing. For now, I'm still working out how to store all the data and whatnot, so there's nothing to play with yet.

My Wiki activities and accomplishments
I'm currently involved in a large categorization project for naval vessels, with WP:SHIPS. I compiled the current WP:SHIPS categorization guideline from the discussions we've had over the past year. Things are way better organized than they used to be, so I've slowed down and I try to make real content improvements while I categorize instead of just doing drive-by.

I also developed Template:USN flag in order to make it easy to put the proper U.S. Navy ensign into ship infoboxes. The US flag changed every time a new state was admitted, and many ship articles were written simply using the current 50-star flag when an older one would be more appropriate. When I need a light project I can work on for a couple of minutes at a time, I seek out incorrect uses of the U.S. Navy jack or ensign and replace them with the template.

In cleaning up and updating ship articles, I kept running into the various limitations of Template:Infobox Ship. For example, there was no way to express that a ship had been decommissioned for some time and then recommissioned. There was also no way to include service in multiple navies. To try to address this and other issues, I implemented a solution suggested by wwoods where each part of the infobox would be a separate template, so you could repeat sections as necessary. Check out Template:Infobox Ship Example and its talk page for more details, or look at USS Entemedor (SS-340) to see it in action.

Books I own
I have a few pretty beefy texts about ships. I would be happy to confirm facts with these, and provide page numbers so they can be used for citations. Let me know on my talk page, and I'll check them and get back to you as soon as possible.

My next purchase will probably be Friedman's book on cruisers. I'm definitely a Friedman fan; I really like detailed design histories. Someday I'd like to own 'em all. I'm not a huge Garzke & Dulin fan, but I do eventually want their books on Allied and Axis battleships. They're chock full of detailed specifications and diagrams that'd be really helpful here.

Hobbies and interests


I love anime, and I try to watch at least a couple of episodes of something every day. Back in college I used to keep up with a few different series simultaneously, watching each episode as the fansubbers cranked them out, but since then I've slowed down. I always had trouble keeping track of where I left off and what was going on, and then there'd be a long gap between episode releases and I'd completely lose my place. These days I try to wait 'til I can grab a complete series and watch it all the way through. As a result, I'm no longer on the cutting edge, but I can usually manage to finish watching something before it gets released in the U.S.

I also like video games, but again I'm way behind. I usually wait until I can get stuff cheap, often used. I have a Wii, and I think it's awesome, but I only have a handful of Wii games. I probably play GameCube games on it more often than anything else. I bought a PlayStation 3 while they still offered full backward compatibility, but again, I only have a few games for it and use it primarily for my PS2 games.

I like cars, and I drive a 2005 Evo VIII MR. Before this, I drove a VW GTI 1.8T, which was a fun car, but with a lightly modded, very torquey turbocharged engine and no limited slip it had terrible traction issues. Then I started breaking motor mounts so I got rid of it.

So why don't I write about any of that stuff? Because my other interest, naval history, is way, way easier to find reliable sources on. Also, because I would really love there to be a reliable, organized, detailed, attractive online reference that I can put the name of any ship into and get all the information I could want.