Blog Posts

BasecampRecently I began working on a project that will integrate with Basecamp's API to fetch and sync data back and forth. My approach to the application was simple. I began by designing the interface, marking it up, and getting some basic jQuery interactions functional. After a few hours it was time to begin working with Basecamp's rather simple to use API.

Read More Comment on This


MAMPUntil recently, I've had the ability to perform all of my ColdFusion (and other various web) development directly on a server of some sort. My IDEs have always included integrated FTP or RDS support, so the workflow was pretty seamless, and I never had any concerns. After we finally decided to embrace SVN for our source and version control solution, my day-to-day operations were about to change. Instead of working directly on a server, I would have to begin developing everything locally and committing my code changes into SVN for an eventual deployment to the beta server. Setting up ColdFusion isn't terribly difficult to do locally, and typical installations and configurations can take less than 30 minutes since Adobe bundled a "built-in" web-server to be used with ColdFusion for simple development environments. That was just it — I knew that my requirements for a development environment were not going to be simple. For one, I would need the ability to run multiple websites concurrently. Secondly, I would like the ability to tweak settings and install additional modules to my web server if need be.

Read More Comment on This


I've used a half dozen modal window plug-ins for jQuery and most have pretty extensive features and options. Somehow I tend to always come back to jQuery UI's dialog. They've done a pretty fair job at creating a versatile and customizable modal window feature. Any container can be turned into a modal window with a simple .dialog() method chained on. The problem that I ran into recently is that when you launch the dialog window, the only way to close is by doing one of the following:

  • Clicking the close button in the top right.
  • Pressing the "escape" button (if the dialog was configured to close on escape).

Read More Comment on This


D2W - Designer/Developer Workflow ConferenceAs I arrived at the airport on the morning of June 18th, 2010, I admittedly was not exactly sure what to expect of Dee Sadler's upcoming designer/developer workflow conference. It was still quite a mystery where this idea came from, and how it would play out. Several months prior, I was highly encouraged by a good friend (Doug Boude) to volunteer to speak. With the exception of our local CFUG meetings, I've never spoken at any other event. Doug and I batted around a few ideas before finally settling on the idea of a two part session — Part I - JavaScript Libraries for Designers, and Part II - JavaScript Libraries for Developers (but more on that later).

Read More Comment on This


I was recently asked for some jQuery help by a good friend. The task at hand: Hide all inputs in a given form and display their values in a span. My first thought was how easy this was going to be using just a few lines of jQuery, and then I began to analyze why this would make a great blog entry. I've written literally hundreds of content management applications. I typically build a form to handle both the addition and editing of records from my database. I then create a "view detail" mode of some sort. I've always disliked the somewhat redundant task of creating another screen containing the same data, only not in form fields. Using jQuery, we could absolutely simplify this process and eliminate the mundane task of creating redundant "modes" for an application.

Read More Comment on This


Calculating Relative Date & Time Differences Using ColdFusionI've always appreciated how many social networking sites like Facebook display date/time stamps for status updates. Instead of simply dumping out a date and time, they calculate the relative difference from the time the status update was made to now. This is extremely useful because 3 hours ago means a heck of a lot more to me than May 14, 2010 5:41 AM. Calculating date/time differences has always been easy in ColdFusion, but generating a string like this would probably require a tiny bit of work.

Read More Comment on This


How Event Handlers Add Interaction to Your SiteMost websites these days are pretty cut and dry. The only interaction that occurs is when a link is clicked or a form is submitted. On occasion you may see a navigation item change when the mouse "rolls over" it. The web doesn't have to be this boring though! In the past you had to jump through hoops to add more interaction to your website, but with jQuery, it's finally a piece of cake to handle actions associated with specific events..

Read More Comment on This


Dear Steve,

AppleTwo years ago my previous employer bought me a Macbook Pro, and I was asked to give up my cherished PC. I didn't particularly want to switch to a Mac, but I've always enjoyed the idea of "getting on the bandwagon", because frankly -- I'm that kind of guy. Within a matter of months, my thoughts and feelings regarding Apple and their products evolved into something short of an obsession. It's safe to say that I drank the Kool-Aid, and was completely hooked. Today I look throughout my house and can count about 10 Apple products. Between my wife and I, we pretty much own 90% of the products you offer.

I often get labeled as a "fanboy" of Apple, and to be honest, I think I'm OK with that. It is one thing to be a fan of a product that is in one way or another subpar, but it is another to be a fan of product that is (dare I say) just shy of perfection. Let's face it, love 'em or hate 'em, absolutely nobody can deny that Apple products are the perfect balance between form and function. That is a claim I can't make about any other manufacturer in the world.

Read More Comment on This


CSSEvery now and then, when I push changes to a css file to a production server, I'll have to refresh once or twice in order to see the changes take place. This typically isn't a big deal for me because I know the css file is just cached. Clients on the other hand have a hard time accepting the fact that they "just have to refresh a few times" to see the updates. In the meantime, clients and visitors may experience a completely borked website until the cached css file drops out of their cache, and their browser snags the new file. The good news is there is a very easy way avoid caching your css files.

Read More Comment on This


Traversing the DocumentOne of the most important features of jQuery is finding and modifying DOM (document object model) elements. This certainly is not anything earth-shattering, and while raw JavaScript can do this without jQuery, it's the simplistic form in which jQuery does it that makes it so appealing. Finding elements may not sound to exciting, but without a solid knowledge of how jQuery can traverse your HTML document and find specific elements, you won't be able to perform animations, AJAX interactions, or handle events. We are going to explore a few of my favorite techniques to traverse the HTML document, and modify items on the fly.

Read More Comment on This


Before you download my resume...

My Current Employment Status

I am currently happily employed and not actively seeking employment at this time. While I appreciate any and all interest in my skill-set, I am currently not available for a full-time hire. If you are interested in my skill-set and would like to hire me on a part-time basis, please contact me.

Contact Information

To avoid having my personal contact information floating freely through-out the internet, I have withheld my personal contact information from my resume. If you are interested in contacting me, please do so on my contact page.

Find Me, Follow Me, Friend Me!

Tags

Fellow Bloggers

Brought to you in part by

Epicenter Consulting - A Web Application Design and Strategy Firm