Featured Posts

Supreme Court Rules Against FCC, Net Neutrality Not a good day for net neutrality... A federal court threw the future of Internet regulations into doubt Tuesday with a far-reaching decision that went against the Federal...

Read More »

The Fog Machine has Arrived My Chauvet Hurricane 1300 arrived today. First thing's first--immediately unpack it, add some fog juice, and play! [caption id="attachment_81" align="aligncenter" width="225"...

Read More »

Realestate Manager 2.0 Picture Preview Since Real Estate Manager 2.0 is now almost ready for release, I figured I would share the differences between the current version (1.1) and 2.0. To start things off, the...

Read More »

Automotive Manager Photo Update It's been less than 2 months since I started on Automotive Manager. In that time, I've taken the thing from next to nothing to an almost complete product. I'm not sure how...

Read More »

The New GreeneCountyIndiana.com Since about March I have been working (rather slowly) on a new content management system for GreeneCountyIndiana.com. Along with it comes a new layout and many new features. The...

Read More »

Chuck’s Blog Rss A scary bee!!!

Realestate Manager 2.0 released

Posted on : 19-11-2009 | By : Chuck | In : New Deal Multimedia, Programming


Version 2.0 of New Deal Multimedia’s Realestate Manager software is now available. I’ve been working with one of our current clients to upgrade them from 1.1 to 2.0. They are also getting a new website template in the process, so it’s taking longer to upgrade.

The New Deal Multimedia website has not yet been updated to reflect the new version. That’s another project me and Kegan have been busy with. Expect to see some changes to the main New Deal Multimedia website in the coming weeks.

Now would probably be a good idea to write an installation script for Realestate Manager. So far all of the installs have been done by hand…

There are not enough hours in the day.

Realestate Manager 2.0 Picture Preview

Posted on : 01-09-2009 | By : Chuck | In : CakePHP, New Deal Multimedia, Programming


Since Real Estate Manager 2.0 is now almost ready for release, I figured I would share the differences between the current version (1.1) and 2.0.

To start things off, the Admin control panel home page has been completely revamped. The old one might as well have been a blank page. The new version provides links to the the most important tasks, and also includes software update notifications. (click for full-size images)

Version 1.1

Version 1.1

Version 2.0

Version 2.0

Up next, the Listings index page has been revamped. In version 1.1 all of the listings in each category was displayed under the category heading. This was problematic since listings could be in multiple categories, which led to the same listing being shown multiple times on the index page. In version 2.0 there is a dropdown menu so you can either select which category to view or view all of the listings.


Version 1.1

Version 2.0

Version 2.0

The next biggest improvement is in the area of photos. In version 2.0, the photo ordering (numbering) system has been improved, and we have removed the ‘default’ checkbox. The image with the lowest order will now be considered the ‘default’ image for a listing. You can also change the order of every photo for a single listing at the same time.

Version 1.1

Version 1.1

Version 2.0

Version 2.0

The photo uploader has also been improved. You can now queue up over 25 separate images to upload for a listing at a time. Descriptions can be entered for each image. Once you have all the photos added to the queue, simply click on the “Upload Queue” button and watch as it uploads all of the photos.

2.0 Photo Uploader

2.0 Photo Uploader

The deleting of items (listings, categories, photos, etc) has also been improved. Deleting items now uses javascript-based dialog boxes to ask you to confirm if you want to delete an item. Upon confirmation the item will be removed from the page right before your very eyes.

Version 1.1

Version 1.1

Version 2.0

Version 2.0

The last new feature I’m going to show today is the new static page manager. Now you can edit your static pages from directly inside of Real Estate Manager. A WYSIWYG editor allows you to create pages with controls that will be familiar to anyone who has used a word processor such as Microsoft Word.

Version 2.0 Page Editor

Version 2.0 Page Editor

Version 2.0 is now complete as far as new features go. The next few weeks will be spent testing the software and fixing bugs. After the testing process is complete we will try to get a live demo available and release the software.

If you are currently using version 1.1and would like to spend some time familiarizing yourself with the new version before your site is upgraded send an email to support@newdealmultimedia.com and we will get a test environment set up for you.

Realestate Manager 2.0

Posted on : 14-06-2009 | By : Chuck | In : Programming


The past few days I have been working on version 2.0 of our Realestate Manager software. It is a complete re-write from previous versions and is based off of the same code-base as Automotive Manager 1.0.

By having both Realestate Manager and Automotive Manager based off of the same code, it will be much easier to release updates for both pieces of software. This doesn’t mean that they are two versions of the same software, but they do share a rather large amount of code.

