Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book


Transcript #166: Misunderstanding software clocks and time

Return to episode page view on github
Recorded on Wednesday, Jan 22, 2020.

00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.

00:04 This is episode 166, recorded January 22nd, 2020.

00:10 I'm Brian Okken.

00:11 And I'm Michael Kennedy.

00:12 And this episode is brought to you by DigitalOcean.

00:14 We'll talk about them more later.

00:16 But do you want to get into quantum stuff or what do you got for us first?

00:20 Yeah, how about that?

00:21 Like, there were many crazy ideas in programming, right?

00:25 Like infrastructure as code or, you know, infrastructure as a service and all the cloud computing things.

00:31 And, you know, there's this really cool quote from William Gibson, the science fiction writer, is that the future is here.

00:38 It's just not evenly distributed, which is pretty cool.

00:41 And I think this thing I'm about to talk about is a little bit about making that way more even.

00:47 So, Amazon, AWS, you know, the bookstore is announcing a quantum computing as a service.

00:55 Okay, we were expecting this to happen.

00:57 Yeah, we were.

00:58 Well, the thing is the quantum computers are so early stage.

01:03 They're so specialized.

01:04 They look more like science projects than they do any sort of computer.

01:09 They're not in square boxes.

01:10 They're usually, like, dangling from the ceiling with, like, all sorts of wires shooting out of them.

01:14 Like, you know, you can't go get a quantum computer.

01:17 But there are quantum computers that can do limited amounts of computing.

01:22 And so, learning to program them is something that might be a good idea, right?

01:28 Like, I have no idea what programming a quantum computer is going to feel like because it's just the conceptions.

01:34 I just haven't formed it fully in my mind.

01:37 Do you have a good sense of what this is going to be like?

01:39 No.

01:39 Well.

01:39 I think we're at the punch card stage still.

01:41 Yeah, yeah, exactly.

01:43 So, this new service called Amazon Bracket from AWS is a fully managed service that allows scientists, researchers, and developers,

01:51 and people just interested in quantum computing to begin experimenting with computers from multiple quantum hardware providers in a single place.

01:59 So, there's a handful of people creating these quantum computers, and they have different capabilities and whatnot.

02:06 So, you can actually select more than one provider for your quantum computer.

02:12 So, we all know about bits, right?

02:15 Bits are 0 and 1, on and off, that sort of thing.

02:17 That's the conception in my mind that it's pretty easy for things to work.

02:21 But quantum computers use a more sophisticated representation known as a qubit or a quantum bit.

02:27 And each qubit exists in a state of 1 or 0.

02:31 But because of its quantum nature, it also, in superpositions of 1 or 0, which means it can simultaneously occupy both states.

02:40 So, it's basically a two-dimensional vector of complex numbers of all these different states, which means it has way more data representation and computing power than just 0 or 1.

02:51 You know, it has, like, near infinite.

02:53 So, this service is built to give people some, basically, hands-on experience programming.

03:00 So, I linked to the Verge article talking about this.

03:02 I also linked to the direct announcement.

03:05 Now, Brian, do you see that code section down there, that little example?

03:09 Yes.

03:10 I have no idea what it's going to print.

03:12 I have no idea what it's going to print either.

03:13 But if not caring what the computational output is, what does that remind you of?

03:19 Python.

03:20 It definitely looks like Python.

03:21 And in the announcement, you can say, in here, you can use a notebook to explore writing in this bracket service, bracket language.

03:29 And, yeah, so I don't know if this is literally Python or is just very, very much like Python.

03:34 But if you're a Python developer, you know, you can get into this pretty easy, easily, I would suspect.

03:39 Yeah, it definitely looks like it's a notebook or something.

03:42 Yeah, so if you want to know how quantum computers work, if you want to play with programming them, you know, check this Amazon bracket thing out.

03:50 I've not checked the pricing.

03:52 It seems like it might not be that cheap.

03:54 But, yeah, it still looks pretty interesting.

03:56 Well, I think they're really trying to make it available to people that, in a researcher-student situation, so it's probably not terrible.

04:03 But I don't know.

04:04 Yeah, yeah.

04:05 Who knows?

04:06 But it's definitely interesting.

04:07 And people who are interested can now go and just fire up a quantum computer in the cloud and, through a Jupyter notebook, play with it, which is pretty awesome.

