You are using an outdated browser. Please upgrade your browser to improve your experience.

Jerod Santo changelog.com/posts

Strange Loop's greatest hits

an awesome list of attendees' most beloved talks

The LAST Strange Loop conference is right around the corner!

The conference has accumulated 673 videos on its YouTube channel, which means there’s gold in them hills, but finding the gold might consume some of your precious time. Good news!

I was hanging out in the conference’s Slack when someone asked:

What are some of y’all’s favorite past Strange Loop talks? As someone who knows the conf by reputation but hasn’t been before, I’m curious what some of your favorites are!

A barrage of YouTube links followed, so I scooped them up to share here so everyone can enjoy these golden Strange Loop talks ✨


🎥 Stop Writing Dead Programs by Jack Rusher (2022)

Most new programming languages are accidentally designed to be backwards compatible with punchcards. This talk argues that it would be better to focus on building new live programming environments that can help us solve the problems of the future.

Josh says: “This is the talk that convinced me ‘if this is a topic discussed at Strange Loop, then I really need to make it there’”

🎥 Simple Made Easy by Rich Hickey (2011)

Rich Hickey, the author of Clojure and designer of Datomic, is a software developer with over 30 years of experience in various domains. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening, in a variety of languages.

This keynote was given at Strange Loop 2011, and is perhaps the best known and most highly regarded of Rich’s many excellent talks, ushering in a new way to think about the problems of software design and the constant fight against complexity.

See also: Rich Hickey’s greatest hits

🎥 A Whole New World by Gary Bernhardt (2012)

This talk announces the most ambitious software project I’ve ever undertaken, then considers why its existence is so surprising (and in some cases frustrating) to people.

Conrad says: “I’m personally working on this: completely tearing down the legacy of punchcards in modern dev tooling.”

🎥 Languages for 3D Industrial Knitting by Lea Albaugh (2016)

Industrial computer-controlled knitting machines are churning out seamless three-dimensional fabric objects as you read this – think gloves, sweaters, sportswear, furnishings, architectural fabrics, and plushies. But right now the programming languages for these machines are terrible.

With a knitting machine, complex structures are formed with a very limited set of low-level machine operations. Thinking on the level of those machine operations becomes untenable pretty quickly when you start trying to make real objects. How can we ensure knittability? Can we encode constraints in an understandable way? Can we optimize production speed?

We’ll look at several ways to describe knit structures and generate machine instructions for their fabrication, including both the delightfully arcane language that ships with the machine and the language from our SIGGRAPH 2016 technical paper, “A Compiler for 3D Machine Knitting.”

🎥 African Polyphony & Polyrhythm by Chris Ford (2016)

Ethnomusicologists face a dilemma: either shoehorn African music into European notation, or create custom DSLs that can only be understood by a select band of European ethnomusicologists. Algomusicologists can solve this problem, because we have principled ways of modelling specific idioms in terms of general computation. What’s more, our models can be executed to generate actual music.

Simha Arom is a French-Israeli ethnomusicologist. In the book from which the title of this talk is borrowed, he describes the principles underlying the musical system of traditional central African polyphony and polyrhythm. Arom invented ingenious recording techniques for deconstructing and systematising musical cultures that had no previous tradition of musical theory. He tested his models by using them to recreate music and inviting central African musicians to critique the results.

This talk will argue that music-as-code is an ideal way to represent Arom’s insights. I will show the full truth in the Lévi-Strauss quote with which Arom prefaces his book: “The proof of the analysis is in the synthesis.” Programming has played its part in the homogenisation of global culture, but the universality of the lambda calculus also affords a golden opportunity for code to become a point of interchange between formerly incompatible musical systems.

Brian says: “My two favorite talks are probably African Polyphony & Polyrhythm by Chris Ford and How to Hack a Painting by Tyler Hobbs. But it’s hard to choose, there have been so many amazing ones over the years…”

🎥 How to Hack a Painting by Tyler Hobbs (2017)

In Hackers and Painters, Paul Graham famously linked coding and the visual arts. In this talk, I’ll explain how to do both at once.

Through the Processing framework, Clojure, and careful observation, it’s possible to simulate watercolor paints and other media. I will walk the audience through the observation of real watercolor paint, breaking down the mental model we can use to think about its shape, texture, and qualities. Next, we will translate that mental model into a Clojure program capable of generating watercolor effects. Special attention will be paid to probability distributions, as randomness is the key to pleasing effects.

With the basics established, we can dive into textures and the blending of multiple colors. Finally, I will demonstrate how to combine everything to create a finished generative work of art, capable of generating a stream of unique but aesthetically related images.

🎥 How to Fix AI: Solutions to ML Bias (And Why They Don’t Matter) by Joyce Xu (2019)

Bias in machine learning is a Problem. This is common knowledge for many of us now, and yet our algorithms continue to operate unfairly in the real world, perpetuating structural inequality along lines of class and color. After all, “better training data” is not so easy to get our hands on, right?

In this talk, I argue that it is time for us to begin building algorithms that are designed to be resilient to biased data. Building on a basic introduction to ML concepts, I present an in-depth, intuitive explanation of several deep learning techniques that combat underlying bias in data, and use these models to explore what “algorithmic fairness” really means in measurable terms. Finally, diving into a few case studies of real world systems, I suggest that even perfect “fairness” is not necessarily the fairy-tale ending we like to think it is. Blindly optimizing for it may still miss the real problem behind AI bias, and to come to a real solution we may just have to reframe the problem itself.