Since they are based off of the same code, most updates to one piece of software could easily be applied to the other. For example, the first release of Automotive Manager doesn’t include usergroups. Realestate Manager 2.0 will include usergroups. The same code that enables usergroups to function on Realestate Manager can be copied to Automotive Manager and function with a few small modifications.

Software updates have been rather sporadic since we started with them. They have been composed mostly of bug fixes and fewer new features. Once Realestate Manager 2.0 is released, I intend to do a better job at keeping them updated with both bugfixes and new features.

I guess I should quit writing and get back to work.

Changes over the years…

Posted on : 28-05-2009 | By : Chuck | In : HTML/CSS, MySQL, PHP, Programming


Never has a random IRC quote been so true…

<@Logan> I spent a minute looking at my own code by accident.
<@Logan> I was thinking “What the hell is this guy doing?”

Me and Kegan (well, mostly Kegan) have been working on moving client sites over to our new web server. We’ve also taken the time to go through the old websites and ensure that the little blurb in the footer reflects our new name, New Deal Multimedia, LLC, instead of the old Kegans Kandy name.

During this, I have looked at quite a bit of my old code, both PHP and HTMl/CSS. I wont lie, on more than one occasion I found myself thinking “what in the world was I doing?”

Its really interesting looking at how my coding habits have changed over the past 3-4 years. I have seen more than my fair share of code that I am amazed still works.

Perhaps this is why when I go through and do updates for software (Realestate Manager, Automotive Manager, etc) I usually want to start from scratch.

I wonder if in a few years I will look back at what I am writing now and wonder “what in the world was I doing?”

Automotive Manager Photo Update

Posted on : 08-04-2009 | By : Chuck | In : HTML/CSS, MySQL, PHP, Programming


It’s been less than 2 months since I started on Automotive Manager. In that time, I’ve taken the thing from next to nothing to an almost complete product. I’m not sure how I did any coding without using frameworks before. It makes everything go so much quicker.

So, here’s the screenshots!


The listings index page. This shows all of the categories and the number of listings in each category.


The listings view. This shows all of the listings, along with an image. The information that is shown can be modified by editing the view file.


Viewing the details for a listing. Each picture can be clicked on to be enlarged in a Lightbox window.


Part of the Add Listing form. For added flexibility, listings can be placed in multiple categories.


The photo uploader. Multiple photos can be queued for upload by using the SWFUpload library.  A description can be given to each picture before it is uploaded.


Deleting a listing. If you have javascript enabled, you get this modal popup. Automotive Manager will be the first of my software to make use of modal delete windows. When you delete the listing it will be removed from the page using all of that fancy web two point oh ajax stuff.

That’s all the pictures for now. I’m still in the process of testing the software and adding the finishing touches. I have to have it ready to turn in as my class project in a couple weeks, so a live demo should be available around that time.

Automotive Manager

Posted on : 17-02-2009 | By : Chuck | In : MySQL, PHP


Back in 2006, I created an application called Realestate Manager, which is essentially a realestate listings system. I had always talked about doing a similar system for car dealerships, but I never seemed to get around to actually doing it.

Until now.

One of the classes I have to take for my major is called “Systems Development.” Throughout the course of the class you must plan and develop a software project. Automotive Manager would be a perfect project for this class. I already had experience with listings systems from Realestate Manager, so this would be an easy project.

Unlike Realestate Manager, Automotive Manager is being built on the CakePHP framework. I eventually have plans to convert Realestate Manager over to Cake as well. this will allow me to easily share a large portion of the codebase between the two systems. When I make an update to one system, it will be fairly simple to make the same update to the other system.

for those of you questioning if a framework makes things easier, get this… The first line of code for Automotive Manager was written February 3rd. I had a nearly fully functional admin panel in under two weeks of working on it in my spare time. All that’s left on the admin-side is some picture uploading work and a static page editor.

Look for more news on it in the coming weeks. I have to have it fully functional in about 8 weeks, so there will probably be some updates around that time.

New GreeneCountyIndiana.com CMS: Modularity

Posted on : 08-07-2008 | By : Chuck | In : HTML/CSS, MySQL, PHP, Programming


Modularity is a very important part of writing software. A modular program will contain various ‘modules’ for different functions used throughout the projects.

The CakePHP framework (which the CMS is being built on) makes it easy to write modular code, by use of helpers, components, behaviors, and elements. For those unfamiliar with Cake, it is a MVC framework written for PHP. Helpers and elements are used for views, behaviors for models, and components for controllers.

The past few days have been spent writing various modules for the new CMS. The Tagging system makes use of the Tag Helper, which handles displaying tag lists and the adding/deleting of tags. The Basics Helper has convenience functions for pre-configured pagination and various dialog boxes.

The greatest advantage of helpers is the re-usability in code. For example, the following code:
echo $basics->setupDeleteDialog(array('elementToDelete' => 'div.newsitem'));

is all that is needed to handle the Delete Item dialog. I just add that to the view for each controller (News, Pages, Photos, etc), change the elementToDelete, and viola! I now have a functional delete dialog. If I want to make changes to the way the dialog functions, I merely have to edit the code in the helper file, as opposed to editing code in every single file that contains a delete dialog.

The current CMS makes little to no use of helpers, which makes it extremely difficult to update parts of the website. Fortunately, the new CMS is actually being built with modularity in mind.

LaptopKiosk Progress

Posted on : 31-05-2008 | By : Chuck | In : C#, Programming


Work has been progressing rather smoothly on the LaptopKiosk project mentioned in the previous post.

The state system is now functional with two states, Main and Weather.

The Main state has a functioning clock and rotating background images. This all works fine on my development machine, but the changing background images seem to freeze the program for about 5 seconds on the laptops. I know why it does this, and i know what needs to be done to fix it, but i’m still working on getting that fix translated into code.

The Weather state currently grabs weather information every minute from a local weather station using the WeatherBug API. Its GUI is certainly far from complete, but I plan to do more work on it after I get the problems fixed with the rotating background images.

Overall, for being the first program I have ever written using WPF, and only the second program I have done using C, progress has been going extremely well. I plan to write up more code-based posts in the future.

Old Laptop Project

Posted on : 19-05-2008 | By : Chuck | In : C#, Programming


I recently acquired 6 old laptops from my old highschool. Old Acer TravelMates. 500MHz processor, 160MB RAM (according to windows), and a fabulous 800×600 max resolution screen. Each of them have broken screen hinges, so basically the only thing holding the screen on is the ribbon cable.

So what do you do with 6 old laptops that can’t be used for any real “work”? Turn them into a digital picture frame (and more) of course!

Thus the project, currently named LaptopKiosk, was born. Yes, it does need a better name. If you have any idea, feel free to tell me.

LaptopKiosk is basically a digital picture frame, clock, calendar, weather machine, and news machine, all in one. Each laptop will be modded to look like a slightly fat picture frame. After modding, they will be placed in various locations throughout my house.

Unlike previous software projects (like ConceptTower which I haven’t touched in ages), I decided to do some mockups of it in Photoshop.

LaptopKiosk Main ScreenThe Main Screen has a filmstrip of pictures at the top. The system will slowly scroll through these and set each one as the background. There is also a large-font clock in the center of the screen. The bottom of the screen contains the power button, options button, and the current state (screen) button. In the main screen weather information and a random news article are also included.

LaptopKiosk Weathe AlertsFrom this system you will be able to view any weather alerts for the area (and configure certain alerts to play sounds!)  It will also include current weather conditions, temperature, and hopefully a dopplar radar.

There is more to it, but this post is getting too long, and I haven’t worked out all the details on the other features yet.

Expect a few more posts on this, until I either finish it or forget about it like I did with ConceptTower.

Firefox and border-collapse

Posted on : 30-03-2008 | By : Chuck | In : HTML/CSS, Programming


2/8/12 Note: This was posted in 2008, when Firefox was around version 3. I no longer use this template, so this problem may be fixed with newer versions of the browsers.

While working on the new website for Kegan’s Kandy Web Services (the website development business me and my friend Kegan run), I ran across an interesting bug.

Firefox border-collapse bugFirefox seems to have some issues with the border-collapse CSS property where it will render the left border 1 pixel to the left of the table as seen in the image to your right. This can be solved by using border-spacing: 0; in place of border-collapse: collapse;

All is well right? It now works fine in Firefox and Safari, but guess which browser is all messed up now?

IE does not understand border-spacingInternet Explorer, as usual, renders it completely different. It doesn’t understand the border-spacing property, so it inserts spacing between the border and content area.

So, now Firefox is fine, Safari is fine, but Internet Explorer is broken. If you change border-collapse to “collapse” Firefox will be off by 1 pixel.

What’s the solution?

Use conditional comments to give IE border-collapse: collapse; while everything else gets border-collapse: separate;

In your main stylesheet file, give the table element the following properties:
border-spacing: 0;
border-collapse: separate;

Then, use conditional comments to give Internet Explorer border-collapse: collapse

<!--[if IE]>
<style type="text/css">
table#wrapper { border-collapse: collapse; }

Here is the resulting code I used to fix the problem for the new Kegan’s Kandy website

table#wrapper {
width: 800px;
margin: 0 auto;
border-left: 1px solid #ab9666;
border-right: 1px solid #ab9666;
border-top: 0;
border-bottom: 0;
border-spacing: 0px;
border-collapse: separate;

<!--[if IE]>
<style type="text/css">
table#wrapper { border-collapse: collapse; }