Allan Bogh

About Allan Bogh

I'm an Active Directory consultant, programmer, web developer, database developer, and tinkerer. I am also the administrator of The Open Code Project. I created and moderate r/ActiveDirectory and, am the primary developer of Reddit Uppers and Downers Enhanced (a part of RES). I also have a love of robotics, working with the Arduino platform.

Sample Projects:

  • ImgAlbum - ImgAlbum is a picture album website that includes speedy image delivery using custom GD2 PHP code and folder/subfolder traversal. Other album websites such as Picasa don't include sub-albums or subfolder uploads, so I am developing my own system where a user can upload an entire folder structure full of images and the system will automatically process the images to create albums.
  • Reddit Uppers and Downers Enhanced - Lead developer, improved speed significantly, incorporated other developers' additions with attribution, project is a part of RES and is used by tens of thousands of people every day.
  • RE/Max Properties website - Created MLS replication system, pulling NWMLS XML records using PHP. Created a Google Maps interface to display NWMLS results on the website (no longer in use). Before leaving I created a home value calculator based on the MLS data and make the website into a template system for agents.
  • Stealth Media Solutions - A website and graphic design company that I used to work for. The website was designed by our designer, I implemented the code with rudimentary means compared to the frameworks available today.
  • Photography Plus - Another design of Stealth Media Solutions. This website includes a WYSIWYG editor for the owner to modify pages. It uses PHP, and Flash.
  • Highpointe Church - Flash PoC. Highpointe Church wanted a proof of concept design from Stealth Media Solutions. Our designer made it and I created the webpage in Flash. The customer was very specific about using Flash, although it may not have been the most flexible choice. Custom javascript was developed to resize the background image dynamically (worked best in Firefox and IE).

Getting password complexity requirements with VBScript and Powershell

I was helping with a method to check a user’s password against the domain via a program called UMRA. The idea was to use basic JavaScript validation for some of the password checks, but then to send the validation to the server for true verification. There currently is no process for checking a password without first creating the account and checking the error code from Active Directory. I did some searching and found various different methods from Microsoft, but nothing that hit the nail on the head. Then doing one final Google search for “vbscript domain policy” lead me to this website.

Continue reading

Making DVDs from JVC Everio MOD files using Ubuntu, WinFF, Avidemux, and DeVeDe

I purchased the JVC Everio hard disk camcorder with the intention of quickly copying the movie files from it and burning them to a DVD. Since I use Ubuntu and since the camera automatically detected as a USB hard drive, I did not install the supplied software, opting for open source applications instead.

Continue reading

SQL LIKE vs Equals ( = ) Performance

While helping out a fellow developer I decided to try to determine which method of string searching was faster, LIKE or equals. I wanted to discover the basic result, with no indexes to speed things up, and no thoughts regarding underlying database principals of LIO, disk, or memory access. Just a simple test of speed. We can go on all day testing LIO (logical IO) performance and other variables, but I think they would effectively come to a similar conclusion.

Continue reading

Integrating Real-Time SQL Triggers to manage Active Directory Accounts with UMRA

Triggers allow a set of SQL code to run on several types of SQL actions, such as INSERT, UPDATE, or DELETE. For instance, upon an INSERT, the SQL engine will call the trigger configured for the INSERT action. The trigger specified will have programming logic to perform actions on other systems. With OLE Automation enabled in SQL, the trigger will have the ability to perform actions using COM objects.

Continue reading

Fixing Home Directories with Powershell

I had a customer that reported that some of his student’s home folders were missing and ending up on someone else’s account. This is a very bad thing when it comes to large school districts, as you could imagine. I identified the problem immediately and fixed it but that left us with a number of home directories that were already copied to new locations. I had to find the original owners of these directories and produce a list of the owner and the new directory name. In the process I also produced a list of the students where they had a home directory attribute set but the home directory was missing.
Continue reading

Uploading Logitech Alert Security Video to Dropbox using PHP

Some time ago my house was broken into. My wife had left for a quick walk at a nearby park with our dog and within 30 minutes, at 10:30 in the morning, some people broke through our side-entry garage door and stole anything electronic that they could carry, as well as loaded weapons in a small safe. When my wife came home they escaped out the garage door again, leaving the house a mess. After this incident we decided to get some security cameras.
Continue reading

Automating and Controlling applications with VBScript

VBScript is one of those programming languages that we all hate, but sometimes it’s the easiest one to throw together a solution for a specific problem. This could be anything from writing information to a file, listing AD accounts, to performing more complex user interaction. One of the neater tricks to VBScript is its ability to control running applications.
Continue reading

Export Exchange Mailboxes to PST using Powershell

Exporting mailboxes can be useful when an employee or user leaves the workplace. You may want to archive all of the files on a fileserver and delete the old mailbox. Here I will give you the commands and resources to export the mailbox to a PST and to know what to expect before you run into an error. Continue reading