Jun 14

Mod v1.00

I´ve finally completed the updates and the General Mod v1.00 for geoBlog v1.0 STABLE is released!!

Development Forum thread: geoMods

Download Link: ccmehil downloads

geoBlog: Home

Although the future of geoBlog is in question rest assured that the development of the General Mod will continue, if nothing else it will continue under a new name. This is of course per agreement with the7thQuest.

New to this version? Well I went a little further into the whole concept of categories and I made the index a category sorted index as well as making a new viewcat.php which is basically just the index site with a category specified. If the need/request comes about you can find the code for making your RSS feeds category specific as well in the development forum (or wait for the next release)…

Posted in Thoughts | Leave a comment
Jun 03

GRIFFON – a fusion of motorcycle and scooter.

This was just unbelievable and I want it!!! Of course it´ll be much cooler if it keeps the whole convertible idea!!

Now check out the result of the concept shown above

This thing looks amazing, sleek and fun! I found the link to the thing over on Gizmo to be specific take a look at this article

Ok maybe it´s just a boyhood dream or whatever but this was just too cool not to say something about!

It´s called the Honda Griffon and right now it´s still a concept and not a production model. It was featured in Tokyo motor show 2003 HONDA car & bicycle exhibition.

For anyone out there starting to reconsider the means of transportation this might be an option especially if it keeps the whole convertible idea!

Wallpapers

Posted in Thoughts | Leave a comment
Mar 20

User Changeable Applications, Problems & Solutions

What is a "User Changeable Application"? Why would a person want one and why would a developer make one?

Simple basics questions but with profound effects on the user and the environment. The answers to these questions in themselves are quite basic as well. The problem occurs once the application is set into motion.

Before I get ahead of myself let´s go back and look at each question individually. So onto the first question. "What is a user changeable application?"; in short this is a program that has it´s displays and functions controlled by the users who use the application. OK, before you ask is it smart to leave this in the hands of a user, let´s move on to the next two questions. "Why would a person want one?"; this is also answered very simply. A user wants one because they don´t have the time or money to keep a developer busy with this one application. Perhaps they need the developer to create several applications and their budget only allows them a short period for each application. All in all, everything sounds logical so far, right? Our third question, "Why would a developer make one?", quite simply put, he has no choice, he is hired to do an application and therefore he has to make it. As a developer we all hate to work like that because we feel as though our experience is being pushed aside for the sake of a few dollars.

Ok, now we have the basis for problem. Yes this becomes a problem and not a solution very quickly, if the developer is not careful. The most obvious problem is a conflict of interest and the developer is let go. The not so obvious problem however, is still the biggest. Let me now lay the ground-work for the application.

Task: Database application with email notification

Timeline: 2 weeks

Requirments:

Web interface

Database creation

Database entry

Email notification of new entry

Database viewing

Database Report viewing

Goal: Single application for multiple reports with multiple masks

So as you can see, the developer now has a difficult task. How to provide a simple application in two weeks and still make it expandable for multiple different masks. The developer is given instructions that the masks will be created by the users and maintained by them, their task is only the backend system.

As a developer I know that is hard to take, some of us like to see quality work when our name is attached to it. In this case though there is no choice but to tackle the problem full steam ahead. So what points to do first? What plans do we have to make in order to give the customer exactly what he wants?

Task 1: Database selection, perhaps the customer has a standard perhaps not

Task 2: Programming environment (let´s assume Java for the sake of arguement)

Task 3: What masks are neccessary

Task 1

We have chosen our database, MySQL, it´s free and easy to setup and configure. Luckily the customer has provided support for the setup of the applications and databases. Since you have also chosen a out of the box database solution there are plenty of Report writers available for viewing the data and exporting it to different tools.

Task 2

You have already defined this to be Java.

Task 3

We lay out the masks as follows:

Input

Email acknowledgement

View

Edit

Now how to handle the "generic" side of the application? The easiest way would be to have multiple "hidden" form fields within the HTML masks that control the way the database is accessed and which fields are used, etc.

It is the "generic" side of this application in which lies the problem. You have just now setup and created a completely user driven application. The user can create a new set of HTML masks with a different look and feel and different databases. So at this point you are probably confused about this problem I keep mentioning.

The Problem

I´ll break it down for you. You have several sets of HTML masks all doing something completely independently of each other. You have perhaps 10 user groups now using this system in their daily business and are now depending on it. You have 2 user groups step forward 2 months later and now want changes to the backend for more features. You have 1 user group that has 90 sets of masks and now want to have them interact! As the developer who originally created the application and provided the company with "such power" you are now responsible for getting things back under control.