04:15 Yeah.

04:16 So let's go from quantum to virtual.

04:19 Yes, let's do it.

04:22 Do it.

04:22 Take a step.

04:23 Okay.

04:23 I couldn't resist.

04:24 But, you know, not really that cool.

04:27 But anyway, virtual environments.

04:29 Right.

04:29 With Python.

04:30 I know that both of us use virtual environments.

04:32 All the time.

04:33 I still have coworkers that don't.

04:35 And I know that some people still, I don't know.

04:38 There's a lot of old guides and tutorials on how to use virtual environments.

04:42 And I really didn't know I needed this.

04:44 But Brett Cannon wrote a quick and dirty guide on how to install packages for Python.

04:49 And it is mostly just basically walking people on how to use virtual environments.

04:54 I, of course, already know how to do that.

04:56 But I think it's good to have something like this available to throw to people that aren't using them yet because it's pretty short and simple.

05:03 One of the things I love about the article is it uses the --prompt flag for creating a virtual environment, which will make it so that your prompt variable or your prompt isn't just V and V.

05:14 It's something useful for you to see it.

05:17 Yeah, that is super cool.

05:18 I love that recommendation about the --prompt.

05:22 And in the article, Brett shows you how to have it take the current working directory as a default, right?

05:30 So it'll automatically grab that for you, which is cool.

05:33 I've got a little bash snippet that I use that essentially does that in my environment.

05:38 He hints at that in Python 3.9, there's going to be an improvement that instead of having some code that looks up your current directory name,

05:49 that you can just pass in a dot for the prompt and it will just name it that, which I'm looking forward to that.

05:56 That's cool.

05:57 Yeah, that's really cool.

05:58 Maybe I just want to start running 3.9 beta just for that.

06:01 Maybe.

06:03 Have you started playing with 3.9 yet?

06:05 No, I haven't.

06:06 Oh, okay.

06:06 I'm still actually, I'm still trying to decide what version I want to use because traditionally use Homebrew and something went wrong with Homebrew for Python 3.8.

06:15 So if you try to install Python 3.7 from Homebrew, you still get 3.7, which is frustrating, but I haven't decided that I'm wanting to break away from that just yet.

06:27 But it's starting to get to the point where maybe I'll just go to 3.9.

06:30 I don't know.

06:31 I just still use the installers from the Python.org site.

06:35 Yeah, I'm going to be back there too.

06:36 But yeah, this is cool and it's nice to have this.

06:39 This is real clear and concise.

06:40 And yeah, thanks, Brett.

06:43 So do you know what else is cool?

06:45 DigitalOcean is pretty cool.

06:46 DigitalOcean is awesome.

06:47 Yeah.

06:47 So DigitalOcean is sponsoring this episode.

06:50 They have awesome infrastructure and an awesome product and we use them for our services.

06:55 Do you have a memory intensive workload?

06:58 Something like high performance SQL or NoSQL databases?

07:01 In-memory caches like Redis or Indexes?

07:05 Some kind of large data analysis runtime?

07:08 Well, if so, you need DigitalOcean's new memory optimized droplets, or at least you should check

07:13 them out.

07:13 So check them out by going to pythonbytes.fm/DigitalOcean and get $100 credit.

07:19 And that's back.

07:20 We used to be lower, but now it's $100.

07:22 Yay.

07:22 Yay.

07:23 Well done, DigitalOcean.

07:24 Thanks for supporting the show.

07:25 Sometimes the best thing you can do, Brian, is just say no.

07:29 All right?

07:30 It's easy to say yes to everything, but when you say yes to something, you're actually saying

07:33 no to something else.

07:35 Yeah, I've heard that.

07:35 That's kind of like the whole pointing a finger and you three point back at you and stuff like

07:40 that.

07:40 Yeah, exactly.

07:41 So this next thing I want to talk about is something that made the rounds the last couple of weeks.

07:45 And it's pretty interesting.

07:46 It's an article that sort of lays out a case against the no code movement.

07:51 And it's entitled, Say No to the No Code Movement by Alex Hudson.

07:55 And it's funny.

07:57 I don't know.

07:57 I might be showing my age, my gray bits in my beard or whatever, my goatee.

08:03 But he starts off by talking about 2020 is going to be the year of no code movement where

08:08 you can write business logic and entire applications without having to train the training of a software

08:14 developer.