🎥 Stop Rate Limiting! Capacity Management Done Right by Jon Moore (2017)

In an era of cloud computing and microservices, it’s imperative to be able to isolate clients from one another in terms of the resources they can use–otherwise, one misconfigured or malicious client can make a service unusable for everyone else. Steve Yegge mentions quotas and throttling as key practices in his notorious “platform rant.”

If you’ve ever had one of your internal microservices launch an unintentional denial of service attack against another one, this talk is for you!

🎥 Misuser by David Schmudde (2018)

The act of discovering and displaying digital art created for 20th century computing and telecommunication environments places the character of these systems in stark relief. Most exhibitions require an archeological undertaking and an enormous effort to execute a single artifact from forty years ago.

The software I feature in this talk operated at the edge of digital systems. Artists often behaved like hackers: working off hours, pushing a system beyond its specification, and inventing new possibilities for human interaction along the way. They were some of the most eager practitioners of early computing but often found it difficult to obtain access. Their work often saw limited distribution and few updates.

These challenges exasperate the difficulty of building a retrospective of digital art. The software’s brittle nature reflects the environment within which it ran. The engineering decisions that lead to these systems were often informed as much by culture as science. “Misuer” will illustrate this connection and build a framework to examine the value of conventions and what we can learn by working outside of them.

Daniel says: “This one made me a little sad, in a good way”

🎥 Mapping Imaginary Cities by Mouse Reeve (2018)

While the map is not the territory (to quote the semantician Alfred Korzybski), the map is still usually intended to correspond to one. But what about maps of nowhere at all? What can they represent and how can they be made?

Maps are a familiar part of daily life, with a deeply familiar and complex symbolic language, and a long history. They are also hugely varied in style and aesthetic, and often are works of art unto themselves. All this makes mapping a powerful creative tool for conveying ideas about a space, how it is used, and who inhabits it. But it also presents a mapmaker with what can feel like an overwhelming array of design choices and technical hurdles to overcome in order to create a generative map.

This talk will explore maps as a way to communicate about people and place in the context of fictional cities, and dive into algorithms and techniques for procedurally generating maps by building up topography, landscape, populations, and street plans.

🎥 The Mess We’re In by Joe Armstrong (2014)

Joe Armstrong is one of the inventors of Erlang. When at the Ericsson computer science lab in 1986, he was part of the team who designed and implemented the first version of Erlang. He has written several Erlang books including Programming Erlang Software for a Concurrent World. Joe has a PhD in computer science from the Royal Institute of Technology in Stockholm, Sweden.

🎥 Vellvm - Verifying the LLVM by Steve Zdancewic (2018)

LLVM is an industrial-strength compiler that’s used for everything from day-to-day iOS development (in Swift) to pie-in-the-sky academic research projects. This makes the LLVM framework a sweet spot for bug-finding and verification technologies–any improvements to it are amplified across its many applications.

This talk asks the question: what does LLVM code mean, and, how can we ensure that LLVM-based tools (compilers, optimizers, code instrumentation passes, etc.) do what they’re supposed to – especially for safety or security critical applications? The Verified LLVM project (Vellvm) is our attempt to provide an answer.

🎥 Programming Should Eat Itself by Nada Amin (2014)

Nada Amin is a member of the Scala team at EPFL, where she studies type systems and hacks on programming languages. She has contributed to Clojure’s core.logic and Google’s Closure compiler. She’s loved helping others learn to program ever since tutoring SICP as an undergraduate lab assistant at MIT.

Michael says: “This talk still blows my mind a little (as do most talks by Nada Amin)”

🎥 The Early Days of id Software: Programming Principles by John Romero (2022)

As co-founders of id Software, John Romero and John Carmack created the code behind the company’s seminal titles. The principles they defined through experience in id’s earliest days built upon one another to produce a unique methodology and a constantly shippable codebase. In this talk, John Romero discusses id software’s early days, these programming principles and the events and games that led to their creation.

Larry says: “As someone who grew up playing those games, it was kind of mind blowing hearing how they were developed. I thought the emphasis on investing in tooling was really interesting… and he’s a great storyteller :)”

🎥 How to Think about Parallel Programming: Not! Guy L. Steele Jr (2010)

Guy L. Steele Jr. believes that it should not be the programmer’s job to think about parallelism, but languages should provide ways to transparently run tasks in parallel. This requires a new approach in building languages supporting algorithms built on independence and build-and-conquer principles rather than on linear decomposition of problems.

Steven says: “This keynote where Guy Steele dissects an old punch card program he wrote left my jaw on the floor… and still does any time I rewatch it”

🎥 Add ALL the things: abstract algebra meets analytics by Avi Bryant (2013)

A mathematician friend of mine tweeted that anyone who doesn’t understand abelian groups shouldn’t build analytics systems. I’d turn that around and say that anyone who builds analytics systems ends up understanding abelian groups, whether they know it or not. I’ll talk about how the laws of group theory provide a useful codification of the practical lessons of building efficient distributed and realtime aggregation systems, and give some examples of how that maps to useful code.


I’m sure there are many more great Strange Loop talks that didn’t shared by this particular group of attendees! Do you have a favorite that didn’t make the list? Comment below, and we hope to see you at Strange Loop 2023! 💚


Discussion

Sign in or Join to comment or subscribe

Player art
  0:00 / 0:00