.NET South East – May Event New speakers night.

It’s been a while since I last got around to blogging about a .NET South East meetup event. I wanted to make sure I did this month as the plan for this week’s event was close to my heart. I had the idea back in December / January to try and organise a night for new speakers. The motivation behind that was my own experience. I’ve blogged in detail about that but in case you don’t have a few hours spare to both parts, the TL;DR is as follows…

Through my life, I’ve always hated public speaking. The idea of giving a talk or even an introduction to a room of people filled me with a fair degree of dread. Last year I faced my fear by taking part in an ALT.NET show and tell evening. I had 20 minutes to share my experience of working on the Humanitarian Toolbox project. While terrifying beforehand, the actual experience was actually quite enjoyable. Afterwards, the rush and positive feedback was a great feeling. After that first talk, I ended up speaking at two other user group events and two conferences in 2018. While I still get nervous, I’ve found that I actually really enjoy presenting and this year I am extending the number of events I submit and speak at.

Back to the meetup; I wanted if possible to offer other members of the community a safe place for them to try out public speaking. I set aside a date and started promoting the idea to our members. My biggest concern was that no one would be interested and the idea would fail at stage one. However, after a couple of months of asking for speakers, people started to come forward. I know from experience that taking that initial step and committing is no small thing for novice speakers.

With the speakers lined up, I was feeling better about the idea. The next concern was attendee numbers. I was conscious that in order to attend the meetup it requires people to give up a free evening. As a result, people are selective on which meetups they choose to attend. Frankly, I wasn’t sure if the idea of an evening of new speakers with shorter talks would draw in attendees. That concern slipped away as I saw that our RSVP numbers on meetup.com were looking healthy. I was very pleased that members of the community were coming together to support our peers and to join us for the evening.

The Event

The evening began as normal with me introducing the meetup and then going onto present some news items. I wasn’t short of content for this event, holding it the week after MS Build! One slight hitch was that the slides I’d carefully crafted at home hadn’t synced on my OneDrive and as a result, with an hour to go I found myself rapidly recreating the content!

I won’t go into too much detail here besides sharing some links but the items we covered were…

.NET Core 3.0 roadmap announcement – The main goal of this release is to support WPF and WinForms workloads.
ASP.NET Core 2.1 RC1 released – With RTM due by end of May.
Visual Studio Live Share – Announcement of the public preview release.
Intellicode – AI assisted IntelliSense based on machine learning across 2,000 open source projects. Now available in experimental preview.
ML.NET – An open-source, cross-platform, machine learning library.
Visual Studio 15.7 released

With the news complete, we entered the main part of the evening. I’d allocated each speaker twenty minutes of presentation time, plus five minutes for questions.

First up was Dave Mateer who presented a demo-heavy talk. Presenting demos is always daunting but Dave’s went off without a hitch. Dave crammed a lot into his 20 minutes, demonstrating how he’d taken a legacy and poorly configured WordPress site and migrated it to running in the cloud on Azure AKS. Azure AKS is Microsoft’s managed Kubernetes service and by all accounts looks like a great way to get started with containers in production. Dave highlighted the salient things he’d learned along the way. Showing how data volumes can be used to persist data outside of the container for example. Dave also highlighted the power of scripting which means he can quickly spin up and when required delete his Kubernetes environments. Within his twenty minutes, Dave had taken us on a journey from running a container locally, through to a scripted deployment to production, with the site running live on Azure. It was a great talk and really interesting to learn from Dave’s experience.

Dave Mateer presents at .NET South East

Next up was Steve Collins who talked about a SOLID approach to ASP.NET Core. His focus was on configuration and what he’s learned as he began working with ASP.NET Core. Steve first explained a history of configuration in ASP.NET through the previous version. He brought us up to date by showing how ASP.NET Core out of the box provides DI friendly configuration and the options pattern for accessing your configuration values. One of the gotchas that Steve highlighted was the need to use the IOptions and IOptionsSnapshot interfaces to access strongly typed configuration in your dependent classes. This isn’t necessarily easily discoverable for newcomers to ASP.NET Core. Steve then showed how he’d built out a more intuitive pattern over the top that allows for accessing configuration via a bridge class. It was a great talk and Steve touched on some patterns I’m finding myself using on my latest projects. Steve has documented the content that formed this talk in his great four-part blog series which I recommend you go and check out.

