NC Conference - New Date Proposed

Planning for the NC ColdFusion conference is in high gear. We got excellent feedback on the conference dates/details from both speakers and from attendees. Most importantly, we realized our proposed date accidentally collided with the BFusion/BFlex conference. The Bfusion/BFlex conference is our inspiration for the NC conference. Bob Flynn, conference organizer, and others, have been very supportive of the NC Conference and we want to show our respect by not scheduling on the same day as them. Thus, after much discussion, consultation of calendars and the like, the new proposed schedule is Oct. 17-18th.

If we can make Oct. 17-18th work for the community, then we'll move ahead with that. Our next chance would be to do something in the Spring. (Or raise the price and do it in the Bahamas in winter :) )

The other option on the table is whether to provide a second day of training on the Adobe Flex framework. We propose a 6 hour Bring Your Own Laptop session targeted at beginner level Hands On Flex training. If you have some programming experience and want a hand making your first (or second) Flex application, this is for you. We're looking for responses from the community of whether or not this is interesting.

So if you are considering attending/speaking, please let us know how you feel on the following:

  • Does Oct. 17th - 18th work for your schedule?
  • Are you interested in attending/speaking/teacher assisting the Oct. 18th 6 hour Bring Your Own Laptop session targeted at beginner level Hands On Flex training?
  • Are you interested in more ColdFusion sessions on Oct 18th instead of Flex training?

Thanks for sharing your opinions and helping us tune this conference for the good of the community.

Need Feedback on Proposed Date for NC ColdFusion Conference

North Carolina Conference?

Hi Folks, we've been working pretty hard to line up a good ColdFusion conference for North Carolina and the surrounding areas. The original idea was to have a 1 day conference with 6 sessions and a lunch. All this for 50$.

Tell me more...

Thanks to some generous sponsors, we may even be able to drop the price a little, offer a conference T-Shirt and let the State employees attend for free, since they work so hard to keep this state going.

Where/When would the conference be held?

We propose to hold the conference in Raleigh, North Carolina on Oct 24th. We'd like to get an idea of the number of attendees and the number of interested speakers for this date/location combination.

If you are interested, please leave a comment below and let us know whether you are interested in any of the following:

  • State Employee
  • Attendee
  • Speaker

Thanks for reading and thanks to all the people who have helped us get this far in planning. We appreciate the support!

Performance tuning for ColdFusion applications and Comment

Kunal Saini, an Adobe employee, recently posted an article on Adobe Developer Connection about Performance tuning for ColdFusion applications. This is a well written article full of useful tips and practices and should be a must read on the topic.

I will raise a counter point to one of the minor tips Kunal raised. He says:

compare() and compareNoCase()

Use compare() or compareNoCase() instead of the is not operator to compare two items. They are a bit faster.

I trust Kunal has insider knowledge about the implementations of these two compare functions, because I fail to see how a straight evaluation (<cfif dan IS 1337>) can be slower than a function call ( compare(dan, 1337) IS 0 ). Maybe it has to do with the type inference and type conversion ColdFusion does as a dynamically typed language, maybe it is something else. Regardless I avoid using compare() and compareNoCase() because both functions reduce the readability of the code.

Whereas all boolean comparisons in ColdFusion treat 1 as true and 0 as false, the compare and compareNoCase functions return 0 if the comparison is true. This means compare( 1, 1) will return 0, which doesn't follow the boolean rules. Since this does not follow the rules, code using compare and compareNoCase is harder to read, harder to follow, and generally uglier than straight comparisons.

So Kunal, I don't take anything away from your statements and I appreciate you writing the article. I want to point out that software isn't all about micro-performance, it is also about long-term maintainability. Always write your code to be readable by others.

Of course, if you happen to write the next Facebook and you need to squeeze every possible fraction of a millisecond out of a routine, then throw this advice right out the window. But then again, you'd have already tuned every single query permutation, added a clustered caching layer, offloaded your static files to a Content Delivery Network and clustered your infrastructure Horizontally and Vertically, haven't you?

Flash Animation Project Needed

I'm using the power of the pen to located a flash designer that can help me fulfill a quirky task. See, I'm no flash designer. Not at all. I do need one to make a SWF for me, the details of which are a little odd.

Specs

We need a picture of an animated, stylized monkey in a resizable window no smaller than 100x100 and needing to scale to 500x500.

The cursor, when hovered on the SWF, should appear as a boxing glove and when the mouse button is clicked, should punch the monkey in the face from whatever logical angle relative to the mouse cursor position and the monkey. The monkey should react as appropriate, meaning if punched from the left, the monkey should absorb the blow and move to the right.

I do want to stress the animated nature of this monkey and of the interactions. We aren't looking for realism, rather sophmoric humor.

Bonus points if the monkey takes on visual damage like a black eye, bloody nose or other results of cursor violence.

This gig does pay a fee to the designer and is of low budget, ideally suited for someone who thinks this might be a fun project (or who hates monkeys). Please send me your initial thoughts with a price range and some samples.

Note: No monkeys were harmed in the making of this post

New Bluetooth Headset On Order

I live and die by bluetooth headsets. Holding the phone up to my ear during a long conversation is as annoying as being covered in sugar water and buried in a Fire Ant hill. I'm just not very happy doing it.

I loved the Aliph Jawbone Headset. Apart from some issues with the charger, that was the most perfect headset ever invented. The Aliph Jawbone 2 was demonstrably worse in all ways, including call quality. I've been on the hunt for a new headset ever since.

