ColdFusioning.com
Pronunciation \kold-fy-zhn-ing\ Noun: The actions of one that writes ColdFusion.

Please check out my new site: http://ja.mesbrown.com/

Building Lightning Fast Mobile & Desktop Web Applications Presentation

I gave a presentation at NCDevCon 2011 on "Building Lightning Fast Mobile & Desktop Web Applications". If you missed the presentation, they have posted the presentation online! You can view it anytime but it does require Microsoft Silverlight: View Online

Though the slides are in the video, if you don't have Silverlight installed, I'm including the slides in a PDF. Also, the presentation description is:

In this session we are going to explore different techniques and methods to speed up your mobile and desktop web applications and websites. Consumers and end-users have come to expect pages to load quickly and be responsive. Research shows that our brains can perceive time around 100 millisecond intervals and those intervals can add up if you have bottlenecks in your page load times or the responsiveness of the pages is poor once they are loaded. We are going to look at techniques you will be able to implement immediately to speed up both the actual and perceived experience of your site. This session will cover both server and client-side technologies. We will explore desktop and mobile use-cases and demonstrate various tools you can use today. This session will utilize ColdFusion and Backbone.js but concepts will apply to all web applications.

Mobile Development QA Setup

I haven't had time to post an actual update about mobile development, so here is a photo of some of the devices I use:

How Unique is a UUID? Should we use them instead of auto-incrementing?

We had a discussion today about the uniqueness of UUIDs (or GUID). In case you didn't know, according to Wikipedia, a UUID is:

"an identifier standard used in software construction, standardized by the Open Software Foundation (OSF) as part of the Distributed Computing Environment (DCE)."

The uniqueness of a UUID is 1 2^128. Now this doesn't really mean much to most people so the part I found particularly interesting is the uniqueness in terms we can try to understand. From Stackoverflow:

"consider the observable universe, which contains about 5×10^22 stars; every star could then have 6.8×10^15 universally unique GUIDs."

Wow.

Here's another way to write the probability:

1 in 340,000,000,000,000,000,000,000,000,000,000,000,000

or

"In other words, only after generating 1 billion UUIDs every second for the next 100 years, the probability of creating just one duplicate would be about 50%. The probability of one duplicate would be about 50% if every person on earth owns 600 million UUIDs."

Stop and think about that for a second.

This raises the question. Given the fact they basically are unique, should we use them for a primary key instead of auto-incrementing in a database? There are good reasons to use either as a primary key.

Which do you use and why?

ColdFusion 9 Feature: Using cfquery Without a Datasource Specified

Ben Forta gave us a sneak preview into one of the new ColdFusion 9 features. According to his website, You can now use cfquery without a datsource:

view plain print about
1<cfquery name="getTypes">
2SELECT TypeID, Type
3FROM Types
4</cfquery>

As long as you specify a datasource in your Application.cfc file:

view plain print about
1<cfcomponent>
2 <cfset this.datasource="myDataSource">
3</cfcomponent>

This is a great time-saver and especially will allow for increased code sharing between developers and applications. You will be able to drop existing or open-source queries into new applications without having to do a find/replace on the original code to replace the existing datasource.

Eror java.lang.ArrayIndexOutOfBoundsException: 88 with ColdFusion and WDDX

I was working with moving some WDDX around and I kept getting a "java.lang.ArrayIndexOutOfBoundsException: 88" error when I would try to convert the WDDX to a Query using:

view plain print about
1<cfwddx action="wddx2cfml" input="#theWDDX#" output="theQuery">

Apparently, I had a Input field that had an ID but not a name. I added a name to the field, and it started working!

Using OneNote to Stay Organized - Programmer's Perspective

OneNote is one of the better programs out there to help you get and keep everything organized. You can use it for every aspect of your life, including programming. I've learned to write everything down. It seems that if I don't write something down, I won't remember it. Some of the more useful features are:

  • Search - This is a given, but the search in OneNote is powerful and even integrates with Windows Search and also every image is OCRed and is searchable.
  • Screen Capturing - When you have OneNote installed, you can quickly use the Windows+S key to screen shot anything you are working on. After you push the shortcut, it allows you to draw a box around any thing currently on the screen and it saves it to a new page in OneNote. It also puts the date and time in the note, which is very helpful. It also OCRs any text in the image and immediately makes it searchable. You can also copy and paste the image into an email or wherever you might need.
  • No Save Button - In OneNote, there is no save button. This takes some getting used to after years of continually hitting save in every program I use. OneNote just constantly saves everything as you type or edit. (You can push Ctrl+S to force a save, but it is unnecessary). After you get used to it, this is a great feature and I especially like it.
  • Windows+N - I am on the phone quite a bit throughout the day. Before OneNote, I would open Windows Notepad and type notes on whatever they were saying. Additionally, anytime anybody needed me to do something, I would open a new Notepad and just start typing. While Notepad opens quickly so I could start typing right away, it is a poor way to save things and at the end of the day I would sometimes have 20 Notepads open. Now I just use the Windows+N shortcut key and a new OneNote page opens immediately. Anything I type is saved, and then I can file it in the appropriate section. Also, if it is a task I need to act on, I can assign it as such and it will be integrated with Outlook.
  • Outlook Integration - As I mentioned in the last bullet point, OneNote integrates perfectly with Outlook. This is great because my Outlook is on Exchange and therefore synchronized across all my computers and my cell phone. Mark a task as complete in one, it reflects in the other.
  • Spell check - OneNote has spell check similar to Microsoft Word. It checks as you type. (Another great feature over Notepad).
  • Synchronizing - OneNote synchronizes very well if you have multiple computers. You can add/edit notes on either computer and they are reflected on the others. A very nice feature if you have multiple computers or work in multiple locations
  • Multiple Projects - Although a very simple idea, this is one of the better functions of OneNote. Like most programmers, I have a good number of projects that I am working on at any given time. I simply create a new section (or notebook if it is a larger project) for each client/project and file everything I can in OneNote. I'll even put notes from phone calls in and make checklists of things that need to be completed.

While this a simple list of the main features I use, the program has a ton more features that I am not listing that might be helpful for a lot of people. I highly recommend checking this program out. It is a little awkward to start using at first, but if you dive right in, you'll quickly wonder how you survived without it.

Recent Comments

RSS

Subscribe