Wednesday, October 03, 2018

CFSummit 2018 - Day 2


Not feeling well today, but managed to drag myself to the conference sessions.


It was a pretty positive day of speakers. I started with the API Manager session with Brian Sappey. It was over my head since I’m new to the API Manager, but it was nice to hear so much about how it works behind the scenes and how all the functionality is available via APIs.


Next I headed to hear Minh Vo’s spirited ReactJS session. He is a first time presenter, but he did great - he showed us a React-based game he had created, spent 15 minutes on some React basics, and then dove in. There was only a bit of ColdFusion (REST calls and websocket broadcasting) but it was perfect. Great job Minh!


I was a bit sad to miss the CommandBox session, but I eagerly grabbed Brad Wood’s slides to review later. This guy’s amazing.


I headed to the session about using Amazon Web Services in ColdFusion by Keen Haynes. He seemed very nervous, but he did a great job of giving real world examples. I would have liked a bit more background about how Jenkins and Chef were configured.


The Modern CFML session - Closures and Loops Oh My - by Dan Fredericks wasn't quite as deep as I expected, but it was still nice to get a clear explanation of closures and how to use them.


The conference sessions ended for me listening to Andrew, Tim and Bryce talk about how they have grown their ColdFusion applications for DonorDrive into a large Enterprise suite and how they work as a development team. The crowd seemed a bit quiet for this one, but I thought it was great. I know we are trying to look at strategies to take our team and applications to the next level. As I said with the other sessions, I love the "real world" examples and tips, and I took a fair amount from this one.


Great conference Adobe! Thanks to the organizers and speakers! Viva Las Vegas.

Mirage Volcano Burst image - Oct 3 - Brandner

Tuesday, October 02, 2018

CFSummit 2018 - Day 1

Great first regular day of the CFSummit 2018 conference.

Much busier today as compared to the pre-conference, lots of wonderful and dedicated CF people to meet. The sessions were solid as well.

Elishia Dvorak, the rockstar of the conference, did a great job giving us a quick overview of the new Performance Monitoring toolkit - it looks like a really solid tool for debugging and troubleshooting our CF2018 applications. I'm looking forward to trying it out.

I then sat through Bouton Jone's Accessible PDF presentation. He seemed to have a great handle on accessibility, but most of the audience had generate PDF questions for him.

I thought Uma Ghotikar did a great job of her Unit Testing and TestBox session. I've been told by others that the earlier MockBox session was a good introduction. There wasn't too much new in here - if you've convinced yourself that you don't have time or resources to do TDD or BDD, there was nothing new there to change your mind. However, it was a good practical session on how to use TestBox.

Brian Klass did an amazing presentation on using Amazon Web Services Step functions. Even though there wasn't much of an obvious place for ColdFusion, it was amazing seeing how quickly his organization built workflows around serverless apps and Amazon services. Again, very practical and very inspiring.

To round out the day, I attended Dave Watts' session on upgrading legacy apps. There wasn't too much new for me here, but Dave is a great presenter and member of the CF community.

The food was good all day, and the evening pool party was a blast. Good appies and drinks, and we were entertained by Hawaiian performers that later pulled key members of the Adobe team up on stage for impromptu dance lessons. Go Tridib and David!!!

Met some great people this evening, and looking forward to another good day tomorrow. Thanks Adobe, thanks CF community!

Using Java LinkedLists in ColdFusion

At work we had a little team challenge - using any technologies, consume a weather API for each country in Europe and do it using asynchronous threads.

Of course, it was easy in ColdFusion - create 3 or more CFThreads and have them each call a function that goes off and gets the weather. Have the function contain a while loop that will keep checking weather until all the countries are complete.

At the bottom of the script after creating the threads, join them together to wait for them all to be finished. No problem.

However, one thing that gets interesting is that you have all these cfthreads grabbing countries off the list and putting the weather results back into a response packet. They are all frantically running at the same time. If you want to make sure you don't have conflicts or repeated calls, you have to use an exclusive cflock so that they patiently take turns getting a country and then wait to add their results.