08:14 I feel like I've heard that before, last century even.

08:17 How about you?

08:18 Well, yeah.

08:19 Are we talking like round trip stuff like UML round trip things?

08:23 Yeah, I was thinking of like Vizio and some of these other sort of business intelligence,

08:28 draggy droppy things that were going to, you know, quickly replace us as software developers.

08:34 And we're just going to be out of a job.

08:35 So you probably shouldn't study that because either outsourcing or there's no code stuff

08:39 is going to like crush our jobs.

08:41 I don't know.

08:42 I feel like software has been pretty good over the last 20 years.

08:44 Yeah, that's weird.

08:47 So yeah.

08:48 So the reason I'm bothering to cover this though is I do think it's interesting that this is

08:54 something of a trend.

08:55 And I think that Alex does a pretty good job of laying out what some of the issues are.

09:01 So it's easy to get sucked into wanting this, but it's also good to maybe know where like,

09:06 hey, this might make sense to try this, this no code idea.

09:10 So examples include like Salesforce, right?

09:14 With Salesforce, you can sort of wire stuff together to make things happen.

09:17 Other examples were Zapier were doing things.

09:20 Yeah.

09:20 Maybe if this, then that.

09:21 Yeah.

09:22 If this, then that.

09:23 I feel like Zapier actually, you know, Alex gave it a pretty good vote.

09:27 And I agree as well because it's not so much about trying to write software with Zapier.

09:32 It's about trying to just do integration.

09:34 I feel like no code integration isn't terrible if something awesome like Zapier can do it.

09:40 But basically the idea is like, look, there's people want to transform business processes

09:46 into the software domain.

09:47 And they might want to do that because change control of like, how do you change your business

09:52 and understand how it works is now a software problem.

09:54 It's easier to innovate on what makes the business distinct because now it's clear.

09:59 You're like, these are the things we do.

10:01 Everyone does this, but this, this is our special sauce right here.

10:04 And there's a cool quote from Satya Nadella that says, every company is a software company

10:09 these days.

10:10 And so there's a lot of pressure to take maybe traditional companies and organizations that don't have a software team or they have a very small software team that's too busy just keeping the lights on to help everyone else with their little issues.

10:23 There's this temptation to say, okay, well, what is our no code story?

10:27 Like how do we get some systems that just like let people write code?

10:30 You know, Excel sort of played that role to a large degree.

10:34 So the article's good for like laying out some of the issues.

10:38 Starts out, well, the first assumption is that writing text, like writing business logic in text forms is something that everybody hates, right?

10:46 Outside of the software development community, right?

10:48 Like if I'm an accountant, I don't want to write text logic because, well, you have to be accurate and things like that, right?

10:57 And if you had boxes, you can drag them together.

10:59 That might be better.

11:00 So it talks about how, you know, there's, it's a simpler abstraction that's really easy to work with.

11:07 Or it's simpler syntax.

11:09 And in both of those cases, you really run into the problem of, well, you can do the simple little thing first.

11:16 Like think of a visual, like a flow chart, right?

11:19 Like if you could just run a flow chart.

11:21 Well, for a really simple problem, that's fine.

11:24 But if you try to solve a real problem, you have a flow chart with like a thousand boxes and lines going everywhere.

11:29 That's not going to help you.

11:31 Another one, another example of the issues you run into is that many of the no code advocates

11:37 are building significant systems by pulling together off the shelf apps and integrating them.

11:41 This is kind of like Zapier.

11:42 But, you know, Zapier, I think, use right is still good.

11:46 But the problem is all the logic becomes implemented as a configuration of all these external systems.

11:51 And you're limited by what they can do and what they can accept and so on.

11:55 So, yeah.

11:56 He said, look, if there was a better way to create software than writing text, most of us would just drop it like a hot rock.

12:02 And we'd be like, yeah, okay, what's next?

12:04 Let's do that.

12:04 All right.

12:05 It would be great.

12:05 It's not that we love typing so much.

12:08 Yeah.

12:08 So, I guess, in conclusion, it's like, where does the no code stuff fail in practice?

12:13 Well, you get like 80% of the way there.

12:15 And then you're like, well, all these edge cases make this so complicated.

12:19 Or you end up with all the little edge cases and details that is like this little graphical whatever is so complicated that it's worse than text.

12:26 You know, things like that.

12:28 But where it might be useful is for a little proof of concept demonstrations and things like that.

12:33 Like, hey, here's the happy path of the main thing we want to do.

12:37 I threw this together with something like Salesforce or some other BI tool or something.

12:42 And look what we got.

12:43 Right.

12:43 Then you could go rewrite that with Python and Matplotlib or, you know, whatever it is you're trying to solve.

12:49 So, I thought this was an interesting take on the whole no code movement.

12:53 And I also thought it was interesting that, like, this is going to be the year of no code when I remember hearing that in the 90s.

13:00 Yeah.

13:00 Actually, my first job at HP was using a visual language for measuring systems.

13:07 And it was, I think we should look at some of the failures of the 90s.

13:12 Because what happened is what's going to happen again.

13:16 Like you said, you have systems that go 80% of the way.

13:19 But the corner cases make it so that you still have to be an expert at this tool to do it.

13:25 So, you still hire programmers.

13:26 But they only are gaining experience with this one tool that they don't even really like.

13:31 And they can't transfer to any other job.

13:33 And that's terrible.

13:35 It's not good.

13:36 Plus, visual stuff is sort of really fun when you get started.

13:39 But you quickly need a wrist brace.

13:42 Working on the mouse all day long is really actually fatiguing to your hands.

13:47 That's a good point.

13:48 I hadn't even thought about that.

13:50 But, oh, yeah.

13:51 For sure.

13:51 It was a program called VEE.

13:53 And I don't think it's even in place anymore.

13:55 It was a visual thing.

13:57 And we used to joke that if you buy the box set, it comes with a wrist brace.

14:01 Yeah, that's not good.

14:03 You know, this next item that you got coming up here, I checked this out.

14:08 And this is some deep stuff here.

14:10 Tell us about it.

14:11 So this isn't really a topic that we normally kind of cover.

14:14 But it's also something that I was pleased and surprised to see come up with at North Bay Python.

14:19 I'm going to highlight Shaw.

14:21 And his full name is Shadeed Wallace-Stepter, I think.

14:25 But he says he goes by Shaw.

14:26 He spoke at North Bay Python.

14:29 And we're linking to an article that is his article but also includes a link to the video of the presentation at North Bay Python.

14:37 And it's called What I Learned Going from Prison to Python.

14:42 And it is Python related.

14:44 But the Python take comes in the end, like the last few minutes.

14:48 It is a 40-minute video.

14:50 But you can even just listen to it because there's no visuals.

14:53 I'm not going to really summarize it too much other than this is an amazing story.

14:58 And people need to listen to it.

15:01 He's talking about how he went from a generational poverty situation to a crime as a teen.

15:09 It's interesting that he talks about one of the reasons why he started doing some crimes.

15:15 It wasn't because he needed to.

15:17 It was because he had zero control over the rest of his life.

15:20 And it made him, it was something that he felt had control over.

15:24 And then that gets him to the point where his best friend, like, dies on his shoulder by being shot.

15:29 And then he ends up in prison and spends 19 years there, 19 years of a 27-year sentence.

15:37 But this fight that he had to do to just to fight against the entire system, trying to keep him in poverty or keep him in prison.

15:45 It is an incredible story for him.

15:48 But I think it also talks about how, regardless of your politics, poverty and the prison system in our country is broken and we need to fix it.

15:56 So that's why I wanted to highlight it.

15:58 Yeah.

15:58 The thing that touched me from this was, I think for the first time, maybe ever, I understood why people would go down some of these paths.

16:09 Because, you know, people make some of these decisions and they're just so clearly a bad idea.

16:14 You know what I mean?

16:15 I'm thinking of, like, drug addicts for hard, hard drugs like heroin or meth.

16:22 Or, you know, people who are burglarizing houses and robbing, play armed robbery and stuff.

16:28 And just think, man, there's got to be a better way.

16:31 But listening to his story, I really understood it.

16:34 And, you know, I didn't get all the way to the end.

16:37 So it's awesome that Python, it sounds like, helped him move beyond that.

16:42 But do you have the last bit of the story?

16:44 Or are you going to give away too much?

16:45 So, no, I don't think it'll give it away.

16:47 I think he ends in a very positive note on talking about the open source community.

16:50 He eventually gets into, he goes from studying law to studying entrepreneurship to meeting Jessica.

