WordPress London – June 2017

After another favourable month in the meetup calendar, I was again available to get along to the WordPress London meetup, and boy was it a stonker.

Todd Halfpenny talking at WordPress London, wearing an Ionic Tshirt, looking animated.
Picture: Primary Image

The meet was held again at City University, who have been incredible venue sponsors of the meetup for ages, and who’ve agreed to keep up the sponsorship deal until the end of January 2018… bloomin’ good folk they are.

And speaking of sponsors, I should also mentioned that Gary and Dan announced that WP Engine have just agreed to a 12 months sponsorship renewal… so huge thanks to them also, and of course to SiteGround who sponsored the June event too.

Community Announcements

The meetup was taking on a new format this month, and the first change was the expanded section on announcements within the WordPress community. I’ll just bullet the key notes here;

  • WordPress London 2017 are after some support in formatting and posting up the transcripts from the talks. If you’re interested then you can find out more by tweeting me.
  • Videos from previous meets are on the WordPress London facebook page.
  • There’s a Profitable Developer Bootcamp for WordPress – Looks interesting if you’re interested in making money from WordPress
  • WordPress London have a new section for lightning talks, called wp_update_post… and they’d like talk ideas. If you’re interested, tweet ‘em up.

Also, here are some upcoming events…

The Role of Page Builders for Developers – Doug Belchamber

This first talk came from Doug, who works for Smarter Digital, and focused on his history with Page Builders, and how his opinion has changed over time, right up to the 2nd-gen page builders of today.

He told us how they’ve evolved, from the times of using shortcodes, and widgets, and then ACF. From these building-blocks came, what Doug refers to as, 1st gen page builders. These 1st gen incarnations had a few weak spots. They weren’t great at showing how content was going to be rendered on the front-end, their performance was questionable, and then if you disabled them you were left with what Doug refers to as shortcode hell. These thoughts and anecdotes appeared to ring true with many attendees… there were a lot of burnt fingers.

He then talked about Beaver Builder, one of a current raft of plugins that he classes as 2nd gen page builders. This part was thoroughly enlightening… he talked through how he uses it in his workflow, as a developer, and how you can create modules for it, configure it dramatically via its powerful API, and handle user access.

Now, I can certainly see myself as one of these devs who instantly feels a bit nauseous when page builders are mentioned, but Doug has done them proud with this talk… go watch it now.

wp_update_post

This next slot was incredible… Dan and Gary made a real steal in getting hold of this chap to talk through the updates to WordPress that dropped in version 4.8.

OK, I’m kidding… it was me doing a brief lightning talk as part of the new format of the meetup. I don’t want to big myself up too much, but if you want to know about the new Widgets then checkout the slides, or video of the talk.

WP_Model – Anthony Budd

Next up was Anthony, talking through his pseudo ORM for WordPress, WP_Model, and open source project designed to provide a better method for handling posts using a simple OOP style syntax.

I made so many notes on this, as it was truly fascinating. WP_Model can be thought of as cake, or Laravel, if you’re familiar with such things. Anthony started the project to abstract the way he had to deal with multiple tables in the WordPress database when building apps with WordPress as a Backend. He was having to use wp_post and wp_postmeta tables, but with WP_Model he was able to create an abstraction of the data. He had several goals for his project, they included;

  • Simple syntax
  • Easily added to existing project
  • Calls to go through wp core

Anthony also mentioned some generic benefits of re-using WordPress as the backend for your project. Things like its popularity and community, and from those the vast repository of plugins.

There were loads of great examples in Anthony’s talk, so I strongly suggest you check out the following links;

Wrap up

Well what can I say… GO CHECK OUT THE VIDS OR BE SQUARE.

Seriously, do it now… Doug and Anthony are aces!

And so are Dan, Gary and Annabelle, for organising another great meet. Thanks too to City University, WP Engine and SiteGround, for sponsoring.

Next meet is booked in for the 27th July, RSVPs open right now, too.

WordPress London Meetup – April 2016 Review

It had been over a year since I last attended a WordPress London meetup, and I’m so pleased to be back going along to them again. Last Thursday I trotted along to the City University lecture halls in Angel to get my fill of WordPress community goodness once more.

