Recently 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.
Until 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.
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:
As 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).
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.
I'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.
Most 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..
Dear Steve,
Two 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.
Every 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.
One 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.
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 InformationTo 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.