Andy Goth

At a Glance

Preferred name Andy
Alias Unununium
Full name Andrew Michael Goth
Short name AMG
Others UUU, 111, EleventyOne
Email address mailto:andrew.m.goth/AT/gmail/DOT/com
Web address
Facebook profile
Facebook page
Home address Midlothian, Texas, USA (south of Dallas)
Programming Tcl/Tk, C, C++, Ada, Fortran, Python, Perl, bash, csh
Music listening OverClocked ReMix [L1 ]
Music performance LSDj on the Game Boy [L2 ], FL Studio [L3 ], guitar, piano
Video games Speed Demos Archive [L4 ], TASVideos [L5 ], Let's Play Archive [L6 ]
Photography Nikon D7000, The GIMP [L7 ], UFRaw [L8 ]
Current employment
Senior Software EngineerL-3 Link Simulation & Training [L9 ], starting 2005
Landlord Del City, OK, and Waxahachie, TX
BS CSE University of Texas at Arlington (UTA), 2001-2005
Master of SE University of Texas at Arlington (UTA), starting 2013
Past employment
Developer/stock boy RLE Technologies [L10 ]
Birthdate 20 November 1983


This photo is from my senior year in high school. That was a while ago. Maybe I'll scan in something newer someday.

I frequently use this as an "avatar" image on forums, etc.

Projects Using Tcl

A/V Sync Calculator
Utility to help fix audio/video sync problems in VirtualDub.
Proposed Tcl-like language.
Snit-based iTunes database reader. Useful with iPods.
iPod music browser. Lists and copies music files from any iPod. (Might never materialize...)
OpenVerse Visual Chat
Internet chat program. My favorite project.
Tcl operating system. What fun!
Networked chess-type game. School assignment.
Access your serial ports over TCP. Hooray.
Execute commands on multiple hosts at the same time. Supports stdin, stdout, and stderr!
Lab 3D
[Canvas]-based 3D viewer. Another school assignment.
System for driving church bells.
See [timebox] at the bottom of the page.
A static-enabled proc which doubles as a miniature object system.
Yet another small, pure-Tcl web server.

If you're interested in a project listed above for which there is no page, ask me about it in email. Oh wait. Heh, guess you'll just have to post a request on this page. Go ahead; I won't mind.

Other Junk I Wrote

Joins parallel lists into a format suitable for [array set].
Utility for obfuscating otherwise-comprehensible list operations.
Sorted Lists
A sordid story of sorting sorcery.
Reads stdin, shuffles the line order, and spews the result to stdout.
Shuffling a list
I seem to have a fixation on sorting and unsorting...
Round Polygons
So soft, so smooth!
The simplest possible socket demonstration
It's even easier than it looks.
A language with no resident interpreter!
AMG's language ideas
Just a few things been runnin' through my head...
Directory recursion
Quite easy in Tcl 8.5.
I apologize for giving you all such a hard time.
A configuration file reader with infrastructure!
Yet another CSV reader.
Chain simulation
A fun toy.
Mahoney Map
An alternative to Karnaugh Maps.

I need to update this list someday...


thx for formatting my stuff!

JM Andy, thanks for your contributions to this wiki...and for cleaning up my page (^:

PYK 2014-05-24: Hi Andy, I reverted your changes to File Watch because so far my policy has been to leave the "literate wiki programming" experiments of RS as-is. Perfecting some kind of Literate programming in a wiki is one of my "to-do" items.

AMG: If you're talking about the "if 0" stuff, it doesn't even work on that page. It's not formatted correctly; there's a missing close brace. This wiki has moved away from if 0 { a long time ago, and very few pages still retain the style. Fewer still are formatted correctly such that the style actually works as originally intended.

PYK: Yes, if 0 is, as KBK says, a pretty dreadful approach. Ingenuitive but dreadful.

PYK: I just made a combined copy/content edit of uplevel with the goal of making the page style more uniform, hopefully improving readability. If you object to changes I made to your content there, just let me know, and I'll fix whatever you point out.

AMG: As aspect already noted and corrected, you duplicated the contents of uplevel onto command. You said elsewhere that you prefer to use external text editors to do your work. This means you made some edit to command after editing uplevel but failed to copy from your editor, instead pasting the contents of uplevel twice.

PYK: Yes, that's exactly what happened.

PYK 2014-06-19: Your recent reversion of my edits to lassign got me thinking about the usefulness of using numbered hyperlinks as bibliographic references. I hadn't previously had that mentality about those, but just considered them ugly and unnecessary breaks in content. If the wiki ever grows superscript or subscript rendering, this feature will be even more useful.

AMG: Slightly off topic, but let me explain the reason I reverted your edits in that one paragraph. First I fixed a stray closing bracket. But then noticed that you had made [args] into args which is incorrect, since I was referring to the [args] command I had presented above, not to the concept of variadic arguments. Plus I noticed that a word was omitted (forget which) in the course of your edits. At that point I figured it was easiest to just revert the paragraph than to change back the individual edits.

As for numbered hyperlinks, I never had a problem with them because I don't care much about ugly, I just want it things to work with a minimum of fuss. I know that's not the best attitude to have when the need for marketing is near, but that particular hunk of code was something only a hardcore Tcl user could possibly understand or appreciate.

My preference is for numbered hyperlinks over retitled links because they're so visibly different than links within the wiki. Whenever I see hyperlink words, I expect them to be internal. That expectation comes from me having used this wiki in the JCW days, long before JDC and CMcC restyled it all. It was extremely vanilla back then.

PYK OK, noted. Regarding command markup, as you know, I've struggled with that issue, and there is some discussion about it on my page. My current habit is to use fixed-width for any string that would be found verbatim in code, letting the reader pick up the usage from the context. This gives pages a clean look, and only causes ambiguity every once in a while. In cases where it does result in ambiguity, it can often be fixed by fleshing out the verbatim chunk so as to provide some more contextual hints. I'd like to see some wiki markup to differentite a command prefix from random chunk of code

PYK 2015-03-05: Check out this history . Any idea what's up?

PYK: OK, disregard. I just saw your note on that page. There's some secret magic to rename wiki pages without losing history. Talk to jdc if you want the sauce. Or just leave a note on my page with the name of the page and the new name for it.