All right guys, what is going on? Luxury of an empty journey helping you succeed on your medical journey with less stress. Today I have another case for you and we are going to be talking about chest pain.  But really the goal of this video guys in my case is to give you basic questions that your attending may ask you, the nurse may ask you. I'm gonna treat you like the doctor on the case, taking care of this patient.  So let me give you the questions ahead of time because I want you to see positive video and see if you can answer this. So what's the differential diagnosis for chest pain? Can you come up with, let's just say anywhere from six to seven? If you're attending ask you now, what would you say? Next let's say what would be your workup? What would be anywhere from four to five things you would order for this patient that comes in with chest pain? I'm gonna give you the case in the second. And then next let's talk about other things. So let's say we are talking about ACS, Acute Coronary Syndrome. What are the four types of ACS can you tell me?  Can you pause the video and explain to me or teach to me what a timmy score is? And then finally let's talk about things like conservative management. If you're gonna be the doctor and you are gonna treat your patient with conservative management, what would that be? What would you treat them with? What would not be options? What would be options? So see if you need to go ahead and pause the video and see if you can come up with answers to these questions. And if not, we're gonna go through them each one by one. But this is a good kind of tool to help you identify what you know, what you don't know. Maybe you only have like four differential diagnoses. Maybe you don't really know what to do after the first like simplistic things on the workup and so on. So let me give you the case and then we'll get to each of the questions. So here's your case. You have a 75 year old comes to your hospital ED and his son brings him because he's just confused. And yeah, the son's not really sure what's going on.  So let's ask some basic questions. What are some of the questions you would wanna know regarding his chest pain? Because that's what this video is about. So chest pain, things that we ask our location. So we're gonna say that his pain is sub-sternal, which is already gonna make your ears perk up. So right in the middle of his chest, we're gonna ask radiation, does it go anywhere? And he's gonna say, yep, it goes, or dad mentioned that it went to his left shoulder. It moves from his middle of its chest to his left shoulder. We're gonna say time, how long does it last? If it's been going on for three weeks and we're not really concerned about maybe something like a heart attack, but we're gonna say it happens a couple of, the pain has been going on and off for 20 minutes and now he's acting really weird. We're not really sure what's going on. You may ask about other symptoms. And he says, yeah, my dad was feeling nauseous earlier today according to my mom, but he looks even worse right now. So let's just say those are some of our basic symptoms. I really wanna get into these questions. So you as a doctor, what are some of the things that you would want to kind of look at? Let's just say we get some basic vitals on him, okay? That's gonna be part of your workup. So answer number two is going to be, get some vitals for sure. He's in your ED and oh boy, this is his blood pressure, guys. 90 to over 45, which is super low. He's hypotensive. His heart rate is right at 100. So he's right at being tachycardic. Doesn't have a fever. And we're gonna say as 02 sets, how he's breathing, he's doing okay for now 97%. So those are his vitals, you know, and we look at him, we do a physical. So that's gonna be another part of our workup. And things that we really notice is that he has lower extremity edema. So he has some swelling in his legs. It's a fancy way of saying that. And he has some crackles in his lungs. So it sounds like he has some fluid. We ask his son about his past medical history and the son's not too familiar. He doesn't live in the same state as him. He just came back to visit or on a work trip and his dad happened to be confused. So all right, doctor, let's answer question number one. So given this history, what is your differential diagnosis? So let's see if we can come up with a few. So pause the video if you haven't done so already and come up with one. If not, let's get into it. So differential diagnosis, we're gonna look at ACS. Obviously as we're talking about in this video, but I want to help you kind of come up with a bigger one. So ACS, you know, this is a fancy word for heart attacks, test pains that would come in. This is the first thing you wanna think about. But what are other things that you would want to look at? So other, let's look at other cardiac causes. So something else that you could have is an aortic dissection. In that region, which is also known to have chest pain. Other things that you can have that are not as severe, things like acid reflux or GERD for pneumonia is known to also cause chest pain. You could have a pneumothorax, which is just air filled up in the lung cavities, kind of pushing on the lungs, making it really hard to breathe. Let's do one more. So you could have something as simple as costocondritis. And essentially, this is an MSK problem, a musculoskeletal problem, where you just have some inflammation of your rib muscles, rib cartilages. So it feels like chest pain, but it's different on the outside. So here's your differential. You may have came up with a lot more than I did. So if you did, awesome. But six is usually a good number for now. So now what we wanna do is we obviously need to look at a workup and we've done a little bit. So let's see what we can take out from our differential. So things like costocondritis, this person has really bad radiating chest pain. And we're gonna say that when we push on the area of his chest, the patient doesn't really feel more in pain. So costocondritis is usually not on our list. He doesn't really have a fever, which probably takes out pneumonia, but we could do an X-ray just to confirm. Certain things like a pneumothorax, you may be able to pick up on your physical exam, but you may also wanna do an X-ray. So you may wanna do an X-ray on this patient just in case you're worried about something else. And things like an aortic dissection, same thing you can do like a CT scan. And GERD, we're gonna take GERD out, it's probably just not as severe. So these are the things we're considering, but obviously we're gonna be talking about ACS today. So we have our differential diagnosis and now we're gonna talk about workup. So I'm gonna erase this and we're gonna get into our next question, which is what kind of workup would we do for this patient, for a patient that we're just concerned about having ACS? So an ACS workup. So we've done a physical exam, we've done vitals, what's something else that you definitely wanna order in this patient? If you're yelling through the video, bro, you better get an EKG, definitely. EKGs are huge. And let me actually give you the EKG to this patient. See, I think it's this one. There it is, that's my EKG for this patient. So I'm not gonna spend forever on EKG because some of you guys may be familiar with them, so otherwise some of you guys may not be, but I am just going to point out what you should be able to identify after looking at several EKGs. That, well, let me change the color. Maybe I can change the color, there we go. And let's make that a little smaller, it'll be easier to see. So this right here, that right there and this right here. So that is not normal. This is what we call ST elevation. So fancy word, essentially. This is the spike that most of us know is the QRS complex. And after that, we have the S to the T wave. And if this is going up, then that's an ST elevation. So QRS, and here's your T wave and there is an elevation in that part, elevation here and elevation here. This just shows potential and likely damage to the heart. Where, this is probably what a normal one would look like, although it has a little bit there too, but these are severe. Now the reason that I circled those specific ones, if you're unfamiliar with the EKGs is that these locations, two, three and AVF, are basically pointing to the inferior portions of the heart. So if you have elevations here, that also shows you that damage to the heart are located in that inferior region. So you can already tell by looking at EKG what part of the heart is damaged or is at risk of being damaged. So this person comes in with what we call inferior infarct. So that's where we are right now. So I already gave you that patient's EKG. What are other things that you would want to order? We want to order triponins. So triponins are cardiac enzymes which are released if you have muscle damage, which the heart is basically a big muscle. And so an elevation. So this patient I'm going to tell you is 2.5 and a normal is like less than 0.01. So he clearly has an elevated triponin. Now other things that you would want to check on this patient are things like just a CMP. You would want to get things like magnesium, check their potassium, because electrolytes can cause chest pain and arrhythmias and they can also impact your workup and how you take care of this patient. So you want to make sure of these things as well. So these are basic things.  So now let's talk about number three. What is going to be your essential differentials? What are the types of ACS? So ACS again is acute coronary syndrome. And basically it comes down to four different types. So hopefully you have already told me the different types, but you have stable angina. You have unstable angina. You have an N-stemi, and then you have a stemi, okay. So what are the differences between these? Here's another question, pause the video if you need to. And instead of going to write it out, I found a good picture of you guys. I really wanted to show this. So here is a good difference and I'll link this down below, but here are the main differentials between them. So between stable angina, I can actually draw on this so it's perfect. Between stable angina and anginora here, the difference is between demand and supply. Here basically act like stable angina is if you are working out and if your vessels just don't have enough flow to allow blood to go through.  So you feel it when you need it. So you may be exercising like, have chest pain, that's stable angina. So unstable angina is supply. So over time you're having clots. So even if you're not exerting yourself, even if you're just sitting around, blood is having issues getting from one into another because of plaque buildup, because of clot, a thrombus start in the form. So you start to have minor chest pain by even just by sitting around. So that's unstable angina. But nothing's changes on their EKGs, okay? They're likely just going to be normal over time. And because we're not really damaging any of the heart muscles, this is the heart muscle, then your troponins or the cardiac enzymes are going to be normal. Now if we keep working our way this way, you have an end stemmy, which basically says that you are going to now have plaque buildup and clot form to where blood is definitely going to be minimized more so than the end stable angina. And this is where you're really going to start showing signs on the EKG of damage. So you're going to have what we call SD depression, which is, again, here's your QRS, and the dip between that and your T-wave is going to be kind of decreased right there. Or you'll have inverted T-waves. So don't worry too much about the T-waves. Again, they're just of a wave that's supposed to go normal. So here's a QRS that goes in this direction, and the T-wave should go in the same direction as the QRS. If it flips, that's called inverted. Another sign of ischemia or damage to the heart. Now, one more step. This is a big kahuna, the thing that we often consider a heart attack where you have a full blockage and blood just can't go to the other end. And you have full damage. You're starting to really infarct and permanent damage to your heart. At these points, because you have heart muscles that are actually at risk, anterior and working your way outwards, you're going to actually increase elevations of your triponents. So those are the different types of ACS. So stable angina, again, happens with exertion. And this is demand. And then everything here on out is a supply issue. You have blockage, you're just not able to get it there. And then remember the last thing that we look at are things like our EKGs and our triponents. So EKGs here is normal, is normal. You're not going to notice a difference. In an end stemming, you're going to have ST depression and ST elevation and a stemming. And then triponents also going to be negative here, negative here likely is going to be increased and definitely is going to be increased in an ST and a stemming. So hopefully that helps. Hopefully you guys got that. But this is basically an ACS and I'll link that picture that I shared with you. Now let's get into number four. So based off of really quickly, based off of the EKG that I showed you for our patient, which is this one, what kind of ACS does our patient have? So if you are saying that he has a stemming, which is an ST elevation, then you are right. So he is in this very last category. And the reason this really matters guys is how you treat these, basically how you treat this category versus this category is different. And so that's where we get into our Timmy score. So maybe you already know what a Timmy score is, but I'm not going to get too far into details of what a Timmy score, what all of the components are, because luckily we have calculators now in medicine, we just have to type things in. But a Timmy score basically helps you identify, does this person go to the cath lab, which is a procedure that you're going to be using to open up the vessel that's blocked or are they going to be getting METs and conservatively managed. And the essential to the way it is, is a Timmy score involves a lot of things, their age, how does a EKG look, do the haptaraponins, and you put it in the calculator and it's going to give you a number. Basically if the number is greater than two, they go to the cath lab. And if it's less than or equal to two, then they get METs, okay. So it's basically a severity case. These patients are a huge risk for dying. And so you want to make sure you do everything in your power within the first 12 hours. That's the best time to save their heart. It was within the first 12 hours, you take them to the cath lab, or send them to a hospital that has a cath lab. And then if not, you go and do METs. So let's talk about our METs, okay. So now it's kind of going into our conservative management. What METs would you give these patients? So pause the video if you haven't answered it, but if you know this acronym, you know the METs. And I'm going to give you kind of something to consider because although acronyms are helpful, they're not always utilized in every single patient. So monobash is basically what we use to help distinguish what we give these patients. So the M stands for morphine, which helps with the pain. The O stands for oxygen.  Our patient was at 97, so they may not necessarily need this. N stands for nitroglycerin, which is something that will help dilate your blood vessels and essentially relieve some pain. So a lot of patients improve with giving some nitroglycerin. And do you know how much you can give? So you can essentially give them nitroglycerin, like one dose, up to three times in 15 minutes. Okay, so nitroglycerin actually acts really fast. And so you can give them up to three doses within 15 minutes. And as long as their chest pain is relieved. Don't give them obviously more than 15 minutes and we'll come back to nitro in a second. A stands for anti-platelets. So you don't want them to continue to form clots and thrombies in their blood vessels.  So these are two medications that you almost always use in patients. Obviously you keep in mind there are other paci-medical histories, but you give this to your patient to avoid worsening their heart attack. B stands for a beta blocker. So basically this is, if you're not familiar, this is essentially a medication that will help the heart work a little less intensely and there's a lot of demand already put on it. So it's gonna calm down. A is going to stand for an ACE inhibitor, which is shown to improve mortality in a lot of these patients. And so you can give that. S stands for a statin. So usually your cholesterol buildup is the reason you have the plaque. And so you give this to the patient, essentially for a long term. And then H finally is heparin. So heparin is going to avoid forming up bigger clots and you can give this to the patient to essentially avoid making the heart attack even worse. So these are the things that you would get them, okay? So let's get back to our patient though. Monobash is something that you guys learn. You probably remember. And if not, you are reintroduced to it. But what would you not give our patient? Remember, this is their EKG. So there's a little bit of an advanced topic for med students is something that you probably see on your board exams. So if you're screaming to me that this person should not get their nitroglycerin, you are absolutely right. Because this patient has what we call a right-sided infarct. So when you have an inferior infarct like this, remember these are the leads that are pointing towards the bottom of the heart. This is likely going to be involved in the right ventricle. Now the best way that I like to teach this is imagine you have a bucket, okay?  So I'm going to draw two buckets to give you the example of why we don't give nitroglycerin. And then we'll have some pipes going in and some pipes going out. So what nitroglycerin does is in a normal case, you have some blood going in and it's going to flow and it's going to go to your right ventricle, left atrium and eventually back into your left ventricle. Now nitroglycerin increases essentially your diameter of your vessels. So you have the same amount of fluid come in, but not as much pressure, okay? So instead of maybe this much of the chamber being filled in, you essentially have less come in each time. So the flow, the forward flow is not as strong. This is called your preload. This is like a fancy word for how much fluid dynamics is coming forward. And the better your preload, the less your heart has to work because the flow is going to essentially push itself forward and make your heart easier to squeeze it.  And remember, where in a heart attack situation, the body's already struggling to get blood. So if you're, let me go ahead and erase this and try this again. If your body has a right side and infarct. So this is the right side. If this side is damaged for whatever reason, because that's where our heart attack is happening. Then decreasing our preload and giving less blood is going to make it even harder for this blood to pump in this direction and then out of the body. So you don't want to give nitroglycerin because you want to keep this pressure of kind of forward flow as much as it possibly can. Nitroglycerin will lower this and so you don't want to give this to the patient. So you can give something like morphine or something else for the test pain for this patient, but definitely not give the nitroglycerin. Essentially, now let's quickly just kind of wrap up our case and talk about one more advanced topic is why is our patient confused? You know, remember I told you this was like a 75 year old man comes in confused and his blood pressure is super low. Remember his blood pressure was 90 over 45 plus he's confused. So the reason this happened, oops, let's take that away. The reason this happened is I'm gonna clear up some of this is his heart is what we call in a situation of cardiogenic shock, which is just a fancy way of saying his heart's not working right and the pump, which is our heart is not able to get blood to the rest of the body. So again, here is our four chambers and we have damage right here inferior part of our heart and it's just struggling. You know, normally a situation will make it in green is it's gonna move and it's gonna nicely kind of flow out but our heart is struggling, it's kind of wimping through. It's not really, it's just not doing the job just quite right. So because our patient is not getting the same amount of blood compared to an ideal situation his brain is getting less flow and his heart is pumping less blood. So he's becoming hypotensive because he just doesn't have enough pressure in his vessels even after his body is trying to increase the pressure. It's not and he's confused because his brain is just not getting enough flow. So for this patient, as I mentioned you wouldn't give them nitroglycerin because you don't want to decrease even the forward flow even more so and you wanna avoid something like a beta blocker right now because his heart is already working slow. You don't want it to slow it down even more. So these are kind of advanced topics that you don't really always learn about and a patient with a heart attack but now given the scenario, you have a patient with a chest pain who clearly has really severe damage where the heart's not pumping forward and now has some collateral damage going on with his brain and remember he had crackles in his lungs and this is gonna be the last point because his blood's not flowing forward because his heart's not squeezing, the pump's not squeezing, then that blood is starting to back up. So it's starting to back up in his lungs, it's starting to back up in his legs and so this is just a picture of cardiogenic shock. So what would you do for this patient? One, you would stabilize him. He would obviously go to the cath lab because he has a really bad stemmy and hopefully that helps. You would give him some fluids as long as he can tolerate it to help this forward flow and then you can give him medications like dobutamine which essentially help the heart squeeze a little bit better. So these are kind of advanced things you would do. Again, we've kind of strayed away from the heart attack and ACS but again, it's not as cut and dry and simple as sometimes our medical cases on our board exams make it out to be. Your patients are going to have a lot of steps. So this is going to be a relatively simple case with a lot of nuances going on. So hopefully you guys enjoyed it. Now if you did enjoy it, first of all, make sure you give this video a like and kind of let me know if you enjoyed it. So definitely comment down below with what you learned. Maybe I made some mistakes. I apologize for that to help me point that out so other people can learn from my mistakes. I'm not beyond making mistakes. I've probably made one or two at least. So comment down below and definitely subscribe to the channel helping me kind of grow this community. I love teaching you guys as long as you guys are ready to take my lessons. If not, you can click on the video at any time. But yeah, join the community, subscribe to the video, tell me what you guys want in the future. Thank you guys so much for making it to the end. Hopefully you guys found this helpful but I will talk to you guys soon. Take care.


