Live coding like no one's watching! (half day)
So, you’ve heard of this “Rust” last year. Still it feels a bit like self-assembly furniture: you don’t know how all the parts fit together. Watch me make a fool of myself by trying to solve some common programming tasks in Rust.
Highlights: Nervous laughter, self-demeaning humor, browsing the Rust documentation for clues. I might explain a little Rust along the way.
This is gonna be a hands-on, interactive session, so beginners and pros are equally welcome to join.
Matthias is a Backend Engineer located in Düsseldorf, Germany. His interests are scalability, performance and distributed systems. At work he improves the infrastructure at trivago by making it faster and more reliable. When not on his laptop he plays guitar and drinks hot chocolate.
Refining Your Project (half day)
You did it! You made a cool thing! It works! (Ok, sure, maybe only in your small test cases.)
Now you need to refine it! That means writing documentation, refactoring, building tests, benchmarking, making releases, dealing with issues, landing PRs, oh my!
In this workshop we’ll discuss and get our hands dirty with the projects of our participants.
First, we’ll all have a chance to share insights we’ve earned from our experiences, then we’ll pair (or triple) up with other attendees and try to use each others projects, documenting the stumbling blocks and good techniques as we go.
At the end of it all you’ll have a list of things you can work on in your project, a list of ideas from others that work well, and hopefully at least one new Rusty friend (and user of your thing!)
RustBridge (all day)
RustBridge is a workshop focused on getting underrepresented people with a background in another programming language to learn Rust and join the community.
Format-wise: RustBridge is an all day event (~8hours). The first portion focuses on Rust language syntax and semantics, relating them to programming concepts in other languages. It consists of a presentation followed by guided and self-directed practice using exercism.io. The second portion leads students in a hands-on project: building a small website in Rust.
Ashley is a Services Engineer at npm, Inc. She also represents the Individual Membership on the Node.js Foundation Board of Directors. In her spare time, she contributes to the Rust Programming Language and its package manager, Cargo. She is also a founding organizer of the NodeTogether and RustBridge educational initiatives for underrepresented persons in tech.
Intro to Rust (half day)
Systems programming has long been sold as a school of hard knocks, where competency could only be attained through a decade’s worth of experience staring at segmentation faults, scowling at core dumps, and debugging inscrutable runtime and concurrency errors.
Enter Rust: a new systems programming language from Mozilla that matches the speed and memory overhead of C++ while providing best-in-class compile-time protection against memory errors and concurrency bugs.
Currently being used to reimplement pieces of Firefox, Rust bridges the gap between high-level and low-level programmers by focusing on usability and offering a suite of tools that cater to modern development practices. This hands-on workshop is for programmers of any background, from Java to Python to C and beyond, and will provide an introduction to the Rust ecosystem and get you up and running with the basics of the language.
Ben Striegel is one of the earliest members of the Rust programming language community, having been an active member of the project since 2011. Today, Ben is a member of Rust’s official community outreach team and focuses on teaching and mentoring newcomers and interfacing with other open source communities.
Unconference (all day)
For this workshop track, you will decide the schedule! Bring topics you’d like to chat with folks about, code to work on, or questions. At the start of the day, Jean Lange will facilitate the collaborative creation of the schedule for the rest of the day. This is a great chance to talk to folks in person that you normally converse with online!
You were chosen in 2006 as Time magazine's Person of the Year. This award recognized the millions of people who anonymously contribute user-generated content to wikis such as Wikipedia, YouTube, MySpace, Facebook, and the multitudes of other websites featuring user contribution. (From Wikipedia)
Find planets with Rust (half day)
How are exo-planets found? With Rust of course!
Exo-planets, planets that orbits distant stars, are a scientific marvel that appeal to our adventurous mind. In artist’s impressions they are portrayed as beautiful alien worlds dancing around their host star. The real world is not so visual but far more interesting.
During this workshop, you will learn the tricks and develop the tools with which you can analyse real-outer-world data in search of exo-planets. You will get your amateur astronomer merit badge when you find the hidden worlds.
Core Team Keynote
Aaron, Carol, and Niko will deliver an update on the state of all things Rust. You don’t want to miss it!
Aaron Turon, Carol Nichols, Niko Matsakis
The Long Road to Creative Programming
Creativity as a concept is not generally well understood, and that’s especially true as it applies to programming. Creativity can be either invaluable or dangerous, and sometimes it’s both. By understanding creativity, you’ll be able to leverage it to build awesome software. In this talk, we’ll explore what it means to be creative and how it relates to programming, and especially to Rust. Expect to come away with some tips for how to let your creativity flourish.
Phil has been a software developer for a while now, but before that he was a painter and sculptor. These days, he spends his time working for a big data startup in Columbus, and creating tooling for event-based microservices. He loves hiking, camping, climbing, and talking smack about art, programming, and the convergence of the two.
Rust support for KDevelop
Rust was voted “most loved” language by developers for the second year in a row in the Stack Overflow developer survey. There have been projects made using Rust on everything from operating systems to game engines for Minecraft-like games. Despite this, IDE support is still very limited.
As my Google Summer of Code project, I worked on a Rust plug-in for the KDevelop IDE which aimed to support most standard IDE features such as semantic highlighting, code completion, project management and debugging. I will go through the challenges of integrating language support in an existing IDE and talk about how adding semantic highlighting was one line of code and getting debugging to work took less than 10 minutes.
Emma is a third year undergraduate at Imperial College London. She worked at Microsoft Research in summer 2016 on the AssessMS project. She started working on a Rust language support plugin as part of Google Summer of Code 2017. She has been programming for around 10 years. She is interested in several different areas of computer science, namely artificial intelligence, computer vision, computer graphics, and most recently, compilers, type systems and operating systems and has worked on various different projects in these fields during high school and university. In her free time, she’s currently working on a hobby OS in Rust.
Becoming a Contributor
So, you’re new to the Rust community. (Or any community, really!) And you want to help, but, well, you’re new. So how exactly do you start contributing? What kinds of contributions are valuable? We’ll talk about everything from asking questions to writing documentation, from pitching in on forums and chat to writing blog posts, and from starting your own projects to contributing to other open-source projects.
Chris Krycho is a senior software engineer at Olo, where he spends most of his time writing TypeScript in Ember.js. He has hosted the New Rustacean podcast for the last couple years, trying to build up the Rust community both by providing teaching resources and by helping create enthusiasm and a way for people to learn about the programming language without ever having written a line of code.
The Story of Stylo: Replacing Firefox's CSS engine with Rust
Firefox is in the process of shipping a new implementation of CSS styling written in Rust as part of Mozilla’s Servo project. Firefox has 20+ million lines of code and hundreds of millions of users, so this is no small undertaking! As a case study for integrating a large, multi-repo Rust project into a larger C++ project, this talk explains how we:
- created bi-directional FFI boundaries that maximized each project’s strengths
- addressed cross-language mismatches including threadsafety and ownership
- integrated two fast-moving codebases while managing regressions
We’ll cover specific successes and failures that emerged over the course of the project, and discuss how Rust contributed to those outcomes.
Building on an unsafe foundation: What "unsafe" means in Rust and how to deal with that
Beneath every safe programming language, library,
or virtual machine is a whole lot of unsafe code.
Rust is no exception.
This talk will explain why “unsafe” code is allowed at all in a safe language,
show the unsafe code at work inside safe features like
and teach how to write a safe library that uses unsafe code.
Traits and You: A Deep Dive
Traits are one of the most powerful, but also most difficult parts of Rust to master. Come to this talk for a visual exploration of how traits work - from the most basic to the advanced. It is only through deep understanding of a concept like traits that you can fully harness their power in your every day code. You will walk away with a deep understanding of how traits work, why they work the way they do, and the how and why of using them.
Nell Shamrell-Harrington is a Software Development Engineer at Chef and a core maintainer of the Habitat open source project. She also sits on the advisory board for the University of Washington Certificates in Ruby Programming and DevOps. She specializes in Open Source, Chef, Rust, Ruby, Rails, Regular Expressions, and Test Driven Development and has traveled the world speaking on these topics. Prior to entering the world of software development, she studied and worked in the field of theatre.
Excited by what you see here? We'd love for you to join us!