In this keynote, Nikki will discuss the relationships between political activism and our responsibilities as producers of technological systems. Informed by their dissertation research, the keynote will cover some common approaches to “doing good with tech” and some ways we can move forward to think more ethically and inclusively about the technology we’re building and consuming.
Gamma correction: the secret behind pretty colors
Until recently, I thought that "gamma correction" would be a relic from the era of CRT monitors, and no longer be relevant today. I was surprised to learn that this concept is closely related to how our eyes perceive light non-linearly, and that it’s extremely relevant in all contexts where we work with pixels, like when blending colors, resizing images, or rendering 3D scenes!
In this talk, I’ll introduce you to what gamma correction is, and how knowing about it will help you make prettier images!
What is a digital photo, really?
There’s a lot of cleverly-hidden magic that goes into digital photography. Humans and image sensors perceive light differently, so there’s a lot of processing required to make a digital image into something our eyes can understand! This talk covers some of the basic technologies used by digital cameras and considers how the choices we make as programmers are often about reconciling human perception with the preexisting systems and tech available to us.
Neural networks are all the rage - input data, output magic results! In between is a black box of magic. In many use cases - from finance to healthcare - this black box is actually a challenge preventing AI adoption. Enter Explainability! Using one extra layer, we can also have our AI explain how it arrived at the decision. This opens up a world of possibility for those working within the constraints of GDPR, and those that would prefer a human factor as the final decision maker.
Printing floating point numbers is surprisingly hard!!
Not many of us have wondered “how are floating-point numbers rendered as text strings?” and for good reason! This doesn’t seem like a hard problem to solve! But even in 2020, you don’t have guarantees in some languages that when you convert a string to float and vice versa you will get the same number! In this talk we will explore why printing floating point numbers is hard, arbitrary precision arithmetic, and the state-of-the-art dragon algorithms for printing floating point numbers!
Sorting the World’s Largest Jigsaw Puzzle: Whole Genome Sequencing
The genome is often thought of as nature’s code. It encodes everything from eye colour to gender and can reveal our genetic pre-dispositions to disease. But how do we actually ‘read’ our DNA? And why is computer science involved?\r\n\r\nDNA sequencing machines provide a jigsaw of DNA fragments, that need to be reassembled back into the original genome - the picture on the box. We’ll talk about how to sort these jigsaw pieces into a suffix array. Along the way, we’ll use and tweak some common algorithms you may recognise and illustrate the importance of allowing your data to drive your development.
Tales from coding in physics
Have you ever wondered how to break quantum cryptography - or how to search for dark matter? Well, turns out you can do all this (and more!) with your favourite programming language! In this talk I’ll tell you about some of my experiences writing code for physics research.
Permuting the cube
Below the stickers of the rubiks cube lies a beautiful structure arising from just a handful of rules. Let us explore permutations by the example of this twisty puzzle and see how they can turn into the building blocks of the structure behind it. We can use an exciting dualism between function and data to explore the problem space and sketch a route towards finding your own solution for this and similar puzzles. Slides and source code used with the talk can be found on GitHub.
All I have is a hammer, now give me your nails!
Have you heard the old adage “if all you have is a hammer, everything looks like a nail”? It’s one of those proverbs that make sense at first—cultivating a diverse toolbox is usually a good idea. But once you get to the other end of the spectrum, you arrive at a comparably interesting—and I would argue, comparably useful—paradigm. I don’t know that\r\nthis concept has a name, but I like to think of it as asking the question “what if everything was a…”. A lot of the most revered, feared, loved, and hated languages fall into that category: Lisp, APL, SmallTalk, and Forth, to name only a few. In my talk, I’m going to explore why this paradigm might be interesting, and how you can tackle problems if all you have is a hammer—by forming some nails.
Build Your Own controller!
When we play games we do so with a keyboard and mouse, a touch display or gamepad. But why limit ourselves to these options? We can build game controllers using simple electronics parts and create unique ways of interacting with our games!
A “How-To” for writing a “How-To” for Open Source Software (that everyone can understand without using duckduckgo)
Open Source Software is important, Open Source Software is the best, Open Source Software is easily accessible and still: Why isn’t everyone using it? I want to argue that very often Open Source Software (or software in general) lacks accessibility for non-nerdy people because they seem very “complicated”. Even the “how-to” instructions do with the love for technical terms, mystical coding-symbols and pragmatic on-point language.
In April 2020 I decided if everyone is using videocalls now, so will my grandfather do. So I got a tablet, sat down and tried to explore it like I had never used a tablet before. What could be hick-ups, how could I accidentally end up in some sub-menu? What I ended up with is a 20+ pages long instruction with screenshots from switching on the tablet, to muting the microphone or unlocking the screen (and much more). I want to share with you the manual I created but moreover I want to share what I learned when I first used it with my grandfather. (And also what I had to change because I was designing it for him without consulting him)
Spoiler: He is successfully using Jitsi! (Without being stressed.)
My First Maker Project: Print Your Own Adventure Game
A novice delving into the world of electronics, I will take you on a quick journey on how I created this Maker project destined for a Makerfaire this year. But alas it was cancelled, however I did complete the project made with a Raspberry Pi, a thermal receipt printer, and a few colourful arcade buttons. As a Pythonista more comfortable with coding, I controlled it all with CircuitPython.
Little Printing for everyone!!
Do you remember the Little Printer? It was an internet-connected, super cute thermal printer; it printed you the weather in the morning, and you could even message your friends if they also had one. It was a commercial flop and the servers were shut down in 2015, but that was not the end of the story. Today, with a little work, you too have your own Little Printer — and now you can use any thermal printer for it (some assembly may be required).
So THAT’S how my phone knows where I am!
Your phone knows where you are at all times, usually with pretty shocking accuracy. How the heck does it know that?! This talk will dive into the math and physics underlying modern smartphone location technology (GPS, AGPS, and indoor location), but it will also do so by means of a walk through history. Modern GPS arose out of Cold War-era US DoD research, but how is that research connected to the larger\r\nhistorical and political context of geolocation throughout history? How is the technical solution to tracking Russian missiles directly indebted to the 17th century sailors who developed smarter ways to locate themselves on the open sea? This talk will answer all of that and more!
Exploring Generative Spaces
In “Exploring Generative Spaces” we will wander through the results from various generative models. What makes a model interesting and how can we navigate in generative spaces? Do parametric and neural models behave the same? Join me in this playground of generative art.
The Meaning of K
Serena Peruzzo and John Earnest
Data Science methods are not normally written in K. But what if they were?
K is a high-performance programming language popular in finance, but rarely seen elsewhere, and is known for its expressive and concise notation. While K is much less well known among data scientists than Python, it shares a common heritage with NumPy as both were strongly influenced by APL.
KMeans is a classic machine learning algorithm which partitions the data into homogeneous groups (clusters). Its simplicity and scalability make it a popular choice for a broad range of data science applications, such as customer segmentation and recommendation engines.
In this talk, we’ll walk you through a step by step implementation of KMeans in K and demonstrate how the features of this esoteric language encourage poetic expression of mathematical concepts and more intuitive interaction with data.
What’s in a name? A gentle introduction to DNS
Whenever we use the internet, we use the Domain Name System - DNS. It works so well that it is mostly hidden from us and we as developers rarely have to look at it. If we do have to, it helps to understand how DNS is structured and how it works. In this talk I will give a gentle introduction to DNS by showing how a domain name is translated to an IP address step by step. We will follow it on its path and learn about some basic records - namely A, AAAA and NS. Going out of this talk, you should have an intuitive understanding of DNS and a good basis to debug most DNS issues in the future.