This is Watika Smith, Safety Compliance Manager with the Safety and Risk Management Department for the City of Columbia. This is your safety message for the City of Columbia employees and for the public. I'm here to discuss with you today a message for the holiday season. This year, holiday season will be celebrated differently due to COVID-19. With that being said, always remember, keep in mind of your health and safety for the holiday season. Take care of your loved ones and always make sure they are healthy and safe so you can enjoy it in a special way. At this special time, we will also let you know that H. Demetrius Rump with the City of Columbia, Director of Safety and Risk Management, will bring to you special greetings and special measures, but especially he will bring you safety tips for the holiday season. Hello, this is Demetrius Rump, the Director of Safety and Risk Management for the City of Columbia. This is your monthly safety message for the City of Columbia employees and the public. As Watika Smith, our Safety Compliance Manager, stated earlier, today I will be talking about holiday safety for each and every one. This holiday season may look a little different for everyone just due to the fact of the coronavirus and all the effects it's had on our community and the nation. It's okay to participate, but as long as you're gathering with small gatherings, indoors or outdoors, I recommend that you do that just in order to protect yourself. Also, if you decide to travel, make sure your car, your vehicle is in a good running condition. Make sure you pack an emergency kit because you never know. When you're decorating during this holiday season, ensure that you use a tree that has a fire retarded and do not put that tree near a fireplace just due to the fact that it may catch fire. When you're decorating and using lights, make sure you use indoor lights for the indoors, outdoor lights for the outdoors. And when you get ready to go to bed at night, make sure your lights are turned off because you don't want to have excessive electricity going to those lights and with your family and you sleep. During this time of the year, we like to give. Unfortunately, the hospital ends up with a lot of children in the hospital due to toys that were too small that if they swallowed. So if you're in the gift giving, make sure when you provide toys to children that they don't have any small parts that they can either swallow or hurt themselves. Fire starters, if you're going to burn candles during this season, make sure those candles are properly secure and they're not easily to knock over.  And last but not least, it is still the coronavirus outbreak. I know we're all concerned about this going globally, but you know, we have to do our part. Even though the vaccine is being delivered, is being distributed, and is also being administered all across the United States, we still have to do our part. With this highly contagious virus, we have to treat it as a marathon and not a sprint. Approximately 16 million people in the United States have contracted this daily virus. In South Carolina, approximately 200,000 people have contracted the virus. Also in South Carolina, over 4,000 people have died from this contagious virus. So I recommend that you follow the three W's.  Wash your hands with warm soap and water or either hand sanitizer that contains 6% alcohol. Watch your distance. What I mean by that, maintain social distance at least six feet. And the last one is the letter D. Make sure you disinfect. Disinfect all high touch areas such as your light switches, your desktops, countertops, handrails, and anything that is being frequently touched by a lot of bodies. I thank you all so much for all you have done in the year 2020. So you remember this is a team effort. It's not about us. It's about all of us. So we can come back together potentially in 2021. Remember, safety starts with an S, but it begins with you. Thank you.


