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


Good morning. Welcome to First Unitarian Society of Madison. This is a community where curious seekers gather to explore spiritual, ethical, and social issues in an accepting and nurturing environment. Unitarian Universalism supports the freedom of conscience of each individual as together we seek to be a force for good in the world. My name is Teresa Kaufman. I'm a member of the congregation. And on behalf of the congregation, I'd like to extend a special welcome to visitors.  We gather today out of the routines of our week to give pause, to take a deep breath, and listen to our hearts. We give thanks for this extraordinary blessing. Here may our minds stretch, our hearts open, and our spirits deepen. Here may we be stirred by love's infinite possibilities. We're so very glad you're here. I invite you to join me now in a few moments of silence for contemplation, meditation, prayer as we settle in and come fully into this time and place together. Our opening words this morning are from Lindsay Bates. Come, let us worship together. Let us open our minds to the challenge of reason. Open our hearts to the healing of love. Open our lives to the calling of conscience. Open our souls to the comfort of joy. Astonished by the miracle of life, grateful for the gift of companionship, confident in the power of living faith, we are here gathered. Come, let us worship together. I invite you to rise and body your spirit and join in our unison words of chalice lighting that are in your order of service.  Each of us has caused to think with deep gratitude of those who have lighted the flame within us. And I invite you to greet your neighbor on this kind of cloudy, I guess, summer morning. Please be seated.  Hey, how are you guys? Good? Did you have a good summer?  So it is Labor Day weekend. So I thought in honor of Labor Day, we would read this story called Brave Girl. You'll see why in a minute. Hello, come on up. A steamship pulls into the harbor, carrying hundreds of immigrants and a surprise for New York City. The surprise is dirt poor, just five feet tall, and hardly speaks a word of English. Her name is Clara Lemlic. This girl's got grit and she's going to prove it. Look out, New York, here she comes. Clara knows in her bones what is right and what's wrong. What's wrong begins a few weeks after the Lemlics move into their tenement in America. No one will hire Clara's father. They will, however, hire Clara. What do you think of that? What if your parents stayed home and you had to go to work? It would be hard. It'd be tough and you can't drive a car. Those are all really good points. Companies are hiring thousands of immigrant girls to make blouses, coats, nightgowns, and other women's clothing. They earn only a few dollars a month, but it helps pay for food and rent. So instead of carrying books to school, many girls carry sewing machines to work. Clara becomes a garment worker. Do you see all of them in that room? Those are all rows and rows of girls at sewing machines. From dawn to dusk, she's locked up in a factory. Rows and rows of young women bend over their tables, stitching collars, sleeves, and cuffs as fast as they can. Hurry up, hurry up, the bosses yell. The sunless room is stuffy from all those bodies crammed inside. There are two bathrooms, one sink, and three towels for 300 girls. 300 girls and two potties? That's not a good ratio, is it? In my house growing up, there were three girls if you count my mom and one potty. My dad had no time in there at all. And that was only three of us to one. And this is 300. Clara learns the rules.   The doors are locked and you're inspected every night before you leave to be sure you haven't taken anything from the factory. But Clara is uncrushable. She wants to read. She wants to learn. At the end of her shift, though her eyes hurt from straining in the dim light and her back hurts from hunching over the sewing machine, she walks to the library. She fills her empty stomach with a single glass of milk and goes to school at night. When she gets home in the late evening, she sleeps only a few hours before going to work again. As the weeks grind by, Clara makes friends with the other factory girls. At lunch, they share stories and secrets as if they were in school where they belong. Clara smolders with anger, not just for herself, but for all the factory girls working there. This was not the America she'd imagined. The men at the factory tell her that they have been trying to get the workers to team up in a union. Then they would go on strike, which means they would refuse to work until the bosses treat them better. But the men don't think the women are tough enough to do it. Not tough enough. Oh, yes they are. Clara knows it and she'll show them. From then on at the sewing tables and on the street corners, Clara urges the girls to fight for their rights. When the seamstresses are overworked, she says, strike. When they're underpaid, she says, strike. When they're punished for speaking up, she cries, strike. And they do. Each time Clara leads a walkout, the bosses fire her. The police arrested her 17 times. But after every time, she's on the picket line again. And the other girls think if she can do it, we can do it too. For weeks, the small strikes go on. But the bosses find other young women to do the work for the same low pay and the same long hours. We got to do something bigger, thinks Clara. Something huge, a giant strike at every factory in the whole city. So the union holds a meeting. Look at that room.  Their walls are full. The hall thrums with excitement. Clara listens to all the speeches. The speakers want everyone to be careful. After two hours, no one recommends a strike. Finally, the most powerful union leader in the country gets up to the podium. Not even he proposes action. So Clara does. That's right, Clara.  The crowd lifts her to the stage where she shouts, I have no further patience for talk. I move that we go on a general strike. And she starts the largest walkout of women workers in US history. The next morning, New York City is stunned by the sight of thousands of young women streaming from the factories. One newspaper calls it an army. Others call it a revolt. It's a revolt of girls. Some of them are only 12 years old. The others are barely more than teenagers. And in the coming weeks, Clara's called a hero. She lights up the chilly union halls with her fiery talks. Her singing lifts the spirits of the picketers. She yells, stand fast, girls. And they do, all winter long in the bitter cold in their thin coats, tired and hungry and scared. The girls walk alongside the men on the picket lines. They spill out of the union halls. They block the roads. They fill the street corners and the public squares. There's newspaper articles about them. College girls raise money for them. Rich women covered in fur coats walk on the picket lines with them. By the time the strike is over, hundreds of bosses agree to let their staff form unions. They shorten the work week. They raise salaries, which means they pay them more money. The strike emboldens thousands of women to walk out of garment factories in Philadelphia and Chicago. And the strike convinces Clara to keep fighting for the rights of workers. Her throat is hoarse. Her feet are sore. But she's helped thousands of people, proving that in America, wrongs can be righted. Warriors can wear skirts and blouses. And the bravest hearts may beat in those who are only five feet tall. So thank you for listening to this story of Clara. We're going to rise in body or spirit and sing you out to summer fun. Have a great time. Reading today is ancient wisdom from the biblical book of Amos. I hate. I despise your festivals. And I take no delight in your solemn assemblies. Even though you offer me your burnt offerings and grain offerings, I will not accept them. And the offerings of well-being of your fatted animals, I will not look upon. Take away from me the noise of your songs. I will not listen to the melody of your harps. But let justice roll down like waters and righteousness like an ever-flowing stream. The second reading this morning is from the liberal theologian and Unitarian Universalist Paul Razer for those of you who were at regional assembly a few years ago, you may remember his presentation to that body. This is a book called Reclaiming Prophetic Witness. Most of the counter prophetic tendencies in religious liberalism can be linked to its largely positive orientation towards modern culture. This perspective does more than encourage liberals to interpret religious texts in light of historical scholarship and keep their theologies consistent with modern sciences. It also encourages them to become actively engaged with the world, to embrace the world, not withdraw from it, to live fully in the world while bringing their religious values to bear on it. Liberal theologian Peter Hodgson argues that this engagement is essential if liberals are to fulfill the vision of a just society. Without actual engagement in the messy realities of the world, cultural transformation is not a possibility. But prophetic practice requires both cultural engagement and theological distance. It must be grounded in religious values independent of cultural norms so that it has a clear reference point for forming judgments. At the same time, its theological reference points cannot be so foreign that its critique becomes incomprehensible. The prophet thus lives in this tension between participation and independence, standing both inside and outside society. The biblical prophets did not have to deal with such tensions. One of the most important roles was to help preserve the proper covenantal relationship between God and the people. The prophets were understood as speaking directly for God, and they stood beyond the authority of the political leaders. Their critiques were grounded in the values of the covenant by which all social, political, and religious aspects of Israel's communal life were ordered. When Amos condemns the leaders and merchants of Israel as you that trample on the needy and bring ruin to the poor of the land, there is no doubt whose message he is delivering and whose norms they are being judged by. I was back here last year on Labor Day, so I guess I'm the designated hitter for Labor Day sermons. Wonderful to be here. Last week, on August 28th, we celebrated the 55th anniversary of the March on Washington for Jobs and Freedom, led by Reverend Dr. Martin Luther King and a number of other civil rights leaders. As is often the case when we remember Dr. King in connection with this March, much of the focus is on the I Have a Dream portion of his speech at the Lincoln Memorial. As we now know, this was actually just an add-on by Dr. King that was not part of the original text. Rather, it was added at the urgings of Mahalia Jackson as Dr. King was finishing his prepared remarks. It was based on the passage that he used some months earlier in a speech in Detroit. But earlier in the speech, Dr. King had offered this insight. He said, we cannot be satisfied as long as the Negro in Mississippi cannot vote and the Negro in New York believes he's nothing for which to vote. No, no we are not satisfied and we will not be satisfied until justice rolls down like waters and righteousness like a mighty stream. The ancient Hebrew prophet Amos was a native of the southern kingdom of Judah who went into the northern kingdom of Israel in approximately 783 BCE to proclaim what he said was the word of God. Now, this was a period of relative peace and prosperity in both Israel and Judah because the major powers of the time, Egypt and Assyria, were at peace and not looking for smaller countries to grasp into their orbit. However, the prosperity was not equitably apportioned. As one biblical commentator put it, there was prosperity, quote, at least for a few but according to Amos at the expense of the many. Does this sound familiar? Speaking what he described as the word of the Lord, Amos prophesied that judgment would be brought down on the people of Israel and Judah from an outside source, the empire of Assyria, as punishment for their mistreatment of the poor and needy. Here is elsewhere in his preaching, Amos juxtaposes justice and righteousness and tandem. Justice is the establishment of the right through fair legal procedures in accordance with the will of God. Righteousness is that quality of life in relationship with others in the community that gives right to justice. Amos challenged the existing economic and political power structures of his day, arguing that the treatment of the poor and powerless was an affront to God. Their solemn assemblies and their bird offerings were not pleasing to God in light of their treatment of the ordinary people. Other Hebrew prophets including Micah and Isaiah delivered the same message to the rulers of Israel and Judah.  And in fact, this happened. Israel conquered Syria, we now call the lost 10 tribes, and marched them into captivity. Judah would suffer the same calamity 200 years later at the hands of the Babylonians. Now the work of the Hebrew prophets was not to predict the future or as Christians would believe foresee the coming of Jesus. Rather the Hebrew prophets calling was to reflect the judgment of God upon the rich and powerful classes because of their mistreatment of the poor and the powerless. In so doing they spoke in the name of the God of the Hebrew people. The preaching of Jesus of Nazareth was in the same vein. In Matthew 25, Jesus describes how the son of man will separate those who sit at his right hand and those who will be cast into darkness. Those who will receive the favored treatment will be there, those who cared for the least of these are brothers and sisters. Those who did not, they will suffer eternal punishment. Similarly, in the story of the rich young ruler followed in chapter 19 of Matthew, Jesus tells a rich young man that to inherit eternal life, he must give all that he has to the poor and then follow Jesus. Well, this was too much for the rich man who went away sorrowfully because it was stated in the gospel, he had many riches. For many Jews and Christians, these passages from the Hebrew and Christian Bibles form the basis for their social justice ethic and work. Jim Wallace, an evangelical minister and social justice activist, describes the interplay of his faith and ethics. Wallace says, let me be blunt. The behavior of Enron and other guilty corporate executives is a direct violation of biblical ethics. The teachings of both Christian and Jewish faith excoriate the greed, the selfishness and the cheating that have been revealed and condemned in the harshest terms their callous and cruel mistreatment of employees. Read your Bible, Wallace says. Christianity and Judaism have a strong social justice bent around it in their understanding of the Bible. And many Christian and Jews, such as Dorothy Day, Jim Wallace and Michael Lerner, articulate their ethic of social justice explicitly, explicitly in terms of their religious faith. So where does this leave religious liberals in general and unitarian universalists in particular? How can we ground our acts of justice in our faith? For those who identify as liberal Christians, Jews, et cetera, including unitarian universalists exposing these views, they read the same Bible as their conservative and fundamentalist counterparts, but reach much different conclusions. But what are those unitary universalists, including the humanists, for whom the Bible is not the sole source of religious inspiration? How can they articulate a religious grounding for their social justice work? Paul Razer, Labral Theologian, Unitarian Universalist, addresses this question in his book, Reclaiming Prophetic Witness, Liberal Religion in the Public Square. The first problem that Razer identifies is that religious liberals are uncomfortable with religious language. Because of our origins in the Enlightenment and our reverence for scientific method, we are more comfortable framing our arguments for social justice in the language of social and natural science. We are not comfortable with asserting a religious sanction for our positions. In fact, as strong believers in the separation of church and state, we may even doubt the legitimacy of religiously based social action. Now, this is somewhat ironic given the fact that many of us revere the work of Dr. Martin Luther King and Mahatma Gandhi. For both of these men and for many others, their religious faith was the basic driving force for their activism. Dr.  While he was seeking political, economic, and social justice, he often spoke of it in religious terms. He could not or would not separate the two. Razer suggests that one problem that religious liberals have is that they often cannot separate their political and social views from their religious convictions. And this makes it difficult for them to argue that they are proceeding from a religious perspective. A basic concept of what is known as liberal theology is that we look at the world in light of contemporary knowledge and experience as opposed to what is written in ancient sacred texts. It is easy to sound religious when you quote the Bible or the Quran or other holy book. It is more difficult when you are looking to contemporary knowledge in fields like social sciences and economics or inspiration. Razer suggests that a way to address this dilemma is to be explicit about identifying the religious and moral dimensions of the positions we take. For example, in the immigration debate, while it is possible to identify economic and legal justifications to promote the fair treatment of undocumented immigrants, the liberal religious value of inherent worth and dignity of all persons is one of our central religious values which should be raised up in the policy debates. And we should not be afraid to espouse these as religious positions. A few years ago, I had the experience during my chaplain residency of being part of our small group. We came from different religious traditions including Catholic, Lutheran, Reform Protestants, Seventh Day Adventists, and myself, the Humanist Unitarian Universalist. We had come together in a setting where we were encouraged to share our beliefs and religious outbooks. Now initially as a humanist, I felt defensive and at times afraid to openly express my views. But as time went on, we all began to learn that we were not that far apart in our fundamental outlooks. And it was more a question of how we articulated our beliefs than what our beliefs were. We all agreed on the importance of recognizing the inherent worth and dignity of all persons. My Christian friends would state this dignity arising from the fact that we are created in the image of God and our children of God. I would frame it that simply by reason of being human, we are entitled to be treated with dignity and respect. Whatever route we took, we found ourselves at the same destination. Similarly, the more that I talked about the interconnected web of all things, the more my colleagues found comfort and meaning in that metaphor. My personal outlook is of the humanist variety. For those Unitarian Universalists who find their spiritual sucker in Earth-centered traditions or Buddhist or other non-Western religious practices, it is equally possible to ground your social justice work in these religious expressions. Unitarian Universalist Christians, or those from a Jewish background, can relate to biblical teachings to inform their social justice practices. Razor's basic point is that the particular form of religious expression is not the most important thing. What is important is that the expression of the religious element be explicit. Razor also argues that notwithstanding the particular form of its expression, the liberal religious outlook has certain common elements. Thus, liberal Christians or Jews, Muslims, Buddhists, Pagans, humanists share many of the same outlooks. He summarizes some of them. The fundamental unity and interdependence of all existence, the transforming power of love, the inherent worth and dignity, human freedom, rejection of moral dualism of good and evil, social justice in effort to create communities, cooperative power, religious freedom, theological openness. For Razor, these concepts form the basis of a liberal religious outlook. The actual theology that one places within this framework is not important to him. Rather, this basic frame will provide a common bond among religious liberals of various kinds and allow them to do their work in the greater world. Also, these are concepts that will allow religious liberals to collaborate with their more conservative or orthodox counterparts in other faith traditions to promote justice in the world. So what does this mean in practice? If we look at the history of Unitarian Universalism, we see that we have been a strong voice for social justice and freedom of conscience. In the 16th century, the Unitarian King John Sigismund of Transylvania issued something called the Edict of Torta, guaranteeing religious freedom to all in his realm, not just as Unitarian co-religionists, but people of all religions. In the United States, both the Unitarians and the Universalists similarly argued for openness in religious exploration. Unitarians and Universalists were active in the movement to abolish slavery and to secure the right to vote for African-Americans and women. In the 1950s and 60s, Unitarians and Universalists were active in the modern civil rights movement with Reverend James Reeve and Viola Liuzzo of Detroit being martyred in the cause. More recently, Unitarian Universalists have been in the forefront to promote LGBTQ rights, including the right to marry and to advocate for fair and humane treatment of all immigrants, notwithstanding their status as documented or undocumented. Too often in recent decades, religious voices on public policies are defined and identified as those from the religious right. While progressive values are asserted, only rarely are those seen as religious values. When pollsters identify values voters, the values they identify are not those that religious liberals would normally espouse. This is not because of an insidious conspiracy against religious liberalism, rather it is because we have hidden our liberal religious light under a bushel. The time has come to take that bushel and throw it away. The time has come for progressive values to be seen as religious values grounded in our liberal faith. It's time for us to take risks to promote justice in our communities. Earlier, I mentioned that Unitarians were deeply involved in the movement for the abolition of slavery. One of the leading Unitarians in Boston in the early 19th century was the Reverend Theodore Parker. Parker's church was a stop on the Underground Railroad and Parker was reputed to have kept a revolver in his desk to be used to protect the fleeing slaves seeking refuge with him. More radical than some abolitionists, Parker was an informal advisor and fundraiser for John Brown in his attempt to incite a slavery vote with an attack on Harper's Ferry before the Civil War. Whether or not we might approve of all the methods that Parker supported, we must admire his commitment to freedom and justice. In more recent times, Unitarian ministers marched with Dr. King in Selma in a confrontation that ultimately claimed the life of one of those ministers, James Reeb. In a couple of years ago, UUA President Peter Morales and other Unitarian Universalists were arrested and jailed in Phoenix for their participation in direct actions against the anti-immigrant policies of the state of Arizona and the actions of Maricopa County Sheriff Joe Arpaio. As we be in our church year, one of the questions I would like to ask is how we can find practical ways to make the prophetic voice of Unitarian Universalism heard in our state and in our community. I have attempted to suggest a theological message of social justice. According to Paul Razer, what he calls theological clarity is critical. It affects both our understanding of ourselves as religious liberals and how such understanding affects the prophetic message we bring to the world. Razer concludes, we know the challenges we face. A world awash in militarism and violence, a debilitating global economic crisis, dehumanizing poverty and suffering on all continents, life threatening environmental disasters, persistent xenophobia and racism. Yet we also know there is a better way. As religious liberals, we know that we are united in a single interdependent world, that human beings have the ability to create good as well as evil, that our diversity is something to celebrate rather than fear and that we can build a just and liberating human community. This is the message of healing and hope. Our prophetic social justice brings to the world. And so as we leave this sacred space and this community this morning, let us go into the wider world to build the promised land that can be. And now it's time for our morning offering, which will be shared with the worker justice Wisconsin, which was formerly the Interfaith Coalition for Worker Justice and the Workers' Rights Center. I invite you to take a look at the description of their activities in the order of service and give generously. Many gifts of those who helped our service this morning. Our greeter was Roz Woodward. Our worship associate, thank you for your help, is Teresa Kaufman. Our lay minister today was Anne Smiley. Usher's Elizabeth Barrett, Mary Ann Newman. Anne Smiley and Sam Bates. Hospitality and Coffee, Jeannie Hills. And welcome to Infotable Dorit Bergen. We thank all of you for your assistance. We join together each week, a community who gathers with joys and sorrows written on our hearts. In this place we love and are loved, we give and receive and return. We come together to find strength and common purpose, turning our minds and hearts towards one another, seeking to bring into our circle of concern all those who need our love and support. In our book that is out for signature each Sunday, we have two entries, the first by Anne Smiley. Sorrow and concern on the death of Senator John McCain, a moderating voice of reason, conscience of us all, better soul reaching across party lines to bridge the divides to mind and blend with hope. And sorrow for Bruce Houdl, mineral point sculpture who died unexpectedly last week and for his wife and son. And for all those other joys and concerns that we carry in our hearts, which have not yet found their voice, we think of those as well. Our closing hymn is number 118, this little light of mine, to heed the words of the prophets and to go out in the world to build a better place for each and everyone in it. We have concluded our worship service this morning, but our service to the world is not concluded.  Please be seated for the postlude.


Iran's top leader says his country will not give in to American pressure. Ayatollah Ali Khamenei spoke at Friday prayers in Tehran. Ukrainian President Volodymyr Zelensky refuses to accept his prime minister's resignation after the release of a recording in which the official questions the president's knowledge of economics. Chinese President Xi Jinping arrives in Myanmar for a two-day visit. And Japan's minister of the environment becomes the first cabinet minister to take extended time off from his job after becoming a father.