Development

Remove Pesky SVN Files

I recently installed SCPlugin for my Mac which allows a GUI interface to Subversion. One thing I haven’t been able to locate is the SVN export command. So every time I checkout I get all the hidden svn files. Luckily I found this great tutorial from Team BKWLD that uses Automator to recursively delete all the SVN files for a folder.

I also found an AppleScript named SVN Zapper from Alex King that appears to do the same thing.

November 28, 2007   1 Comment

Software Pricing

Software pricing is a sticky subject because of the many different ways to price a product. In this article I will go over some of the most popular pricing schemes and discuss the pros and cons of each.

Per Version

The per version pricing is the way most of the bigger companies price. For example Adobe Photoshop, you can purchase the latest edition and use it forever but to get the latest edition you have to pay an upgrade price.

In my opinion this pricing model benefits the customer more than the company because you can pay once and never have to pay again if you do not need the latest edition.

One Time With Renewals

This pricing scheme is you pay once then have a fee every year to continue to recieve updates and support. From what I have seen this is what most small businesses use because the company continues to get some type of recurring income to help them stay a float and the customer only has to pay a small fee which makes the overall cost of ownership pretty low. The downside to this model is keeping up with who has paid and if they have a valid renewal.

Monthly

This is normally a hosted application that you would pay monthly for. This is a big benefit for the company because they do not have to worry about theft and they continue to receive monthly income while you use the product. Of course the company would also have a larger expensive in servers and bandwidth.

Free with paid support

Free or open source product but you do not receive any support unless you pay for it. This scheme is really in the favor of the customer because they may never have to pay a dime if they do not need any support.

As you can see there are lots of different pricing schemes and although each has advantages and disadvantages I personally like the first two options the best. I believe they have the biggest benefit to both the company and the customer.

November 20, 2007   No Comments

Multi Lingual

Another top feature I wanted to add is the ability for the script to be completely multi lingual. Lucky for me CodeIgniter makes this super easy with their language library. All I had to do was create a new language file (kb_lang.php) and place it in the system/language/english/ folder. Next open the autoload file and add:

$autoload['language'] = array('kb');

Now my language file is auto loaded and anywhere I need a string of text I use:

 echo $this->lang->line('kb_hello');

The only downside is it is a lot more coding than just writing “Hello” but in the end it is worth the extra time to add features like this and it keeps you from having to edit the template files just to change the wording.

October 30, 2007   No Comments

Module System Finialized

Happy Pair

One of the things that is high on my feature list is the ability for outside people to extend the system without touching any of the core files. I am jumping for joy to say that this portion of the script was finished up today. In the rest of this post I will try and shed some light on the advantages of a system like this and some insight in how we accomplished it.

Less Bloat

By keeping the core lean and mean it makes bug tracking easy and keeps the administration trimmed down to what you actually use. What good is a product with millions of options if you only use a couple?

Easier Upgrades

If you do not have to touch the core script to add a feature then upgrading should be painless. No need to worry about every little change you made and document it. Of course if you think it is easier to not use the module the system and hack your site anyway then this will not be the case but that is why we are spending so much time building it this way.

No Waiting

With a module system you do not have to wait on a feature to be released. You have the power to add it in any time you want.

How it works

The module system was fairly complex to setup and I had to create a custom library to interact with the “module hooks” and a custom view file that loads a file from the module directory. The hooks are called through out the script like this:

$this->kb_hooks->call_hook('article_edit', $arr);

Which in turn call a module with the function “modulename_article_edit”.

Wrap Up

I am sure you can probably tell from the benefits listed above that I am excited about this module system and I think you will to once you get a chance to give a test drive. At a later date I will be writing a tutorial on how to code a module and be more in depth on how the backend works.

October 29, 2007   No Comments

Templating With CodeIgniter

I started working on the template system today and thought I would share some of things I am doing. One of the features I wanted was to have an easy template system and it must be flexible enough to not choke if a certain template body file couldn’t be found. Another thing I like to do is have one global layout file and include the body portion where needed. This way you do not have to worry about a header, footer, etc.
Read the rest of this entry »

October 28, 2007   3 Comments