Thank you, everyone, for coming in. So I'm very happy to present Gukesh Langa. So he's not only an amazing person. He's also a Python core developer and our release manager for Python 3.8 and 3.9. Probably he will tell you more about that.  Good morning. This is my 21st public conference talk on my first keynote. So I thought, I'm going to use this opportunity to get a little personal. And through that lens, inspire you to make the world a better place by contributing to Python. The talk will go roughly as follows. I'm Gukesh. I'm bad at math. I used to stalk Michael Ford when I was younger. And it's all pure luck anyway. You can contribute to Python, just like I did. But Python is not the same as it was when I first started. But maybe that's a good thing. Where are all the new developers hiding these days? And shouldn't we be writing JavaScript anyway? So this is how this will go down. Let's start at the beginning. I'm Gukesh. 10 years ago, I didn't have my comet bit yet. And 15 years ago, I didn't even know Python existed. Today I'm a Python Sutter Foundation fellow. I'm the release manager of the two versions of Python that are in current development, which is Python 3.8 and 3.9. Then I authored and co-authored 11 peps to date. And last year, I started like a pet project to scratch my own itch, which is called Black. It's an opinionated Python code for a matter. Anybody here heard of it? So thank you. Well, job-wise, my biggest two employers were Allegro in Poland and Facebook in Vancouver, British Columbia, Menlo Park, California, and London, here in London. Well, I used Python at both companies. Specifically in my five years at Facebook, I helped migrate a few million lines of code to Python 3.6 at the time. You might have heard of a particularly fun part of it in Lisa Gwoz and Huiding's Instagram keynote at Python US 2017. But 15 years back, I didn't know Python was a thing. I was a terrified computer science student at Polznan University of Technology in Poland, struggling with linear algebra in particular. In fact, I was doing so badly that I was faced with a final exam retake. If I failed this one, I would be kicked out of the university. So obviously, I studied hard for this. I didn't want that to happen, but the subject matter was way over my head. I felt much more comfortable with high school math. That fit my brain. Well, so I went through an entire book of exercises to ensure that I'm going to pass this time. That book listed answers to problems at the back, which was very helpful, but a set of extra difficult ones marked with an asterisk were left out. So I knew these would be the ones on the exam, right? And lo and behold, the day before the exam, my friend told me, hey, I'm using a Ruby script to check that the answers are correct. Well, it doesn't show you how to achieve those answers, but at least you see whether the numbers are the same. So I got really excited. He shared it with me. I felt really relieved. I got back home. I downloaded a Ruby installer. I clicked Next, Next, and it crashed. I found another version, and Next, Next, and it crashed. And so with a few more versions, so at this point, I had to claim defeat, and I got really desperate. So I literally typed in Google Ruby alternative. This is how I found Python, and that installer worked. Well, soon after I was following a Python tutorial, trying to convert my friend's script from a language I didn't know to another language I didn't know, as any reasonable student does when faced with an important exam the very next day. Astonishingly, it kind of worked. I kind of managed to kind of convert enough of the script to kind of confirm my answers were right. So I got relieved, and the next day I passed the exam. Had the Ruby installer worked that crucial day, I would not be here today. As most other major life events of mine, that was pure luck. And this is something I strongly believe in. But all successful people owe a lot to chance. More than most of them would care to admit. But as Kent Beck, whom I used to work with, says, if you want to win, you need to play. Quit yelling from the stands and get on the field. Make a prediction, see what actually happens. So a few years later, still at university, I worked on a research project for the Polish equivalent of the Scotland Yard, programming Italian microcontrollers with GSM and GPS functionality. Amazingly, they were programmed with a bastardized version of Python 1.6. So I badly wanted to spread the knowledge that it's incredible to program hardware with Python. What you need to understand is that it was 2007. That was five years before the release of Raspberry Pi. So I responded to a call for proposals to my first conference. The talk didn't go well. By the end of my slot, I was roughly halfway through my slides. And I attempted live coding, which went particularly bad. That section was as awkward as it gets. People started sending live text messages to the phone number of the microcontroller they saw on the screen. So Michael Ford was in the audience. He was also there talking about Iron Python at the time. Is he in the audience today? He's at the event. So say hi to him if you see him later. I asked him for feedback. He took me aside and, hey, he gave me some of the harshest feedback I've ever received. But it was accurate and helpful. So thank you, Michael. Two years later, I attended EuroPython in Birmingham. That was my first international conference. And Michael Ford, pictured here, was the only face I recognized. So naturally, I shamelessly followed him around. In fact, you have to believe me that this guy right here, that's me. More importantly, I had no idea what sprints meant. I thought they were a mandatory part of the event. So I booked my travel and booked my hotel to just attend all days of sprints. I didn't know what they were. And Michael, at the sprints, was the only person I knew. So he helped me with my first attempts to contribute to Python. That particular sprint was not very productive in the end for me. I'm sorry, Michael. I wasted too much time on SVN, too much time setting up my environment so that the right libraries were there so Python even builds. But that experience taught me a very important lesson. Sprints are amazing. You get to work with actual maintainers on actual problems with their software. You get to see actual development done in practice live. And you have experts on hand to nag about your new problems. This is something that you could not buy even if you wanted. So even though all of this was pure chance for me that I even stayed for the sprints in the first place, and it was kind of in large part naivete on my part, it was enough to inspire me to come back the next year. And that time I came prepared. And a few weeks later, I got my comet bit. So you have to show up. But if you are already on your feet, helping newcomers might have tremendous impact on their future lives. I know it had on mine. So you know what? I wouldn't be here today without Raymond Hettinger, without Guido van Rossum, Fred Drake, and Georg Brandl, all of whom spent tens of hours with me, both in person and online, sometimes at very inconvenient times of day due to time zone differences. And I will forever be in their debt. Today on the release manager, if I could do it, you can too. But there's a snag. Many core developers rightfully mentioned that following my footsteps as I described them will not be as easy as it was for me. Python got much bigger now. It has to be much more stable compared to 10 years ago, and got much more complex as well. In other words, most low-hanging fruit already picked. What's left is maintenance of an increasingly fossilizing interpreter and standard library. That kind of maintenance is both tedious and tricky, especially for a dynamic interpreter language like Python. With compile languages, you can compile a program with an old compiler, and then it runs on new boxes just fine. With Python, you write your program, and maybe it won't run on next Red Hat. You don't know. Python is the biggest community-run programming language on the planet. Other programming languages with similar or larger market penetration are run by corporations, either single corporations or committees of multiple ones. Being a community project is both a blessing and a curse for Python. It's a blessing because it's truly free. It's truly free from shareholder pressure and market swings. So it's going to be there for you in 10 years and 20 years. I should know. I'll be releasing versions of Python 3.9 for you all the way to 2025. Well, but being a community-run project is also a curse. Almost the entire core developer team is volunteering their time and effort for free. While the Python Software Foundation is graciously funding infrastructure and events like PyConUS and the annual week-long Python core sprint, it does not currently employ any core developers. Since there is both Python and software right in the name of the foundation, I want this to change. If you don't pay people, you have no influence over what they work on. Core developers often choose problems to tackle based on what inspires them personally. So we never had an explicit roadmap. There's never been a roadmap where Python should go, what problems core developers should focus on. To be fair, I have to mention that, you know, as long as we had Guido as the benevolent dictator, he did most of the vision work himself. He ran many projects personally. And behind the scenes, he sparked inspiration in core developers to do other projects that he found are important. But more importantly, he stopped proposals quickly for things that he was dead set against so that Python could stay consistent with what he saw as being Pythonic. But this is very hard to maintain as a single person. It's a very hard task and you need to work with people and, you know, agree and disagree. So today, Python is no longer governed by a PDFL. My personal hope is that the steering council will be providing visionary guidance from now on and will present us with an explicit roadmap for where we should go. I'm not on the steering council. In fact, the release manager position is a bit of a misnomer. What I am actually managing is the timely release of source tarballs and with help of Ned Deely and Steve Dower, binaries for Windows and macOS. So I have no say in what goes in and what people choose to work on. The only thing I can do is if they land their changes too late or if they are too disruptive because they're incomplete, they have bugs or they're backwards incompatible, I can decide to revert those. But as anybody who wants to keep working on a team, like, you will not use that hammer very liberally. So I'm not on the steering council. But since you're already here listening to me, let me share what I would like to see happen to Python anyway. Before I get there, let me reveal that I wasn't completely honest with you all along. Ah, I kept using the word Python. But what I really meant in most cases was see Python. The reference implementation of the language, the reference interpreter written in C that most of us are using for their day-to-day Python needs. The snag I described earlier applies to see Python alone. That's the interpreter that is run by a team of volunteers with an insanely important focus on backwards compatibility but a focus that is in many ways crippling. That see Python is gonna be maintained for decades but drastic changes are very hard and thus unlikely. Because of that, I would argue that if Python stays synonymous with see Python for too long, we'll be in big trouble. Why? Because see Python is not available where developer trends are shifting. For web, the lingua franca is JavaScript now. For the two biggest operating systems on mobile, we have Swift, the modern take on Objective Z and we have Kotlin, the modern take on Java. For VR and AR and many 3D games, we have C-Sharp provided by Unity, a tremendously popular option. Python is also slowly losing ground in the field of systems orchestration that was very close to my heart where Go is gaining traction. Open stack used to be all Python. Perhaps if not the rise of machine learning and artificial intelligence which were unforeseen by the core developers, Python would have not survived the transition between Python 2 and Python 3. So we got really lucky there. What if you think that what I just said is like sad, negative, depressing or fatalistic? Well, think again. In the 2018 developer survey ran by Stack Overflow, we learned that Python is the third most loved programming language out there. Better yet, it is the most wanted language by far. People want to use it. So why aren't they using it? Well, let's look at another result from the same survey. It looks like we're already the seventh most popular language in use, but looking above, it becomes plausible to think that providing a clear supported and official option for client-side web is what Python needs in order to satisfy the legion of people that want to use it. We are already the fastest growing major programming language after all. That's an article from 2017. I recommend reading it if you haven't seen it yet. Among other things, it says, with a 27% year over year growth rate, Python stands alone as a tag that is both large and growing rapidly. So see, Python is doing just fine. But for Python, the programming language to reach new heights, we need a new kind of Python. And this is where you come in. Truly tremendous impact awaits. And I'm serious here. For a new runtime or a new compiler unencumbered by the constraints of C-Python, targeting a new trending platform, this can become career-defining work. You will make the world a better place that way. At face value, what I propose is crazy. There were many unsuccessful attempts to create a new Python runtime after all. Don't I know it? Do you remember this picture right here? That's the Python VM panel at EuroPython 10 years ago. From the left, you can see Carl Friedrich Bolz from PyPy. You can see Mark Shannon representing HotPy, which is now a defunct project. He's a C-Python core developer. You can see Michael Ford representing IronPython, now a defunct project. He's a C-Python core developer. You can see Frank Wierzbicki representing Jython, now a defunct project. You can see Georg Brandt representing C-Python. Georg is no longer active. We miss you, Georg. And then you have Damien Dieter and representing Crosthwein, again a defunct project. There's a few people missing from this picture. You could add maintainers of Unlaid and Swallow. You could add maintainers of Piston and a few others. In fact, the only two runtimes left of this picture are C-Python and PyPy. And PyPy is an amazing project. It tries to be bug to bug compatible with C-Python. And that is still too hard for many users to consider switching from C-Python to PyPy. In fact, I spent a week in Düsseldorf in Germany this winter at a sprint that PyPy was running. I met a lot of the core team. They are wonderful people. You should meet them, and you should listen to them. I got a commit bit myself. It seems like PyPy gives out it rather liberally. I solved a few Python 3.6 compatibility issues, so I guess I'm not entirely ashamed of getting that commit bit so fast. But I learned a thing that in hindsight is obvious, but I never quite thought clearly about it before. PyPy is known to be the implementation of Python written in Python, but it's written in Python 2. It's one of the most complex applications in the industry written in Python 2. What that means is that without a tremendous investment, it is very unlikely to ever migrate to Python 3. It is just too complex, especially that. Those people are very clever. There's plenty of metaprogramming, so Python code generating more Python code, which then is translated to C and then compiled to native code. So PyPy will have to keep Python 2 support as long as they want to be able to bootstrap themselves, which they want because it's our most performant runtime that we have for Python. Trying to replicate C Python bug to bug with all its behavior and all the standard libraries super hard. And I'm skeptical of new developments for C Python replacements. Without a multimillion-dollar investment over many years, I don't think that's feasible. But areas of modern focus where Python currently has no penetration. I already mentioned mobile, client-side web, VRAR. All those don't require full compatibility with C Python. Do you really need your C extensions on your mobile web browser? Probably not. And that is good news, since Python has many features that are hard to optimize and make static analysis and thus IDEs fail. So there's no time now to enumerate the entire laundry list of Python features that I think is plausible that we could feasibly simplify, given a new platform. But let me show you a few examples. The import system is a very complex beast. It describes how modules are imported. It describes how packages, namespeed packages work. It describes search. It describes a runtime writeable, module cache. Finders and loaders, including how we find modules and packages on the file system and sys.path and stuff. But also how you can write custom ones that run your modules from a database memory or you name it. Import hooks, metapath, I could go on. But do we really need that on web or on VR, on mobile? What people want on mobile is to just go to their app store, click install, and have their small binary quickly load over their 3G network somewhere in rural Pennsylvania. So do we really need that on web? No, like people want, again, to have a small application so that their website runs fast and has a fast time to interact. In fact, one of Go's claims to fame is that they ship static binaries. So we only have one file. You can choose to still use containers, but you don't have to. You don't have virtual ENVs. You don't have pip installs. You don't have environments that you have to orchestrate being created and then turd down. exec is, again, like a feature of Python that provides tremendous value, but for a price. Many people now consider it as an anti-battern. They don't want to see it in their code. If any user-controlled input ends up in exec, that's a security vulnerability. But even if not, it obscures what is happening to your code from humans and static analysis. And it's very tricky to make that performant. Metaclasses are a way of extending the idea that if we already have dunder new and dunder init to control how we instantiate objects, how about we had a way to control how we instantiate classes? Python is using metaclasses internally a lot. And third-party libraries and frameworks like Django are utilizing it as well. But again, it makes it hard to see at first what Python is actually going to do when you are interacting with your class, which also defeats much of static analysis and is a form of indirection making things slower. Parts of the data model in Python are very dynamic, which might not be necessary. The scriptors are away for an object to control how it behaves when it is an attribute on another class. They were added in Python 2.2 as part of new-style classes. And in fact, part of their motivation was to simplify how C Python is implemented. And now we have properties, class methods, and super actually using the descriptive protocol themselves. But it's also a generic way for Python users to write powerful class and object behavior. But again, it's indirection. And indirection equals bad because it's slow. And it also makes it harder for us to see the shape of our objects. What is the shape? Well, many programming languages rely on the fact that they know what a given object provides as methods and as attributes. And using that knowledge, they can optimize how an object is preserved in memory, making them smaller and making attribute accesses and method calls faster. In Python, everything's mutable. So we can add and remove attributes. But at a given point in time, we can add and remove methods as well. But did you know? Since Python 3.7, modules support Dunderget other. We support it so that you can customize module attribute access. And we already supported customizing Dunder class since Python 3.5. What that means is you can take a module object and set its Dunder class attribute to something else. What? What did I just say? Like, you can lie about what class a given object is. Yes. And it enables pretty advanced functionality. In fact, Mercurial uses it for plugins, a few others as well. So you know what? It feels like it's useful for some advanced cases. But it makes it very hard to see what is happening. And it makes alternative runtimes very hard to write. I could go on. The point is starting out with a familiar subset of Python for the user that looks like Python would simplify development of a new runtime or compiler a lot and potentially would even fit the target platform better. Don't believe me? Look at MicroPython. A single programmer, Damian George, started development on it from scratch six years ago in Australia, funding his work with a Kickstarter campaign. And now it's a surprisingly compatible runtime for microcontrollers that have very little memory and by very little, I mean 16 kilobytes of RAM and 256 kilobytes for code memory and minimal computing power. It finds tremendous uses as a teaching platform in the BBC micro bit that you for sure heard about and other fruit circuit playground and a few others. But also production use in home automation and MIDI controllers and game consoles like Pew Pew. I'm hearing it will be distributed to Europe Python attendees this year. I highly recommend getting one. It's great fun. And the creator of it is a friend of mine. I know that he cares about it really much. So for correctness, I should mention that some of the use cases I talked about are powered by a friendly fork of MicroPython called Circuit Python that is focused on teaching more. It has like a list of innovations, one of them being if you connect your piece of hardware to your computer, it just appears as a thumb drive. And if you edit your files and save them, it restores your hardware so you can see what you just did right away, which provides like an amazingly short feedback loop for what you're doing. But more interestingly, I kept talking about ways in which CPython could be simplified to make other platforms easier to develop for. And Europe Python, oh, Europe Python. MicroPython has a list of things that it decides not to implement or implement differently. Some of them are just restrictions of what you can do when faced with a very tight programming environment. But some of them are just decided because of either developer efficiency or because they just fit the user better. Amazingly, MicroPython is still an interpreter. When you connect your device over USB, you can hit Control-C and then get a familiar ripple. That's impressive. You can, for example, run DER on the board module to get available pins on your circuit board. And how cool is that? But will you need Control-C on your client-side web application running on your phone? I guess not. Instead, we need a compiler for web. We don't need an interpreter running on top of the web platform. We need something that compiles your Python code to the web platform directly. That means you cannot achieve full CPython compatibility from the get-go. As CPython enables plenty of dynamic runtime behavior, some example I listed before that I think we can probably do it out. But there are things we cannot do it out. To be viable for professional production use, Python on the web must not be orders of magnitude slower than the default option, which is already better supported, has better documentation training, and is the focus of the developers of the browsers. Same for mobile, and especially on an increasingly popular intersection that I kept mentioning, which is the mobile web browser. Very often when people think of mobile, they think of their beefy laptop running Chrome or Firefox. But what you should really be thinking about is your phone in your pocket. You don't want your Python program to drain the battery on this one or make the device unresponsive. Thus, a compiler. That's a hard path, but in my opinion, that's inevitable. Luckily, there's some prior art that we can either improve, adapt, reuse, or maybe just take inspiration from. There's Nutca, there's Scython, there's Theano, Shedskin, there's Python, there's Numba. They have different focus, but they all implement roughly the idea I'm talking about. But the one I wanted to focus for a moment is MyPyC, the probably the newest player in town. What MyPyC does is it takes modern Python 3 code, which is type annotated, and generates fast Python C extensions. So C extensions for C Python. But it is already used in production for MyPy, the type checker, making it four times as fast. That's plenty impressive. What is even more interesting is that MyPyC to achieve its performance metric and to make this entire compilation thing viable already describes that it was going to work for a subset of Python. A Python language variant that is called strict. Some of the things that it says is type annotations have to be enforced at runtime, have to be correct. But it also says classes are compiled without dunderdict, which is a hash access to find your attributes, which again, indirection bad. So obviously they do that. When monkey patching doesn't work, you think, oh, isn't that a good thing? Monkey patching obscures what is happening. It is an anti pattern. We should not be using it. But really, you are using it. If you ever write unit tests with the mock module, mock's patch is monkey patching. So how would that work? Well, the compiler would have to be a bit smarter and recognize use cases like this to allow them in very constrained environments. But for everything else, we don't need monkey patching. And in fact, it's better to not have it. Instance attributes won't fall back to class attributes if they're undefined. And meta classes that I already mentioned are not supported. So it's not just a theoretical thing that I mentioned. See, Python is an interpreter. So it runs an eval loop over opcodes that you've got, for example, from a PYC file. And it then dispatches what to do just in time. Very often delegating behavior to Dunder methods or some hash lookups, the compiler should not just inline that eval loop into native instructions that are executed one by one, because that is just a worse version of a full-fledged interpreter. It's just better to retain the interpreter in that case and have all the flexibility. But what I'm talking about is a compiler that moves as much of the special method handling and hash lookups from runtime to pre-compiled as possible. If you expected, I would now reveal I have one running, I have to disappoint you. Between the release manager position, black family, and unrelated hobbies come talk to me about analog synthesizers. I have little time for a big project like this. But what about you? What about your organization? What about sponsoring such effort? Could the PSF fund that? Maybe we need a Kickstarter campaign. I'd be happy to be on a team paid to work on a thing like this. But what if you want to work on CPython? Well, I'm not saying that CPython is a dead end. It will forever be an important runtime for Python. Probably the dominant one, it's the reference implementation. New people are still both welcome and needed. In fact, Pablo Galindo Salgado just got his commit bit last year, and he's already more impactful than many long timers. So no, CPython is no dead end. However, working on CPython today is different from working on it 10 years ago. The runtime is mission critical in many industries, which is why development must be extremely careful. That way, we reach the final point. To be honest with ourselves, we have to ask if maybe it's OK for Python to not be available on those newfangled platforms. Well, I strongly believe that enabling Python on new platforms is important work. This is Alan Kay, the pioneer of object-oriented programming and graphical user interfaces. One of the things that he said in a talk given a few years back was, one of our many problems with thinking is cognitive load, the number of things we can pay attention to at once. The cliche is 7 plus minus 2, but many things make it even less. We make progress by making those few things be more powerful. This is one of the reasons mathematicians like compact notation. The downside is extra layers of abstraction and new cryptic things to learn. That's the practice part of violin playing. But once you can do this, what you can think about at once has been vastly magnified. Python is an extremely expressive language. When I first started, I was amazed how much you can accomplish with just a few lines of code, especially compared to Java. But there are languages even more expressive and enabling even more compact notation. So what makes Python special? Python is runnable pseudocode. It reads like English. It's very elegant. Etzger Dijkstra said that elegance is not a dispensable luxury, but a Q-quality that decides between success and failure. Well, I would like to agree with them. But in my experience, convenience all too often wins out over Q-quality of experience. So our responsibility is to make our runnable pseudocode convenient to use for new programmers. Because when it is convenient to use, it is very popular in teaching. Let me give you just two examples. Here's a room full of musicians figuring out Python for the first time. They're musicians. They are making their software synthesizers play using CircuitPython's capabilities. So they're programming a microcontroller to play notes on their software synthesizers. That was at Mocfest this year in North Carolina. It's a music festival. People were amazed that at the same day, they learned how to program hardware and learned about Python. And they could be productive from day one, just like I did on my first day with Python. Let me introduce you to another guy. That's Stanley. That's my son back in 2013. He was five at the time, trying his first steps with a troll module on a Raspberry Pi that I got at PyConUS that year. I will always remember his pure joy when he by himself made the troll go where he wanted. Now he's almost 11. We still have fun with Python, mostly with the Pew Pew console. But if his first programming language, one, he uses now on a tiny piece of hardware that costs eight pounds, would be directly applicable in his later life to use at his job. That would be incredible. We, the current generation of software developers, could make those future lives easier and so much better by bridging the gap between the micro bit and production mobile devices that everybody is using. And we could also build some job security for ourselves. And that can't be a bad thing. But we could really enable a future generation of software developers. And maybe one day, at their own conferences, they would say, if I could, you can too. Thank you very much. Well, we have some time for questions. All right, while compiled to web, what about back-end developers? What about scientists? Oh, we already covered those cases pretty well, I guess. We have CPython, and that works tremendously well. If we make PyPy better so that people can more easily migrate to that, that will also become more popular. So I guess the platforms that we already support, we just need to improve those. And that we can do gradually. And the core team is doing that for CPython. But many new users of computing don't run servers themselves. They don't have a laptop. They don't have a stationary PC. They only have an iPad or only have a phone. So this is a place where Python does not exist at the moment. Very interesting. Thank you very much. There's this project by Mozilla called Pyiodide, or something like that, that compiles a subset of scientific Python to WebAssembly. Can you comment a little bit on that? So there's a few projects already, like Python, like Pyiodide, like Rust Python, which also compiles to WebAssembly. What they do, they approach creating a full-fledged interpreter that just runs on top of the web platform, which I think is an interesting idea, but it delegates Python to this future where it always is slower than JavaScript. It always is slower than what is the default. And I think this is enough to make this inconvenient, to convince both big companies and then smaller users to write the programs that way. Thank you. That was extremely interesting and thought-provoking. You mentioned that the transition from Python 2 to Python 3 was painful in ways that were not expected beforehand, and then that Python, in a sense, was rescued from its end by the unexpected success in data science and machine learning. And this is a pattern that everything always seems to be unexpected until we look back on it, and then it seems obvious. So if the future is so difficult for us to guess, how are we going to know where to put our bets on the future of Python? What things, what platforms, use cases are we going to invest in, since we always seem to be surprised by what actually does happen? Well, it's hard to predict, especially the future. But what I learned at my time at Facebook is that you just need to take those guesses and run with them, and run with them enough that it becomes obvious that the problem was a bit harder than you anticipated, or that the world just went in a different way. As Kentback said, you need to play to win. If we just keep doing what we're doing now, we're going to miss a big transition. And those leaps are what actually provides progress in computing science. Before iPhone, Apple was a different company. There's plenty of examples where there were major shifts in the entire industry. If we already see them happening, which I think WebAssembly is one of them, it would be responsible for us to try this out in earnest. Christian. Hi. So you mentioned the restricted runtime environment for MyPyC. Also, now that PyPy has a R Python interpreter, would you alter a restricted subset of Python without some of these features? Very, very similar. So would it be maybe a good idea to standardize something in C Python where you have a subset of Python feature that we know we can optimize and have a way to flag code or inspect code or run code in this restricted environment? Yes. But the way you get there is to have an alternative platform that informs you what that constrained version of the language should be. If you try to predict the future of what are people going to need, you're likely going to just end up with a design that is artificial and not necessarily useful. Our Python in particular was created with an explicit goal to be able for PyPy to compile that subset to efficient C that then can be compiled. So that was their efficient goal. We can't use our Python, it's Python 2. Hi. Excellent keynote, really, really great. I just wanted to kind of make a similar point. So when you were both Christian and you were saying that there's a subset of things that effectively make Python very Pythonic, which is this dynamic nature of changing things, making metaclasses, dicks, all this introspection monkey patching, that is very core, at least for me, to what Python is. But there's a contradiction there towards making it compilable, if you will. How do you feel that that works? How do you feel that Python should move towards being more compiler friendly? I'm not saying Python as the entire programming language should just abandon what it is now with C Python being dynamic and whatnot. But what I'm saying is a Python-like experience with enough support on a platform where everybody is, is just incomparably better than no support at all because you just cannot get the last 10% of support running on that particular platform. So obviously, I would prefer for us to be able to just keep Python exactly as is and just move it to all new platforms. But as I said, without multimillion dollar investments over many years, that's not feasible. And even in the end, you're going to end up with a runtime that is slower than the default option on that given platform. All right, thank you very much.


