We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

EuroPython 2021 - Lightning Talks 07/30

00:00

Formal Metadata

Title
EuroPython 2021 - Lightning Talks 07/30
Title of Series
Number of Parts
115
Author
Contributors
Et al.
License
CC Attribution - NonCommercial - ShareAlike 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Lightning Talk 3
19
Thumbnail
43:26
Streaming mediaComputer virusWeb browserModule (mathematics)InformationTime zoneSoftware testingRaw image formatUnit testingSoftwareFunction (mathematics)String (computer science)Order (biology)DataflowLine (geometry)Task (computing)RoutingMultiplication signNavigationCommutatorSocial classTrailComputer filePhysical systemPolygonTimestampLaptopComputer programmingType theoryPoint (geometry)Table (information)SequenceGoodness of fitExecution unitPercolation theoryProjective planeLibrary (computing)Different (Kate Ryan album)Moment (mathematics)Matrix (mathematics)Keyboard shortcutBit rateStructural loadRandomizationWindowBitGradient descentSuite (music)Radical (chemistry)FlagMathematicsData structureCASE <Informatik>Film editingImplementationSoftware repositoryControl flowMessage passingOpen sourceBlock (periodic table)Video gameRevision controlReal numberFile formatArithmetic meanDiscrete element methodCycle (graph theory)Right angleLoop (music)Single-precision floating-point formatImage resolutionTouchscreenNumberInheritance (object-oriented programming)Perturbation theorySelf-organizationDegree (graph theory)Fraction (mathematics)Point cloudFunctional (mathematics)Slide ruleSystem callResultant2 (number)Standard deviationDampingScripting languageUniform resource locatorWage labourMereologyBookmark (World Wide Web)PressureFree variables and bound variablesHidden Markov modelPairwise comparisonCodeEvent horizonLink (knot theory)Interrupt <Informatik>Direction (geometry)1 (number)Server (computing)WikiMusical ensembleComputer clusterSpring (hydrology)Maxima and minimaPosition operatorTwitterRule of inferenceDiscounts and allowancesService (economics)Metropolitan area networkWordGroup actionInteractive televisionTerm (mathematics)Graph coloringNeuroinformatikDean numberRodrigues' rotation formulaField (computer science)AreaPhysical lawSystem identificationView (database)Fitness functionObject (grammar)Shape (magazine)MeasurementComputer reservations systemOverlay-NetzHydraulic jumpStatement (computer science)Presentation of a groupMeeting/Interview
RandomizationMultiplication signMereologyComputer virusFlagMeeting/Interview
Order (biology)Real numberLecture/ConferenceMeeting/Interview
Software developerNormed vector spaceTouchscreenMultiplication signPoint (geometry)Order (biology)Game controllerSequenceType theoryWeb browserWindowMeeting/InterviewComputer animationSource codeXML
Modulo (jargon)ImplementationAttribute grammarFunction (mathematics)Type theoryModule (mathematics)ParsingTime zoneExpandierender GraphSample (statistics)Table (information)Content (media)SoftwareWeb pageMilitary operationFeedbackNP-hardSpring (hydrology)InformationComputer fileDirectory serviceSource codeLevel (video gaming)Independence (probability theory)Generic programmingTemplate (C++)Software testingPartial derivativeError messageThetafunktionType theoryMultiplication signSoftware testingKeyboard shortcutTime zoneStandard deviationMathematicsUnit testingFunction (mathematics)Execution unitModule (mathematics)Computer programmingSuite (music)Point (geometry)Control flowBookmark (World Wide Web)Library (computing)File formatUniform resource locatorFree variables and bound variablesSoftwareInformationWeb browserComputer animation
BitDataflowMultiplication signDegree (graph theory)TouchscreenSelf-organizationLecture/ConferenceMeeting/InterviewComputer animation
RoutingMultiplication signNavigationCommutatorTrail
Computer programmingRoutingSoftwareLaptopTrailComputer animationSource codeXML
Local area networkMenu (computing)TrailPoint (geometry)RoutingDirection (geometry)Multiplication signCode2 (number)BitType theoryComputer animation
Event horizonLecture/ConferenceMeeting/Interview
Gamma functionComputer iconMultiplication signLoop (music)Arithmetic meanDifferent (Kate Ryan album)Bit rateWindowNumberMathematicsImage resolutionPhysical systemPerfect groupImplementationPoint (geometry)Cycle (graph theory)2 (number)Fraction (mathematics)ResultantSystem callSoftware repositoryScripting languageBitSlide ruleLink (knot theory)Computer animation
Line (geometry)Message passingLecture/ConferenceMeeting/Interview
World Wide Web ConsortiumComputer-generated imageryMaxima and minimaGamma functionBeat (acoustics)Magneto-optical driveGame theoryMathematicsData structureLink (knot theory)Film editingProjective planeLoginSoftware repositoryRevision controlOrder (biology)BitSoftware bugMessage passingMatrix (mathematics)InformationComputer fileOpen sourceFitness functionScripting languagePerfect groupFile formatTouchscreenPoint cloudMultiplication signRadical (chemistry)Meeting/InterviewComputer animation
World Wide Web ConsortiumTouchscreenLecture/ConferenceMeeting/Interview
Kernel (computing)Structural loadRevision controlTask (computing)Basis <Mathematik>Computer programComputer fileGamma functionCoordinate systemData conversionPrice indexCellular automatonTimestampLine (geometry)Disk read-and-write headGeometryPolygonPlot (narrative)Physical systemAxonometric projectionCountingFunction (mathematics)Order (biology)String (computer science)TrailCASE <Informatik>TimestampStatement (computer science)Multiplication signWordLine (geometry)AreaFlagCalculationNumberBitDampingLattice (order)Computer clusterReal numberMaxima and minimaPosition operatorObject (grammar)Point (geometry)System identificationClique-widthField (computer science)Physical systemTask (computing)InformationProjective planeGoodness of fitShape (magazine)Computer programmingGraph coloringTerm (mathematics)Coordinate systemRevision controlServer (computing)PolygonOverlay-NetzPlotterComputer animation
Airy functionKernel (computing)Cellular automatonOpen sourceWorld Wide Web ConsortiumYouTubeLink (knot theory)Streaming mediaGEDCOMPerfect groupRule of inferenceMultiplication signComputer clusterRight angleLecture/ConferenceComputer animationMeeting/InterviewSource code
YouTubePasswordInstallation artDevice driverMultiplication signDiscounts and allowancesVideo gameReal numberDifferent (Kate Ryan album)Online chatLecture/ConferenceSource codeMeeting/Interview
Computer virusMessage passingBitType theoryNumberMultiplication signVideo gameMereologyReal numberGroup actionInteractive televisionMatrix (mathematics)Computer animation
Web browserCheat <Computerspiel>Computer animation
NeuroinformatikProjective planeMultiplication signTable (information)Bit1 (number)WikiOpen sourceComputer animationMeeting/Interview
Transcript: English(auto-generated)
Hello everyone, welcome. So these are the last lightning talks of this year. I hope you're going to enjoy that. We have a bunch of users. I want to say that someone that was Simon,
so Sene or Sine or Sene, I don't know how to pronounce the name, you're not referring to me so you're not going to be here in lightning talks. So please do. I'm going to add everyone to a stream so you can say hello. Hello, Antony, hello, Gina, hello, Santino, hello, Miro.
Hello. How are you doing guys? Thank you for signing for the lightning talks. You know, this is why the part I enjoy the most in the conference. I think the lightning talks are great. If for some reason you were just not in this conference,
I don't know, staying all the time in some random room in matrix, lost there, and you don't know what's a lightning talk, I'm going to explain that. So a lightning talk is a super short talk of five minutes, I'm going to have a timer here in my phone, and you have five minutes to talk about anything you want to talk, right? It doesn't have to be Python,
you can talk about, you know, archery or whatever. Good things is that you have five minutes and you can talk five minutes about something. And good for us is that it's only five minutes, right? So if you're talking about flags and that kind of boring stuff, we can just wait for five minutes and then you are off.
When you reach the five minutes, I'm going to play this. Hello, gents, that's one person more for a lightning talk. So in the conference in real life, what we do is everyone starts clapping, right?
So then we interrupt you. And that's a way to finish your talk, right? So the order is, first is Antoni's, then Miro's lab, sorry, Miro, that maybe is it, Sheena, Santiago, and gents, Sene is not here.
So you lose, you're not giving your lightning talk. So that means I'm going to remove the rest and I'm going to keep Antoni's. So by Cynthia or by Gina, I'm going to put you on screen. Give me a second, I have my timer here.
So you have five minutes starting now. Okay, thanks a lot. So I'm going straight to the first silly thing of the two I'm going to show you. It's how you quickly go to the docs, right? So I'm programming and at some point I need to see
the reference for time delta, so to speak. So what do you do? I don't know what do you or what you do, but I'm showing you what I'm doing. So first I click out tab in order to bring up my browser window. And then I type in this sequence of characters,
control T, P3, which stands for Python three, date, time and enter. So I'm going to show it to you. I have my browser here. So I type control T, I get a new tab, and then I type P3, date, time, and I get the reference for date time, okay?
So I need, of course, to remember the module names, but generally I remember the module names of the standard Python library. So how this works, so this works because I have a bookmark, all right? And the bookmark has the keywords P3
and it has a placeholder in the URL. So what the browser does is replace what I typed, unit test, for example, or pathlib or datetime, it replaces that thing in the URL. So that is how I can go quickly there. And I don't do it only with a Python standard library.
I do it, for example, with Wikipedia. Yeah, I do it with JavaScript, although with JavaScript, it works in a slightly different way. It takes some time now because streaming takes a lot of my network. So, and another thing it does,
so I have lots of such shortcuts. So for example, tad stands for date and time. So if I type tad delhi, it shows me time zone information for delhi.
So I was wondering how everyone else is doing this. Am I the only one doing this? I have no idea. So I'd like to ask you. The second silly thing, the second silly thing is copying unit test names. All right, so I'm going to show you.
I have this Python program here and it has some unit tests. So I type this and it runs the unit tests. There are 57 unit tests and one of them is failing. All right, so this is very slow.
So one test failed. So what I'm going to do is I'm going to go to my code and make a change and then run the unit test again and then make another change, maybe at the break point and then run my unit test again. But I only want to run this unit test.
I don't want the other unit test to interfere. I want to run only this one. So what I do is set up being test suit equals. And now it's the interesting thing. I copy this, I paste, I type a dot and I copy this and I paste
and I press enter and then it runs only this unit test. So my question is why is the unit test module giving me the output in a way that requires me to copy and paste and type a dot and copy and paste again?
Why doesn't it give it to me in a format where I can make a single copy and paste? So this is a mystery to me and I've been wondering this for many years but I never got to ask about it. So I'm asking you.
So I invite you to break out one Optiver whenever there's time, maybe after the unit, the lightning talks or maybe after the keynote if there's no time and maybe we can jit and learn from each other about these silly things. That's all.
Thank you, Anthony. Thank you. So you have a still a minute. So that was good. Okay, next one. Sanne is here. So we have everyone for the lightning talks.
So next one is Miro. So goodbye, Anthony. Hello, Miro. Hi. How are you doing? I'm doing great, great. It's a little bit hot here but that's probably hot everywhere at EuroPython now. How are you doing? Where are you streaming from, Miro?
Now I am in Vienna, in Austria. Okay, cool. You know, it was a sunny day in Amsterdam but you can see that it's super dark now, you know? Like we went from sunny to winter that I love how things change here. So I can see your screen. I can see you. So you can also see here the 32 degrees
and approaching storms, so. Oh, okay. That's true, that's true. Yeah, it's only 17 here, so. Okay. Okay, so. I would love it. Timing is on. Okay, you cannot see that, but go. Thank you. So, Python, let's go home quickly.
My name is Miro Slavshedivy and I'm working at Strayport. It is one of the organizers of, not organizers but one of the sponsors at EuroPython and every day I'm writing Python to make the sunshine, the wind blow and the gas flow. Our company is located now here at the southern suburbs of Vienna.
But in the next few months, we are going to move somewhere closer to the center of Vienna. And now on my commute with bicycle, I have already found the best way to go there. But when we move then I will have to discover a new way how to get to work. And there are different navigators that are better or worse,
but they don't adapt exactly to my style of riding a bicycle. And that's why what I want to do is, like every time I try a different route and then I track it like on my phone, I always store the GPS tracks and then maybe I can do something with that. As an example, what I'm going to show you,
I have here something from Karlsruhe. This is the city where bicycle was born and where I lived for many years. And here as an example, I just tried to find the best way to get from the castle here to Günther Klotzanlage. And you see, I didn't always take one route, but sometimes I went from A to B,
sometimes from C to D, A to I, and so on. So always a different route. And then I wrote a program that is called PyGoHome, and that's a Python software running in a binder or in the Jupyter notebook. That allows you to take all your tracks or your GPS tracks, then add a few points,
some points of interest, like homework, friends, shops, and so on, and also to add some intersections. And then it analyzes all your tracks and tries to find optimal way between A and B. So if you go to GitHub,
you'll meet a PyGoHome or download PyGoHome from PIP, then you can launch the binder and I'm going to see, okay, the binder is already running. And what I have to do is here start my PyGoHome. And when it runs, I will upload here my tracks.
There are some GPS tracks and some way points. I open it, I load them, then it's done. And then what I do is I want to get, for example, from the Schloss to Winterclozenlage. And then it is the way, it is my decision on whether I want to find the possible fastest way
or to make sure, because every time you go individually or you ride a bicycle individually, sometimes you are a little bit faster, you are a little bit slower, you behave differently on crossroads, on some types of roads, whether there is too much traffic or not. And then here I say, okay, I'm feeling lucky,
so I want to find the fastest route that I ever made between A and B and it will give me one. And tell me, okay, on this route, I needed the fastest was nine minutes, 37 seconds. The slowest was 14, 33. And then I want to make sure I just move it to the other direction. And then it tells me, okay, if you go like this,
the fastest you were on this route was 11 minutes, but the slowest was 12 minutes, 44. So it is safer to take this route because you won't probably need more than 13 minutes to get from A and B. So now this code works. I am looking forward to use it at our new place of work for Treport,
but I would like to see whether other people have some experience who would like to share them with me and have a look at the code and then maybe we can do something together. And that's all, thank you very much.
Okay, thank you, Miro, thank you. So, okay, everyone is under four minutes. I really like it when I can interrupt someone. Let's see what happened with the next person. So thank you very much, Miro. And I hope I see you later in the social event or maybe next year in Dublin.
Cheers. Hope so, yeah. So Gina is the next one. How are you doing? Yep. Fine, thank you. Vabene. Okay, what's your talk about, Gina?
Is time monotonic versus time perf? Time monotonic versus time perf counter. Yeah, that's actually, so Miroslav, who we just saw, gave a talk on Wednesday about should we go back to Python 2? And that also included the recommendation to switch time.time to time.perfcounter and that I didn't know the difference
between monotonic and perfcounter, and he didn't either, so that prompted me to investigate and here I am sharing my findings. Cool, that sounds amazing. So you have five minutes to start in now. Perfect. Okay, so I just already gave the motivation for this talk away.
So we have these two functions, time monotonic and time perfcounter, and I was wondering what is the difference between the two. So first of all, I went to the docs and took a look at what they say. And for time monotonic, the Python docs say that it returns the value in fractional seconds of a monotonic clock, i.e. a clock that cannot go backwards. The clock is not affected by system clock updates.
The reference point of the return value is undefined so that only the difference between the results of two calls is valid. And on time perfcounter, which also returns float, it also says returns the value in fractional seconds. So in that regard, they are identical of a performance counter, not a monotonic clock,
i.e. a clock with the highest available resolution to measure a short duration. It does include time elapsed during sleep and a system wide. The reference point of the return value is once again undefined so that only the difference between the results of two calls is valid. So that first of all, sounds like monotonic is always monotonic and perfcounter is, I mean, it doesn't say anything about monotonic here,
but it will always have the highest available resolution. So next I took a look at what time getClockInfo says about the two. And I looked precisely at the tick rate. So how many ticks per second I get on each of the two clocks.
And I also looked across Windows and Linux to take a look if there was any difference there. And it turns out that time monotonic on Windows only has a 64 Hertz tick rate. Whereas on Linux, it has something like a billion Hertz and time per counter has 10,000 Hertz, 10 million Hertz on Windows
and also a billion on Linux. The implementation of both also differs under Windows. They are differently implemented under Linux. They both just use clock getTime, clock monotonic and they are also both marked as monotonic. So even so it doesn't strictly say monotonic on the perf counter docs.
It is monotonic, we can depend on that. Okay, so what does this tick rate difference mean in practice? So yeah, I took a closer look at the resolution. I coded up a little loop that runs a billion cycles and just looks at how often the clock value changes during this number of,
during this, during each iteration, during the lifetime of the whole loop. And on time monotonic on the Windows, I only saw 6,811 or thereabout changes. I did this a number of times. So that was a very, very small number, especially compared to perf counter under Windows,
which caught every single cycle of the loop and under Linux, both of them were behaving identically again. So I wondered, hmm, if there is this much of a difference under Windows between monotonic and perf counter, is there maybe also a performance difference? And so I ran time it against it.
And there is actually a performance difference. So while monotonic gives us a lower, a significantly lower resolution under Windows, it is also quite fast in comparison. So 30 nanoseconds faster than perf counter on average, 54 versus 84 nanoseconds.
On Linux, once again, there is not really a difference, which is not that surprising considering that they are using the exact same implementation. So summary, time monotonic and time perf counter are both monotonic, check, and under Windows and under Windows only, time monotonic has a lower resolution but a higher performance than time perf counter
and the Linux, they are both identical. If you also want to maybe test this under Mac OS, just because I do not have access to this, then I put the scripts that I used on my repo there. You can also find a link to the slides there. And I also found this interesting article that I linked there, which goes a bit further into further difference
between clock implementations under Linux, under Python that I found interesting and that motivated me to dig a bit deeper into things. And that's it already. Okay, thank you, Sheena.
I really like when the line in Turkey is about something that was like yesterday or this morning, because that's, I think, one of the reasons why we have these ones. So thank you very much. Now we are going to have Santiago. Just a message as yesterday,
I'm going to do some raffles. So we have a bunch of vultures to give. So I recommend you to already go to WonderMe because we are going to maybe use WonderMe to do the raffle. So, hello, Santi. Hola, Diego. How are you? How are you doing? So we can do this in Spanish,
like it's back on our or something, so. Yeah. Can you ask me where I'm? Yeah, where are you streaming from? Amsterdam. Amsterdam, and it's raining. There was a huge cloud going your way. So I think it's raining as crazy now because it was raining as crazy
like two minutes ago here. So, we should arrange for drinks tonight or something. But that's probably not a good idea. Okay, so I can see your screen. Santi is going to talk about Komit-sen, or Komit-sen, I don't know, Komit-sen, okay.
So five minutes from now. Okay, perfect. Well, I'm gonna try to run this in the terminal. Let's see how it goes. I wrote a nice script that I only have to type enter. So it shouldn't fail. So I'm gonna show you a bit about the Komit-sen,
which is a open source project I've been maintaining for a couple of years. I started, I think, around 2017 or 2016. And it has grown quite a lot. And there are many contributors. I'm quite happy and it's really nice
to see many people requesting new features and stuff. For me, at this moment, I don't even have time for so many features, but I like that people contribute. And the whole idea is to automate the tag creation
and the change log creation. And it's pretty simple. So we have a Git, we initialize Git in any project, and then we install Komit-sen, like you can see here. Once we initialize it, in this case,
with a Toml file, with a version, this is the cut of the file, then we only need to start adding things to Git, the Git files. For example, in this case, we have a users, we add to Git, and what is gonna happen now
is that I'm gonna follow a structure instead of a free text in my Komit message. This is the trade-off of using Komit-sen. We are gonna add a bit of information so later we don't have to go through all the Komits in order to think, oh, what happened here? What's the version that I should tag my repo?
And also, we are gonna automatically create the change log. So I would say you also have to think a bit that your Komit message may end up in the change log. If you don't follow the structure, which is conventional Komits, for example, we start with fit from feature
and then the message, Komit-sen will ignore it. So you can still write your Komits and only tag some, I don't know, that's up to you. So we are gonna add employees, another feature, and then we just say bump, yes, because it's the first time, and we say change log,
so also add the change log. And in here it detected that it has to go from zero, zero one to zero, one, zero. The increment is minor. We can see that it created the change log, and the change log is in markdown. You can also add some text on top of it,
like your change log, the format you follow. That's it, no problem. And then, for example, we remove the employee's file, and then this is a breaking change. So we write a multi-line message where we add a breaking change.
And then we make a bump again, and it detected that it was a breaking change and went to 1.0, it's a measure. And you can see here also, it's listing the 1.0 includes a feature and a breaking change. In that message, you are supposed to describe
what are the steps to move to this. And that's it. It's quite simple. Also a tag was created. Here is a link. You can take a picture of the repo and visit, check the documentation, any pull request is more than welcome.
And I think it's a really nice project to start if you want to contribute to open source. This is the link to the presentation. And here you can find me, Matrix. I don't know why my last name is, we had a bug at some point. And my, thank you very much.
Okay, thank you, Santi. It's nice to see Komit Sen moving. So, see you later. And we are going to, okay.
Jens, you're going to be the next one. I'm going to skip Sen to see if he or she can show you. Yeah, I can see you and let me see. Are you going to share screen or? I tried to share screen. So I have a notebook over here.
So this one, yes. So yeah, thank you very much for the, like we talked today. So yeah, okay, cool. I'd like to show one of my, it's a project it's named the Dairy Diary. It's a logbook for grazing cows. So the first of all is,
I'd like to show you just a picture of a few nicely cows. So they're just grazing on the pasture as one might think. So why do I need this kind of dairy diary diary? So as a farmer, I'm supposed to note on the kind of book
on the kind of Excel sheet, where my cows grazed on a pasture and when they grazed on a given day. So for example, as a farmer, I can take place in this special program, the German Weidemich program. It means that if the cows are outside and grazing and you sell the milk to the dairies,
you can get some extra money. The problem is to write these logbook, the diary, is a more tedious task. One has to do this for every herd of on the farm every day. And the problem is it costs money in terms of times.
And if you don't have the time, you have to someone ask you to do for it for you. So, and that's where Python will come into play and also one of those devices. So this is just a color. You can put it on the neck on a cow. It's equipped with a GPS system.
And this system just sends signals one can take from a lower server. And those signals I can process in a way I have in the end, the name of the piece of land and the day where the cows grazed on. So I can just run the notebook.
So first of all, we have to import two libraries. It's pandas and geopandas. I also note down the versions in case someone of you wants to try it again. So now I'd like to show how the data looks like. The data is just a common GPS tracking data with the longitude and latitude
and also some information about the battery and the timestamp and also raw string. And of course we have to pre-process those data in order to get use of it. For example, first of all, I have to remove some lines this the word time and the column line.
I just need timestamps and not strings. And then I also have to remove the first thing as one can see here, they are NANs and I don't need NANs but instead I need those floats. And those I have to convert those numbers into real numbers for Python. Next thing is if I want to have a point in the polygon,
I need of course the polygons, the areas and of course the fields as well. Those fields I can show you here look like full width. There's just a identification number even over the year where this object has been created and also the polygon, the position of those.
To make a bit clear view, I just removed a few of the areas I know where the columns do not have to go on. And then I can first of all, plot those numbers and here for the polygon at first. So these are the land shape of my farm.
So you can see all of those polygon is just a grazing piece of land, a good piece of land where the cows can graze. And those are the coordinates recorded by the sender. And now I have to align it in a way together to overlay.
And this overlaying is now named spatial join. So first of all, I have to ensure that the CRS, the coordinate reference system is in both case same. And this is what the statement here just why it's true. So both are the same, I am good to go on.
Now I perform the spatial join. It just takes a bit longer because spatial joins are a bit more calculation expensive. And then we can see the following. This is the date. And I know this piece of land, the German flag number, it's just the number of those land. I know of each dates or at least each timestamp
on the specific date, how often the cow has been on the specific area. Gladly, I just have to take the maximum, the highest value to prove the diary that the cow has been grazed on the area.
And this I can do with the statement. And this is just last reply statement. And then we can see for off every day, the maximum number of grazing position that are at least recorded grazing positions is just this number of land. So the cow has been.
Sorry, time out, that's the rules. Thank you very much. Yeah, no problem, it was just the end anyway. Okay, perfect. Okay, thank you. See you later.
So we have the last line of talk. Let me see. I don't know if the hour is working. Hi. Yeah, we can hear you.
Thank you. And I'm going to start your five minutes right now.
Okay, sorry, time out. And that was the first time I've seen a lightning talk with only text. So thank you. It was something new today.
Maybe people can go and ask you how to finish what you were doing. Okay, so that was the last lightning talk today. Now I'm going to do something different. We have to do some prizes, right?
Some raffles. So yesterday I had a lot of fun. So we started doing like the old way, right? Like just doing, saying the name of the person or if the person is in the room. And in real life that's quite fast, right? Because everyone says, yeah, I'm here.
But then I learned that it's not a weird idea to do that in the chat. And I was sending names to the chat and doing the flute in the chat. So I decided to do something different. So I said, okay, if you can catch me in Wonder Me, I will give you a prize. So I have for two different sponsors. So one sponsor is Manning.
And we have three vouchers for the book microservice APIs in Python. I have two vouchers for $50, five zero, discount for no starch press. And I have five books from Packet, right?
So what I'm going to do is that here is my Wonder Me, right? And I'm somewhere there and theoretically decided. So if you can reach me and talk to me, hello, Dusan, you have to say hello,
turn your camera on. Hey, how are you doing? Cool, so please type your name and then, no, no, it's not going to be so easy. Wait, wait, wait, wait, it's not going to be so easy. So you have to catch me, it's going to take a bit more.
So Dusan, please send me a message from Matrix. So I have your username, I'm going to put your name here. Oh, Santi, you wanna look? Santi is the second one.
I think it's really nice, good to see you. I want to see your people joining, right? So because there is only a small group running. So I will wait to see more. Oh, what's happening? I think this is the best part of Heropython 2021.
Sorry, if I'm boring you, it's going to be kind of a long time. It will take less than five minutes, but I still have like a seven or that number to get. So hello, Gil, hello, hello, hello, hello, hello. Hello. Hello.
Oh my God, so many people. Santi. We still have like a seven or that number to get. So hello, Gil. Hello. Hello. Hello. B.M., you already won a prize,
so I need to do the last one. By the way, Wonder Me, the idea with Wonder Me is we can talk to each other, we can know new persons, right? So we can basically have the interaction
that we are missing in the real life conference, right? Because something that really misses this is like you can just walk to one person and say, hey, I'm in the beginner's corner. And you can say, hello, how are you doing? No, no way. Let's go to the stack with theirs. Or they go to the optiverse post. Gil, you already won a book.
Stop running behind me. Okay, I'm going to stop here and up to your, let's see what happened. I still have four, right? I'm a real boy. Kiliakos. Nicholas, you really just made a huge mess and then run away every time. You already won something.
Santiago, also you. Rodrigo, who else is here? Okay, Martin. Martin. I'm trying to see the order, right? Oh, I crashed it.
Who's the last one? Okay, I don't know who's the last one. So I'm going to run one more time. I love it. Okay, only one. No, two, sorry. Next two. So let's go to the science corner and see what happened. I hope someone is having fun because I'm having fun with you.
Rodrigo is trying to cheat. Rodrigo, you already won. Stop cheating. Okay, Rodrigo and Sebas are really fast,
but they already won, so I'm not going to give anything to them. Oh, well, you won yesterday. Come on. Dean, I think you also won yesterday. Okay. Clemen, Clemen, I'm mispronouncing that. And the last one, who is the next one here?
Julian. Okay. So I did this live, so now everyone knows how I did the prizes. So it was kind of legal, I hope. And I hope it was funny.
So, okay. So we are two minutes to finish the lining talks now. So I'm going to remove these because, yeah, I'm listening to two computers at the same time. Last comment I want to do today
is that we have the sprints tomorrow and Sunday. So Saturday and Sunday is the sprints time in AeroPython. The sprints are really, really good to learn, are really good to contribute to open source, maybe for the first time. So, but we also need projects to work with, right? So if you have open source project,
or if you want to start a new one, and maybe in two days we can do a lot, go to the website, find, there is a Wiki that you can sign to host a sprint and join us, right? And for the ones that are new, or maybe you don't have any experience doing a sprint, in Saturday, tomorrow,
I'm going to be hosting like a table, a virtual table. There's a beginners room for people that is contributing for the first time in open source. And in Sunday, Chuck is going to be doing that. So Sunday is going to be a lot better. So if you are new, if you don't have experience, please stay and join the beginners table,
and we can help you a bit to get you started with the, with the sprints, right? So that was all. I hope it was nice. And yeah, see you in a few minutes for the keynote. Cheers.