16:58 I'm going to get her last name wrong.

17:00 Forgot it.

17:01 Jessica McKellar.

17:01 Yeah, McKellar.

17:02 Yeah.

17:02 Sounds right.

17:03 Although he said he met her in a journalism setting, but she was, like, not very good at journalism or wasn't a journalist or something like that.

17:11 But anyway, she's a great person.

17:12 But one of the things that people face when they come out of a prison system, especially if they came in in a poverty situation, is they've got no skills and no job history or things like that.

17:24 Or they may have no skills.

17:26 And even if they do have skills, who's going to hire them?

17:29 But the open source community is just a everybody's welcome.

17:34 And coding, there's more situations in coding where I don't know either you can do the job.

17:41 And that equality of background of just, it's just about whether you can get stuff done.

17:48 It isn't just about that.

17:50 We also, you have to be able to communicate and all things like that.

17:53 But we don't really care as much about your college pedigree or anything.

17:58 It's either you're a great coder or you're not.

18:00 And that's a cool story.

18:02 And his, even equates the open, he was shocked by the open source community of just working on stuff and giving it away.

18:09 Yeah.

18:09 But apparently there was a program at San Quentin that O'Reilly gave a bunch of laptops there so that people could watch some of the O'Reilly training videos there.

18:19 And that's how he learned Python.

18:21 So that's cool.

18:22 Man, super cool.

18:23 Yeah, I loved his story and it was really different.

18:26 So I'm happy he shared it and happy you covered it.

18:30 Yeah.

18:30 Speaking of covering things, have we covered GUIs?

18:32 I don't think so.

18:33 We should probably cover GUIs.

18:34 We probably should.

18:35 But, you know, what I really like about our listeners and our audience is they really help round us out.

18:42 You know what I mean, Brian?

18:43 Yeah.

18:43 Man, like I'll bring up one thing.

18:45 I'm like, oh, I heard of this one thing.

18:47 Can you guys believe this is a thing?

18:48 And they're like, and here, you know, here's the seven others and here are the trade-offs.

18:52 Did you know about this?

18:53 Yeah, and I can't believe you haven't covered this already.

18:55 Yeah, exactly.

18:56 So I've already got a bunch of stuff on Q that has that sort of take to it.

19:02 But here's one called QUIC, a QT5-based GUI generator for CLIC.

19:09 So CLIC is an argpars-based command line interface tool or framework, I guess, where you can put decorators onto different functions and say,

19:20 these are some of the arguments, these are required, these are not required, these are the types, and so on.

19:25 And it lets you write command line interfaces.

19:27 And so QUIC will take those and naturally understand the message given to CLIC or argparse and then create a GUI out of it.

19:39 No way!

19:40 Yeah, that's pretty cool, right?

19:41 So you don't hardly have to do anything other than throw like a QUIC.run and give it a function or something to that effect, and off it goes.

19:49 Oh, that is cool.

19:50 Yeah, I'm totally going to try this out.

19:52 Yeah, it's not super popular.

19:54 It's got, you know, like 62 stars and four contributors.

19:58 It was changed this month, so that's cool.

20:00 But just the example.

20:02 So it's a little bit old, but I think it's an interesting take and an interesting idea.

20:06 And if it's going to work for people, they can definitely check it out and contribute to it, so on.

20:11 So, yeah, I think this is a nice one.

20:13 It's based or inspired, not based on, inspired by GUI, G-O-O-E-Y, which is also really, really nice.

20:20 But you have to be a little bit more explicit on how it presents the UI for GUI.

20:26 You've got to say, here's a, I want a calendar widget for this thing or whatever.

20:30 But yeah, anyway, it'll even let you still run your standard click-based CLI app the same.

20:36 But then if you throw in a --GUI, it'll turn it into a GUI, even if you just want to change the command line arguments, which is, yeah, it looks pretty nice.

20:43 Yeah, a GUI, it's an interesting function call.

20:47 Yeah, exactly.

20:48 Yeah, so thank you, Ricky Tici, for sending this along and recommending it.

20:53 It's a good one.

20:53 Yeah, thanks.

20:54 Okay, we're not to jokes yet, but I have kind of a funny one coming up.

20:58 So it's interesting.

21:00 So there's a couple articles, I think it's in a series, falsehoods programmers believe about time.

21:07 And wait, what is the title of the blog?

