Syntax Highlighter


JSON Schema Form

So I have, through random chance and good timing, been given a great honour to help lead a project dear to my heart into the bright future it so richly deserves. Angular Schema Form was a project started by Textalk in Sweden and currently maintained primarily by David Jensen.

As anyone who knows me knows I love Google's Material Design, so I started working on method to display the forms generated using Material Design Angular Schema Form Material. Through this involvement I had been communicating often with David until it became clear work and life in general were making it difficult for David to maintain the project alone.

As such I suggested opening up the project to a wider group of maintainers, turned out David already wanted to do so, which was quite good timing for me as I had already registered a GitHub org JSON Schema Form to potentially parent the related projects.

Now we have a planning Gitter and an ever expanding group of interested parties are discussing and planning where to take the projects. We are already in talks with other projects with similar intent, with a goal to standardise a ui-schema for non-data format related requirements and potentially reduce workload by finding common ground to share design patterns and core components that any related project may need.

The goal of this being to provide developers with consistent experiences across various platforms and frameworks from Angular / Angular 2 to React and eventually others.

So if you are a nerdy nerd like me, please feel free to look at the JSON Schema Form org's projects, especially the demo for Angular Schema form, and consider becoming a part of a growing and rational project for managing your next application's forms.


Ironic Productivity

It seems my life is often to be encircled by a bitter irony that pervades my goals and intolerably toys with my desired outcomes. Sometimes we are required to extend ourselves to the point where we are well and truly outside our comfort zone, I like this, others do not.

I have been working very hard to introduce the Rapid Application Development, NodeJS and MongoDB, stack to my workplace for years. Tragically I've been met with technophobic levels of resistance by technology stack conservationists of the Microsoft fanboy ilk. However, this all changed recently when the last major blockage to disruptive change was removed and my team got the green light to create a proof of concept on Mongo+Node and within months the team has transformed to one that appears to enjoy their work, gets excited by the things they are learning, excited by the performance boosts and look forward to each release as the users gush over the modern tooled interfaces and UX.

To their credit and admirable abilities, the .NET developers addapted quickly to the new technology and are flourishing on the new platform. I am so impressed with how they are embracing the change I for so long thought they would never accept, perhaps that is a prejudice of my own I need to work on!

There is no reason in 2013 that you as the nerd in the room at your workplace can't be the nagging annoying guy pushing for change like I was. It may be slow, but once change starts it is so powerful it is hard for even the greatest and most effective ludite to stop!

However there is a problem in my situation. All is not rosey in this garden of progressive Eden.

Legacy application support.

It turns out I am the only developer capable of supporting several different legacy systems as some of the other staff made redundant were also the lead developers on critical business applications. So as the former .NET developers experience the joys of the new technology stack and the graduates join them in this new and exciting realm. I... I spend all my time working on a ColdFusion application a decade old and a ITSM tool that is also prehistoric.

So be weary my future loving friends for as you push for your workplace to break free from the shakles of the Microsoft .NET universe or overcome their Oracle Java addiction, make sure you don't end up being the last remaining person who can support the legacy applications! Your suffrage under a dark passenger riding you to early burn out is all there is to look forward to if you get stuck working in the legacy zone.

I wouldn't wish it on my worst enemies.

You've been warned, be cautious, but don't give up in the quest to re-shape the IT landscape, it just doesn't have to be so hard anymore... MJB


Node.JS FTW!

Node JS has answered my JavaScript prayers and is now my primary source of inspiration for server-side development. I have recently installed the open source Oracle VM VirtualBox and loaded up an instance of the open source Ubuntu 11.4 Natty Narwhal so I could take NodeJS for a spin.

Installation is a breeze and took only a few minutes, then I was ready to install Node Package Manager which allows the user to install any of the extremely numerous packages designed to improve the deployment of various types of Node server application.

It is important to note and be aware of all the required packages required by Node and NPM to operate correctly as missing one them can make installing NPM painful with errors that don't give a lot of instruction on their real causes. In my case the NPM install command "curl | sh" would not work until I updated it to "curl | sudo sh". I assume I had issues with my user setup that didn't give me enough rights.

Anyway with Ubuntu, NodeJS and NPM all installed it was onto the packages and which should I install to get started?!


Creative Suite 5 WTF?


Adobe in their infinite wisdom have left CFBuilder OUT OF CS5 Web Premium.

That's a bad move but it gets to be not just bad but plain insulting as well. If you buy CFBuilder you get a 'free' copy of Flash Builder. Funny given that CFBuilder is half baked and yet costs $50 more than Flash Builder. Appears to me that Flash Builder is the product you are buying and getting CFBuilder for the $50 it is worth!

To back up my assumption on what I feel to be painfully obvious CS5 is released and for the first time INCLUDES Flash Builder! So pretty much every product Adobe sell is in a version of CS5 except CFBuilder!? WTF??? Are they that embarrased with how average it is? Surely regardless of how bad it is (it is version one, people can get over a bad version one) this just says to me that they don't understand their products and don't value the few remaining CF developers.

I am really annoyed that they haven't put in some effort to push CFBuilder further.

I really hope that the reason is that they are going to release a CF10 with server-side ActionScript.



How did I miss ALT+SHIFT+A in CFEclipse for like half a year??

Could be the most useful shortcut ever found in an IDE for professional development.

For those that have not had the pleasure yet, this will enable/disable block selection mode. Block selection mode will allow you to select any text block in your page without having to also select the characters on all the lines between, only the lines that fall within the left most and right most points of selection!

Wow I hear you all thinking, that's the best, but no, it gets better!

You can select a straight line up and down and when you start typing every character you type is copied to every line in the selection.

