inicio mail me! sindicaci;ón

Archive for August, 2006

Web/Application Development on a dime

Gone are the days of spending big $$$ on expensive software to manage, develop and deploy web sites, web apps and software. There are so many inexpensive and open-source solutions for source-control, bug-tracking and project management, that there is no excuse, whether you are a three-person or 50-person shop, to be without these invaluable tools.

The list below is be no means complete, but does include the tools I use.

  1. Source Control

    First and foremost for any development task is source control for every piece of code, documentation and proposal that you write. There are many solutions out there and I’ve used a number of them including, CVS, SourceSafe, Perforce and Subversion. But taking into consideration cost, ease-of-use and setup, Subversion is by far my favorite. Subversion is an open source versioning control system released under an Apache/BSD-style license.

    There are tons of great clients for the system, including,

    • SmartSVN
      Client runs on OS
    • TortoiseSVN
      Software integrates with Windows Explorer, exposes all functionality via the explorer tree
    • VisualSVN
      Integrates with Visual Studio 2003 and 2005.

    I’ve used all of these but my personal preference is SmartSVN. Subversion is currently only available on Linux and Mac, but this really doesn’t matter. Hosting companies like Dreamhost, along with other includes features has one-click installation of Subversion. So for $10/month you can setup your own source-control, with the added benefit of hosting in 24 hours.

  2. Project Management

    Both a developers worse nightmare and savior, project management software is a piece of development with the bottom-line of, “get your shit done and preferably on-time”. In my experience, I have used my $.30 notebook, MS Excel, my own custom built tool and even the monster of an application MS Project but they all just seemed to be more a hassle than help. So unless you’ve been on a big rock for the last year, you’ve probably heard of BaseCamp put out by 37Signals. BaseCamp is simple, straight-forward, easy to use, is built using Ruby-on-Rails, is cheap, etc etc… This tool is really everything that I need and doesn’t include anything that I don’t need. The cost ranges from FREE to $149/month, depending on how much storage and many features you need.

  3. Bug Tracking

    When cost is an issue and your development team is made up of three people, open-source applications as Bugzilla and inexpensive web 2.0 applications as 16bugs become invaluable. Both of these applications are really quite adequete but very specific in their target audience. 16bugs is “web 2.0-ish”, very usable, as simple as can be and takes all of 3 minutes to setup. I’ve had a few email exchanges with “the” developer/creator of the application and he/she is very receptive of feedback. You create a company, create projects, create custom fields, categories and your off to many more years of carpal tunnel. Overall it’s perfect for the small development team, but my only gripe, why in the world can’t I create a custom drop-down menu field? Only text boxes? Oh well, maybe in a future release. So if your bug tracking needs are simple, simple 16bugs is perfect. Bugzilla on the complete opposite end if free, packed with features, security and privileges/roles, so I won’t say any more than that. If you want a fairly complete bug-tracking application, you can’t go wrong with Bugzilla.

Prototype library examples

The Prototype library, including script.aculo.us and a few others are a critical part of my development toolbox. These Javascript frameworks provide the foundation for creating interactive, usuable, fast and light-weight web-applications. Below are just a few examples of functions I use all the time.

  1. Ajax.Request
    Take a look at the two functions below. Using the Ajax.Request method you can call a processing file, all that processing file needs to do is output some text who response is passed to the onComplete function, displayProcessIt() and from there, you can generate a complete page of data, hide/show lists elements, divs, whatever you need.

    function processIt(){
      var url = '/path/processing_file.aspx';
      var pars = 'param1='+param1Val;
      var myAjax = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: displayProcessIt });
    }
    function displayProcessIt(strData){
      var strResponse = strData.responseText
      // Do whatever you want with this data on the client
    }
    

    All I know is after I learned how to use this one piece of functionality, my development become that much easier. That’s not to say this technique is ground-breaking or new, I know I’ve written enough “kind-of-does-this” code over the years.

  2. Element.show(), Element.hide(), Element.toggle()

    Yes, I know these are very self-explanatory, but these are three sweet gems. All you do is create a pointer to an element by it’s ID and there you go, hide, show, toggle, beautiful…

    function doSomething(e1){
      Element.toggle($(e1));
    }
    

    Using $ creates a reference to that object by id and toggle…well, it toggles the display of the referenced element.