21:11 Infinite Undo.

21:13 Oh, really?

21:15 Yeah, yeah.

21:16 It's all like, it all fits together.

21:17 I love it.

21:18 Sorry, keep going.

21:18 Then there's a second follow on one.

21:20 Must be a VI person.

21:21 More falsehood programmers believe about time.

21:23 Wisdom from the crowd edition.

21:25 So I'm sorry, I can't find your name on the blog, but wrote this article about falsehoods.

21:31 The interesting thing is very few of them have links to tell you why they're false.

21:35 But these are all assumptions that are wrong.

21:38 I mean, it starts with, there's always 24 hours in a day.

21:42 And, you know, there are things that we just sort of know are kind of wrong sometimes.

21:46 Like when we change the time, it's different.

21:48 Months have either 30 or 31.

21:50 A week begins and ends on the same month.

21:54 And I think these are, he's coming from the standpoint that he's debugged and tested code

21:59 that had these weird assumptions in them that broke.

22:01 And then it gets into some stuff that I, I'm going to highlight just a handful, but there's

22:05 a whole bunch.

22:05 A system clock will always be set to the correct local time.

22:09 And if that's not true, well, it'll be set to a time that's not wildly different from the

22:13 correct local time.

22:14 And if that's not true, well, at least it will be, always have a consistent offset in the number

22:19 of seconds.

22:19 And yeah, no, that's not true either.

22:22 I've been bit by this where we had systems under test be not even on the same day.

22:27 It has the following other one.

22:29 Let's see.

22:30 The day before Saturday is always Friday.

22:32 I had to look this one up because I'm like, isn't it?

22:36 Isn't Friday always before Saturday?

22:38 All right.

22:38 What's the deal there?

22:40 Samoa decided to change which part of their, the international time zone they were on so

22:46 that they were the same day as Australia.

22:49 And that gap swapped it like it swapped on Saturday, but it happened in the middle of the week or

22:54 something like that?

22:54 Yeah.

22:55 It happened like Thursday night and then the next second it was Saturday morning.

23:01 So they skipped Friday once.

23:03 That's some serious daylight savings action going on there.

23:05 Okay.

23:05 And then the number 81, the last one on the second one is, I think it's just thrown in as a joke.

23:10 I hope the software will never run on a spaceship that is orbiting a black hole.

23:14 Do we have spaceships that orbit black holes?

23:18 Not yet.

23:19 Yeah.

23:19 Not yet.

23:20 But you're going to have legacy code.

23:21 You're going to have the black hole bug that you got to go back and fix.

23:24 Yeah.

23:25 And then one I didn't highlight was that there's not an end to time.

23:28 Didn't put a link in for this, but did you know that like the end, if you have a 32-bit

23:33 time counter, it's probably going to break in 2038 or something like that?

23:37 Oh, wow.

23:38 Think of all the consulting opportunities.

23:40 I know.

23:40 It's like Y2K all over again.

23:42 Exactly.

23:42 Exactly.

23:44 Yeah.

23:44 That's interesting.

23:45 I mean, real time, obviously, we think doesn't stop and probably won't stop for us.

23:50 But yeah, computer time.

23:51 Computer time is a whole different deal.

23:53 Yeah.

23:53 Yeah.

23:54 This is really interesting.

23:55 And yeah, like you highlighted a few of the 81 and then that doesn't even touch on the

24:00 more falsehoods.

24:00 Pretty cool.

24:01 Yeah.

24:01 Yeah.

24:02 I get a little nervous every time I get anywhere near a time zone.

24:05 So with code.

24:07 Yeah.

24:08 I always use a time zone package or a time package to deal with that for me because I know I'm

24:13 going to get it wrong.

24:14 Yeah.

24:14 Absolutely.

24:14 So I must have forgotten because I feel like last time we, a couple of weeks

24:20 ago, we did cover Remy, which is a GUI framework.

24:22 Yeah.

24:23 Right.

24:24 And so Remy.

24:25 Yeah.

24:25 I remember that.

24:25 You brought that up.

24:26 Remy's cool.

24:27 And it lets you write Python code that then gets turned into something that has an HTML

24:34 representation.

24:35 But then you can hook events from HTML back into your Python code.

24:39 Right.

24:39 It's kind of like Electron JS, but swap out the JS for Python.

24:43 Right.

24:43 Yeah.

