Blog: Shawn McCool

  • CodeIgniter Conference 2012! We're so there!

    Feb 13, 2012

    Excitement is building as CIConf 2012 gets closer! This weekend --the 19th and 20th of February-- I am going to be in London, England meeting a bunch of fellow CodeIgniter developers and checking out some great speakers.

    If you see me there make sure you say hi! I'm so very lonely.

    http://ciconf.com

  • Interview with Laravel Creator, Taylor Otwell

    Feb 11, 2012

    I was given the opportunity to interview Taylor Otwell about his PHP web development framework Laravel.

    We love Laravel (this site was built with it) and we think that you will love it, too.

    You can learn more about Laravel at http://laravel.com. There you can find the Laravel forums which are great for checking out information about new releases and asking questions. You can also join the #Laravel IRC channel on irc.freenode.net is full of smart people who can help to answer any questions that you have.

  • Big Name Hangouts

    Nov 21, 2011

    Google+ Starting in December, we'll be hosting some Designer and Developer Hangouts.

    The first Big Name Developer Hangout is on December 2nd from 9pm to 10PM GMT and open to anyone that wants to stop by. So grab your webcam (or just a headset) and join us for a mostly on-topic discussion.

    The topic for our initial Developer Hangout is: Walking the Line Between Performance and Ease of Development

    Some potential areas of discussion include:

    • ORM Data Models vs ActiveRecord Query Builders
    • Convention Over Configuration Design Philosophy
    • Development Workflow

    Add our Google+ page to your circles to get more information about future hangouts.

    We'll be announcing the Designer Hangout shortly!

  • Sublime Text 2 Review

    Nov 3, 2011

    We're consistently asked about the software that we use to develop websites. Recently, both Justin and I have made a change that we both found exciting. We're using the new IDE Sublime Text 2. We've been using it for close to a month now and we thought that it'd be nice to tell people about it.

    Read more about Sublime Text 2 on their development blog.

    The current version of my syntax highlighting theme, "Soylent Theme."

    To install: open ST2, choose 'preferences', 'browse packages', choose 'user', and drop the file there. You can then change to the theme by going to 'preferences' and choosing it under 'color scheme -> user'. In addition I highly recommend installing "Package Control" and use it to install the "Dark Soda UI Theme" as it compliments my syntax highlighting theme very well.

  • CodeIgniter 2 + Sparks + PHP ActiveRecord Part 6: Form Input and Model Validation

    Sep 27, 2011

    This screencast is the sixth in a series utilizing CodeIgniter 2 (Reactor) and PHP ActiveRecord. I'm fundamentally focusing on PHP ActiveRecord due to the dramatic improvement it provides over raw CI models. I'm using Sparks (getsparks.org) in order to install extensions that will be used throughout this series as I think that it's a system with merit that should be utilized at every opportunity.

    In this episode we go discuss creating input forms, using flashdata, validating data at the model level, accessible attributes, and a number of other concepts.

    Be sure to watch in HD.

    Download the source for part 6.

  • Are You Developing with Your Clients' Best Interests in Mind?

    Sep 16, 2011

    Software and Database engineering / architecture are difficult jobs. It's absolutely necessary to constantly learn more design patterns and to keep up with new developments so that one can implement best-practices. Frequently, web developers who are under-qualified for database architecture jobs end up in that role due to team size constraints or due to management not realizing that there is a need for experienced professionals. We end up with developers obsessing over every small performance hit while remaining somewhat oblivious to the big picture.

    It's important to choose the right tools for the job. By observing basic practices such as reducing the number of queries per page, reducing the number of hits to the server per page, and intelligently caching our data we can keep performance quite high under a heavy load. Should the site become a massive success and performance starts to become an issue then that is a GREAT problem to have. We're building successful web applications and we're making some money. You can then start load balancing your web servers and using data storage patterns such as the "data warehouse" in order to kick your system's performance back up to the top.

    The biggest issue that our clients come against tends to NOT be performance. Instead, it tends to be their ROI (return on investment). The less money that our clients spend developing (or paying us to develop) and paying for maintenance (adding features and generally just making changes to keep up with their business) the more income becomes profit. I submit to you that our primary goal should be to reduce the lifetime cost of the products that we're either building in house for a company or are turning over to clients.

    We can reduce the lifetime cost of our products by:

    1. Using industry standards across all aspects of our development (from database architecture to variable naming conventions).
    2. Keeping our code small and easy to read (code should read like a sentence, variable names should be easy to understand).
    3. Using technologies that are established and have strong community support.
    4. Properly refactoring code when the need presents itself.

    Your Choices Directly Influence Your Clients' Costs

    It's important to remember that code you write is going to eventually enter into the hands of another developer. You may hand a product off to a client who then hires an internal development team. The experience level of that development team is an unknown. It's quite possible that they hired inexperienced developers in order to reduce their costs. The more difficult it is for these developers to understand and maintain your code the more likely the modifications that they make will be of the "hacked up" persuasion. This can violate the integrity of the project's conventions, reduce performance, and reduce readability and maintainability. This turns your product into a long-term challenge for the company involved. It's easy to blame your client for not having hired experienced development, but our profession is one that is easy for amateurs to enter into and is difficult for many business people to understand. Sometimes the budget for an experience developer simply does not exist. It is not our job to predict or judge the failings of our clients but to improve their experience with the product that you created for them.

    By developing your code by standards and intentionally making sure that your code is self-documenting (easy enough to read that you don't need to generate as much documentation) you're reducing the lifetime cost of the software for your client. By using established technologies you're giving yourself and others access to free community support.

    This is the philosophy that leads Big Name's web development decisions. Do you agree with us or does your organization subscribe to a different philosophy?