I am a Web Application Developer in Tampa, Florida (by way of Southern California) who has been lucky enough to gain diverse experience, learn from great mentors and find rewarding work over the last 11 years. Today I am on the WRECKINGBALL team, a digital marketing group with some great clients. I also work with some fantastic partners on proprietary software-as-service products.
Fortunately, my diverse experience allows me to keep complex projects simple and see the whole picture without losing track of the details. I love formulating a concept, executing the plan and evaluating and adjusting to ensure success. I thirst for feedback and demand personal growth. I strive to be aware of my weaknesses and improve daily. I most enjoy helping others achieve their full potential, as it also helps me reach my own.
This Web site exists so I can share my experiences in hopes of helping you. If I can help you reach your goals, please, let me know.
POSTED Tuesday, February 22, 2011
Keywords:
ColdBox
With the imminent release of ColdBox 3 I wanted to stop and share some examples of how ColdBox 3+ can be applied in a real world application. To start what may become a series of posts I thought it would be wise to first provide a foundation for these posts by explaining the life cycle of a ColdBox request.
Track and Report Errors in ColdFusion Apps using Hoth
How many errors are happening in your Web application?
If you answer "not many" you may not know enough about what is happening with your application. I love building Web applications--specifically, I build applications that deliver a great experience and quality service. In the game I play even a single error is one error to many. I am an advocate of test-driven development and I build all sorts of unit/integration tests to confirm my applications behave as expected. But, Web applications are constantly evolving and the way clients interact with our services constantly changing. Errors happen. They just happen. Sometimes it's a hardware failure and sometimes it is a bug in your code. I've been searching for a way to easily parse logs to pluck the relevant data. I've looked at logging products and definitely see their value; but, none solved my problem the way I required.
Introducing Hoth: ColdFusion Error Tracking and Reporting
This morning you can experience my favorite Adobe TV video "Scubaman: Behind the Snorkel" in quite a few languages! But, that is not even the best part. The coolest new feature of Adobe TV is that you can translate Scubaman into your favorite language! Do you think Scubaman should be shared with people fluent in German, Japanese, Spanish or Arabic? If so, join Adobe TV's new Community Translation Project and translate Scubaman into the language of you're choice! The project launched last night and some great perks are in store for everyone who participates in the project.
I find myself shifting more and more of my focus away from the server and onto the client. When building Web clients powered by JavaScript proper management of your assets (you know, the JavaScript and CSS files) becomes increasingly important. I wanted to take a moment and share my current solution for managing assets which allows me to reduce HTTP calls in production, make my source transparent in development and allow JavaScript to be tested directly in Eclipse thanks to JSTestDriver.
A Look at ColdBox Resource Management
POSTED Tuesday, September 14, 2010
Keywords:
ColdBox
There are lots of great ways to manage your JavaScript and CSS assets. If you are managing JavaScript you may want to look into RequireJS which delegates the resource management to the client. You can achieve the same client-side management in CSS by using the @import declaration within your style sheets. To manage assets on the server using ColdFusion I had previously released a plugin for ColdBox called ScriptInclude. I have since stopped using it in favor of the following decorations to the ColdBox Request Context and wanted to take a moment to share with the community. Finally, I also wanted to share a new feature found in ColdBox 3 to help achieve similar results.
As I surfed the Web to discover ColdFusion ORM examples, found messages in the CF-ORM Google Group and developed my own ORM application I realized how easily it would be to create an insecure application that allows a User to submit data you did not expect and have it persisted in the database. Fortunately, you can avoid this security issue by taking one little step during development.
Those who augment their development practice to include unit-testing--as I hope you have if you are following this series--can help insure they continue to embrace the discipline of 'test first'
by saving their understanding of the software-under-test (SUT) within the actual test. This practice guards against you or another developer modifying the SUT without informing the test. For example,
if someone adds a new property or function your test can alert you. This practice provides a little insurance to keep you honest to your promise to test first.
This practice can also check the implicit functions found within the SUT. Generally, I only check for the functions/methods I explicitly define within the SUT and ignore the implicit assessors
provided by ColdFusion 9. But, the samples below can check for both if desired.
A unit test isolates and executes a small part of your software and compares the result with your expectations. The small part of your software being tested is generally called the Software-Under-Test (SUT). Isolation of the software (SUT) is improved when you fake the dependencies. Faking the dependencies is called 'Mocking'. Mocking will be covered in the next post in this series.
A few weeks ago I gave a free day of training to members of the Central Florida Web Developers User Group on ColdFusion's ColdBox framework. The training was a success. Everyone recognized the benefits of the framework and embracing the design patterns shown. In fact, one member who manages a site that yields 150,000 visits monthly has started to convert their existing spaghetti site to the ColdBox framework. The features of the ColdBox framework that stood out to those who attended were debugging, caching, plugins, interceptors—and testing.
Free ColdFusion, ColdFusion Builder and ColdBox Training
On Saturday May 8 2010, the Central Florida web developers user group came together for a seven-hour presentation covering ColdFusion, ColdFusion builder and the ColdBox framework.
Organizing code can be a challenge even for the smallest teams. Frameworks help us solve this problem by establishing conventions that bind us to expected behavior. This contract can greatly improve the quality and efficencity of your product/service. And, while there are many approaches to code organization (and frameworks) I most appreciate the ColdBox Framework. If you are not familure with ColdBox, it is CFML framework and toolkit that supports Adobe's propriatary ColdFusion CFML engine and two open source CFML engines Railo and OpenBD. ColdBox is an event-driven framework that offers 16 conventional interception points while supporting an infinite number of custom interception points you declare.
The Reserved Routes interceptor can be used to prevent users from obtaining any keywords used in your SES routes as usernames. Additionally, you can also explicitly reserve words you do not desire usernames to have (such as admin). To reserve these words my ColdBox interceptor should be loaded in your applicatons ColdBox Config file after the SES Interceptor. The Reserved Routes Interceptor then pulls the SES interceptor from the ColdBox Cache, extracts the routes and reserves any static strings in the first position of your URL.
You can send me email or work with me for digital marketing, web design and application development.