24:43 Well, we got a message from the creator, David.

24:47 And he said, hey, thanks so much for covering that.

24:49 You threw out that like, hey, it would be awesome if this wasn't had an editor or something

24:54 like that.

24:55 So yeah.

24:56 If you just look at slash editor in the repo.

24:59 Yeah.

24:59 There's a drag and drop WYSIWYG editor for this UI.

25:03 That's so cool.

25:04 I haven't tried it yet, but it's neat.

25:05 Yeah.

25:05 It looks really cool.

25:06 It's like pretty, pretty much like what you would expect.

25:10 You've got all the widgets you can drag and drop in there and size them and set their

25:14 colors and set all their CSS properties.

25:17 And then also wire up button clicks to existing functions or JavaScript events to existing

25:23 functions, things like that.

25:24 You can totally waste an entire afternoon and look like you're working.

25:27 Yeah, exactly.

25:27 Yeah.

25:28 Here's some of the no code stuff that is good.

25:30 So it's got a little, a little walkthrough example of creating, you know, like a hello

25:35 world button clicker type of GUI app.

25:37 But yeah, it's actually looks pretty killer.

25:40 I don't want to diss people that like actually work in the world of creating really good user

25:45 interfaces that, you know, and that's needed and I applaud them.

25:49 But there's a lot of us nerds that just need some kind of GUI that just sort of works and

25:54 that's good enough.

25:55 Yeah.

25:55 All right, Brian, I've queued up a joke, a visual joke that we'll have to describe through here.

26:03 And because this is about testing, I'm going to let you take it.

26:07 It's really simple, but it's quite funny.

26:09 I actually peeked at this before we're going to link to a Twitter post that somebody did of

26:14 this little video says two unit tests, zero integration tests.

26:18 And I guess I got to say, I'm a huge fan of these like unit test pass integration test

26:24 fail things.

26:25 So send them my way if you find them.

26:27 This one's hilarious.

26:28 Yeah.

26:29 So let me describe a little bit.

26:30 I'll set the stage.

26:31 There's a one of these like super powerful hand dryers and there's a trash can and it's

26:36 not like a trash bin that you move around.

26:38 It's like a fix to the wall, right?

26:40 Yeah.

26:41 Okay, go ahead.

26:41 And then right next to it's a place where you can grab, you know, napkins or your paper

26:47 towels also to dry your hands.

26:48 But they put like a one of those, the hand dryers that blows down and it turns on with motion.

26:55 And as soon as you throw away a paper towel, the dryer blows all the paper towels out of

27:00 the garbage.

27:01 It's super strong.

27:03 Not just the one you tried to put in the garbage, but every paper towel that was previously in

27:06 the garbage is now blasted around.

27:09 Yeah.

27:10 Yeah.

27:10 Two unit tests, zero integration tests.

27:13 Yeah.

27:13 The creative people that like got the garbage liner to stay in there in the first place.

27:17 So anyway, it's hilarious.

27:19 Yeah.

27:20 I got a little rub, a little syrup or something sticky on there to keep that big in place.

27:23 Yeah.

27:24 That's pretty funny.

27:25 This reminds me of a, I was at a company where we switched from actual plants around the office

27:31 to plastic plants, but nobody canceled the watering service.

27:35 And so the watering service just kept going around and watering all the plastic plants

27:39 once a month or once a week or whenever they did that.

27:43 So anyway.

27:44 Yeah.

27:45 That probably didn't turn out well after they filled up.

27:47 I don't know.

27:50 That's awesome.

27:50 It's just weird.

27:51 All right.

27:51 Well, thanks.

27:52 Thanks, Michael.

27:53 You bet.

27:53 Thanks for being here.

27:54 It's always, it's fun.

27:55 Bye everyone.

27:56 Bye.

27:56 Thank you for listening to Python Bytes.

27:58 Follow the show on Twitter at Python Bytes.

28:00 That's Python Bytes as in B-Y-T-E-S.

28:04 And get the full show notes at pythonbytes.fm.

28:06 If you have a news item you want featured, just visit pythonbytes.fm and send it our way.

28:11 We're always on the lookout for sharing something cool.

28:13 This is Brian Okken.

28:15 And on behalf of myself and Michael Kennedy, thank you for listening and sharing this podcast

28:19 with your friends and colleagues.

Back to show page