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

EuroPython 2017: Lightning Talks - 2017-07-14

00:00

Formal Metadata

Title
EuroPython 2017: Lightning Talks - 2017-07-14
Title of Series
Number of Parts
160
Author
Et al.
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
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 Talks [EuroPython 2017 2017-07-14 - Anfiteatro 2] [Rimini, Italy]
95
Thumbnail
1:04:08
102
119
Thumbnail
1:00:51
CodeTemplate (C++)Kernel (computing)LaptopStack (abstract data type)Data typeElectronic visual displayQuery languageDenial-of-service attackParsingEuclidean vectorGame theoryHyperlinkLaptopCASE <Informatik>Parameter (computer programming)Message passingTelecommunicationDifferent (Kate Ryan album)Set (mathematics)Demo (music)Stack (abstract data type)CodeMereologyKernel (computing)Meta elementBuffer overflowUniform resource locatorGUI widgetSlide ruleBitMultiplication signPoint (geometry)Water vaporDialectProcess (computing)Right angleType theoryClique problemMechanism designTraffic reportingGoodness of fitMoment (mathematics)Functional (mathematics)Endliche ModelltheorieQuicksortComputer animation
Multiplication signMathematicsLevel (video gaming)WordMoment (mathematics)Semiconductor memoryFormal languagePhysical systemGame theoryChainDrum memoryGoodness of fitTerm (mathematics)Moving averageElectronic visual displayWebsiteVideo gameSlide ruleMereologyLikelihood functionInformationMetropolitan area networkReliefRow (database)DampingComputer programmingRight angleGodNetwork topologyPower (physics)Recurrence relationReading (process)Physical lawDemosceneComputer animation
Multiplication signTransformation (genetics)Disk read-and-write headComputer animationJSON
WebsiteTouch typingMultiplication signNumberWindowWordProgramming languageComputer architectureMusical ensembleTouch typingProgrammer (hardware)Java appletEvent horizonSoftware developerMereologySpeech synthesisGroup action
Control flowRadio-frequency identificationBitSingle-precision floating-point formatMultiplicationMultiplication signLine (geometry)Computer animation
Computer fileSequenceEntire functionMultiplication signComputer fileOperating systemGradientClosed setString (computer science)Row (database)Speech synthesisEscape characterPlanningComputer animation
CompilerPairwise comparisonReading (process)INTEGRALFacebookRegulärer Ausdruck <Textverarbeitung>Multiplication signSoftware testingUnit testingMathematicsCodeDialectInheritance (object-oriented programming)Parameter (computer programming)Configuration spaceType theoryPoint (geometry)Right angleComputer animation
Function (mathematics)Execution unitEquals signSynchronizationBookmark (World Wide Web)Revision control1 (number)Multiplication signTable (information)Unit testingUniform resource locatorQuicksortLetterpress printingNetwork topologyParameter (computer programming)PRINCE2Formal languageExecution unitOperator (mathematics)SpacetimeRight angleMeeting/InterviewComputer animation
Arithmetic progressionLengthState of matterLevel (video gaming)Queue (abstract data type)
Electronic data interchangeElectronic mailing listSlide ruleNeuroinformatikOnline helpMultiplication signPhysical systemSelf-organizationCounting
Interpreter (computing)Semantics (computer science)Formal languageMultiplicationExtension (kinesiology)Modul <Datentyp>Interpreter (computing)Semantics (computer science)Formal languageRoundness (object)BitExtension (kinesiology)Module (mathematics)LoginCondition numberThread (computing)1 (number)NumberSpacetimeEndliche ModelltheoriePoint (geometry)TelecommunicationSoftware developerStrategy gameSocial classPole (complex analysis)RoboticsDivisorBit rate
Slide ruleBeat (acoustics)Data structurePoint (geometry)Presentation of a groupInstance (computer science)Type theoryOnline helpProjective planeSpeech synthesisCommitment schemeMultiplication signNumberMessage passingState observerRight angleEvent horizonFamilyTask (computing)Video gameClient (computing)BitComplete metric spaceMaterialization (paranormal)Order (biology)FeedbackGoogol
Software testingCore dumpElectronic data interchangeErlang distributionBroadcast programmingImage registrationComputer programFatou-MengeQuicksortMultiplication signComputer virusBitPoint (geometry)Software testingRule of inferenceMoment (mathematics)Physical systemCASE <Informatik>Web pageResultantImage registrationRight angleDataflowComputer programmingStatement (computer science)Software frameworkSource codeOpen sourceTest-driven developmentProcess (computing)Workstation <Musikinstrument>Computational scienceNeuroinformatikCore dumpAlgorithmMereologyServer (computing)Software developerExecution unitControl flowEmailInformationUniverse (mathematics)Linear regressionLibrary (computing)Presentation of a groupPhase transitionWebsiteMobile appWritingProgrammer (hardware)Web 2.0AuthorizationCrash (computing)Parallel port
MIDIBitArchaeological field surveyMusical ensembleProjective planeSound effectLine (geometry)CuboidScaling (geometry)Greatest elementPhysical systemMereologyTable (information)Link (knot theory)Different (Kate Ryan album)Computer programmingPopulation densityFrequencyGraph coloringEngineering drawingDiagram
Electronic mailing list2 (number)Multiplication signRight angleCASE <Informatik>Standard deviationAreaNoise (electronics)ResultantComputer animation
Electronic mailing listDigital photographyRoundness (object)Slide ruleDefault (computer science)Video gameVapor barrier2 (number)SummierbarkeitEndliche ModelltheorieComputer animation
Local GroupMenu (computing)Group actionCodeElectronic mailing listEmailNumbering schemeRootBroadcast programmingScheduling (computing)Order (biology)Form (programming)Computer fileMathematical analysisLine (geometry)Perfect groupCharge carrierUniform resource locatorDescriptive statisticsWordCodeGroup actionEndliche ModelltheorieDirected graphRule of inferenceBlogCASE <Informatik>Multiplication signFrequencyStructural loadMoment (mathematics)File formatExpressionWater vaporSlide ruleState of matterString (computer science)NumberCodeReal numberSystem callSynchronizationEmail2 (number)Computer animation
Electronic data interchangeContinuum hypothesisMultiplication signPRINCE2AdditionSoftware developerOpen sourceTransport Layer SecurityContinuum hypothesisAnalytic setLecture/Conference
Event horizonOpen setTwitterInformationEvent horizon6 (number)System call8 (number)FreewareCoefficient of determinationComputer animationXMLUML
Reading (process)Multiplication signComputer animation
Software developerHacker (term)Software engineeringSoftware testingExecution unitPrincipal idealExecution unitData modelException handlingContext awarenessSystem callMultiplication signSoftware testingFunctional (mathematics)CodeSoftware engineeringSoftwareStudent's t-testUniverse (mathematics)TheoryMusical ensemblePeer-to-peerContent (media)Boss CorporationFigurate numberPresentation of a groupLevel (video gaming)Sound effectElectronic visual displayEndliche ModelltheoriePhase transition
Continuous trackGoodness of fitArithmetic meanMultiplication signJSON
Graphic designMultiplication signWeb 2.0Food energySoftware developerComputer programmingComputer animationMeeting/Interview
VideoconferencingExecution unitHypermediaEvent horizonMedical imagingNumberPower (physics)AutocovarianceDoppler-EffektPhysical systemInstance (computer science)Commitment schemeClosed setAuthorizationWord2 (number)Presentation of a groupJSON
Level (video gaming)Insertion lossLecture/Conference
Event horizonRepresentation (politics)Event horizonDigital photographySelf-organizationElectronic mailing listRepresentation (politics)Computer animation
Musical ensembleDependent and independent variablesRoundness (object)Computer animation
Transcript: English(auto-generated)
And so, Pavlo, take it away, Jupiter, this is Houston. Hey guys, good to see you all. Thank you for staying. Right, so TLDR, what I'm gonna talk today is on bit.ly,
talk-to-jupiter, so there is an example. Okay, right, so the point of this slide is like, if we want to talk to Jupiter, there is no need to send an expensive rocket to Jupiter
with eye. Okay, so what am I going on today? So, Jupiter notebooks, probably a lot of you use them, and sometimes you probably have a use case where, okay, well, I have a Jupiter notebook, but I want to modify a set of arguments and rerun it for a slightly different set of arguments,
and you end up creating a copy, like saving a copy of your notebook. So, essentially, when you have the same code base, but you want to run the same code with a different set of arguments. So, at the moment, Jupiter notebooks
are not created as templates, they're not created as functions, it's not easy to inject arguments into them. So, I'll show you a way of doing that. Okay, so, if you Google the same question, how to run Jupiter notebooks with arguments,
this kind of JavaScript snippet comes up on Stack Overflow. It's good, it works in notebooks. It does not work if you want to create a nice looking Jupiter dashboard, it does not work there, because kernel is not accessible through the JavaScript.
But, on the other hand, this kind of snippet can live in custom JS if you want to use it. Well, but, we do not have a problem, so there is a way, and actually, my slides are kind of meta slides,
because they are a notebook, they are the solution and also the slides. Well, actually, I'll show you. So, this is the key, better? Can you see that? So, this is the key part of the code. So, instead, what we want to do is we want to register a communication channel,
so the JavaScript side of the notebook to start talking to the Python side. So, for that, you need to, so there is a mechanism, you register a channel, and you send a message from the JavaScript side, and you register a handler on the Python side, and then you will receive the message.
So, in this case, what we're gonna be sending in is the URL of the notebook, and if we can supply arguments to the URL, we can decode them and use them as arguments. So, demo time. Okay, so, as I said, this is the same notebook that I'm using,
so F11 to show you, that's not visible, is it? So, but basically, there is a URL. So, your notebook, and then I pass arguments saying items, foo comma bar comma baz, and I want to select some of them.
So, let's see what that does. So, if I just go ahead and rerun this. Okay, so, this notebook does not do much, but what it does do is creates this multi-select widget.
It gets the items from the URL, and it gets the selected values from the URL, and selects those items. This way you can pass, so let's say if you run your notebooks for different regions, for different stocks, for different, whatever, however you slice your data,
this is the way how you can parameterize your Jupyter notebooks. Don't make copies of your Jupyter notebooks, use this kind of approach. So, just to show that it actually works, I can select bar,
yeah, it's fine. So, this is what you would do if you want to select, let's say, different geography or different stocks. So, here we go, and we select a different item. So, notebook is aware of what you want to achieve.
All right, skip to the end, and this is the URL, thank you. Okay, so what was a cool thing? Now, we have to, yeah, Daniel Pope on this stage,
and we need Pavel Shavchenko. There you go, go prepare. We have not that much time left. So, well, as you can see, how many of you were in yesterday lighting talks? Okay, but no, that's cheating.
How many of you ended yesterday, okay, now I see. So, well, the one that were in yesterday lighting talk, know me, I'm later, I present myself yesterday, but now I have another one, you know, because I thought that today
you are going to be lot of more, and I was kind of afraid. I took him just to sacrifice. So, you prepare, there you go. So, I spoke earlier in the week about massages that we were doing
at the social in aid of the Python Software Foundation. If you were at the social, I probably spoke to you, and chugged to you, chugging is the term for charity mugging. So, I now have slides, so I can actually show you a picture of Rob Collins,
who I mentioned died, sadly died last year. People last night were, sometimes shared a few words with me about their memories of Rob Collins. Here he is massaging in 2013 in Florence. That's a chain massage, advanced technique.
I did not want to give the impression that Harry Percival is dead. He is, as far as I know, alive. I've spoken to him this week, so he's, in fact, he's really healthy. This is him massaging last year. This is in Bilbao.
And then this was last night, so we had quite a parallel system of massaging going on. People said they were good massages, so that's great. So, how much did we raise? Drum roll.
1,070 euros and 68 cents, and, I didn't put it on the slide, 20 Polish slotties. So, to change the subject and use some of the rest of my time,
I am a hobbyist games programmer, and for the past, I think it's nine years, I've been participating in a week-long Python games programming competition called PyWeek, and you are challenged to come up with a game in a week, exactly a week,
on a theme that is given to you at the moment the contest starts from scratch, and the majority of it has to be Python. If you were around on Monday, and maybe Tuesday, we learned at EuroPython this year that somebody has done the work
to make Python a scripting language for the Godot engine, and also the Unreal engine. So, this upcoming competition in October, you would be able to use Unreal, which is amazing. So, thank you very much to the people who did that, whose names I forgot to put into my notes.
I will just, how much time have I got? Not long. Okay, two minutes, that's loads. So, I was going to show you a, this is where I should have mirrored my displays. This is an entry that I,
whoa, I wrote for, this is my previous entry. It did quite well, but it didn't win, so I'm looking for a win in October. So, if you want to compete with me, yeah, bring it, bring it. So, this is a murder mystery set on an ocean liner, and you sort of, oh, there's a corpse, oh.
You can sort of explore the crime scene. Two glasses, what does that mean? And then we can sort of go and, anyway.
So, you can download that on the PyWeek site and solve the mystery for yourself.
Thank you. The award-winning Daniel Pope there. Can we have Pavel up to the stage? I feel like I should explain the pink hat. Several times during the week, people have asked me, why am I wearing a pink hat?
And the answer is that I'm pretty much bald, and this is a really sunny country, and it's kind of embarrassing of having a pink head instead of a pink hat. And I thought it would make people, make it easy for me to be recognized, but the problem is now when I take it off, nobody recognizes me. So, I'm going to take it off now, so you can all see the transformation, and then I don't have to wear it, which would be nice.
It's me. It's me. Ready? Go, Pavel. Can you see it, guys? Hi, I'm Pavel, and I'm from Malta, and please raise your hands if you're from Malta.
Yeah, we have two people, three, all right. Now, another raise of hands if you've ever been to Malta. Okay, quite a few people, that's great. I'm giving you a few more reasons to visit if you like, so there's the other, well, there was the other window, but we've got a few more beautiful architecture,
more beautiful architecture, a couple of beaches, and developers, well, Java programmers. So, we're going to change that by helping Malta love Python.
Woo, all right. So, we've set up a Python user group that's called PyMalta, and the goals are to bring developers together, act as a hub. We're going to do this by organizing meetups, social events, and talks. We're going to grow our numbers by inviting users of other programming languages and speakers
from around the world, like yourselves. All right. So, yeah, if you're interested in talking, please, like speaking in Malta and visiting, so please talk to me after. But if you are in Malta, please get in touch. And these are our contacts, and that's it.
Thank you. Is Lucas Langa prepared? Okay, go upstairs. And the Amsterdam Airport crew, I really hope it's just a part of the crew. We have not that big a stage, so okay, prepare.
He's laughing, I don't know. He's funny. Are you prepared, Lucas? Yep. We have no time. It's the last day. People is getting nervous.
Aren't you? All right. I feel that you're a bit hungover to be nervous, but okay. Okay. Hi, I am Lucas Langa, and you are not running Python with warnings. You should be running Python with warnings. So for the next five minutes, I'm going to be your mom. I'm gonna be giving you a single piece of advice
multiple times, and you're not gonna get it, so I'm gonna be bringing up stuff from your past that would be so much better if you did listen to what your mom is saying, right? So you should put on your coat, or you'll catch a cold. You should never climb trees,
or you're gonna fall off and break your neck, and you should be running Python with warnings enabled. Remember the time when you were hoarding files and never closing file descriptors, and then your entire operating system is unhappy because you were using all the file handles and everything went to shit? So that would totally not happen
if you were running Python with warnings enabled because it would warn you, right? Remember when you were coding so hard, focused on your creative aspect that you were using strings all wrong? Well, if you were using warnings with Python, that would never happen.
You probably meant a raw string there, or maybe you misspelled an escape. Speaking of escapes, remember that one time that your escape plan turned out not to be as smart as you thought? Well, that would totally not happen if you were using warnings with Python. And in fact, at Facebook, some of HHVM's tests,
integration tests, are in Python. And this warning discovered invalid regular expressions that never matched, so there were unit tests that were doing nothing all this time because people just knew pro-compatible regular expressions or whatever, so use this. Oh, and remember that time when you were bitten by an unexpected bite?
Yeah, so that would totally not happen if you were using warnings with Python, so do that. When Instagram switched to Python 3, some of our code seemed to ignore configuration changes, and we were super confused what's going on. So, it turns out, USG returns any configuration parameters as bytes.
So, the check was always false due to mismatched types. That was the most expensive piece of Python code that we had. But moving on, it's no longer 1999. Some of your favorite syntax idioms and APIs are deprecated and will get removed in future versions, so you need to move on. You would be informed which ones those are
if you were running with warnings. And to finish it off, like remember that time when you failed to kill an orphan? Well, that turned nasty, didn't it, right? It's like a lot of wasted resources, sleepless nights. Like, that would totally not happen if you were using warnings with Python. So, I could just go on and go on and go on, but if I didn't convince you by now,
like, it's sort of hopeless, right? So, at least do it during unit tests. WD prints the first occurrence of any matching warning for each location where the warning is issued. Dash B prints the first occurrence of bytes warnings for each location where the warning are issued. And you're thinking, yeah, but I still live in the past.
Well, you can still run with warnings. There, you have to do something else, like, which is dash T, which is warnings for tabulations and spaces, whatever. And obviously, dash three, which means I really wanna switch to Python, but I don't know what will break. So, please, as your mom, like, use warnings with Python.
Thank you very much. Thank you, Wukash. Can we have? Yeah, we need the Amsterdam Airport queue to go on stage and Roberto Martinez. Where are you, Roberto? Okay, just go and prepare.
Okay. Wukash, you just spoke, looks young and handsome, but I met him. He does? I met him, I think so. Oh, cool. But, but, but I met him eight years ago, you're a Python. Yeah, then it has to be young, you know. Yeah, he's older than he looks. Okay, you ready?
Almost. Almost? Really? Seems so. Okay, I'm not judging no one, so. If you don't need the slides, you cannot do without them, too. Is someone that is going to make a lighting talk
without slides? Think about it, you'll get, like, up in the list. Okay. Nope, nope. Really? Nobody needs the slides, absolutely. You computer people.
Okay. Well, if you, if the, Roberto is prepared, maybe we can just, because we can stay waiting for a long time. We need to close, do your Python. I know, you want to stay. I know that you want to stay forever, but we have to end sometimes.
I'm gonna count you down from five. We need to sleep. The organization needs to sleep sometime. Count them down from five. Five, two. Sorry guys, thanks for trying.
We've got too many talks to get through, I'm afraid. So Roberto, Roberto, are you there? Can we get the next speaker? This is Maciej, up to just kind of stand next to the stage, that'd be good. Are you there, Maciej? Yes. Did I pronounce it correctly? Yes.
And now, was there a game? Yeah, the HTM, don't. Okay, really, you can maybe do it with those slides. I can let you do the Python if you needed to.
A puppet show or something. Nope, this is like they don't want. I love how in these kind of places, you see a problem and there are like
lots of people just trying to fix it, but no one's here. You're like throwing ideas. Wow, this is awkward. He hasn't got HTM. Okay, I think, I'm afraid,
we're gonna have to give up on this one as well. Don't worry, we're not gonna run out of speakers. Thank you for trying. Can we have a round of applause, please? This is actually my eighth EuroPython in nine years.
See, I'm older than Lilac as well. Oh, so you're like from the dinosaurs and that kind of things, cool. I've been coming since Birmingham. So I originally went to EuroPython because it was in the UK and it was cheap.
Hey, who likes spreading in Python? Quite a few people. Who likes the global interpreter log? Hi, global interpreter log.
So we removed it. Now what? Turns out it's not that simple. We need to think about language semantics because right now we have language semantics of C. If you write threads that clash, you segfold. Not great. We need to think about the multi-threaded performance
which requires a little bit of thinking. We need to think about multi-threaded tools. So just because you have race condition doesn't mean it cannot be debugged. PDB right now would happily stop one thread and let everything else go which is not always a desired behavior. So those are the things that still need to be done
after we remove the gil. We need to think about CPython C extension modules which we support in PyPy these days. And that probably requires an extra lock and a bit of thinking here and there. So we are looking to raise $50,000. We already have some pledges to remove the gil in PyPy.
And that was a very quick lightning talk. Thank you very much. Thank you for being that sort of time. Okay, then now Niklas, Niklas Maeser.
Well, get prepared. Sorry. Christian Brother who has no slides is going to give us a super awesome talk. Okay, now what do you have to do to give great talks at EuroPython conferences?
There's an easy recipe. First, give a lot of talks and second, get them evaluated. This is why we have the talk feedback here. Over the past few years, I had the opportunity to actually actively evaluate 500 talks.
200 of these were on data science that I did for clients. 100, they were talks I gave at public speaking clubs. 100 at international speech contests. And 100 were my own talks that I got evaluations to.
And I made a couple of observations. Number one is that usually structure beats data. The slides. So if you are preparing a talk, try to focus on making your structure very clear.
Having three to six main points, not more. Having a slide deck is not a structure. Second, story beats CV. A story can be something very simple. For instance, a claim like,
let's see whether we can get this Python package installed in five minutes, makes a story. It's much better than starting a presentation with a little bit about myself. Number three, takeaway value beats completeness.
Usually your audience won't know what you did not talk about. Nobody is claiming to say everything in five minutes. I have the feeling that improving our speaking skills is something that is worth doing in order to have better conferences in the future.
And this is why I started collecting materials to make speaking workshops, speaking clubs, events to improve our speaking skills. And you find them on Google if you type speech underscore projects. I repeat, speech underscore projects.
It's on GitHub, contributions are welcome. Thank you. So, Niklas, can you go up and Mike Mueller? Where are you?
Okay, come here and prepare yourself. I really hope that you get the message from the talk we have just had. No slides, more time. And there we go. All right, thank you, hello. Let's talk a bit about TDD.
Three years ago, I went to a conference called EuroPython. At the time it was in Berlin and there was a keynote actually about the topic. Will I still be able to get a job in 2024 if I still don't do TDD? Right. So, this year I'm again at EuroPython and there seems to be,
I didn't see any talks about TDD in particular. There's a lot of talks about testing frameworks and other techniques for testing stuff. So, I wanted to find out. Is it just because everybody is doing it or why is nobody talking about it anymore? So, if you would help me out,
I would put up two statements and if you would agree that this statement is true about yourself, just raise your hand, right? I use TDD. Okay, so you almost, no, no, no, please leave them up. Please leave them up. Okay, that's, yeah. Not everyone, please leave their hands up still
and just take them down again if you don't agree with the next statement. And the next statement is, when I implement a new feature, fix a bug, I write the test first. So, I don't see that many hands going down, but some. Okay. So, this is a bit interesting. Quite often you'll see people,
you're gonna tell you, oh yeah, I'm doing test-driven and then you say, oh cool, and so how is this new feature coming? Oh yeah, it's just, it's all done. I just need to write a test, you know? So, this leaves me confused. Because you're not doing test-driven development,
you're doing development-driven testing or testing, really. It's still good. I mean, you still have the unit tests in the end, but it's not really helping your development. So, yeah, I just wanted to quickly do, I guess, a crash course of test-driven development
so that we're all on the same page again. Right, you wanna do a new feature. You don't really know how it will look in the end, but you know what it should do. So, the first thing that I do, I sit down and I think really hard about the tests. And I want to define the tests so that they really fit what I want the feature to do in the end,
and they rule out all the things that I don't want it to do. And then I just go and shut half of my brain off and think about what I'm going to have to dinner, and just develop on. And I know if the tests pass, I'm probably done. So, last year I went to Australia and they have a thing
and maybe I can just use it. So, I run the tests and it doesn't work. Ah, because the metal things, they need to re-round, right? Okay, so I do another thing. Still doesn't work, okay. Now I need to get creative, do something else. It looks interesting, I guess, but the tests still don't run now.
Okay, I get crazy, I have low blood sugar, now I'm hungry, so I just do a thing, and what's that even, I don't know. Okay, tests still don't run. Okay, at this point I need to take a break, obviously. So, I take a break, have a coffee, come back, think about it a bit, and I come up with this thing, and yay, the tests work.
So, I'm done, cool. Test-driven development. So, yeah, test-driven development. If the tests pass, the app works correctly, right? Ah, that's not quite the case. So, yeah, remember the tests have to be good. So, the tests are really the thing that you need to concentrate, harden,
write good tests, and then, yeah. And then do the development. So, remember, write tests, shut half of your brain up, develop on something, and profit. Thank you. Cool, so, Mike Muller, are you,
and Alexandra Muller, where are you? Where are you? Okay, so, come here and prepare. This'll be quick, Mike's a pro. Okay, there we go. You're a sci-fi.
Hello, so, you're all at a conference, but there are more Python conferences than just your Python, and I would like to introduce your sci-fi 2017, which is only a few weeks ahead. Actually, we have a anniversary, will be our 10th edition, so this will be a very special conference.
It will be in Erlangen, Germany, at the university, and we have a full week, so we'll start August 28th, and we'll finish September 1st. The conference has two days of tutorials, so we typically have a beginner's track
and advanced track, and we often have authors of open source library introducing things like NumPy, Pandas, and many other scientific libraries. These two days are followed by two days of talks, and we have presentations, but also have posters, so if you would like, you can also present a poster.
And finally, on Friday, we have the sprint, and the sprint on scientific libraries, obviously. The registration is open, so if you would like to come, please register now. You can find more information at this link, as you can see down there, you'll see it by org 2017.
We have a lot of topics, so we cover pretty much everything that has to do, something to do with Python and scientific computing, array computations, parallel computations, visualizations, data flow kind of things, but also something about the scientific Python community,
and everything, general purpose tools that can be used for science, too. So if you're a web programmer and you would present something that can be used for scientists, you can also do this there. Of course, we talk about algorithms and other topics that are related to the Python science. The program will be published soon, that we are currently in the phase of reviewing
the proposals, so we have quite a few proposals, and we are heavily working on the program. We also have a very interesting keynote, so Julia Rohr will talk about how to fix a scientific culture, so if you want to have more details, please go to the website.
And you can also become a sponsor, so if you would like to support the scientific Python community, please talk to me or send us an email, and you can reach the scientific Python users in Europe. And the only thing now that's left over is you have to come to the Python EuroSciPy conference.
Thank you very much. Oh, sorry. If you just wait that.
Okay, take it away. Hello, I want to talk a bit about how the cultural background affects our perception of music. I have dealt with this topic in this last year
for a project for my school, and for that I've made a survey. So here you can see a scale, and I use the scale to represent the music in different cultures. This I transformed into something you can hear, and I use this table here, and these are the frequencies for each note.
I used this program Audacity, and made these scales for you. They might look like blue boxes, but actually if you zoom in, you'll see this. Okay, they might look like lines now, but if you zoom in further, you'll see this, which is quite typical for a sound,
if it's a clear note. So I made these sounds, and I still needed more for my survey. I had to decide if I wanted to take that picture of the world, or that picture of the world. I decided to take the second one, so the bottom one, and I also found out that Google had this,
it knew the colors like this, and of course I knew that was wrong, and after trying and trying, I finally got a survey that looks like this. I would ask you to please take part in the survey, and ask all your friends to take part as well.
Here's the link. Thank you. Who's enjoying the lightning talks? Make some noise.
So technically we only have time for this next talk before the closing statement, but we can stretch another 15 minutes, maybe get another three talks in after this. Who's up for that? Okay, awesome. So in that case, I'll have to look down the list. Yeah, can Martin, is there Martin somewhere?
Cool, just get prepared, and we'll give Daria a few seconds actually. Oh no, it's not working. Also, yeah, the title of the talk was We Have No More Jokes About Pi, About Peace.
Cool. I'm not sure if this is a good or a bad news actually. I think that she took really hard, I think, about the 15 minutes.
Yeah, this is working. Cool. No, it was just for getting your hopes up. It's not actually working, sorry. Also, Anton Gatheris, it's going to be not the next, but the next.
So, oh, there you are. Cool. I think this is where we're supposed to make a joke about Linux on the desktop. Yeah, we should, but you know, when Harald gave these talks, when Harald gave these talks, the desktops were like photos.
We only get the default one. It's just a default wallpaper, it's very disappointing. Okay, we cannot give you much more seconds. So close. Yeah. It was like getting closer and closer. No.
Is anyone more that can give the talk without the slides? Maybe you, Daria, can go give the, Daria, can you give the talk without slides? Your slides. No, okay.
So then, yeah, Martin. Round of applause, please. It's like more pressure.
Hi, everyone. I'm Ramon. I'm Rook. And we both work at Amsterdam Airport Schiphol. At Amsterdam Airport Schiphol, we really like Python. We're working a lot with it. A lot of our models run it. We do a lot of analysis with it. But we're looking for more people
in the aviation industry that also like using Python. So in order to achieve that, we, yeah, in order to kickstart that, we created the tool which solves a problem which is probably common for many people working in the aviation industry. Because whenever I wanna do an analysis, I ask a partner or a carrier, like, what are your plans?
And they give me their schedule for the year in a very sadistic file format where my colleague Rook and I have developed a solution for. So as you can see, the flight industry started in the 30s. And to kind of sync the state of which flight is coming where at what time,
they started first working with teletype writers. Unfortunately, the slide is missing. And the format looked like this. So you see it's like a magical string that says something about something that will happen. Now, sorry? Oh yeah.
There we go. Yeah, so since the 30s, much time has passed. But the only things that changed were that now there's a biannual conference at which they sync their slots. There's also email and some API calls. There was 140 conferences already so far,
so think about that. And the format is still the same. So this is the explanation of the format. We start with the action code. Is it visible? Yeah. So this means we add the new flight. This is the flight number. This is the period in which the flight will go.
This is the periodicity of the flight, so this means it will only go on Saturdays. It will have 150 seats, and it will be an Airbus 319. It will go at noon to Linz, and it's a charter. So you see like a human readable, very condensed format. Perfect if you're using Telegram,
the old one, not the new one. So this is passed around as ser files, and this is how they look like. So we have a header, and then we have the kind of description of one flight. So this is called a slot. Actually, a slot is composed of multiple flights sometimes.
So what about this slot we showed? So we can read it with our tool. It's on PyPy, so you can use it. We read it from the disk, and we see that there is one slot in there. The header looks like this. The slot itself looks like that.
Great, but how many flights is this? Well, we can expand it, and this is actually 10 flights. Yeah, fine. So what about the real use case? So let's take somewhere scheduled of 2017 for Amsterdam. We see that there is 20,000 about slots,
and there's even a warning because Transavia likes to put 24,000 instead of 0,000 for their time. I don't know why. And now we can expand these slots into flights, and we see that in about four seconds slots into 300,000 flights.
Okay. The tool is available. You can pip install this tool. You can clone it at GitHub, and please tell all your friends in the aviation industry because I can imagine that you're not all using Serphiles at the moment, but please, anyone you know, tell them about this,
and I hope we can get a good cooperation within the aviation industry for Python. Okay, cool. So now Daria's coming again. Let's see if we can do this fast this time.
Anton, you're prepared? Cool. The next one is Jao Junior. Oh, and yeah, you were Roberto? Yeah, okay. So this time you think it will work?
Okay, then you're next. There we go. Buona sera, EuroPython. First of all, I would like to thank you very much to come into EuroPython. I met some of them last two years,
and I'm very happy to see you again here. But in some coffee breaks, I met guys that said it's the first time here. So I would like to hand a huge hand to them because they're first ever EuroPython.
So I would like to invite you to peace. This is a conference. So the first conference was in 2014, and in that edition, we made the PyJog. And you can install them, people install PyJogs. But the problem is that we don't have more jokes about peace.
So please come and help us. Why, what does it ask in our name? So we don't promise it by SS. We say peace. And it's because of the speakers.
So this time we invite Jessica McKellar that it's very nice open source software developer. Peter Wang, that it's very famous guy from continuum analytics. Some probably not very known person, Guillaume Beron, but it's about aerospace.
It will be cool talk. And we will have two social events, and it will be Pinchos, as most of you know, and Cider House.
And of course we have Beach. And we have three of them. And it's the best beaches of the Europe. And it's very well known of the food and very happy people and very calm and friendly. So please come to our conference.
It's on the 6th from 8th of October. The call of proposal is open. And it will be first day, it will be tutorials, and it will be for free. And then two days of weekend, it will be talks. And then come and to peace.
Thanks. Thank you Daria. Now yeah, Martin. Martin, there you go. So how are we going with the time? How are we doing? I think we've got 10 minutes left, so we may be able to take two more talks.
So you heard that, Martin. And now the cable won't work. Yeah, probably. So there we thought. It's a bear. A bear, really? In a Python conference?
You have to learn about context. There we go. Introduction of smoking. So, hey everyone. I am Martin Agyuf. I love Python and Django. I am currently working at Hacksoft,
which is situated in Bulgaria. Such a beautiful country. I am also a software engineer studying student in software universities in Bulgaria too. And before we start, I wanna ask you, how many of you have written unit tests? Great.
So what's unit testing? It's actually a test methodology that allows you to test your code and a small piece of it. And it actually has five principles known as FIRST, which stands for fast, isolated, repeatable,
and self-validating, and timely. So you have to write your, which actually get us into some problems. How many of you have written function like this? A function that goes on our function.
Which actually is pretty hard to test because you can't isolate it. And something like this, you report a function from a model and call it in your function, and you have to test your function, which actually breaks these principles.
And the solution for these problems are mocking. What's actually mocking? How many of you know? Great, bye. Well, mocking is actually this technique
that allows you to fake your functions. And by faking your functions, I mean you can manipulate the return value of the function and also the side effects, like raising an exception and things like that. I prepared a simple example,
which to me clearly represents my thoughts. I have such a small function that just tells me if it's the summer. So I'm importing data from the data model to get the now.
So this means that if I don't mock the get now, my function, my test will only pass if it's August, or it's July or June. So I have to mock it, and it's pretty easy to do so,
like in the following tests. Here, I'm just patching the call. That's the most important thing. To me, it's such a confusing thing in my first mocks because first, I mocked the function, which is incorrect.
You have to mock its call, and it's simply done by decorating your function, and after that, you can see what the return value of your mock is. So congratulations, you just mocked the present.
Yeah, and thank you very much. If we could have the next speakers to the stage. Anton, you're on stage? Yep, and we need Joe Jr. Okay, and yeah, cool.
Mocking's difficult. Who would have thought you could teach it in five minutes? Actually, it was four minutes. Oh, four minutes, good on you. Are you prepared? Nice mountains. You, it seems like there's something there, and yeah, you ready?
There we go. Hey everyone, good to see you. I want to invite you to Python Web, and instead of talking, I'll just show it.
I have a Python conference that is dedicated just to web programming. This is the first conference I know of where it has been focused just on the web, and what a great idea that is. I think this is a really great opportunity
to bring people from the Python community together to discuss this particular topic of Python on the web without being isolated into our Django, or Plone, or other little communities, but instead sharing what we have in common. Great job, PyCon Web organizing team.
It's great to be here in sunny Munich, beautiful weather, beautiful people. Great to see all the new energy combining with these committed developers interested in learning more about Python.
Nowadays, technology is not one isolated thing, and so is PyCon Web is. We've built this diverse community by combining professionals and beginners to share the knowledge, to be inspired.
They're happening within web technologies these days. If you have the opportunity, come down. Is this cool? What do you think? Thank you. End of May next year in Munich.
I hope to see you. Very cool. Can we have our final speaker of the evening, please? I'm pretty sure that video wasn't made today. You know, the lightning talks are supposed to be doing the same day, but I'm pretty, pretty sure that that video wasn't. Just suspicion. So you ready?
Yeah. No. Maybe. Give me feedback. Okay, this is going to be the last speaker, and then we're having the closing session, so sorry about, well, it was more than half of the list,
so we can be pretty proud of ourself. Okay, you ready? We can see the slides, so yeah. Presentation here. There we go. Okay. We come here to invite you to go to Brazil
to next conference, the main conference in Brazil. Have a lot of reasons to go there. This is in my city, Belo Horizonte. The first reason is about the event of Python. The second reason, this is Belo Horizonte, is the capital of bars and beers in Brazil,
and the four German people have a special reason that is bad for Brazil. In the city, last word copy, Brazil lost for Germany by 7-1, and it is not good for Brazilian people. In Brazilian people, we have a great and strong community,
and a lot of pilots and jungle girls that is very special from Brazil. The conference in Brazil, the Python is not only about the technology, it is about the people too. It is very strong in our community. Yeah, so last year, this was a picture of our conference last year
that was held in Florianópolis, and we had 17 activities there between talks and tutorials that were presented by women, by our PyLadies. And this year, we have 29 activities submitted, and we are hoping to beat that number this year
with a lot of girls talking and giving tutorial besides all the jungle girls events that are happening in Brazil right now. Probably, do you know from Brazil, Luciano Hamal,
that is author of the fluent Python, and the Fernando Massanur, that is a big profession, and he already speak around the world about Python. And here, we can see about the many events of Python in Brazil, because Python is very strong,
the community in Brazil. Here is only the main conferences in Brazil, don't have about the meetup and the other jungle girls and the other events. And here is the number about the conference when it starts in Brazil, and in this year, we wait about 6,300 person.
I'd like to invite you to go there. Thank you. So we're just stopping the lightning talks now, and... I think the people have spoken.
Okay. Amazing, he says two minutes. It's just popular demand, but we're just leaving him on stage because you're quite, from here, you're quite intimidating. You're a lot of, there's a lot of you screaming,
and it's like, oh, okay. So the title of this talk is How to Get Your Pants Stolen at Europe. I hope that's American pants. But he hasn't. I hope that's American pants, not British pants. Oh. Losing British pants is much more rigid.
Really? So, thank you guys. So I had this kind of strange thing happening to me. I wanted to share and raise the knowledge about some dangerous things happening in Rimini. So basically, what I wanted to do,
I just wanted to have fun at the social event. I came there, I met a lot of interesting people. The event was actually really, really cool, thanks to the organizers. And credits for the photos to Alessia, the photographer. Yeah, so the event was really nice.
This is kind of a representation of me having fun at this event. Yeah, by the way, the pants were white. So then I decided to go to the beach because I met a really nice person, and we decided to have a swim. And what happened then? The robbers came and take our stuff. And when we came to see what's happening,
this is what we did. And well, yeah, honestly, I really had to walk without my pants to my hotel. So some lessons learned. First of all, drink responsibly. Don't come up with crazy ideas. Keep in mind that it might not be that safe
during the night. Thank you for the attention. If somebody wants to support me somehow, you can talk to me right after the event. Okay, can we have a round of applause for all of our speakers this evening? Thank you.