The Future Proof Podcast 010

Podcast episode

Gregory Avery-Weir  0:21  
Hello, and welcome to the Future Proof podcast. This is our monthly podcast where we chat about stuff we've been working on and cool stuff we're planning. I'm Gregory Avery-Weir.

Melissa Avery-Weir  0:29  
And I'm Melissa Avery-Weir. So we've had a fun month. 

Gregory Avery-Weir  0:33  
Yeah.

Melissa Avery-Weir  0:34  
We ended up kind of hit with some interesting required upgrades. 

Gregory Avery-Weir  0:39  
Yeah. Yeah. We got an email while back that's like, Hey, this is Google. 

Melissa Avery-Weir  0:46  
Hello. 

Gregory Avery-Weir  0:47  
We're turning some stuff off. Don't worry. You've got plenty of time. 

Melissa Avery-Weir  0:50  
Yep. 

Gregory Avery-Weir  0:51  
And then we were like, we've got plenty of time!

Melissa Avery-Weir  0:53  
We've got plenty of time, we'll work on it, you know, a month and a half ahead of time. 

Gregory Avery-Weir  0:58  
And then a couple weeks ago... 

Melissa Avery-Weir  0:59  
And then... deadlines slipped. Work schedules, slipped--

Gregory Avery-Weir  1:05  
 Yes. 

Melissa Avery-Weir  1:05  
--is better. I had a very rough month at my day job.

Gregory Avery-Weir  1:09  
And we both had health issues up and down.

Melissa Avery-Weir  1:12  
Right. And so finally, a few days before Google was all set to turn off Google Plus, which everybody knows was not a--

Gregory Avery-Weir  1:23  
It was on the chopping block. 

Melissa Avery-Weir  1:24  
Yeah, what we did not expect was that the login that we use for Exploit Zero Day, which is a standard Google OAuth makes calls to Google Plus. 

Gregory Avery-Weir  1:37  
Yeah, and it's, it's one of those things where, like, you can understand how they did it once upon a time, and then never actually ended up fixing it, and then did fix it. But we weren't on that version.

Melissa Avery-Weir  1:46  
Right. And it was--

Gregory Avery-Weir  1:46  
Because upgrading that library is a bit of a pain.

Melissa Avery-Weir  1:50  
Right. It requires a lot of testing. And it turned out, it was a major version update on the library we're using, which meant that some other things were impacted. And so what I thought reasonably was going to be a couple of hours of effort, mostly testing...

Probably took eight to 10. Yeah, and involves two rather late nights. And then I had a personal site to do it on once I got it set for EZD. 

Gregory Avery-Weir  2:20  
Yeah, we were literally--for your personal side, you were literally down the final hour, right? 

Melissa Avery-Weir  2:25  
It was, yeah, like it was after midnight, but probably not on the west coast. So I was up till about three. So I assume they didn't flip the switch at midnight West Coast, because it's a tech company. 

Gregory Avery-Weir  2:38  
And yeah, they probably turned it. Yeah, around noon the next day.

Melissa Avery-Weir  2:41  
When they got in in the morning. After they had their coffee. So that was a fun and entertaining and stressful... by which I mean, not fun. 

And then like, the EZD forums had a significant upgrade come through that, like, took the box down for a while... Like, it just kind of those things where it's like monthly maintenance that we let slip for a couple months. And this happens every time we let it slip for a couple months, something major happens. And I'm sure we'll have some other things come up. We have some other notices about stuff later this year around certificates for the Google Play Store, and 64 bit this and that. So it's just hard to keep up with that kind of stuff. We're getting better at it. It's just just bad combination in that case. 

Gregory Avery-Weir  3:31  
Yeah. But as an example of a thing we did to help it make it easier to maintain stuff: I think we've mentioned that we were we've been working on this. But we for a long time used presskit(), which was a thing that sets up like a media kit for video game companies or basically any company with a project. It was put together by the folks at Vlambeer.

And it's a great app. But it's also using a tech that we consider kind of old. It uses PHP; it uses an approach that isn't, as I don't know, highfalutin, rigorous software engineering as we prefer. 