And for what reason did I start going along to these again? Well I have just recently released freemium WordPress plugin, called Turbo Widgets. This is an update to the five star rated Widgets on Pages plugin that I wrote and submitted to the WordPress plugin repo many years ago now. With this now out in the wild I felt that it would be good to get involved in the community again, and make sure that I’m up-to-date with the best practices, technology and, of course, gossip.

On my way into town I did the usual “search for the event hashtag to see of anyone is about for a cheeky half beforehand”… and loandbehold this popped up in the results… result!

I knew of Jenny from her move to HumanMade and her stunning work in the WordPress community; she was lead organiser of the amazing London WordCamp 2016, so who was I to turn down an invite like that. I had a cracking pint with her and mostly chatted about the recent WordCamp. If you ever get the chance to chat to her then you’ll find her passion something to cherish.

Onto the event, and the food and beer that was provided thanks to the evening’s sponsors, SiteGround, WP Engine and Beaver Builder. Some quick, and nice, chats were had and then the talks began.

Why we built our SaaS startup on WordPress and why you should too – Elliot Taylor

Elliot shared what he’d learnt from taking on his SaaS offering YoGrow. He spoke of the journey from it being a plugin in the WordPress repo right through to it’s current state as a SaaS offering. He first spoke of the downsides of the public repo, and how it’s very hard to get a real valuable insight into the usage of the plugins. He said it was very hard to have a conversation with users, and to find out what features they like etc.

Failure is a guaranteed part of building a product

He also ran through some reasons to use WordPress as the platform for your SaaS project, and other tips that he’d picked up on his way to his current position. I haven’t found a link to his slides, yet, but he’s what I’d jotted down in my notes.

  • Failure is a guaranteed part of building a product – It’s better to fail on small iterations
  • Don’t try to do to much, don’t focus on the solution, and focus on the problem.
  • If you can, market whilst you’re building.
  • Set some KPIs, even if they’re just guesses they’ll keep you focused.

I also asked Elliot if he was ever concerned about uptime when he pivoted to a SaaS from a product. This worry is one that is right at the front of my mind when I ever think about setting up service businesses. Elliot was pretty dismissive of this, and said that there were top-notch WordPress hosting companies that took this worry off his shoulders, two potentials are actually sponsors of the meetup too.

Docker Deep Dive for WordPress Admins – Mark Sta Ana

Mark was next up, and gave us a technical talk on how a WordPress dev/admin could use Docker in their workflow and deployment. He started out explaining that he first started reading about Docker following a hack on one of his sites that quickly spread to his others. By using Docker, Mark is now able to sandbox all of his sites, so that any compromise is now limited in risk.

He then gave us demos of Docker in action. He showed us how to get a WordPress site setup, and how the various parts all fit together. To be honest I couldn’t do his talk justice, technically, so I’ll just link to his slides.

In my local WordPress dev workflow I currently use Vagrant through the wonderful VVV, whether I’ll switch to Docker for that I’m unsure, but perhaps if I ever take of my own production hosting then maybe I’ll give it another look.

Wrap Up

I was so pleased to be at another local WordPress meetup, I honestly missed it, and the members, so much.

Dan appears to be doing a great job organising the meetups, and the wpldn.uk project (more about that in another post, to come) and deserves a huge thank-you, from at least me, on such a good night. Thanks also to the speakers and let’s not forget the sponsors.

The next meet has already been pencilled in for the 26th May (though check meetup for updates, as it may change), so mark it in your diary… and I hope to see you there.

Conditional Breakpoints in Chrome Dev Tools

I recently attended WordCamp London 2016. It was a true blast and an absolute success and really deserves its own blog post, maybe I’ll get round to writing one soon. There is a small thing I need to share sooner though, as it’s been a HUGE help to me in my dev life.

Now I’m a big fan of the developer tools available in Chrome (other browsers are available) and I knew about the ability to set breakpoints in the JavaScript that can be seen in the Sources tab. What I didn’t know though was that you could set conditions against the breakpoint, so that execution would only be paused when the conditions were met. I think it can quickly be seen how this can be incredibly useful when you’re keen on digging into particular flow of events and data through your code.

To add conditions to breakpoints the process is straightforward. Simply right click on the break point and you get the option to edit it. From here you can then add the conditions.

Screenshot of breakpoints in Chrome

