My experience at Umbraco UK Festival 2017

This year I spent two days in London for the 2017 Umbraco UK Festival, and although I didn't attend the hackathon (more on that later), I had some pretty unique experiences and so I thought I'd share them here.

I work for a company called 101 Smart Ltd and they're based in Norwich, it's through them that I found my calling with Umbraco and finally decided to give up PHP development. Since this post isn't going to be one of my usual posts, such as a tutorial or a project development post, I'm going to be myself and provide an honest account of my thoughts and experiences of #UmbUKFest. Also, thanks to @crgrieve and her amazing post on her experiences, she gave me the motivation to write my own post and for that I'm truly grateful. Here goes.

It all started as a normal day.

**BAAAAAAAAAAAAAAH!!!!** On the morning of Thursday 2nd November, I woke to my alarm, which if I might add, is across the other side of the room, that's because it forces me to get out of bed and shut it off before it wakes anyone else. You see, when you get out of bed at 3:30am every day, you need something to motivate you. I have to sprint across the room to turn my alarm off before it wakes the wife and kids, I wasn't too sure if I actually turned it off that morning, or if I or just hit snooze, but whatever. I left my phone on the top and walked across the hall to go get ready; I finished up and headed downstairs. After I reached the bottom, I realised I'd left my phone sitting on top of the chest of drawers in the bedroom, so did I actually turn that alarm off? Agh, I had to go get it - I needed some coffee and if this tweet from last year is anything to go by, there was going to be plenty.

Next up was a quick trip to the gym, the past week had been an amazing week, I'd told myself that I had to to get a personal best on everything, a bit cocky I know, but sometimes you've got to break out of the comfortable routine you've settled into. I surely had. Every single muscle in my body was dead and so I decided to head off after a two hour workout and go get something done at work before setting off.

After a few hours at my desk, myself and @HollyStibbon - the chief sales director at 101 and part time project manager, decided to set off for London. It was 2:30pm and I was ready for bed. I'd had a cold for the last week too, my voice sounded like Bear from Armageddon, I wasn't sure if it'd last.

The company I work for is a small one, and I don't get the chance to leave the office often, I've been known to spend up to 13 hours in the office some days (this is through choice, I have a lot of side projects that I like to get done in an office environment), so we got to the train station and as typical 'tourists' spent around £25 on two coffees and a biscuit (total ripoff), one of them was a gingerbread latte, Dave at the office has a thing for those special coffees, so I sent him a picture and got on the train. For the whole journey I'm thinking 'we've got the wrong train', it was going down a track I'd not been on before, but hey we made it and the coffee by the way was disgusting, but I wasn't about to let Dave know that, because as far as he's concerned, it's amazing and he's missing out. He wasn't, but I like to wind people up sometimes:

Arriving in London.

Who doesn't love a trip to the capital? Every time I travel down to London, I spend 10 minutes panicking about what form of transportation I'm going to use, and then spend the rest of the time staring up at the tops of buildings wondering just how does a building stay up when it weighs so much? What if the wind blows too strongly? So many questions. You can tell I come from a place where the highest building has three floors right?

Anyway, we wanted to get into London the day before the event, so that we'd have enough time to get things at the hotel sorted, and so that we wouldn't have to rush on the morning, potentially worrying about train times and late arrivals. We had the event and trains booked well in advance, but for some reason decided to book the hotels last minute. This wasn't a good idea. It turned out, there was at least one hotel within a reasonable distance of the venue that had a room for a reasonable price. It wasn't actually that reasonable, but it was if you compared it to what else came up in the search.

When we arrived at the hotel, the receptionist had no idea who I was, other than my first name that was on a booking conformation slip we'd printed that is. He somehow managed to get Holly the key to her room within seconds though, so that was fairly aggravating. After finally sorting the rooms, we headed upstairs to drop our belongings off and head out for a meal. Holly got the massive room, two beds, large window to the road below and plenty of space for her things. The bathroom door hit the toilet, but who cares? My room smelt of smoke, was just about big enough for the one bed, and when I opened the window, I was greeted by the noise of 6 AC units and the most amazing view I'd ever seen:

The night before.

