Rob's tech blog...

How I got started in ColdFusion...

I'm a day late to the party but, at Steve Bryant's suggestion here you have, less a quick overview of my CF origins and more a comprehensive history of my time online and in code.

Read the rest of this post »

Please don't default to GPL

This post may seem odd to anyone who knows me. I'm a massive advocate of open source software and free (as in speech or beer - hey it's free) technologies. I'm no FSF zealot but I do believe that sharing source code, development tools, libraries even the platforms on which they run is a great way to encourage innovation and produce amazing projects. That said I'm increasingly running into issues with one of the most common open source licences - GPL (v2 or v3). One of the main implications of the GPL is that including code licensed under this model requires that the calling application be licensed under the same model. For ColdFusion this has some interesting and awkward implications.

Read the rest of this post »

ColdFusion Builder 2 - still no Linux Support

A comment on my post from August of last year regarding Linux support for ColdFusion Builder reminded me to check the state of the Linux Support Bug report for CFBuilder 2 ... and it wasn't good news. Since moving over to the new Bug Tracker it seems that the original bug (and all the votes) have been lost. Oh and there's still no Linux support for CFBuilder. In the interests of continued support for Closed Source tools on ones favoured open source platform I've recreated the ticket #2832512 (http://bit.ly/CFB2Linux) and would ask that those of you who support Linux for ColdFusion deployment and development start down the long road of re registering your interest. Go Vote! (again) (My apologies to anyone who followed the links in the original of this post ... they were for the wrong bug report. The links have now been updated and new short URL created)

Scotch on the Rocks 2011 – Day 1 – FW/1 – The Invisible Framework – Sean Corfield

This fairly well attended session focused on some of the basic features and driving requirements behind the framework running through the controllers, views, layouts and the flexibility inherent in FW/1. The more advanced information came as results of questions from the floor which Mr. Corfield dealt with in a brisk and technically expert manner (would we expect anything else?) Some items were new to me (caching for example and how this can be disabled if needed) and some were known (the layout cascade and the overrides available) but in terms of a good 1 hour grounding in the framework the session did exactly what it said on the tin. In all honestly the real value of this session was in the debate and discussions afterwards (both sensibly at lunch and less sensibly at dinner and after) where I got to chat on the subject of Frameworks with my fellow attendees and got some great feedback on full stack vs lightweight frameworks and the fit for various projects / phases. That said I will continue to follow FW/1 with interest and will use it where appropriate. I’m especially pleased to see FW/1’s adoption by Mura is bringing new power to a pure ColdFusion CMS – which can only be a good thing! Scores (out of 10) Direct Professional Value: 5 Ongoing General Value: 6 Contention / Debate: 9 Style: 8 Overall: 7

Scotch on the Rocks 2011 – Day 1 - Requirements and Estimating – Peter Bell

Peter’s session resulted in 6 pages of notes, which I won’t go into in masses of detail (yet). Suffice to say there was a massive amount of technique rammed into 1 hour starting with Intent Driven Design as a mechanism for requirements gathering. The basis of this technique is the derivation of Business Intent (the Why of a project) which can determine the driver behind development. Generally speaking, one should avoid projects that introduce more than 5 Intent items as a greater number would denote the need for breaking down a project into further phases or units. The next concept introduced was that of Audiences (the Who of a project) which is fairly easy to understand. These audiences or roles are the functional groups in a project, the user types, the interested parties. Drilling down into the project Peter explained the use of User Stories to identify specific requirements. Effectively User Stories can identify areas of Shared Need within a project. As User Stories are well known and well documented online I’ll skip the next couple of pages of notes highlighting only that Peter recommends the batching of 0 point tasks into a single story with a value for use in estimating. The use of Stories and IDD in terms of production of estimates and trackable units was of great interest to me as was Peter’s focus on the functionality side of a project. The basic concept of build something you can use to fulfil the requirements and worry about making it look good or work more easily sounds commonsensical but is so often over looked! The only downside to Peter’s otherwise brilliant preso was the assumption (or hope?) that we all live in a world where we can afford to say to our clients “Pay me to estimate” all too often good estimating techniques fall by the wayside due to pitch / profit issues. Anyway back to the session, Peter introduced the concept of planning Poker (a bit gimmicky?) and the more useful (for me anyway) Magic Estimating technique which I will definitely be introducing at our larger project kick offs. The tongue in cheek mention of APIs (muted groans from around the room) as the feature that always takes at least twice as long to build as expected was part of Peter’s section on feature types which, whilst a little cynical was pretty much bang on for 99% of the features in any project I’ve ever worked on. A final wrap up of the Iron triangle and the introduction of buffers and the first session of the day came to a whirlwind stop. Scores (out of 10) Direct Professional Value: 8 Ongoing General Value: 9 Contention / Debate: 5 Style: 10 Overall: 8  

Scotch on the Rocks 2011 – Day 1 - Keynote – Adobe

