 So the first speaker today is Henning Jacobs about PostgreSQL and Python after him Angus Walton, are you around? Perfect. You're the second one Henning ready start That micro should be open. Okay, so hello, my name is Henning and Just like to do a brief advertisement for Postgres because I like cute little blue elephants as you can see and Yeah, it's a match made in heaven Postgres and Python. So we all know how to query databases, right? So we use psycho PG or SQL alchemy or other tools But of course Postgres also speaks Python. So this is awesome And if you don't know start procedures yet, you should check it out because it's awesome to write Stuff on the Postgres server with Python. This is just a simple example here So we can have any Python code as our body of the SQL function We can import any Python module. So here's a random module and we just specify the peel Python language here And yeah, we can call this function just like a normal SQL function So peel Python is just another language So we can also write JavaScript on Postgres or peel PGS well or some other languages but of course who wants to do right JavaScript if you have Python and Yeah, the SQL script just contains Python code You can use any Python module so you can use a full Python power on the Postgres server side So just some real-world examples. So all our database servers, of course, have a really cool API Which is SQL. So why not exploit it to get for example monitoring data or metrics? So for example, all our database servers at Salando have some utility functions deployed Which use Python for example to get server connections So just listing server connections and as you will use SQL for any queries or monitoring anyway You can just call this function. How does it look like? We just define a function get server connections and then use some Python code Of course, it's much longer but just to showing you we can do anything here just reading the proc file system and returning the result and That's why peel Python also has this you and its name because it's untrusted so you can do anything as a Postgres user This requires super user privileges to roll out this function, but anybody can call this function So you can do nasty stuff, but also very useful stuff here Another example we have So Postgres has a very cool data type JSON So you don't actually need MongoDB or something like that You can just store everything relational and if you really need like schema less Which is never really schema less you can do it in this JSON column And if you really want to validate something and have a little bit more strictness for example in our case We have a trigger and validate this JSON field to comply with our own type system, which is pretty elaborate and Yeah, leaving out everything here, but Using all Python's expressiveness to validate and using lists and dicks and whatever Yeah, and in the end Python is cool. Postgres is cool. So You might get an elephant in the sellable package To everybody standing there if you're not finding free seats the next room over there We're streaming everything that's happening in here to there if you can find a seat there That might be a bit more comfortable Shlomo, are you around? I've seen you just a few seconds ago There you are. You're next. So the next torque is Angus Walton Called face buke Okay So how do I mirror this? You ready one sec Yeah Yep So hi, I'm Angus. I'm from Ireland and living in Stuttgart. I work as a back-end web developer and like Thomas Thomas Waldmann yesterday who also lives in Stuttgart. Just a quick mention I also made a little din DNS replacement if you want to check that out It's nice and easy requires no setup. You can just sign up and curl to update your IP and Yeah, a couple of thousand people seem to find it useful already. So you might as well So what was I talking about face buke? So we all know what Facebook is. Yeah, I don't have to explain that Little while ago there was a little kind of consternation in the Python community when they dropped support for their Python client for the graph API And so I started looking into it and I found that the graph API itself is actually rather nice And you don't really need a client so to speak to to use it So I do I was just using essentially requests and playing around with it, but I decided to Play a little further and make a tiny little client We'll see how it works in a second So it's only a couple of well 150 lines of code and it's designed to be friendly to the developer and help them kind of Navigate and interact with the Facebook graph While also trying to keep HTTP requests to a minimum. So let's see how this goes You import a client This is going to be interesting because I'm actually live programming and also accessing Remote service. So this is definitely going to go wrong But anyway, so let's say you get a Node on the Facebook graph. So that's going to be me. So you see here me Name is Angus Walton and so on now at the moment It just looks like a normal Jason response So it's like a dictionary, but if you actually check the type It's actually a Facebook node. What that means is that the Facebook has gone through and recursively Turned all of the other nodes into Facebook nodes So we can see that if we look at for example my hometown, which is Dublin I can you see it's a normal normal dictionary there. It's a subclass addiction dictionary But I can check the check ins to Dublin and it makes another Get request and automatically updates and now we have an awful lot more information about my hometown So that's stored and cached You can also Yeah, so I mean profiles are nodes Pages are nodes, you know, even posts and comments are nodes So I can essentially post a comment to well status update and I need to specify the privacy I can show you that later. That's simply a little dictionary just saying I just want to show it to myself And I'll also assign that to status. So I post a little status update and If we check my Facebook profile There we go, there it is And so we can also do stuff like then you see I posted it to Me, yeah, so if I do something like this I can go post to the status and Say something like So the typical Facebook comment basically And Yeah, that should be it so now I have a comment and it's also stored in the comment And it's already updated you can also do cool stuff like you can simply Like the comment It's a good comment and You can see I've liked it. Yeah, you can and and so on so I mean It's essentially it's just a really nice way of kind of exploring the graph and also interacting with it There's some other stuff. Let's see. What else can I do? Yeah, exactly? One last thing if I try to like my Hometown because that's also a Facebook node. It'll error out because the app that I've created in Facebook To use the API, which is called mark Zuckerberg my hero is Not allowed to those permissions. So we have a nice little Exception error here. So check it out the next one after shlomo will be Tomer Chachamu Was that and shlomo is going to talk about the yamal reader And by the way, if you run Linux and are fed up with messing with the resolutions I wrote a tool called auto mirror that That's on your time Okay, yamal reader It's about modularized configuration made easy I'm working at a movie in scout 24 here in Berlin Well one common problem we face is we install a software and it brings a configuration file that looks like that It sees something conf and some information Nice if it's in yamal often not, but I don't care The problem is if I want to change that basically the only way to do that is patching it And in our world patching is kind of ugly and not nice and difficult to check in very far and so on and I said my previous talk we don't need puppet because it solves a problem We don't have and the reason we don't have it is what I'm showing you here So how do we solve this problem? Well, we change the software or we ask it to be changed or we write a patch or a rep or whatever That changes the configuration to be modularized Modularized means instead of a single configuration file we have a directory with a lot of configuration files in it and The first one usually something like default yamal zero zero default to have it sorted early in the alphabet Looks like the previous one which has the default configuration and that comes obviously from some upstream software package now we just add an other Configuration file that comes in later and contains only the things we want to have changed Comes from our package and as you can see no patching necessary because we have a different file Which can be owned by a different rpm package The way how this works is really simple We wrote a little thing called yamal reader which is a Python library Which will take a directory or a collection of yamal files and merge them into a single yamal file or dict and The way how it does the merging is probably exactly the same how your mother would expect it to happen How do you use it very simple instead of writing the usual import yamal and save load open? whatever You just import yamal load from the yamal reader library and you do yamal load on the yamal Plug-in directory, that's all that's the only change you need to do to your configurate to your software where it reads the configuration There are several ways how to use it You can still give it a single file and you save all the open stuff because that's really not interesting You can give it a directory. You can give it a wild card whatever Star.com star dot yamal or you can just give it a list of files You can also give it an initial set of configuration like a kind of built-in configuration and I would advise you all to start Modularizing your configuration because it makes your life much simpler If you want to look at other things we do check out these addresses yet is our open source Deployment and orchestration solution. It includes a configuration management that works through RPM packages And a lot of other open source stuff can be found on our GitHub account Here's the obvious pitch. Yes, we're hiring and If you are interested in automation or like to make the world surrounding you more simple Then please approach us talk to us. We have a lot of interesting things to do. Thank you very much You're the fine and are you around excellent you would be next and this talk is To my chachamu. Is that it yet? Is that correct? All right. Thanks. Is that the picture or is that? Could be simulation or something it's clays I Have a Mac unfortunately Let's go Hi, I'm Tommy. I'm here to talk to you about seeking and compressed files for fun and profit Say at my work. We've got a lot of log files so many that I couldn't get an accurate number and We need to compress them and just sometimes look inside. So say is G zip It compresses, but it compresses it all in one go So say I need to look at something that happened at 11 p.m. And I've got the the entire day in one file I'd have to go through the whole file which takes a whole minute and I'm very impatient So the solution is XZ you can tell XZ to split the file into different blocks and then if you want to read a Small part of the file you can just skip to roughly the right area and find the information you're looking for Sorry about the Disco style presentation It also It also compresses a bit better although it's a bit slow But the problem is there wasn't any library the layer you actually use as functionality. It was just part of the file format and Python 3 has a library for XZ files, which is called LZMA So I modified it to add the functionality and I called it LZMA FFI so this is how you get it and Once you've installed it It's just like using a normal Python file You can call read and seek and you can also write files with it So in this example, I'm skipping to the end of the file and it only takes Half a second and then you can read part of the file You can also open files for writing and then if you call the flush method you can put blocks wherever you like So say have a logging demon and you want to put it A new block every minute then you can do that. So that's the fun. But what about the profit? Unfortunately, according to XKCD, I haven't actually profited but now that I've written the library you can all use it and profit So there you go Here are some of the other libraries that read this file format for Python and Why I've also added is I use CFFI which means that PyPy's JIT can optimize code that uses it. So I'm going to Hopefully it can be part of the PyPy distribution when they're targeting 3.3 compatibility Here's the If you think it's going to be useful you can get it in pip and if you find any awful bugs then you can talk to me on GitHub Thanks. The next one after Joseph will be the Big Neve Zicharch I have a I have a terrible job right now I'm not You ready? Okay I'm going to tell you something about a midi player. I have written in Python and Maybe that's kind of cool stuff I did it in my private time and it may not be related. It's not related to my work So I don't know whether it's useful for you or not but I just was interested if it would be possible to write such a software in poor Python and result is Python script which is less than 1400 lines of code and it's capable of reading standard midi files and send them to midi devices and While it's giving a lot of visual feedback about the file information and what it's doing what it's doing It has no module dependency. So it's very easy to install the only dependency is pyopengl Which is used for the graphical user display It's a with you why app may maybe you never heard about this, but it's it's really you can really hear what what you see it's That's not so easy. We'll see a later when I demonstrate it It has been tested on stage. So forget about TDD I've been a hobby musician a lot of years ago and I used this software on a MS-DOS computer for over 10 years and It's a run very very stable. It's very resource friendly so it cannot be used for example to heat your office in Finland, which we heard yesterday and As I said, it has no innovative features, but it simply works Because it responds that will respond in real time and in the order of milliseconds and that's not a easy job for a Python script By the way, it provides a very nice looking mix or interface with transport controls and a lot of other options you can Change during the play of the playing time of the midi File it also support keyboard shortcuts, which is rigged of the usage when I was a hobby musician Because if you are a guitarist, you don't have a hand to to use a mouse or something like this And it shows a lot of information runs on all popular systems And the trick is that it uses texture blitting to guarantee the highest refresh rates and Responsiveness so at this point I can show you a picture how it looks like But I think it's now time to show you a demo Okay, hopefully you can see it here. Yes Maybe you can't hear enough He has just loaded a midi file and as you can see here is he is adjusting all the knobs You can change the volume as you like you can switch off single channels and you have a lot of control over what is Send to the midi device in this case I send it to the internal DLS and normally you connect an external device Here you can see that you can use keyboard shortcuts for example just to hear the drums It's a little bit Okay, we can't hear it because there's no audio connection You can change the the speed you can slow it down you can change the the key You can change everything online and it all works in python So let's now you can hear the drums only you can hear the bass only you can hear the guitars only and these are all Very single shortcuts, which you can use with only one hand So if you are a guitar player or a keyboard player you can use it on stage and so this was just an attempt To see whether pysons capable of doing such things. Thank you Martin grows Martin grows You all right next time can you introduce yourself that would be really nice. Yeah, okay, so my name is big new shit Yeah And I will be talking this would be a short talk about Python 3 only code base especially in the case of Django whether the benefits were the perks of using Python 3 As I said, I'm speaking if you can find me on the internet On mostly as that she charge or on my home site. I work for golden line. This is the biggest business social network in Poland and We have lots of legacy code lots of Python legacy code. Let's not talk about it We are early adopters We are cool kids and we build a new project. We build new projects with Python 3.4 with Django 1.7 Etc etc One small disclaimer the things I'll be talking maybe obvious to some of you But still it feels good to finally be able to use them after years of watching with envy from Python 2 trenches First of all, we begin our source files with this comment in Python 2 The default encoding for files was ASCII in Python 3 the default is utf-8 Remove it The next thing you probably have your files sprinkled with those future imports with division print function absolutely imports unicode literals This is all unnecessary remove it Super I love super and super is very useful in Django very Very much used in Django when you are overriding forms models class-based views super is everywhere But you have to type the name of the class You have to type self when you rename the class you need to remember to rename it also in super calls You don't need it and Python 3 it works with just different phases Another language feature in Python 3.3 and upwards is yield from which is awesome There were better examples of yield from but I looked for some Most Django-ish one and you could do with iter tools, but it's cool not to use them Another very awesome and discovery fault handler. It's a very small library which usually you should use only these two lines of code and If your process sec-faults now you have a traceback and not just segmentation fault and of output You don't need to To have mock in your requirements txt file. Just use the standard library Replace pip install mock don't ever call pip install mock You can have async.io. It's the new big thing in Python world But I actually haven't played with it yet, but there's a nice demo by Imerico Gustin who put together a kind of research project with Django with web workers or web sockets and async.io and There's one final bonus feature With Python 3 it's harder to accidentally use my sequel. Thank you Isaac Bernhardt are you around except you will be next under the side No, I need a big display port or VGA stand Yes, we see something If it's not crashing Okay, so hi, my name is Martin I'm gonna introduce myself if not everything is going Well it crashed fine But still you can see what I'm talking about So my name is Martin some people might perhaps know me from the KS computer club I'm the guy at the info desk, but when I'm not doing the info desk I am with the a cap team our cup in German. It's called all colors. It's beautiful It's a project that the case computer to Munich has done in the past and we're doing it here again on The Europe Python if you go downstairs, you might have seen that big wally thing that looks something like this In fact, it's not just there to look beautiful. It's also for you here to play And what I'm here today is to just show you very very quick what this thing is about and how you can use it Because it would really be a shame if it's just standing there. Nobody is using it So basically the technical details before we get into python It's a three watt rgb led with a self-designed pcb In fact, the one that you're seeing here on the slides isn't the one that we are using the one that we are using Is blue but except from that it's basically the same And they're connected and they are speaking ipv6 but for you convenience. We made an ipv4 gateway for you So you see there's a lot of technical stuff going inside but the important stuff for you is that we have A python library that you can use I'm going to do that a little bit We have a library that is called a cup sl which you can download from github our repository Is mute c3 a cup street life and there it's in the branch europe python Basically what you do you check out the library and then you're faced with a lot of Files the first thing that you want to do if you want to develop your own animations is to start the simulation Which will just give you here like this a blank or black window Then just to get into it go in animations directory and play for example The one an animation is called screw if you play back it sorry I just changed that so we can use it on the real wall My fail So you can see you have a little Script that shows what your animation actually looks like When you've done developing your own animations, you can also play them back on the wall downstairs It's really easy. You just have to provide the script with some parameters that you can find in the In the github. It's basically you provide the IP address and the port where you want to play back to So just let's get quickly inside the code. For example, we are going to open the doppelblitz.py file Um, you see we're providing like almost anything that you can use to get started really really fast The central point is you import rkbsl basically and then you have here one command the akbsl send and akbsl update We've sent it's basically you just provide a coordinate is x and y rgb value Here what we're doing here with zero is the fade time because the Lambs are actually quite intelligent. They can fade themselves to a specific color If you just say, okay, just go there without any fading set it to zero and the number of the wall Set it to one or just use the value here from akbsl number of walls and you will be fine to go So you just call that for every single coordinate you want to change and send an update and once you have it updated It just displays on the wall So that's just a really quick introduction I guess everyone from you can work with that code if there are any questions You can come downstairs and see me or my from some of my colleagues. We are downstairs here Where you can just try to work with the wall and make some creative animations We also have like for example people who already developed with the wall They created some games like for example snake that could be played with your cell phone You can do almost whatever you want and if you wrote some cool codes and as a pull request Then we can integrate it directly on the wall So other people can use it without having to run it on their own laptops. Thanks Alex Wilmer, Alex Wilmer, perfect excellent. That's awesome. Um, Isaac Burnett is the next he's going to talk about pie cresting knight He wants to do More To do less Okay, we're good to go. You're good. So, uh, this is a piece of software I first as presented that uh, I considered a couple of months ago, but unfortunately there was no recording equipment So now I'm going to reduce it into a lighting top format So having said, uh, this you can check the other slides and the original documentation if you go on my github repo And you can also grab me around here So, uh, I would talk about the tool and some real use cases where you can use it and Because I don't know if I will be able to talk everything in five minutes I will start by the end the conclusions, which are the most important First of all with this tool what you can do is you can Charge around your code base grab your to-dos fix miss hacks and all these things you want to get rid of And it actually makes it easier for you For example creating a report sending automatic emails or some more information we will see Why would you like to use it? First of all, it's convenient. You don't have to change any way how you're coding It works with a legacy code. It not only works with python. It works virtually with Anything you would code secondly, uh You don't need any weird setup. You just clone the github repo or get it from pip And the only dependency is python 2 or python 3 if you are here, you probably already have python in your computers Uh modularity. It's really easy to extend. There are lots of modules available But you can just implement your own and finally it's I would say quite fast Here I tested this jungle because it's a very big and reputable project Most of us know and it took less than three and a half seconds to the analysis going through 250,000 python lines and I found more than 60 to dos in the code base what surprised me It's because this is a very reputable and very used code base There were more than 20 of them that They were five years old, but you don't have to believe me I can actually demonstrate here. You just run it with a configuration file And yeah, here you get a simple report. This is the default report on the console So there are more fancy hcml and markdown modules here you see that the Results are aggregated by the token type to do there was a fix me for and here I aggregated them by the author name But you can aggregate them by date or by file name or by any other parameter you want And here you can see these are some of the tokens that were gathered and this is the order that it's called here so Let's go and talk about the tool the tool basically It's a pipeline pipeline means that it's some function that generates some output and this is taken by the next function And I divided them in several different steps. You don't need to use them all you can add more of them So first of all you need to gather files This means that you will detect and decide which files you are going to investigate For example, this could be as easy as selecting a few file extensions and a repo Secondly, you want to inspect files in our case. You would like to see all to the comments Then you can extract more metadata for example the daytime that it was produced And maybe you want to filter some of it for example If one of my developers is on vacation I maybe then want to bug him with box and emails setting a you have some broken code base to to see Here are the trigger actions you could send these to a dashboard or for example If it's something very serious you could raise an exception and break the continuous integration So somebody immediately fixes it then you can aggregate the results. So it's easier to To deal with them create a report create a file and Yeah This implementation detail because most most of the things are lazy evaluation. You have to process the results in the end This is how the How the configuration file looks so you have all the functions and the Number which is the priority and will in which they will be executed I use this format instead of simple list because you can merge different dictionaries and still get the result All you want and here there are some of the examples of the information and parameters you could fit You don't need to fit them all there are lots of that are default and they are not included here So three use cases one of them could be take control you want to take control of fix miss So basically you would find the fix miss and yeah you want to You you for example want to filter out the ones that are very recent if something is broken and in production Maybe it's good to make a quick hack and just put it there But if it's there for a long time you don't want your code base to depend on it. So this would be a how the function to remove these These cases you don't want and yeah, here you have a couple of more Use cases. This is only the only code you need you need any more code And i'm going through it very fast, but you can search them and github is akbar not dash by krastinate This is how the html reports will look here if you click on Radak Yankevich are you around Radak excellent, you would be next Alex Wilmer is now. Yep. Should that scare me? No, just get a laugh. All right start Okay. Hi, my name is Alex Wilmer. I'm here to talk here to talk about an app called chirp Which is a way of say sending and sharing data using sound The way it works is you've two random people that have met in a met in the park and One of you's taken a photo and you'd like to share it with the other Your vote you don't have emails addresses. You don't have any common secrets But if you're both running this app, which by the way is not my app. It's just something to use as a base then you can Play a chirp And if the other device is listening that will decode that chirp into a url And then it can download whatever it is you want to share you can share urls Photos bits of text all sorts of things now the the problem with this app is If you've got an iphone or an android you're you're sorted Anything else is a bit of a problem at the moment It is a it is a proprietary application. It is partially documented, but not totally So what i've been able to do is reverse engineer a bit of it so that you can chirp with python The way you do this is to Make an http request to the chirp.io servers It's a fairly simple thing. You send it a lump of json and you get a lump of json back the Long code that you see at the bottom Is the complete is a textual representation of the complete chirp And the short code is the actual data. That's the payload And that's what makes the url that the person sharing can download with Once you've actually got this long code if you want to play it then there is a The very experimental chirp that chirp module that you can download from github basically initialize pi game and then send a chirp and Any device that works with pi game and can run python can now chirp For any of the amateur radio buffs or audio engineers in the audience The way chirp works is There are 32 notes That can be played each of those in codes 5 bits You play 10 notes and you've got 50 bits of resolution The Part that is not implemented yet is read Solomon encoding Which is the how the error correction works and If anybody is good with finite field arithmetic or read Solomon encoding Please talk to me because I would love your input Um If you want to read more about the technicalities, there is chirp.io is the home page for the application forward slash tech Is the documentation that they provide? Um, if you would like to download the python code then it is at github Um, moriarty slash chirp pi if you'd like to contact me. I am moriarty on twitter um And finally if you would like to just chirp from your browser Then There with me one second That one can I drag you? Oh dear Ah, there we go So if you would like to chirp from your browser, I there is a book marklet that you can drag Into there and if you go to any website You can then chirp that website From your browser Thank you very much One final word of warning if you do download the chirp app Don't leave it running in the background. It will beep randomly even if your phone is on silent Thank you Simon cross Excellent. You're the one after it. All right. Hello everyone. Uh, what about with me? My name is radek and kivic and I I work for A python company from poland as takes next And that's basically everything you should know about me And today I would like to Present you away How we are trying to Avoid with our colleagues to fall into routine with everyday tasks and so on So we we we're We're organizing our internal company hackathon events Where we can do stuff that we that that is really fun for us and we can use technologies that we Are not likely to use In our everyday work And so we we already made a short simple javascript game mobile app that can Can can count the number of steps you take basic on the measurements from mobile Accelerometer and but today I would like to tell you more about the recent Our recent event where we were playing poker Well, actually, we were playing our algorithm algorithms were playing poker We prepared dealer application and and player application And the dealer application is is is asking the player applications And The decision is made by the algorithm each player can can Code A few words about the dealer application is just a Pyramid application you can find the source basically even a build out On the github it runs with python 3 3 And the one thing that was quite difficult was a poker hand evaluation algorithm And I I found One on on github done by mr. Allian Allian g He was he was actually He he based on on another algorithm that that you can find in the net that was original written in in c but I really recommend to take a look at it. It is quite a brilliant idea of how to how to evaluate the poker hand The player application is just a small server written in pure python with the whiskey Whiskey server from standard library. You also can can get the source from from github That's how how the game looks like I can present you a live demo Yeah So here's the here's the table the the first the first Game by pressing space the key I can ask each another player Player with number three has a strong card. So he will be playing the tough I think Let's see Oh, he's got a Four aces at hand. So he's actually a winner Yeah, so the guy with nothing has Past folded Okay And basically that's it that that that that are we having fun playing playing and challenging our algorithm And by the way, there is another another event organized by one of our of of my colleague from the company. He's He's preparing a europe python battle, which is A game called grot when you when your algorithm can also take take Part into in this competition Check out the the europe python battle.com or go to the Standoff stakes next below Thank you Hi, I'm Simon and I'm here to try and convince you to come to picon south africa Um, I'm a little bit nervous and picon finnans at a high standard, but anyway here goes So, why should you come? Oh things we invented Ubuntu Which is linux even your grandfather can use I'm not sure if everyone knows but amazon ec2 was also started in Cape Town Um, and that's somewhere to ssh2 Um, because we had already written one cloud service. We decided to do another one. So we also wrote one for oracle And that is absolutely nothing to do with irc. Um, so not only are we good at clouds But we also have the milky way in the right place where you can see it We're building the world's largest radio telescope Which currently looks like that. There are a lot more dishes to be built And what's more we're doing it in python Actually, even some of the highest throughput data processing is done in python We developed some cool stuff to read data straight from Using dma straight into numpy arrays straight from the network card. So that's cool We also do some less big things We ported matplotlib to python 3 or at least we kind of broke the back of us and did a bunch of the work during the sprint We also some people in south also did matplotlib html 5 canvas We recently did a sprint to write pygame cffi So that your games can be fast We take part in pyweek It's a bit of a habit Perhaps we take part more often Then these are some of our games Is strictly healthy, but it is a lot of fun And many of these games now run under pygame cffi. So just a little plug If you're right have a pygame try it under pygame cffi fix the things that you find So attend We're friendly Speak we still especially looking for a few big name speakers if anyone's interested in coming out our way and meeting us and saying hello But even if you're not a big name speaker We really just like to hear from people far away Sponsor there's still a few sponsorships that's open and it's really cheap because our currency is not that strong This is where you find us Yeah, just go straight south Um Yeah, if you run out of continents you've probably gone too far These are the details the website zda.pycon.org. It's the second and third of october It's this year and you can follow us on twitter at pycon zda And lastly just a quick thank you to all of the people who've already sponsored us Oh, thank you Go to my young are you around? Excellent All right, I do have to ask a question anyway The numbers that I got from who wants to participate in sprints Was kind of confusing between yesterday and today so once more Can everybody who is planning to attend sprints or the bar camp stand up for one second? Oh, yeah, um, you guys down there. Can you make noise or something? I was something there's one guy. All right, okay That looks good to me. Thank you Just to inform you, um, you can still come if you make up your mind later It's just we need to kind of schedule how much food we'll have If there are substantially more people than we have initially planned for food You just need to wait a little bit longer. We're going to be Refurbished the buffet, but it might feel a little edgy. So just just come if you want to don't feel excluded Just by not having stand up here Are you getting ready? Yeah, we can skip one sure Um, I would even are you around tomorrow? I would suggest you try again tomorrow. I can put you on the list for that After that. All right. Okay Anyway, just if that has to skip again peter coppats, um, are you there? Excellent start walking Go to you're ready. Yes. All right start Um, so I'm good here in I work at fry tea in london And a couple of months back I wanted to upgrade my laptop to the latest tip into Uh, so the way you do it is you uh, run do release upgrade But I got an error Not that one I'll guess that's the this one Damn it. No, it's I can I can just talk to it. It's fine Yes, I say as trace um The idea is um, you can um You can run your program with s trace and it will uh It will uh show all the uh system codes that it is uh Executing so you can see every file that your program is opening or closing or all the network activity All the things you're reading from files or writing two files So it's very convenient. Um But it has one issue which is uh It produces a lot of output. So you've got a A lot of uh file being open usually or read or a network activity And if you want to find what went wrong in your, uh Program The uh, there is a process for it. So you start at the end of the output And then you go backwards until you find your error And once you've got your error, then you can actually look Uh very carefully at what's going on so you can find what the actual issue is And when you find the issue you will It's a bit annoying because it will it will actually show you something very Uh explicit it will say to you which file it is opening And if it's something like a not a normal file if it's a file that shouldn't be opened you will Understand that that was the issue and therefore you can just Fix that issue and And get back to work basically. Um So yeah, so as trace You should use it because it's very good to uh understand why Goes wrong in your programs Thank you Um after peter uh tomech paczkowski Are you around excellent you will be next two days ago Federico has had a tutorial about blender And uh, there was a huge interest in this program And there are also Remains some questions one questions. I will answer in short um It is difficult to use blender in the first place Like vi or e-max how many users use vi Rise your hand Okay, and under other party e-max users Okay Uh, you you know, you will remember this difficulties. Uh, the same happens with blender and I will give you a short Insights that I like so often The windows are split it by accident and this happens when you Come with the mouse over this Tree angle And there is no closing button like in other windows And it's uh, if you know, it's really easy Go to the same point The tree angle and uh drag The pointer to this window That you want to close The and uh, you get rid of this windows This is not possible if you try to close this Window on the right side They have to be the same Have to have the same size um Another uh Uh Feature is uh to switch from this windows. You can have many windows in this program to the Full window with control um arrow and you can go back to Uh, the window overview, uh, you have to control this Um, the mouse pointer whereas it is placed to get to the right window We're using blender in uh I moved idea a project to teach children to learn pison I will show you some examples in the end. Um This is a An example uh For generating molecules um joren has uh Assisted me with his knowledge as a chemist And you can run a script uh with Very small This rp or run script And in the dry debut you can uh watch your um Your objects I have prepared here five objects Let's do this is a A water molecule Let's try a dnr or a part of the dnr This is Number two in my list Run again Let's take some seconds And there is the dnr and you can watch your objects Um, and this is an example for teachers for chemistry and we like to um Create more such examples and you can join us At the sprint on friday Tuesday Saturday, okay. That's all. Thanks. All right. So it looks like Sebastian is sorry about his screen Until make your that's you, right? All right. All right start My name is Sebastian crefan. I'm presenting give lint a tool for improving the source code one step at a time And let's start with a quick demo so let's say you have a An existing code base and you want to start enforcing a a stricter or like a new coding standard and so But like modifying and fixing all the pre-existing code. It's like Impossible and it doesn't make much sense. So instead, uh, I present this tool to to make these changes incrementally So let's say I have like this a small commit I modified the decimal module in the standard library and I also I did a new icon So typically developers would run pep8 or piling whatever standard you defined So let's see What piling says about this? module there are like 800 of like these messages and like the The situation doesn't improve when you When you run pep8 you have like 180 messages. So if you modify a line All like possible Problems these tools are gonna find are probably gonna be shadow bar the pre-existing error. So let's see how my Change looks like so I only modify one line with a pretty obvious like a spacing error And finding that error in that amount of code. It's virtually impossible So let's see what the tool says So here like we really can see really easily like First the output of piling and second the output of pep8 both complaining about the the extra the the lacking space And also we have a The output for like the png these two tools are saying that we can lossly losslessly compress the this file like for like 30% with the second tool. So let's fix this uh These problems Okay, so I optimize the png and also fix the python file Uh, so let's try to commit So it's running the pre-commit hook Linting the the big file piling takes a while. So let's wait Eventually it's gonna finish hopefully The tool okay. Yeah, it says okay And for the second icon is still complaining because the other tools still can like shrink the file by 4% And and You still can commit it if you like skip the pre-commit hook and let's go back to the end So These tools like run many linters report error only on the modified lines and modified files It catches the results. So when piling it's really slow like you run it again And you're gonna get the results right away Reorder the results by land and and also like normalize the message of different tools like you know And in a uniform way, it's quite extensible It comes with a pre-commit hook and it's really easy to integrate with um prohibit tools And it comes with support for Python Java PHP rabbi JavaScript html css scss jpeg png res json yamel inny And If you want to use it go pip install git lint or go to my heat hub and if you are using mercurial And you want to to port it it should be really easy It's just a module exposing some common access to the underlying data That's it So next one is tomic, right? Yeah, and then ola and ola. Okay. Hi I'm here today to represent a small group of friends. So Who are we? You might know us as a team behind Django con europe 2014 Also known as Django circus It was a conference held in a circus tent on a horse race track It had different feel we had hammocks textures and very relaxed atmosphere It felt almost like a music festival and we liked it. We liked we liked it really really very much Then sometimes later Make land happened it was an awesome event with robots quadcopters and everyday objects connected to the internet People had fun so did we Part of our team organized Django girls and you will hear about this later this event also had was full of of good feelings and Relaxed atmosphere although it was very busy Recently we had an idea A very nice idea and it bloomed in our in our minds kind of concurrently Let's have conference. That's even more about people even more about you Let's go to a place where people really stand out Let's remove big city cars noises advertisements Let's go to remote place natural and beautiful place And I know such a place. I grew up there Here's the deal It will be smaller much more intimate event focus on getting to know each other and sharing knowledge We'll have campfire story stories hiking and kayaking We'll have relaxed atmosphere much more focused on hallway or campfire track All of this will happen in summer of 2015 in Bieszczady, Poland And some say this is the most beautiful part of europe Although I might be I might be biased So think about it as a weekend gate getaway in the mountains with your favorite python people If that sounds interesting Go to this website and subscribe to our newsletter or Follow us on twitter So python test a summer camp for python people. I hope to see you there After all and all there will be a match at grica That's you excellent get ready Yeah, hi there you probably don't see us, but yeah, we are too short, but We are ola and ola and we found we are founders of jungle girls We did our first workshop on monday and we want to share our experiences and what we have learned Okay, so what's jungle girls to put it very simply it's a one-day workshop for women who want to learn about technology Start programming in python in jungle and maybe even become professional programmers We want to see more women here at europitan. So we've decided to dedicate lots of our free time to have this course Okay, so some statistics We had more than 300 applications from 33 countries So we see that there is a big demand of this kind of events and we're really really depressed to reject a lot of them We basically planned for 19 women, but we grew to 45 overnight Yeah, and it was really awesome people were so motivated they spent 11 hours on monday Of very intense programming most of them write the first slide of python at 9 a.m. In the morning and by the end of the day they deployed their application to heroku We were really proud and actually quite surprised that they managed to do that because we expected that the tutorial can be a little too much for just one day so Okay, so tutorial We started with looking at the internet and for existing tutorial, but we couldn't find the perfect fit for us So of course we decided well, let's write our own tutorial So we did and It is on tutorial dot jango girls.org It's open source It's on git so you can we accept pull requested Pull requests and of course we are still polishing that and try to fix the bugs we discovered on monday Yeah, so we have a lot of stuff covered there their installation of python jango postgres We use virtual and we go through python jango models that mean views or URLs or templates forms html css. So like a lot of stuff Um, we have quite cool setups. So we start with uh, yeah python 3.4 jango 1.6 And postgres We had some troubles We thought that the most problematic will be windows, but ubuntu is much worse So we are super thrilled to say that on monday 35 new femur programmers joined our python community because All of this wouldn't be possible without the help from these awesome people There are 15 of our coaches who spend their free time before during and after the workshop to make it all happen We are super grateful to the all the sponsors. Thanks to them We were able to fund travel for some of our attendees and the team behind our pythons was very generous and very helpful We're organizing everything so perfectly Okay, so here we are today Um in two weeks there is next jango girls chapter in python australia. Thanks to Amazing elana williams and then there will be jango girls argentina But we don't want to stop here And when we were choosing attendees for the workshops, we wanted to Find people who are not only want who don't want not only educate themselves But who are also motivated Leaders women who will go back to their home towns and do something good for the community So that's why we hope that next year there will be We'll have many many many more jango girls happening on a regular basis all over the world And of course you can help us make happen. So Become a coach organizer volunteer sponsor proofreader or supporter or even like help us spread the world and spark the change This is our website or email. So just drop us a line and let's talk. Thank you We're running out of time for The remainder of the lightning talks. I'm going to add one more and I'm going to pull one up Because it's about euro python and even though I told him I would not I will give them the last slot mike miller and fabio are you run mike. I see you fabio Excellent. Can you come forward? Um Yesterday we managed to get through everything. I think even before time Today we have a few that we couldn't get to Everybody who wants to get the chance to slip into the first spots tomorrow before we open up Come to me and then I can transfer you to the next list. All right. So muchy Thanks. So it's like a polish Combo in the end, but I can't hope to top order and order um, I wanted to Shortly show you uh in compadre, which is something I'm working on And just just a disclaimer, uh, I it's still very embarrassing State that the app is in but obviously that's a great reason to show it's a huge audience of critical developers um, so, uh I'm still trying to finish my phd. I did it at UCL in london and it was in computer vision and Um, after developing some image processing algorithms that aim to be perceptually nice um, I had this problem and to to, uh, imagine it's just Imagine for a second that you, unlike me, you're a serious researcher trying to Uh, contribute to the good of humanity Uh, by creating a real important state of the art, uh, photo filter to Make cat selfies more attractive Uh, so you have this, uh, new amazing algorithm. Um, but how do you figure out whether it's actually good or not? You can't actually quantify it easily because it's all about perception Uh, so what you have to do is run a user study and if you're like, uh, uh, ordinary CS researcher you, um Gently encourage your CS undergrads to be your test subjects Uh, you take 15 of them ask them what they think and then you publish, um, or maybe you write a Java applet or if you really avant-garde a php4 application running on your Windows XP laptop on your desk and to make it online Um, but I really want to make it easy to do the right thing Uh, and the right thing in the ideal world would be to For the researcher to first of all figure out what they want to find out, which is obviously the difficult part Uh, but then once they have that just to upload the data run their studies get the reports and be able to publish Um, some party there, uh It's a it's a jungle app. It's integrated mechanical Turk. You can already ask people what they think and Two papers are submitted using the system But there is so A while ago I thought okay, I figured out too much processing and some basing starts and I even figured out how to write css So how hard can it be to uh make a usable application? And then this happened and it was like 300 form fields on a page and thousands of options and Uh, I can use it, but I think I'm probably the only one um So, yeah, I just wanted to show this to you Hopefully, uh, you will tell me afterwards what you think about it If you are a person that rocks as a user experience or know somebody who would like to help out Uh, please let me know And and yeah, this is not even the worst part. You should see the documentation Um But yeah, I'm I'm really curious what you think about it. So either please grab me afterwards or uh, just write me an email Thank you very much The last letting talk uh, well, I'm pretty much exactly on 5 30 uh on 700 hours something 7 p.m The dinner will start As far as I know the organizers would like to have a little bit of room in the building To be able to prepare everything and I think they want you out of here Can anybody contradict me or confirm me? Okay, that means that I'm confirmed by absence Yeah, christian says he so don't don't I know that guy for 30 years. So If he wants us out, then we better go out That's wrong try to Should be something such All right, okay, you ready ready go you you managed so uh, they are still in the european 2014 People and all they keep asking me about european 2015 and this is just very short lightning talk is about and We have to go back a little bit in history And just wanted this very condensed version what happened in the past so far that might be necessary to understand What we're talking about here. So last year at florence Our proposal the german group the berlin group applied for european 2014 and 15 And was accepted last year at florence. That's Also far And then a few things happened in between we will talk about quickly though in december 2013 the aps took this European 2015 Thing away from from the berlin people for some reasons we will explain soon And then they announced in january european fabius here a new call for european 15 And also the berlin people were invited to apply for the conference. Uh, and the reasons will be explained soon and just The main reason actually We don't have much time to go in a lot of details here. That will be a session tomorrow Between four and five thirty. There will be three talks and discussions about this topic at the room bo9 So he's interested please come there And the main reason actually is a different approach in how to organize the conference Though that's a kind of the the main picture About it and as i said the lightning talk is not the right place to take go into more detail That's why the sessions for tomorrow and now i would like hand to over to To fabio. He's a chairman of the european society and he will say something more about this call. I just Yeah mentioned So hi everybody Yes, we are running a call for participation for 2015 As all right mic already said we highly encourage the berlin team to Uh, apply and help us. Um, we They they organized this conference and it's really it's running really well Uh Many details will be given tomorrow things just didn't work as as expected from An organization point of view And this this as from a new python society point of view. This is was this was a huge lesson lesson for us um This new organization board is quite young and this made us Really understand that the conference is getting very big And it's really hard to actually maintain The same kind of conference the same kind of services and and everything and In in a status that the community itself can keep moving the conference. So I've seen many social events being organized around by local organizers and there's there's much effort to actually improve the community and If you are interested in getting part of that our vision is that The conference should change the conference as as a The whole environment and the community should be more Uh active to to keep the conference running and we really Need your help. We need your help to build a different plot We would like to introduce a new concept of open work groups so the ps we we would like to change the concept of dps as an organization with with uh Um Just one board we would like that to be as flat as possible and to have All everybody from the community working inside open teams that one will not change every two years And for that we really need your help if you think that it can help it It can work It cannot work that you can help us or that we are doing a bad job or that we are doing a good job You should come and and do your best to to to make things happen the way you like because the community is all about you and and not about the The organizers itself Thank you All right, thanks get out of here