A simple site and database to track things I have worked on and group by tags. It's this site right here. Right now I just have project descriptions, but later I will decide how I want to handle downloads, links, and any other details. I've started to do some CSS themes specific to the tag being viewed.
My mom's art gallery website.
A speed run is a video of a player striving to complete a video game in as fast a time as they can manage. This is not a speed run.
Speed runs cut out any moments that can be skipped, often leaving little or none of a game's story. This Story Run attempts the opposite, speeding up the gameplay and focusing only on dialogue and story moments.
Released as DVD and AVI via torrent and also by YouTube.
A speed run is a video of a player striving to complete a video game in as fast a time as they can manage. This is not a speed run.
Speed runs cut out any moments that can be skipped, often leaving little or none of a game's story. This Story Run attempts the opposite, speeding up the gameplay and focusing only on dialogue and story moments.
Released as DVD via torrent and streamable via YouTube. Also included separate from the main story are compilations of each of the in-game TV shows.
My first in depth .NET project. It was an evolution of CaptureCabTool and I consider it my playground when it comes to making new Kofax utilities.
This is intended as a way to see any stations with open modules in Kofax Capture. This correlates checked out licenses with current database connections. In versions before the License API was exposed only database connections will be listed. This utility should work from 6.1 to 9.0, listing license information from 7.50.857+/8.0.1033+/9.0+.
I wrote this because AC Connection Lister (not written by me) was not compatible with KC8, and as a way to include the most useful subset of functionality from KELU (an internal-only utility written by me) in a public utility.
I wrote this at Kofax for Capture logs in extreme situations, but specifically for Allstate.
LogSquish - 1.0.0.0 - Stephen Klancher
This utility will poll the monitored folder (not recursive) at the specified interval for files above the specified size limit. These files will be moved into the LogArchive subfolder with sequential numbers appended and then zipped. (For example: ERR_0905.txt > LogArchive\ERR_0905-001.txt.zip, then next time it hits the limit: ERR_0905.txt > LogArchive\ERR_0905-002.txt.zip)
Check Enabled to begin polling.
If large files are already present, they will trigger on the first poll. Keep in mind that it may take time to compress large files. (No progress bar will be shown.)
I like to have something to watch while I eat. If I don't already have something I want to watch (or only have something longer like movies) I might go for rewatching a random episode of any of the Adult Swim shows. But I gravitate to ones I've already seen a lot or episode names I remember. There is no simple way to actually chose a random one.
That's where this tool comes in. Give it a directory and a list of extensions and it will scan recursively then allow you to open a random file. I actually built this really quickly one day just to take a look at the interface of the Visual Stuido 2010 Beta I had installed.
An unofficial replacement for the Kofax Capture license utility. Because it gives more detailed licensing information, this is an internal-only utility, but KC Connection Lister contains a subset of these features and is not internal-only. Beyond the features of the official license utility:
- Implements the license API to show which machines are using licenses.
- Can list all known license types.
- Interprets activation codes
- Request activation code directly from Kofax activation server (as if activating)
- Add, Remove, Reorder license servers in ACConfig.xml via GUI or command line
This was a helper app I created so that I could work effectively on SyncFileAndXLS. So the night I wrote that, I had to write this first. Before leaving the office that day I took a snapshot of the 3200 or so files I had to work with using a tool called
Dir2HTML. Then I created this tool which created 0 byte files from that directory listing. Then I was able to test the filesystem changes of my app without risk, without being there, and transferring the massive folder. Years later I made the improved CopyDummyFiles.
A more coherent version of the VB6 helper app CreateDummyFiles, this will copy the contents of a directory as zero-byte files. The intention is to have a filesystem collection when all that is needed is the names and structure. Like when writing a program that will interact with files based on their name and location rather than contents.
Batch Class Rescue creates importable cab files from published Batch Classes in the PubTypes folder. It does this without any access to the Capture database, thus can be used to recover Batch Classes in an environment where the database is unrecoverable but the file share remains.
It may also be used to recover a previous version of a published Batch Class if that version still exists in the PubTypes folder.
This utility probably doesn't work with KTM/Indicius batch classes and definitely does not work with Xtrata batch classes. (Meaning the batch class itself would work, but the utility would not grab the dependent files for other modules.)
Corrupt Access databases (mdb files) can cause problems in a Kofax Capture system and are the reason behind some types of stuck batches. In the case of publish.mdb, empty.mdb, or local\pubtypes, corruption may cause publish or batch creation problems. In other cases they can simply fill the error log with Microsoft Jet Database Engine errors.
Because they are passworded and because Microsoft Access may not be available on a given system these can be inconvenient to check. This utility tries to open all mdb files on both the server and local workstation and lists any that throw errors. It also provides a command line accessible alternative to DBUtil for running a Repair and Compact on Capture mdb files.
To go with this utility, I wrote
Kofax Knowledgebase Article 12661.
Utility to compare which lines are in both files or only one.
Drag a file to each field and click the button. Breaking by Windows linebreaks (CRLF) it will look for lines in the first that match in the second. If matched they will be added to SharedLines.txt, but if in only one, they will be added to [Filename]-only.txt"
I've told the story of this program in a few job interviews...
It was the second week of an unpaid Web Design internship with Orange County government and I finished whatever small tasks I had been given. They wanted to give me something to occupy my time. The task they had that no one else wanted to do was take a folder of 3200 MSDS (Material Safety Data Sheet] PDF files and make sure each had a corresponding database entry. They gave me a dump of the database table as an XLS spreadsheet and told me to look for they matched and correct either one when there were discrepancies.
I started doing it but it was incredibly tedious and slow. I was falling asleep. So I went to them and said, "Look, I can write a program to do this. I'm going to go home and do that." They laughed and let me go. They clearly thought I was making an excuse to go home, but I was an unpaid intern, so they didn't care.
I knew I would need something to work from when I was at home without access to the files, so I used a tool I found to create an HTML list of the PDF folder and took that and the XLS file. When I got home I wrote CreateDummyFiles to create zero-byte files from the HTML list. Then I spent the rest of the night building a tool which would iterate through the spreadsheet looking for matches in the folder. It could auto correct minor differences like spaces to underscores, but if there was no match or auto corrected match, then it would suggest possible matches based on the longest word in the filename.
When I came in the next day I told them I had the program. I assumed they really didn't believe my reason the day before, because they seemed like they didn't know what I was talking about. By that afternoon I used my this program to finish the work. They weren't really sure what to do with me at that point since they expected that going through all of those files might take two weeks.
Surprising them like that definitely got some positive attention. It played a role in the fact that a little later that summer I was changed to a paid intern. And when I went back to school they let me continue to work remotely.
From the utility itself:
Drag and drop a KTM project (.fpr) here.
To ensure that controls are visible and are not lost in negative coordinates, this utility applies the following logic to the coordinates of controls on the validation form:
If left < 1 Then left = 20
If top < 1 Then top = 20
If width < 10 Then width = 20
If height < 10 Then height = 20
A backup of the project is automatically created in the same folder.
Stephen Klancher
2010-03-16
I recreated the map Complex from N64's Goldeneye for Quake 3 Arena.
"The code is basically counting occurances of calls to static methods/constants/variables, creation of instances of class via the 'new' keyword, references to parent class, references to a class via PHP5 Type Hinting. Notably, it does not count calls to instance methods/constants/variables because then I would have to try to keep track of variable type while parsing source. Though the calls aren't being counted it terms of numbers, the dependency on the class of the instance variable will still have at least one reference and be mapped as long as there is either a 'new' or a type hinted parameter. Which... there totally should be."