Today I found the Plantronics Voyager Pro and am ordering it right now. Rather than bore you with the details of how the Plantronics Voyager Pro deals with a barrage of noise, a cacophony of wind and other call quality reducers, I'll leave it to you to watch this simple video demonstration of the Plantronics Voyager Pro Bluetooth Headset.

Want one?

It seems Best Buy is the exclusive source right now. Amazon shows a month back order. I'm going to get mine from Best Buy today. If there is enough interest from the readers of this blog, I'll post periodic reviews of the Plantronics Voyager Pro Bluetooth Headset. Whaddya say? Do you guys/girls care about what I think of this product?

The Art Of Method Names

I write from time to time on code quality and structure because it is a topic of interest to me. Clean code and well named logical structures, methods and objects really pay off during the infinitely long Support And Maintenance phase of software development.

Some could accuse me of having too many opinions on the topic, and I'd guess they could be on to something. Heck, I'll probably disagree with something I've said today, tomorrow, just because I'm always refining and learning.

While some of what I think/advocate/do is opinions, and could be subjective, I'd like to share some code I found on a project today and talk about the importance of method names.

A method should describe it's intent or behavior at the level of where it is inside the program. For example, a method named load() might be sufficiently descriptive to represent the behavior and be flexible enough to withstand a refactor or two. In other places in the program, perhaps the right method name is loadShippedOrders() since there will always be the concept of a shipped order in our proverbial system.

You get the point, right? There is a wide range of OK-ness for method names, with behavioral descriptiveness and refactorability as being two made up words that really judge the method name quality.

I found code today that really flies in the face of any of these principles. The names of these methods do not in any way describe any behavior of any system I've ever written, nor will probably be lucky enough to write.

method bodies removed to protect client interests

Be the Judge Yourself:

<cfcomponent name="ET">
<cffunction name="phoneHome" output="yes">
</cffunction>

<cffunction name="createDir">
</cffunction>

<cffunction name="createDirImpl">
</cffunction>

<cffunction name="beamMeUp">
</cffunction>

<cffunction name="energize">
</cffunction>

<cffunction name="setPhaserToKill">
</cffunction>
</cfcomponent>

Before you ask, this code was found in a production eCommerce system that is currently running that has nothing to do with Phasers, Energization nor beaming anything to any location.

ColdFusion Is The Most Elegant Expression Of Business Solutions

I was emailing back and forth with a very smart group of people this morning and had a thought that seemed worth repeating. ColdFusion is the most elegant language to express business solutions.

Need charts for your dashboard? No problem.

Want to export a report to PDF? No problem.

Want to intake data via PDF forms and generate Presentations with the data? No problem.

Want to write a Flex application that adds meetings to Microsoft Exchange servers? No problem.

The list goes on and on and on and on and on.

ColdFusion is often lumped in with PHP and other general web scripting languages, and it can certainly fit there. However, the ColdFusion team over the years has worked very hard to put useful, relevant functionality for business applications. As a result, ColdFusion is the most elegant expression of business solutions on the market today!

Hard Coding Scopes In CFCs Is A No No!

Now Hear This!

This is a public service announcement. If you hard code scopes inside your CFCs (request, application, session), stop today.

I know it might be 'easier' or 'cleaner' or less lines of code, but you are really painting yourself into a corner when you do this.

An object (CFC) should not know or have access to ANYTHING outside of itself, its configuration and its immediate dependent objects.

If you want to question/argue with me on this, go for it. (Just go Read Up On Information Hiding before you do).

That Is All

If You Build or Maintain Client Side Libraries or Widgets I Want To Talk To You

The ColdFusion community is full of bright people who have built really neat libraries and widgets to make better features and functions for applications. One of my favorites, CFUniform (a rich forms library) lets you build consistent, feature rich forms with very minimal code. I use this library all the time to make my applications snazzier and more maintainable. There are plenty of cool projects I've not yet used and while working on some Model-Glue features this weekend, I had an idea.

See, I've been working on the scaffolding feature in Model-Glue. This feature is a great way to get a jump start on a data-centric application. Simply configure Model-Glue and your ORM of choice and Model-Glue will generate everything needed to Administrate your data. Forms, Lists, delete screens, Bam, it'll generate the whole thing for you in seconds. Of course, the generated code is easily customized to fit the need of the application, but because it is generated from the database, the functionality is generic and the look and feel is somewhat limited.

What if we had a real easy way to plug in some of these rich libraries into Model-Glue? Forms libraries, Ajax widgets, Grids, Rich tables, all these could be as simple as adding a few characters into an XML file. Sounds fun, right?

What I want is to talk to a few of the folks behind some of the coolest libraries to explore how I can provide the best integrations. If you are the author or maintainer of some library or widget, or you use something that you are really fond of, let me know by leaving a comment. We might be able to work together to provide some really neat, useful functionality for the community.

ColdFusion Conference Coming To Raleigh-Durham North Carolina

Ha, made you look!

Seriously, Jim Priest and I have been kicking around the idea of hosting a 1 day ColdFusion conference in the Triangle area. We've had good support from the Universities in the area about lending us some space as well as good response from other sponsors. What we want to know is how many attendees we could realistically get.

So figure a 1 day conference with 6 sessions and a lunch. All this for 50$. Would you come? Please answer why or why not in the comments below. Anonymous answers are ok. We just wanna know the word on the street.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.001. Contact Blog Owner