Tridion Developer Summit – A review

It’s been almost two weeks since the world’s first Tridion Developer Summit. This event was the first of its kind where Tridion developers from around the world had the chance to get together and share what we’re doing and how we do it. It was a bit like the analog version of tridion.stackexchange, but without anyone downvoting answers. First I’ll offer a short review of the summit, and then some follow up thoughts on the content of the sessions that I attended.

The Summit on the Sea

Robert Curlette, the organizer, wanted to try something unique for a location — and he definitely nailed it. The summit was at a place called Undercurrent. What you’ll see from clicking the link is that it’s an actual floating building. It was pretty stable, so it felt more like a cruise ship than a boat. There was a second space for sessions which was dark, WiFi-less, and rocky. This space quickly became known as the dungeon. The event center on a whole was cool, but trying to speak in a randomly rocking dank dungeon was…weird.

All of the sponsoring partners set up booths at the summit, complete with swag. SDL gave out nifty USB drives, and there was a wide variety of pens to choose from. In my humble opinion, Tahzoo’s swag was the best; we bought the drinks.

Robert also had videographers and artists running about, drawing and videographing things. The end result was a fun lil’ video with a stellar ukelele jam.

The Sessions

The sessions were really good. The Tridion community is loaded with developers who are accustomed to public speaking; the sessions were informative and engaging. Not only that, it was nice to see that the speakers weren’t all tied to PowerPoint the whole time. True to being a “developer summit”, we got to see some code, too.

Tridion Context Engine and Mobile Optimization

Ian Homer presented on this topic, and it was a very cool one. I’d only really heard of the context engine, so it was very cool to see it in action. The context engine is a cartridge that integrates with the Ambient Data Framework (ADF). While the ADF is typically used for providing personalized content to the user, the context engine actually gives you information about the device and operating system. Essentially, Ian showed that it adds a lot of awesome-sauce to your mobile experiences.

A Responsive Image Problem

One of the things that’s troubled front-end guys like myself is this little issue of responsive images. A responsive design is all fine and dandy, but what about those images? When images are content — not presentation, we’ve got a problem. Do we load multiple images, and use CSS to hide the ones that don’t fit for that screen size? Do we use JavaScript to switch out images? Do we use CSS to resize a big image? None of these solutions are good because they cause pain points in the browsers.

A Responsive Image Solution

Ian showed a lot of things, but the one that sticks out is his solution to responsive images. He showed that, through the Context Engine, we could detect screen size (height/width) and get a resized image — server side. It’s a matter of adding some fairly basic markup to an image src attribute, and letting some server-side magic do its thing.

Through the Context Engine we can detect height and width. If we’re willing to do some basic math, we can extrapolate portrait/landscape and even aspect ratio. I don’t fully understand exactly how the resizing works, but it seems that we can do both a crop and a resize. And it appears that we can even attempt to preserve the aspect ratio of the original image, by only changing the image on either the x or y axis.

Agile Tridion Development

Dominic Cronin‘s session on agile development was also good. For nearly two years I’ve worked with a client that practices “faux agile”, so it was nice to learn what a full agile process looks like.

Testing, Testing, Testing

Dominic had a lot to say on agile development, but the thing that stuck out the most was his emphasis on testing. The first thing— which was totally worth the trip — was discovering that he, Quirijn Slings, and Andrey Marchuck had written something called T-Cubed: Tridion Template Testing Framework. We’ve got a framework that gives a structured way modify content of a package, and make assertions on that content. So, we can make and test assertions on TBBs. Totally rad, man. Totally rad.

Another thing that Dominic brought up was web validation testing. Being a front-end monkey, this is a thing that I care about. A lot. But when I have to validate my code, I usually validate either the static prototype, or the production version. I’d validate my static prototype with a validation plugin, or the final product with W3C’s validator. Of course, the problem is that the W3C validator doesn’t work on locally hosted sites, or sites available to us behind a firewall. Dominic presented a very simple solution to this problem by proposing that we stand up a local instance of the W3C validator. Heck, he even wrote instructions on how to do this.

Test Data, fools

Another good point was the issue of test data. A test Structure Group, or even a test Publication might be appropriate for a development environment. Not only that, a script for generating test data isn’t too bad of an idea. A script that generates UTF-8 content for a given schema is a solid idea for catching special-character issues. In the past, I’ve always generated my test content as, basically, the exact content that I’d see in production. Upon reflection, it’s amazing that I’ve survived as long as I have.

End to End Testing

Basically, Dom’s session was end-to-end testing for Tridion. Test the Schemas, Component Templates and Page Templates, and the web site. No one likes testing, but it’s necessary for producing a consumable product.

The Big Idea

I attended more than two sessions, but it’s hard to summarize just the two in under a thousand words. Go to the Tridion Developer Summit. I’m not going to repeat myself, but trust me, it’s worth it.