EuroPython 2014: July 21, 2014 - Lightning Talks
CC Attribution 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 purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
EuroPython
Lightning Talks - A lightning talk is a short talk, typically only five minutes in duration, providing an opportunity for participants - particularly people not featured in the main programme - to deliver a presentation on a subject of their choosing: Python and Excel: Felix Zumstein, Packaging and Awesome: Richard Jones, django-reportmail: "hirokiky" Hiroki KIYOHARA, The new PSF: Marc-Andre Lemburg, Flying Elephant: Alexander Koelpin, Architect - Object Relational Mapper's best friend: Max Tepkeev, Matelight: Uwe Kamper, Sebastian, DevAssistant: Tomáš Raděj
 Okay. Our first speaker, Felix Zumstein. Do I pronounce it correctly if I do it German? Yeah, that's absolutely right. We can also German. Felix Zumstein, Python and Excel, give him a hand. You're stage. So hello everybody, my name is Felix and I do Python for finance. And in the next five minutes I'm going to show you two packages. They're called Excel wings and Excel Python. And the smartest amongst you have probably found out that it's all about programming Excel from Python. So Excel wings is my own package and Excel Python is a package from a guy called Eric Reynolds. And the good thing about those two packages is that they are totally complementary. So having both of them at hand, you can actually do about anything you want to do with Excel and more. So I'm going to jump in. First thing that I wanted to mention before I jump in is that we are actually planning to merge two packages together into one at some point when they are a bit more mature, because currently they are just a few months old and really just at the beginning. So I'm jumping into demo Excel wings and I'm doing this on my Mac because the not yet released version 0.2 is going to have native Mac support. It's going to be the first package ever who is actually caring about supporting Excel on Mac. So you just create a workbook object from the Excel wings package. It opens Excel if it's not existing yet, if it's not running yet. Then you can type in a familiar fashion as they're used to from VBA. You can read it back. Let's say you can also use obviously index notation for your cells. You can also deal with datetime objects and address various cells at the same time. So it's going to be correctly transferred into date cells on Excel side. You can also bring over whole tables as nested cells, nested lists, sorry, and non-types here is going to be transferred as empty cells. Then there's also an easy mechanism to read back those tables. So you just specify the upper left corner and say table and you're basically essentially back to whatever you have pushed over to Excel before. The good thing is this also works with non-pay arrays. So if I just say, you know, identity matrix assign it to A10, it's just going to push it over there. If I want to read it back, then I simply say here from A7, give it back to me as array equals to true. It's also automatically going to handle NANs if they're empty cells, for instance. Then pandas data frames work pretty much the same way. So you can efficiently read in your data here again from A6, the table, then you split off the column headers and the rest you put it into the data. And you quickly have your data frame back in Python, again, taking care of the NANs. Then pushing it back is as easy as before. You just throw it over into a cell and if you don't care about the index, for example, you just say index false, you can do the same with the header. The last thing here I'm going to show is a one-liner actually to add charts and automatically control the chart type and the source data. So that's what the upcoming version 0.2 will feature on the Mac, but we have currently a lot more features on the Windows version. So for instance, you can actually invoke those scripts that you write with Excel wings. You can invoke them directly from Excel. So we have a native way from Excel wings. It's a bit slow, but if you combine it with Excel Python, then the first call is slow, but then it's very, very fast. All it needs is a one-line of VBA in the back. Then now I'm going to completely switch over to Excel Python. Excel Python is just great because it allows you to expose existing Python code without having to do any changes into Excel. So for instance, I have a matrix here. I have, I want to calculate the inverse of it. There's a function for that in Excel. Obviously, I'm inverse, but the thing is if I change that into a singular matrix, then I'm inverse will not tell me the result anymore because it's not defined. So in NumPy, it's easy. We have the P inverse, the pseudo inverse that is actually made for these non-singular matrices. And we can still calculate it. So having Excel Python, I can natively expose the PINF function here in Excel. All that's needed is a little wrapper over here in the code section in the VBA. It might look a little bit convoluted right now, but there's an add-in, a developer add-in that can actually produce this code for you. And then the last thing I want to show you is a complex, well, it's not utterly complex, but still it's two matrix multiplication and a transpose applied to large matrices. So we have a 400 times 400 matrix. And if I change a value here, then I have to wait a long time for the native Excel functionality to calculate almost too long for lightning talk. And if I do the same over here in Excel Python, it's like blisteringly fast. Thank you. Thank you. Thank you so much, Felix. Thank you so much. Richard Jones, please get your setup. You get the original lightning talk man superhero card for your collection for giving a lightning talk. Our next speaker will be Richard Jones from Down Under talking about packaging and awesome. Please can I get Hiroki Hiroki with a non-asky last name to the stage. And while we were talking about Excel, I heard that the Broechek management for the new Berlin airport was also done in one big Excel sheet. And that brings us to an infinite number of mathematicians walk into a bar. The first orders one beer. The second one orders half a beer. The third one orders a quarter of a beer. The next one orders an eight of a beer. The next one, a one sixteenth of a beer. The next one just pulls two beers and says to the guys, you have to know your limits. We are quite in an historic date in the year. What happened yesterday 45 years ago? The moon landing very good. Some still say it was faked. And this morning, Constanza told us they spent 51, 54 billion in the less black budget on spying. And I learned the moon landing only cost 100 billion. And this is a viable photo with the earth, with the planet, the most epic selfie ever. We can get it for two years of spying. We can have this selfie posted every year. And I'm quite sure you could make the same an advertisement on those Twitter page. Okay, Richard, you ready? I'm going to have to wing it. I'm fairly deeply involved in Python packaging. I'm the guy who's the admin for the Python packaging dex. And I've got a bit of a premise here. Who agrees with this? The packaging is awesome. Really? Really? Okay, so I wouldn't necessarily say that myself. It's certainly getting better. It's been pretty terrible, but we are working on it. It's improving. There's a Python packaging authority now, which is a group of people who have been working on tools kind of semi independently. And we're all kind of working together now to try and make things better. And one of the issues with the Python packaging story is that there's a lot going on. So Python has this motto about there being one obvious way of doing things. So it's a bit of a complex story. Another issue that we've had is that the story has been told in many different places. So we've got different people documenting their projects in different places. You often end up finding documentation for this stuff on Stack Overflow, all sorts of disparate locations. And some of it is quite out of date because packaging, you know, it moves on with the times. So what the Python packaging authority has done is create a single point of documentation for all of this. And it's packaging.python.org. The nice thing about this is it's being kept up to date. It's not complete, but the stuff that most people need to know about creating packages, installing packages, distributing them, even things like caching them locally and mirroring the whole index, those things are documented. There's some of the edge cases aren't necessarily documented yet. So it's a work in progress, but it is being kept up to date. And the really nice thing about it is that button at the top right-hand side there, where if you see a problem, you can go straight ahead and either suggest a fix or just make the fix and submit it to the people who are looking after it. So I think that's pretty cool and a great improvement over where we've been in the past. So packaging.python.org. If you ever need to know where to look for documentation for how to do anything in packaging, that's the place to go. I'm also organizing an open space about packaging if you're interested and would like to contribute to the general things that are going on in packaging. Then on Thursday at 11 o'clock, out in the garden area, so when we start yelling at each other, it's kind of an open space and we can feel free to run away. That's where we're going to be talking about those things. And it'd be good to get interested people to come along and contribute. So thank you. APPLAUSE Can I get on, Richard? Oh, Richard is one of the guys who can soon call Bingo because he got four lightning talkman cards. The only one in the world. Now, somebody submitted a talk without reading the documentation. It's just a new PSF. Who did it? Yeah, Mark, I was suspecting it. Anyway, please be prepared for the stage. Our next speaker will be Hiroku. What is your last name? Kiohara. Kiohara? Yes. Am I doing good? Yeah. Kiohara is good? Yeah. Have you set up your system? Set it up. Okay. Okay. One thing about that traveling is I always have a lot of luggage with me and I always pay extra fees in those cheap airlines. And people say to me, you don't have to change your clothes every day. And I'm a little bit maybe special, somebody called OCD. I just have to do it. And I did some research. It would be much more expensive to get therapy. And just to pay that extra luggage for the next few years. So with no further ado, Hiroki. Yeah. Our jungle report, May. Yeah. Give him a big hand. Thank you. Thanks so much. Yeah. This is really awesome view. Yeah. Today I introduce you a jungle report mail, a library I created. Yo. Yo from Hiroki K.L.I. My name is Hiroki K.L.I. from coming from Japan, Ralph Bison and Bill and so on. What is a jungle report mail? It is a jungle library to provide a report mail. What is a report mail? Anyway, some jungle management man used as a nightly batch. Some web applications require some nightly batch creating some summary or running a heavy and slowly circle and so on. Yeah. We need. We need a nightly batch. And we need some reports of the command. The command succeed, failed, or what kind of file used and what kind of loads and proceed and so on. We need a report. And some of them we can't sleep. The nightly batch failed or something. We need a report. Yeah. Some of you recommend sentry. Yeah. I know. And sentry is an application to aggregate logs. So it provides a dashboard. It provides aggregated logs and it provides notifications as an email. Yeah. It's a really great project. I know. I know. But lack of a resource. We can't run the sentry server. The lack of resource. We have only this small instance of EC2, something like this. Tiny project. We don't have enough resources. So I recommend the jungle report mail. This is a very common, you know, this is a jungle management month. And you need to import the apply report and decorator and apply it to the handle method. When the handle method takes a reporter object as a second argument and you can use the interface like a list. You can append some strings you want to report. Yeah. This is a very, very, very simple example. Let's see the more complex example. Yeah. We use this reporter object in the for loop. And at this report, the loop counters number will be reported. And this command will end. You will receive the admin mail. Admin mail is a very common, you know, that admin mail of jungle. And the subject. Oh. It's pretty good. But yeah, subject you like you will get. The body, the top of body of the mail, you will get the information of the command. What kind of file you use, what kind of options applied and so on. And it's pretty good. But you will get the result of the proceed. This reporter append, this appended string will be appear in this. So you can know, you can know, and you can notice the result of the command as a mail. Okay. And more, the command provided a hundred when the command when the night river failed automatically extended that other admin mail and some trans. That error, name of error will be sent. And you can customize the mail template and customize way to report to the console reporting or manager or admin and so on. Okay. It's end. Pokemon GitHub, hero, KLY, jungle, thank you for listening. Thank you very much. And I can tell you, it's a great module. My business associate in Nigeria are using it to notify me every time they have found some money that they need to transfer to me. It works every time. Thank you so much. I need Alexander, Alexander curping about the flying elephant you are prepared. Now our next speaker will be about the new Python software foundation. And ready. Give him a big hand. Hello, I'm Mark Lamberg. I'm one of the board members of the Python software foundation. How many of you know the Python software foundation? Almost everyone. That's good. How many are members of the Python software foundation? So we definitely have a problem there. And we decided to change something about this. Because the Python software foundation has traditionally been a very close kind of organization. And in April this year, we opened up the Python software foundation. So now everyone in the Python community can become a Python software foundation member. And I'm just going to show you how that's done. It's really easy. So you just go to Python.org. You scroll to the very bottom. You have a button here, become a member. You go here. Either you already have a sign in for Python.org or you register. So you click here. You enter your details. You hit the button sign up. You're signed up to the website. Then you go back to that button again. You can register as PSF member. You enter your details. You have to accept the code of conduct which basically says everyone should treat everyone nicely. You click OK and you're a PSF member. What does that give you? Well, at the moment not much, but... But there's an upgrade option. You can get an upgrade to a managing member if you're managing an open source project, for example, that uses Python. You can be a contributing member if you're contributing to some Python open source project. That gives you voting rights in the PSF. So you actually have influence in the PSF. We're going to have a PSF members meeting. So all the people that now take their notebooks out and sign up as PSF member, they can attend this meeting. It's on Wednesday. It's at 5 p.m. room B09. It's right next to the Python Software Foundation display that we have there. And I'd like to invite you all to that meeting. Thank you. Thank you, Mike. Wonderful. Okay, Alexander, please set up your system. And I need on the stage additionally, Max Treper. You're here and you're prepared. That's good. So you don't need slides. Wonderful. Then I have to press the button to reset. Reset. Yeah. Thank you for having me here. My name is Alexander. Alexander Kolpen from Vestag Ventures. So we are sort of an unusual participant here because we are not developers. We are investors. I had one of the shortest way to come here. So it was a big advantage. Our office is in the bug fabric 10 minutes from here. And what I wanted to tell you is about our project Flying Elephant. Vestag Ventures is a legal entity. We invest in young startups in a seed phase. Seed phase is usually a phase where you have already developed something like a prototype or you have the first users to show even customers. And we invest 50,000, 100,000, 200,000 euros in this company so that this company has six months, 12 months depending on how much other people invest to do this product to bring it into the market. We right now have roundabout a little bit more than 20 portfolio companies. Most of them are here in Germany, in Berlin, Brandenburg and Hamburg. And among these are some software testing companies. One is or was called Test Hub. It's a cloud-based software testing. The other one is called Test Object. It's app testing. And if you look at our website at Vestag Ventures, you see that among these 20, there are a lot of different industries like software testing is one. The others are online education and others. And in our project Elephant, we try to focus on one of these verticals, let's say, to invest and to help young founder teams to build their first new company and to make this fly. So that's why our idea was a project Flying Elephant to make something fly that is really heavy and really difficult to do. That's why we choose to name project Flying Elephant. And that means we are here. We are open for young founders, young people who want to do, want to find a new company, wherever they come from, they all welcome. The only thing we ask is that you come to Berlin for the first three to six months so that they can do the first steps together. So we offer you office space, support and all the things you might not do so well. Like the fundraising, forming the company and so on. We also invest 25 to 50,000 euros in this company and help you with a lot of other services. So whenever you feel that you have the feeling you want to work for yourself or you have friends who want to do that, tell them about project Flying Elephant. We are happy to hear from you. Send us an email or give me a call. Alexander Kolben is my name and I leave some of these postcards on the left hand side when I go out. I'd be happy to at least meet one or two of you again. Thank you very much. Thank you very much, Alexander. Alexander, stop, stop, stop, stop. Mr. Kolben, Alexander, turn around. You earned Farron Square. You can invest in this project. Hello. It's already running longer than one year so maybe it's not in the seat phase anymore. I need Jasek, Jasek for Made Light. Jasek, you're here, great, prepared. So there was this MIT language professor who told his students in English if you have a double negative, it will be positive again. In Russian, if you have a double negative, it still stays negative. And he told his students there is no language where a double positive will be negative. Yeah, thank you. Out of the off. Yeah, that would have been a joke. I have some jokes from the time when Germany was still separated, but they, no, he's not ready. No, no, no. He has to open it. You know the fans at home, the TV's, whatever, big needle. In the former times there were always a reflection in a cross form. There have been two sayings. It's the late revenge of the socialists to the Pope that they got the cross symbol. And the other one is the highest plus of socialism. That's the Berlin Tango. Now, architect and optional, relational, mapper's best friend. Give a hand to Max. Woo! Hi, everyone. At first I have to tell you a little story. So last year I was at the Europe Python in Florence, and I was given a lightning talk also about the package I made called Django Dibyparty. The idea of the package is to make table partitioning absolutely automatically on the fly. I won't go into details about what table partitioning is. Basically the idea is that when a record is inserted into a database table, if that table is partitioned by some condition, for example, we want a table partitioned by month, then the record is inserted into the corresponding partition. The cool thing is that you still receive a record from the main table, but behind the scenes record is stored into its partition. After that I also gave a full-length talk on this topic on some other conferences, and everywhere people was asking the same question, will this be available for SQL alchemy or Peewee or some other ORM? And I thought, like, why not? So now I would like to present you their architect. All right, all right. Thank you, thank you. Okay, let's get serious for a moment and talk about some features. Architect supports Python through 2.6 to 3.4. It has absolutely no external dependencies, except for the ORM it will be working with, of course. It has extensive documentation at Read the Docs, and it has 92% test coverage at the moment. And supported databases are PostgreSQL and MySQL at the moment, but more are coming. The supported ORMs are Django, Peewee, Pony, SQL alchemy, and SQL object is coming soon. Okay, now about the installation. It's as usual from PyPI. It's very easy to use and configure. Basically, you just import a partitionable mixing for the needed ORM and add it to the model. This is a Django example, but it can be Peewee, Pony, or SQL alchemy. Then you add a partitionable meta class with the settings for the model, and then you run a special initialization command, which will insert some triggers and some other database stuff. And that's all. It's very simple. Now, every record will be inserted into the respective partition for the needed month, absolutely, automatically. Okay, plans. Of course, I will add more partitioning methods. We'll support more ORMs, more databases, blah, blah, blah. But the main purpose of this package is to gather a lot of different features, like different field types, different model types, utilities, and other database-related features in one place under a single API so that no matter what ORM you are using, you always get the same. Of course, this is a big amount of work, but if anybody is willing to help, that would be very cool. You can contact me by Skype, email, or just talk to me during the conference. And I hope that together we can make the architect an object-relational mapper's best friend. Thank you. Thank you so much, Laks. Thank you. And thank you for choosing the right database to support as top level. I'm with the PostgreSQL community. I need the trade-chay, trade-chay, whoever you are. Can somebody tweet trade-chay to come on the stage? Thank you so much. Our next speaker will be talking about mate-light. Mate-light. Mate-light. Oh, I have to pronounce it in German. Mate is the thing you drink. So I assume something with this. And while they are getting ready, three logicians walk into a bar. The bartender asks, do you want to drink a beer? The first logician says no, I don't know. The second logician says I don't know. The third logician says yes. It's hard with a stroke and 30 degrees. But wait until this evening when you're in your air-conditioned room and tomorrow morning. It took me one week. So Uwe, are you ready? I'm ready. Can you hear me? So my name is Uwe. This is Sebastian. We're here to present mate-light, our 640 pixels display made out of Klub-Marte bottles and crates. And if you're wondering why this is so funny or cool, then you're probably not German, because Klub-Marte or caffeinated drinks made from South American mate tea have become the signature drink for German hackers. And so we built a display out of fused bottles and crates. And this installation is usually based at Seabase, which is a crashed space station below Berlin and also a hackerspace. You should totally visit it while you're in Berlin. You can find everything about it at c-base.org. And well, during Euro-Python, this thing is here. So it's on this level, on level C. Come see us after the lightning talks. It's 640 LEDs. Each one is placed inside one bottle. This is one crate out of 33. So each of the LEDs is connected to the next LED, so it looks kind of like a Christmas light strand. And at the end of the strand, they're all connected to a microcontroller, which is connected to a PC. That's running a Python server. And yeah, Yasek will tell you about it. So basically we took this 15-year-old laptop computer and I started coding up everything in Python. Notice that it was too slow. Then we made everything that was kind of performance-sensitive out into a C-model loaded via C-types. And now we have it running fine at 640 pixels resolution on a like 900 megahertz Pentium. So yeah, there's lots of stuff that you can do with it. So we have two ways you can talk to this thing. One is via TCP. You can basically just send text and it will display the text. There's an app for it. Yeah, there's an awesome app on the Google Play Store. So if you have an Android phone, you can just use and search for martylight and you can send messages to the big display. But there's also people who build games and gaming libraries in Python for this. So we have Tetris, we have a Mario clone, we have a Snake clone. Of course we have Conway's Game of Life. That's always good to have. We have video streaming. So you can start a little Python script on your computer that takes your video of your webcam and then streams it to the martylight. And we have animated GIF players. We also have an emulator for blinkin' lights if anyone knows what that is. There was an installation with really big pixels in the house next to this building. So there's a... Yeah, and we have paint and we have libraries for Node.js and Bash and Ruby to use this thing. So yeah, if you'd like to know more, go to getup.com. Yasek.multi-light or visit us during EuroPython somewhere around here. Thank you. Thank you very much. Thank you. Now are people tricking to collect two superhero cards with one talk? Okay. That's fine. Trey Che. Awesome. Next talk. Very, very good. And once to repeat, if you go outside there's the Haus des Lehrers, the house of the teacher it was built. And for those who are not from Germany or Europe like Richard from Australia, there was a big installation, blinkin' lights. They took the windows and they got some programming done so that they could use the windows and switching on lights off and on to have fit a display and they played Tetris on the house. Way cool. Way cool. Now, our last speaker for today will be Trey Che about Dev Assistant. Yeah. Are you... That's not your slide. Keep on fighting. Keep on fighting. Really? It was there. What do you get if you cross an octopus with a cow? Keep on fighting. Yeah. And a warning from your ethics department. And you lose all your funding. Oh, good. Oh, that's a step forward. Yeah, good, good, good, good. Yeah, you're doing fine and we still have time enough. That's sort of bad because it doesn't do what I want it to do. One tip if you prepare a lighting talk for tomorrow or one of the days. Just assume that the wireless will not work. Yeah, that's what I did. You assume that the wireless will not work. Yeah, wireless, but this is why it doesn't work either. Ah, yeah. And there's that law, it will take longer, even if you take into consideration that it will take longer. This is the new Lenovo, people don't get it. New laptop? PC, no signal, that's great. Okay, whatever, without that. Can you speak freely? Even better, give him a big hand for doing it without... And you get an extra 29 seconds for speaking without slides. But you need a microphone. Do you have a microphone? I have a microphone. Okay. Ladies and gentlemen, my name is Tomas Radjey. I work at Red Hat and I want to present this sort of project we're working on. It's a community project, it's called Dev Assistant. And it's used for automating pretty much anything that is related to programming except for the actual programming. So if you want to develop your Django project or a Flast project, you need to download dependencies, set up some variables, put things into the right places on the system. And it's always the same thing. So you can either write a shell script which won't be portable, or you can use Dev Assistant which is very much portable. Along with this, you can also make it pretty much destroy agnostic or even operating system agnostic. We're running on Fedora now, we can run on other Linux's and we even have rudimentary OSX support. Probably the coolest thing about Dev Assistant is that you can include a script. It's working. You can see this only on the screen. Oh, that's kind of bad. So I can show you the GUI. This is what it looks like. If you want to create a Python project, for example, you go with Flask. You get this nice window where you put the project name. You can specify if you want to run it in virtual and if you want to push it to GitHub, all these nice things. And we also have the command line interface which works the very same way. And it works with these scripts. It's written in YAML so that no developer can complain that, yeah, you use that ad language that we hate. This is a very nice multiple language. Oh, sorry. Yeah. This is what the Assistant file looks like. You can specify dependencies. You can specify. You can even subclass the Assistant script. And this is how it works most of the time. So you just run create Python Flask project that's going to be called Euro Python Flask. And as you can see, we get a standard Flask project. And if I do this, we get a working Flask project within like three seconds. So if you want to use this project, if you want to make it easy for collaborators to contribute, you can include an Assistant script of your own with your project. And you can also file bugs, submit patches. We'd be really glad. The URL is really simple. It's deafassistant.org. It's this website. So that's pretty much it. Thank you. Thank you so much. And that concludes today's lightning talks. Please give all the speaker and yourself a big hand. Thank you for being here.
 Okay.  Our first speaker, Felix Zumstein.  Do I pronounce it correctly if I do it German?  Yeah, that's absolutely right.  We can also German.  Felix Zumstein, Python and Excel, give him a hand.  You're stage.  So hello everybody, my name is Felix and I do Python for finance.  And in the next five minutes I'm going to show you two packages.  They're called Excel wings and Excel Python.  And the smartest amongst you have probably found out that it's all about programming Excel from Python.  So Excel wings is my own package and Excel Python is a package from a guy called Eric Reynolds.  And the good thing about those two packages is that they are totally complementary.  So having both of them at hand, you can actually do about anything you want to do with Excel and more.  So I'm going to jump in.  First thing that I wanted to mention before I jump in is that we are actually planning to merge two packages together into one at some point when they are a bit more mature,  because currently they are just a few months old and really just at the beginning.  So I'm jumping into demo Excel wings and I'm doing this on my Mac because the not yet released version 0.2 is going to have native Mac support.  It's going to be the first package ever who is actually caring about supporting Excel on Mac.  So you just create a workbook object from the Excel wings package. It opens Excel if it's not existing yet, if it's not running yet.  Then you can type in a familiar fashion as they're used to from VBA.  You can read it back. Let's say you can also use obviously index notation for your cells.  You can also deal with datetime objects and address various cells at the same time.  So it's going to be correctly transferred into date cells on Excel side.  You can also bring over whole tables as nested cells, nested lists, sorry, and non-types here is going to be transferred as empty cells.  Then there's also an easy mechanism to read back those tables.  So you just specify the upper left corner and say table and you're basically essentially back to whatever you have pushed over to Excel before.  The good thing is this also works with non-pay arrays.  So if I just say, you know, identity matrix assign it to A10, it's just going to push it over there.  If I want to read it back, then I simply say here from A7, give it back to me as array equals to true.  It's also automatically going to handle NANs if they're empty cells, for instance.  Then pandas data frames work pretty much the same way.  So you can efficiently read in your data here again from A6, the table, then you split off the column headers and the rest you put it into the data.  And you quickly have your data frame back in Python, again, taking care of the NANs.  Then pushing it back is as easy as before.  You just throw it over into a cell and if you don't care about the index, for example, you just say index false, you can do the same with the header.  The last thing here I'm going to show is a one-liner actually to add charts and automatically control the chart type and the source data.  So that's what the upcoming version 0.2 will feature on the Mac, but we have currently a lot more features on the Windows version.  So for instance, you can actually invoke those scripts that you write with Excel wings.  You can invoke them directly from Excel.  So we have a native way from Excel wings.  It's a bit slow, but if you combine it with Excel Python, then the first call is slow, but then it's very, very fast.  All it needs is a one-line of VBA in the back.  Then now I'm going to completely switch over to Excel Python.  Excel Python is just great because it allows you to expose existing Python code without having to do any changes into Excel.  So for instance, I have a matrix here.  I have, I want to calculate the inverse of it.  There's a function for that in Excel.  Obviously, I'm inverse, but the thing is if I change that into a singular matrix, then I'm inverse will not tell me the result anymore because it's not defined.  So in NumPy, it's easy.  We have the P inverse, the pseudo inverse that is actually made for these non-singular matrices.  And we can still calculate it.  So having Excel Python, I can natively expose the PINF function here in Excel.  All that's needed is a little wrapper over here in the code section in the VBA.  It might look a little bit convoluted right now, but there's an add-in, a developer add-in that can actually produce this code for you.  And then the last thing I want to show you is a complex, well, it's not utterly complex, but still it's two matrix multiplication and a transpose applied to large matrices.  So we have a 400 times 400 matrix.  And if I change a value here, then I have to wait a long time for the native Excel functionality to calculate almost too long for lightning talk.  And if I do the same over here in Excel Python, it's like blisteringly fast.  Thank you.  Thank you.  Thank you so much, Felix.  Thank you so much.  Richard Jones, please get your setup.  You get the original lightning talk man superhero card for your collection for giving a lightning talk.  Our next speaker will be Richard Jones from Down Under talking about packaging and awesome.  Please can I get Hiroki Hiroki with a non-asky last name to the stage.  And while we were talking about Excel, I heard that the Broechek management for the new Berlin airport was also done in one big Excel sheet.  And that brings us to an infinite number of mathematicians walk into a bar.  The first orders one beer. The second one orders half a beer.  The third one orders a quarter of a beer.  The next one orders an eight of a beer.  The next one, a one sixteenth of a beer.  The next one just pulls two beers and says to the guys, you have to know your limits.  We are quite in an historic date in the year.  What happened yesterday 45 years ago?  The moon landing very good. Some still say it was faked.  And this morning, Constanza told us they spent 51, 54 billion in the less black budget on spying.  And I learned the moon landing only cost 100 billion.  And this is a viable photo with the earth, with the planet, the most epic selfie ever.  We can get it for two years of spying. We can have this selfie posted every year.  And I'm quite sure you could make the same an advertisement on those Twitter page.  Okay, Richard, you ready?  I'm going to have to wing it.  I'm fairly deeply involved in Python packaging.  I'm the guy who's the admin for the Python packaging dex.  And I've got a bit of a premise here.  Who agrees with this? The packaging is awesome.  Really?  Really?  Okay, so I wouldn't necessarily say that myself.  It's certainly getting better. It's been pretty terrible, but we are working on it.  It's improving. There's a Python packaging authority now,  which is a group of people who have been working on tools kind of semi independently.  And we're all kind of working together now to try and make things better.  And one of the issues with the Python packaging story is that there's a lot going on.  So Python has this motto about there being one obvious way of doing things.  So it's a bit of a complex story.  Another issue that we've had is that the story has been told in many different places.  So we've got different people documenting their projects in different places.  You often end up finding documentation for this stuff on Stack Overflow,  all sorts of disparate locations.  And some of it is quite out of date because packaging, you know, it moves on with the times.  So what the Python packaging authority has done is create a single point of documentation for all of this.  And it's packaging.python.org.  The nice thing about this is it's being kept up to date.  It's not complete, but the stuff that most people need to know about creating packages,  installing packages, distributing them, even things like caching them locally and mirroring the whole index,  those things are documented.  There's some of the edge cases aren't necessarily documented yet.  So it's a work in progress, but it is being kept up to date.  And the really nice thing about it is that button at the top right-hand side there,  where if you see a problem, you can go straight ahead and either suggest a fix  or just make the fix and submit it to the people who are looking after it.  So I think that's pretty cool and a great improvement over where we've been in the past.  So packaging.python.org.  If you ever need to know where to look for documentation for how to do anything in packaging, that's the place to go.  I'm also organizing an open space about packaging if you're interested  and would like to contribute to the general things that are going on in packaging.  Then on Thursday at 11 o'clock, out in the garden area, so when we start yelling at each other,  it's kind of an open space and we can feel free to run away.  That's where we're going to be talking about those things.  And it'd be good to get interested people to come along and contribute.  So thank you.  APPLAUSE  Can I get on, Richard?  Oh, Richard is one of the guys who can soon call Bingo because he got four lightning talkman cards.  The only one in the world.  Now, somebody submitted a talk without reading the documentation.  It's just a new PSF.  Who did it?  Yeah, Mark, I was suspecting it.  Anyway, please be prepared for the stage.  Our next speaker will be Hiroku.  What is your last name?  Kiohara.  Kiohara?  Yes.  Am I doing good?  Yeah.  Kiohara is good?  Yeah.  Have you set up your system?  Set it up.  Okay.  Okay.  One thing about that traveling is I always have a lot of luggage with me  and I always pay extra fees in those cheap airlines.  And people say to me, you don't have to change your clothes every day.  And I'm a little bit maybe special, somebody called OCD.  I just have to do it.  And I did some research.  It would be much more expensive to get therapy.  And just to pay that extra luggage for the next few years.  So with no further ado, Hiroki.  Yeah.  Our jungle report, May.  Yeah.  Give him a big hand.  Thank you.  Thanks so much.  Yeah.  This is really awesome view.  Yeah.  Today I introduce you a jungle report mail, a library I created.  Yo.  Yo from Hiroki K.L.I.  My name is Hiroki K.L.I.  from coming from Japan, Ralph Bison and Bill and so on.  What is a jungle report mail?  It is a jungle library to provide a report mail.  What is a report mail?  Anyway, some jungle management man used as a nightly batch.  Some web applications require some nightly batch creating some summary  or running a heavy and slowly circle and so on.  Yeah.  We need.  We need a nightly batch.  And we need some reports of the command.  The command succeed, failed, or what kind of file used and what kind of  loads and proceed and so on.  We need a report.  And some of them we can't sleep.  The nightly batch failed or something.  We need a report.  Yeah.  Some of you recommend sentry.  Yeah.  I know.  And sentry is an application to aggregate logs.  So it provides a dashboard.  It provides aggregated logs and it provides notifications as an email.  Yeah.  It's a really great project.  I know.  I know.  But lack of a resource.  We can't run the sentry server.  The lack of resource.  We have only this small instance of EC2, something like this.  Tiny project.  We don't have enough resources.  So I recommend the jungle report mail.  This is a very common, you know, this is a jungle management month.  And you need to import the apply report and decorator and apply it to the  handle method.  When the handle method takes a reporter object as a second argument and you can use  the interface like a list.  You can append some strings you want to report.  Yeah.  This is a very, very, very simple example.  Let's see the more complex example.  Yeah.  We use this reporter object in the for loop.  And at this report, the loop counters number will be reported.  And this command will end.  You will receive the admin mail.  Admin mail is a very common, you know, that admin mail of jungle.  And the subject.  Oh.  It's pretty good.  But yeah, subject you like you will get.  The body, the top of body of the mail, you will get the information of the  command.  What kind of file you use, what kind of options applied and so on.  And it's pretty good.  But you will get the result of the proceed.  This reporter append, this appended string will be appear in this.  So you can know, you can know, and you can notice the result of the command as a mail.  Okay.  And more, the command provided a hundred when the command when the night river failed  automatically extended that other admin mail and some trans.  That error, name of error will be sent.  And you can customize the mail template and customize way to report to the console  reporting or manager or admin and so on.  Okay.  It's end.  Pokemon GitHub, hero, KLY, jungle, thank you for listening.  Thank you very much.  And I can tell you, it's a great module.  My business associate in Nigeria are using it to notify me every time they have found  some money that they need to transfer to me.  It works every time.  Thank you so much.  I need Alexander, Alexander curping about the flying elephant you are prepared.  Now our next speaker will be about the new Python software foundation.  And ready.  Give him a big hand.  Hello, I'm Mark Lamberg.  I'm one of the board members of the Python software foundation.  How many of you know the Python software foundation?  Almost everyone.  That's good.  How many are members of the Python software foundation?  So we definitely have a problem there.  And we decided to change something about this.  Because the Python software foundation has traditionally been a very close kind of organization.  And in April this year, we opened up the Python software foundation.  So now everyone in the Python community can become a Python software foundation member.  And I'm just going to show you how that's done.  It's really easy.  So you just go to Python.org.  You scroll to the very bottom.  You have a button here, become a member.  You go here.  Either you already have a sign in for Python.org or you register.  So you click here.  You enter your details.  You hit the button sign up.  You're signed up to the website.  Then you go back to that button again.  You can register as PSF member.  You enter your details.  You have to accept the code of conduct which basically says everyone should treat everyone nicely.  You click OK and you're a PSF member.  What does that give you?  Well, at the moment not much, but...  But there's an upgrade option.  You can get an upgrade to a managing member if you're managing an open source project, for example,  that uses Python.  You can be a contributing member if you're contributing to some Python open source project.  That gives you voting rights in the PSF.  So you actually have influence in the PSF.  We're going to have a PSF members meeting.  So all the people that now take their notebooks out and sign up as PSF member, they can attend this meeting.  It's on Wednesday.  It's at 5 p.m. room B09.  It's right next to the Python Software Foundation display that we have there.  And I'd like to invite you all to that meeting.  Thank you.  Thank you, Mike.  Wonderful.  Okay, Alexander, please set up your system.  And I need on the stage additionally, Max Treper.  You're here and you're prepared.  That's good.  So you don't need slides.  Wonderful.  Then I have to press the button to reset.  Reset.  Yeah.  Thank you for having me here.  My name is Alexander.  Alexander Kolpen from Vestag Ventures.  So we are sort of an unusual participant here because we are not developers.  We are investors.  I had one of the shortest way to come here.  So it was a big advantage.  Our office is in the bug fabric 10 minutes from here.  And what I wanted to tell you is about our project Flying Elephant.  Vestag Ventures is a legal entity.  We invest in young startups in a seed phase.  Seed phase is usually a phase where you have already developed something like a prototype  or you have the first users to show even customers.  And we invest 50,000, 100,000, 200,000 euros in this company so that this company has six months,  12 months depending on how much other people invest to do this product to bring it into the market.  We right now have roundabout a little bit more than 20 portfolio companies.  Most of them are here in Germany, in Berlin, Brandenburg and Hamburg.  And among these are some software testing companies.  One is or was called Test Hub.  It's a cloud-based software testing.  The other one is called Test Object.  It's app testing.  And if you look at our website at Vestag Ventures, you see that among these 20, there are a lot of different  industries like software testing is one.  The others are online education and others.  And in our project Elephant, we try to focus on one of these verticals, let's say, to invest  and to help young founder teams to build their first new company and to make this fly.  So that's why our idea was a project Flying Elephant to make something fly that is really heavy  and really difficult to do.  That's why we choose to name project Flying Elephant.  And that means we are here.  We are open for young founders, young people who want to do, want to find a new company,  wherever they come from, they all welcome.  The only thing we ask is that you come to Berlin for the first three to six months so that they can do the first steps together.  So we offer you office space, support and all the things you might not do so well.  Like the fundraising, forming the company and so on.  We also invest 25 to 50,000 euros in this company and help you with a lot of other services.  So whenever you feel that you have the feeling you want to work for yourself or you have friends who want to do that,  tell them about project Flying Elephant.  We are happy to hear from you.  Send us an email or give me a call.  Alexander Kolben is my name and I leave some of these postcards on the left hand side when I go out.  I'd be happy to at least meet one or two of you again.  Thank you very much.  Thank you very much, Alexander.  Alexander, stop, stop, stop, stop.  Mr. Kolben, Alexander, turn around.  You earned Farron Square.  You can invest in this project.  Hello. It's already running longer than one year so maybe it's not in the seat phase anymore.  I need Jasek, Jasek for Made Light.  Jasek, you're here, great, prepared.  So there was this MIT language professor who told his students in English if you have a double negative,  it will be positive again.  In Russian, if you have a double negative, it still stays negative.  And he told his students there is no language where a double positive will be negative.  Yeah, thank you. Out of the off.  Yeah, that would have been a joke.  I have some jokes from the time when Germany was still separated,  but they, no, he's not ready. No, no, no.  He has to open it.  You know the fans at home, the TV's, whatever, big needle.  In the former times there were always a reflection in a cross form.  There have been two sayings.  It's the late revenge of the socialists to the Pope that they got the cross symbol.  And the other one is the highest plus of socialism.  That's the Berlin Tango.  Now, architect and optional, relational, mapper's best friend.  Give a hand to Max.  Woo!  Hi, everyone.  At first I have to tell you a little story.  So last year I was at the Europe Python in Florence,  and I was given a lightning talk also about the package I made called Django Dibyparty.  The idea of the package is to make table partitioning absolutely automatically on the fly.  I won't go into details about what table partitioning is.  Basically the idea is that when a record is inserted into a database table,  if that table is partitioned by some condition,  for example, we want a table partitioned by month,  then the record is inserted into the corresponding partition.  The cool thing is that you still receive a record from the main table,  but behind the scenes record is stored into its partition.  After that I also gave a full-length talk on this topic on some other conferences,  and everywhere people was asking the same question,  will this be available for SQL alchemy or Peewee or some other ORM?  And I thought, like, why not?  So now I would like to present you their architect.  All right, all right. Thank you, thank you.  Okay, let's get serious for a moment and talk about some features.  Architect supports Python through 2.6 to 3.4.  It has absolutely no external dependencies,  except for the ORM it will be working with, of course.  It has extensive documentation at Read the Docs,  and it has 92% test coverage at the moment.  And supported databases are PostgreSQL and MySQL at the moment,  but more are coming.  The supported ORMs are Django, Peewee, Pony, SQL alchemy,  and SQL object is coming soon.  Okay, now about the installation.  It's as usual from PyPI.  It's very easy to use and configure.  Basically, you just import a partitionable mixing for the needed ORM  and add it to the model.  This is a Django example, but it can be Peewee, Pony, or SQL alchemy.  Then you add a partitionable meta class with the settings for the model,  and then you run a special initialization command,  which will insert some triggers and some other database stuff.  And that's all.  It's very simple.  Now, every record will be inserted into the respective partition  for the needed month, absolutely, automatically.  Okay, plans.  Of course, I will add more partitioning methods.  We'll support more ORMs, more databases, blah, blah, blah.  But the main purpose of this package is to gather a lot of different features,  like different field types, different model types, utilities,  and other database-related features in one place under a single API  so that no matter what ORM you are using, you always get the same.  Of course, this is a big amount of work,  but if anybody is willing to help, that would be very cool.  You can contact me by Skype, email, or just talk to me during the conference.  And I hope that together we can make the architect  an object-relational mapper's best friend.  Thank you.  Thank you so much, Laks.  Thank you.  And thank you for choosing the right database to support as top level.  I'm with the PostgreSQL community.  I need the trade-chay, trade-chay, whoever you are.  Can somebody tweet trade-chay to come on the stage?  Thank you so much.  Our next speaker will be talking about mate-light.  Mate-light.  Mate-light.  Oh, I have to pronounce it in German.  Mate is the thing you drink.  So I assume something with this.  And while they are getting ready, three logicians walk into a bar.  The bartender asks, do you want to drink a beer?  The first logician says no, I don't know.  The second logician says I don't know.  The third logician says yes.  It's hard with a stroke and 30 degrees.  But wait until this evening when you're in your air-conditioned room  and tomorrow morning.  It took me one week.  So Uwe, are you ready?  I'm ready.  Can you hear me?  So my name is Uwe.  This is Sebastian.  We're here to present mate-light, our 640 pixels display  made out of Klub-Marte bottles and crates.  And if you're wondering why this is so funny or cool,  then you're probably not German,  because Klub-Marte or caffeinated drinks made from South American  mate tea have become the signature drink for German hackers.  And so we built a display out of fused bottles and crates.  And this installation is usually based at Seabase,  which is a crashed space station below Berlin and also a hackerspace.  You should totally visit it while you're in Berlin.  You can find everything about it at c-base.org.  And well, during Euro-Python, this thing is here.  So it's on this level, on level C.  Come see us after the lightning talks.  It's 640 LEDs.  Each one is placed inside one bottle.  This is one crate out of 33.  So each of the LEDs is connected to the next LED,  so it looks kind of like a Christmas light strand.  And at the end of the strand, they're all connected to a microcontroller,  which is connected to a PC.  That's running a Python server.  And yeah, Yasek will tell you about it.  So basically we took this 15-year-old laptop computer  and I started coding up everything in Python.  Notice that it was too slow.  Then we made everything that was kind of performance-sensitive  out into a C-model loaded via C-types.  And now we have it running fine at 640 pixels resolution  on a like 900 megahertz Pentium.  So yeah, there's lots of stuff that you can do with it.  So we have two ways you can talk to this thing.  One is via TCP.  You can basically just send text and it will display the text.  There's an app for it.  Yeah, there's an awesome app on the Google Play Store.  So if you have an Android phone,  you can just use and search for martylight  and you can send messages to the big display.  But there's also people who build games and gaming libraries in Python for this.  So we have Tetris, we have a Mario clone, we have a Snake clone.  Of course we have Conway's Game of Life.  That's always good to have.  We have video streaming.  So you can start a little Python script on your computer  that takes your video of your webcam and then streams it to the martylight.  And we have animated GIF players.  We also have an emulator for blinkin' lights if anyone knows what that is.  There was an installation with really big pixels in the house next to this building.  So there's a...  Yeah, and we have paint and we have libraries for Node.js and Bash and Ruby to use this thing.  So yeah, if you'd like to know more, go to getup.com.  Yasek.multi-light or visit us during EuroPython somewhere around here.  Thank you.  Thank you very much.  Thank you.  Now are people tricking to collect two superhero cards with one talk?  Okay.  That's fine.  Trey Che.  Awesome.  Next talk.  Very, very good.  And once to repeat, if you go outside there's the Haus des Lehrers,  the house of the teacher it was built.  And for those who are not from Germany or Europe like Richard from Australia,  there was a big installation, blinkin' lights.  They took the windows and they got some programming done so that they could use the windows  and switching on lights off and on to have fit a display and they played Tetris on the house.  Way cool.  Way cool.  Now, our last speaker for today will be Trey Che about Dev Assistant.  Yeah.  Are you...  That's not your slide.  Keep on fighting.  Keep on fighting.  Really?  It was there.  What do you get if you cross an octopus with a cow?  Keep on fighting.  Yeah.  And a warning from your ethics department.  And you lose all your funding.  Oh, good.  Oh, that's a step forward.  Yeah, good, good, good, good.  Yeah, you're doing fine and we still have time enough.  That's sort of bad because it doesn't do what I want it to do.  One tip if you prepare a lighting talk for tomorrow or one of the days.  Just assume that the wireless will not work.  Yeah, that's what I did.  You assume that the wireless will not work.  Yeah, wireless, but this is why it doesn't work either.  Ah, yeah.  And there's that law, it will take longer, even if you take into consideration that it will take longer.  This is the new Lenovo, people don't get it.  New laptop?  PC, no signal, that's great.  Okay, whatever, without that.  Can you speak freely?  Even better, give him a big hand for doing it without...  And you get an extra 29 seconds for speaking without slides.  But you need a microphone.  Do you have a microphone?  I have a microphone.  Okay.  Ladies and gentlemen, my name is Tomas Radjey.  I work at Red Hat and I want to present this sort of project we're working on.  It's a community project, it's called Dev Assistant.  And it's used for automating pretty much anything that is related to programming except for the actual programming.  So if you want to develop your Django project or a Flast project,  you need to download dependencies, set up some variables, put things into the right places on the system.  And it's always the same thing.  So you can either write a shell script which won't be portable,  or you can use Dev Assistant which is very much portable.  Along with this, you can also make it pretty much destroy agnostic or even operating system agnostic.  We're running on Fedora now, we can run on other Linux's and we even have rudimentary OSX support.  Probably the coolest thing about Dev Assistant is that you can include a script.  It's working.  You can see this only on the screen.  Oh, that's kind of bad.  So I can show you the GUI.  This is what it looks like.  If you want to create a Python project, for example, you go with Flask.  You get this nice window where you put the project name.  You can specify if you want to run it in virtual and if you want to push it to GitHub, all these nice things.  And we also have the command line interface which works the very same way.  And it works with these scripts.  It's written in YAML so that no developer can complain that, yeah, you use that ad language that we hate.  This is a very nice multiple language.  Oh, sorry.  Yeah.  This is what the Assistant file looks like.  You can specify dependencies.  You can specify.  You can even subclass the Assistant script.  And this is how it works most of the time.  So you just run create Python Flask project that's going to be called Euro Python Flask.  And as you can see, we get a standard Flask project.  And if I do this, we get a working Flask project within like three seconds.  So if you want to use this project, if you want to make it easy for collaborators to contribute,  you can include an Assistant script of your own with your project.  And you can also file bugs, submit patches.  We'd be really glad.  The URL is really simple.  It's deafassistant.org.  It's this website.  So that's pretty much it.  Thank you.  Thank you so much.  And that concludes today's lightning talks.  Please give all the speaker and yourself a big hand.  Thank you for being here.
