Field Notes From Strange Loop 2018
It is no secret that Spantree has long been a fan of Strange Loop. For the past seven years, we’ve paused the company and descended on St Louis with a full force of Spantreers to take part in this progressive and compelling conference.
This year Strange Loop celebrated its tenth anniversary and hosted an impressive 82 formal sessions over the course of the two-day main event. In addition to the formal sessions, Preconferences and Unsessions returned this year as well.
Spantree Selects
Whether or not you attended Strange Loop this year, chances are that you have yet to take advantage of the 80 session recordings that were posted last week. If you are curious as to which talks resonated with our team, we have curated our annual list for you here. This list contains our top five favorite sessions from the conference, and a little information about what made these particular talks special to us.
1. The Hard Parts of Open Source
Speaker: Evan Czaplicki
The creator of Elm, Evan has experienced first-hand the challenge of creating and maintaining an open source community. In Evan’s own words, this particular session was inspired by his desire to “get yelled at less”, as he was continually observing feedback from the Elm community that was decontextualized, antagonistic, or unproductive.
In this talk Evan does a fantastic job of exploring the patterns that have contributed to unhealthy discourse in online communities, as well as exploring structures that could potentially transform this discourse into productive language.
Whether you are the casual StackOverflow participant or key contributor to an existing language or open source library, you will want to watch this session. It is our hope that you will feel a similar sense of understanding and inspiration that many of our members felt when attending this session.
2. Contracts for Getting More Programs Less Wrong
Speaker: Rob Simmons
In this session, Rob’s humor and snappy delivery take a potentially dry topic like contract writing, and turn it into a wonderfully dynamic and interesting presentation.
In his own words:
“If you’ve programmed with dependent types, contracts feel like unit testing. If you’ve written a lot of unit tests, contracts will feel like an amazing new type system. If the previous two sentences are terrifying, then that’s terrific too: contracts are a great way of learning how to write imperative and object-oriented programs correctly.”
Using both conceptual and coded examples in the Java Modeling Language, Rob illustrates how learning to write contracts directly correlates to writing correct algorithms and better tests.
Rob is also particularly good at providing a wealth of additional resources and links throughout his presentation. If you find yourself getting a little lost in the code, as some of us did, these additional resources will give you a lot more beginner-friendly material and context.
3. A Tale of Two Asyncs
Speaker: Ashley Williams
Ashley is an engaging speaker that will draw you in with her relatable style and unique perspective. A philosophy major, Ashley invites the audience to join her in looking at programming languages through a philosopher’s lens. In this talk she examines the importance of a programming language’s adherence to its mission statement, and how the manner in which the language’s writers engage with the community can influence their success.
A member of the Rust Core Team, Ashley also gives an insider’s look at Rust’s development process, goals, and mindful consideration of its mission. She paints a brights future for the language, and one with continued growth and popularity.
If you haven’t experimented a lot with Rust, watching this particular session may inspire you to do so. Ashley explains that even thought Rust is a systems programming language, the Rust team wants to engage the web services community, and take services to an arena that it has never been in before:
“Rust makes improbable programs possible. Right? And the idea is that it is empowering. So why should we take this type of power away from people who are looking to write web services? I think there is a whole bunch of services that have yet to be written, and it is because there has not yet been a language to be able to express them. Again [there is] this whole idea of empowering a wide variety of people who might not consider themselves ‘systems programmers’. I want web developers to be systems programmers, and so does Rust”.
4. The Bots that Help Run Wikipedia
Speaker: Niharika Kohli
We all know Wikipedia, and chances are that if you are in Software that you are also quite familiar with bots (both as a concept and in your organization’s Slack channels). You may be surprised to learn that bots are pivotal to Wikipedia’s upkeep, and perform an average of 17 million edits a month. Crazy, right?
In this talk, Niharika shares some fascinating details about Wikipedia’s army of bots, and what tasks Wikipedia has targeted to automate. From checking dead links to suggesting articles for new editors and combating vandalism, these bots are everywhere.
The segment of this talk where Niharika focuses on vandalism is particularly compelling. She explains how a relatively simple bot (the AntiVandalBot) was instrumental in preventing a variety of attacks and how its sophisticated successor, the ClueBot leverages a neural network to fight internet trolls.
There is some great humor in this presentation, especially when taking a look at one of the less successful bots on Wikipedia: Lsjbot. Niharika explains that this bot has created/translated over 5 million articles into Cebuana, a non-primary language spoken in the Philippines, and produced some interesting problems in its wake.
If you would like to learn more about these bots, check out Niharika’s session. It is great insight into Wikipedia, an entity that most of use use regularly, if not daily.
5. Understanding Typescript’s Structural Type System
Speaker: Drew Colthorp
Despite Typescript’s burgeoning popularity, there are many people (in the Javascript community and at Spantree alike) who have questioned the advantages of adopting it in their projects. Many of us feel, like Colthorp did initially, that Typescript was:
“something like a Java-ey type system layered atop Javascript, bringing a dose of brittleness and losing the flexibility [we] appreciated about the warty-yet-ubiquitous multi-paradigm language.”
If you are one of these people, or even if you are a supporter of Typescript who wants to leverage some of the power of this language more efficiently, this talk is for you.
In this session Drew Colthorp does an excellent overview of the Typescript type system, and gracefully covers everything from the basics of structural typing and assignment syntax to more advanced concepts like unions, discriminated unions, and generics. His minimal, intuitive slides make it easy to follow him from one concept to the next.
By the end of this lecture it is our hope that you will appreciate one of the more powerful advantages of Typescript: bug visibility. A skillful implementation of TypeScript can result in countless application bugs registering as type errors. How cool is that?
Other Notables
In addition to our top 5 picks, we have also included a few of the other talks that we enjoyed. A few of these sessions are a bit more niche, but are definitely worth a watch if you are interested in their subject matter.
Naming Things in Elm| Ally McKnight | Video
Puzzles, Problems, and Games | Chris Marten | Video
From the Inside Out: Building a City Vacancy Portal | Jonathan Leek + Laura Ginn | Video
Building Financial Systems on Eventually Consistent DBS | Rahul Pilani | Video
Freeing the Software that Runs Elections | Roan Kattouw | Video