Code by Kevin, Programming, code, business, and other pursuits
Kevin Walzer, software developer.
Subscribe to RSS Feed
Get a syndicated feed of my weblog.
Site design: Skeleton
PortAuthority was the first substantial application I developed, and while it has evolved and undergone refinements since I released version 0.1 in 2004, its basic feature set has been stable for the past couple of years. That means I've modified portions of it without looking at the way it's structured as a whole. Now, I'm taking another look at the entire codebase, with an eye toward doing a more substantial redesign and overhaul (not just changing icons or otherwise updating the look, though that's part of it).
All I can say is, Yikes. I've learned a lot since I first started working on PortAuthority, and while I've applied those smarts to my more recent programs, they haven't found their way to PortAuthority.
For instance: sometime over the past few months, I developed a little Tcl library that popped up a password dialog box, and then returned the password data to execute a command with root privileges. I got tired of cutting and pasting this kind of code from one application to another; it's the kind of thing that, with a little work, can be made generic and thus usable in any application.
Integrating this library into PortAuthority has eliminated about 500 lines of code. Over the years, I have added near-duplicate-but-slightly-different code snippets to pop up separate dialog boxes for five or six separate commands. That's dumb. Redundant. A waste of time.
Cleaning out this cruft is necessary. It's not the same as rewriting an application from scratch; it's cleanup. The visible result to end users of PortAuthority will be a nicer-looking application; the result for me will be an application that is easier to maintain and update.