Lightning_Talks1_0_407.png Lightning_Talks1_408_3623.png Lightning_Talks1_3624_4823.png Lightning_Talks1_4824_7751.png Lightning_Talks1_7752_8855.png Lightning_Talks1_8856_13955.png Lightning_Talks1_13956_14831.png Lightning_Talks1_14832_14915.png Lightning_Talks1_14916_15251.png Lightning_Talks1_15252_15863.png Lightning_Talks1_15864_17183.png Lightning_Talks1_17184_19595.png Lightning_Talks1_19596_19643.png Lightning_Talks1_19644_19763.png Lightning_Talks1_19764_20327.png Lightning_Talks1_20328_20459.png Lightning_Talks1_20460_20507.png Lightning_Talks1_20508_21095.png Lightning_Talks1_21096_21179.png Lightning_Talks1_21180_21299.png Lightning_Talks1_21300_22319.png Lightning_Talks1_22320_22367.png Lightning_Talks1_22368_22475.png Lightning_Talks1_22476_22619.png Lightning_Talks1_22620_22859.png Lightning_Talks1_22860_22943.png Lightning_Talks1_22944_23003.png Lightning_Talks1_23004_23051.png Lightning_Talks1_23052_23243.png Lightning_Talks1_23244_23615.png Lightning_Talks1_23616_24131.png Lightning_Talks1_24132_24491.png Lightning_Talks1_24492_25175.png Lightning_Talks1_25176_25571.png Lightning_Talks1_25572_27227.png Lightning_Talks1_27228_28559.png Lightning_Talks1_28560_29063.png Lightning_Talks1_29064_29207.png Lightning_Talks1_29208_29795.png Lightning_Talks1_29796_29963.png Lightning_Talks1_29964_33371.png Lightning_Talks1_33372_33443.png Lightning_Talks1_33444_35483.png Lightning_Talks1_35484_43607.png Lightning_Talks1_43608_46211.png Lightning_Talks1_46212_47099.png Lightning_Talks1_47100_47663.png Lightning_Talks1_47664_47747.png Lightning_Talks1_47748_48395.png Lightning_Talks1_48396_50351.png Lightning_Talks1_50352_50711.png Lightning_Talks1_50712_50903.png Lightning_Talks1_50904_51047.png Lightning_Talks1_51048_60299.png Lightning_Talks1_60300_60419.png