Naomi Ceder earned a Ph.D in Classics several decades ago, but switched from ancient human languages to computer languages sometime in the last century. Since 2001, she has been learning, teaching, writing about, and using Python.
An elected fellow of the Python Software Foundation, Naomi currently serves as chair of its board of directors. She also speaks internationally about the Python community, and on inclusion and diversity in technology in general.
By day she leads a team of Python programmers for Dick Blick Art Materials, and in her spare time she enjoys sketching, knitting, and deep philosophical conversations with her dog.
Mark Thompson is an award winning university instructor and software engineer with a passion for creating meaningful learning experiences. With over a decade of developing solutions across the tech stack, Mark likes to use that experience to break down fear of technology and make challenging technical topics more accessible. Lately, Mark has been spending time creating a disruptive fitness community by building Totally Strong, Inc.
Coding Out the Clink
This talk is about the journey of a former incarcerated prisoner who went from Coding in the Clink to his transition on the outside, coding out the clink. What started as a program in 2009 at Marion Correctional Institute as the Agile Factory with a few old Pentium 3 machines peaked the interest of not just men inside, but also volunteers and community members beyond the scope and purpose for which the program was intended. This collaboration between prisoners and IT tech professionals led to our prison conference know as Coding in the Clink. With such programing like this who needs prisons, after part of your rehabilitation brings a skill set that’s very much in demand and could possibly make you a living! The majority of prisons are inadequate in programing and resources. And while the Agile Factory provided a valuable skill set that men could take to college or possibly use on the outside, prisoners are still faced with barriers to employment. This talk will present personal experience navigating this nontraditional route to a difficult modern industry.
Open Source Hardware Design
While the open source tools have been available for software design for decades, hardware design had been trapped behind proprietary tools and expensive processes and parts until recently. But with the recent reverse engineering of multiple Field Programmable Gate Arrays (FPGA) that are also relatively cheap to buy, there’s been an explosion of new tools enabling folks to try design on their own without even necessarily learning a new language. These chips and tools can enable designers to anything from simple glue logic to combining open source modules into custom Systems on a Chip. In this talk I’ll go over some of this history, as well as some of the basics of FPGA design for those unfamiliar with their hardware design cousins, finally ending up talking about the ways someone can get their feet wet designing fpgas.
SRE for Cats
Studying the principles of Site Reliability Engineering not only made me better at going on-call: it made me a better cat owner. This short talk will explore how lessons from SRE apply more broadly to any system with chaotic elements (in this case, it’s the cat. Cats are relentless agents of chaos.)
How I Added Ordinal Plural Support to Mozilla’s Fluent Project by Pre-emptively Fixing the JS Intl Specification
EmoReply: Machine Learning with Feelings
“Great!” “Got it, thanks!” “Awesome, thanks!”
Above are three examples of Gmail’s SmartReply feature, which promises to save users time by suggesting replies. Here’s a problem: they’re all happy. What if you want to let your inner angst-ridden teenager out? The chrome extension EmoReply is here for you. Using machine learning, EmoReply suggests angsty autoreplies that replace SmartReply’s exclamation marks with tear marks. The talk will walk audience members through EmoReply’s architecture, which includes doc2vec on the back-end. Finally, the talk will conclude by highlighting spin-offs of EmoReply, such as EnronReply and Overheard-in-New-York-Reply.
Plot Devices: Tools for Better Data Visualization
It’s very easy to create a plot but hard to create a great one. We build data visualizations so that we can tell a compelling narrative about what the data means. But this task becomes more challenging as data grows more complex and multidimensional. How can we leverage useful abstractions to build effective data visualizations programmatically? In this talk, I will explore common pitfalls in data visualizations and useful techniques for visual communication through an example data set with fairly complex insights to convey. I will demonstrate how data visualization libraries like
ggplot2 employ a “grammar of graphics” to quickly construct plots that are clear, illuminating, and beautiful.
Caption this! The importance of captioning for accessibility
Discover the history of captioning and why video captioning has risen in prominence in our society.
Panic! at the Browser
Everyone loves to browse the internet! We do it in the comfort of our own home, at coffeeshops, on the CTA. Some of us even do it on public computers in public spaces (much love to our libraries). However, what happens when you want to—no need to—browse inconspicuously? What happens if you’re looking up information that you might need to quickly hide? Quick exit buttons have had an increased presence across sites that cover sensitive topics such as domestic violence, abortion access, or crisis support—and for good reason. This talk with be a quick introduction to quick exit buttons: their role in helping secure safe browsing and the design and technological considerations that come with implementation.
Everything is an operating system (if it tries hard enough)
In 1996, a proprietary game system with a programming language named Robotic was open sourced with a caveat - the source code for the language’s compiler was lost. This absence shaped the next 20 years of Robotic’s future by constraining the ways in which it could evolve. Nevertheless, a dedicated community continued to push the system forward and its capabilities now rival those of an operating system. These same constraints that at first held back progress now afford a unique opportunity to dig into the age old question: what is an operating system, really? Does it run programs? Does it interface with hardware? Does it separate unprivileged and privileged code? With the help of a 25 year old niche DOS gaming system and lots of hindsight, these questions will be given the consideration they truly deserve.
Creating Mixed Reality Experiences - From Zero to Hero!
“Mixed Reality is the next big thing in building realistic applications, games, communication tools, and entertainment experiences. It brings together real world and virtual elements. In mixed reality, you interact with and manipulate both physical and virtual items and environments. A-Frame is a web-based framework which uses the WebXR API to create amazing 3D and WebXR applications using HTML, CSS and JS. By the end of this session, the participant will have a better understanding of WebXR and finally will be able to create their own reality mixed experiences using A-Fame.
Why attend my session? 1) Deep Dive into the basics of VR, AR and MR. 2) Understand various applications of WebXR in real world use case scenarios. 3) Explore A-frame frameworks & Learn how to write your own Mixed reality experience with just the knowledge of HTML, CSS and JS.”
POURing Accessibility into Your Applications
In this talk, we will walk through the four core principles for web accessibility (perceivable, operable, understandable, and robust) and what they mean for you and your web applications.
What is a Zip Bomb?
A zip bomb is a particular type of virus that sends the victim a ZIP archive that when extracted, takes up all the space on the victim’s hard drive and renders their machine useless. In this talk, we’ll use these as a tool to learn about how ZIP compression works, how you can put that technology to use to create a huge file even if you don’t have huge amounts of hard drive space available to you and how to avoid annoying your friends with this newfound knowledge. This will be a deep dive into a very specific, but broadly applicable piece of technology. And even though it’s a bit of a silly example, you’ll learn more about something you (and your computer) use every day.
The Coder’s 10 Minute Guide to Design
“You may not be a graphic designer, but, if you work in a visual space visual literacy is important. In just 10 minutes, you’ll learn a dozen tricks and techniques that will improve your presentation layer 100%– From typography to layout, you’ll be the developer who doesn’t “make it ugly!”
Design may be a talent– but the trick that good designers use every day can be learned. In this session, the presenter will touch on important design basics like color, contrast and typography.
You will be able to immediately apply what you’ve learned to your own work. If you’re a one-developer-shop where you’re forced to develop visuals, or if you just want the ability to create good looking mock-ups and image elements yourself, this session will provide you with the confidence and ability to create quality graphics each time!”
Bird by Bird: Writerly Thoughts on Writing and Refactoring Code
“This talk examines the work of several authors from outside the technical space and considers what we might learn from the practices and habits of these writers to improve our own discipline. This talk advocates that a stronger affinity exists between our two disciplines than is usually recognized and draws on the works of several authors to explore those similarities. I will draw on the work of Anne Lamott to examine similarities between first drafts and early code iterations. Then, I will explore Annie Dillard’s instructions on editing to see what she can teach us about refactoring and deleting code. Finally, I will use the letters of the playwright Lorraine Hansberry to consider how gracious feedback might play a more prominent role in the code review cycle. Throughout I will argue that an editor-like figure plays a central role in advocating for code that can be read and comprehended by more than the initial author.”
The Joy of Sweating the Small Stuff
“Some of my happiest moments at work have resulted from me taking afternoons to chase down small unimportant bugs. Debugging minor problems can be extremely beneficial, in part due to the immediate satisfaction of figuring something out.
People will give you plenty of legitimate reasons for not spending time on little bugs, e.g. “we have a workaround” or “this has no effect on production”. I’m arguing that every once in awhile, you should let yourself sweat the small stuff.
I’ll walk through some examples of bugs including:
- a bizarre linting error that was in someone else’s code
- an installation issue that could have easily been bypassed with Docker
- my year-long saga of trying to render a README on PyPI
- and more!
I’m hoping this talk will give you permission to spend some time on the petty problems in your code.”
Letters to Myself: How a Bout with Memory Loss Changed How I Make Decisions
I have spent (read wasted) a lot of time agonizing over decisions about moving forward. The topics vary from choices on the micro scale (frameworks, editors, indentation, compilers, etc.) to the macro choices (projects, employment, path, and so on). Like many, I wish I could just peek into the future or even get a letter from my future self that instructed me the right way to go. A recent dealing with severe memory loss shifted my perspective and transformed the way I now make decisions. It helped me see the beauty in the struggle that I endeavor to help you see that beauty too through letters to my past, current, and future self.
The Joy of Interactive Generative Art
Generative art is art that is generated in part or in totality by some autonomous system, often utilizing some degree of randomness. In this talk, I will briefly highlight some of my approaches to the art form, tools that I use (Python, Processing, SuperCollider), and why I make this kind of art (spoiler alert — it’s really fun)
Sebastian “blinry” Morr
A *legit* programming language
“There’s a category of so-called ““esoteric”” programming languages. These languages are not meant to be used productively, but rather as a proof-of-concept, as artistic expression, as a challenge (for the designer and/or user), or simply as a joke. When I decided I wanted to learn how to build a compiler earlier this year, I realized the time had come to invent one of these languages myself!
In this talk, I will tell the story of ““legit””, an esoteric programming language where programs are defined entirely by the commits in a Git repository. What were my inspirations? How does the language work? How is it implemented? And what makes is so very fun to use? Finally, I’ll report on some surprising aftermath, and the power of open source!”
Defending deep learning from adversarial attacks
“Adversarial examples in AI pose an asymmetrical challenge with respect to attackers and defenders. There is a need to empower AI developers to defend deep neural networks against adversarial attacks, and to allow rapid crafting and analysis of attack and defense methods for machine learning models.
In this talk we are going to discuss how to provide an implementation for many state-of-the-art methods for attacking and defending classifiers using open source Adversarial Robustness Toolbox. For AI developers, the library provides interfaces that support the composition of comprehensive defense systems using individual methods as building blocks.”