Scotch on the Rocks 2011 – Day 1 - Keynote – Adobe Effectively the KeyNote was focussed on ColdFusion Builder 2 and ColdFusion X. The announced features for each are listed in short order: ColdFusion Builder 2
  • Call backs for extension functions
  • A new code beautification tool for one click source formatting
  • New keyboard shortcuts
  • Improved performance
  • Improved code completion and folding
  • Some other bits I didn’t catch
ColdFusion X (Link)
  • No more Verity for searching – it’s SOLR all the way from here on in
  • No more jRun as it has been replaced with TomCat as the application server (this is awesome news for all those who run CF in “out of the box” mode as it means Adobe have standardised on … the industry standard for J2EE provision)
  • New support for web services including WS-Security and other WSDL enhancements which will provide:
  • Exchange 2010 support via the .NET web services made available by Redmond.
  • New REST features for producing & consuming RESTful web services. Will be interesting to see how well this is implemented given the current browser constraints surround HTTP verbage
  • A fully rebuilt Scheduled Tasks engine introducing <cfjob /> for an enhanced programmatic interface and massively improved rule sets. The big news for me was the ability to persist your task store into different storage forms – DB, RAM etc. which should mean the system is more reliable than the current XML POS
  • New improvements to Java support including a native Java loader for dynamic loading of classes – this is pretty cool but I’ve never needed to use the current RIAForge project so I’m not sure this will be massively useful for me.
  • Closures … erm … yay?
More of interest was what wasn’t mentioned (or at least specified). I was expecting an announcement about <cfscript /> but it wasn’t forthcoming so I guess we will have to wait to see if Adobe are actually going to implement Action Script on the server. Likewise the generalisations about improved mobile support and improved HTML5 support were somewhat lacking in practical details. Finally CFX will be getting some jQuery love but I’m not certain if that will be alongside the current Ext/YUI engines or in place of. I have to say that the replacement option will cause massive issues for me in terms of backwards compatibility! Anyway, KeyNote done and it was time to move onto the first session – Requirements and Estimating with Peter Bell

Scotch on the Rocks 2011

The first official day of the conference was, for me specifically, a bit of a nightmare. Due to the remarkably pedestrian service at breakfast I was late down to the keynote and so didn’t get a seat and work intervened after lunch to mean I missed sessions 3, 4 & 5. That said, the two sessions I did manage to a) arrive at in time to get a seat and b) see where pretty darned awesome! In a new format for this year I’m writing up the sessions individually and linking to them from this post: Day 1 Day 2

MySQL - What if the worst happens?

After the recent Tweetalpyse that followed Oracle's update of the MySQL version comparison table I got to thinking, what if MySQL were to be rendered no longer viable as my web database of choice. What are the options for open source relational data management?

Read the rest of this post »

You're responsible for your own privacy so wise up and stop whining!

Privacy online is getting a run for its money at the moment, with Google getting slapped for storing whole emails and URLs encapsulated inside packets captured by Streetview Cars and Eric Butler's Firesheep flaming up a storm by showing just how easy it can be to capture cookie based sessions on a shared wireless network. And I'm getting rather sick of the negative waves Moriarty! I appreciate that, legally, your data should be considered private unless you release it, but the current furore surrounding Google's (allegedly) accidental interception of personal data highlights a very worrying trend - people aren't prepared to look after their data! Most of the governments and bodies complaining about these privacy invasions have been warning us for years to shred our sensitive paper documents to prevent them falling into nefarious hands. And for the most part we've listened. So far as the Google Grab goes, the affected parties are probably those who would never dream of posting cash, use registered mail for cheques, change their PINs and never write them down and would assume you had gone quietly mad if you showed up to a party wearing a t-shirt with your date of birth & mother's maiden name on it. These same people who obsessively keep their receipts for fear of some crook collecting enough of them to reassemble their card details and take them for every penny, don't seem to give a damn that they may be broadcasting their internet browsing habits for all to view. They wouldn't stick their bank statements in a box labelled "Bank Statements" and 'file them' on their front door step so why would they use an insecure network? Likewise they're  not going to read your credit card number out loud in a crowded train station so why would they check their email over a shared WiFi network without encryption of some form? Google may have done wrong in collecting the information but surely they have highlighted that these people's networks made no effort to prevent the collection of data... and who's fault is that? My point is this - we are responsible for the safety & security of our own data; this concept is understood and embraced in the physical world so why do they find it so hard in the virtual world?

ColdFusion CachedWithin & Max Rows - bug or feature?

Recently a colleague and I have been working through the beating heart of our flagship application to try and improve performance and throughput. There was nothing wrong with the performance we were getting but we'd got some time to spare and so figured tweaking the code to get the absolute maximum out of it would be a fun excercise for a Thursday afternoon. One of the areas we looked at was caching some of the common MySQL queries that are called on every request using the CachedWithin attribute. Having merrily rolled this out we fired up our test site expecting pleasing improvements in page load times and instead found that the site was pretty much completely borked.

Read the rest of this post »

13
To Posterous, Love Metalab