taking Care of Business…

Over the weekend I got in contact with someone who had used my OBJ -> SMD converter and had found a bug. The issue was pretty easy to fix, so I took some time to fix it. It was pretty straight forward, and has been attached, below.

Gneu Manager

The last week of development of our project manager has been slow. Being tied up in other things has definitely impacted my progress, but for the most part, I’ve just been unmotivated. Today we talk about why that has changed.

Many parts of this application are very difficult to pin down. It is new, and for that matter It’s fucking insane. But when it finally falls into place it will definitely usher in a development strategy that will blow away my previous endeavors. In a previous post I made some very impressive statements to a few peoples, and the emails and pm’s I received were great, so thanks to you guys. The system that I am pulling together for gneu is going to blow the hinges off of small folks all around, and I hope to be able to share the wealth. Mike and I are going to begin putting our noses to the grindstone in the coming week to put another great feature together.

Almost every application is bound to go through phases of development and versioning. PHPBB for example updates about once a month. It is freely available and at times very easy to install. This is, however, a chance in a million, because I hate having to update code directly… EVER. Why? Because It’s a web application. Every web application is based on the same idea; build an interface to a database or other tool. Not a whole lot is really written in PHP/ASP.net any more, doesn’t really make sense when people are usually looking for information any ways. Why the hell aren’t there push button updates available for these tools? Why do I have to drop directories and overwrite files? Why do I have to do anything more than use the given interface to interact with my application?

phpbb-update-flow.jpgI put together a demo of a solution over Christmas break for my manager. The idea is not at all simple, but its definitely a lot of fun, code wise. Allow your code to do all the heavy lifting, It’s a rule that you and I have come to know and love. Why should I have to download the file from your server listing only to have to upload it onto my site anyways? The confusing thing is that these tools are already looking at their sites from yours in order to check the versioning, at least PHPBB is. PHPBB is not the only offender. From what I have seen, save mantis (the bug tracker software I am using, which still has some weird updating procedures that I don’t get…), sure there are some very popular tools out there, but they don’t update well. Drupal takes 20 mins to an hour to get taken care of; PHPBB, half an hour; WordPress – 20 mins; Media-wiki a whopping 3 megs rarred – 30+ mins to update. All of these times are bandwidth driven, of course, but shit man. All of this is time that you are spending trying to get their tool working, not actually working with the tool. Let alone the lay person may not even know what the fuck an FTP is, or how to use it to update their site.It is clear to me that things need to change, and they need to change in favor of the lazy programmer. Here is the idea – Leverage PHP and Perl to FTP a file over to your server and allow it to update the files, with no user interaction. There is a step further that can be taken though, which I will explain later. Many folks look at my suggestion and say that I’m out of my mind. They need the control! Well go the hell on and keep doing what you are doing. I plan to implement this tool as a feature for admins to be able to cater to their power needs, anyways. There are levels here.

Laid back – Admins will be able to use their application without ever having to upgrade the tool by hand. The application will take care of everything in an automated fashion.

Leery – Admins will be notified that there is an update for their app, and they would have the ability to say when to begin the process. Once the process has begun it will automatically FTP and update the site. As an option this may be able to be queued up and run at a certain time.

Frightened – These admins are able to take part in each step of the process. They get notification of the update, choose when to transfer it over, See a list of every file being updated, and will be able to say when to update the app.

Crying Wolf – The security self-conscious admins will be given notification of the update, but won’t allow any of the automated functionality to be used, as that would clearly be an issue with these folks. =(

As a secondary idea, I came up with this idea while modding HL2. Updates don’t have to always be entire files. Sometimes, more like often but ill relax the terms for now, files only have small changes to note. When an update is posted to the website a file will be created noting all the small updated files and their changes. This single file will contain a unified unix style diff of the changes and will be implemented as necessary. The main focus here is that you no longer have to download 70 200KB+ files when you only need to change 100 lines of code & commenting.

There are some points that I skipped over, but I’m pretty sure they are obvious and will be covered well enough that they need not be worried about, i.e. Shutting down the site while the update goes through, files not being updated completely, bad updates, and so on.

I will break this now and let you guys get some rest for your eyes…
Continued tomorrow.