Now when my code runs the breakpoint shall only be triggered once the conditions are met. In my case (see this Codepen) I wanted to only trigger my breakpoint when the el.name was the string “Flop”.

Screenshot of Triggered Conditional Breakpoint in Chrome Dev Tools

I learnt of this during an extremely enlightening talk by the wonderful, passionate Katie Fenn that covered loads of gems of information on how to make the most of the Chrome dev tools. Her slides can be found here.

The Easy Way to Add Widgets to WordPress Content

In my experience of building and maintaining WordPress web sites it is quite a common to want to put some related blocks of information into your main post’s or page’s content, inline. For example you might want to add a tag cloud or a list of related posts. This type of information is already available via WordPress widgets and of so you could add it to your sidebar (if you theme and template supported one). But what if you want to add the tag cloud into the middle of the post… like this;

Wow, pretty cool eh?

So this is possible today using my 5* rated Widgets on Pages plugin. With the plugin installed you can create a new Widgets on Pages sidebar, add your Tag Cloud widget to it, copy the generated shortcode and then paste that into your content. But now it’s even easier…

Introducing Turbo Widgets

I’ve recently created a new plugin for WordPress, called Turbo Widgets. And with this, WordPress widgets can be added to posts and pages using the nice WYSIWYG editor… click, click, click, BOOM!

Turbo Widgets Demo

There’s a free version of the plugin available on the WordPress.org plugin repository that has this nice GUI for adding widgets and there’s also a premium version that supports the ability edit the widgets too, again using the TinyMCE WYSIWYG editor.

And Turbo Sidebars?

As well as this, the premium version also supports Turbo Sidebars. These are custom content areas that can hold standard WordPress content (text, images, etc) as well as widgets added through the Turbo Widgets features. These content areas can then also be added to posts and pages via shortcodes (soon through the WYSIWYG too) . You can also use template tags to add these Turbo Widgets to your themes templates, say for example adding related posts to the bottom of each blog page.

The documentation page for Turbo Widgets contains further info on how to use these, but I also hope to blog through their usage too in the near future.

WordPress London – March Meetup

It had been quite a long time since I last attended a WordPress  London meet-up, so I was very excited about going along again and getting a good fix of WordPress geekery (as well as chatting to folk and drinking beer of course). The event was held at Shoreditch Works Village Hall for the first time and it provided ample space and the required tech. The venue and pizza was sponsored by the following kind orgs;

The Talks

Joel Hughes – The Business of WordPress

Joel gave a passionate and honest account of his move from permanent employee, through contractor and freelancer and onto running his own agency. He covered some of the key mistakes that folk (including him) make when starting out in alone, and some notes on avoiding them (the second time perhaps). They include;

  • Undervaluing Yourself : On a personal level right through to pricing
  • Clients from Hell : Educate the good ones, they’ve probably not bought a website before. Fire the bad ones.
  • Business is Personal : If you’re a freelancer, BE a freelance; don’t pretend to be an agency if you’re not. If you do you won’t be authentic, and this will show.

Joel also did some shameless pimping of his The Business of Web Design conference, which I have to say has a nice looking line-up of speakers. I’d probably be going if we weren’t due a baby the week before.

He also asked for freelancers of all sorts to get in touch with him. Looks like business is good.

David Coveney – Let’s Move It

I have seen one or two of Dave’s talks before at various WordPress (un)conferences and after seeing his take on Baz Luhrmann’s “Everybody’s Free To Wear Sunscreen” I wasn’t sure what to expect next. He didn’t disappoint by starting the talk with some kind of body convulsions which, I think in popular culture, could be described as dance moves.

He then proceeded to talk us through some basics behind running a WordPress migration with as few hiccups as possible. He discussed various migration types (server to server, multisite to singlesite, domain swapping) and their various pitfalls. He also talked through a few tools which can make life easier. These included MySQL Workbench and his company’s Search/Replace plugin.

In true Coveney style he then plumped for a live demo of a site migration (server to server and domain swap)… the audience, of course, new the perils of live demos and were all waiting for the inevitable.

Don’t work with computers – Dave Coveney

And of course the inevitable happened. So much so infact that Dave’s new database that he was using in the demo ended up being named fuckit. He rode out all that the live demo-gods could throw at him with it finally succeeding. His parting words of advice were “Don’t work with computers”.

Stiofan O’Conner and Tim Clark  – GeoDirectory

Stiofan and Tim talked to us about GeoTheme and the move to a new GeoDirectory plugin that will be appearing on WordPress.org very soon.

They briefed us on the history and the direction they think the plugin is headed. How they want it to become and extendible product with multiple revenue streams. The plugin looks like it’ll be very powerful and is well worth looking at if you’re interested in building up any kind of location-based directory.

Parting words

The standard post-meetup beers were had in a hipster-filled pub just around the corner, and I had some lovely chats with old friends and new from the WordPress community. I heard from a couple of the guys and gals that there was a lot of work out there for a WordPress freelance dev… this is certainly good news with my resignation notice period winding down.

I certainly can’t wait for the next one.

From a Problem to 100,000 Downloads

It was 1054 days ago that I first wanted to place a WordPress widget into a post I was writing. Whether it was for a client site or personal one I can’t remember… the important thing is that out of the solution I came up with emerged the Widgets On Pages WordPress plugin.

The plugin has undergone very little change since it’s 0.0.1 check-in to the WordPress.org plugin repository but since then it’s had very favourable reviews and been included in several blog posts and conference talks. But more importantly, for today at least, it’s now been downloaded over 100,000 times!

It has a current rating of 4.7/5 and at the time of writing sits as the 105th most highest rated plugin on the WordPress.org repository. 105th might not seem too good but it should be noted there are over 23,800 plugins in the repo.

August wp-hooked Widgets Admin Write-Up

At the August Meet-up of the London based wp-hooked I talked on the topic of WordPress Widgets, and in particular the admin area for them (slides can be found here). The talk came from the view of a user (read not developer) of WordPress who wants to take advantage of all the wonderful chunks of code that already exist in the WordPress widgets ecosystem. This ecosystem is a constantly growing one with Widgets being developed and released on the WordPress.org repository all the time. For website users (e.g. site owners, authors, etc) to actually make use of these great blocks of logic it’s not a friendly place sadly. The legacy idea of Sidebars is one that still has a place but it’s the use of Widgets outside of these well-trodden widget areas that things start to get tricky.

Let’s CMS it ALL

Users are wanting the freedom to add widgets into posts and pages as inline content; they want to easily add widgets to footer areas for things such as recent post lists, location maps and recent tweets. All these things are available as widgets but for users are heavily theme-reliant when it comes to how many widget areas are available to them and where those areas are on their site. In my talk (it could hardly be called a presentation) I suggested several plugins that can help users on their way to achieving these things;

During the talk several other plugins were discussed;

  • Dynamic Widgets – Control which widgets to display in the sidebars for pages
  • Widget Logic – Control which widgets to display in the sidebars for pages
  • Multi Edit – Not really widgety but adds extra content blocks to posts and pages admin screens
  • Page Layout – Page Layout allows to define a page layout using widgets
  • Carrington Build – A premium build tool which gives an advanced admin “layout” UI which enables users to add “content modules” to pages which could be widgets.
Screenshot of the Carrington Build in action

 

What Next?

Although all these plugins seem to add some great support to users when it comes to having control of their sites’ layouts and in particular the use of widgets they all seem to be a bit lacking. As a group we discussed what the solution would look like if we were designing from the ground up… especially now that we knew there was a demand to have this extra level of control and advanced use cases… something that the WordPress guys wouldn’t have known about when initially thinking about widgets. We came up with the following points which would hopefully spur on some further thought and potentially create a great solution;

  • Users want to add widgets to posts and pages on the fly.
  • Do widgets need to belong to sidebars? My personal thinking here is that CPT could be used to replace sidebars altogether.
  • Perhaps Widget attributes could be stored in post meta data if that Widget instance belonged to a particular post.
  • Having a drag and drop, minimal interface via the editor would be good… we would want to avoid the use of shortcodes. Perhaps in a similar way to the method used for images?
  • Users want to easily add widget areas to existing themes
  • Users want to be able to control the layout of widgets within their posts and pages.

And so there we have it… we have essentially a loose spec for a killer plugin or modification to core.

And what of wp-hooked?