Melissa Avery-Weir  4:09  
Sure, yeah. We're snobs. 

Gregory Avery-Weir  4:11  
Yeah. And so...

Melissa Avery-Weir  4:12  
And isn't hasn't been updated in a while. 

Gregory Avery-Weir  4:14  
Yeah.

Melissa Avery-Weir  4:14  
And so--

Gregory Avery-Weir  4:14  
Which is a big, bigger issue. 

Melissa Avery-Weir  4:17  
Yeah, I think that's, that's kind of my biggest issue. Like, the GDPR stuff is notable. And like, I don't, I don't know that we have fixed--we have not fixed that. But we are now available to fix that for this.

Gregory Avery-Weir  4:32  
And so we have reimplemented presskit() or the features of presskit() in Django.

Which is the web framework we use for all of our websites that aren't just simple little flat sites. And so we have released that! It is up on GitHub, and is available for anyone to use if they want to. We've got tests working.

Melissa Avery-Weir  4:38  
Right.

We do.

Gregory Avery-Weir  4:56  
Which was a bit of a chore. You, we, we wanted to use Travis CI to do automated tests, just so that every time we put code in, it runs all our tests and goes, Hey, you passed.

Melissa Avery-Weir  5:08  
Right. Make sure builds, make sure it passes.

You can there's all sorts of really cool configuration stuff you can do like getting code coverage stats or testing against multiple versions of things. So I could say Django version x-one and x-two and it'll run the whole suite against it.

Problem is, and this is--I have just had the most fun this last month.

Gregory Avery-Weir  5:32  
You run into all sorts of things that are like, why was this even an issue? It just wouldn't run.

Melissa Avery-Weir  5:36  
Yeah, it just failed running tests. And I would, like, duplicate the repository under a different name, and a different account, private, public, whatever. It would work anywhere other than my repo. And I've like, there's like, awesome people at Travis CI, like doing diffs on our code, and, like, helping me out with, like, learning how to dig in there. 

And like, they don't know Python well, so they were like "uh, interpret this." I'm like, it's all the same, like, so finally, I am logged in on this box, like, you have to, like, do this weird hack around to kind of like shell into this box. And I'm like, you know what, let me just rename this folder. And I rename it and it works. This is hours and hours and hours and hours later. And it turns out that because the package name had an underscore, "django_presskit," that when you say, run the tests, you've got, like, two things referring--It was like, a shadowing thing. 

Gregory Avery-Weir  6:37  
Yes. 

Melissa Avery-Weir  6:37  
So anyway, I just renamed the repository.

Gregory Avery-Weir  6:39  
Don't name your project the same as your repository, as your package. 

Melissa Avery-Weir  6:44  
And I have often wondered why, when you put PIP packages, they often are a little different than what you actually install as the application, right? Like, they'll have hyphens in one place, and underscores in the other, so that's why. But!

Gregory Avery-Weir  6:46  
But it's out now!

Melissa Avery-Weir  6:54  
It's out now. And so, I have not worked on standard open source projects very much. But my understanding is, if you want something to change, like, you know, you kind of open an issue on the, on the repository. And you would fork the repository, do the work locally, and then submit a pull request to merge that fork back in. 

So it's rather different than how we work locally, where we just sort of branch off of the same repository. And we still have some things to figure out because we internally use JIRA. And we won't, we'll want to be more public with work we do in the future. And there's stuff like that. 

But it's available for forking and working on and we'll take feature requests and help people implement new things, help people install. We have instructions, but we are such tech heads that there, there... We're probably missing things that, that other even Python or Django developers might not know to do that we just kind of we're like, "Oh, of course, you would know to do this."

Gregory Avery-Weir  8:07  
Or a thing we just forgot to write down.

Melissa Avery-Weir  8:08  
Right. Yeah, that too. So I'm excited. I don't know that I expect there to be, you know, a whole lot of adoption of it or anything. 

Gregory Avery-Weir  8:15  
Yeah. And I mean, we not might not even work on it all that much. 

Melissa Avery-Weir  8:18  
Because it works. 

Gregory Avery-Weir  8:19  
Yeah, it works. It does. We wrote down everything we thought it should do and then we did all that. So yeah. But check it out. I don't know, github.com/futureproofgames.