What we really want here is a queue. We have lots of choices - third parties like RabbitMQ, database queues like Service Broker, etc. But in this case we don't really want to add another layer, we just want a simple in-memory queue. What about the queue datatype that is built into Java (LinkedLists and their relatives)?

I did a quick search, and I didn't see any CF developers playing with this technique, so I thought I'd try it. Sure enough, it really simplified my code due to there being no need for locking, and was very easy to use:


What do you think? Has anyone used similar techniques?

Monday, October 01, 2018

CFSummit 2018 - Pre-conference

Had a great first pre-conference day at the Adobe ColdFusion Summit this year. It's been a few years since I've been able to attend a CF conference, but how can you go wrong with a visit to Las Vegas?

Everyone was friendly with a lot of smiling Adobe faces, the atmosphere was upbeat, the service and food was great. The Hard Rock facilities are really good, and the conference rooms are very close to the room tower.

My coworker and I attended the Angular and CF pre-conference workshop. There were several great things about the workshop:

  • Speaker Nolan Erck did a good job of simplifying the process - using CommandBox and NPM to get up and running to develop a sample Angular app
  • Co-speaker Carl von Stetten did a great job of preparing APIs using different techniques in ColdFusion, from basic CFM files to remote CFCs to Taffy and Coldbox handlers.
However, the whole first half of the pre-conference session was completely wrapped up in trying to help attendees prepare their environments. It was a real shame since it really seemed like Nolan has a gift for training and has a lot to say about both ColdFusion and Angular.

It ended on a bit of a chaotic note, but I still have to say I appreciate the attempt. I worry that many of the attendees were left with the somewhat unfair impression that Angular and the current "modern development and build environment" is still too complex and out of reach for them. I do think we were suitably impressed by what Angular can do.

I feel a bit like it was a missed opportunity to attend one of the other workshops.

CommandBox and Taffy are, as always, amazing.

We managed to meet some amazing fellow developers, many of them from Texas, and swap stories.

Last night and tonight I managed to get two long walks to the Las Vegas strip. I saw an exhibition at Ballys, walked all over, and stopped in at Mandalay Bay. Tonight was the one year anniversary of the Las Vegas shooting, so I got to watch as they turned off many of the lights at 10:01pm on the Strip for a minute of mourning. #vegasstronger

Mandalay Bay - Las Vegas - October 2018


Friday, October 04, 2013

Team CF Advance

I recently threw my hat in the ring along with 60 other ColdFusion developers to be part of a "Team CF Advance". Initiated by Denard Springle, we hope to further Open Source ColdFusion/CFML projects.

The CFML language, which runs on Adobe's ColdFusion Server ( as well as Railo and Open BlueDragon), is suffering a bit. I think the community doesn't feel strong these days, and many fingers seem to be pointed at Adobe for lack of marketing. Years ago, ColdFusion felt groundbreaking - now, there are many alternatives to help developers get applications up and running quickly, and many are Open Source.

I'm looking forward to some great discussions, ideas, and I hope to contribute time and code to the cause. Regardless of its place in the market, CFML is a great language, is versatile, and is incredibly easy to learn.

For more information, head to Denard's blog post about Team CF Advance

Wednesday, September 01, 2010

Took son to his first soccer gathering - turns out they don't have a coach. Guess who got roped into coach, asst coach, manager, etc...

Thursday, January 14, 2010

Response to criticism about Twitter

A friend (acquaintance) posted recently about how much he hated Twitter. Over the last few weeks I've jotted down some thoughts and I figured I'd share.

1 - You point to Twitter as 'a problem' with our society and finger spam as a sign. Why is Twitter the problem? It is blogging on a small scale, requiring less effort and therefore cost. Blog spam is huge too, that doesn't stop blogging.

Are you advocating an alternative, or hating on the microblogging concept? If the former, what is your suggested app? Should there be a forum for people to share short one-off thoughts and opinions? If the latter (hater), then it is people that are the problem, and the fact that anyone would care to tweet about mundane crap (and that others might listen).

