A Matter of Time

*
Accepted Session
Short Form
Intermediate
Scheduled: Thursday, June 25, 2015 from 2:30 – 3:15pm in B302/303

Excerpt

Did you know that every so often, a minute lasts 61 seconds? If that sounds like something that might break some software, you'd be right! In this talk, we'll discuss the common ways that time is implemented in a number of libraries you probably depend on, how these representations can fall short of giving us a complete picture of what time it is, and what we can do about this state of affairs.

Description

The major arc of the talk will center around the mismatch between demands that humans place on representations of time and the various failures of software we rely on to accurately reflect those demands. At the end I’ll also offer some solutions that I think might work to fix the problems I’ll discuss.

I’d like to make four big points:

  • for a variety of social, neurological, and psychological reasons, humans have a bad track record of trying to represent ideas that seem deceptively simple into a more rigid form like software
  • the way we tend to represent time in software doesn’t map well to the way time is represented in the real world; it often makes inaccurate and arbitrary decisions that don’t always reflect reality
  • ultimately, this discrepancy leads to real-world consequences in software that manifest as bugs
  • but there’s hope, because there’s an easy way to fix all these problems: don’t try to have a single representation of time that covers everyone’s needs

I plan to illustrate some of the more technical concepts with code examples from real-world PLs and libraries that exhibit differing ideas about how to represent time. (For example, native JavaScript times don’t have any concept of time zones, only time offsets, which seem like they’re a similar idea but are deceptively different.)

At the end of the talk, my hope is that the audience walks away with an appreciation for the finer points of time as represented in software — a topic that initially seems simple but is riddled with nuance and interesting special cases.

Tags

standards, times, dates, libraries, languages

Speaking experience

I feel comfortable giving talks in front of audiences of diverse sizes and composition. You can see an incomplete list of my past talks here (about 30) and feedback from attendees: http://speakerrate.com/speakers/2986-john-feminella

I'm a big believer that representation of abstract concepts in software is fraught with peril, so I've given similar talks highlighting different failures of how software represents important things, likes names, dates, and Unicode. But I haven't given this specific talk before.

Here's a video from Cascadia Ruby a few months ago that highlights a few examples of that: https://www.youtube.com/watch?v=8pzJq-jtd7g

Speaker

  • Conference headshot 2014 cropped

    Biography

    Builder of things, occasional public speaker, and curiosity advocate.

    Sessions

      • Title: A Matter of Time
      • Track: Chemistry
      • Room: B302/303
      • Time: 2:303:15pm
      • Excerpt:

        Did you know that every so often, a minute lasts 61 seconds? If that sounds like something that might break some software, you’d be right! In this talk, we’ll discuss the common ways that time is implemented in a number of libraries you probably depend on, how these representations can fall short of giving us a complete picture of what time it is, and what we can do about this state of affairs.

      • Speakers: John Feminella