Melissa Avery-Weir  8:29  
/django-presskit. There'll be a link in the show notes.

Gregory Avery-Weir  8:32  
But yeah, that's out. And it's--

Melissa Avery-Weir  8:34  
It's exciting. 

Gregory Avery-Weir  8:35  
It's always nice to have a project released. So in terms of things that aren't exciting, you worked on an inevitability recently.

Melissa Avery-Weir  8:42  
I did! I worked on taxes. So it's weird to like, talk about this on the podcast, because, like, who cares? But I'm not, I don't know, it struck me as something that may be a little bit of a novelty for people who either do development just under their own name like as sole proprietors or as people who, like, have no idea how business taxes work. 

Gregory Avery-Weir  9:05  
Yeah, like me.

Melissa Avery-Weir  9:07  
Like you, because I do our taxes. Well, I don't do our taxes. So anyway, so here's what the process looks like.

I do bookkeeping anywhere from once a week, once a month. And that's like, noting that we got money from Steam or money from itch. And this is how many sales it was, and like, like balancing a checkbook.

And then I, you know, like I do that kind of like, low level bookkeeping. And then at the end of every year, I need to close out the books. And so this usually theoretically happens in January, unless there are problems. And at that point, I actually kind of lock down the numbers. I put a password on it.

Gregory Avery-Weir  9:44  
The password isn't there to keep it safe from like, someone illicit getting in, right? It's, it's so that you can't accidentally mess it up. You have to go look up a thing in order to actually make a change. 

Melissa Avery-Weir  9:55  
Exactly. So that's, I've, I take that safety net for myself. So once the books are closed, I pull a few different kinds of reports--I pull a lot of different kinds of reports. So I ship them over to the accountant and, and she asks like, "Did you get any new assets?" So like if we buy computer parts, or if we buy a new computer or a new microphone or anything like that. 

Anyway, so we chit chat through this stuff, which is just a few emails back and forth. We really have simple stuff like we don't have inventory.

Gregory Avery-Weir  10:22  
I get the impression that our accountant usually works with much, much, much more complicated companies.

Melissa Avery-Weir  10:27  
For sure.

And then she ships us back a bunch of PDFs and it's state filings and federal filings. Most of it's filed electronically the way an individual would, but there are a couple of forms that, like, I have to sign and send back to her to verify that it's fine for her to submit them and that I did review the numbers. And so it's a meticulous process because when I get the thing back she's so fast. Because like--

Gregory Avery-Weir  10:57  
It literally takes her an hour.

Melissa Avery-Weir  10:59  
Yeah, yeah.

I go through and check all the numbers and I often manage to confuse myself in this process, because she will pull a number from a place that I'm like "Why did she is this number that I consider kind of an intermediate number like not the final number?" And so I work through things and every year so I'll come back with a question that's like you know, "Should we have depreciated this? Or was this really the profit on this?" And she's, she's always quick and not always clear on her answers, but.

Gregory Avery-Weir  11:31  
There's a challenge anytime you're talking to a relative lay person about your own technical field.

Melissa Avery-Weir  11:38  
Exactly. And so... and then it's done. And this is actually probably the most efficient year, in the sense of like it's later than one would prefer. Like I probably finished, I think finished assigning everything on March 13 and to do on March 15.

Gregory Avery-Weir  11:53  
Because it's a the business tax instead of personal tax.

Melissa Avery-Weir  11:55  
Right, so it's due a month early. But in terms of like time spent, there was like one big accounting effort on my part that was a handful of hours and then a few emails over a couple days with her, and it was all done. So that's great. That's, that's on account will be doing better with bookkeeping in the last year or so. So, taxes! I said I'd be quick... I explained everything.

Gregory Avery-Weir  11:56  
Excellent.

So the other thing that we've been doing that has me a little excited is we've been working on Headless Swarm again actively. So we've got one story in the backlog, "burn burn burn" that should be released once we finish this next story. This upcoming story... I don't... Do, do you know what it's called?

Melissa Avery-Weir  12:45  
I do not! I haven't looked at this one at all yet.