Steve Collins presents at .NET South East

We then had a short break before our final talk of the evening. Alex McAuliffe took to the stage to talk about “Falling down holes for beginners”. In this talk, he shared his experience of working on and maintaining an open source project. Alex covered some of the positives of open source before also discussing some things to watch out for. One of the really salient points regarding running your own project was around scoping and focus. As Alex described it’s very easy to get excited about lots of areas of the code and also trying to make things “perfect” which can easily lose the focus on actually completing things. Alex also talked about an unexpected outcome of working on the project; burnout. It’s not always something you would consider when working on a personal project but is certainly something to watch out for. Alex also shared some thoughts on tools for source control and to help maintain code quality. Finally, he concluded with some resources to blogs and people to follow on Twitter. Alex’s slides are available online.

Alex McAuliffe presents at .NET South East

It was extremely impressed by all three talks. Dave, Steve and Alex had clearly put a lot of effort into preparing their slides, demos and content. Despite having a quite short time limit, each one packed a lot of great content into their allotted time. Having spoken to some of the attendees after the event I got the sense that everyone had enjoyed listening to the talks and the format of the evening in general. I want to repeat my thanks once again to the speakers for volunteering and taking part. I know that standing up in front of a crowd can be intimidating and I hope that all three enjoyed the experience overall.

.NET South East October 2017 Meetup With guest Rabeb Othmani

Last night we held our third .NET South East meetup at Madgex HQ with special guest Rabeb Othmani. Here’s a brief summary of the evening…

Preparation

Planning for this meeting felt a lot easier than past events as I have built a few lists of things to do and have a bit of experience with setting everything up. As usual I did a bit of marketing for the event via Twitter, hoping to spread the word.

On the evening I finished work around 4:30pm to begin setting up the room and preparing things like the snacks and drinks. We have a pretty well-oiled process now and with the help of Ricky our IT guru we had the room prepared in about 30 minutes. The plan for the evening was to stick to the process we’d developed at our prior meetup.

We had our attendees sign in down in the foyer with two volunteers, Chris and Jenny very kindly helping to do that this month. Again we placed our food and drinks networking area in our main reception space so that there was more space for people to chat and socialise. Toby and Sally; two more Madgexians kindly helped meet and greet people from the lifts. This month I was please as everything was ready well in advance and I was actually able to spend a bit of time greeting and speaking to people as they arrived. This was something I’d been unable to do at the prior events where I was running around getting the final things sorted.

In the end we had 20 attendees for the evening so a bit of a drop off from our first two. I had kind of expected this since the novelty has worn off for some. We did have some new faces though so it was nice to see more members finding their way to us.

Intro and news

At 7pm I opened the evening with my introduction, including thanking our fantastic sponsors and then went on to discuss some of the news items I had gathered for this month…

Quantum Computing