I would like to ask Emmanuel Brethel to go to the stage and the friendly guy from the projector service told me I have to put off one or two fingers one is for Mac or digital the other is for VGA you know you know which finger is what good so I will try it and maybe who has been here Monday good you remember that a joke with the three logicings going to a bar yeah somebody told me there was a major bug in it and he was totally right that bug that joke was not passable and now we will have quick service prototyping and later we will have the bug resolution before we get a quick prototyping I need a better vector Victor in you are back are you better no he is better good okay now please a big hand to Emmanuel Brethel about quick service prototyping like him on Facebook hi everybody I'm going to talk about spots which is a library to quickly prototype services and basically help you into implementing things more than setting them up so what he takes to build a service usually after the command line arguments you will set logging you will set up the service and you will also have your task that is a job you will have to manage them and then you will have your implementation in Facebook we love thrift we use it everywhere and this is what it looks like to make a simple service kind of handle arguments set the logging here are trained by a thrift handler and the thrift transport and I start the service what's part does it kind of remove some of the few steps you have to do so you don't have to handle arguments anymore you don't have to handle logings you still have to set up the service somehow you don't have to manage your task and you have to do the implementation because that's what you want to do right so this is the same example here I'm importing stuff from spots I'm creating my thrift handler but I don't then I just register the task and then I initialize the service where it gets a bit more interesting is if you start adding more tasks here I'm adding a periodic task that will be triggered every second basically and all I have to do is I implement the task and register the service the task story and then start the service and even more tasks there is a default tornado HTTP task that does not much but then you can subclass that and basically do the do what you want with it there is other tasks supported like cues and directory watcher deboss every through three twiz the you might actually implement any other kind of task all it will do it was it will help you into starting the other loop of your of your task and shut it down when you need to how to get it people install spots and otherwise you can go and get it from github and aside from that we are also hiring so you can come and talk to me if you're looking for something different thank you thank you so much I need Udo Spallek wait wait wait you have to be liked you're from Facebook so you won okay Udo Spallek Udo you're here very good so to fix the bug with the three logic and what I missed out the bartender asked him do you all want to have a beer and now the joke is easier to understand because the first one says I do not know the second one says I do not know the third one says yes now it works bigger than I thought okay he is still working who will be staying for Sunday in Berlin make sure to look around because there is a crazy American billionaire who will be hiding money around Berlin and that's not even a joke or at least I have watched TV this morning for five minutes and they told there will be hidden envelopes of money most likely even euros so our next speaker will talk about Blinky's asking adventure so I guess that's a return of the blink tag in HTML your stage give him a hand well actually Blinky is this little guy here he's blinking and here's Blinky source code it's nothing complicated there's some delays in a loop and now Blinky is first nervous in front of this whole crowd and secondly sad because he doesn't have any friends how do we fix that we can use the threading module because threads are easier right okay this is different screen than I tried with okay so the only thing that changed here is there's a different function to print the Blinkies it's you know an external function there we make more Blinkies in a list and then we just start them and they're all blinking happily the problem here is well Blinky is happy now because he has friends until a system upgrade comes along with a new enterprise ready print Blinkies 2.0 function that does a little more than previously and we have trouble because all these Blinkies are trying to print themselves well print all the Blinkies so they're overwriting each other's lines and it's just a huge mess and we should use some blocking here but you know this is a problem that you know library changed we don't have control over it so you know that's a problem so what do we do we look at what Node.js does and we use callbacks and futures now what this does is every time we call it non-blocking or a long function we add a callback to it specifying what needs to be done next after this sleep is done so here we schedule open eyes here we schedule close eyes everything works everything's nice the good thing is that if you schedule something the entire thing runs in a block there's no interruptions the print Blinkies can't introduce any interruptions because it would have to change its signature we would have to call it a different way so everything's nice the problem here is these two functions are a loop right well it's not really a loop it's a trampoline thingy there but what we want is a loop what it does is a loop and we would like it to look like a loop and this is what async.io which async.io solves somebody some of you probably heard of async.io and what async.io does is let us use a loop for it we use this yield from which lets us know that this is a function that can result in a context switch it can switch to another you know like thread of execution so we have to be careful because things can change from this function to this function but in between these yield from it's again run in a single block without any interruptions so I hope this cleared up for some of you what async.io is all about and all these other async things and thank you thank you so much you earned your lightning torque man superhero card and do you know what's the big brother of Blinky Clippy who remembers Clippy so you're trying to rise your hand do you need help with that that's Clippy and we also need baptiste miss Pellon miss Pellon oh it's the French miss Pellon our next speaker will be Udo Spalik about the Triton Unconference in Leipzig 2014 a bartender says we do not serve faster than light particles here a tachyon walks into a bar now the stage for Udo about the Triton Unconference in Leipzig give him a big hand hello my name is Udo Spalik I come from the Triton Foundation and I would like to invite you to the Triton Unconference in Leipzig it's a town nearby Berlin on one hour of the way 2014 1114 and we are talking there about the Triton framework and other stuffs the functional technical details there are users developers and so on you may ask what is Triton because it's not very known because it's just a small it has just a small domain of use first for the name we come from far away from Planet Neptune one of the biggest satellites is Triton with I and we name our our applications in the Triton framework all with names from the Satellites of Neptune Triton looks like this you can see three clients on the right side you see a GTK client in the middle you see some some web client some prototype of a web client and on the left down you can see a client which is for Python a library the architecture of Triton is client server based it's if you like multi-tier framework with web connections we use several protocols to bind the clients to the server we use usually usually for for persistence Postgres SQL or SQLite and we support a little bit my SQL but it doesn't work very good one special thing is the module tree you see on the left on the bottom there all functionality in the system is served by modules and we have good inheritance inheritance in the modules so you can build upon other modules your own modules for your special things you want to do the special things you want to do with Triton is usually something like accounting and invoicing sales purchases inventory stock manufacturing resource planning project management and party relationship management which is a little bit bigger approach than just customer relationship management so it's a business-related framework we use this Triton the most prominent user of Triton is GNU Health it is a medical record system it provides hospital information system and for the future it will provide an health information system because Jamaica decided to use GNU Health for organizing and managing their hospitals this is one view of an earlier version of GNU Health you see a patient record of a person and you see it's just the stuff you want to put in when you're a doctor and you want to see when you have a patient in front of you just install Triton use your favorite distribution you can just install it but you can also use Pi Pi source packages or whatever you need so I invite you again for the Triton Unconference thanks everybody Triton Unconference and I forgot my super hero card is Sein Verlust Anton I need you on stage Anton Tiorin are you here Anton you're here very good our next speaker will be Baptiste Miss Pellon about yet another conference announcement and he's adequately ready okay give him a big hand for yet another conference announcement thank you hi everyone like I said before I'm Baptiste I'm one of the Django core developers and I'm here today to announce you yet another conference I hope you're not bored of this so first I'm going to tell you a little bit of the story behind his conference last month I was on a train in Italy back from another conference I went with my friends Mark Daniele and me we were all on this Italian train so we had a lot of time to chat and we were thinking about Django about how the Django the Django source code is a bit complicated and there are some parts that only a few people know about and when we try to get other people to contribute we often need to review their code and if their code touches these parts that we don't know about it makes it really hard for us to accept it or reject it so we are looking for solution how we can get this knowledge to spread inside the Django team but also inside the community so we started thinking what if what if we could put the whole Django team inside one room at one time how would it look like maybe something like this but seriously we had this idea for a conference and we called it Django under the hood the idea is this we're gonna have a two-day conference on the first day there is gonna be there are gonna be eight talks eight one-hour talk very technical by prominent members of the Django community and the Django core team this is the the program that we want to work with and it's not been fully announced yet but that's what we're running with six heavily technical talk to spread the knowledge that these people have amongst the core team and amongst the community and I know you're all very curious because this is all very exciting where is it and when is it is going to take place quite soon actually on the 14th and 15th of November this is a Friday and a Saturday and it's going to take place in Amsterdam which should make it easily reachable for a lot of people we hope in Europe and in the whole world and the reason I'm standing here today not just to announce it to everyone of you but we're also looking for sponsors we're looking for sponsors to give us money so we can bring as much of the Django core team and of the Django community to this place at once we're gonna use the money we get for travel grants to get everybody as many people as we can to this conference so if you if all of this interests you or if you want to get in touch with us our website which we just launched yesterday with the help of the awesome Olas is Django under the hood.com you can reach us at hello at Django under the hood.com or follow us on Twitter at Django under the hood thank you very much thank you very much Baptiste our next speaker will be talking about the configurable omnipotent custom application in the created network engine it will be unturned urine and I like long titles that fills the gap between two talks so while he's setting up I set up an email address that's jokes at lightning talk man.com so if you think those jokes suck mine are even better mail them to me if you find bugs mail them to me and until you mail give Anton a big hand for the configurable omnipotent custom application in the created network engine Anton your stage. Hello my name is Anton I work at Yandex three days ago I introduced you one of our open source project named the elliptics and today it's time to another one project it's project named cocaine and it's application cloud platform it's platform as a service and this name means nothing this name is just a name and I hope that each of you will see a technology behind this name and not only name so we started to develop cocaine at Yandex two years ago to solve problem with unifying our infrastructure as some of you could know Yandex is quite large company and there are about hundreds of different projects in Yandex so it's easy hard to it's quite hard sorry to maintain this project so we started to do this awesome thing so five minutes not enough to describe you to introduce your all features of our platform so I tried to introduce most important of them first of all cocaine has a pluggable architecture and each component of this platform is a plugin when it comes to storage for example it's used to store your code to save to store applications of your settings and it is provided as a service for read and write for your applications we use elliptics and if you want to use Cassandra for example you just need to implement your own plugin and after that it will work by magic and you need not change anything in your code we have automatic load balancing we use IBBS to communicate our well-known entry point to the cloud with backends we have all information about size of cues and each worker of your application in the cloud so we could spawn more workers for you if Lord is loading is growing now sorry and if there are a lot of workers in idle state we will kill for you of course we have isolation it's based on Docker technology thanks for Docker team for that awesome thing we support any language of course but we have frameworks only for seven languages Python C++ core Rabi, Perl, Java and not JS sorry for the last and it's easy to write your own framework framework implements IO between query of platform and your worker and for example Python framework is written pure Python and it's easy to maintain it's easy to explain to somebody and it's easy to understood and it's really necessary to write frameworks pure language flexible protocol we don't use HTTP in our platform we have our own protocol it supports streaming multi it looks like HTTP 2.0 and it allows you to communicate between your applications in the cloud and for example if you have a huge monster big application you could divide it into parts and after that communicate between them without reinventing communication system so the bottom line is if you need your own infrastructure if you need your own private cloud you should take a look at this project and I'm glad to ask or sorry I'm glad to answer any questions about that thank you thank you so much we need Lucas Bednar on the stage and we have the first crowd source choke knock knock race condition who's there that brings me is Lucas here Lucas knock knock get to the stage there are only two hard things in computer science cash invalidation naming things and off by one errors now enough with the jokes I wanted to try something different no no no no no no no no it's shamelessly stolen from Bobby McFerrin and he was telling the story that it worked in every culture so I was thinking will it work in programmer culture I have to test it and thank you so much for being part of it you remember Pavlov being in a bar the door bell rings and he says oh shit I forgot to feed the dogs black screen I remember the blue screens that was my first deployed largely deployed application the customer just deployed some spare server standing around and regularly it was a virtual machine running on faulty memory chips with a wrong driver and I was deploying it with PostgreSQL 8.0 beta 3 and it crashed every day the server not PostgreSQL and I didn't know it it took something like two weeks until somebody called me oh it's wrong we need the next one it's harder to find Vlad and Zalin Vlad you're here and he's got a Macintosh so that's a 201 you know none one so it took two weeks or three weeks until somebody reached me by phone and told me oh the application is not working can you take care of it I try to log on the server and to know well I reached a system administrator and he told me oh if I would always call you when a server blue screens you would have a bad time and there was running a better version of PostgreSQL which nowadays is discontinued because it's unsupportable but it never lost any data and what did Vlad and Kali in at EuroPython give him a big hand for a story and don't start yet I need Abraham Martin to move to the stage very good now you can start okay hi I'm Kali there is Vlad my colleague and friend and I'm going to talk about what we did that EuroPython it starts at the party like everything starts at the party but there we kind of did the party of our own and at that party we reversed the APIs and created Zippa which are the APIs reversed and they are it's a package for magic Pythonic REST clients and I'm going to finish with the buzzwords right now so what you can do for start you can import from Zippa any kind of client REST client you want like here I'm importing the GitHub API under the hood it magically transforms your import into a client it translate that API dash github dash com into API dot github dot com and you can do you can get resources like this very simple it translates gh dot user into slash user automatically and you can print the login name or do whatever you want with it you can easily create and delete stuff like an August what's the most awesome feature it supports simple iterators you can iterate throughout the resource and it follows the link header and actually iterates through the entire collection and it also supports filtering those iterators so you can iterate through all Django repositories sorted by creation orders by their creation order everything it does it's not hard coded into the client so it's a general purpose what in this example it's not that we implemented the GitHub client we just used Zippa to create a github client so where to use it you can use it to quickly access any API without a native client given that that API is written restfully and also to test your own APIs or if you want to develop an API and you don't want to write the client you can just give Zippa as a client and that's it we want to thank Claudia Poppa, Daniel Hayler which contributed already to this project and also the hacker fleet we just launched the pip package from the boat yesterday and you can join us tomorrow we want to make it pass the Python 3 test right now works only on Python 2 and we also need to write documentation and examples and that's it thank you please set up I need Pablo Zelais and Celia Quintas or Zintas to come to the stage can you make you show yourself so I know you're moving and the first crowd show crowd source choke was by Emil Stenquist and that was a race condition and I got a follow-up joke which was linked to an external website clickbait in jokes contribution you can't believe it so that joke is a broad grammar has one problem he thinks oh I will solve it with threads now two has problems now four men client okay hello everyone and sorry for problems first it's Lukas that's a race condition absolutely we we using threads here Lukas the foreman client your stage okay hello again and my name is Lukas Bednar and I work for FMQE infrastructure department and I would like to say something about the foreman client I'm not I'm not sure if you everybody is familiar with the foreman this is actually what they say about themselves it's a complete life cycle management tool for physical and virtual servers what what actually does it mean it's it takes care about provisioning machine configuration machine and also it monitors your machines it is able to manage many services like the FTP server DNS DHCP puppet master BMC BMC it's some kind of encapsulation of power management that means you don't need to care about if it's a bare metal machine or virtual machine if it's controlled by open-stack or whatever we just want to proceed with power cycle and that's it here's just a small list of supported computer resources of course bare metal open-stack of it is easy to and more the most important thing for automation purposes is it has a rest API so we can script everything so let's find suitable vapor for the Python but unfortunately there was nothing so no problem we can write it and share it it wasn't so hard you know it's just a weapon in the request to the APIs and here it is but for men is quite young project and it is under fast development so the API is changing logical structure there are new version of the API so we had to introduce a lot of logic into it and it got the quite complex and hard maintainable also no schema available so it was the problem so I we just got rid got sick of it and said stop and we just took look and there it was the good documentation which was also generated from the API so let's look at it look at it here is the HTML form it per its tells you everything about the all methods you can call also the parameters and so on and also it provides you in the JSON format so that's that's actually let's generate both client on the fire from the documentation and it worked actually we implemented it for a version a version one but we got it for free also for version two because we auto-generated it from the documentation or once we generated from the documentation it also has documentation included inside of the module automatically because we have all documentation you know there if you want if you're interested or you need to manage your infrastructure by four men you can fork this project and and play it with it but I have second thing why I'm talking about because yesterday I attended the presentation about elastic search clients and actually they did the same they followed the same pattern you know I was considering that like the crazy idea to generate the API from the documentation but apparently I am I'm not alone who wanted who just did the same also the risk order but I was trying to use that but it wasn't compatible with the format documentation so so that's it so I think it's interested idea to to try write some kind of clients driven by AP documentation it improves the documentation of the API and it's it's fun thank you and if you want use it then now Abraham are you are you Abraham very good here's Abraham I have to thank Patrick for the threats joke and another crowd sourcing joke from Uwe what's the favorite activity of bits no they drive on the bus so if you have other crowd sourcing jokes and sources jokes about crowdsourcing you can send them to jokes at lightningtalkman.com you can also send jokes that are not about crowdsourcing I'm crowdsourcing jokes to jokes at lightningtalkman.com and I'm very happy I want to have it in a clear type thing Abraham Martin of the University of Cambridge will talk about HSTS give him a big hand and start hello how many of you are using HSTS well only a few ten as much so but how many of you know about HSTS okay so the same hands so HSTS is basically HSTS is an RCC which is really well it's pretty new because RCCs you know take a lot of time to be approved and to be practical to be in a final product so basically HSTS solves the following problem let's say we have a we are browsing our bank web page and we type bank.com which HTTP and we get a response from the bank web page where it shows the welcome page in HTTP and it has a button that follows the link to the secure login using HTTPS and also sometimes they also send us cookies or session with session content inside basically when we click the login button we are redirected using our browser to an HTTPS secure login in our bank web page but imagine you are in an insecure place for example the Euro Python where anyone can just create an access point and you maybe doesn't notice and you connect to it and it can act as a man in the middle with doing the network connection and you so you send the same request bank.com and instead of what they copy the same web page the same you the same web page but with a little change in the URL so you end up connecting securely to this different web page because it still has a certificate which is valid but with a different typo some well most of the users doesn't check if the there is a green lock or even an extended certificate which also says the company name in this case PayPal so most users will notice that they have changed the URL and they are now in an unsecured web page that is fake and even when you start an HTTP connection you end up sending the well the web server may end up sending the session cookie and all the cookies through HTTP although you later connect to them using HTTPS so you could think okay I'm safe because I have my web server which uses redirect all the HTTP calls to HTTPS but if you have money in the middle and you send the same request the money in the middle also can send you an HTTP redirect to a different a different URL and you will notice so at the end do you have this configuration but the money in the middle does the same thing and we have the same problem at as the beginning so it doesn't solve the problem so we have the HTTP a strict transport security to the rescue and basically what it does is the first time we visit the web page we send the request and then we get back the web page plus a header that it's called a strict transport security so the browser learns that this web page from now on use it should be accessed using HTTPS only so you any other request that you send it will transform to an HTTPS connection the same goes for if you have your configuration as a redirection it doesn't matter if you first serve an HTTP web page and then you redirect to an HTTPS or you do it using your web config your web server configuration so the next time the user tries to go to bank.com using HTTP or rather as most of us does without putting HTTP or HTTPS the browser knows that this web page is in this secure list and doesn't allow you to do a request using HTTP but instead it changes the URL to HTTPS so it's impossible for a man in the middle to have this connection and redirect you to another URL and it's really really easy you only have to include this on your app as a configuration and also it's almost compatible with all the web browsers so please keep your users safe. Very exact timing Abraham. That's very important for browser security to have exact timing. We need Pablo, Pablo, Zedais and Celia, Zintas, Kintas I've got the Latin pronunciation to the stage and I need Yves, Yves Hilbisch. Yves are you here? Are you crashing another economy with some hedge funding? No as we are talking about banks do you remember that ATM who was addicted to money? He suffered from withdrawals. Okay that worked well. Now our next speakers will be Celia and Pablo about the PyArgentina community.  Give him a hand until he's ready. Okay this is my first time here in Europe Python I think for Celia as well. Second one but it's the first time we're going to talk a bit about what the Argentinian community in Python is doing. So it's a bit of a lot so we're gonna be quick. So well to use a bit of enterprise philosophy we have a mission and vision to integrate like the Argentinian Python users to share experiences and to spread the Pythonic word like among developers also in companies universities are more important like to foster and create like a very active community. Also like the Python Argentinian community is the point of reference for Python use and distribution and okay we have a lot of activities like the community has been growing steadily like we've reached like a thousand and three hundred members only on the mailing list very active by the way like more than 400 messages per month we have a lot of a lot of members not only for from Argentina but also from other Spanish speaking countries even from Cuba it's not on the map but there's a Cuban guy I'm working with him and okay we have also very active IRC channel I don't know why but the most active members call it the channel of love you gotta ask them and we have a very active also web portal and just a minute okay a very regular meetings all over the country like most of the times in Buenos Aires but all over great chance to meet to face face to face to grab some beers and talk about the future of Python and the world okay let's go to the event like this is the event I like the most are the pycams we also have conferences but this is the the one I like the most like it's just it's like a four-day sprint there are also like sort of like lightning talks and a lot of projects people from very different backgrounds like I don't know on the last one we saw like a 40 year old Googler explaining very basic software an 18 year old newbie and a lot of like very interesting products have emerged from this could maybe some of you if you work the mobile you know cocos to the and okay now let's move on to the we have done six already we also the community also translated the official Python tutorial to to Spanish and it's available in printed and PDF versions it's being actively delivered to universities and schools and we have a couple of conferences like since 2009 we have a pycams every time in a different city like Argentina is very centralized and we try to fight this by organizing in different cities next one is going to be in October in Rafaela and we also have a lot of local events like Pi Days which with shorter and quicker talks but a lot of them and with a main focus on introductory topics okay and now to use the last two minutes Celia is going to talk a bit about another conference okay I'm the side by part of the of the group we make the past year the first site by calling Argentina we make it in Patagonia we have three two trainings several talks international keynotes with Bravo from Machavi development we have also a parallel workshop of robot programming for high school students we have 200 participants and 60 students working with the my with robots and Python the next one is in October in a few weeks is going to be open to poster and submission and it's going to be in by a blanket close to Buenos Aires also this year we have a pilot this group that are already working with us in the sci-fi conference organization and they have in a lot of meetups in the Django girls so this is where can we find us and thank you very much thank you so much this month brings a lot of good news from South America first we win the World Cup and then you tell us about a great community yeah and we have we have a short question what is the best way to divide eight eight seven and one okay another crowd so joke by Morton Preckig volt an SQL statement walks into a bar he sees two tables and asked may I join you I'll use that again at PG conf Europe I need Erica Erica on the stage and our next speaker if you wish the Python once about oh Python quant platform I was reading PQ as a Python Q platform so give him a weekend for the Python quant platform if you wish well thank you some of you might know me and if you know me you know that I'm doing fight finance mainly with Python actually so this is about a project that we started recently is very nascent but I just want to demonstrate what we've been doing so far as well we're based financial engineering with Python something we do since quite a while but now we're trying to unify and yeah to bring it on a single platform it has collaborative features it scales it yeah it is for individuals teams and companies many for all those who are doing quant finance actually the analytical core components are many comprised of the things that we've been doing since years at now we started decision what you see in the left-hand side of the slide a couple of years ago I think six years ago DX analytics kind of a recent thing that we did and we now using I Python and all the things that the wonderful Python world offers us to integrate this on a platform actually I mean it's powered by a full-fledged Python stack anaconda I don't know if you're using anaconda but if you're not just give it a try as a wonderful distribution by continuing analytics all the folks from continue our round you have to try it we love it you should love it as well so give it a try I've been written this book Python for finance for people who want to use Python in the finance space but still there are a couple of hurdles to take and what we want to do with the platform is kind of to make it as simple as possible to implement financial workflows and applications by using Python the project currently uses a standard Linux server there's nothing special about that Python for anything in the back end and jQuery in the front end the status is we're only eight weeks in so it's pre-alpha we use it internally for example for training is pretty good and what we have achieved so far that we have integrated ipython notebook and the shell we have a file management with power base shell access to the server which you can use for women editing I will show this in a second kid integration with a chat room user administration under the hood and this what we've been focusing on actually that we started building it from bottom up actually using Linux and everything about rights and roles and group management and so forth to have kind of a collaborative scalable environment but let me come to the brief demonstration this is how it looks like maybe I should do it a little bit oh it doesn't show on the left-hand side unfortunately is it my fault yes lots of stuff missing ah here we go perfect thank you I don't know if I was that so you see we have been writing a rapper around the ipython but I would show this in a second we have file upload a file management system we can upload we can download stuff for example I can navigate the platform here for example to the public folder someone else has done obviously an untitled notebook in here I could maybe try to delete this in a second yes I really want to do oh well this is not your notebook you're not allowed to delete that so it's pretty safe to share stuff and you can be sure that you and only you are allowed to change or to delete stuff that you've been providing on the platform so we have this complete user management and rights and roles stuff in there you see the shell integration here we can of course run ipython shell in there I kind of editing on the server so this is a file from the server where the women editor open to edit the file but of course you can edit any other file you can have the python shell of course again the hello your python simple example and you see it's all anaconda powered and it's based on redhead linux server so again nothing special about that but try it out anaconda and I think the main thing where people are using right now in the world is the ipython notebook if I fire this up and you see I can change a little bit the thing that we have a full workspace takes maybe a second to load it I don't know I'm gonna do it again I don't know I did it a couple of times before there's always when you do a live demo actually so don't use this tool for a second trading here for example I see another one which opens immediately I don't know what this isn't firing up if the analytics one you see here of course you can do all the things that they used to do and with an ipython here we're using our proprietary analytic stuff for example do complex derivatives analytics here for multi-risk derivative which is pretty hard to value and see we can even do numerical stuff which is very compute intensive and all the things the last thing I want to show it's actually really the last thing so we're something like a chat room where you can chat with people with colleagues you can upload files for example we have included something that you have little profiles a little bit of internal social network and what we also have implemented is that you can upload for example research paper or whatever and you can share with the colleagues have a look at the PDF file this is very interesting a new publishing publication which might be of interest for what we are doing so if you're interested in that actually it's pre alpha as I said but what we have done is a a simple landing page you can go to quant quant dash platform.com and there on the platform you can register if we're interested in it while Erica is setting up to talk about code week in Europe I need a Remco event Remco are you here can you move yeah and be prepared very good as we were talking about database jokes we were very happy that the British Met Office moved all its stuff to PostgreSQL because it's a great database and I love it on the other hand I'm not really sure why the British meteorological office really needs a database to forecast the weather now we'll have Erica and she will be speaking about the code week in Europe give her a big hand I made sure that I'm a first-name basis with her because I would not dare to pronounce your last name Erica so yeah hi I'm Erica I'm not Erica Erica I'm Erica Pogorel this is how I pronounced my last name and I want to talk to you today a little bit about me is my second time at Europe part Python and I work with peer-to-peer University we are distributed team so we don't have an office and we're all about peer learning so what I do that there is I help people I help I build tools to for people to actually be able to learn from each other to teach each other and stuff like that and I use Python all the time which is cool so one good project that we have is a project called mechanical MOOC which is a kind of a platform that we use and one of the content that we have one of the courses that we have is gentle introduction to Python so this might be a hint for you if you need to build a community you're in your local space and you know to learn Python and this is essentially an experimental MOOC which means that it's headless so there is no a centered Instructure there really you know so people are just what we did with with we grouped the cohorts locally and now that people are learning from each other and teach each other and all we do is fire up an email once a week you know to suggest the topic that they should learn about to progress slowly so another good actually another good project that we are doing is play with your music and this is actually a collaboration between New York University peer-to-peer University MIT Media Lab and Peter Gabriel he was actually kind enough to provide us with all the materials that learners can actually build upon they can reverse engineer them and you know he's even included in the process of learning with interviews and stuff like that and we were really grateful that he provided us with that because that really eases up the tension in the copyright sphere so since we already know now that we are quite musical we can sign up for that course too and this is my afternoon project my co-cat's project this is a group of young women and men mostly women because our one rule is that there has to be more women than men but we are learning to code you know and we don't have a sponsor and that we are searching for one right now but it would be nice to have some so the aim is to show these people that want to know about our work process process and the aim is to show them how a simple app can actually come to production so how do you start it and everything else and we meet every week without exception because we believe that you know you have to be very consistent with learning so we did something very special this year European Commission actually trusted with with a task to enable people to participate in a code we key you this is a thing a very simple Django app we decided that we are gonna put our code kittens which are you know people who are actually not that they don't know about programming that much they will actually build it and they did and first they did a mock-up you know to demonstrate how it will work or how it will look like and then they researched about tools and they decided to use Django because it has already built in a lot of stuff and we decided to give them the deadline you know so which made them really kick up a year and they all of a sudden suddenly everybody was finding more time to learn which was great and it turns out that the if we let them go through the turmoil of maintaining their own code they actually learn a lot you know because now after six months they actually know where did they write the spaghetti code and stuff like that and you know from ourselves or from themselves and each other and which is good so that they decided that they will have a reflected long this is something we're factoring is like a hackathon and we already have 300 events so if you want to help with that it's like you can go and you can try to break our app and put an issue and get help and we're going to be very happy about that so and I just want to quickly say what what a code week is this is a week which is dedicated it's happening in October and it's dedicated to coding so we are celebrating coding and it aims to get more people excited about coding so if you have a meetup or a coding club that meets meets that week please add it to our nice build app and join us at the code week thanks thank you very good now I need Ramco when to prepare and Christian Tisma Chris are you here start walking to a stage where you are next now you have no slides so you can start immediately slides very good very good now give Ramco when the big hands for being without slides totally prepared about our beautiful minds so first of all can I ask all of you just for five minutes very humbly to close your laptops put away your mobile and just be here for the moment so I'm Ramco this is Ludwig I met Ludwig on Wednesday and I was telling him that I was going to give a lightning talk and then he told me yeah I really want to have some more podium experience in the future and I said okay why don't you join me on the podium I'll do the talking but in the meantime you get some proper podium experience give a hand to Ludwig because because from here on really for him it will be a much easier step to giving an actual lightning talk and that's what we want in the community so I hope I can take these five minutes or four and a half to put some interesting thoughts into your beautiful minds that's also why I call this presentation beautiful minds it's you I was walking around in the Spanish desert near Zaragoza a couple of weeks ago and basically for a little while I've been thinking about what will be my next thing my next business or venture however you call it and then it sort of was like maybe I should change the world and make it get a little bit better better than the way I found it in and that's what my talk is going to be about because then I came to Europe Python and it all made sense so how does one change the world it never starts with big big ideas it starts with big ideas but it's always the small things that matter we know this from peer to peer it's like small individually decentralized elements you put them into play but their volume makes it work so first of all what I want to what I want for you to realize is that we're not mere developers we are the engineers building the future of tomorrow we have with what we do combined our combined effort we have such an impact in what people do in tomorrow's technology this is really something that comes that gives us great power but also comes with great responsibility and it's just really do we as a community want our future to be about control or to be about freedom interesting to think about so we have quite a unique position in this and the unique position is I've had a few companies before this and whenever I was hiring tech people they didn't really care about the money I mean in the end they did care about the money they need to have it covered but the funny thing is that I think most of you hear it's like yeah money income we have it covered so the questions you get as an employer is not like how much money I make but it's more like how much time do I get to invest in myself and how much of my time can I for example contribute to the community to code I want to give away to helping people with making documentation all that kind of stuff so actually it's pretty interesting because what this signifies is that we are taking a step up in the muscle of pyramid where you have this income thing somewhere in the middle and if you have that covered it grants you a lot of freedom and what happens then as people start teaching I mean I've been involved as a volunteer here with the open tech school in Berlin and people come together it's like yeah we have some time and we like to teach other people so that's what they do and they ask nothing in return but they get a lot in return because I think fundamentally our genetic code is made up in such a way that we care about ourselves first but then we care about the others so it's really fundamentally what we are and fundamentally part of our happiness how much we can help the other and this community has such freedoms in doing this it is amazing to realize I think that most people and maybe you don't realize it yourself yet but unless the world economy is going to collapse we have great freedom we have income stability we have it covered so from here I think what is interesting is however beautiful things we're doing within the community is maybe also think a bit more about how to step outside of the community and how to bring these values outside to other people and it's an interesting example today I just moved into a new apartment and it's inside an alley this is the one minute thing oh the last sentencing uh okay think about this if you want to hear more look uh search me out I'll tell you the entire story thank you thank you Ramco Wendt now the first good news we finished the regular lightning talk list and we are going on to overflow number one Staglis by Christian Tismar and I need David Moore David Moore like M-O-H-R are you here please prepare to come to the stage our next speaker Christian Tismar a long time about Staglis best ever forever give him a big hand thank you very much I will be very quick and leave some time for the others who come after me I just want to motivate everybody you should try out Staglis formally Staglis python because it has become so much better very compatible you got binary installers which are working on OS 10 or windows they are compatible they run with with the existing packages and other binary installers together you can just put it in replace your c python keep all all extensions inside or undo that again it's just fun to do that you got great debugger support uh the debuggers like the the professional ring IDE py charm and py def they are all supporting Staglis so uh binary compatible extensions which are most important as uh py qt and py side and they work great and uh so just try it out install py side for instance we have a pip installer which does that with with binary wheels so you can try everything in in half a minute okay then you can run the py side demos and I wanted to tell a lot more but I had not enough time to finish my slides so the rest comes tomorrow on this print see you thank you very much 15 times Staglis as ever our next speaker David Moore please set up and Philip power Philip can you make yourself visible he is here move to the stage our next speaker David Moore will talk about stellar compiling a small subset of python and why he's setting up I've got something for you what do you get if you cross a historical question and a joke so if you like better jokes just mail them to me okay you're good with setting up Schrödinger and Heisenberg will be the next joke which you can hear on another conference now it's David Moore give him a big hand about stellar hi everyone I'm David Moore I'm currently studying at the University of New Mexico in Albuquerque USA and I'm going to talk to you a little bit about this project I'm working on and I'm going to try to compile a small subset of python uh so essentially where I'm coming from is we all know python is fast enough and that is a mantra I'm not disagreeing with but uh unfortunately doesn't work for the stuff that I want to do um and eventually you know it's just getting tired to having to you know rewrite your stuff in C because you need performance and I like python it works for everything else so why can't I stick to that uh so a little bit of background about where I'm coming from is uh we're working on stochastic simulations uh kinetic Monte Carlo simulations which are in itself very very basic but you need lots and lots and lots of trajectories so in the end it's very very time consuming to to collect that data uh and the code is a little bit special uh in that it's not like the whole simulation is important there is no 80 20 distribution uh they don't work with arrays you don't have differential equations to solve so a lot of the tools that are highly optimized for python don't actually work in this situation um and another important part is that you you get a lot of variants basically a lot of different kind of programs that basically do the same stuff but here and there they vary so that's a problem of course that's been around for forever and we all know how to solve it it's usually with object oriented programming so you know when we try to speed the stuff up there's a lot of tools and you know I tried them all and unfortunately they don't work very well for me and I think that's because they have tiny little bit different use cases um in particular with them they all strive for be most inclusive you know have being able to use python as easily as possible uh when the language itself doesn't have the accelerated feature uh but for the simulations what you actually want is you want to guarantee that everything runs quickly um so you don't want integration you just don't want to have to deal with python at that level because it's too slow so what I want to do is uh create a domain specific language which actually just is a little subset of python um you know throw out the stuff that is not necessarily required to write a simulation no dynamic features statically typed and then implement it as library uh and support at least a little bit of oh so that I can nicely structure my code but I don't have to worry about like all the fancy features which are actually expensive and difficult to implement um so there's my the approach that I'm taking with this is uh actually work with a python byte code so I get a lot of stuff for free that python already does with the source code you could potentially use multiple inheritance all that kind of stuff to get to the result that you then want to run and then just transform it to lvm intermediate and yeah just run it because at that point when you're doing an ad runtime we have type information and actually I can study I can infer all the types execute it return the data back to python and be very happy um so yeah this is actually just a quick overview I don't have any code to present yet because it needs a little bit of cleanup before I can you know let other people look at it uh but it's going to be ready to share soon and I would love to get some feedback if anyone's around on the weekend thank you we have two minutes more for a final late lightning talk by Philipp Bauer Mozaik please set up your computer fast I've got another crowdsourced joke from Alex Wilmer a python walks into the bar the bartender asks the python how did you do that you don't have legs so it must have wiggled into the bar um german conference regulations make it clear that we will have to have a coffee break at half past three so this is so this is our final lightning talk I just want to tell you a little about some of the features we're planning for the future of plone this is work done at the plone Mozaik sprint in Barcelona earlier this year and since I can't type fast enough I'm going to show you a pre-recorded screencast that I actually didn't do myself so here it is uh this is about uh custom custom layouts and a layout editor called the Mozaik layer uh editor where which allows you to create content which uh asco suga who made the screencast uh creates here uh using the latest plone version not plone five like five future in autumn uh store this uh theme this is the uh Mozaik theme editor uh adding a field that was pre-added to the content and adding now static text fields that will be stored on the instance and the theme pretty intuitive this is a rich text editor and uh the the layouts you can create with this can be reused either on specific content or whole sections in the site and they allow you to create uh say landing pages or specific site layouts that you can always use with specific content types I'm gonna skip this part because it's a little boring which shows you that you actually can save uh that uh that layout on say a event so events have a new layout so you don't have to program your view in an editor but you just drag and drop the fields wherever you want them set these uh stored views as default views for the instances and there you go uh the second feature is um okay I was too fast I can't remember the type of themed layouts yeah so here we are creating a new content type with dexterity uh which has the layout support enabled so this is a default feature of Plone we create a new content type it's a schema it's a folder has the layout feature and navigation route and this allows you to have a sub site in your Plone site that has its own theme so here we add a new uh object an instance which is the sub site with the uh already enabled editor uh the music editor now we copy content from the default Plone site to this new uh container that we added and here we set a theme which is a bootstrap theme now and now we edit that bootstrap theme with the music editor and add static and dynamic content to that and all the content that we copy to is there and also uses the same theme so these the theme is inherited and can be overwritten by different uh items this is another theme built in and you see you can pretty easily edit content this is kind of the future of content layout prototype editing uh which you can actually really give um your content editors um I'm gonna finish here so yeah I think that's pretty awesome this will land in Plone 5.x I guess 5.5, 5.1, 5.2 uh sometime next year we're really actively working on it and there's a product called the inter uh Plone intranet product uh which will rely on this technology heavily in the future and um just one more thing uh Nate's just created a option to have free like zero euros clone hosting on Heroku we will uh announce that after the sprint thank you thank you very much now that concludes the final lightning talks we just ran over four minutes into the break we'll have a coffee break that's 26 minutes until four o'clock then the closing will be here so please again give a big hand to all the speakers and the audience thank you for enjoying the lightning talks have a great time be back at four o'clock for the closing of the conference


Our first question is from BR Porter 23. What is the significance of body weight training when strength training and can it replace higher rep ranges with weights? That's actually a good question because on the surface you think to yourself, you know, okay, I'm doing push-ups. I can do 30 push-ups. Why don't I just do bench press with a light weight that I can do 30 reps with? Am I going to get the same value? You're actually not. Oh, different. Yeah, there's a lot of skill that comes from exercise, learning how to do a movement, and it's very valuable to learn how to move your body around versus move a weight around your body. Well, I mean, they both have tremendous value, just different. That's the closed chain and open chain. I mean, having an open chain is lots of value to having to stabilize the weight in space. So it's just flat out, it's just different. It's different and both are beneficial. It's not a replace or an either-or. It's, I think, both belong complementary to each other. Right, right. Yeah, now as far as functional ability, they both have lots of benefit for functional ability, but I will say this. When you're first started working out, or let's say you're a trainer and you're working with youth, I like body weight movements to start with. I think learning to move your body around in space, learning to control your body, has so much carryover into everything else. I think many routines place almost no value on exercises like that, partially because it's a skill that can be difficult to learn. Like you could work out all the time with weights and then go and try and do pull-ups and dips or, you know, a single leg. You might have enough strength to do a single leg squat with your body, but you might not have the control and stability to do it. So here you are squatting five here. I'm a person like that. I can squat mid 300 pounds, have me do a single leg squat, and I start to struggle because I don't have that skill. Which one do you think is going to talk to my functional ability out in the real world? They both do. So neglecting one actually takes away from your progress. As far as the muscle building effects or the body sculpting effects, because it's different, because it's novel, throwing those body weight movements in, you will notice better muscle development in your body. Like dip some pull-ups. I like to see that a lot of people do those, but not enough people do those two exercises. Those are great exercises to get good at.  And if you need any evidence of the aesthetic effects of body weight training, look at high-level gymnasts.  Yeah, and I think people aren't, like it's tough because you do have to get somewhat creative in terms of how to intensify some of these movements without weights and to be able to, you know, make these workouts more challenging after you get somewhat adapted to push-ups, dips and pull-ups and whatnot. But there's a lot of ways, like you see these calisthenic guys that are out there doing stuff with bars and like gymnasts. And there's levels to it that you can definitely get, you know, massive strength gains from and very much more, you know, this proprioceptive ability of understanding your body, I think, and being in your body a bit more than even with weights.  I was, yeah. Did you do it? Yeah, you're like, there's this waiting list that's crazy right now for it. So we went to the gym and we didn't even get to run the class yet. So we're on, like, for three weeks waiting to do this, but I can't wait. It looks, it looks like a riot, dude. Really? Yeah, there's all these different obstacles and things. And it's like Ninja Warrior obstacles and things in there that you can jump through and climb and swing from and all that. So it looks like a good time. Oh, that's awesome.