You so have to try it, it is great, so great in fact that Microsoft is apparently going to copy it for their next version of Visual Studio, still kicking myself for not reading enough release notes to have found it earlier but just glad to be able to save time using it now.

Oh and if you are playing around with Android Development platform, you will need to re-assign some of Android's default key combos to use CTRL+SHIFT+A instead or it will block your access to it. Well you could just change the block selection one but hey I installed it first so it gets to stay in my install!

ColdFusion, better with every passing day...


One server to rule them all

Ok so I had a rant today on another blog, I felt I wrote enough I should put it here in case I need to cut and paste it again next time I come across someone who is ignorant of Java servers and the benefits available for a script agnostic approach to server design.

Neil said: "Why on earth would you even consider using Railo et al to run your code, when it could never be as good as your language/platform specific setup you're using now."

1. From what I have read Quercus is faster than the standard PHP engine and can do several things like db obfuscation that the dll version doesn't do well. I've heard a lot about how slow Ruby is so I had assumed that jRuby may also be faster (I have since checked and yes jRudy claims to be faster and more powerful).

2. If I ran a hosting company and had the option to install languages separately with all their different admins or settings or all at once with a well thought out admin structure and a more powerful level of security sandboxing, I think it would be a no brainer if there were not a huge number of compatibility issues.

3. jRuby, Quercus and Rhino all have very active development teams already so that wouldn't change and other servers can integrate them without obscene amounts of effort. Quercus is already installed with Railo, you just have to manually add it in the Resin config file currently so adding a switch in the admin to do that would be simple I suspect.

CFgroovy2 makes it easy to switch between the languages already so given it is already done as a proof of concept I would not expect adding files to a class path via admin toggles to be a full time job, perhaps Sean could clarify?

You may have switched to Ruby, that's no doubt been great for you, like when I switched from ASP & PHP to ColdFusion. But for many Java developers who want fast scripting languages with the ability to use elements of Java they love then Java based versions of the scripting languages can be very advantageous especially when it comes to working with and using legacy code.

I think you are very wrong in being so dismissive of the idea just because in your perception it wont suite you, think outside your box, there's plenty of issues developers around the globe face and there is definitely positive movement for change and having options to get past them. .NET has JScript, VBScript, FSharp and CSharp because MS are smart enough to know that some jobs are done better by different languages.

JavaScript is the most important language for the web and is grow in popularity rapidly (more Java/JavaScript servers than any other language now I believe thanks to Rhino looking up SSJS on wikipedia), supporting Rhino is a no brainer, support for actionscript could also potentially be
added as it is based on JavaScript.

More options is always better who cares if there are some narrow minded users of a language that stubbornly refuse to investigate better options, Mono, Quercus, jRuby all show that there is a need for languages to be implemented in different ways for different needs. Bringing several of these into one place would draw in more communities of developers to one place which can only be a good thing as shown by Apache foundation itself!


CFJS, one step closer to paradise

I have been obsessed for a long long time about JavaScript and the need for it to be a core factor in bringing ColdFusion out of the niche and into the mainstream. I have a dream, that dream is CFJS a JavaScript specification for CFML. A spec for CFML engines to implement so that they can create the first real consensus of a JavaScript server standard, with potentially three different servers all implementing the same spec that'd be two more than any other implementation! There are plenty of JavaScript servers out there, Rhino hacked into them in one way of form, but none that really offer any real appeal or power behind them. All ColdFusion engines offer superior clustering and database handling with well established power and performance and with integrated JavaScript with mapped functions and classes there's no reason for it not to take off among developers who love both ColdFusion and also the new masses of JavaScript developers who have come into the fold via jQuery.

CFJS is a concept that is almost a reality in one form now thanks to Alan Williamson over at Open Blue Dragon: While I really like the work Alan has done there are a few things I would suggest, the first being the JavaScript scope/namespace to be used, currently $cf I would prefer to see one of CFjs, CfJs or preferably cfjs if it is encapsulated by a closure then developers can use whatever shortcut they like just as they do with jQuery becoming $ within a closure when making plugins (when they're done well! ;).

My next desire is to create a clear specification for running frameworks within CFJS, a clear definition within the Application.cfjs file for a framework scope with functions to enable/disable and choose versions of frameworks to use, so cfjs.framework.list() would return an array of framework property objects with their versions and they could be used like:

$ = cfjs.framework('jQuery','1.4');
Fb = cfjs.framework('FuseBox','6.0');  \\(-_o)//
Spry = cfjs.framework('Spry','0.1.6');
CommonJS = cfjs.framework('CommonJS','1.0');
    onApplicationStart: function(){}

Then the frameworks could be pre-loaded compiled and poentially optimised to hopefully be even faster.

Speaking of compiled and faster, have you seen John Resig's Micro Templating project example?

I like the  idea of using something like that only adding
a (potentially jQuery based) compiler so there are no variables in your HTML code AT ALL. I wrote
some code earlier and included three tbody tags in a table one
with a class for no-data-items one for data-items and another called

The template version looked kind of like:

<tr class="data-items template">

    <input type="hidden" name="temp-id" class="data-item-id" value="temp-value" />

    <td class="data-item-name">User Name</td>

    <td class="data-item-email">User Email</td>


I then added a call to:

jQuery(HTML template selector).template(array, function(template, record){






Now I haven't actually built it to work yet just throwing ideas around
in my head of just how beautiful templating in server-side JavaScript
can be, but what I intend on checking when I have time is how fast this
performs and whether or not parsing the template first so
would be the text '<cfout></cfout>' and then using
Mr Resig's templater to do the rest would potentially be faster given
it wouldn't need to continually run a bunch of jQuery calls. Then
there's the option of e4x which I suspect would be faster again. I really wish I had more time each day to play with cfml!