This is where my voice started to get tested. We were wandering around Islington wondering where to eat and I'm not sure what the restaurant was called but I do remember how LOUD it was. Those capitals are justified in every way. So we're sitting either side of the table and somehow, using the power of lip reading, I was able to understand what Holly was trying to say to me. The only problem was when it came to my reply, my throat hurt so much by this point, every reply was at the top of my voice and felt like I was trying to swallow a bog brush. If you don't know what swallowing a bog brush feels like, it feels like that. Anyhoo... The meal was nice, I ordered the fish cakes and a pint of Adnams Ghost Ship to wash it down. What followed shocked me for days to come.

The waitress leaned over and whispered in my ear...

'Are you old enough to drink?'

My throat tasted like blood at this point, so my reply was a very faint 'Yes...' She asked for ID. Meanwhile I was thinking, 'I haven't been ID'd in years, I've got three kids a wife and a mortgage, do I still look like a kid? Perhaps it's my patchy beard? Apologies to anyone who had to see my facial hair by the way, I had a busy couple of days and put off shaving, then forgot to pack my shaver and my phone charger. My phone by the way, uses a type-c connector and no one, literally no one has a type-c connector. I tell you now, my phone must have been running off Umbraco unicorn dust because some how, it managed to last the two days we were in London with some to spare. God bless you Sony. Android for life.

Afterwards, we headed over to a pub up the road where where it had been agreed that all the Umbracians would meet. I grabbed a cider and met with @MisterSooty and @edparry, two great guys who continued to be a source of great conversation throughout the evening and the following day at the event.

Why not attend the Hackathon?

I decided not to attend the hackathon this year because I wasn't too sure that I'd be any use, I'd always had the opinion that if you're working on the source for Umbraco, you're way smarter than me, don't get me wrong though, I know my way around Umbraco and consider myself a fairly decent programmer, I'm even a certified Umbraco Master, but when it comes to using Git and actually working on the Source of Umbraco, do I have a place here? I'm still not sure. Who knows. I do like the description of Umbraco master though:

'Umbraco Certified Master is a developer with the highest level of developer certification. A Certified Master has committed to achieving all available Umbraco training courses and thereby has build up a 360 degree understanding of building applications on Umbraco.'

The night before UmbUKFest, I'd spoken to a few people about the hackathon, mainly @crumpled_jeavon ‏and @CliveRCooper, and the consensus seemed to be that if you turn up, it's a great place to start with working on the Umbraco source code and get to grips with how the systems work. Apparently there were a few people this year who'd never worked on it before, so I guess that's comforting to know.