So good afternoon everyone. My name is Kwan and I work for a company called Denden. It's a startup here in Barcelona and what I wanted to very quickly talk to you about today is an idea, a conversation I had with Fadi Chahade. He's the CEO of ICANN and I had this conversation about six months ago and it's a thinking piece. It's a thinking piece. So as you all know ICANN essentially runs the Internet. It assigns domain names, it runs the IP addresses and the reason ICANN is important is because it holds the Internet together as a single Internet. It's not multiple Internets and the whole job of ICANN is to make it one Internet because that's the most useful Internet. So for example fullstackfest.com always produces the information at fullstackfest.com. ICANN ensures that the fullstackfest.com address goes there and resolves there every time. The IPA address for it goes to a single machine. So the reason I'm having this talk with you is that I think we're at the cusp of a very interesting new era and this era is dominated by a few different technologies and one of the most interesting consumer technologies is maps. Maps are everywhere and I think they're going to become one of the most interesting services out there. Who used a map to get here? Probably almost everyone and I think probably over the last year I would say the majority of you have probably used a map to search for a restaurant or some other service and over the coming years you'll be able to find products and specific services on maps so right now you can't find let's say a pair of Nike Air Jordans on a map but soon you probably will be able to. And the reason I'm talking about maps and ICANN is that we have Google Maps, Apple Maps, Baidu. Anyone from China?  You know what their problem is? Baidu's map ends at the Chinese border. This is a problem. Imagine if you had Google Maps and you went to Germany and your map showed nothing. This is a big problem out there. So map information is not distributed evenly and people who run maps like Apple or Google or even Facebook coming out with its own map right now are not particularly interested in sharing that information because the information that you get on maps particularly information related to shops is very very hard to come by and there's a really interesting reason for that. If you if you don't actually go to the physical shop most shops don't exist anywhere except for physically in real life whereas the the main utility of a map is to be able to find these services. So how do you find them? You actually have to go there and physically get there. If a shop gets onto a map currently we get that information through social services which is fantastic because that's how we have the information and that information can be guesswork it can be different and as maps become more useful it can also be malicious. In the United States there's a lot of work around Google Maps to clean up what's happening around locksmiths. Phantom locksmith services for example pop up all over the place. Locksmiths competing with each other on the maps. Un locksmiths that don't actually even exist but exist in your physical search so that they can get your business. So the opportunity here is to think about maps and the identity of shops and I'm talking about shops because shops are probably the biggest value gain on maps when you go out to search for a product to service in your local area 70% of people are shopping for things in their local area and not actually buying things online so shops are going to become a kind of economic backbone for the rollout of map services. So shops should have a way of being represented on maps in a single uniform way in the same way a domain name gets out there. So imagine if you have a shop and you're running this shop and on one map you're open at some hours on another map you're open at different hours and on the third map you don't even exist. So this is currently a minor problem but that problem increases for shop owners as maps become more useful and I think we can see that at the rate of utility of maps growing in its current speed in the next two to three years it's going to be imperative for shop owners to be able to have a single identity across different maps. So simply it's a thinking piece what if there was an ICANN for map identity services right? If your shop can be on different maps all over the world in different places and be the same identity everywhere that's like an ICANN for maps. So that's all I wanted to tell you about and thank you for your time. Okay hello guys. My topic my subject is full stack polyglot framework proof of concept. I made it for Pivorak Ruby user group in Lviv. I recommend Bob. Okay so everything is at this links. Let's start with polyglot programming. This is the approach I used in this proof of concept. So the first important thing is to choose the best tool depending on your task and normally you would use something for example from your current stack if you solve new problem you think in existing libraries for your stack but well just think just try to think in whole universe of programming tools and the way I achieved how to combine all these technologies together is universal one structure for all of them. So just let's start with services. Think about them like of ideas which are just not physical ones then go to components which are also ideas but user can touch them like see and touch they are kind of physical and up is the root directory which contains components with context. So if your component has only one specific context then it's right place to use it for example top search bar in some application. It's a good examples because you use it only once so context give you gives you some order and if you go into app you will know what's the purpose of this application and also the well we have jobs. So just look at this chart on left and right side so from left you serve user events and from right you serve admin of the application events and additionally to this you have tools directory where you can implement any kind of technology you know. So this technology just needs to be aware of this structure and also well I think it should be this way. This is how I build this different technologies like what's my main idea of full stack applications so a lot of stuff is just a static file which you keep in on CDN. Well I will just go to benchmarks so we can run now out of the boxes like 1000 requests per second using Ruby and Ruby is not a bottleneck there. I know how to go into 6,000 requests and let's just show the application because I'm running out of time. So yeah it's bundled somehow. Let's start a stack. Let's refresh the page. Yeah I'm glad it works. So that's just a proof. It's a lot of different ideas bundled just because I was leading this chart which I had no chance to no time to explain. Well I have still a time so I can show you some features which you will not normally find in your application. For example together with your stack you have kind of another tool which is in PHP. I don't use PHP but it was really quick to implement and here is our view to database on our development stack. Also if I will delete whole database which is on Docker. It's empty right now. Well let's reset application. So the thing is it created database for this application. It created migrations for models I've used and it created relations and maybe something more and it's automated because it's possible and it was just one of the idea and also I will show you quickly. Like if you go into the tools I've implemented Electron it was five minutes after I just knew this tool called Electron. It's for making from web application desktop application. So it's like out of the box after five minutes implementations right. And if you use some tool you like you can integrate it with it easily. You just need to learn this universal structure where you keep things and it lives for it lives together in for example you can see like I have here many different technologies like CSS, JavaScript, Ruby, HTML and you know what's this application about just because directory organization. So just consider it as the only common thing in your between different languages. So you can structure with your application and it's well organized even if you have a lot of different technologies. And also you can think about it as a fractal structure because no matter how deep you you you'll go into directories it's familiar to you what's what's inside. And one more thing I can show you like in tools. These are components of the chart I've showed quickly at the beginning. So for example if I would not have this config here basing on a config example it will say like there is one config file missing and also everything was inside this young no matter where did you put it in your structure you will have this this stuff as the environment variable which is also a common stuff for any kind of language. So it's you can use it in Ruby node PHP or whatever. So that's how you configure this kind of stuff. Yeah well just let me know if it's interesting somehow. Thanks. Okay hi everyone my name is James and I work with a company called Teespring and today I'm going to talk a little bit about a subject that's come up a couple of times in the in the talks this morning this afternoon and it's going from a monolithic application and towards something else is it microservices is you know some of the kind of more modern architecture and this is something that we're doing right now at Teespring and I've formed some opinions about patterns that definitely don't work or didn't work for us anyway and some opinions about things which do work or at least currently are working and I hope they continue to work otherwise we'll have to figure things out again. So for background we are a company that has been going for about four years. We've got about a hundred hundred and ten contributors to our main monolithic code base over the years. There's been multiple different styles coming in and out. There's like 300 database tables. There's a huge amount of craft and legacy which is the sign of us having kind of grown quickly and found success and not had the time to put the polish when we might have done when we might have liked to have done. But the first the first point I want to make and it's because it's the most important is unless you absolutely have to decompose your monolith do not do it. It's a huge pain. There's no getting around how painful it is. You're going from a single system which might be kind of funky but if there's a problem you know where the problem is. It's in the monolith. You've got one stack trace. Super super simple. Anything else where you have multiple services is a distributed systems problem. There's no easy answer. It's a really difficult problem to address. Even simple problems turn really complex when they're distributed. So unless you have to just don't do it. Anyway so the first approach that we took that didn't work for us was to build a separate standalone system which captured one domain one kind of business domain that currently existed inside of our monolith and to build a separate system which did exactly just that one thing. And it's so appealing right because it's green filled development work after you've been kind of slogging around in this monolith. It's really refreshing. You get you feel you're getting loads of stuff done. It's you get to use them the latest programming technologies and all these great patterns that we should have had in from the start and you know blah blah blah blah. However it's a false simplicity. It does not actually tackle the true complexity of the problem. What you're taking on is extra complexity in terms of the operational the operational footprint. You are going to have multiple things running in your production system. We also found that our mental model of how the business truly worked was different from all of the stakeholders. It was also different from what was in the code base. So we were building this separate system that's perfect in pristine. But it's only perfect in pristine compared to our flawed notions. We also found that there was tons and tons of data old unclean data that existed in the database and we couldn't get rid of it because you know this is this is what the business was built on. This is our sales our users our sellers our buyers our t-shirts our campaigns. We can't get rid of it. But it didn't really fit in this brave new world where everything was fresh and clean. Like there was no kind of migration path forward there. More generally there was no migration path of like how do we stand up this new thing and do like a cut over like that. There's no there was no kind of simple way maybe even no way at all for us to move from this kind of monolith and be a kind of clean switch into this totally separate thing. The last problem was we couldn't freeze the logic we couldn't change the we couldn't prevent changes happening inside the monolith because this was like a critical business domain. So even though we're building this separate pristine super clean separate system it was out of date after a week and then we fixed it and then it was after date after a week because we were going after a moving target. So I definitely don't recommend trying to build a separate standalone thing. It actually reminds me a little bit of one of the slides that Amir showed of deconstructing a monolith and when you might want to use unicornals and in his diagram on the left side he had a kind of mosaic almost of like little triangles and rectangles and he sort of checked them off and then stood them up and sometimes are in containers sometimes they're unicornals and unfortunately that just isn't it wasn't the case with us and it probably isn't the case with with true monolith. It's actually this kind of meshed network of unexpected kind of pointless super confusing dependencies going in every single possible direction and the true challenge is to try and work out what those kind of atomic units are to move out and if you're building a separate standalone system all that complexity still exists in the old place and you're going to have to tackle that sooner or later so you might as well do it sooner. I'm going to skip our second approach because I'm going to respect your time a little bit so the approach that we are currently using and that's working quite well is that we have decided to establish a bulkhead within the monolith and say okay this is going to be the interface between our kind of legacy code and the new bounded context of you know Eric Evans terminology the new kind of new business domain is going to be behind this interface and we're going to define it now even though everyone is still talking to each other and it's a huge mess and it's super tangled whatever else at least we are planting a stake in the ground of in the brave new world after we've done this extraction everything will be going through this interface and it means that we can work towards the interface from two directions inside of the so we're all the work is going on inside the monolith we're just kind of repointing the bindings and the couplings to go through this single clean interface so in a legacy code rather than that reaching underneath the covers and like filling around in this domain it shouldn't know anything about we're repointing it to you this this bulkhead and in the in the system that we're going to extract into into a separate service rather than that reaching across the other other direction we're having that get this information from from this kind of conversion layer this this shed surface and that means that we are we have a single fixed target it means that we can work in isolation inside the the the ish inside of the domain that's going to move the legacy code is kind of in isolation ish and at the point that we finished we should theoretically be able to just kind of cut down that separation line with a scalpel and move it off into into a separate service so yeah I think the reason that's working well is because we're having to address all of these really gross couplings that I'm sure a bunch of you are really familiar with their existence so okay in summary definitely do not decompose your monolith unless you absolutely have to it's a huge huge huge pain no matter which approach you take I would also recommend against micro services for their own sake because every service you have definitely brings more complexity there's like a n squared increase in the number of linkages that you have if you add more nodes so have like have two services and see if it works and then have three and have four and have them be big and useful and important and and map to a real life business domain as well otherwise you're just kind of smearing the coupling over the network which makes it like an order of magnitude more complex right the complexity still there it's just now you don't even have the certainty of a message arriving it's it makes it way way way worse if you do need to decompose your monolith then it's all about the data you can't ignore the fact that there is kind of coupled data it's incredibly simple to refactor to refactor code compared to refactoring data and the references that exist within it so the first step that we found to be most helpful is to think about where the data is going to live think about how the data is going to be transitioned and then it's actually fairly simple to change the code on top of that and then the final point is duplication of both code and data is normally like a big no no for great reasons but in some cases it can be really really handy if you're planning on the two things not being co-located right so if you're trying to figure out how to make a module kind of work with both this side of the world which is going to be in service a and that side of the world which is going to be in service B you kind of already lost the game you need two separate implementations or to to facet the implementation to the separate pieces or whatever and same with and same with data if you if you can get away with not having extra dependencies of things being fetched and pushed and pulled and everything else and you can instead just duplicate your data in two places it's actually fine as a strategy for speeding the speeding the thing up I think making some compromises in terms of like the you know like the scheme of modeling and the the don't repeat yourself principles can actually really help and we found it to be really helpful so if you have any questions about how we're tackling this problem I would love to talk more and I've got a bunch more strong opinions about how to do it and how not if you have any other opinions I'd love to hear them hopefully to prevent me from having to discover things not to do all my own thank you very much wow let me enjoy this for a second look at this guys I don't have a talk for you today but I heard a great story that I would like to share with all of you I like I like sharing it with people it's about the mobile app of course it's called Duolingo who here has used Duolingo before hands up please my god who has not used it okay so the idea with Duolingo for the people the few of you that do not know is that it allows people to learn a new languages is very fun kind of gamified way to learn a new language I used it to to learn a bit of Spanish before I came here I failed but it's not the app's fault but what's cool about Duolingo is that they go to developing countries and they help people who do not have money or they cannot afford like better education to learn a foreign language an example of that was Brazil where they go to public schools and they allow people to learn English through the app which is great now here's the cool stuff though I read an interview with Bill Gates currently the richest man in the world and he said that in his free time he enjoys learning new languages especially using Duolingo and now this is a very powerful idea think about it you have the richest and the poorest man in the world having access to the same education now having been inspired by this I wondered is it possible to truly make education price less not in a metaphorical kind of sense but really allow people who needed most to have access to the kind of education only Bill Gates used to have access to less than a decade ago and for that we started something called restart network as you all know in 2015 alone more than a million refugees have reached the shores of Europe many of them came to countries like Spain but also to where I'm from from in the Netherlands Germany most of the countries you guys are coming from and our governments have tried at times slow and at times inefficient to integrate them in our community well I am a programmer and my first idea that came to my mind is what if we try to create the best computer science course a three-month long program that would take somebody with no IT background and would allow them to learn the fundamentals to bring them close to junior level so they can start the career as a web developer and that is why I'm standing here in front of you today because I realize that in order to truly accomplish this to create what we call a world-class program we need your help and what better place to ask for it than a room full of web developers and programmers in general so my message for you today is simple it's more of a question in the past three months we had a group of 20 refugees went through our program most of them were musicians architects pretty much anything else than a web developer or had any experience with programming and now they're graduating actually I have to leave midways through this conference even though I love it and I love socializing with all of you here because I have to attend the graduation and we realize here at the end of these three months that we have to make this program better if we if we truly want to be the Harvard of coding boot camps we need help and we need advice so please by all means come come to me afterwards say hi and tell me how do you think we can make the best computer science course in the world so we can help the people that need most start a new life on our continent and before I say thank you please allow me to take a screenshot with all of you as a memory from a full stack fest thank you guys thank you very much hello guys my name is Kirill I work at Susie Linux and I'm here to talk to you about schedules about budgets and all that boring stuff so to prove that I know something about what I'm talking I will finish before the light turns red and before my five minutes budget is over so please all of you who are currently working on a project which is behind initial schedule raise your hands come on come on don't be shy nobody's counted really only two I don't believe you the idea is that scheduling and setting estimations is a probabilistic process and because of that it's a world where one plus one is 3.5 maybe because you see we're engineers and estimation is probabilistic process so when we estimate something we will say what is the distribution around our estimation oh it's bell curve it's normal we ask engineer about something and he answers it's a normal distribution but obviously it is not because if I'm two hours earlier for my plane I'm probably flying the same plane so if I'm ahead of schedule it's just disintegrates but if I'm two hour later from a plane I'm fluent tomorrow and because of that the lagging behind accumulates so distribution is obviously not normal and I think that we can estimate better and for that I'm building a tool which helps you estimate optimistic but get pessimistic results and because of that always hit the schedule so during the gap day please join me and let's build this tool together I have a prototype and yeah maybe we'll show it on the next lighting talks


