DDD South West returned for its 10th event a few weeks ago. With it came a few new organisers, plus a brand new venue which was great. I took the opportunity to have a long weekend in Bristol, a city that I always enjoy visiting.
The Source Code Generation Game
Exploring Minimal .Net
Data Scientisis: Making Shit Up Since 1974
Why Premature Optimisation Is The Root Of All Evil
by Craig Jones
Let’s Stop Blaming Our Users For Getting Hacked When It Is Our Problem To Solve
After a hiatus of over two years due to the pandemic, NDC London returned this week to an in-person conference. After attending many virtual user groups, conferences, and training courses, it was great to meet up again with friends I’ve got to know through attending conferences over the years (and also a few former work colleagues as an unexpected bonus). The conference itself didn’t feel any different from the previous NDC London events I’ve attended, with a great venue, lots of interesting talks, and some excellent hospitality laid on by the organisers.
Here are the sketchnotes that I made for the talks that I attended.
The Last Twenty Years Of Software Development
by Richard Campbell Twitter
Richard went over the history of the past twenty years of software development, demonstrating how both technology and the big companies have changed in that time period. What was notable was the acceleratation in the pace of change in technology over the latter half of the timeframe.
The Curious Incident In Your Software In The Daytime
Liam discussed how to deal with incidents that happen with your software. He covered the kind of things that you should consider having in place to deal win an incident, and showed some example incidents and how they were dealt with. One thing that stood out from the examples was that having extensive detailed logging helps to inform about what has happened, and what data is affected. He also discussed points of failure that many people wouldn’t even consider, such as Slack being down or maxing out a credit card that is needed to pay for more resources.
The Untruthful Art - Five Ways Of Misrepresenting Data
Alexander used many humourous examples to demonstrate how data can be displayed, or even manipulated, to give an incorrect representation. He also stressed the importance of considering any agenda that the author may have when creating the visualisations.
Wearable Live Captions
Jo demonstrated her live captioning face mask - a wearable face mask that she built to enable her deaf mother to read what she was saying while looking at her. Traditional captioning technology relies on reading what the speaker is saying from the phone screen, making it diffuclt to look at someone when they are speaking. This is different in that the phone uses Azure Cognitive Services to convert the speech to text, and then sends the text to and LED panel in the face mask via bluetooth.
The Visible Developer
This talk was all about having a “developer brand”. Life isn’t fair, and it isn’t sufficient to work hard and be a good developer. If you do only that, you will not get recognition for your achievements. Heather encouraged people to make sure that other people know what you have done, and talked about several ways of doing this.
Roslyn Source Generators
Stefan went through several uses for Roslyn source generators, and how to use them.
How The Fastest Growing Companies Develop Their Public API
by Josh Twist Twitter
This talk was about making a public API on the web. Josh covered several of the key things that need to be considered when making a public API, and presented some possible solutions. One common solution for all of the considerations was an API gateway. He then demoed the Zuplo API gateway, something that Josh created after working at companies like Microsoft, Facebook, and Stripe.
Design For Developers
Lex covered several of the core design principles and theories for presenting content, with lots of resources to draw from for example content.
Tracking Database Changes With Apache Kafka
This talk covered how Apache Kafka can be used to track changes to a relational database. Francesco used a worked exampled to decouple a production transactional database from other potential uses such as data analysis and reporting, using Kafka log streaming to synchronise the data into a separate data store. He then introduced Debezium to track changes to a database without the need for polling.
Failure Is Always An Option
Dylan using the famous “failure is not an option” quote from Apollo 13 as inspiratino to highlight how we should always consider failure as an option in software systems, with examples from history of how failure modes were anticipated and came to be needed later.
Nevermind The Containers
This talk was centred around the Remote Containers Visual Studio Code extension from Microsoft. This extension allows the configuration of a development environment using a
devcontainer.json file, which when run with the extension spins up a Docker container with VS Code running inside it, with the UI running on the host machine. Rob did a very slick demo of how to set it up and use it using his Ruby-based blog as an example.
Mark talked through his latest thinking on developing easy to maintain code, which he has captured in his latest book. Using theroies about the human memory and its limitations, he introduced the concept of a “hex flower” to represent the 7 elements that fit in your head when reading code. By breaking code down into small enough parts to fit into these shapes, it allows a software system to be seen as being composed of hierarchies of these systems that fit together to abstract behaviour.
Software Lessons From Aviation Disasters
Adele talked through two examples of flights that went wrong, and linked them to their underlying causes. She compared these to the world of software as things to look out for.
Team Topologies, Software Architecture And Complexity Science
James talked about how most software companies get slower as they grow due to an ever-increasing number of processes and levels of hierarchy, and compared them to Amazon who are quoted as saying “the bigger we get, the easier it becomes to get bigger”. He then went through some of the reasons as to why Amazon can achieve this, with analogies drawn from city planning and biology.
Marvels Of Teenage Engineering
Anders took a nostalgic look back through development over the past forty years to highlight how the early developers honed their skills, and how seeming impossible things were achieved through perserverance and experimentation. He then lamented about how that is no longer the case as modern developers typically start coding much later in life, and don’t hone the curiosity that they would have if they were to start younger.
I’m Gonna Make You Stop Hating CSS
Lemon showed some things that CSS does poorly, such as the CSS is awesome meme, how people tend to fix them, and how to fix them in very simple ways, some of which required only a single line of CSS.
How To Close The Diversity Gap
Heather talked about the diversity gap in the majority of tech companies, and some of the things that can be done to reduce it. She used many examples from the WeCrashed and Super Pumped Tv series to demonstrate the issues.
ASP.NET Core Beyond The Basics
Chris did a talk consisting of 100% code (hence the lack of a sketchnote), showing how to do some of the more advanced things with ASP.NET Core. These included:
- Writing custom middleware
- Using distributed caching
- Using custom output formatters
- Custom model binding
- Background tasks
- Configuring an app from an external assembly using IStartupFilter and IHostingStartup
Occasionally I need to find the password for a wifi connection that I have previously connected to. Navigating the maze of dialogs to find it is never easy, especially when the path to those dialogs changes frequently in Windows 10.
One way to do it is to find the network via the Windows Control Panel (Control Panel -> Network and Internet -> Network and Sharing Centre). Once found, clicking on the connection properties will open the Wi-Fi Status panel:
Clicking on the Wireless Properties button and then selecting the Security tab will show the wifi password:
This method works, but involves a lot of clicking through screens. Also, it requires starting at the legacy Control Panel, which is gradually being replaced with the new Settings app. Instead, all of this information and more can be accessed via the command line using the
To get the password for a wifi network, run the command:
You can also use this command to see the list of every saved network that your device has connected to:
I’ve just got back from DDD North 9, held for second time in Hull. As is always the case with DDD events, there was a great community feel at the conference. Here are the sketchnotes I made in the talks I attended.
.Net Core 3 With A Raspberry Pi
Blazor - The Future Of Frontend Is Here
.Net Configuration Is Easy…Right?
50 Ways To Show Your Data
Kubernetes On Raspberry Pi
A few weeks ago I attended NDC London. As I’ve done in the past, I attended as part of the NDC crew. I didn’t manage to sketchnote every talk I attended, mainly because I was in the larger rooms as part of the crew schedule and was working the camera a lot of the time. Here are the sketchnotes that I did make: