I built software to kill people and I gave a talk about it to warn people to think through their choices. Oppenheimer helped design the atomic bomb - was he able to atone?
I’m going to tell you about how I took a job building software to kill people.
But don’t get distracted by that; I didn’t know at the time.
We’ll visualize the steps for several sorting algorithms not only using pretty visualizations on a slide, but also with people as the objects being sorted. Don’t know what an algorithm is, what performance really means, or what “Big O” means, or what these best-, worst-, and average-case time complexities mean? No problem! We’re going to learn together how computers figure out how to sort sets of numbers. You can expect to come out knowing new things and with Benny Hill stuck in your head.
We’ll visualize several sorting algorithms—but we’ll be sorting the audience! Don’t know what an algorithm is, what performance means, what “Big O” is, or the effect best-, worst-, and average-case time complexities? No problem: we’ll learn together! You can expect to come out knowing new things and with Benny Hill stuck in your head.
Source code for charts, bars, and playing Benny Hill across several slides: https://github.com/calebthompson/sorting-rubyists
As developers, we often stare at a computer screen all day only to go home and stare at more glowing boxes all night. Having a nontechnical hobby can really help to keep us sharp for our day jobs.
As I live-paint a small model for a tabletop wargame, I will describe some of the techniques I use. You’ll hear me discuss how having a hobby has helped me stave off burnout. I’ll also impress the importance of open and frank discussion around mental illness.
(The audio quality from the RubyConf 2015 video is pretty shoddy, which is on me. My recording might be slightly better.)
The need to keep your personal information, sensitive or nonsensitive, secure from prying eyes isn’t new, but recent events have brought it back into the public eye.
In this workshop, we’ll build and upload public keys, explore Git commit signing, and learn to sign others’ PGP keys. If we have time, we’ll exchange key fingerprints and show IDs, then discuss signing and verifying gems.
You’ll need a photo ID and your own computer for this workshop.
Body weight can be a difficult issue to grapple with. But we’re software engineers—what if we approached it as an engineering problem? Our bodies have inputs (food) and outputs (water and waste). The difference between the two dictates weight changes.
Easily searching across an application’s data is a pervasive need. If you are lucky, you can get away with simple sorting or searching on a single column, but it is more likely that you need full text search across multiple models, all from a single search
Following an actual feature evolution which I worked on for a client, we will start with a search feature that queries a single column with
LIKEand build up to finding results across multiple columns on multiple tables using database views, optimizing the query time with full text indices and representing the results as a polymorphic association on an ActiveRecord model in Rails.
Rails is a mixture of design patterns, practices, and magic. In this talk, we’ll explore how Rails embraces ideas from other frameworks and projects.
Active Record was born of Martin Fowler. MVC was the brainchild of Trygve Reenskaug. Rails 3 completely absorbed the Merb project, gaining modularity and extensibility that it previously lacked.
We all learn by standing on the shoulders of giants, even Rails. By understanding the inception of design patterns, we are more likely to be able to create ideas of our own. This helps us to not only grow in our own ability, but to help others improve as well.