Welcome folks, we have the down industry trading up 86 Nasdaqs up 76, S&Ps up 14, gold, gold contract up $7.50 traded at 18.24 an ounce, we have silver down 22 cents, $20.71 an ounce, light sweet crude up a down rather 71 cents, $75.61 a barrel, notes and bonds, you get the 10-year note, up 7 ticks, trading 111.04, the 30-year up 10 at 124.06 and $Kingdala, $Kingdala is down 541 ticks, trading 104.676 Euro is at 106, yen is trading at a price point of 136 and the British pound is at 120 to 1 US dollar. You're going to take a look at the futures folks, we're going to go red, so if we take a look at this futures, what you're going to see out here, they just jammed it and I expect we're going to get jammed again out here, so take a look at this, okay so we got down there at about 10.30 this morning, we got down the last time we were down at these levels, we had 21,000 contract, we just come down on 29,000 ten minutes ago, this is going to build costs, blew this away, more than likely the number that I'm looking at here is 3,077, 39.77 rather and we're 39.91 right now, 39.77 folks is how we popped coming into the clothes on Friday, that's what it looks like this baby wants to go. We go to the NQ's, we take a look at the NQ's, do the same type of exercise inside the NQ's here, same type of setup, the NQ's let's see, so we came down, that's 13,000 and we just did 12.6, that was, it's actually 15 minutes ago, that's the bar, that bar there is basically setting up costs, I suspect that's going to be, and then on the NQ's you can actually get to 12,003, that'll be interesting, I don't think the NQ's are going to get all the way down there, the S&P though could get down there, gold, gold contract that's the confirmed ABC structure down, I expect we're going to bounce around a bit, bottom line is the 1781 is the number, you know what you have out here today, you rejected lower price at this 1812, you're at 1825, this will mess around a bit, and if we go to the notes and bonds, the notes and bonds are saying, let's see the notes and bonds, the 10-year note is bouncing out here today after hitting the benchmark that we're talking about with the 122, 110-22, hit 110-21, and you get a bounce going today on anemic volume, you're talking about 747,000 contracts versus coming down on two and three million contracts, this is setting up another ABC structure down, stay right there folks, come right back.


Random this is from 2021 NT and prison basketball two box mixer number three, right? Number three. Just forgot to random it during the break. It is a printing play, Anthony Davis Lakers and Brad Beale wizards. So we're gonna random that right now. Good luck. 11 times on the random, whichever team is up top is getting the card. Lakers and wizards, good luck. One, two, three, four, five, six, seven, eight, nine, 10 and 11. Wizards, wizards up top. Thanks again. We got more breaks coming up.