For my part I really enjoyed the opportunity to vent some frustrations I’d been having personally as well as seeing over and over again in the WordPress.org support forums. It was great to have some expert feedback from like-minded WordPress folk. Once again, of course, thanks go to Emily and Ross for organising and chairing and of course the Dachis Group for hosting us. I’m already looking forward to the Sept ’12 event… what can I say, beer, WordPress and friendly geeks are excellent bed-fellows.

Lanyrd Splat WordPress Widget Plugin

Lanyrd info as a WordPress widget

Last night I noticed that the Lanyrd event info that was meant to be listed in my blog sidebar was no longer working. I was, at the time, using the My Lanyrd Widget which was up to a time working well… but then I noticed it had just stopped working.

I had a quick browse on the Lanyrd site and noticed that had some official JS and code which could be used to display a badge on your site showing pretty much the same info as the above mentioned widget had been doing.

And so, after an hour or so of coding the Lanyrd Splat Widget plugin for WordPress was born. I immediately requested a repo on the WordPress.org site and as soon as this was approved my checked in the code and the Lanyrd Splat Widget was launched!

Lanyrd info as a WordPress widget
The Lanyrd Widget in action

The plugin has settings for the maximum number of events to show as well as the format and of course the Lanyrd username of the info to use.

Lanyrd Widget Settings
The Lanyrd Widget Settings

The plugin pulls the info from Lanyrd  every time the page is loaded, which is obviously not ideal. I had toyed with the idea of using the ics feed which Lanyrd provides and then using transient storage inside WordPress to temporarily cache the data. I decided to not use this for the time as the route I’ve taken pulls only the data needed and also supports richer data. My view on this may change in time… we will just have to see how this performs.

The Lanyrd Splat Widget can be downloaded from the official WordPress.org plugin repository.

WordPress 1 Minute Wonder – Quick Performance Boosts

WordPress One Minute Wonder

This latest WordPress 1 Minute Wonder installation covers a couple of quick alternative steps that can be taken to dramatically increase your site performance… and yes I’ll be honest and say that actually to cover all 3 steps here it takes more like 10 minutes.

In the below investigation I based “performance” on Google’s PageSpeed rating and Yahoo’s YSlow and this was run against a newly launched online craft store site called Designs and Such.

Step 1 – Optimise Images

Using the PageSpeed tool (in Chrome) it was possible to  see that I had several un-optimised images on my site. I processed these with the free optipng tool and instantly saw an increase in 6 PageSpeed points and  2 YSlow points. Not bad for something which anyone can do.

Step 2 – W3-Total-Cache Plugin

Now there is some stigma around having lots of plugins on your WordPress site and the detrimental affect it can have on performance… now whether you back this line of thought or not* sometimes plugins can really benefit your site in this context. Now please be sure to backup your DB (or entire site) before using any plugins which might modify you’re .htaccess and potentially other files in your installation.

For my investigation I installed the W3-Total-Cache plugin and configured it just to cache and minify my HTML, JS and CSS. The results were staggering… I saw an overall increase of 11 Google PageSpeeed points and 12 YSlow points

Step 3 – .htaccess Tweaks

Another step, this time plugin-free, should immediately give some good results. Simply by adding the following lines to one of my site’s .htaccess file I saw a further 4 point increase in my PageSpeed score and a 1 point increase in Yahoo’s YSLow rating.

The following lines do 2 things, add expire headers to static files such as CSS, javascript and images and also removing ETags. Of course please backup your .htaccess before doing any of this.

#Expire Header
ExpiresActive On
ExpiresDefault A0
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/ico A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000

FileETag none

This is defining a 1 month expiry for all content covered by the files types listed above. Note if you do this there’ll be implications if you want to modify any of the files, like CSS, and have the changes to affect immediately.

This technique (and more info on it) was found over at Tips & Tricks HQ

The overall results

So in total by carrying out the above steps I saw the following performance increase. Of course the results will vary site by site but I believe that with Search Engines using site performance as a factor when ranking your site that 10 minutes spent here will be of value.

Google PageSpeed Increase = 21

Yahoo YSlow Increase = 15

