EuroPython 2023 - Lightning Talks Friday
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 141 | |
Author | ||
Contributors | ||
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 | 10.5446/68696 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
Game theorySoftware developerLattice (order)Game theoryFood energyComputer animationLecture/Conference
01:02
Game theoryLatent heatKeyboard shortcutCodePresentation of a groupSoftware repositoryTendonComa BerenicesComputer-generated imageryNetwork topologyIntelWindowPairwise comparisonLink (knot theory)Game theoryCASE <Informatik>Enterprise architectureMereologyRight angle2 (number)WindowBitPlanningQR codeData miningGraphics libraryPairwise comparisonLatent heatSoftware repositoryChecklistPresentation of a groupLecture/ConferenceComputer animation
02:39
Game theoryLink (knot theory)Coma BerenicesQR codeSoftwareLecture/ConferenceComputer animationMeeting/Interview
03:27
Time zoneAverageRevision controlBand matrixComputer networkOffice suiteArithmetic meanCuboidAverageMultiplication signRevision controlProjective planePiComputer programmingOffice suiteDifferent (Kate Ryan album)Band matrixMixed realityMusical ensembleSoftwareMereologyUniform resource locatorComputer animationLecture/Conference
05:30
Time zoneContext awarenessSocial classLecture/ConferenceComputer animation
06:21
Element (mathematics)WhiteboardImage registrationLattice (order)AverageCodeComputer animation
07:12
Element (mathematics)Coma BerenicesTime zoneFood energyTwitterMultiplication signLecture/ConferenceComputer animation
08:01
Coma BerenicesSoftware testingInternet service providerBeer steinInstance (computer science)Object (grammar)Category of beingAttribute grammarContent (media)Ljapunov-ExponentSoftware developerACIDComputer virusComputer fileGame controllerSoftware testingComputer animationLecture/ConferenceXML
08:51
LaptopGroup actionReading (process)Computer fileGUI widgetView (database)Object (grammar)Inheritance (object-oriented programming)Instance (computer science)Internet service providerString (computer science)Letterpress printingSoftware testingContent (media)Coma BerenicesLoginElectronic visual displayAttribute grammarCategory of beingExtension (kinesiology)Human migrationComputer fileSoftware testingAsynchronous Transfer ModeHoaxInternet service providerHypermediaObject-oriented programmingProbability density functionLibrary (computing)Medical imagingData storage deviceFile archiverRootString (computer science)Content (media)CASE <Informatik>QuicksortEmailDirectory serviceLetterpress printingStandard deviationRepository (publishing)Parameter (computer programming)Single-precision floating-point formatMetadataFile formatFunctional (mathematics)Interior (topology)Template (C++)Search engine (computing)Correspondence (mathematics)Physical systemSoftwareSoftware frameworkError messageInferenceSocial classFigurate numberObject (grammar)Menu (computing)Context awarenessRoutingDynamical systemSet (mathematics)Default (computer science)Data structureLecture/ConferenceComputer animationProgram flowchart
13:38
Coma BerenicesFood energyOnline helpLecture/ConferenceMeeting/Interview
15:05
Coma BerenicesLocal area networkDegree (graph theory)TelecommunicationDataflowComputer programmingWave packetMultiplication signMereologyTask (computing)Computer fileLecture/ConferenceComputer animation
16:14
Food energyCodeInferenceNumberComa BerenicesSequenceEndliche ModelltheorieData modelInsertion lossWebsiteElectronic mailing listTerm (mathematics)Multiplication signTask (computing)Expert systemCodeComputer programmingBlock (periodic table)PerceptronDataflowSoftware developerPerspective (visual)Touch typingString (computer science)Connected spaceDigitizingSinc functionSummierbarkeitComputer animation
20:02
Food energyComa BerenicesCollisionIdentity managementWrapper (data mining)Lecture/ConferenceComputer animationMeeting/Interview
21:16
Computer fileNetwork topologyCone penetration testCategory of beingServer (computing)Formal languageInheritance (object-oriented programming)Sample (statistics)outputHacker (term)TendonComa BerenicesMultiplication signInheritance (object-oriented programming)Personal identification numberFrequencyMusical ensembleVolume (thermodynamics)CollisionSolid geometryError messageDot productScaling (geometry)Chord (peer-to-peer)MIDIGame controllerFunction (mathematics)CodeConnected spaceComputer clusterCAN busDiagram
23:42
Nachlauf <Strömungsmechanik>Coma BerenicesFood energyMultitier architectureChord (peer-to-peer)Source codeInheritance (object-oriented programming)Server (computing)OscillationFormal languageIntegrated development environmentComputer programmingPressureNormal (geometry)Point (geometry)Server (computing)Function (mathematics)Musical ensembleVideo gameCausalityReading (process)Lecture/ConferenceSource code
27:19
Coma BerenicesFood energyNetwork topologyProgrammable read-only memoryMusical ensembleWikiFormal languageLecture/ConferenceComputer animation
28:19
WikiWeb crawlerDatabasePriority queueGraph (mathematics)Compilation albumProjective planeOpen sourceStudent's t-testPoint (geometry)Scheduling (computing)Graph (mathematics)Semiconductor memoryCrash (computing)Web crawlerWeb pageLink (knot theory)WebsiteData miningDatabaseNeuroinformatikTunisTask (computing)Queue (abstract data type)Row (database)Stack (abstract data type)Primitive (album)Scripting languageSpeech synthesisLecture/ConferenceComputer animation
30:08
Independence (probability theory)Coma BerenicesWeb crawlerStack (abstract data type)Web pageOnline helpSet (mathematics)Presentation of a groupCross-correlationPoint (geometry)FreezingDatabaseOpen sourceSampling (statistics)Web crawlerMultiplication signXMLComputer animation
31:02
System programmingComa BerenicesFormal languageMusical ensembleFormal languageComputer virusPlanningSpeech synthesisGoodness of fitLecture/ConferenceComputer animation
31:53
Computer fileSoftware developerInsertion lossSoftware repositoryElement (mathematics)Core dumpRevision controlElectronic mailing listMusical ensembleRight angleMobile app
32:44
CodeBitTranslation (relic)Element (mathematics)Loop (music)Right angleMultiplication signError messageElectronic mailing listLecture/Conference
33:59
Price indexModul <Datentyp>Einbettung <Mathematik>FAQStatisticsComputing platformWhiteboardSource codeFormal languageElement (mathematics)Library (computing)2 (number)Message passingWordDiagramTranslation (relic)Task (computing)Formal languageNeuroinformatikLecture/ConferenceComputer animation
34:49
Operations support systemComa BerenicesFood energySoftware frameworkNumerical analysisDisintegrationHidden Markov modelMusical ensembleLecture/ConferenceComputer animation
35:36
Numerical analysisSoftware frameworkDisintegrationProcess (computing)Default (computer science)ImplementationFunction (mathematics)Functional (mathematics)Front and back endsFrame problemBefehlsprozessorArray data structureDifferent (Kate Ryan album)Axiom of choiceForm (programming)Term (mathematics)Software frameworkLibrary (computing)Repository (publishing)Point (geometry)ImplementationFunction (mathematics)Modul <Datentyp>Default (computer science)CASE <Informatik>Process (computing)Combinational logicModule (mathematics)Task (computing)Forcing (mathematics)Computer hardwareSpectroscopyOffice suiteInclusion mapTransformation (genetics)RotationMusical ensembleDemo (music)Computer animation
40:20
Coma BerenicesPhysical systemYouTubePhysical systemDistribution (mathematics)Programmer (hardware)Operating systemProjective planeRight angleMultiplication signTable (information)Computer virusLecture/ConferenceComputer animation
42:12
MathematicsInformation securityCodeRevision controlInformationScalable Coherent InterfaceUniform boundedness principleOpen setCategory of beingLink (knot theory)Group actionSoftware testingIntegrated development environmentDefault (computer science)Data typePhysical systemError messageDistribution (mathematics)Patch (Unix)CuboidSoftware testingGroup actionAdditionDisjunctive normal formDefault (computer science)CodeRevision controlInstallation artDifferent (Kate Ryan album)PiNeuroinformatikEnterprise architectureIntegrated development environmentSoftware developerVirtual realityVirtualizationLecture/ConferenceComputer animation
45:14
Beta functionPhase transitionProjective plane2 (number)MathematicsWebsiteComputer animationLecture/Conference
46:04
Coma BerenicesFood energyGoodness of fitReduction of orderCodeSoftware bugMultiplication signLine (geometry)Computer animationLecture/ConferenceMeeting/Interview
48:35
CodeError messageoutputModule (mathematics)Price indexSequenceString (computer science)Open setData storage deviceSoftware bugUniversal product codeCodeProduct (business)CodeType theoryFunctional (mathematics)Installation artError messageLecture/ConferenceComputer animationMeeting/Interview
49:36
ChainError messageModule (mathematics)Context awarenessModul <Datentyp>Data managementOpen sourceModule (mathematics)CodeContext awarenessSystem callChainRight angleComputer animation
50:23
Core dumpFood energySystem programmingComa BerenicesPrinciple of relativityProduct (business)Multiplication signBoss CorporationComputer animationLecture/Conference
51:09
Food energyIcosahedronComa BerenicesLecture/ConferenceComputer animation
51:59
Food energyTerm (mathematics)BitWhiteboardFront and back endsSelf-organizationComputer programmingData managementComputer animationLecture/Conference
53:21
Workstation <Musikinstrument>FreewareEvent horizonFAQWebsiteGenderComputer programmingLaptopElectronic program guideTask (computing)Local ringComa BerenicesCross-site scriptingRule of inferenceExtension (kinesiology)CAN busMusical ensembleOpen sourceGoodness of fitComputer programmingEvent horizonSelf-organizationMaterialization (paranormal)Projective planeVapor barrierFormal languageSoftware developerLevel (video gaming)Right angleVideo gameMereologyLecture/ConferenceComputer animationXMLPanel painting
56:39
Coma BerenicesLevel (video gaming)Game theoryTournament (medieval)Musical ensembleComputer animationLecture/Conference
57:28
Coma BerenicesGame theoryTournament (medieval)VideoconferencingVideoconferencingTournament (medieval)Video gameGame theoryResultantMereologyNumberLevel (video gaming)Lecture/ConferenceComputer animation
59:11
Coma BerenicesGoogolPoint (geometry)Lecture/ConferenceMeeting/Interview
01:00:00
Coma BerenicesDot productPoint (geometry)Computer animationLecture/Conference
01:00:52
Coma BerenicesLecture/ConferenceComputer animation
Transcript: English(auto-generated)
00:04
I also feel great. I feel full of positive energy from this conference and meeting so many people. But also I feel a bit sad because our conference is coming to the end. However, we still have a lot of things to do. Lightning talks. First lightning talk is from Dima and the topic is game engine in Python.
00:24
Dima, could you please come here? Yes.
00:40
Hello, I'm Dima. I'm going to talk about my custom game engines that I made in Python. So I'm 13 years old. I'm currently a game developer, interested in game development and have experience with some game engines like Godot Engine. Yes, this is my first year of Python also.
01:08
So what is a game engine? A game engine is basically a tool for game creation. Why create an own game engine? For the most part it's for fun or for learning experience.
01:21
Sometimes it's for speed or a specific use case. So I made my own one called Fusion Engine. It's based on PySDL2 and graphics library. Yes, you see here repo, QR code will be on the end for presentation.
01:43
So here's the basic example. On the left you see a popular game engine called Pygame and on the right you see mine. So both do the same thing and yeah.
02:00
So I tried to make a speed comparison and as you see a popular one like Pygame takes like three seconds to load a window and mine one takes one second. Yeah, a small checklist what our plans are to like make the game engine.
02:23
Our plan was also to implement some Rust at the slow parts. Yeah, it's a little bit inspired from this year of Python. Yes, this is it. Thanks to our contributors.
02:47
Yeah, we are welcome to new contributors. So if you want to contribute, yeah, just go with this QR code. No, I'm not. Yes, thank you.
03:04
Thank you everyone. Please welcome Deb that will tell us something about the Python Software Foundation.
03:28
I tell people I am at the PSF and then they say something to me that leads me to believe that they don't really understand what we are or what we do. So I'm going to answer that first and then I want us to be friends. So first of all, we're the vendor neutral community driven home of Python and everyone
03:45
likes Python, right? Yeah, kind of like a nice thing like I worked at other nonprofits and like hosting means like oh those two boxes that I move around in my basement. Not so much for Python.
04:02
It's a really big kind of overwhelming infrastructure like kind of hurtling into the future. On average, a version of Python is downloaded over 300 million times per day, which is a lot. And then in last year, the PyPI saw a 57% growth in both download and bandwidth.
04:24
So when I say massive infrastructure, I mean pretty massive. So that's the first thing we do. We also have this grants program. This is our lovely accounting team. They let me post this picture of them looking really tired at the PyLadies auction at PyCon this year. But they are lovely.
04:42
So in 2022, we gave out 152 grants totaling over $200,000 to a bunch of different countries. Why am I telling you this? I mean, it's nice. I do like to brag as part of being a person working at a nonprofit, but I want you all to apply for grants. So this is the URL.
05:01
I'm going to leave it up there for a second. Please take our money. We want to help you build the Python community. We want to buy lunch at your thing. We want you to get more people. We want you to give out travel grants, whatever it is that's going to make your event extra awesome. We're also the back office for about 15 other initiatives, a mix of meetup groups,
05:20
other PyCons that happen in other places, and some technical projects, including the global network of PyLadies chapters. Yay, PyLadies, right? And of course, we've also been putting on PyCon US for about 20 years. So here are some folks.
05:41
Maybe you recognize some of them. Maybe not. That's kind of the big PyCon, I guess. But it is not the only one. We do also offer travel grants, because having come here from the US to Prague, I'm aware that it's far and costs some money. So if you want to come join us at PyCon US next year in Pittsburgh, which
06:05
is not very dry and not very weird about being LGBTQ, which is also important to us. So yay, Pittsburgh. They have pierogies. I hear you also like those. So you'll feel right at home. I promise.
06:21
And then finally, the last thing I would love is if you all became either supporting members of the PSF or certified yourself as a contributing or managing member. So the supporting one is kind of the more traditional, like where you give us money, and then we count you as a member. The one that I think is extra cool is the contributing or managing member, which
06:42
is if you work on Python or the Python community, it doesn't have to be code. It can be setting up meetings. It can be going and driving to pick up the pizzas. It can be hanging out at the registration booth here. Five hours a month, on average, you can certify yourself as a contributing or managing
07:01
member of the PSF. And that means you get to vote on the PSF's board of directors, which we just did a director election. We elected Chook as a brand new board of directors. Yay. So you can start telling her. No, you should bring the complaints to me and the sparkly inspirational ideas to Chook,
07:22
because I'm getting paid, so I'll take the complaints. So that's the URL for that. I'm keeping it short and sweet. I'm here, like, after lightning talks, if you want to ask me questions, find me on Twitter, find me on Mastodon. Really find me on Mastodon. I don't want to be on Twitter anymore. Thank you so much for your time, and thanks for having me.
07:49
Thank you very much. The next speaker is Artur.
08:30
Hello.
08:42
Controls. Okay. Sorry. So testing files in Python. I'm sorry. I have to do this mirror mode.
09:02
I need to have it in mirror mode. Yes, like this. Sorry. So testing files. If you're testing files in Python, you don't know really where to start,
09:21
because you either don't have the files, or you want to do automated testing. So you put them in the repository. But then you can't, because you need to first obfuscate the data, or you don't have the files for all specific things. So I'll show you how to create files in many formats with no efforts, using these two libraries, a faker and a faker file.
09:41
And it starts just like that. You just import the faker class. Then you import the file provider that you want to use. You initialize the faker. You register the file provider that you want to use. Then you just do it like this. Docx file. In this case, this is Docx file.
10:01
And then it's generated for you, as you can see. So the first print that you see is just the file object. And it looks like it's string, but it's not a string. It's a string-like object, which has some additional metadata it contains. One of them is the full path to the file, but it also has the content.
10:22
And the content is the text that the file was created for. So imagine an image or a PDF. So if you want to test your pipeline that you feed files with, and then you want to check the inference, you want to be able to see if your file is properly injected in the system,
10:40
you can search on it. This text that you could use to search on it in your search engine after your pipeline is processed. And let's go on. And you can also provide the text, the content of the file manually, just like this, this Alice in Wonderland text. And you provide it in a contest argument, and you create the Docx file using this text.
11:04
And yeah, it's created. In case you need a more structured template, like, I don't know, you want to make an email or document like that, you just provide a string with this.
11:20
And these are all sort of tags or providers inside, standard providers of fake library. And what you get is this PDF generated using that content. Oops. I don't know why it fails, but... Yeah, also the archives.
11:40
They are also archive supported, and the archive is like a zip file, it can be a tar file or email file, because what is an archive? It's a file that contains other files. And they are supported too, so you just, by default, you just have this, it's the zip file created with a text file inside.
12:00
But you can go further than that. There is this, the inner helper functions for creating archives are created, and every file type in this library has correspondent helper function, and then you can create actually, in this case, you create an archive, which contains archive, and then it contains like Docx file,
12:24
which is rendered according to the template. And if you need a more structured way of doing this, let's say you have, you need a zip file with a single Docx file, and then two XML files, which does contribute to the structure, this is kind of, you do it.
12:41
If you need just bytes, not files, you could provide the raw, true arguments to the thing. And storages, so if you work with some frameworks like Django, and you want to use dynamic fixtures, Django will throw an error
13:00
if your file being saved into the system is anywhere different than your media root directory. And to solve that, there is this system that file storage is implemented, and so the way you do it, if you work with dynamic fixtures, is that you provide your cynics media root to it,
13:21
and it's generated. It also works with network storages, so remote storages. So you can create your, test your files right into AWS, or Google Drive, or Azure. And yes, there is the CLI. And thank you very much for your great talk.
13:40
Speaker is Senna. Thanks.
15:10
Hello everyone, I'm Senna. It's so lovely to see you all, and I'm a recent electronic engineering graduate, and now I'm pursuing my master's degree here in Prague in data science.
15:21
And today I will try to introduce you, Katar. And I will take it in aspects of discipline and motivation. Katar is a philosophy, and it is originated from what you're seeing, Karate. The main goal is to master a subject, expose yourself repeatedly with one niche example
15:43
so that you could improve and acknowledge the practice itself. And at the same time, you could get into flow. That's the main purpose of it. And as you can guess, this is making it much more adaptable to any kind of files. That's why I applied it in programming,
16:01
and it's already practiced in programming as well, because it's solely based on training your muscles, stretching your brain to not memorize, but actively participate in that part, in that particular task. Imagine doing something repeatedly every day, because it's recommended to do Katar
16:22
early in the morning before everything, because your mind is in a clear state, and you should benefit from that. But you're doing the same exercise every time. And since you're doing it like that, it is making you kind of gain some new perspectives on the thing that you keep seeing every day,
16:42
and make you kind of connect with it. And it actually gives you a sense of accomplishment as well, because this is something that you did yesterday, even the day before that, and today you're trying to do that as well. So you're seeing it repeatedly, you're connecting with it, at the same time you're learning the different perspectives.
17:01
In terms of programming, my sister was reading clean code, and then she said she knows that I had some overthinking over programming, because I'm coming from electronic engineering, and I had a hard time transitioning to CS. But she said in this book, in the 14th chapter, Uncle Bob is recommending doing katas,
17:21
and explains how to imply them. And I would really recommend this book to you, because CS mindset is something that I really admire, since all of them are coming from, you know, based on philosophies and hippies, they seriously are doing something great, and I'm listening to them.
17:42
Let's come see to some examples. In here you're seeing an IBM example, because they have a website with these kind of listings. Experts and your mentors are actually trying to tell you this, they keep telling you practice more, but I do not like hearing that, because I think it's not detailed enough.
18:01
And by practice more, they're actually trying to say participate actively to what you're trying to learn. And in terms of actively learning something, you have to question it yourself, not listening to someone and not copy paste it, but seriously think, what can I do to solve this next step? And it could be the most easiest task
18:22
that you choose for yourself, this is my kata, it could be like a string sum, odd even example, or like finding the prime number, or like any kind of digit question, that initial interview questions. You can choose it as your kata and say, I will go with it. But since I'm an AI engineer,
18:40
I would like to shout out to that. You could, I think, also do ML and deep learning katas, and you could do it by thinking, how can I build a perceptron? Because they asked me this multiple times in these interviews, and yes, you should be able to explain it to yourself, for yourself, what I do, what is the first step,
19:01
what's going on, and activations like building Lego blocks in your mind to be able to connect with that. And actually for neural development, it's proven to, if you actively learn something, it helps you develop some habits and learn that thing better,
19:21
and since you're making connections, it's not getting lost in your brain too. So I definitely recommend you doing katas in terms of neural development as well. This is a meme, he's a tennis player, and he's in a very cold lake. He's saying, never give up, since you're seeing I'm inside here, and I'm still doing this, so you in your house,
19:40
sitting, you should never give up, because he's not giving up. And it's seriously worth it, you are worth it, to learn things better, and getting in the flow with your own subjects. So I hope you will try kata, and I hope you will like it, and if you do, please get in touch with me, and let me know how it goes. Thank you.
20:08
Thank you. The next speaker would like to be introduced as this green guy. Hi.
20:20
Is the HDMI... Do I disconnect it? I don't have USB-C. Is that old? HDMI? You don't have a USB-C? No.
20:43
Hello, my name is Moiseis. Oh, I just busted my identity, sorry. This is not there yet.
21:00
This is a talk about multitasking, as you can see. Let's mirror, and I believe... So this is FoxDot. FoxDot is a Python wrapper around something called SuperCollider. SuperCollider is a sound synthesizer,
21:21
which we start with... FoxDot. FoxDot. Dot start. Because I don't want to use SuperCollider syntax. And here we go. And we are running. And we run FoxDot. And we have an error on SuperCollider,
21:42
so this is not going to work. So let's try again. And yes, I've been to this error before. Let's ignore. So this happens because when I connect, my MIDI controller will give me different speeds here.
22:03
So we just have to change the frequency of the channel. Oh, HDMI. Okay, HDMI 48. Output 38. Microphone 48. And then maybe now...
22:22
Okay. Yes, let's open this. I don't want this. I want to do something else. And I'm running out of time. Yay. It's less than I need. Okay. So basically you can execute this Python code.
22:45
Okay. I'll make it visible. Let's set the scale. Let's play some notes. Do some chords. I hope I'll not kill people now with too much sound.
23:01
Oh, it's coming. I can't hear the bass. I should be playing. I can't turn on the volume. Yeah. Can someone take up the volume? I need volume up.
23:21
I can't control the volume. Oh, you're on my side. No, it's connected. Is the AV team can... No, it won't work. Can the AV team put this audio up?
23:48
So there's an USB here. And so Python.
24:00
There. Do you need me to change the output? Oh, I see. Here, USB.
24:21
Okay. Output. I see. I know what's happening. Explain. Yeah. I need to restart. Yeah. Kill all servers.
24:55
Can always come back next year.
25:15
Let's see how many can we fit.
25:31
A fallen angel. All that I'm sure. Forever young. I wanna be forever young.
25:45
Easy take. No more, no more. This can not wait. I'm yours. This is the way you left me. I'm not pretending. No love, no hope, no glory. No happy ending.
26:01
Cause you were amazing. If I could, then I would. I'll go wherever you tonight.
26:24
And she will be loved. And she will be loved. Pictures of you. Pictures of me. Hung up on your wall. For the world to see. Cause I can't live with or without.
26:46
Without you. Whenever I fall. At your feet. You let your tears. Not pretty enough.
27:01
Cause I'm not here for your entertainment. You don't really wanna mess with me tonight. Can't read my, can't read my bill. You can't read my poker face. Come on Barbie, let's go party.
27:38
That's how many songs you can fit in a lightning talk.
27:50
Thank you. Thank you for this great performance. Our next speaker is Julien, who will tell us something about WikiCroll.
28:09
And in the meantime, I would like to ask Christian to come here with topic Python in your language to get prepared. Thank you.
28:30
Hello Python, I'm Julien and I would like to share an open source project with you. WikiCroll. So for the story, when I was a student, I was used to implement everything that came to my mind.
28:42
And at this point, I did a crawler in Java that was quite ugly. And that was fetching Wikipedia pages, collecting link, and starting over and over until the memory crashed. And so it was useless, not that fun, but a good way to learn. That's why I suggest a friend of mine who is learning Python to do the same thing as an exercise.
29:00
And at this point, I am asking myself what I would do differently if I have to do it now with my experience. And here is the answer. So first, I will keep Wikipedia, because that's the best website in the world. You agree? I'm sure. After that, instead of a script, I will use a task queue provided by salary.
29:22
And it's okay if it's useless, but at least I want it to be fun. So I will use a graph database to go in details. Here is the pipeline. I won't speech it, but there is two workers. One for the coding, one for the recording. So to make it run on my computer locally, I'm using Docker Compose, of course.
29:44
And I'm able to start it now. I will need to fine-tune to find the good scheduling that avoids the crash. So let's add some monitoring to the stack, Grafana, Prometheus, everything I need. And it's not that bad. I have a dashboard.
30:01
I can make it run over and over until I find the good schedule. So you will tell me I'm calling Wikipedia over and over. That's not a good thing. I'm a bad guy, and I'll prefer to avoid that. So let's mark Wikipedia and add it to the stack. At the end, I'm implementing a crawler. I have everything I need.
30:21
So at this point, I guess I have everything to make it run. And yet it's working. I'm able to fetch the data in the database. If we take a sample data set, there is real simple relation, like an apple is a fruit. The page hopper refers to the fruit.
30:40
But what would be fun would be to find really strange correlations between concepts that are really not linked to each other. And so it will be fun. But at this point, it's still useless. I did not find what to do with it. It's online. It's open source. Please, if you want, contribute. That's all. Thanks for your time.
31:08
Thank you. The next speaker is Gabriel Jover. Oh, that's not him. Sorry. So Christian with the topic Python in your language.
31:25
Hello. I want you to answer me some questions. Who is here not a native English speaker? And who here can read and speak Czech? Okay. Many fans. That's a good thing.
31:40
Good. So this talk is that I wanted to encourage you two things. The first thing is to check into some C Python internals. If you haven't, don't be afraid. You can discover new things. And there's a lot of things that I didn't know that were there. So for example, just compile the latest version from the repo. And then I discover many things. So let's start with the basics.
32:00
So for example, we have a list. And then you want to append an element. What do you use? Append, right? And then what if you were to append an element twice? Nobody knows? Any core developer knows?
32:21
You need to use append to append, right? What if you want to do something like appending something at the beginning of the list? And don't give me the boring answer of insert. Exactly. So you need to write append backwards. Right?
32:44
But most importantly, there are many other things that I didn't know. For example, I noticed that there was a new method called translate. And then I checked, well, that's really convenient. We are in Czech Republic. I mean, we don't speak English so well. Sometimes we make errors.
33:00
So I was just checking it out. And then I said, okay, maybe we can do some translate and then use the code. Let's wait a little bit. I don't know what uses maybe JWT or something like that. And then I decided to see... Well, I have no idea how Czech is, right? So maybe you can help me, the Czech speakers. So if I want to check if this element is inside this list,
33:24
how should it be here? It's not in, right? And yes, it works. So if I want to see, for example, this is not there, right? It also works. So I noticed that also everything else in translate, we don't have enough time.
33:43
But the simple thing that we always teach our people, okay, so you want to do a for loop, right? So you do an I don't know. And then you have it.
34:06
But the second message that I wanted to give you is that, of course, that maybe not the proper solution to approach Python to more people, let them speak it. The proper approach is to work in the documentation. Here you see a really beautiful diagram that I'm really proud of it.
34:21
This is all the people that contributed to the Spanish translation of the Python documentation. You can see all the names there. And now I have a task for you. So I was checking the languages that we have in the Python documentation, and there is no check there. So I think that you have something to do now. You guys remember having the docs in our language in general,
34:42
it's kind of like people can feel like home. And with that, I just wanted to say let's enable more people to learn Python. Thank you. Thank you. The next speaker is Gabriel Joer.
35:02
And he will tell us something about artists.
35:21
I'm ready to be here. Yeah, like this. So hi, everyone, in this afternoon.
35:41
My name is Gabriel Joer. I'm for the Alba Synchrotron, which is a scientific infrastructure. We do things with synchrotron light. And we have here presenting introducing artists. And it's a work done with Kino and me.
36:02
And the idea of this package is to work seamlessly between different packages in CPU, GPU, and in the next future, TPU also. So why Artic? So what's the problem? So in science, we used to look for high performance,
36:23
and we are testing different libraries. And at the end, we are using different frameworks. NumPy, PyTorch, GooglePy, and other libraries for transforms and in general. And at the end, we found out that we want to have a common access
36:42
for the different implementations that even though some of them, they have the useful, they are not enough. So sometimes the functions doesn't return the same, or they are not interchangeable, and the path to get to the function is done the same.
37:00
So for making the code interchangeable and running on different hardware, CPU, GPU, and different devices with different libraries and moving the data here and there, sometimes it's problematic. And we came up with the idea of having another library,
37:21
having different framework backends and a common API for an homogeneous using of all of them. So the approach is using also the UFOs, but defining a frame, which is a combination of a device
37:44
and the framework backend. Then we use artist arrays, which combines the same data and the frame. And then we can extend the different frameworks writing the framework backend for the different, extending new functions when they are not there,
38:04
or unifying the output in form of an artist array. So I am not brave enough to do a live demo, but the idea is like you can import artists
38:20
and create a frame. You can choose your framework of choice between NumPy, Kupy. You can create the arrays in any different, either NumPy, Kupy, PyTorch. You can move them around from CPU to GPU.
38:44
Here it's very explicit, but it also has default frameworks for doing it easily. Then we can call the function seamlessly. So for example, here we can call once,
39:00
either in CUDA or in PyTorch. But we also keep the idea of having a common API. So in Torch, you can call a brand or any other function as you will do in NumPy. But we also keep the original framework in case you are more comfortable,
39:21
but you have to be aware in that case that in which framework you are. So the current status is that it's modular. So you can extend the frameworks adding more implementations as entry points. It's expandable as in terms of modules. So the idea is that you're implementing modules
39:42
or for the task force where we can work with different liberties, transformations, and rotations, tomorrows, spectroscopy, and other scientific cases with a common way so we can run them and test them in CPU, bring into processing in GPU in the farms,
40:02
or next also working for GPU. It was thought to be already published, but not still, so I guess in a few weeks we will have it public in the repository in GitLab. And that's all. Thank you very much.
40:26
Thank you. Our next speaker is Miro from our local Czech community. Thank you. I am so nervous I can't find my HDMI connector,
40:40
but I found it. It's on the left. Okay. So what happens now is that I want to mirror this. Is it working? Probably yes. Hello. So I've been at this conference for a while,
41:01
and every time I met someone new or someone joined our table when we were eating, I handed them a sticker, this sticker with the old logo of what I'm going to talk about. And a lot of people were like, yeah, I know the thing in the middle, I know the thing on the right, but what the hell is the thing on the left? And I said, that's Fedora.
41:20
That's Fedora loves Python. And people say like, what is Fedora? And I was like, okay, you didn't know. And so I decided to tell it to everybody once instead of doing it 100 times. So Fedora is a project that goes for Fedora Linux, which is Linux distribution. I know I lost half of you now, like I don't do Linux.
41:41
But unlike other operating systems, we are not trying to target everybody. We try to target the users that create, whether it's code, design, whatever, makers, not just consumers who watch YouTube videos. And what I do and what we do in our team
42:00
is that we try to make Fedora the best operating system for Python programmers. I have this assumption that we have some Python programmers here. Do we have some? So why would you want to use Fedora Linux if you use something else? Obviously, it's because we have Python.
42:21
That's not very, like, everybody has Python nowadays. But the thing that Fedora has, and I don't know, Debian doesn't, for example, is that if you have Python, it is Python. It contains everything. So if you have Python in Fedora, which is almost always, you can straight out go, create a virtual environment, use pip to install stuff.
42:41
You will not get weird errors that you need to install some additional packages and stuff like that. That's good, but there are other operating systems that offer this as well. So what we have more is that you can install almost any Python at all. So for example, if you go and you do sudo dnf install,
43:01
which is like the natural way to install packages on Fedora, or you can use a clicking thing if you prefer, you can install Python 3.12. You will get the latest and greatest beta 4. And it's not just Python 3.12. If you, for example, install talks, it will by default install all the pythons that we support so then you can run your code,
43:22
your tests on different versions of Python, be it old pythons that are not supported upstream but are supported, for example, in some enterprise distributions, be it the new pythons that haven't been released yet, be it PyPies. We have that all and we keep it up to date. It usually takes a few days because there is some way of testing
43:41
after upstream releases it, but we have this and you will have this on your computer if you use Fedora. You don't need to compile your own. You don't need to use some PyVamps or whatever. You just get it. What's also important for us as Python developers is that our Python is almost vanilla.
44:01
It's almost. We have two patches. 10 years ago when I joined the team, we had 200 patches in Python 2 and lots of Linux distribution patch a lot. We now have only two patches and we have a long-term goal to get rid of all of them. So whenever we need to change something, we go upstream to see Python and we talk to them and we talk to them and we talk to them
44:22
and we try really hard not to have patches that are only ours. We also have a Fedora Python classroom lab which is something you can download and then install in an environment when you teach people who don't have their own Fedora. It also comes in containers and background boxes.
44:41
So you can use that if you have a workshop or if you teach beginners, you can use Fedora which is optimized for teaching Python. There are pre-installed stuff and you don't have to set up the environment. We also have a GitHub action. So if you want to use Fedora on your CI because you are not yet ready to use it on your computer
45:00
or because you already are, you can check out Fedora Python talks GitHub action and use that. It basically runs talks with all of our pythons on GitHub actions. What we also do is that we drive changes forward. So for example, we spent the last half a year or more
45:22
integrating Python 3.12 which is now in the beta phase into Fedora and we will be rebuilding the world 5,000 packages we have with the new Python. We've been reporting problems to upstreams, be it Python, be it the projects. We try again, again with new releases again and again.
45:42
And you're welcome. And 10 seconds. We also do this for other projects like Cite and Python and everybody else. We try to be very cool with our upstreams and contribute a lot. So if you haven't checked out Fedora, fedoralofspython.org. Thank you very much.
46:06
Thank you. Our next speaker is Sebastian and his topic is named F star star k it.
46:25
So I gave this talk last year but by talking with a bunch of you and checking out your talks, I realized that you all still have bugs in your code. So here we go again.
46:48
No, it's good, it's good. I got it. Don't worry about it. Oh, I lied. Is it not this one? Is it USB-C? Oh, sure, sure, sure.
47:01
I'm gonna have to... It was not my fault.
47:32
It's a USB-C connector. Yeah, the other side there. Or a straight HDMI connector. Maybe just put it in this guy. Put it in this guy. Put it in this guy.
47:57
Well, this kind of sucks.
48:01
Still nothing? Can I connect something else directly? Can you just do the HDMI? Yes, I can but refer this reduction because we know that it's already working. Well, it doesn't seem to be working. This worked fine earlier today for my talk.
48:39
All right. So like I said, some of you guys still have bugs in your code.
48:43
So I'm gonna teach you how to fix production code in five minutes. Disclaimer, this may get you fired. So don't you hate it when it's like 7 p.m., you spent the whole day coding and you've tested nothing
49:01
because why would you? You haven't used type hinting because your CTO told you not to. And your code doesn't work. It has a bunch of bugs. You just want it to silently work and pass all the tests and go to production. Introducing FuckIt, the error steamroller. FuckIt is a Python package. You can just install FuckIt with pip install fuckit.
49:22
And then whenever you have a function that doesn't work, you just use the fuckit decorator and it works. So as per the documentation, the module is like violence.
49:42
If it doesn't work, it means you're not using enough of it. So you just chain FuckIt calls. All right. Finally, there's advanced features you can use. You can use the FuckIt context manager when there's a bunch of code. You don't know what's failing in it, just with FuckIt and it works.
50:02
You can even use it to fix broken imports. Now I know some of you are a bunch of open source guys and you're worried about using other people's code, but don't worry about it. It's with a do-what-the-fuck-you-want-to-do public license. It only has one clause. You just do what the fuck you want to do.
50:24
So the next time your intern, your boss, or one of your friends comes over and says, oh, no, production is fucked. FuckIt.
50:43
Thank you. And the last speaker is Charles, who will tell us something more about Jungle Girls.
51:23
Let's try.
52:01
Okay. Let's talk a bit about myself. I'm Charles. My pronouns are she, her. I'm a lead backend engineer in Kraken Tech. Lovely plushies. I'm a board member of Django Software Foundation. I'm serving as a vice president this term, this two years.
52:23
I'm a co-organizer of PyCon Turkey. Also co-organizer of London Django Meetup. A member of PyLadies, as Deb mentioned.
52:40
I'm a new PSF managing member. But what am I talking about? All these things at the end of a three day conferences. Because it all started with me starting to organize a Django Girls workshop. So today we're going to talk about Django Girls and how it can empower me, you, and everybody.
53:06
So what's Django Girls? Django Girls is a nonprofit organization that helps volunteers organize a one day workshop. The idea is to empower women about programming.
53:24
Funny enough, the Django Girls actually born in EuroPython in 2014. Ola and Ola decided to run this beautiful workshop, Django Girls, to teach women programming.
53:40
And now, today, after nine years, we managed to do over a thousand events all over the world. Like, over 100 countries. With, like, 23K participants. It's, like, it's huge, right?
54:01
But what's so good about Django Girls? So everybody has their different takes from it. What is good about Django Girls is, like, first, it's, like, zero barrier. Like, you don't have to be you don't have to have a detect background.
54:22
It is just to show programming is available and doable for everyone, by everyone. And, like, it's a volunteer-run event. And it's not only for the attendees. But it's a very good opportunity for, like, us.
54:45
Mentees. Mentors. Like, what we do is we gather together. We follow the Django Girls tutorial. It's actually quite, like, self-explanatory tutorial that you can even do yourself as a total beginner. But we sit together in small groups.
55:02
One mentor. Three participants, usually. And we hack all day. We empower each other. I'm going to mention also about a few other things. Like, there is some, like, huge community effort. Django tutorial translated to, like, I don't know how many languages.
55:20
More than Django tutorial itself. This is a map. And it is so easy to start your own event. You can just, like, find a few other people who is, like, as patient as you about programming
55:43
or increasing the diversity. Or just, like, empower the other fellow women developers. There are, like, beautiful materials. Even if you're not organizing a Django, I highly recommend you to, like, take a look.
56:05
Tutorial is always good to, like, suggest to beginners. All beginners. Organizers manual is a great tutorial if you're, like, organizing any community event from a meetup to a conference. And, like, coaching.
56:23
Just use it daily if you're mentoring anyone at work or in your open source project. And we don't only, like, do programming. We do crafts. We do have fun. We do have dinners. We do lots of stuff.
56:42
And I'm here because I want you to care and have fun. See you next year.
57:07
Thank you all for your great talks and musical performance. Now I would like to welcome on stage Neil, who will tell us what are the prizes for AI game tournament.
58:02
So I'm here to tell you how the video game tournament went. It was awesome. Before I do that, I'll tell you what happened. I'd like to thank the people that helped me set this up. Raquel, Artur, Sébastien, Patrick, Vibi, and Sonio.
58:22
I'd also like to thank O'Reilly for providing books as prizes. And also a big shout out to the Numberly guys for 3D printing the trophies that you see there. So we had 15 teams that took part.
58:43
And, yeah, without further ado, those are the results. Missing the top three spots. It was actually super close. The scores were pretty tight. So in third place, please welcome to the stage, if they are still here, Alpintroni.
59:58
Second place.
01:00:00
Artists 65 points anyone from the artist team will will find you later and give you your prizes
01:00:31
and the winner is dot dash dash dot with 85 points congratulations to everyone
01:01:03
thank you for listening see you next year