Should I attend the hackathon next year? (That's not a rhetorical question, please let me know. ;D)

Welcome to the jungle.

We entered the Barbican Centre via the Silk Street entrance and took a wander down the massive entrance to a small cafe, we were a bit early so the cafe wasn't yet open, we waited around until it was and ordered a coffee and a cake - cake for breakfast, how good is that??

Anyway, after heading up the elevator to the 4th floor and stepping out onto what appeared to be a balcony, we're handed a talk schedule and someones on hand to put flowers round our necks. The building opened up to a massive roof top garden, completely enclosed in glass. It looked like a Jungle, the only difference was that jungles are warm... This was freezing. Hey, it's November, we're in London, dressed like it's the middle of August, in the 80s, in Miami, and we're standing in a building made of glass. I admire the guy that wore shorts and a beach style shirt. Screw that for a laugh.

Keynote.

The main event started with the keynote. I've not much to say about this other than, what the hell? Basically the event opened, and two girls ran onto the stage and shouted 'Good Morning Umbraco UK Fest 2017!' and proceeded to grab three pairs of people from the audience. I was standing on the front row and thought, 'they better not pick me', luckily they didn't, because what followed was a dressing up competition which included a pink tutu. The first pair to dress someone in supposedly 80s miami dress code and tweet a picture of it won. I started to wish I was picked though, because the winners got a ticket to Code Garden next year. Jealous.

v8 architecture.

This sounded like my kind of talk, to learn about what's coming up, plan accordingly and start thinking of ways to make use of future Umbraco features, can be nothing but a good thing. Oh how v8 sounds like my kind of thing. As it turns out, they're cleaning out all the legacy code and speeding things up. I could imagine that this is more work than it might first seem. There's a lot of legacy code in Umbraco. And I mean a lot! They've been doing it since mid last year.

There's also this new feature, which might be available in late v7, and it's called Nested Content. It's rendered as an accordion within a tab on a node in the back office, users can add as many or as few content items as they like (obviously as per the specifications that the developer has set out). I want to call them child nodes, but they're not, they're almost stand alone in that respect. The sort of implementations I can dream up for nested content are things like slides for carousels and other in page content that doesn't necessarily need to have a url or separate route & template attached to it. There's a lot to do with it, and I can imagine that it'll open up a world of development opportunities.

Why talking is good for your health and your wealth.

Honestly. Not what I expected. My first idea was that this might be a talk about giving talks and how to apply that to your job, and probably finishing by enlisting a few people to talk next year, this wasn't the case. Ravi seems like a great guy, he gave a talk about how depression effects people and talking about it/other stuff really helps. He made the case that if you talk about yourself and the things you love, then you'll be a happier person for it.

Ravi asked everyone to stand up and then started to list people that should sit down. He asked everyone who works at Cogworks/Umbraco HQ to sit down, next he asked everyone who'd spoken to a room more than 500 people and progressively got smaller and smaller in numbers, until he asked. Please remain standing if you've never done a talk to a room of 5 or more people at your work place. I remained standing, I've spoken to people across my desk before, that's pretty much it. He asked the remaining 6 people to come to the stage.

We stood in a line on stage and Ravi asked the first person to address the audience with their name, where they're from and where they work, one by one we all spoke out. Once it got to my turn, I wasn;t sure if my voice was going to work, my heart was pounding and my throat still tasted like blood from all the shouting the previous night. My voice worked and I got through it. It felt amazing. It's inspired me to do a talk about something where I work, not sure yet what it'll be about, but perhaps I could turn it into a talk for next years Umbraco festival? Who knows.

How to get the website you need built.

A talk that ended up as a very concise, and great approach to dealing with clients and weeding out what they actually need from what they think would be cool, but also a seemingly very bitter talk on the surface, you can tell that Pete Duncanson has been through the wars when it comes to clients, he's a very funny guy and oh so true when it comes to the subjects he covered in this talk, but holy hell, the bit where he grabs an imaginary idea from his arse, takes a look and puts it back, that was all too much for me, he had me keeling over in fits of laughter, I still think of it now and smile.

The bit where he discussed a client who states they have 10k to play with, so you quote a 10k website and start building, then they 'find' another 5, I've had that a couple times and I know, it's so demotivational when all of a sudden you're ripping out a load of code that you put a lot of time into all because the new money provides an opportunity to do something else, sure the money is good, but it feels like you've killed a pet or something.

This talk was given by Mike Masey, a seemingly very nervous guy on stage, but hey, who am I to talk. Have you read the earlier paragraphs on talking? The talk was a bit controversial for me, he had been part of the development of a great bit of software where people are able to submit running routes to a repository of routes and look over them to choose where to run. The routes required verifying and authorizing, so the site has a lot of admin work in the background.

I can't help but feel that a site like that would be better suited to having a free for all route building platform where users can rate content to boost great routes and thus negotiate the need for admins to inspect/verify. I'm also not sure about how well Umbraco is suited to holding all those running routes in the back office of the site as nodes, I can't pretend to know fully how the site works and I'm not sure of how many routes it actually has, but if it's UK wide, I bet it's a lot. Personally, I'd have created a separate database for the routes and various other bits of meta data such as stats/likes etc and used Umbraco for the site structure and the API's that come with it. Perhaps create a custom indexer for examine that'd index all those routes from the database for quick access? The down side to this method is that some other admin interface would have been needed, whether that's in the form of a custom section within Umbraco, or an entirely separate admin area on the front end. Perhaps a separate admin area may have been a good thing? It'd allow the website to have a bunch of admins that don't necessarily need access to Umbraco.

On the other hand, the site seemed very responsive and delivered exactly what it needed. Also the talk was a great one for getting you to think about what you've got on at the moment and also think about in a site such as the running one that he's displayed. It also reminded me of a similar project I'm working on in my free time and a sort of side project called Gym Workout Tracker, which was pretty cool because I was able to apply what he was talking about to some of the system I'd developed. Gym Workout Tracker is an app at the moment, built using Xamarin and uses Umbraco as its sync server. Umbraco hosts the services and nodes that the app relies on and handles figuring out what data to send to the client and puts into the database. It's almost like I need a sort of headless Umbraco installation right? ;)

Securing your Umbraco site.

What with GDPR coming up, this was very useful, Sebastian Janssen gave the same talk at this years Code Garden and instructed everyone that entered that if they'd seen the talk at Code Garden, then they should leave right away, because it's exact! Luckily I hadn't seen the talk, neither have I been to Code Garden, so I missed out on a lot there.

I think I learnt a lot on this talk and was probably one of the most immediately useful talks of the day, we ran through securing an Umbraco installation that'd been set up to run over HTTPS and how there are specific settings within the Umbraco/web config files to make sure the CMS only uses the HTTPS protocol, this is great because it make sure that Umbraco wont start hosting insecure content and displaying it on a request that's trying to remain secure.

Another interesting bit was where he loaded in a script that'll make the the site do the Harlem Shake. Whilst this seemed amazing at first, and particularly funny, he quickly explained why it wasn't. Since it's loading in files and scripts from other domains, it quickly makes you think about what might actually be possible with modifying page content and reading user input etc, this is why Sebastian suggested setting a content security policy whereby the administrator of the website can set the allowed domains for content on a type by type basis, so for example, you can only load js, css and fonts from one specific domain, but you can load images from anywhere, things like that. I've definitely gone away from his talk thinking a bit more about how to secure websites in that way.

Someone from the audience asked a question about GDPR and the answer was a simple, 'we'll make it work before christmas', which is a great reply to be fair, he also explained that Umbraco doesn;t actually need that much work and encryption only serves the purpose of making it so you don't have to tell the client, but fines still apply.

Headless Umbraco.

Headless Umbraco hasn't been released yet, and to be fair, this talk by Per Ploug is the first I'd ever heard of it, however I'm already dreaming up ways of making this work for many platforms. As I've said earlier, this'd be great for the Gym Workout Tracker app I'm making and also a number of other back end only implementations I've created over the years. It's great how something that was designed as a tool to manage content within a front end website, actually has enough compatibility and tooling to actually work as the back office for almost anything.

As it turns out, Umbraco HQ are apparently looking for people to beta test headless Umbraco at the moment and want a few people to test it out for them. I'm thinking that I use Umbraco in that way so often that I may actually email them and get myself a copy.

The need for speed.

Next up was a talk by Dave Woestenborghs about speeding up your website by a claimed 3000%, obviously we're all interested in a speedy website and to boast improvements of that caliber, it was an offer myself and lot of other people couldn't refuse.

There were a lot of things that seemed OTT in my opinion, such as adding in extra caching plugins to your website and using this whole 3rd party system to cache instead of Umbracos built in services. Though he did cover cached partials quickly, but the main take away from this talk for me was the use of XPath to query the cache directly to get content, I'd heard of this approach before, but never seen it in action. Until now. It also turned out to be the bit that increased Dave Woestenborghs site performance by so many thousands of percents. Hey, if I can put it to use, I will.

I ended up doing a bit of testing with XPath myself when I got back to the office, I set up a timer and ran both Typed Content and XPath queries to get the content I needed, and would you look at that, he's right. Just make sure to run the tests on separate requests, if you run them side by side, you get screwed results because of some weird caching that goes on in the background. Whichever runs last, runs the fastest.

Is this the beginning of a thing?

On the train back, I'd already been talking to Holly about who'd come from the office with me to the next UmbUKFest, you see last year I took Niall, one of our apprentices and Dave, the creative director. This year I brought Holly, any next year I'm thinking I should take an apprentice again. It's a great way for them to meet the people that build the software they're going to be working with day in and day out. It's also great fun and provides an opportunity to spend time with them and talk about things that might not necessarily be work related, but still interesting to them. Also, do I offer up myself to do a talk, on what? Who knows, it'd be amazing though, whatever I talk about. Not to sound cocky at all.

The aftermath.

At the very least, if you turn up and learn nothing, I'd be surprised if you didn't, but let's say you didn't, you would have met so many people, a whole bunch of people at the pub afterwards and spoken about so many ways Umbraco can help you and others that, you'd still have loads to take away with you, and a tonne of new contacts on Twitter to call on.

Thank you Cogworks for hosting the event, thank you Umbraco and thank you to everyone I've mentioned in this post, it was a great experience and I look forward to next years.

Comments

Ravi Motha

Yes please get out your comfort zone and do a talk, it's a great way to meet people, improve your profile and and as I said "get wealthy".

13/11/2017

Chris Howarth

Great write-up, Luke! Found your article while looking up who the presenter of the 'Securing Umbraco' talk was. And then got quite the surprise when I saw MY FACE in the tweet below it. Was good to meet you and Holly.
Hope you had a rockin' Christmas.
Cheers, Chris

28/12/2017

Luke Alderton

Thanks Chris, glad you liked it. That was a great selfie with you guys involved. Hope life is treating you well. Happy New Year!