[jbox color=”blue” vgradient=”#fdfeff|#bae3ff” title=”Found this useful?”]If you’ve used this technique on your site for performance reasons and have some results then please leave them in the comments.[/jbox]

* When speaking to @westi at WordCamp UK (or WordCamp Manchester) in 2010 he said that putting code in plugins rather than the core should result in no performance hit… of course it depends on the quality of code

My WordCamp UK 2011 Review

So last weekend (16-17 July 2011) I upped and offed to my 2nd WordCamp. The previous one was in Manchester (UK) in 2010 and I had an absolute blast… so much so that there was no way I was going to miss out on some of the key things that a WordCamp has to offer;

  • Meeting new folk who love WordPress (and beer)
  • Re-acquainting myself with the lovely peeps I met last year
  • The opportunity to learn some things about WordPress
  • A stonkingly well designed T-Shirt!
Chatting at WordCamp UK 2011
Happy Campers

This years WordPress followed a familiar “3 track” structure which was semi-logically split in terms of the talks and discussions that were held in each. Being a developer of WordPress themes and plugins I had planned to mostly stay on the “developer” track but started my Saturday off listening to a panel chat about “WordPress in the Enterprise”. This was an interesting opportunity to hear about issues that I had never been exposed to before and was glad to have listened… even if it turned into a “how can WordPress play nicely with a Microsoft core IT setup” stalemate.

Next up I listened to Rachel McCollin chat about “WordPress and Mobile”. She covered the numerous ways in which devs and users can get a more optimal experience on mobile devices. I was particularly thrilled to have my Responsive TwentyTen plugin mentioned. This session also gave rise to some very helpful discussions from the audience on their experience and approaches to dealing with mobiles. In my personal opinion I think that actually all approaches are currently flawed… it seems that users and the device market are all running off at lightning speed and it’s leaving web designers and developers a little flat footed in truly understanding the ins and outs of it all.

StinkyInk WordCamp UK Swag
StinkyInk WordCamp UK Swag

I then jumped back to the “general” track to hear Nick Garner talk about advanced SEO. This was a real eye-opener it terms of me realising that my knowledge is very shallow compared to someone of Nick’s calibre. His talk covered some extraordinarily useful WordPress plugins which I will certainly be looking into.

Another session I took in on the first day was Noel Tock’s thoughts on “running your own theme marketplace”. He was a very engaging speaker and presented some very thought provoking lessons from his time at ThemeForce. Oh, for info on the slides etc from WordCampUK 2011 head on over to the wiki.

It was during this session that I actually missed my second fifteen seconds of fame from WordCamp 2011 as over in the main room Kimb Jones‘ popular “WOW plugins” session included my Widgets on Pages plugin. I was honoured to have this mentioned along with plugins some as Gravity Forms and the like… though I ‘spose I should own up and say that I’d been pestering Kimb all year to get it included!

The Saturday social was another great chance to chat to folk I hadn’t yet caught up with and I was lucky enough to be sat at the same table as Scott Cariss who turns about to be keen on security and told me of File Monitor Plus which is one of his plugins… I suggest that one and all install this right now!

The social also gave me the chance to retain my title of “last man standing” which I earned the previous year… though to be honest the competition was light and with the help of the lovely WP Sites folk I had the title (or at least a 1/3 of it) in my pocket for another year.

The Sunday kicked off despite my tiredness inflicted by the night before at some place called Fuzzy Ducks and I dived straight into a session on setting up and running local WordPress meetups. I soon discovered that one was already running in London and I hope to be going along to their meetings in the future. If you’re looking for local WordPress meetups in the UK then head on over to the WordCampUK wiki.

The day then took a more technical spin with Rob O’Rourke showing off how you can pretty much bring all content needed in a site into the welcoming arms of WordPress’ CMS capabilities. It was in this talk that I learnt of Custom Nav Walkers… something incredibly powerful that I think would benefit most theme developers doing bespoke work.

Dave Coveney was up next in the main room talking about some of WordPress designers and developers biggest mistakes… along with some sensible talk and humour this got us all thinking about how we could be doing things better.

The last core session was that where the “site doctors” give a lending hand to the (very brave) few who have queries on topics spanning everything to do with WordPress and websites in general. This is one of the most valuable sessions I believe as the floor is pretty much opened up to everyone to give their tupence on how to improve SEO, better help clients, increase security and pretty much anything else you could imagine.

And there you have it… my views (or at least the cutdown version) of WordCamp UK 2011. Big thanks should go to the WordCamp UK core team, the speakers and sponsors and all who helped put such an engaging and enjoyable weekend together.