I was also at Deconstruct! It was a fantastic conference with speakers from a really diverse range of perspectives and experiences. A few that stood out to me:
Sandi Metz gave what I thought was a really solid analysis of what a lot of teams get wrong in OOP. It definitely had some immediately actionable takeaways for me and the code base that I work on in my day job. I really like the idea that conditionals -> complexity and that you should try as best as possible to remove them from the procedural-style code that orchestrates objects and move it into deciding which types of objects to create in the first place. It mostly consisted of her most recent two blog posts: Breaking up the Behemoth and What does OO Afford?
Nabil Hassein’s talk was really powerful. I don’t really know what to write about it here but it was a pretty sobering look at how we in the business of creating technology affect the world around us, and how we in the “Global North” consume resources far in excess of those in the “Global South”. The talk seemed to really resonate with the crowd and he received a standing ovation afterwards. When the video comes out I’ll definitely be sharing it with people.
Allison Parrish’s talk seemed to be a big hit with a lot of people. As far as I can tell it expanded on some work she has previously talked about with applying algorithms to the case of poetic manipulation of English text. She’s previously talked about it in terms of apply JPEG-like compression to text to see what happens. She talked about her recent efforts to apply machine learning techniques to this end via semantic analysis, as well as some playful text transformations via searches/random walks in semantic space as well as pronunciation space. The resulting poetry was very impressive!
Tom 7’s talk was pure fun, technical weirdness. Halfway through, he gave us the punch line which was that his slides were being run through a video output of a NES. He stuck a Raspberry Pi inside of a NES cartridge, emulated a SNES, and played it back through the NES! There was some meta-analysis of his own humor and of the presentation itself (as it was happening!) in there too, which I thought was both funny and interesting.
Pablo Meier talked about distributed systems and what we might desire in a programming language that treats distribution of work as a first-class operation (spoiler alert: he ended up talking about golang). He expanded on how a lot of these ideas come from Erlang and the interesting, perhaps underappreciated/underutilized innovations also present in Erlang, relating back to its supervisor process model and how.
Elle Vargas’ talk surrounded the history and investigation of the 2016 election interference, focusing especially on DEFCON 25’s “Voting Village” and the frankly disturbing findings (voting machines compromised within minutes, and even some real voter data found on one of the test machines which were procured from previous state elections). She had a great call to action at the end in terms of how technically-proficient people can be civically engaged.
Anjana Vakil, who has a background in linguistics, talked about the relationships between human languages and programming languages, especially with respect to how a language can shape your thinking. Her thesis was that programming languages are fundamentally human languages intended for human consumption, and that we should examine how those languages inform our reasoning and how they can affect or be affected by our cultural contexts.
Sandi Metz has posted her slides for “Polly Want a Message”. It’s an interesting refactoring and I hope video of the talk is posted online. As I read, I was mentally doing a functional refactoring, mostly centered on a Line type with a line number and string. From there, most of the strategy objects she extracts instead become functions to be composed. Her final version of Listing on slide 297 reminded me strongly of a blog post I wrote a few years ago on composition.
I hope that the talk ends up in video form at some point, because I think there something missing from the slides.
I didn’t quite put together a functional refactoring in my head, but I was wondering about one the whole time. There was something that felt a little… uncanny about the preponderance of strategy objects in play.
I wasn’t sure how I felt about the “now we’re down to one execution path” slides. This is a refactoring, so the same number of decisions are being made, and the same combinations of execution paths exist in the code base, they just being selected for differently. The increased isolation is good for testability, which means that if the code is properly isolated you can get away with a linear increase in testing as opposed to a quadratic one. But I’m split as to if the numbers at the end are a fair assessment.
The code does seem somewhat improved, but it also hides complexity more now.
Thought provoking slide deck, and I’m very curious as to what didn’t make it to the slides.
I’m getting an HTTPS error
Welcome to tedu - do you trust him?
Is there any video recording for any talk on this conf?
Supposedly they’re coming. Gary Bernhardt said on the Deconstruct Slack that they’re being processed by a third party – time estimate was “several weeks”.
Thanks. I can see now they have a website, https://www.deconstructconf.com/, I hope they’ll post information about videos (or on their twitter, @deconstructconf).