2 - You call the 'follower' concept a joke. This is one huge benefit to Twitter - the connected friends/followers aspect. Even though weak in some ways, this is an improvement over web pages, blogs, etc. This means the system could morph into a model where it can rank trustworthy tweets based on closeness to your peer group.

Seems powerful to me.

And this 'follower' concept benefits greatly by the fact that it freely admits that you aren't friends with everyone you follow and vice versa. Followers also come and go at will. Let's be honest, the people with a million Facebook friends aren't really friends with each one. I prefer this honest definition of relationship from many angles, especially the security standpoint.

3 - You comment on the noise/spam/pointless comments on Twitter. There does seem to be very little difference between a valid tweet and spam sometimes. Makes it tough to distinguish signal and noise. Honestly, I find the whole web like that.

I think Twitter is fascinating. Odd, but fascinating.

What I do love about twitter is how it is more of a platform than an application. Whatever the mob wants, can be created, even if the mob is made up of bots and spammers/marketers.

Wednesday, December 23, 2009

Timezones in our CF app - ICU4J




I posted this recently to our Vancouver User Group blog, I thought I'd repost here. I'd love feedback!

In my main gig, we've been working on this particular enterprise application for almost two years.

Like any development team, we took the lessons that we learned from our previous applications. We were quite fortunate that we were able to start pretty much from the ground up, and tried to make wise decisions about things like:
  • Using a code framework
  • Integrating or building CMS functionality
  • Finding a balance between having processing in the database vs CF queries and objects
  • An approach to caching
  • Globalization

I thought I would focus on some challenges we faced with respect to globalization, in particular, timezones.

Our application is a what they call a multi-tenant application, where a single code base and database serves multiple client sites. We knew that globalization was an important aspect of the project.

As part of our efforts towards globalization, we made sure to store dates and times in UTC. This way, dates and times could be independent of the front end usage.

Now we needed to work out how to take those UTC dates and display them in a particular timezone.

We created a front end algorithm to determine a user's timezone. This is encapsulated into a function so that we can expand as required. For example, our application focuses much more on a single timezone for each site (as opposed to user specific settings), so early versions could focus on this simplified approach. We store a user's settings in the session scope.

As an aside, getting a visitor's timezone from their browser isn't as straightforward as one might expect. It is easy to get a number representing the offset from UTC, but this doesn't necessarily reveal their actual timezone or daylight savings settings.

Here's a link to a recent blog post about one method of determining a visitor's timezone at blogs.windwardreports.com.

Now that we had what we needed, it was time to present and retrieve data based on the required timezone.

This is where ICU4J came in. ICU4J is a java library for International Components for Unicode, for Java, and can be found at site.icu-project.org. Obviously, since it is in Java the library integrates well with ColdFusion.


So we connected ColdFusion to the jar by instantiating the timezone component in the application scope. We created helper functions to display dates and times in the correct formats and timezones. By sitting atop functions like the ICU4J CastFromUTC, we were now able convert properly.

There is a great blog about globalization in ColdFusion at cfg11n.blogspot.com.

So we thought all was well. We were wrong.

In our application we had a particular balance of database stored procedures and CF business logic. Many queries required date comparisons, for example reporting. We began passing converted dates into the queries and stored procedures, converting them to UTC before using them at the database level.

Sometimes it felt like a hack, but it worked.

Or maybe not everytime. In one place we generated a large calendar from the database. This calendar had to look at each day, but each day was defined based on the timezone settings of the user. Passing a timezone in wasn't always enough - consider months where the timezone offset changes due to daylight savings.

The database needed to have some of this timezone information available. We obviously needed to have some sort of timezone intelligence on the database side. However, depending on your database of choice, there might not be much in the way of timezone functionality built in.

So we began to consider ICU4J integration. It turns out that for our database platform, this had already been done.

Article at CodeProject.com.

So using the ICU4J libraries, we can generate and update tables to store all the information we might need about timezones, offsets and daylight savings boundaries. Powerful stuff.

There are some real benefits to this usage, including:
  • Consistency - we're using the same library on both ends
  • Maintenance - we need to stay on top of updates for one library only (ICU4J)
  • Flexibility - we can play to the strengths of CF vs DB and select the best environment for any particular task.


That's the path we're working towards. So far it was been much more work than we expected but it has also been rewarding. We take it step by step, and keep each piece modular so that we can expand over time. We have a strong feeling that we are headed in the right direction - at very least we are trying to carefully consider our options at each phase.


Tuesday, August 18, 2009

CFUnited 2009 - Day Four

I'm a bit late with my last day post - the lack of sleep caught up with me and I have a bit of work backlog to deal with.

I didn't get a lot of sleep the last night of the conference, so I struggled to get up and checkout of the hotel. I decided when I got to the conference that I would try to attend the sessions that were put on by the major speakers.

I snuck into Ben Nadel's "Extending Custom Tags" function, and was pleasantly surprised. He's a great presenter, and I love that he talks about solutions that are practical. There aren't many other developers that would base a whole session on Custom Tags, since they are sometimes seen as one of the older features of ColdFusion, but Ben showed reminded us of how much we can actually do with them.

He touched on:
  • Recursion
  • Looping and workflow logic
  • The GetBaseTagData() function
Ben also showed us how we could use Custom Tags to call CFCs, allowing us a little more portability in our code and even how to execute components as Custom Tags. A really interesting presentation.

I also attended Peter Bell's "Estimating Requirements" session. He is also a great presenter, and I was again surprised at the amount of new tips that I took away from his speech.

He focused on three types of projects:
  • Configuration - small, common projects where the price can include the spec
  • Customization - medium sized projects
  • Exploration - larger projects that require some research and often require fairly open specs
Peter suggested that in order to get a handle on projects, we should look at these elements:
  • Business intent - WHY is the project being done
  • Audiences and functional roles
  • Objectives - what does the audience want
  • User stories - "as an X, I want X, so that X"
  • Use cases - screens, actions, steps, and alternate and error paths
Some other highlights of the session:
  • For small projects, sometimes the writing of the spec can be part of the development
  • Capturing requirements using Intent Driven Design
  • Focussing on "why" a project is being done, breaking too many intentions into separate projects
  • Use cases are especially important for "fixed bid" projects
  • How to handle "dark matter" - the unexpected things that come up
  • Ways in which you can ensure that if it is not in the spec it is NOT included
  • Agile approaches like Scrum, Lean, Emergent Design, etc
  • The importance of minimizing 'work in progress' - there is no such thing as 90% done
It was a good session.

No better way to end the morning than with another jQuery session by Ray Camden. I thought I had heard all he had to say about Ajax and JavaScript, but at least I knew it would be interesting. Considering I don't know jQuery that well, it was really quite informative. It was nice starting with the basics (selectors) and moving quicking into chaining, matching and filtering. I enjoyed hearing more about the $(document).ready function and a summary of his favourite jQuery plugins.


In between sessions it was also nice running into Jose in the morning, and getting to thank him again for helping me get to downtown DC. I had lunch with him at a table with a bunch of great presenters (Lisa, Dee, Jason, Ben, Simon and more) so it was nice to be able to say thanks and goodbye to these funny and hardworking folks as I headed off to the airport.

I left a lot of time to get to the airport, and just took the trip home slowly, enjoying as much as I could the downtime. The flights were long, but it was great to get home. It was certainly a great conference and wonderful experience.

(Image from afagen on Flickr)

Saturday, August 15, 2009

CFUnited 2009 - Day Three

... And the conference only gets better.

It was another day of free coffee, a great lunch and better company. The vibe at day three of CFUnited was a bit different today, since quite a few people seemed be headed out while a new batch of people were arriving for the weekend session.