The first item I discussed was taken from the Ignite 2017 announcement that Microsoft are expecting to release a Quantum computing programming language by the end of this year. Microsoft are heavily invested in research around building a working quantum computing device and would like to start skilling up developers to work in the quantum world. The new language is yet unnamed (my guest is Q#!) and will include full Visual Studio integration, including a debugging experience. A local simulator will be available to simulate a 30 Qubit device or an Azure based 40 Qubit similar can be used. It’ll be interesting to watch how this develops as quantum computing could truly change the way we think about programming.

Microsoft Quantum Computing

Arstechnica Article on MS Quantum Computing

.NET 4.7.1 built in support for .NET Standard 2.0

A smaller news item but worth a quick mention, this story refers to the Microsoft announcement that 4.7.1 of the .NET Framework now includes all necessary files to consume .NET Standard 2.0 libraries. While 4.6.1 introduced compliance with the .NET Standard 2.0, it required some additional files to be deployed and in some cases binding redirects to be used.

.NET 4.7.1 built in support for .NET Standard 2.0 Announcement

UWP Supports .NET Standard 2.0

A related story was another Microsoft announcement that a major update for UWP means that it now supports .NET Standard 2.0. This introduces an additional ~20k APIs to the platform which developers can now take advantage of. It should also make sharing code between UWP and other platforms much easier. To use this update you need Visual Studio 15.4 and need to be targeting the Windows 10 Fall Creators Update.

UWP Supports .NET Standard 2.0 Announcement

Rabeb Othmani – Welcome to the age of conversational interfaces

Rabeb Othami speaking about conversational interfaces

Rabeb gave us a great talk that really set my mind off thinking about building bots! She talked about the coming of age of conversational interfaces via devices like Google Echo, Amazon Alexa and our smart phones.

She described the history of the changing development landscape as users move to consuming on smaller devices and via different interfaces. We moved from mouse on desktop devices, to touch on tablets and smart phones and we’re now entering the age of voice communication where we may never physically interact with the device at all.

Recent advances in technologies such as AI and machine learning are enabling us to develop more intelligent applications while improvements in voice recognition, language interpretation and text to speech have also driven the industry forward and moved us towards more and more voice based interfaces.

Digital assistants such as Google, Siri and Cortana understand more about the context in which we are operating and can tailor responses and information to our needs.

Voice as an interface is becoming popular in part due to its convenience and speed. With text we need to locate our device, unlock it, access an app, type data and wait for a response. With voice, we can very quickly interact without any need to physically hold the device. We can interact on the move or in situations such as in the car when our hands are not free to use a device. Voice can be very simple when done right as there are no UI issues in the traditional sense. However the application/device must be able to understand and interpret the intent of the user.

Rabeb listed some key point to consider when building voice based interfaces:

  • Make it smart
  • Use language users can understand
  • The capabilities of your tech
  • The structure of the info – For example dates; e.g. should you infer a year if the user doesn’t say one?

When building for devices like Alexa you build skills which are a unit of conversational intelligence. You must register the skill to be able to use it from your device. Skills invoke a bot in the cloud which does the processing for your application. Rabeb demoed the Microsoft bot SDK in Visual Studio and a simple bot which would call her phone using the Nexmo APIs.

Rabeb Othamni at .NET South East

It was a great introduction to the world of bots and voice interfaces. I have been inspired to add it to my list of things to try and I hope a few others will do the same. This is exactly why I believe user groups are so great. In a short evening you can quickly learn about a new technology with enough to get you excited and start you on a path of discovery. A big thank you to Rabeb for travelling down from Bristol to spend the evening with us.

As always, a big thanks too to the amazing volunteers from Madgex who helped me setup and run the evening and to all of the attendees for making time to join us. A final thanks goes to our sponsors for the evening who offered some great prizes and support of our user group.

Prize Draws

With the end of the evening closing in we drew the winners of the prizes from our fantastic sponsors for the event. The prizes we had to offer were:

JetBrains
One year individual subscription to any single JetBrains Toolbox product

Progress
DevCraft Complete License code

Manning
Free eBook

elmah.io
6 month Small Business license

PostSharp
License to PostSharp

Again we use the WPF app created by Dan Clarke, who organises the .NET Oxford meetup. The rules as with the last event were:

a) names are added from the RSVP list (as at about 1 hour before the event)
b) if the name drawn is not in attendance, we redraw.

Next events

We have some great speakers lined up for the next couple of months, and I’m working with a few people of plans for next year too.

.NET South East November 2017 – Michael Newton
Making Distributed Systems in .NET Easier

.NET South East November 2017 – David Arno
Roslyn Analysers

2018 events to be announced soon!

Call for speakers

I’d love to get a range of varied content and speakers to present at our user group. We have a nice pipeline for the coming months but those months will fly by very quickly. If you’d be interested in speaking at a future event we’d love to have you. Please get in touch via the contact form on this blog or ping me on Twitter and we can discuss availability and topics.

I’m really keen to draw as many speakers from our local community too so please let me know if you might be interested in speaking. Perhaps you have presented a talk internally and could open it up to a wider audience. I highly recommend speaking as a way to develop professionally. I’m happy to offer advice for new speakers and help where I can.

If you don’t like the idea of public speaking, you are not alone. Please check out my own story in my recent two part blog series – Part 1 of How to not hate public speaking.

Links

https://www.nexmo.com
https://rabebdiaries.wordpress.com/
https://dev.botframework.com
https://developer.microsoft.com/en-us/cortana