Dan Mackey On ColdFusion Development

ColdFusion, Java, .NET, AJAX, DHTML development and general programming. Daniel is owner and Administrator of CFTagStore.com and works for an Application Development Company in Ireland called Digital Crew. His interests cover all areas of programming in multiple languages with a particular interest in Internet Technologies.

All Articles Posted In June 2006
2006-06-27 11:10:00.0

Disappointed with Project Aarvark DVD

The FogCreek Project Aarvark DVD arrived to the office yesterday and Topper and myself scrambled to re-arrange our evening so we could have our Nerd Night In

I cant tell you how excited Topper and myself were to see this DVD. With a killer project on the horizon in Digital Crew which I cant talk about yet, we couldnt wait to see what we thought would be a feature about how a project is started, budgeted, planned and managed.

What a let down. The whole DVD circled around the personal lives of the 4 interns. They showed the interns juggling, jogging, growing tomato plants and bumbling their way through demos.

They didnt show the initial meetings, setting the roles of the individual interns in the project or any of the discussions that may have gone into the whole project. I was hoping for insight into arguements and discussions on challenges they faced and how they managed the whole project.

Topper and myself finished up at 2am last night feeling let down.

One interesting thing in the DVD was their first public demo and stand at CFUnited of all places!

They even mentioned ColdFusion and the fact that some people think its a waste of time and some people thinking it is the future of Web based Applications. As you all know, we are firmly in the latter category ;-)

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [2] - Leave a comment
2006-06-23 12:10:00.0

CFThread and CFJoin added to BlueDragon 7

Just noticed the following blog post from Vince Bonfanti titled

Multi-threaded programming in BlueDragon 7.0

One of the coolest new features of BlueDragon 7.0 is the ability to do multi-threaded programming. The basic idea is very simple: any CFML code wrapped in the new CFTHREAD tag is rendered on a separate thread while the main (request) thread continues processing concurrently. The main (request) thread can wait for the CFTHREAD by using the new CFJOIN tag.

This would be so so useful! There are many times where you need the processing to continue while a sub-task is run on a seperate thread!

I wish Adobe and New Atlanta would sit down together and form some kind of committee to decide on the inclusion of new tags and functionality to CFML the language.

It will be hard to write CFML applications for both application servers if there are some features available to one and not in the other. Especially tags that cant be really created using custom extensions etc

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-06-23 12:03:00.0

ColdFusion Multiple File Upload On Mac OSX using Safari

Thanks Karl!!

Karl (a good friend and decent ColdFusioneer) took the trouble to test the Flash Upload widget on Mac OSX using Safari and it worked seamlessly!

We are getting close. Now all we need is Flash 8 to be released for Linux and we may have achieved our goal.

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-06-22 18:16:00.0

Signed Up For Ether

I have been keeping an eye on this new start-up called Ether and it officially launched today.

I was a bit pesimistic about the availability to us as we are based in Ireland but was delighted to see that Ireland is a supported country.

Ether allows you to set a price for your knowledge by phone. You can setup many different Listings and charge either by the minute or by the hour. Ether will take care of the financials and take a 15% cut on top of what you earn.

You can create as many Listings as you wish, each listing is like a topic such as ColdFusion Help, DHTML or anything you feel you have to offer others.

