Jason's New Gig!!!

If you are interested in what's been going on my past few months please read on, if not, well, now is your opportunity to stop reading. :)

Since leaving Adobe in December, until this week I had been working full-time as a consultant. I have not had any downtime, even on my vacations I have been working on various projects, client work, my own open source projects (I updated CFXL to use POI, I added MXML and ActionScript support to ColdFiSH... I'll post that another time), and I have also been working with many talented folks on another project that I can't wait to talk about publically (but will wait for the right time :).)

While doing that, I managed to talk to a few companies about full-time work. As of this past Monday, I am now the Director of Technology for FirstComp Insurance. The team here is a phenomenally talented group composed of genuinely friendly people. I don't want to get into too many details about the company, but I can honestly say that I would not have thought insurance could be so interesting. They use a lot of ColdFusion, so if you're a CF or Flex developer that is a guru or want to become one, live in Rhode Island, and are willing to work for a crazy coding fool, feel free to contact me. :)

The past several months have just been so refreshing to me. My hours have dropped from "working whenever awake" to "normalesque" hours. I've been able to spend time with my family and friends, to code out of pure enjoyment for coding, to travel for fun rather than work, and I have been able to fully enjoy the time and discussions I have had with fellow developers (when you represent a large company, you can't always share your true opinion.)

Things have just been spectacular and it just seems to keep getting better. In case you were wondering, I'm alive and well, and am happy to still call myself a CFer!

I wish all of the success in the world to each and every one of you.

Jason

Working with ColdFusion Dates in Javascript

I did not see much information out there on this subject so I thought I would post it. Here is the scenario, you want to return a date from the server and use it in Javascript to dynamically populate something (an input field, some text... you decide.)

When you send a date back from the server using AJAXPROXY, or manually using SerializeJSON(), ColdFusion is extremely helpful and sends the date back in this format.

MonthName, DayNumber Year Hours:Minutes:Seconds

Now... what can you do with that format on the Javascript side? More than you may have realized.

All you need to do is put that date in the constructor of the Javascript Date object. Now you automagically have a Javascript Date object and can use all the methods for that (Check out the documentation on Javascript Date Objects.) Here is some code that you can run to see what I mean.

<cfajaxproxy cfc="myCfc" jsclassname="myCfc" />
<script>
var myCfc = new myCfc();
var myDate = new Date(myCfc.getMyDate());

document.write(myDate.getMonth()+1 + '/' + myDate.getDate() + '/' + myDate.getFullYear());
</script>

The output will look like this.

01/01/2010

I know you're probably asking... why do you have to add 1 to the month. getMonth() returns the number of the month (0-11) starting at 0. Most of the methods start at 0, just add 1 when you need to. The exception to that rule is getDate() which returns the number of the day starting at 1. Also, getDay(), actually returns the day of the week. I find that a bit odd myself, but am sure that there were reasons to do it that way.

Don't forget, you have the time in the object as well. So you can use getHours(), getMinutes(), and getSeconds() to output the time... or you can use myDate.toLocaleTimeString() and javascript will output the time in the appropriate format for the users locale.

Hopefully that will save you a bit of extra time trying to figure out how to return a date from the server and format your date in Javascript.

Cheers! Jason

P.S. This is not an April fools joke. :)

Object Relational Mapping Session at CF.Objective

My favorite conference every year has to be CF.Objective. It's relatively small, but if you ever want to sit down and have a discussion with the thought leaders in the ColdFusion world, it is definitely the place to be.

This year, I will be doing a session on Object Relational Mapping. I know a lot of ColdFusion developers aren't familiar with this development technique and that's largely because the libraries available to developers are still a bit nascent although very powerful.

The point of this session is to talk about what is available today and what will be coming in the future. I truly believe that very soon, ORM will go from being an advanced technique that only a few people use, to a technique that everyone will use because it will be simpler and more powerful than writing direct queries.

Please join me at CF.Objective!

Best Wishes, Jason

CFXL 2.0 Released

For those of you that aren't familiar with my CFXL project. It started many years ago as a very basic API to modify an existing spreadsheet. Well, I've been working on CFXL for a while now. I recently came to the realization that I needed to change the underlying API I was using from JExcel API to Apache POI if CFXL was ever going to be truly powerful. Well, now CFXL has been updated under the covers to work just the way so many people wanted it to. :)

First, parsing is now built in and really trivial. Here is some example code that will read every cell in a spreadsheet and output it.