Now granted, how many of you have come across this problem? I for one have, and therefore I have decided to share my problem and the finding of a solution with all of you in hopes that maybe one of you will benefit from it.

The Solution

The first thing to consider when building a "User Changeable Application" is what technology to use. You have to make the solution changeable and comfortable for your user but the key is to make it "hard" to change. Ok, now I am not saying that you have make it impossible, only that it should not be so easy that the user can run away with it. By making it only HTML based you take the chance that the user will have enough knowledge to let the system get out of hand. I would recommend adding XML files to the mix. Make all of your configuration and settings in XML files. Do not make such a complicated structure with your XML that the user is unable to work with it, but do make one that the user will have to consider their actions before moving forward. The idea is to make the user realize that they have a lot of power at their fingertips and that power has to be used in an appropriate way.

One way to use your XML files is create an accompanying TAG library for using the data. Or if you are not too familiar with TAG libraries I would recommend creating a "replacer" method which will replace a defined tag (i.e. $$dbfield$$) with actual data or text upon loading the page. Now when the user wants to make a new set of forms to go with the application they have to really consider their activities. In short, it is now very easy to work with the data but the user will have more set-up and install time. I also recommend a configuration file the user has to add the new files to, something that requires a restart of the JSP engine in order to take effect. This will eliminate those random creations of the user because they think something might be useful but have no real reason for it. With a restart, the user has to then seriously consider his or her actions before stopping their now running system for a few minutes.

System Task Plain HTML files & XML Configuration files

Effect to User Harder to use

Effect to Developer More effort for Developer

Effect to System Integrity More chance that the system will remain stable and in control

System Task Tag libraries

Effect to User Easier to use and implement

Effect to Developer More effort for Developer

Effect to System Integrity More versitle system

System Task "replacer" method

Effect to User Easier to use and implement

Effect to Developer More effort for Developer

Effect to System Integrity More versitle system

System Task Configuration requiring restart of JSP engine

Effect to User More difficult to update system with new elements

Effect to Developer No real effect on developer beyond the inital routines needed to add this feature

Effect to System Integrity More structured system

By setting some or all of these safeguards in place it would then be possible for a developer to create a "User Changeable" application with less fear of it turning into a monster. Unfortunately, the only sure way for maintaining such a system is to simply not make one. However, as we all know what the customer wants is what the customer gets.

© Copyright 2003, Craig S. Cmehil

Posted in Thoughts | Leave a comment
Mar 12

Web Developers and Ethics

Ethics

Big word with a huge meaning wouldn"t you say? I would! We live in a world so driven by technology and ideas that sometimes people have the same one. OK, never 100% the same but sometimes very close.

Sometimes in a community of users who have the ability to develop plugins or addins for a tool or application you get the occasional overwrap of an idea. This is OK in itself but what happens when a new person comes to the group and puts out one of these plugins that is so obviously a copy of another without giving due credit?

In this case, in my opinion you have 2 choices. First you can whine and complain about it and refuse to play anymore or two you can just go on to improving the original or try and join efforts with the new person.

I mean in most cases these days it"s not exactly like you are getting money for these things it"s just a matter of pride, you know the simply shout out that says hey "I did that!"

For example I recently came across this PHP program, excellent program but from my point of view it needed a few little tweaks here and there something to make it stand out just a bit more. I took a look at the code and realized it was a lot simpler than I had first thought and so I proceeded to make my little tweaks. Well needless to say I started to take a lot of pride in what I had done and I found my self facing a choice.

I can continue on with what I am doing and "remove" what I don"t like, slap a new name on it, ZIP, upload it, call it my own and hope the original author doesn"t catch on and come after me.

I could also contact the author and ask him or her to make the changes for me, and then wait for the new version.

Or I could contact the author with my updates and propose a new slightly modified version, release or update.

The right thing was obvious to me and therefore I did it. I contacted the author of geoBlog, emailed him with my changes and modifications. To my delight I got a very quick response from him and he was very agreeable and therefore I am now online with my modified version of geoBlog and I await to see the new modified version put out for others to download.

So this is yet another positive example of how the online community can work together and honestly share ideas and thoughts. If you are one of those programmers or developers who simply find something and modified as much as you can so you can call it your own then you should be ashamed. You never know when you are going to need help with something from exactly one of those people you just ripped off.

And you definetly don"t know when it"s going to happen to you…

Please folks we all live on this planet and open source programming and developing should be treated with respect and courteousy. Didn"t your mother ever teach you to share?

Posted in Thoughts | Leave a comment