Thank you very much for these very interesting presentations and thank you for all the presenters as well as you said that you are not so sure how these presentations link with each other and I must say me either, I'm much less because I just saw and read your presentation the first time myself as well. So this is very much trying to put something together here at this moment. Interestingly, these four presentations, what's in common in them is that they differ in everything. There's one from Africa, one from Africa, there's South America, Asia and then Middle East. Also, time-wise, it's from the 70s to 2022, the latest data. So there is a lot and also conceptually many things. So what I decided to do while I was taking my notes was to have some questions for each of you and we'll see if there's something then that can be brought together. In the first presentation on civilian agency and resistance on Myanmar, my question was on the civilian monitoring missions is when civilians are monitoring other civilians. So my question here was that are these civilians outsiders or insiders? So it's civilian monitoring civilians, but are they from the same countries, from the same community? Do they already understand the dynamics when they go to the region and you show two different regions and two different conflicts with two different armed actors or substates or how they are called in Myanmar. And how does that play if it's outside or civilian or inside civilian monitoring? And then my second question was that as ceasefires usually are quite volatile contexts. So because a ceasefire is supposed to lead at some point to a political agreement and this is still only the military agreement. So and it's not the permanent state. So how does time play there? Can you have a civilian civilian monitoring mission monitoring a ceasefire for years when the peace doesn't come and there is no intention even for a political solution. So what is the time factor here? These were my two main questions or reflections here from the first presentation. And then on the rebel governance and political engagement it was very interesting because you clearly brought the case of these rebel governance to, you said, you measured their position relative to the state and you looked at the governance ideology. So you clearly make an argument that these are political actors. They're not grievance actors. They are political actors. So my main question was that these political actors, it was the argument that they create new political agency or they transform earlier political agency. This was not very clear although I see that this is the main argument. And then another question was that when I looked at the data, there was something interesting that 50% of the peddits think that nobody, or 48%, think that nobody ruled them. So is it possible that they lived 60 years or 40 years of Colombian conflict and were not that even concerned about who ruled them or why they thought that nobody ruled them? Is it because you do show, which is very interesting that formal and informal political participation were not mutually exclusive in these cases? That it's not that you can either participate in politics through a party or something or then demonstrate that you can do both. But still then if people think that there's 50% or almost a half saying that nobody ruled them, so is that then perhaps part of the answer saying that people participated in politics in the context of the conflict they had had for 40 years. So that creates like a particular, you wouldn't say democracy, but you would call it a particular political universe where people participate politically and these actors change. So this was perhaps that you say the actors create and transform political agencies, so there's clearly something going on, but how much it then actually changes? This is what these were the main questions. And on the presentation on the armed civilian protection in the Mozambique Civil War, this was quite interesting to me because the data, when you say when, where and how, and the Civil War starts from the 70s and goes to the 90s, so it's a really long, long time to do the analysis and have this data. And yet when you speak about the protection of civilians, so you say that it's temporary, it's a temporary element. And then it's a temporary element in a 40 years conflict. So how does this temporality work there? It was my one question. And then the second also you said there's an elite collaboration in the adoption of the militias or the adoption of militia through an elite collaboration. So I was wondering is this elite support here, is it local elites very much or is it national elites or is it both that then has an impact on this protection of civilians? And then a political participation in this case, I was wondering because I was still writing a little bit my notes from the previous presentation. Is there a possibility for formal participation there or informal participation or is this a civil war context where you have nothing or at least it would need to be researched very ethnographically to see it or can you make a claim that there is in this case if there's elite support for these militias. So does that leave space for formal or informal political participation? And then the questions on the uprisings in Lebanon and Iraq. It's very interesting 2019 when those uprisings started, you would think there's now something going on that this was, this is some type of a post Arab spring eight years, seven, eight years past now something is happening and then COVID came and then the attention was shifted elsewhere or you showed that the protest changed or maybe there was a stronger repression because of that. I don't know, but it's interesting that there is this peak just before the pandemic. And I thought it was interesting, you call these broken democracies and there's this definition which I think is quite workable at corruption and neoliberalism and all that. And I was wondering whether how much do you see these as not transitional regimes, but transitional states still coming from either from civil war or from the Arab spring or states transitioning to something where the state structures and the power has perhaps drastically changed. So how this links to these protests. And then my second question was that it's, I think you show with these the negative coalition and the generating outrage and the elite defections that something is changing. Perhaps the space for civil society or the society to protest is changing and regime repression is changing as well. So how difficult it is to study this in a transitional case because you perhaps don't know who is controlling and repressing. That it's not very clear, at least in the case of Iraq, it's very hard to say whether it's a, what's happening inside of the government and inside of the particular states in Iraq that who is powerful inside of the army and who is powerful within the political elite. And I think in the case of Lebanon, there's a little bit more written about that, at least in the very general international media, but especially in the case of Iraq. How do you study that? The conditions of these revolutions when everything is changing in terms of the army and the political power. This is what I could do. And I hope you can answer my question. Thank you so much for these excellent comments and this very careful engagement with our presentations in just such a short amount of time. So these are excellent questions. So for the first question was whether the civilians who monitor to protect other civilians in Myanmar's conflict zones are insiders or outsiders to the conflict zones. So these civilians are insiders. They are part of the local populations. They are part of the main population groups, so the Kachin and Kachin state and the Karen state. They have local knowledge. They have a lot of buy-in from local civil society organizations. Their perception also was that they were very much threatened by the Myanmar army but not so much by the rebel group. So the Kachin, both the Kachin Independence Army and the Korean National Union are known for being relatively benign to the civilian population. So the monitors were acting as local monitors, protecting the local population with support from the local population, but also with some contestation. So there were parts in the civilian population who were very skeptical about the peace process and who saw that civilians monitoring ceasefires or monitoring, protection monitoring, were basically playing into the Myanmar government's strategy of playing out rebel groups against each other in ceasefire negotiations. And because of that skepticism towards the Myanmar army and the Myanmar government in the local population, these monitors also had a difficult standing in their own population groups. The second question was how does civilian monitoring play out over time in ceasefire contexts if the peace process starts? And again, that's an excellent question. There's also some research not just on Myanmar but also on Sri Lanka and on the Philippines on such civilian monitoring. And Sri Lanka is another case where there was a lot of support for civilians supporting the ceasefire monitoring, but we know that the Sri Lankan Civil War re-escalated basically and we know who won that civil war. So that ceasefire monitoring also collapsed. But generally the research also shows that civilians become monitors in ceasefire contexts precisely because these are fragile arrangements, precisely because there's very limited buy-in from the government side in support of a long-term peace process. And civilian monitors cannot replace that kind of buy-in in political from the side of the armed groups and especially when the political will is lacking on the government side. And so over time, if momentum stores, civilian monitors, they are unarmed, they don't have political power. They cannot replace that level of political power and buy-in from government and rebel forces. Okay, so thanks. My name's Abby, everyone. I'm earning my position up here by answering our questions, the very good questions raised by the discussant. Thank you for your questions. So the first question that you had, which is a great one, is so what is new and what is transformed? Or what actually is going on when rebels govern? And one way, or the way that I can think of to answer that is that we think, at least in the paper, what we develop is that there are different channels through which rebel governance can influence individuals' relationship with the state and with political engagement more broadly. One is by shifting preferences about how things should be done to come to a new political agreement or to challenge power or to get some other kind of outcome that people want. And so people's preferences may shift. Their beliefs may shift about what is most effective. So if you've lived for a very long time where there are new institutions built around shared governance, and we know also often sort of obligations by people in the community to collectively participate in public good provision, for example, and they see that working, then they may have new beliefs about what is the most effective way to participate in politics. And so then finally there could also be real incentives, right, to participate or not in a certain way, including punishment. So we know that there's lots of evidence for if an armed group imposed a boycott on elections like the FARC has done multiple times, people would not have access to formal participation because the FARC would say, no, you can't do that now. So all of these three possible channels could lead to the outcomes that we are expecting. And we can't really identify that very clearly with the data that we have, but those are sort of theoretical channels. Another way to think about this is that armed groups unevenly or more intensively govern in some places than in others. And this is related to some work by our colleague on Arjona who's now, who's on the rebel governance panel simultaneously, right, where in some cases they really do seem to, how do you say, outsource governance to the existing communities and then they kind of oversee it. That's her category of aliocracy or more directly govern. And what we are saying here is that in either case, they can do that in different ways and emphasize different ways to govern given this kind of level intensity. We also cannot measure that with our survey data. So that's something to keep in mind. That's related also to your question about why do 48% say we don't know, no, when we ask them, did the FARC rule here, did the paramilitaries rule here, so we don't know why people would have said that. We do know that those responses are clustered in certain rural communities where it's plausible that there was a much more distant relationship with a particular armed group or anything like that and in urban communities which may have been less exposed to such more obvious forms of, of rebel governance. This raises an uncomfortable challenge with our results or the logic of what we are trying to show with our evidence which is that maybe more politically attuned individuals also seem to notice better and be able to identify which group is ruling them in any given moment, right? And then what we are actually seeing is just that politically informed people are also more politically engaged. That's also something that we cannot really disentangle here, but it's something that we need to raise, I think. And then how can we know how much change is under armed groups a rule? Yeah, we, it's really difficult and fascinating. That's why we are writing this paper, but it is such a long war and we don't have good ways to really know what's going on in a particular community and for that I think qualitative methods would be much better suited for that, right? To really have an ethnographic understanding of how communities shifted over time under, under a different armed group rule. Would you like to correct anything? Yes, thank you so much for your questions. Why was civilian protection so late and so short? Well, it's kind of due to the history of the war, how the war spread, it started in the middle and then kind of subsequently spread to these central and northern provinces, so it came into Zambesia and Nampula in the mid-1980s and then the war kind of increased in lethality and intensity and this is what I describe as local military stalemates that gave then rise to these forms of civilian protection. And I should probably say that I'm only studying one group. There were other initiatives that were, that are not very well studied and it's not really well known how many they were, how sustained they were, how long they were active across different parts of this area that I'm also studying, but they weren't so durable and they were much smaller and they were also nonviolent forms of resistance, I should say, in the south and also in the same area. So there's more than I had time to talk about. Elite collaboration was important at the local level, so at the national level for Lima the government never wanted to acknowledge any official collaboration with kind of a traditional armed force because of kind of the socialist ideology and so at the national level there was some kind of tolerance of alliance with these groups, but it was never officially acknowledged or supported and so the local elite collaboration was much more important. And finally, what kind of forms of informal participation were existing during the war? Well, not much. People were on the run. They were hiding outside their villages. It was a very, especially during that time, they were displaced, so there were not many other ways to participate politically. Great, thanks. I'm going to be super quick because I would love to leave some time for Q&A, so I won't do all of your great comments justice, but I'll just answer two of them quickly. Why 2019? Great question. So there were four big revolutions in the Middle East in 2019, 2018, 2019, 2020, sort of Sudan, Algeria, Iraq and Lebanon. Not a lot of evidence of diffusion, unlike the Arab spring, a little bit maybe, but not a lot of evidence that activists were collaborating or actively sort of, so I don't know, maybe something in the water that year, but it is an interesting coincidence and of course people are calling it sort of an Arab spring 2.0. COVID was important, but as you could see from the protest charts, the revolutions were already on the down swing before COVID really set in. The COVID really was the nail in the coffin, but they were already decelerating before COVID really kicked in. By January, February the protests were declining. And then in terms of conceptualizing, I mean, yes, we're going with broken democracy, we've debated this a lot. Some of these are post-conflict societies, post-conflict regimes, not all of them. If we think about the larger universe, so Central America, the Balkans, Middle East are kind of post-conflict, but then there's some Eastern European and Latin American cases that really are not, they're not really post-conflict. I also don't love the term transitional because it sort of implies that they're going somewhere. And a lot of these regimes, I mean, Lebanon has been, has had this dynamic basically since independence, right? Certainly, I mean, since the Civil War, but that was, you know, 25 years ago, right? So, I mean, they're not transition, because they're not really transitioning to anything. They're actually quite stable in this kind of collusive governing dynamics, and I think a lot of the regimes could be described this way. So we don't love the term transitional because it sort of implies a teleology that we, you know, I don't think is really true. So anyway, we're still trying to figure out how to case these regimes and what, but we're going with broken democracy for now just because we think it encapsulates the kind of problems that these democratic regimes have. I think we need to have at least two questions, otherwise it's not democratic. So I saw this gentleman raising his hand like this already five minutes ago. So I think that the floor is now yours, you with glasses? Yeah, that's you. Yeah. Yes, André Rougieri, University of Oxford. And this is a question for Kilian, actually, because you actually trigger a lot of ideas and it's a fantastic project. So the first thing is just pedantic in the sense that you talk about revolution, uprising and protest. And so I was wondering whether, you know, I know your work, I know Mark Reisinger, I'm sure there is coherence and an analytical thinking there, but to me, actually, what you're talking are mostly extra institutional collective practices of incumbent removal. So basically you have these collective movements that they try to remove the incumbent. So my comments question is that you talk about broken democracy, but it seems to me the mechanism is that they're broken democracy, but resilient polar keys. So the crucial point is that they can give highly symbolic concession because power being polyarchic, you can basically give concession on symbolic and therefore they absorb this. I wonder if you can give us maybe a less, I don't know if it's positive or negative story, but if actually the case it can be that after the focal point disappear because also you don't mention focal point. But it is that once you have the highly symbolic concession, the focal point disappear and therefore there is the end of the collective action. But it can be that small but highly organized group can hijack the mobilization after the first focal point. And the second point is that you didn't tell us anything about when actually the incumbent decide to go non-constitution or basically become even a more broken democracy. And now I think we had the gentleman in the back that was really number two asking for the floor. And then I think we have, you know, like this other gentleman right there. And then we need to finalize this round. Thank you. Great for these presentations. I learned a lot. I just would like to ask about the, in the case of Myanmar, the organizational dimension of the civilian agency of this monetary. If there is any, what is the relationship of those organizations with authorities? Because, yeah, talking about civilian agency without any kind of organization or structure or whatever, so it seems a little rare. Are they related to trade unions, to human rights networks? And what is the relationship with the authorities? And this question is for Abby. Where and how do you locate or conceptualize in your argument the permanent killing of social leaders and the role that play in these forms of governance? I think we had already our questions. And then the gentleman right there. Thank you. Okay. Thank you to all. Two questions or comments. One to Michael and Abby and the other one to the presentation on Myanmar. So the first one to Michael and Abby. I was wondering whether you have some more aspects on your treatment or explanatory variable that you could exploit. So not just only whether they were under the rule or under a certain ethnic armed group, but whether for instance there was some competition between armed groups. How long they were under rule among different groups and whether for instance competition between armed groups could give one option would be the civilians more bargaining power towards the relationship towards the armed groups or vice versa, also remove bargaining power. So I don't know if there is more actually that you could exploit actually and to get a handle on the mechanisms. To Jana on Myanmar I think it's so I was I found that very interesting but I was wondering on several fronts where what the what the essence is actually of what you were telling us. So you're saying that civilian agency was strengthened actually through a kind of adaption of this external intervention. So I would really like to know a little bit more about what you mean with that protection has been strengthened because I think we need to boil it down to how does it manifest on the ground. How can you make that claim based on two states that the adoption of these monitoring technologies if you will contributed to the protection of civilians or strengthening of civilian agency. I think these terms need really an empirical grounding and I would have loved to see a little bit more evidence on that. Similarly I was wondering okay what do you mean actually with this monitoring technology right and the networks and institutions and what is behind all these terms. Is it that the people who are part of that program received I don't know a mobile phone, airtime for their mobile phones, contact numbers and is it could you not imagine to have having observed the same impact for other people who haven't been part of that program. So is there like at least theoretically what is the counterfactual that you're comparing or making that claim to that there has been this adoption and the effect of this program. Thank you. I think we start with Kilian, we go to Appian, Mike and all the remaining then of course will be directed to you in the middle because there I think that you know like some of the questions were just so large that you know like you can also contribute. It's nice to see that there are competing universities from saying countries in the you know like taking taking the floor so very interesting for a civil servant to see that but yeah I think Kilian please go first. Thank you. Okay, yeah so thanks Andrea great great questions I won't address all of them but these are really good food for thought on definitions yeah so what is a revolution 30 years of scholarship we still don't know so basically we're going with the sort of political revolution definition so regime change through popular mobilization so the question is are these efforts at regime change right that's and we don't normally think about regime change in democracies right we're making the sort of provocative statement that actually the claims in these revolutionary movements do amount to claims or demands for regime change because they're calling for something fundamentally different that these democracies are so broken and so problematic and the things that these these these protesters want are so profoundly different that this ultimately does entail a call for regime change and therefore we ought to categorize them as revolutions just as we normally you know think about revolutions in autocratic contexts and so yes they are also extra institutional practices of incumbent removal but because that the claims are so severe because they're demanding more than just the removal of the prime minister because they remain in the streets after the prime minister goes these are really these are really revolutionary movements and they should be thought of as such and theorized as such right and then we're thinking about the variation across so that's sort of to answer your first question and we can maybe talk more about the other ones just very briefly the civilian monitors in Myanmar where recruited through local civil society organization that means they were local people recruited oftentimes people who were previously active as community leaders pastors religious leaders and so on so they had some previous experience they were not from one particular organization and so on but the very fact that they were local though recruited locally through CSOs meant that they were not neutral in any term they weren't outsiders and so there was a lot of government on the grounds that these civilian monitors were not neutral observers of what was going on and that was a problem for these monitors the second question in terms of empirical evidence basically I can't give you the long story now the work that I presented is available online it does come with a lot of limitations it's based on interviews with civilian monitors and their own perceptions and some interviews with civil society organizations in an ideal world we would have done a lot more interviews and maybe a survey with the local populations to get a more broader view of how the local population at CC civilian monitors and what effect they had we can't do that or we couldn't do that because the conflict zones in Myanmar are extremely restricted in terms of access as simply not possible so these are findings that are based on the perceptions of the monitors and their narratives and that's very clearly stated in the published work questions especially thank you for coming so your question about how to integrate the killing of social leaders I think is a really great one because it helps me think or it helps us maybe interpret the finding that paramilitary rule is associated with informal and increased informal participation because it may be the case that precisely where paramilitary is governed in the past they had already eliminated social leaders that they found to be leftist and activist and so in those places it's now safe enough for people to participate in these informal ways without fearing retaliation it could be an interpretation of what we are finding there so thank you I think to understand that empirically we would need to do something where we are looking really geographically at the spread of the killing of social leaders for those of you who don't know who have been killed since the peace agreement was signed so we also I also don't like the post-conflict term but it's hard not to use it we do have additional measures in the survey but maybe that's something we can talk about with you at the coffee I don't want to keep everyone too much longer I think that's all thank you so much super interesting panel I'm sure that all of you who are more cognizant are also got very much out of this but I certainly enjoyed it a lot I mean like a director general seldom gets to have such wisdom in one floor I'm sorry to say there are some of my people sitting in the room but it's no I mean like this elevated debate and argumentation is always a pleasure so thank you all of you for very well presented papers and active conversation and I'm really sorry about the fact that we were not able to have more questions I don't think it reflects the state of democracy in Finland very well but there is always a coffee break so thank you very much