<cfscript>
    cfxl = createObject("component","com.jasondelmore.cfxl.cfxl").init("#GetDirectoryFromPath(GetCurrentTemplatePath())#/svbn.xls");
    cfxl.setSheet(0);
    
    writeoutput("<table>");
    for (i=1;i
<=cfxl.getSheet().getLastRowNum();i++) {
        writeoutput("<tr>");
        for (j=1;j<=cfxl.getRow().getLastCellNum();j++) {
            writeoutput("<td>");
            writeOutput(cfxl.getCellValue(j,i));
            writeoutput("</td>");
        }
        writeoutput("</tr>");
    }
    writeoutput("</table>");
    
    cfxl.closeWorkbook();
</cfscript>

Or... how about some code for creating a new spreadsheet from scratch using tag syntax.

<cf_xl action="view">
    <cf_xlparam column="A" row="13" value="My Example Excel File"/>
    <cf_xlparam column="A" row="14" value="100.5"/>
    <cf_xlparam column="A" row="15" value="200.4"/>
    <cf_xlparam column="A" row="16" value="300.3"/>
    <cf_xlparam column="A" row="17" value="400.2"/>
    <cf_xlparam column="A" row="18" value="500.1"/>
</cf_xl>

Or... how about doing the same, but this time calling the CFXL API directly, and using some of the functions that are in the POI API directly as well...

<cfscript>
    cfxl = createObject("component","com.jasondelmore.cfxl.cfxl").init("#GetDirectoryFromPath(GetCurrentTemplatePath())#/demo.xls");
    cfxl.setSheet("CFInsider Demo");
    //cfxl.setSheet(1);
    cfxl.setCell("A",13,"My Example Excel File");
    cfxl.setCell("A",14,100);
    cfxl.setCell("A",15,100);
    cfxl.setCell("A",16,200);
    cfxl.setCell("A",17,500);
    cfxl.setCell("A",18,1000);
    cfxl.setCell("B",36,now());
    cfxl.setCell("B",37,True);
    
    cfxl.setCell("A",38,cfxl.getCellValue("A",16));
    // Note, you can go right in and grab the current sheet and use all of the cfxl APIs directly... same goes for cells and workbooks.
    cfxl.getSheet().setZoom(4, 1);
    cfxl.viewWorkbook();
</cfscript>

CFXL is now extraordinarily powerful and flexible. Please give it a try, tell me what you like and what you don't like!

CFXL is on RIAForge at http://cfxl.riaforge.org/ :)

Best, Jason

My Update (Me being Jason Delmore) :)

A few people have asked what I have been up to and I thought there may be others wondering what I am up to at the moment and what I plan on doing next. If you don't care, feel free to stop reading. :)

As many of you may know, I was among the 600 folks recently laid off with the mass layoff at Adobe. My last official day as an Adobe employee was December 15th.

My first day on-site of a new client as an independent contractor... was December 16th. :)