People who need help can call a toll free number and enter the extension of the person they require services from and the call is forwarded free to any number you set up. For example you could have your work, mobile (cell) or home number and can set available hours. (In my case the number is 1-888-MY-ETHER ext. 01660537 and I also have a Call Me button on the right hand side of this page.

Although the service call is free, the person requesting your service must have money in their account to pay for your time. They also have a model for documents etc

I can really see potential in this company. We  take alot of calls on support unpaid and a service like this would be ideal if you could white-label it or something and actually get paid for the time you spend fixing peoples code or helping them with a particular part of their application.

I can definately see us using this more and more for support requests and maybe if an API is released build an inhouse application around their service.

Tags: Tools
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-06-22 12:28:00.0

Flash Multiple File Upload Control - 90% finished!

As you all probably know, Topper and myself have been working on a powerful ColdFusion based multiple file upload control with progress indicators etc.

I am delighted to be able to post a link to a fully functional online sneak preview:

http://www.cftopper.com/playground/dcFileUpload/test.cfm

More can be read here on Toppers Blog

Just wondering if anybody with a Mac can run the demo and report back the results!

We have yet to get our hands on a Mac :-(

BTW, Linux still doesnt have Flash 8 released so the demo unfortunately wont run on Linux.

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [2] - Leave a comment
2006-06-22 12:16:00.0

MySQL Database tools - Navicat, Toad and CFMyAdmin

We generally use 2 databases MSSQL and MySQL for our applications. Our personal preference is MySQL but sometimes due to customer requirements we have to use MSSQL.

For ages we were looking for a MySQL manager program like MSSQL Enterprise and in the earlier days used to use MySQLFront, a great little app which is no longer being actively developed. In fact our ColdFusion based MySQL admin tool, CFMyAdmin was modelled on this great little app.

As time moved on and we needed more functionality and reliability, we found Navicat. We bought 4 licenses (best value ever - $139 per license for Enterprise Windows Edition) and havent looked back! The latest version 7.2.5 has absolutely everything we require and is FAST.

Yesterday, I found another FREE MySQL database tool that looks interesting called TOAD for MySQL.

Its extremely complex at first and the user interface isnt as polished as Navicat but the SQL tools and syntax colouring looks promising.

The only thing lacking in both TOAD and NaviCat is an intellisense type interface while writing your sql but hopefully this feature will be introduced shortly.

EDITED 26th June 2006 - Thank you Gary for your comment on the Intellisense. My error, it appears TOAD has intellisence built in. i will turn it on, check it and report back!

As I mentioned above, we developed a ColdFusion based MySQL manager called CFMyAdmin a few years ago and unfortunately, the development has stalled. We plan on picking this free community project up again in the near future, start from scratch and developing a more robust and powerful ColdFusion based MySQL manager.

The problem with CFMyAdmin was that it is extremely hard to make a connection to a MySQL database using a connection string. It works perfectly in ColdFusion 5 as CF5 supports dynamic connection strings but MX removed this option so we had to use Macromedias Java Factory classes to make a connection to the database by creating a DSN on the fly. A lot of thought will have to go into how to connect to the DBS before we can start developing.

Tags: ColdFusion | MySQL
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [3] - Leave a comment
2006-06-21 15:04:00.0

Pizza, coke and a cool nerd video!

As people may know, I am quite a fan of Joel on Software and after reading his 2 books and a subscriber to his Blog RSS, I was deligthed when Peter mentioned he had bought the DVD Project Aardvark

The DVD follows the story of 4 interns on their 12 week coding adventure....

Four interns are brought into Manhattan and given 12 weeks to design, develop, debug and ship a program that will change the way computer geeks around the world fix their friends' computers. Boondoggle Films presents a journey through the world of software development from the perspective of a unique upstart, four quirky interns, and the world of The Geek.

We are planning to grab the DVD and head to my place to eat pizza, guzzle coke and watch the DVD while plotting our own coding futures etc

I'll let you know how the movie was in approx 10 days time :-)

Tags: Musings
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [1] - Leave a comment
2006-06-20 11:45:00.0

Most Useful ColdFusion Custom Tag - UDI

One of the great tools Peter wrote, UDI - Ultimate Database Interface is something we use in every ColdFusion project we work on here in Digital Crew. From Website Administrations, to Intranet applications.

UDI has 2 specific parts to it :

  • Design Time View
    This view gives you a wizard based view of your database allowing you to create a View/Edit/Delete interface for any of your database tables.

    Its amazingly simple yet powerful. The wizard pulls in all the fields in your database (MySQL, MSSQL or MSAccess) and allows you to define what type of data is contained in the field and allows you to choose a specific interface to manage the data. This could be a Date Selector, URL, Textbox, text input, duel-select, drop-down based on another table, image (with image selecting tools) etc

    With 5 minutes of clicking and building, you can create a spreadsheet type view of your database tables.
  • Runtime View
    The runtime view is the actual view you use to view, edit and delete data. This is broken into 2 panes. The top pane gives a paged grid with summary records and the bottom pane contains the generated form holding all the different types of controls per field. You can double-click a record in the View Pane and the data for that record is loaded into an easy to use form for editing.

The whole package is so easy to use and literally saves us days of extra work. Gone are the days of hand coding hundreds of admin pages for editing data. Now we just click, point and define our data. The rest is handled. Also, the component only uses one code base and auto generates the required pages for calling the component.

With over 65 internal projects using the component and more than 150+ 3rd party developers using the component around the world, UDI has literally become a must-have tool!

You can view the component on CFTagStore.com and order it for $100. Bulk licensing is available and also a demo to try before you buy! I guarantee you wont be disappointed!

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [2] - Leave a comment
2006-06-15 22:33:00.0

Bill Gates Steps Down...

Microsoft Corp. announced late Thursday (15th June) that Bill Gates was immediately handing over his role as chief software architect to Chief Technology Officer Ray Ozzie and will transition out of his day-to-day role at the world's largest software company over the next two years.

Gates, Microsoft's chairman, said he made the decision to give up his daily involvement with the company he co-founded in order to devote more of his time to global health and education work through the Bill and Melinda Gates Foundation.

During a conference call to discuss his plans, Gates emphasized that he wasn't retiring but rather "reordering" his priorities.

The Redmond based company said Gates would make the transition over two years in order to ensure a "smooth and orderly" transfer of his responsibilities.

After 2008, Gates will continue to serve as chairman and an adviser on key development projects.

Ozzie will immediately take on Gates' title of chief software architect and begin working with Gates on all technical architecture and product oversight.

(Tip : Marketwatch )

Tags: Microsoft
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-06-14 14:34:00.0

Why its a great time to be a ColdFusion developer

Brian Kotek has written an article for Builder.com entitled Take advantage of an opportunity while the ColdFusion landscape is hot in which he summarizes why "it's never been a better time to be a ColdFusion developer". (Tip : Ben Forta )
Tags: ColdFusion
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-06-12 21:52:00.0

Thoughts On Flash, AJAX and ColdFusion

Peter and myself meet up regularly outside of work for a coffee and wild ramblings on the direction our development should be taking. We discuss upcoming technologies, applications that interest us aswell as arguing the finer points of whether Flash or AJAX should be used when creating online applications. What will happen to ColdFusion, etc etc

We had such a discussion today and debated the pros and cons of each. It went along these lines:

Flash

Flash is great but it is not wonderful in all ocassions. It has the potential to beat AJAX to a pulp but the sluggy controls make it painful to use. The sluggy controls I am talking about are things like Scrollbars, Buttons, Grids etc

Flash has also got a big enough learning curve if you come from a pure programming background and seems to be designed more for graphic designers than normal programmers. I know this is a brave statement but look at the Flash Development environment. You cant really start with a blank code page and work away. It is getting there though. BTW, the programming gone into the Flash IDE alone is superb!

Flash is perfect for things like Image manipulation and small widgets used in conjunction with HTML and Javascript. Its cross-platform and has a huge user base. Write once, deploy on different platforms with one code base.  Relatively secure code wise although unfortunately there are SWF decompilers available :-( The only true RIA Flash app I was impressed with was Yahoo Maps Beta

AJAX

Easy to learn and easy to use. The problem is all the different browsers and platforms need specific implementations. It cant access the local file system and cant do image manipulation particularly well. It is a good light weight tool for quick widgets where Flash would be overkill. I think Googles implementation of AJAX is the best out there. Gmail and Google Groups truely impress me. I often wondered about the pain involved in managing these apps with all the different browsers and platforms and code forks until I read about Google Widgets and realised they wrote everything in Java and their platform converted everything into AJAX enabled HTML code.

I suppose in a way ColdFusion is like that. Write in CFML and its interpretted/compiled into Java servlets. A good way to abstract things.

ColdFusion

We love it. But where is it going? Are Adobe going to ruin it? Was Macromedias decision to integrate it more with Flash the right direction to take it?

Will it eventually be stopped and integrated completely into Flex? I hope not.

ColdFusion is a great Application Server and has continued to stay ahead of BlueDragon. CFML is a great language and in my opinion the best choice for web applications. For pure and utter RAD development, ColdFusion is the way to go. If you need something extra you can call in Java using CFOBJECT or write a CFX tag in C++ or Java. I wouldnt pick any other language over it! We have used it for 6 years and recommend it everytime a new project comes in the door! The time saved building a project more than makes up for the license cost!

Forget Ruby On Rails and PHP etc but ASP.net is looking interesting. I kinda like the whole .net idea. Maybe CFML should be developed more as a language rather than trying to trying to put the kitchen sink into the Application Server. One thing that could be improved is its handling of data types... 

I noticed over the last 2 years Ben Forta has started to push Flex more in his blogs (as well as mobile technologies) more so than pure ColdFusion. I feel sad about that. Ben was the main evangalist of ColdFusion and it was nice to have someone like that presiding over the technology. I always found Ben very approachable via email and the few times I met him and liked to think of him as pure  ColdFusion but I realise what areas Adobe is pushing and hence Ben pushing them. I also found this sense of loss when Charlie Arehart left New Atlanta. Charlie was a great guy for helping the community and everytime we had an issue with BlueDragon he literaly got back to us straight-away and followed up until the issue was resolved. I think ColdFusion needs someone like that back in the community.

Which brings me to summing up what I have begun to notice in the last few years. The ColdFusion community is lacking support and resources.The community seems to be revolved around a small few people. EasyCFM used to be full of steam but has almost fallen off the radar. I wish I could help in some way. Maybe in the future I can.

The ColdFusion Exchange used to be HUGE back in the Allaire days but since being turned into a Rich Internet Application (pah..) its a joke. BTW, this is exactly the WRONG way to design an internet application. Sloooowwwww widgets and no right-click-open-in-new-window that piss people off!

Tags: AJAX | ColdFusion | Flash
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [3] - Leave a comment
2006-06-12 19:49:00.0

Another bubble floating our way ready to be burst?

Am I the only one that sees another major tech bubble burst in the not too near future?

The lead up patterns are the same. Make a site, wow the investors get some money.

The only difference with this one is people mashing together a site to perform a job nobody really needs or wants, tacking Web 2.0 to it (or calling it an obscure name) and hoping it will be snapped up by one of the big 3 - Google, Microsoft or Yahoo.

I have seen many 2.0 Apps boasting rounded corners, funky colors and AJAX thrown in for the hell of it and to be honest.....would I really use them? NO!!!

The only two I use is Flickr and Delicious. Why? Because they actually add some value to my life and genuinly allows me to do stuff I couldnt normally do. Plus, they were the first and continue to innovate.

Do we really need sub-par alternatives to the above? Do we really need 30 different customisable homepages or 40 different online calendars?

Tags: Rants
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-06-08 13:38:00.0

ColdFusion Mutltiple File Upload

Peter has outdone himself yet again on his work on our Flash based ColdFusion multiple file upload control we decided to write.

We had one concern while developing this product and that was the look and feel of the product and to build in from the start all the features developers would need while using it themselves. We work well as a team and together we made a list of features we wanted to include and call it version 1.

One of the aims of this product is to show the current progress and speed of each file being uploaded. Our last ColdFusion based multiple file upload control used an activeX control and gave a progress bar which changed as each file went up only showing the overall progress but the new control uses a progress bar for each file and also an overall progress bar.

Its a thing of beauty to watch work and you can find out more at CFTopper where Peter has written a post and uploaded a screenshot.

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [2] - Leave a comment
2006-06-08 13:15:00.0

URL Protocol and Instancing Fun

As I posted here one of the applications I had to write recently as part of a bigger project was a Guarantee Certificate printing application.

People register for a guarantee certificate on the website and an email is generated with a Guarantee Certificate Number and sent to the marketing department of the specific company offering the guarantees. The person tasked with printing the certificates then took this number from the email and pasted it into my application which in turn both generated a graphical certificate and address label and sent the output of both to a colour printer and Dymo LabelWriter respectively.

Now, the problem here is the amount of time it takes to generate a certificate through this process. The copying and pasting from email to guarantee application was about 10 seconds and with about 70 signups a day, that was 700 seconds of someones time wasted coupled with the amount of time for both printers to actually print. Thats about 10 minutes alone to copy and paste.

I had to find a way of speeding it up and cut down on the monotonous task of copying and pasting.

I noticed that FeedDemon had a custom url protocol called feed:// which would launch the FeedDemon RSS reader when a feed:// link was clicked. This got me thinking about adding a custom URL Protocol called guarantee:// which would call my app and pass the guarantee number into it.

As with anything, if you know it can be done, its only a matter of time before you figure out how to do it yourself. I began to think what has to be set in Windows to allow this custom URL Protocol and thought of the registry. Doing a quick search through the registry gave me the answer.

This is what needs to be added to the registry:

My Computer\HKEY_CLASSES_ROOT\guarantee
My Computer\HKEY_CLASSES_ROOT\guarantee\(Default)=URL:Guarantee Protocol
My Computer\HKEY_CLASSES_ROOT\guarantee\URL Protocol=""
My Computer\HKEY_CLASSES_ROOT\guarantee\DefaultIcon\myApp.exe
My Computer\HKEY_CLASSES_ROOT\guarantee\shell
My Computer\HKEY_CLASSES_ROOT\guarantee\shell\open
My Computer\HKEY_CLASSES_ROOT\guarantee\shell\open\command
My Computer\HKEY_CLASSES_ROOT\guarantee\shell\open\command\(Default)="C:\Program Files\myApp\myApp.exe" "%1"

Now when someone clicks a link <a href="guarantee://234-343-34343">Certificate Number</a> my application is launched and the number is passed to it as a Command Argument

This led to another problem aside from parsing the Command$ input to get the number and strip out the URL Protocol call. My app instancing had to be corrected.

Obviously all I needed was one instance of my app running but the code to do this checked to see if my app was running and if it was killed the second instance of the app and using the windows handle of the previous app, activated it. When you do this though, you have to pass the command$ from the second app to the previous instance and call the load certificate function.

After reading and testing and reading and testing, the code was getting messy with alot of Windows API calls and dealing with Mutex calls and sub-classing. I was under pressure with time and just needed a quick and dirty solution and so used a simple .ini file as storage so the previous app would know what certificate to launch.

End result? Works flawlessly....

Moral of the post?
A quick an dirty hack, although not the correct way of doing things, sometimes works out more efficient time wise than re-writing a big part of the application if it achieves the goal you set out to achieve.

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [1] - Leave a comment
2006-06-06 10:59:00.0

New Google Labs Project - Google Spreadsheets

Just found this:

http://www.google.com/googlespreadsheets/tour1.html

Create basic spreadsheets from scratch.
You can start from scratch and do all the basics, including changing the number format, sorting by columns, and adding formulas.

Upload your spreadsheet files.
Upload spreadsheets or worksheets from CSV or XLS format - all your formulas and formatting will come across intact.

Familiar desktop feel makes editing a breeze.
Just click the toolbar buttons to bold, underline, change the font, change the cell background color and more.

Looks like an interesting app and another example of Google gnawing away at Microsoft Office. Interesting though that it allows multiple people to work on a spreadsheet at the same time.

The beta is closed so you have to sign up to access it and go on a FCFS basis.

Tags: Google
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-06-06 10:36:00.0

Hot Computerless Weekend

This was the first weekend since going to New York that I havent taken my laptop home for the weekend.

I decided to leave it in work on Friday and as this weekend was a bank holiday only got to check my mail etc today. The break was good.

The weather was roasting and I spent the last 3 days lying on the beach reading. I picked up a book called Adventures in Code

"Adventures in Code tells the story of the software industry in Ireland through the experiences of its key figures. It explains how a small country with no apparent aptitude for applications development produced hundreds of small exporting companies and broke through the barriers to selling non-American products in the US. This remarkable achievement deserves attention because it reflects the broader socio-economic-cultural evolution of Ireland over the past 25 years and offers insights into the country’s changing relationships with the rest of the world."

While an interesting read in places, the book had a very poor structure and focused more on stats an percentages than giving insights and anecdotes on software development in Ireland. I found the whole book quite boring and biased. The key figures responsible for the driving of software development in Ireland were painted too favourably and it was apparent the author didnt want to piss people off. For instance, a number of these so called legends wasted alot of money on stupid ventures which were quickly brushed under the carpet.

Even though this book was meant to focus on software development, too many pages were filled with product service companies who wrote NO code such as CadCo and Horizon etc One interesting part of the book was the running theme of cashflow. Nearly every software house ran into cash flow difficulties and struggled along doing Service and Contract work to survive while also trying to roll out some products.

The successful companies achieved this by focusing on specific areas. The message of the book is one we see everyday and that is that companies dont really care how good a piece of software actually is as long as its affordable and saves money in the long term...

It was both blood boiling and interesting though to read about companies in Cork who we are now bidding against for work. At one stage 3 Cork companies were mentioned together and I had a little chuckle cause we have beaten 2 of these companies for contracts in our local area :-)

Tags: Books | My Work
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment