Michael Burgwin on LinkedIn

 "heh" - BC_Programming

BC-Programming Downloads
BCSearch File Search Application
Current Version:
BCSearch is a Search Application written to demonstrate the abilities of My Class Library, BCFile. It expanded however into a useful program in it's own right, as well. It's main advantage over the basic Windows Search is that it can filter results through a number of different "filters", Each filter can be used to filter files based on their name, a file mask, attributes, contents, the contents or number of Alternate Data Streams, and if that's not enough, a VBScript function that is passed the BCFile.CFile Object can be used to filter on that objects properties.

Update: 2.1.0

Fixes a few bugs and crashes with the program. Stop button is actually usable.

update: Version 2.0.0

It's been a while, but I finally decided to release the latest version of BCSearch. This version incorporates quite a number of new features. The intended "actionfilters" functionality is disabled currently (you may uncomment the appropriate portions of the Menu XML file to re-enable the feature) I also added an easter egg that I'm sure will be quite amusing to those who find it.

I also added the "simple" filter mode. At the moment it provides a file mask and the ability to use a regular expression for that file mask in a search, but that's it.

I also added a splitter bar that splits the upper and lower panes and allows one to size them as desired. No doubt this has added about 500 new bugs to the program.

When trying to create a working setup, I found issues whereby the program crashed on Vista nad earlier but crashed on XP. since I haven't yet tested this on 2000, it's fully possible it still crashes there, as well. I managed to hunt down the problem (or more precisely, I haphazardly changed things until it seemed to work) and it no longer crashes on startup.

update: Version 1.9.00

This version has seen the squashing of several listview related bugs, culminating in a major "fix" for the VBAccelerator listview. Technically, the way it was originally allowed for a few predetermined sorting modes. Since BCSearch "formats" the size data as KB MB, and so forth, sorting numerically on that column would not be desirable. What I was doing was placing the size in a certain "itemData" field of each listitem. This worked. Except that itemData cannot hold a number larger then around 2 billion, or about 1 GB. files larger then this still displayed properly, but the overflow error meant they were sorted as 0. I popped open the VBAccelerator ListView control and plopped in a new Event for custom sorting, which I now use for the size column. (not the size on disk column, which is simply something I forgot until just now.

the Filters are now added, removed, and edited via toolbar buttons on a commandbar control that sits to the left of the filters listview.

Note: Some users have reported errors regarding already present copies of dll and ocx files the installer tries to copy. Any OS that has System File Protection (2000 and up) should have the proper versions of these files already installed- therefore, this error can be safely ignored.

Download BCSearch
BASeCamp Script Language
Current Version:
BCScript is a Scripting language developed as a test of the power of the BASeParser expression parsing library. It supports most programming constructs. However. It has one fatal flaw- No documentation as of yet. The basic premise was as a test of the Evaluator BASeParser XP, which is the second iteration of a Expression Evaluator I've written. There are a few sample scripts that should make it clear exactly what is possible.
Download BCScript
BCStreams Alternate Data Streams Viewer
Current Version:3.4.2
BCStreams: Alternate Data Streams Enumerator. Similar in function to the LADS tool available elsewhere. Command-Line Application written in Visual Basic 6.

UPDATE: Version 3.4.2: no longer chokes on quoted filenames. tidied up /h output.

Download BCStreams

a site devoted to providing free, advanced source code to Visual Basic programmers since June 1998 and now also to the .NET and C# community. Specialities here are user interface, controls, the Windows API, XML and no-compromise code. Everything is edited, comes with full source code and is available under a relaxed open source licence.
Poing: Arkanoid clone
Current Version:1.6.1
Poing- intended for people who are into masochism and also enjoy arkanoid. I made this many many years ago (just look at the date on the splash screen). I only recently dug it out and fixed a few long -standing bugs.

Update: 1.6.1 now uses DirectSound and DirectMusic for sound and music functionality. (music is supposed to loop but doesn't for some reason. This should be fixed in the next release.

DirectSound was a tough one; the main reason I decided to switch was that, for some reason, I was causing playsound() to leak. This often ended up with my audiodg.exe process consuming over 4GB of RAM whereby it should only get around 10 or 12K.

New version fixes that issue.

Download Poing
A Snake game. What else can I say?
Current Version:1.2
Much like Poing, this was an old project that I wrote many moons ago. recently I touched it up and fixed a couple of bugs, added some things, etc- and figured it was worth uploading.
Download Walls
Spool part 2
Part 2 of my award winning* movie trilogy.

* actually, I haven't won any awards. I made that up.

Visit Spool part 2
Spool part 3
Part three of the series.
Visit Spool part 3
BASeParser .NET
BASeParser .NET
Current Version:1.1.0
BASeParser .NET is my .NET rewrite of my Visual Basic 6 BASeParser XP Library. This download is just a zip of the project folder, so it contains all the source as well as the binaries to both the library as well as a few test projects.

Update, Version 1.1:

Fixed a bug that broke function parsing. Not sure how I missed it the first time.


Was a tad bored of BASeBlock so fired up this project. messed around, and fixed quite a few issues and added features. Now, it "expands" lists/arrays properly. For example, Sin({4,5}) is evaluated properly; this goes for operators as well, so 5-{2,3} will give you a list of values, {3,2}; and it includes when both operands are arrays/lists. This is handled within the CoreOpFunc class, so it isn't automatic behaviour for new classes that implement new functions and operators. I also added the round() function. I intend to obviously add a bunch of other functions, but I don't know when that will be so I just tossed this up while I was... in the area, I guess.

Download BASeParser .NET

Space And Science: a Site dedicated to discussions and articles about space, science, the universe, and other things. (Note: hat not included)
Spool Part 1
"Agent Stick and the Spool of guts, part 1" a ridiculous and silly flash movie I created some time ago. I still work on it from time to time (the current "in development" version is part 4
Visit Spool Part 1
The Old New Thing
Exceptional Blog by Raymond Chen revolving around windows quirks that are usually the result of remnants from older documentation or behaviours.
Visit The Old New Thing

Comedy-oriented site/blog that based around reviewing various products. recurring themes include making fun of terrible cheap LED-based games, interspersed with philosophical discussions about the emotional state of onions. Excellent. Funny. Recommended for those with a sense of humour. Those who don't- go away. you aren't wanted nor liked by anybody.

Curious perversions in information technology
A simple stay alive for as long as possible
and then stream slews of curses at the game when you die game.
Current Version:0.3.1

BCDodger is a simple game written in C#. Your mouse controls a group of spinning objects, which represent your possumist comrades. You must move them to protect them from the flying mercedes logos, which represent various features of mercedes automobiles.

When a mercedes Logo touches a possum follower, it converts that possum follower to the dark lord mercedes, and you lose them as a comrade.

It might be best to not have a story....

To run this, run the EXE in the "debug" folder (BCDodger\BCDodger\Bin\Debug\BCDodger.exe)

This is because I'm lazy and all the resources are in that folder.

the code already supports an APPDATA folder containing said resources, but that would mean there is an installation step, and at the moment I'd rather not have to deal with the woes of MSI installers.

Also: I recommend running the "demo" (from the file menu) before you play a game. if you play a game, get game over, and then play the demo, the background stays red and the timing is off. (easy fix, but I figured I had been postponing releasing it for long enough).

UPDATE: Thanks to Tux2 (of http://www.jrtechsupport.com/) there is now a Mono compatible version. This can be downloaded here.

The main reason changes were required was that I opted to use a sound library that is only works on windows. More annoying is the general lack of sound support in the otherwise pretty complete .NET framework (to my understanding .NET 4 adds Sound capabilities). Oh well.

Download BCDodger
The Tomato
The Tomato
A very short little animation. About a tomato that is evil or something. I'm not really sure.
Visit The Tomato

My stomach still hurts from the content of this site. It will certainly entertain me for several days as I watch the FAR TOO MANY videos he has (not that I'm complaining).
List 16-bit Tasks
Current Version:1.0.0
No- not World of Warcraft Tasks... Windows On Windows, the 16-bit "emulator" that is used by 32-bit versions of windows to run 16-bit applications and by 64-bit versions of windows to r un 32-bit applications. This particular program is designed for the former case.
Download WOWTask
A Pixel Counter Application
Current Version:1.0.0
A simple application for counting the unique colors in an image. Originally created to make creating pixel art from a bitmap in Minecraft easier.
Download PixelCounter

URL Unshortening service.
BASeCamp JobClock Application
Current Version:1.6.2

BASeCamp JobClock is an Application- or, rather, a suite of applications, that facilitates the management of employees in a Assignment-based scenario. Examples of such a situation includes repair shops or IT departments. It is designed for use in a moderately distributed scenario, where one person- or a small group of people- add jobs to the list of those that need to be done. Employees/techs then sign in to work on those tasks, and clock out when their work concludes. This allows for the tracking of how much time is spent on a given task by each employee as well as how many man-hours went into the task in total, for use in billing. It consists of three parts: the Administration program, which is used for management of users, orders, and general database maintenance. A "Monitor" program, designed to be used for a supervisor to keep track of when techs are available and who is working on what, as well as what Jobs require attention. lastly, the "Client" Application, which is designed for use on a touchscreen system, allowing employees to enter their own ID to clock into and out of a given order. Orders can be scanned (via a barcode reader that uses keyboard input) or 'typed' using an on-screen keypad.

Download BCJobClock

Write a Review. Read a Review. Ask for a Review. Discuss a Review.
Review sharing site. Also has excellent unboxing and reviews of new hardware done by it's own staff.
Recursive Zip Extractor
Current Version:1.0
This program is designed to be used to extract zip files recursively; that is, zip files which contain other zip files. The file names are created based on where the actual file is within the heirarchy. One current limitation is that no paths are preserved and files that exist in folders within the zip file will not be extracted (at least as near as I can tell). I might revisit and fix that limitation in another version.
Download DeepUnzipper
BCDodgerX Game of Dodging
Current Version:

BCDodgerX is my "rewrite" of the older BCDodger. BCDodger was my first serious foray into C# Programming and .NET, and it has a lot of issues. Since I hadn't dealt with XNA much and the concept of the game was simple, I decided I would rewrite it using XNA. I originally started it in XNA 3.0 with VS2008, but at some point swapped over to VS2010 and XNA 4.0, even though I don't use any XNA 4.0 features to my recollection. Oh well.

The "Installer" program is actually a self-extracting executable which extracts the files that were created from the XNA publish tool and runs the XNA setup program.

And here it is; BCDodgerX. It's very much a early version.

  • Requires the .NET framework, version 4.
  • Resolution is "locked" at 800x600. This will be an option. Eventually. main issue is that different sizes could change the difficulty, though.
  • High scores are saved. The High-Score handing is done by the exact same code that handles High-Scores in BASeBlock, but some of the features (such as managing different score lists which is used for levelset-based handling in BASeBlock) are not used. The highscore file can be found in %appdata%\BCDodgerX.
  • Since I haven't dealt with XNA before I'm not 100% sure what is needed to properly install it, so I just used the XNA publish tool.

Download BCDodgerX

Where we CAN fix the broked stuff Is your computer giving you the "Blue Screen of Death"!?
Do you have viruses?
Do you need to know how to use a program for that Boss presentation tomorrow?
Wanna have a nice shiny website, but don't want to pay a fortune?
Just wanna know how to turn the blasted thing on?!
You have come to the Right place!
This site and service is run by one of my good friends. I warn you: he might be crazy. He'd probably look really good in a wizard hat, for what that's worth.
Simple Note Taker Application
Current Version:1.0
BASeCamp BASeNotes, a simple WPF Program I wrote ages ago to first get a grasp of WPF methodologies. uses the WPFToolkit. It's sort of like some weird combination of Notepad and that old Windows 3.1 Cardfile. Requires .NET 3.5.
Download BASeNotes
A .NET Exception Event Viewer Tool.
Current Version:
Lists Exceptions from the Event Viewer that represent unhandled Exceptions from .NET Applications.
Download NetExceptions
Bulk Sound File transcoder
Current Version:1.0.1
A Bulk Music Transcoder. Designed to allow me to easily transcode my .flac music completely to a new duplicated folder that has .mp3 files instead, such that I can use those files with devices that cannot play .flac files.
Download Recoder