I absolutely loved my old job. It always felt like I was making some contribution to thousands of ColdFusion projects out there. (Whether or not that's true, it always felt that way.) However, now that I am out of that role, I can tell you I feel relieved, refreshed, and ready to take on whatever comes next. I can also say that I missed getting my hands dirty and just coding. Writing code can be a lot of fun.

Anyhow, I just wanted to let everyone know that I am back at it and will hopefully be posting some more projects and interesting information on my blog. It might even be easier to post things now that I don't have to worry about my comments being construed as coming from Adobe. And, since I am actually coding full-time, I can spend some more time working on open source projects.

Back to my coding for now.

Best wishes and have a Happy New Year!
Jason

Adobe Layoff Hits Home

After the slew of emails I have received from community folks checking to see if I was affected by the layoff, it is clear that I need to post this sooner rather than later. By the way, thanks to all of you that have asked.

I have some good news and some bad news. The good news is that ColdFusion is in perhaps it's best position for growth and success in years. The product is healthier today than it has been for years. I have no doubt that Centaur and Bolt will be incredibly successful. The bad news is that I will no longer be a part of that success story.

There were many other folks affected as well, I don't want to forget them. Those that were laid off are obviously affected dramatically, but those that are still with Adobe are left to pickup where everyone else left off and fight the good fight. To everyone that is either still at Adobe or have recently separated, I wish you the very best. You have all been incredible to work with and I am certain the future holds nothing but good news for you.

I have actually been thinking for the past several months that I had achieved what I set out to when I joined Adobe... I wanted to help return CF to it's developer centric roots and make sure that ColdFusion developers had the tools they needed to be successful. Every dream I have had for my role in the company, has been fulfilled. I have been truly fortunate to be surrounded by such incredible talent, both within the company, and the ColdFusion customers and community that I have spent so much time with.

It is time to gather new experiences. If you have any opportunities you hear of, please feel free to send them my way. My personal email address is jason at delmore dot info. If anyone is interested, my updated resume is here. Hey, it never hurts to have more people know what you've done. :)

Now, if I can just get past this nagging itch to do something, I'll probably sit back for a couple weeks and enjoy some Christmas vacation, spend some much needed personal time with my son, and maybe catch up on some open source projects I wanted to donate some time to.

Best wishes to everyone in these tough times, Jason

ORM Session at MAX Europe

I just wanted to give everyone a late breaking update. Our session on Object Relational Mapping at MAX North America was so popular that we decided to add it to MAX Europe!

Object-Relational Mapping in ColdFusion 9: Learn what object-relational mapping is and how the next version of ColdFusion will simplify your development by taking advantage of this powerful and exciting technology. Monday, December 1, 11:30 am - 12:30 pm, Yellow 3

If you are attending MAX Europe and are interested in finding out more about ORM in Centaur, and how Bolt will help to make it dead easy for you, please join me!

Best wishes! Jason

Thoughts on MAX and Bolt - What a Week!

On MAX

First, I need to really express appreciation to Ted Patrick and the Adobe MAX team. This year's conference has just been simply outstanding. Hopefully those of you that participated feel the same.

Ray Camden also deserves many thanks for managing the "ColdFusion Unconference". Great job Ray! Thanks to everyone else that participated and helped make the Unconference such a great success.

I also have to say, I think this year's MAX had a ton of really cool technology advances. I am truly impressed.

On Bolt

I also have to say that for the first time ever, I was concerned about the response from the community around an announcement. It's not that I have never been apprehensive or have never been worried that we may not deliver "the message" in the right way. This was a very different beast. "Bolt, the Codename for the Upcoming ColdFusion IDE" has been a dream of ours for a long-time, and something we have been working towards for at least the past three years. I was very anxious during the keynote, hoping that the reaction would be what we were looking for. Yesterday and today have been just a breath of fresh air. I can't tell you how many people stopped me to say how happy they were that we are working on a tool specifically for them. During the unconference, we asked if people were excited about Bolt, and I was pleasantly surprised to get a unanimous "yes". It is a weight off my shoulders to have this information out there. How many companies launch a new product built for a product they are not serious about? The answer: none. Hopefully this sends the message that Adobe is truly serious about ColdFusion.

I encourage everyone to check out the latest info about Bolt and apply for the Bolt Prerelease Program!

As a bit of a teaser... here is a screenshot of our internal build of Bolt. :)


Note: This is an internal build, some humor is involved! Don't take anything here as official information about how the IDE will look. This is just to get you all wanting more!

P.S. Check out the information about Centaur too! And apply for the Centaur Prerelease Program while you are at it!

Object Relational Mapping with ColdFusion 9

You may have missed this late addition to the MAX Session line-up.

Object-Relational Mapping in ColdFusion 9

The session says it is for Advanced users, but really it is for anyone that wants to see how developing data-driven applications will become even easier with the next major release of ColdFusion, Codenamed Centaur. Learn how you will be able to write high-performance, database agnostic, production quality applications, without writing a single query!!!

Session info: Object-relational mapping tools simplify rapid application development by handling the complexities of CRUD operations (Create, Read, Update, and Delete.) Learn what object-relational mapping is and how the next version of ColdFusion will simplify your development by taking advantage of this powerful and exciting technology.

When: Wednesday, November 19, 9:30 am - 10:30 am

Sign up today! :)
Jason

CIO Magazine - ColdFusion Tops List of Best Application Servers

I was just sent an article from CIO Magazine... Developers Rank Best Application Servers: Cold Fusion, Apache Geronimo Top List

From the article, "The top-ranked Adobe ColdFusion... scored best with developers for its scalability, support and security."

Performance was #4 on the list out of 21 criteria, as well.

It's really encouraging to me to see ColdFusion 8 continue to get such great coverage. This has been a banner year for ColdFusion. ColdFusion 8 won the Dr. Dobbs Jolt Award for Product Excellence in Web Development and the SIIA Codie Award for Best Web Services Solution, and really has continued to have impressive coverage from the media ever since its release last year.

Anyhow, I didn't want this blog entry to turn into a marketing article. I am just incredibly proud of the work that the ColdFusion team has been doing.

More good news is on its way at Adobe MAX. If you can make it, please join us. And if not, you may want to listen carefully to the news coming out of MAX. :) Nothing but blue skies ahead!

Best wishes to everyone, :)
Jason

More Entries

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