Paul and I managed to bump into Sam Farmer and Ben Nadel and a whole bunch of other exciting members of the community. I'm really struck by how some people come to the conference and DON'T network - this community is so exciting, but would be even more so if people took a moment and the risk (it's really no risk) to introduce themselves!!

My first session was with Simon Free listening to him talk about Facebook apps in ColdFusion. There wasn't much here that I didn't know, but his talk certainly demystified FBML for me. He had good tips about:
  • How to handle the bug with the FORM field name fb_sig in CF8 (due to auto form validation)
  • How Facebook processes the pages you create
  • How some features (CFFORM, CFDUMP) won't work within FB pages
  • What "proxied_email" is and why it's there
  • How the new extended privacy policy affects app developers
He was very positive about Facebook without being a fanboy - the platform has it's problems but it is a very valuable tool for reaching many people. His code examples were clean and realistic.

I attended his session on Developing APIs later in the day (man, this guy is busy!), which was another really good one. He described RESTful concepts well, and talked about the problems in creating an API:
  • It takes a lot of planning
  • They might be used/consumed by people in many different languages and environments
  • You have to be careful about scopes (esp cookies and sessions)
  • APIs require good documentation
  • Security is an immediate issue
Simon gave good examples using Apache rewrite and mentioned the code snipped 'GetPageContext().GetOut().ClearBuffer()' as a tool in handling excess whitespace. I loved how he made a template for API method documentation available - good stuff!

I attended Terry and Dip's session about the new Microsoft tools available in CF9. Although I wasn't blown away, there were a couple good things about the session. It was really easy to use the CFEXCHANGE tag, the Sharepoint integration was interesting, and Terry made a great point about how the ability to convert stuff to PDF opens up a whole new world to CF developers due to the amazing PDF functions - extracting text, images, thumbnails, etc.

Mr Ray Camden was hilarious as always in his Ajax CF/911 session. He sold the audience on Firebug and ColdFire (which we already use) and pointed out a few "gotchas" that trip up developers using Ajax:
  • Whitespace
  • How debugging works in Adobe ColdFusion
  • Cross domain concerns and JSONP
  • onRequest in Application.cfc blocking Ajax requests

I attended a session by Selene at RiteTech. It wasn't really for me, but it's interesting hearing someone's thoughts about "build vs. buy" when it comes to e-commerce. I've built many different types of e-commerce applications and I agree with her that the "build" option is not very compelling. Unfortunately, I thought she missed a whole type of solutions - hosted solutions that are developer friendly, like GoodBarry and Shopify. Some hosted options have gotten much more advanced than Miva. I would have also LOVED to see a mention of FoxyCart, one of my new best friends.

My last session of the day was INTENSE - Marc Esher took us on a crazy ride through his development techniques where he avoids "monkeywork", makes the computer the slave and works more productively. He introduced snippets, Launchy, Ant and JMeter and talked about how developers need to avoid the noise - best quote of the session:

Developers accept noise graciously, thus Twitter

Good point Marc.

Man this guy was excited and passionate. Whoever he works for is LUCKY - based on how fast the guy talks and works, he probably gets more done in his 9-5 than some do in a week. A very inspiring session.

The day ended (other than my DC adventure) with a round of great demos by the CF community and a hilarious video. There are some awesome projects out there. Thanks to the CFUnited team and the entire community for bringing us a THIRD day of inspiration. One more day left.

Friday, August 14, 2009

CFUnited 2009 - Day Three, DC edition

I haven't written out my CFUnited Day three notes yet, but I thought I'd quickly write some notes about my evening trip to Washington DC.

After the demos, I walked to the front of the Lansdowne resort. No other CFUnited attendees had responded to my tweet about heading into the city, so I was a bit torn. I'm not a traveller, and I feel so lost - I would be kicking myself if I didn't at least try to see the sights. The shuttle to the "Metro" (like a train or subway to DC) pulled up, and I hesitantly got on. I had no camera or anything from my hotel room, but this was my best chance to get there.

One other conference person got on and introduced himself as Jose. I mentioned my plan to head to the Smithsonian area by myself, and he gave me some tips. I was a bit worried, but he helped me figure it out. We chatted about DC, the US economy, health care, web development, all the light topics.

Just over 90 minutes later I reached my stop. I climbed the escalator to "The Mall". Wow.

It was a really warm night, and even as the sun set there were tourists and excited visitors everywhere. I had NO idea where I was, but I saw the familiar Washington Monument and so I started walking. It is a very strange feeling being in a strange place with no idea of direction or location - but it was a very cool place to be stranded.

An hour and a half later I managed to see the monument, World War II memorial and fountain, Lincoln's Memorial and the White House. The buzz from the tourists, even so late in the evening, was almost tangible, and staring up at some of the historic monuments I could almost feel where some of the Americans get their pride of their country. The sights at night were pretty much breathtaking.

I grabbed a quick sandwich from a souvenir shop and hustled back to the train. I didn't make it to the train station in time (it closed early for repairs or something), but some tourists helped me find my way to the next station.

I got settled for the long ride back - after a train ride, a shuttle ride and a taxi ride, I managed to make it back after almost three hours. What a memorable adventure, even if the actual DC visit was short. Thanks to Jose, wherever you are, for being such a great help!

Photo by ehpien on Flickr

Thursday, August 13, 2009

CFUnited 2009 - Day Two

Another really full day - composing this as I sit in the resort lounge waiting for the "pool party" to start. I'm not a pool party type of guy, but I'm really enjoying talking to some of the people at this conference. So much excitement, so much information to absorb.

Today started nice and early with a CFBuilder lab. Other than the fact that the audience was woefully unprepared and a bit rude to the ladies that were hosting the lab, it was pretty awesome. The help system in CFBuilder works quite well, and you can pull it up at anytime with Crtl-space. The code introspective worked nicely too and the ability to map and manage your servers was impressive.

I hit the Model Glue session after, just to hear Mark Drew speak. He's a great presenter, and since I'm not very familiar with Model Glue it was quite interesting. He took a lot of time to explain design patterns - I found it interesting to hear that he breaks the classic MVC (model view controller) pattern into three smaller patterns:
  • Strategy pattern - detaching your business logic
  • Observer pattern - decoupling parts and having events broadcast to listeners
  • Composite pattern - not always applicable for web apps, but having a code made up of other subparts that can be rearranged but still separate

The keynote for the second day featured Joe Reinhart talking about whether ColdFusion was dead or alive. His conclusion - ColdFusion is obviously very much alive, but not in the form we think. Selling ColdFusion as a scripting language that can connect databases to the web is EXACTLY why the world thinks CF is dying. This aspect of the language is many years old. However, selling CF as an "Enterprise hub" really highlights how far ahead it is of many other web languages. He said that the CF community needs to get excited and start pushing the boundaries of the newer aspect of the language.

His demos of modern CF applications like SlideSix really showed us how far we can push it.

Next Paul and I attended the two ORM session - Introduction to ORM and Advanced ORM. Terry Ryan's intro session was perfect, and it set the tone for Hemant's later session. I loved his frank comparison of the different methods of coding and their resulting number of lines of code and ease of use. The ORM version was less code, and extremely simple and maintainable.

Hemant (I hope I got that name right) dug us deeper, and crammed an amazing amount of information into a single hour. He showed us really meaningful examples of Hibernate in action - relationships, inheritance, mapping and transactions. There was no falling asleep in this session!

I ended up in Barney Boisvert's CFGroovy session. Great presenter too - he didn't lay the groundwork well, but the session ended up being pretty much self explanatory. Groovy is a JVM based language that shares it syntax very much with Java. CFGroovy is a tag that allows CF developers to use scriptlets and embed Groovy code right in their CF files!

At one point, he showed us a CF file that took a CF variable, and embeded:
  • Groovy code
  • PHP code
  • Python code
  • Ruby code
  • More CFML code
At the end of the file, it dumped out the variable and sure enough, each language acted on the variable as expected. Wow. The best part was that it was ridiculously simple and easy to read, and didn't appear slow in any ways.

Anyways, off to the pool party. I'm so tired, but it's worth it. Thanks CFUnited!

Wednesday, August 12, 2009

CFUnited 2009 - Day One


Wow. What a day. In the opening keynote, organizer Liz mentioned that despite a few small issues, this conference was setup exactly as she imagined. I haven't attended CFUnited before, but I can believe it.

The snacks, coffee and refreshments were everywhere, the people friendly and the venue fantastic. The sponsors were excited and talkative, and the food that was served was top notch. If the next few days are like this one this was a VERY worthwhile conference.

So a quick summary of some of the stuff I encountered today. First, some highlights from the keynote:
  • Formation of a non-profit called 4CFF to support Open Source CF projects. I saw Jason Delmore at their booth later.
  • Official rule - all attendees must call Ben Forta "sir" or "master" (WWBD)
  • Terry Ryan as new ColdFusion and higher education evangelist
  • Quick code demo using entityLoad() function and outputting to spreadsheet in a couple lines of CFSCRIPT
  • Announcement of new Adobe licenses for the cloud and creation of official Amazon EC2 AMI

I then attended a session about SQL Server reporting. It seems like a powerful tool, but the session was a bit introductory for me. The ability to allow power users to create Ad-hoc reports based on report models was interesting.

My next session was about Design Patterns. The speaker, Dan Blackman didn't stop to take a breath; he hit us with a continuous stream of useful theory on how to create general, reusable solutions to recurring problems. The session was also very interactive and he encouraged questions and dialog.

The flex stuff was above my head, but there were some great tips on the "ideal" process:
  • Build databases using ERDs
  • Generate class diagrams from ERDs
  • Create CFCs from the class diagram
  • Generate Business Delegates to expose services
  • Build Gateways to package into typed data
  • Create services for CRUD
  • Use mediators and commands to take requests from views
  • Discussed the concept of 'facades' that map out commands in the controller
  • Set up proxies to grab and store data

I then sat in on a "Subversion for Smarties". The presenter, Cameron Childress was fantastic and consistent. Some notes:
  • He spent too much time talking about Git (distributed source control), which was actually quite appreciated
  • Introduced us to the concept of "changelists" in the newer versions of Subversion. These sound like a great way to organize code in your working copy.
  • We heard about the Perforce concept of "ClientSpecs" to allow metadata to be stored in the repository
  • Learned a bit about svn:keywords and keyword substitution, a topic that always confused me a bit
  • We didn't get enough time spend on "hooks" - the thought of pre-commit and post-commit hooks is amazingly powerful

I attended a quick session about building and deploying applications. Pretty standard stuff, but the presenter did a great job. The third-party RIAForge tool 'datamgr' sounds quite impressive, although it might not be as important with the upcoming ORM features in CF9. We also had some amusing conversation about CFENCODE.

My last official session was renamed to "Fusebox - Past, Present and Future". Adam Haskell worked to dispell some old myths about Fusebox and then announced that due to differences with the owners of Fusebox he was resigning as lead developer. He announced that the code was immediately forked as "FuseNG" (next generation). There are already some great features being added. It was a bit of an awkward session, and Adam is a pretty blunt guy, but it was good to hear that the world of Fuse* might get a bit of a refresher.

Closed the evening with an open bar and great conversation with Jim at Grape Stack. That guy KNOWS his stuff. Actually, he knows EVERYONE's stuff. The Railo guys rock too. I'm super excited about things like ORM, ColdBox, and Railo. Paul and I sat in on the CFML Language Advisory meeting before leaving for the night.

Wow, a full first day. Looking forward to tomorrow.
Ready for the CFUnited keynote. Forta speaking. Great conf so far, it sure is warm here!

Tuesday, August 11, 2009

Made it to Vegas for the first flight, got lost. Big airport, had to take monorail. Now waiting for my flight to DC.

Saturday, August 08, 2009

Big family gathering for father's 60th. Couple unexpected guests, good times.

Friday, August 07, 2009

What started as a disappointing BC Lions game has become pretty sweet. BC up 22-14.
Walking down Hornby from work, headed to BC Lions football game with MikeI and the boys. My son's excited.

Thursday, August 06, 2009

There is a restaurant in Berkley called Dig's Bistro that watches and feeds your kids while you dine with spouse. Awesome idea.
Got to watch the Snowbirds and a fighter jet fly in formation over Lions Gate bridge and our office building. Crazy tight together. Cool.