Andrew Burke has been a professional independent developer for over 20 years, working in everything from HyperCard and Lotus Notes to Ruby on Rails and iOS. Besides building software for various businesses, he teaches web development, speaks at conferences, and has several SaaS products and iOS apps on the side. In his spare time, he also does fan art mash-ups of iconic science fiction ships and characters with equally iconic Nova Scotian scenery – which are surprisingly popular in Halifax.
In this episode, Derek Hatchard and Ron Smith talk with Andrew about some weird things about time and what lessons software professionals can learn from history. From politicians and Popes debugging algorithms to century-long deployments of changes, it’s a radically different scale than a typical software project.
Where to find Andrew Burke
On the web at http://www.shindigital.com
Andrew’s other projects include:
His “4 Weird Things About Time” talk from ConFoo Montreal is available at https://www.youtube.com/watch?v=RM3LUB_MVa4
Enjoy the show and be sure to follow Ardent Development on Twitter.
Derek: Welcome to the Ardent Development I’m Derek Hatchard, here with Ron Smith. And today we are talking with Andrew Burke. Andrew has been a professional independent developer for over twenty years working in everything from HyperCard and Lotus Notes to Ruby and rouse and iOS. In addition to building software for various businesses he teaches web development, speaks at conferences and has several SaaS products and iOS apps on the side. And in his spare time, he also does fan art mashups of iconic science fiction ships and characters with iconic Nova Scotian scenery which is actually pretty cool. they are surprisingly popular. But they are fun. I think my favorite is the fisherman demanding the return of Firefly. So welcome Andrew. It’s good to have you on.
Andrew: Thanks. Good to be here.
Derek: Today we’re talking about weird things about time and this is something that you’ve been basically on the conference circuit. I guess it was 2015, you did that talk. An insanely popular talk a lot of people still tell me how much they enjoyed that talk. You have done it in Montreal, Vancouver and I don’t know where else. Talking about time has me thinking we are recording this in December which starts with the DEC which to me means 10 but December is the 12th month of the year. So what the heck is up with that?
Andrew: Yeah that’s the first weird thing about time I talk about in the talk. Anybody who’s a programmer knows that the closer you look at things like times and dates the weirder and weirder it gets. And I’ve had a lot of times in my career where I get really frustrated with time and date tracking and time zones and stuff. So I started really looking into things and got really kind of got obsessed about how all these you know calendars work and where are the names for things come from and how these systems fit together. And I found they kept reminding me of stuff in software and so the first thing I talk about is if you ever notice that the last four months of the year have the wrong name. So September has a 7 in the name but it’s actually the ninth month of October and November and yet December. That’s sort of it’s a good hook to get people started in the top because everyone’s like hot never noticed that before. And what’s funny is that a lot of people figure that it’s because people put July. You know the Romans put July and August in. And you know after August you have September and that’s where the names are on because July was named after Julius Caesar. And August was named after Augustus Caesar so they named these months after these emperors and a lot of people said that was my first impression was they were just added these months and stuck him in there. But it turns out those months were actually named quintilis and sextilis before they recalled June, July and August, and it was actually it turned out half of the months of the year had the wrong names because quintilis has a five in it and sextilis still has a six. So that got me even more interested in how things fit together and eventually I discovered that it looks like a very very very early Romans just didn’t bother counting the first part of the year. So they basically started in March and went to December and they only had ten months but those months were still about 30 days. The beginning of the year which is you know what we now have is January and February. They just didn’t bother because it’s muddy and gross and if you’re a farmer or a warrior there’s nothing you can do it just sort of hung out at home and waited until they could do stuff and that’s when they started labeling, labeling the months. Obviously that didn’t last very long once they got more sophisticated and the culture got bigger. But that sort of was supposedly the origin of where the month names come from is that they just didn’t bother naming a whole chunk of their year which I found kind of fascinating.
Ron: Still kind of feels that way in January and February right.
Andrew: Exactly. I mean I sort of thought about having, like in the Maritimes we could have, we could have a sort of a everything from January until maybe About April we could just have this month called you know, terrible. Or something, or you know we just, yeah why bother counting the time until like you know when it’s a snow and like mud and rain and you know and you know there’s some of those times a year and so you get the same thing there were. We still have snow on the ground in late April, and it’s kind of depressing. So yeah I was thinking about like how we name these things that reflects the world that we’re in and the context are in and and especially the developers I always think about as an engineer you sort of want to cover everything and be really really thorough, but often users don’t want to know all of the terrible stuff. So you know, if the Romans could actually skip out a whole six of the year and eventually end up taking over the known world anyway, it’s good to sort of think about maybe where you’re what what you can skip in your UI or your you know process, that would actually still make it useful for users. So that’s the kind of thing the whole talk is kind of got a lot of that kind of thing, where the weird stuff that happened in history turns out to kind of reflect on stuff we do all the time as developers. That’s kind of been one of the fun things about doing that.
Derek: Yeah. And it really is a fun task. I encourage everybody to go watch one of the YouTube recordings of it, it’s thoroughly enjoyable. So it kind of caught your interest and I know when you came to speak in New Brunswick a couple of years ago you already had a recording of the talks. Walk us through a little bit of how did this evolve from have learned a few things to, I’m going to go and really talk about weird things about a time and helped to shed some light on some of this weirdness to the rest of the developer community.
Andrew: Well I just kept, I kept finding things and there’s a bunch of things I couldn’t fit into the talk even things with like actually want to. I do have and I removed it since for time but when I have a lot of the recordings is off by one errors you know start do you start from 1 or zero that came back that went all the way back to sort of 50 B.C. which is kind of funny and all these weird sort of programmer things and so I kind of got obsessed with this myself. And then I did a sort of rough version of this talk several years ago. We have a pod camp in Halifax which is sort of an unconference. And people just sort of show up and do talks in a very early version of this talk which was kind of kind of a rough version I did there and people seemed to like that. And then when I sort of really decided I wanted to get much more into doing speaking. I’m not, I’m you know I’ve been doing a lot of programming over the years but I’m a fairly, I mostly do sort of complicated business software, trying to model messy business processes so I haven’t usually had a lot of chance to do super leading edge, bleeding edge software with the shiniest new tools because usually those are not the kinds of things you want to have, you know to run a business on. They are kind of fun the show off. But they’re hard to run a business on. So I’ve tended to do work with stuff that’s fairly stable and not very exciting often. So you know I actually do have another talk. I do, that’s about stuff it’s really cool in Ruby but it’s stuff that most people have already been doing for about a decade. So it is not leading edge, so I was trying to find a really good in to have an interesting topic that would be cool for people in conferences and this calendar thing or this no time thing sort of seemed to be a really big really good idea because for one thing it’s a stuff that a lot of people don’t know. The other thing a lot of it happened a thousand years ago. So I don’t have to keep redoing the talk every year when the technology changes.
Derek: Smart, smart.
Ron: What about writing apps for changing time zones and that kind of thing? Do you get into that very much?
Andrew: A little bit. What I try to do whenever I do the talk is I always try to find recent news items as a little bit at the end. Where at the end I usually say well you know this is all history. We don’t have any of these troubles, any of these problems anymore. Right. And then there’s always something new in the news that I find you know with either the latest one I do is like daylight savings time. Every single country and state and province in the world seems to have their own different time of doing daylight savings time and it changes all the time so every time there’s a daylight savings. Places like South Sudan, Sudan used to be one country, now it’s South Sudan and North Sudan and North Sudan is keeping daylight savings, but South Sudan isn’t. Among all the other problems they have in South Sudan. Daylight savings is one of those and constantly there’s all these adjustments have to be made. Every country has got different ones and leap year and leap seconds is another big deal. Amazon S3 had to go through a huge nightmare to figure out how to handle leap seconds because obviously if you’ve got a whole system with lots of cron jobs running in a giant data center, having an extra second suddenly show up can really mess up all of your all your delicate time-based systems. So they had to do a whole bunch of juggling to fit that kind of thing in. So there’s all that kind of stuff happens. The GPS satellites have to take into account relativity, because they’re going so fast and they’re going into a different part of the gravity, well of earth which changes their actual perception of time. And so we have to take this into account in figuring out where we are. We have to take relativity in how time it’s actually kind of elastic, just to figure out GPS. That’s you know, yeah, it’s kind of insane making. Actually when I gave it it’s when I gave the talk at Maritime DevCon, you know I sort of put this GPS thing in and talked about you know people going to Mars and while these probes it’s really difficult because it takes a long time for time to go to go through space for messages to go through space and to talk right after mine opened it just by coincidence opened with how complicated it is to communicate with satellites. and they had so I think looking at the sun from four different places in the solar system and it was really really difficult to tell when something happens at the same time because the satellites are in different places. It takes maybe 10 minutes for the messages to get to each other, and then they’re going at different speeds and for the different messages. So everything is totally synchronous. And then you have to counter for like relativity and all that kind of stuff too and it’s just completely nuts. And so it was a great follow up to my talk where he was like Yep that’s exactly what happened. It’s completely weirder than you ever thought.
Derek: All right. So let me ask. Let’s do something easy then, Andrew. OK I just I just want to put a countdown to Easter on my website. That’s easy right?
Andrew: Yeah. Well now it is because it’s all on your computer. But it took, it took several centuries for them to figure this out. And then several centuries more to actually stabilize it. Yeah because Easter is one of those things, it’s part of the problem is Easter is based on Passover roughly it’s loosely based on the Jewish festival of Passover. The Jewish calendar runs on the lunar year while the you know the Julian and Gregorian Christian calendar runs on a solar year. The cycles of those phases of the moon is an often, it’s a really common way to measure time because it’s really obvious to look up and see the moon but the cycles of the where the sun is and the seasons and the length of the days and things like that is also really popular. And the problem is those don’t fit together very well unfortunately. So it is actually if you try to track lunar months and solar year you have 12.36 lunar months in a solar year so they don’t actually fit so civilizations have to sort of pick whether they’re going to track the moon or the sun. And by putting Easter to be sort of loosely tied to Passover it’s putting a lunar festival calendar into a solar calendar and that kind of makes it a giant mess. So you end up with these, sort of the three rules for Easter. Looks like the early church ended up arguing about a lot of things and one of them was Easter, but they finally figured out a simple system which is. Easter is the first Sunday, after the first full moon, after the spring equinox. And so that’s sort of makes sense. But once again we got this really messy thing where you’ve got the equinox equinoxes a solar cycle and the full moon of the lunar cycle. They don’t fit together very well. And then you’ve got the Sunday thing which is extra arbitrary 7-day cycle on top of that. So figuring out when Easter actually is, turns out to be this huge messy calculation. And back when they were figuring this out early on this is a middle age, the dark ages even, they didn’t have they didn’t have the modern concept of decimal fractions and they mostly wrote everything by hand in Roman numerals which is terrible for doing complicated math. And so there was lots of people did these systems for figuring out when Easter is but it would take forever and a lot of them had lots of mistakes. But you wouldn’t know they had mistakes until suddenly one year Easter turns out to be on a Saturday or something like that. So it became this huge nightmare mess and all sorts of different cultures had different versions of celebrating Easter. And one of the five things I talk about in my talk is a particular king and queen in Britain, ended up the celebrated Easter at different times and it became a big headache for everybody. They finally figured it out and that actual thing they figured out for Easter turns out to be why it’s why we count this year as 2017. And it’s a long story which I’ll go into into the talk but you’ll have to watch the talk to get the details on that. But Easter is such a weird mess. It took a long time to figure it out and it sort of ties in with all sorts of weird issues of how the solar year doesn’t fit into the lunar year how the days don’t fit into the months and turns out to have all sorts of weird side effects with leap year and rounding errors and all sorts of things too.
Derek: So fascinating. There’s one more thing from your talk that I want to ask you about. And then and then I want I want to get some of your bigger picture thoughts. But this one is cool. Anyone who’s got a Mac or Linux machinery UNIX based machine can go and do this. You do, I think it’s cal 9 1752 September 1752.
Andrew: Yeah you yell out of it depending where you are if you’re in the English-speaking world probably you’ll get this depending but if you’re say in France or something you might not. But yeah, Cal 9 1752 gives you a month with three weeks in it. And that’s not actually a bug. Well it’s not a computer bug it’s not a software bug but it actually is due to a bug in how people measured time. And this is actually due to the way they had to fix the bug. But it’s a bug that took centuries to figure out and centuries more to actually fix. And in fact hasn’t been completely fixed everywhere in the world yet because it’s a very, it’s one of those annoying bugs that sort of only it accumulates after things have been running for a while because it’s basically a small rounding error that accumulates and then it took centuries for people to find it. And then once they found it took a lot of time to actually implement a solution that would get everyone on board and it became a big headache. Basically it’s that when they set up leap year, which was a great idea because calendars before then especially in the Roman Empire used to be adjusted on an ad hoc basis you have months following the moon but then didn’t have some extra days in the year because the most totally match and they’d sort of let those accumulate and then add an extra month. And the problem with that, is that, that was decided mainly by politicians. And what could possibly go wrong? And it was sort of a bad luck thing to have this extra month soaring in so when they set up, when Julius Caesar set up the elite, the modern Julian calendar. It was self-correcting it had a leap year to have an extra day you’d get to February and then it would just self correct all the time. But the problem is the month turns out to be the year. It’s 365.2425 and change days. So you end up losing about a day every century. Even if you’re doing the leap year. So after a few hundred years the dates are kind of out of sync from the equinox by you know about a week and you know when you’re trying to figure out Easter based on when the Equinox is, this can really mess up all your calculations and it took centuries and centuries to figure it out. And Catholic Europe set it up in 1563 and adjusted their calendars around then by removing ten days from the year but Protestant Europe, by that point Europe had split into Protestant Catholics or the Protestants weren’t going to go with this like Catholic thing. And so this became this big headache if you left France and arrived in England. You ended up arriving in the past. It’s just kind of crazy making because France had adjusted the calendar but England hadn’t because they didn’t want to do it some were some Catholic thing. So all sorts of crazy this kind of thing that makes historians totally nuts because you can’t tell when something actually happened because you know things you know everybody has a different date system. And I almost did a whole of it talk about how all the different countries tried to solve this themselves because it’s basically debugging but it’s debugging done by kings and emperors and popes and stuff and you know and these are people who are not usually used to dealing with the kinds of things we have to deal with when we debug. So how do you find the problem how do you fix the problem? How do you get people to accept the problem? Part of the thing is it became really political obviously because it was about Easter and Popes and stuff like that. And England finally you know, a century later than, a century or so two centuries almost after Catholic Europe switched England finally switch in September 1752 and to adjust they had to remove 11 days from the month. So September 1752 was the adjustment. And that’s why when you look at it, it’s Tuesday the first, Wednesday the second and Thursday the 14th. And that caused a lot of headaches for everybody. It’s fine now but for that year was actually kind of tumultuous because there’s supposedly riots in the streets with people demanding their 11 days back. And I think they remember they had to do a complicated thing for things like a for if to paying rent or you are doing something by the month. Suddenly you’re paying a lot more rent because it was only a three week month and you still have to pay your full month of rent or something like that. So for the rest of the year they had to do two different versions of tracking time for like the month and the old monthly cycle that’s a full month long and the one by the calendar cycle, it was a big headache. But once again these are all debugging issues in a certain way. And it’s weird to see parliamentarians trying to figure out how to debug had to debug something.
Derek: As much as I like to think that we are evolved as a civilization. I can’t help but think if we did that today, it’d be riots in the streets. Yeah Andrew tell me you’ve got in the talk that you gave you have a number of lessons and takeaways that really software professionals can glean from these weird things about time and some of the history about how our calendars work. Can use recap for a few of those things? What are some of the lessons and takeaways that you think are important from the modern software professional from all this historical baggage that we carry around with time?
Andrew: Yeah I mean the big one about the whole Easter the whole removing days from the year to get the adjust for this rounding error, technology ends up being cultural in many ways. They figured out that there was a problem sometime in like the 12th or 13th century, even earlier possibly, but they only finally got a fix in several centuries later. But it then took centuries more for everyone to roll in. In fact still the, Eastern Orthodox churches the Greek and Russian Orthodox churches still haven’t switched over to the Gregorian calendar. They still use the Julian calendar which is why Greek a and Russian Easter is actually a week and a half later than a Protestant Catholic Easter and Christmas. It’s kind of weird. Anyway, the issue is this is much more about culture than it is about technology per se. And I think we see a lot of that these days with say Twitter and Facebook, you know they think they’re all engineers. Google as well YouTube they’re engineers they want to solve a technical problem. But these technical problems and of having all these huge cultural echoes across everywhere where you know- we want to have a news feed, and then it turns out that news feed ends up being full of fake news that ends up disrupting civil society with all sorts of things and you put things on Twitter and you change the way Twitter works and suddenly there’s all sorts of extra echoes that come across because the problems are cultural and political and sometimes religious.
Those turned out to be much more difficult problems to fix than simply changing how many characters there are in the field or something like that. Also I’ve always been a fan of history and one thing you know I often say the military history but the problem is military history is kind of extra depressing because you know it’s big projects, it’s big project management, it’s how to deal with disasters but it ends up being having, you know, a lot of people die and suffer and it’s terrible. But this one with calendars was just sort of a nice sweep of the history that didn’t necessarily involve explosions and machine guns and stuff but I did like you. Every time you study history you see these sort of echoes. Everybody’s dealing with giant fiascos you know every large project at the end of the day is kind of a fiasco. And especially as a developer who works mostly on my own I always figured oh my gosh I’m the only one ever having these problems. You know I’m the only person who’s ever had a bug that had a big software project that’s gone live. And of course reading history and reading other postmortems of other projects I realized now that’s what everyone deals with. And I think reading history and looking at history really helps you realize that you’re not alone. Everyone’s had to deal with weird stuff like this for centuries, to be honest. You know one of the other things that keeps coming up is because calendars and time systems are inherently messy. They don’t round to nice round numbers. I wish they did, but they don’t. We constantly have to sort of use things that aren’t quite precise to be usable. The last bit in the talk is actually about sort of time zones in Greenwich Mean Time and there was a lot of pushback when they instituted and standardized Greenwich Mean Time in the UK, for example, because a lot of places it’s easy to tell when it’s noon by just looking at the sun and where the shadows are. And even in a place the size of the UK, noon can be up to 10 minutes, 12 minutes away from the Greenwich Meantime noon and people get really upset that you know you’re reinforcing centralized noon from you know, London. And you know we have our own noon here. So in fact through the 19th century there’s clocks that actually had to two sets of minute hands so you could keep track of you know when it’s noon here when it’s official noon. This cornerstone of our entire civilization, time zones and Greenwich Mean Time that we used to coordinate all of our systems all around the world is actually wrong almost everywhere. It’s actually incorrect it’s not actually you know it’s not actually noon in most parts of the world but it says that it’s noon because you’re always off by whatever from the central part of Greenwich Mean Time. So it’s actually the time is never correct, almost ever, except unless you’re in a tiny tiny piece of the world. You think that the foundations that everything you build is super solid but it turns out nothing’s actually. The closer you look the weirder it gets and the more inconsistent and strange it turns out everything is based on.
Ron: I can picture you Andrew talking to someone who just ran a Y2K project.
Ron: I’m telling you, you know there’s these two digits were missing. And you’re looking at them thinking, you have no idea.
Andrew: And in fact one of the other things I bring up is that you know it’s the negativity whether it happened or not is not something I go into but the general consensus was it actually happened at six B.C. not zero. So it actually should be 2023 right now and that’s mostly due to rounding calculations. A convenient reference state that people could use to better figure out calculations. But yeah. So even the year the actual year that it is, is wrong.
Derek: So it’s all a mess. We don’t know what year it is. We don’t even know what time it is.
Andrew: We don’t know when Easter is. Yeah exactly. Well the thing is the point of the weird thing of the intro for the last read thing about time zones is that at Oxford you’re allowed to be five minutes and two seconds late for class or any meeting at Oxford because Oxford is five minutes and two seconds off from Greenwich Time. So you’re allowed to be you’re allowed to get to Oxford Oxford. Time is like our time here not Greenwich Time because they’re sort of passive aggressively sort of you know cranky about the fact that London got to know Greenwich got to be the official time. Of course, Oxford that’s where all the smart people are. They should have the official time. So you’re allowed to be late for class in Oxford. So yeah maybe tell them in your time zone you’re allowed to come home late but not in our times.
Derek: This is all just awesome. I find this so fun to talk about. We are at the end of our time however. I would encourage everybody to have an extra five minutes and two seconds and two seconds. I want to encourage everybody go to youtube search for four weird things about time you find a copy of Andrew’s talk there. Watch the whole talk, it’s great. I think I’ve watched it three times actually if I can be totally open and transparent with everybody. But before we let you go, Andrew. Can you can you tell everyone where they can find you online?
Andrew: My big thing, I do a lot on Twitter so I’m Ajlburke. on twitter that also goes for Instagram. You get sent back to Twitter anyway. I have a Website for my business which is in shindigital.com. If you want to look at fun photoshop pictures of spaceships in Nova Scotia you can go to starshipstarthere.ca that’s starships start here, All one word, dot ca. That’s a lot of fun and that’s probably the best ways to get hold of me. Twitter is where most of the action is and you can follow some links from a Twitter profile there as well.
Derek: OK great. We will put links to all of those things in the show notes so people can find you there as well. Thank you for your time today, Andrew. This was super super fun! Really really great talking to you.
Thanks. It was great talking.