Gregory Avery-Weir  12:45  
Okay. So.

So all of our stories--"jobs" is what we call them, the quests, you know, that that sort of thing. They tend to be pretty high concept. So they'll be like, "hey, this one is a hacking job that takes place at X. Or this is a hacking job where you do this cool thing." So this one is you hacking an airport.

Melissa Avery-Weir  13:06  
That's right. 

Gregory Avery-Weir  13:07  
And the job is called "Remote Terminal."

Melissa Avery-Weir  13:09  
Yasss!

And it is the Charlotte--?

Gregory Avery-Weir  13:13  
It is the Charlotte Douglas airport.

Melissa Avery-Weir  13:15  
Which is where we live. Well, we don't live in the airport.

Gregory Avery-Weir  13:17  
Yeah, but we live in Charlotte. And this one's especially interesting because to me, because Exploit Zero Day is a sequel to a Flash game that I made years ago. And the one of the main characters of EZD named sk3tch is from Charlotte. And it--during the events of Exploit, had some minor issues with international cyberterrorism. And she is the, the job contact for this, for this job. And so much of her communication includes, like, "Pleeease, please don't get me in trouble for international cyber terrorism again, please."

But I enjoy the process of being like, what's this cool cyber thing we can do? 

Melissa Avery-Weir  14:09  
Yeah.

Gregory Avery-Weir  14:10  
It's not, I mean... I think that Exploit is pulpier than a lot of the stuff we work on and produce. It's like, it's, it's inspired by things like Hackers. 

Melissa Avery-Weir  14:22  
Yeah. 

Gregory Avery-Weir  14:22  
Like, it's, it's, I think we explore some heavy hitting issues. Like we explore police brutality and, and the military industrial complex and in the blurring line between consumer electronics and military work. But we do in a way that's, like, "Break into this facility! Steal this piece of software!" 

Melissa Avery-Weir  14:46  
Right. You know, a little more "Leverage," or, "Italian Job."

Gregory Avery-Weir  14:50  
Yeah. And the characters are all little more overblown and they might be in a different sort of story. But it's fun to like, "burn burn burn" is KernelPop, you know, trying to avoid detection at a cyber warfare conference. 

Melissa Avery-Weir  15:09  
Excellent. 

Gregory Avery-Weir  15:10  
And this one is hacking an airport, and yeah we're getting close to finishing out the season. 

Melissa Avery-Weir  15:19  
Yeah, so there's we know that there's... It's a little difficult to count, I think maybe 10 jobs we've got a couple little side things. But nine primary jobs. So yeah, this is six of nine. When six is done, we'll release five and keep moving on seven. Kind of like keep one in the pipeline and that, that also lets us adjust. Like, if someone's like, oops continuity error. Especially since it's been a while since we have--

Gregory Avery-Weir  15:50  
Yeah. So and, and if someone comes in and plays Headless Swarm after everything is done, these two jobs are actually simultaneous.

Melissa Avery-Weir  15:57  
Right.

Gregory Avery-Weir  15:58  
So, so you'll--these two jobs both unlock at the same time. Kind of looking at two different characters in the Zero Day organization. Dealing with some fallout from stuff you did earlier in the story.

Melissa Avery-Weir  16:13  
So yeah. That's exciting. I'm ready... It's not that I want to put Headless Swarm behind us, but I am ready to see it as a finished product. I'm ready to release it, you know?

Gregory Avery-Weir  16:22  
And and like I... the folks who have been troopers for not--you know, you know accepting our delays and and not, not giving us a hard time about it, is. I want to make sure they get what they paid for. 

Melissa Avery-Weir  16:36  
Yeah, yep. 

Gregory Avery-Weir  16:37  
So yeah, that's about it for this month. 

Melissa Avery-Weir  16:39  
Yeah. 

Gregory Avery-Weir  16:40  
If you want to see everything we're up to we blog and put up stuff at futureproofgames. com. We're over on twitter at PlayFutureProof and you can find us on Facebook if you search for us. Hit us up with questions or comments over on futureproofgames.com on our blog or on social media. Our theme music is "Juparo" by Broke for Free, which is available under a Creative Commons Attribution 3.0 license.