We're going to have to pay the stuff that we took from the employees and our taxes over and above their taxes and pay them to the institution. We also might have things that we need to include which are in benefits like a 401k plan health insurance which are often run through the payroll and are voluntary as opposed to mandatory withholdings.


Rather than grabbing it here in the fingers. I'm putting the wrist right over the top And then it's on here on that fat pad not on the bone, but it's definitely not in the fingers. Yeah Yeah, push it right into there push it right into there good and then There There you go You'll do one today just close from the chest.  Yeah Don't go out there. Yeah. Yeah, how'd you get better? You can go out there But you've never even never used them before it's that instability, you know It's at the beginning when we were doing the thing We went tools and lockers but everyone's going boring like it's it just shows you there Deep ring dips. Yeah So the transition is going from the top of a pull-up boss maintaining false grip And then pushing your chest between the rings to the bottom of that deep dip Easier it becomes when you go high from your pull and deep from your dip. That makes sense. Yeah Any football fans London must have loads of football fans. Yes. Yes Right, so what I like to imagine is I'm heading a football So sorry, let me band behind you So put it through hand on the inside through hand on the inside put your hand on top Don't tiny knots anything fancy at all. Just put your hand on top and don't let go It's not gonna go anywhere. Then I sit on the band I then come down into my full script position and just because we're low on the floor or below to the floor We're just gonna be in a bit of an else it position But I'm gonna go thumb to chest and then imagine I'm heading a football and take Advantage of the gap between them back.  Yes, number three in less than three minutes. I wish it won't be like this for flag The full script. Yeah, yeah, yeah, that's what I struggle because have you done it with the band? Yeah, you get through with the band. So I think what they call it in in bowling It's the golden turkey, isn't it? You don't get three strikes in a row. Well, we just had was it five? five ring muscle ups after a bang bang bang we just taught just those simple things like full script pull up nice and high Then doing the last part the dip but deep ring dips and then just piecing the transition together using the band And then it was like it feels like magic. I'm buzzing But five of that like it wasn't even like what like five people went bang bang bang gym I've been to a workshop before a few months ago didn't get it saw other people doing but he got it now So yeah, we're just buzzing


Hello everyone, my name is Luke McGinnis, I'm a PhD student at the University of Bristol Medical School. I'm sorry I couldn't attend this presentation live in the chat, it clashed with something else I had booked in, but today I'm going to talk about incorporating the results of risk-advice assessments into systematic reviews and evidence synthesis using a package I've been working on for the last couple of years called ROGVIS. Just to note that the new functionality in work I'm going to talk about today wouldn't have been possible without my amazing collaborators Alex and Randall, so just want to recognise their contributions at the very start. So risk-advice assessments are a key part of the systematic review process and I'll be very familiar to anyone who's done a systematic review or evidence synthesis exercise before. The ROGVIS package was designed to make these data more visually appealing, traditionally presented as tables, and so it's an all-package and web app to produce publication quality risk-advice figures. And so currently you can produce two types of plots, traffic light plots and summary bar plots, and I'm just going to show you a brief example of these now. So this is an example of a traffic light plot using the risk-advice two tool for randomized controlled trials. You have your studies presented down the left-hand side along with your domains of bias, so bias due to randomisation, intended intervention or deviations etc. along the top, and then an overall risk-advice judgment on the right-hand side. Acceptable levels of risk-advice here are high, some concerns are low, though that will vary from tool to tool, so if you're looking at observational studies that's slightly different. And another way to present this data is as a summary bar plot, and in this case it's not presenting study level data, it's summarizing the proportion of evidence that's at a specific risk-advice level in a specific domain. So it's just another way to show the same data. So while this is better than a table, it's still not ideal, and we've noticed as we've been reviewing how Robvis has been used in the literature that risk-advice assessments are regularly performed, but then very briefly discussed in the methods, and any tables or figures are relegated to supplementary material. And this isn't sufficient or it's not great because it's not enough to simply perform the assessments, create a figure, and discuss briefly. You really need to actively think about what this means for your meta-analysis. So are you putting studies at high risk-advice into your meta-analysis? And does the effect differ between studies at different risk-advice? So to answer these questions and make it easier for the reader to know what's going on, we think it's better to try and produce these paired risk-advice and forest plots. So as shown on the right-hand side, here you have your traditional forest plot and then an extra panel on the right-hand side, which shows you pretty much the traffic-like plot I demonstrated earlier. And it's also useful if you're going to go about doing this, to try and stratify your data set by risk-advice level to see if there's any difference in effect estimate between studies at different risk-advice. So the problem with this approach is what it all sounds great in theory, there's no tool that currently exists that allows you to create these figures easily. So this figure was taken from the BMJ paper on the new risk-advice tool for randomized controlled trials, but the figure was created by hand. So it's not very reproducible, it's not very our. So what I'm going to talk through today is how we use metaphor and logvis to create new functionality that allows users to make these paired forest plots very, very easily. So I'm going to talk you briefly through the two data sets we use in our example. The first one is a metaphor example data set. It's a set of 13 studies looking at the effectiveness of BCG vaccine against tuberculosis. And then similarly on the other side, we have risk-advice data or risk-advice assessments for each of those 13 studies. So just to note that these are fake risk-advice assessments, they're purely for illustrative purposes. And I'm saying nothing about the quality of the studies because I haven't looked at them myself. So following through a fairly standard approach to performing a meta-analysis, the first step is to use the raw count data from the BCG data set to create effect estimates and sampling variances for each study. And then pass that information to the metaphor or in a function to perform a meta-analysis and save the results from that as an object, in this case, res for results. So the next step normally is to visualize this using the metaphor forest function. And this is a very standard forest plot. So now that you've seen what the standard approach is, I'm going to walk you through the two ways in which a very small adjustment to this can add a lot of information. So the first one is by appending a risk-advice forest plot using the data set I just showed you containing your risk-advice assessments to this standard forest plot produced by metaphor. And the function is very creatively named rob append to forest because it is just a wrapper for the metaphor forest function and that appends this traffic light plot to the right-hand side. So you can already see that this is adding potentially useful information to the forest plot. So for example, for the heart and Sutherland study, the fourth one down, I was confident in that effect estimate given that it's at a high risk of bias overall and similarly for two other studies. So while this is an improvement, it's still not ideal because you're not grouping studies and you have no control really over the sub-route. So this is where the second function comes in, which is a bit more sophisticated and probably has the best name of any function I've worked on in any package rob blubberground. And again, it is just taking your results object from your risk-advice or from your meta-analysis and your risk-advice data set as standard and plugging it into this function. So it's really not much, it's not very onerous on the user to produce these plots once you have the data ready to go. So what this function does is it takes whatever meta-analytical model you've applied though for the moment is limited to metaphor and applies it to each, applies it across your studies grouped by risk-advice level. So what we mean here is these studies have been stratified by their overall risk-advice level and then you get a sub-group or a subtotal effect per group. So this function leans quite heavily on the amazing forest or package built by Randall Boyes and it's still in development so there's still a bit of work to do. For example, it's very hard to tell what's a study versus a summary effect because summary effects are usually denoted by diamonds, but we haven't worked that out yet. So who knows, potentially by the time you see this next week, I'll have worked out the last few details. Fingers crossed. But just to note you have a lot more flexibility than just stratifying by the overall risk of bias. So for example, if you were particularly interested in bias-duty randomization, which is domain one in this tool and you can specify that that's the column, that's the domain you want to stratify on and so you see here there's now a lot more studies at low risk of bias for that specific domain. So again, it's starting to get people thinking about actual study results and risk of bias results together rather than thinking them as two independent entities, which is what often happens. So a couple of take-home messages from our experience working on this and for users, the two key things is that risk of bias assessment should be presented alongside the corresponding result to make it easy for readers to know the quality of what's gone into the meta-analysis. And secondly, risk of bias level should be investigated as a sort of heterogeneity between studies. It's often not and it's often potentially one of the biggest reasons why you might get different effect estimates across studies. For developers, there's, we had a really good experience working with the maintainer of the Meta-4 package to build on their functionality and it's only due to their foresight when creating the forest plot function in Meta-4 that we were able to wrap it so easily for Rovvis. And on the flip side, if you're developing packages yourself, think about what information other users might need or other developers might need to build out more functionality around your package and what information they need to do that. And then finally, just to wrap up some further information about the tool in case anyone wants to go away and read some more. So we have a package website. We also have a shiny app and there's a very brief introductory paper on the tool which doesn't cover this new functionality because it's going to make quite a while ago now in research census methods, if you want to go away and have a look. And if you're interested in contributing to the package, we'd be really, really excited to have you. All of the collaborators, so Alex and Rangel, I both met on GitHub, I've never met them in person. So don't be afraid to get in contact and get involved. So either open an issue on the GitHub repository, tweet at me or send me an email. And then finally, once again, to thank my collaborators without whom the experience would have been much diminished. That's it from me. Thank you.


Denmark midfielder Christian Ericsson was rushed to hospital after collapse in, during his site Euro 2020 opening match was Finland and been given CPR on the pigeon Saturday, would sucker officials later say the player was stable and awake. Ericsson collapsed solidly in the 42nd minute of the match while running near the left torch line after a Denmark throw-in. As a harsh fell over the 16,000 strong crowd, his thin bait gathered around him and one appeared to stick his fingers in Ericsson's mouth to clear his airway or check he had not swallowed his tongue. As the medics arrived on the scene and pumped Ericsson's chest, his thin bait formed a ring around him. The Danish broadcaster DR cuts the live TV feed instead showing aerial footage of the stadium. The 29-year-old was taken to the nearby Riksø hospital left where he regained consciousness.


How I made this LaCrusse Talking Snowman. These designs were directly inspired by LaCrusse's Noelle collection. Are these not the cutest? And this snowman will be the star of the show. First, of course, is decorating the cookies and these designs all come from their collection. I also made some regular sugar cookies with Christmas sprinkles just to have a variety of cookies. And arguably the most important step here is testing out the product, you know, to make sure the cup works and the cookie tastes good enough to shoot. Now for the real action, to make sure that these cookies didn't move around on the plate, I used royal icing to glue them down to the plate once I placed them down. Now for the star cookie of the show, I iced the snowman little by little with royal icing until he came together. The eyes and mouth were icing transfers so that I can change them in and out. What you didn't see in this time lapse was me running back and forth to my laptop and the set to take a picture. Now for the editing that took me about three to four hours, that always takes me longer than I think it does. Making cookies talk is as hard as it seems. And this voice... Happy Holidays! That's me. And after 13 hours, we get this. And that's...


etiquette in Asia. If you want to teach English as a foreign language, it is important to make sure you are as well-prepared as you can possibly be before entering a classroom. It is equally important to have a good understanding of the country and culture you are hoping to make your home while you are teaching. Below, we look at some important aspects of etiquette in different countries in Asia. The teacher holds a position of respect in many Asian countries and is expected to behave in a way that reflects that respect. Dress for teachers tends to be formal and women should avoid wearing anything too revealing. Although many locals understand a foreign teacher's lack of understanding about local customs, taking the time to learn and show interest can make a real difference to your experience. China, manners and behavior. You should avoid pointing when you are speaking to another person and whistling is considered rude. When dining, it is polite to taste all the dishes that you are offered by your host. Placing your chopsticks upright in your bowl is similar to chopsticks, which are a symbol of death, so this should be avoided. Communication. Shaking hands is an appropriate greeting but you should wait for the Chinese person to offer their hand first. The most common form of greeting is a bow or a nod. South Korea, manners and behavior. As in many Asian countries, beckoning someone with your index finger is considered extremely rude.  When giving or receiving gifts, you should use your right hand with your left hand touching your right wrist or elbow. Communication. The traditional greeting in Korea is the bow, though this may also include a handshake. Touching your right forearm with your left hand when shaking hands is a sign of respect. Say goodbye with a bow when leaving social events. Japan, manners and behavior. Do not point at things and do not blow your nose in public.  Finishing all of the food on your plate or drink in your glass is a sign that you want some more. If you've had enough, leave something on your plate or in the glass. Communication. The bow is the common way of greeting in Japan with higher status people getting a deeper bow than others. Usually, a slight bow is acceptable as is a handshake. Japanese people tend not to use the word no. Expect less definite expressions such as maybe to actually mean no. Thailand. Manners and behavior. The head is of great importance in Thailand and you should never touch another person on the head. The feet are considered dirty and should not be pointed at anyone or used to move anything. Gift-giving is not as formal as in other parts of Asia, but bringing friends and colleagues gifts of food to share after you have been away is appreciated. Communication. Thai is greeted each other with a y placing the palms of both hands together with fingers extended. A smile in Thailand can mean anything from an apology to a sign that the person is embarrassed.


Hello everybody. In the last lecture you heard about the history of sanitation in Kerala and how decentralized salt based management was adopted here with the Nirmala Nagaram, Nirmala Bhavanam campaign. That is clean town, clean house campaign. Today we will look at two ways in which organic waste is being treated in the town. First we have Mr. Jay Kumar, the junior inspector in Alaprida municipality. He will explain how the municipality initially established the Watson parks and aerobic bins for management of the organic waste. His lecture will focus on the challenges which the municipality faced and the ways of overcoming it. We will also be witnessing the operation of the aerobic bins and Mr. Kunyumon who works at one of the Watson parks will illustrate how the technology works. After that, we move on to a biogas plant. In the previous lecture by Mr. Jay Raj, you already heard how residents were given major subsidies to install biogas plants in their homes. We will briefly look at workings of a plant through a demonstration by Ms. Bijee from the integrated 2011's half of the year, almost 60 years ago, the plant was built in Malini, which was built in Alaprida in the Sarvodavaram plant. It was built in a protest plant in the city of Malini. At that time, Dr. Thomas A. S. K. D. who was the head of the MLA of Alaprida, Dr. Thomas Isaac, who was the director of a newspaper called Narmala Bhavanan Narmala Nagaram. On the part of that, he came up with a plan to keep the Urabidamalai culture in his house. He came up with a plan to keep the Urabidamalai culture in his house. He came up with a plan to keep the Urabidamalai culture in his house as the first family in the entire Narmala Bhavanan Nagaram. He decided to keep the Urabidamalai culture in his house with 25% of the family. He managed to keep it in his house for at least 15% of the family. After that, he joined the family of 50%. It is a way to think about how to manage the people who live in the house, the people who live in the house, the people who live in the house, the people who come to the city, and the people who live in the house, and the people who live in the house. That is how we started our research on the aerobic bin that was developed in Tumbur. We came to think about where to start the aerobic bin first. In that time, in 2011-12, in Kerala, all the plants that were planted in Malini were closed. The plants that were planted in Malini were closed due to the public pressure. So, in a time when we were unable to provide a successful model in Kerala, it was very difficult to implement a new Malini system in Kerala. It was a small country in front of the S.T.V. School to establish aerobic compost units at the community level. In a time when we were unable to provide a successful model in Kerala, we established the S.T.V. School to establish an aerobic compost unit with three bins. Before we established the bin, we were at a point in Malini. We established the point of Mali Amos Kokadingam. Our plan to establish an aerobic compost unit is different from what we saw in the past. Our plan to establish an aerobic compost unit is different from what we saw in the past. They were working in a way that they wanted to do. That's why many people came to see what was happening here. That's how we established the aerobic compost unit in YMC. In the beginning, there were around 3-4 people from the village. That was around 10-20 people. This is the opening. This was the most notorious place in Alapuzha. When people from Alapuzha reached Alapuzha, it was in Alapuzha. It was very smelly. It was very difficult to walk along the road. That was the place. All the buildings were closed. That was the place where we converted to Watson Park. Watson Park is the place where the different models of the building were developed. It was a place where people could understand the ways of building in the community. That was the park. The aerobic, vermicompost, biogas, pipe compost, biobuil and all the other materials were implemented there. There were a lot of people who understood what this was. The people who were interested in it were very generous and had a lot of pictures. There was a lot of interest in people's attraction and self-respect. There were a lot of people who went to the city. They went to Watson Park. They got to know the traditional Malayalam culture. We were allowed to use the aerobic compost units in other places. From the beginning, 6 months later, 6 places were built. After that, 10 places were built. When we reached in 2019, 30 places were built. There were a lot of aerobic units in the city. In 2019, 30 units were built in the city. When we reached in 2019-20, there were 52 aerobic compost units in the city. 25 aerobic compost units were built. The distance of 1 km is 1 km from the next plant to the next plant. When we implemented the plan in 2019-20, we had to travel only 500 meters to reach the next plant. That's how we designed it. As I mentioned earlier, when we reached the next plant, there were a lot of people. In 2010, when Malayalam was established, the entire city of Malini and Kumbhara was built. That's why, in that time, the new way to reach the next plant was to make the city's population independent. We had to start planning in that time. Now, Malini and Kumbhara are the places where Malini and Kumbhara are located. We were able to create the aerobic compost units by creating the places where Malini and Kumbhara are located. The city's area is surrounded by the areas of Lebimala, PwD, Irreaction, etc. We were able to create the places where these plants are located. We were able to create the places where these plants are located. The upper part of the Malini and Kumbhara is very spiritual. People are talking about a modern Malini and Kumbhara plan. We were able to create the places where people can go down and do their work. With that plan, we were able to create the places where people can go down and do their work. But, what was happen is that when the plan was completed, everyone was thinking about a place for the people to go down. People who are not even born were thinking about a place for people to go down. It was in the heart of the city. They were thinking about several atmosphere of the city. In the city, more than 3,000 students are studying in the STB, more than 5,000 students are studying in the STC, or more than 10,000 people are studying in the Civilization, in the District Court, as well as in all the areas of the people, it is possible to get the aerobic compost units. In the Malin Samskan plant, no one is allowed to sit in a place where people are not allowed to sit. The way in which the people are allowed to sit in a place where people are not allowed to sit, is because of the many plants that are being planted in the area. The bestop of the European Compost Unit in the STC Court is in Alapair. The bestop is where the people are sitting. The Malin Samskan plant is being planted in the area where the bus is going from. It will be very successful by the age of 7. It is the speciality of Alapair. The Malin family is also very close to each other, so the Jai Bamaalinnis are taking the time to bring home the people of the plant. We have got a certain time for them. The time came from 6 in the morning to 12 in the evening. The time came from 6 in the evening to 10 in the morning. The most important time for them is when they are going to office. They are making a lot of effort in the way that the people of the plant are able to plant the Malin. The quality of the crop is also good, so the European Compost Unit in Alapair is very different. The bestop is the Himalayan soil in the 8th field. We plant the plants in an orange shade. We plant the plants in an orange shade, We are going to boil the rice. The rice is a kind of a stick instead of a stick. We are going to add 3 litres of water to the rice. We are going to take it into an orange can and put the rice in it. After the rice is cooked, we are going to keep the rice outside. We shouldn't make plastic out of plastic. If there is no plastic, we keep it outside. If there is no plastic, we keep it outside. We are going to keep only the plastic. We are going to put it in an orange can. Then we are going to add the rice to the rice. Then we are going to add the rice to it. We are going to add the rice to the rice. After that, we are going to cook it for 1.5 hours. We have to cook it for 110 days. This is because the soil is not dry. It doesn't have any water. We have to put more water to the rice. This is orange. This is a constant product. We can make it. When we plant it, it will be damaged. We can't do that. This is a 100-year-old plant. It is a waste. This is not growing. This plant is not growing. This is a plant. It is not growing. We can't do that. This plant is not growing. It is not growing. This plant is being used for growing. When we plant it, it will grow. If we want to grow it, we need to use Jalamese leaves. When we plant it, we need to use water instead of water. That is why we plant it. This is a plant. It has been 6 years since the last time. It has been 6.5 years since the biogas plant. This is the biogas plant of the 1MGV. This is the biogas plant that we are planting in Kothu. This is the biogas plant. We are wasting it. This is the way. We are getting the gas here in an hour. The servicing is here. The servicing will be done well. A small complaint will be there. The servicing will be done well. The biogas plant has a very good quality biogas plant. The maximum of the biogas plant is 7.5 kg of waste. We don't have that much waste in our homes. We have 2 kg of waste in a day. We have to use a lot of waste. We have to keep the green chillies well. We are getting the good quality biogas plant. We are getting the good quality biogas plant. We have kept the 1MGV plant in some places. This is a biogas plant that we need in our homes. We can use it comfortably in our homes. We have to keep a home that is like a family. We have waste in it. This is the 1MGV plant. We have substituted it. This is the biogas plant. We have to keep it as a complaint. We have to waste it as much as possible. That is the main problem. We have to think about the quality of the waste in a Malini culture. We have to use the same amount of waste. We have to use the same amount of waste. This is the Jalaam show. We have to use the same amount of waste to make the block. When we waste it, we don't have to use a lot of waste. If it doesn't have that much waste, we will not use it. When we use it, it won't be as good as the Jalaam. It will be stuck. That is why we have to use the same amount of waste. We have to look at the waste and ask the people who have it to use it. This is the 1MGV plant. We have to use the same amount of waste. We have to use the same amount of waste to make the block. We have to use the same amount of waste to make the block. We use the same amount of waste to make the block. If we use the same amount of waste we have to use the same amount of waste to make the block. We can do that in a short time. The waste will be gone soon. It won't be like that. We have to use the same amount of waste This is our plant. When we register the complaint of a certain plant, we try to do it in a couple of days. When we do it in a couple of days, we open the cup that we are looking for. This is our first complaint. When we look at it like this, we wonder what it is and what it is. We say it is nothing. We removed all the water from the butter jacket. After removing all the pockets, when we look at it, all the things that we cannot remove will be removed. When we remove it, we say it is not the only housework that is left. We say that it is not. We say it is for children. We have got plastic like plastic from plants. Even for our version of the roof, even for the children, we will not be able to remove the cover. We have removed the plastic like this from plants. After we have a plant, We are going to give them our contact number if there is any doubt. We will give them our office number. But some of them didn't call us. They didn't want to contact us. They called us and asked us if we could get a good complaint. Some of us are worried about getting a good complaint after spending so much money. Not everyone is like that. This is a success in Alipayur. Even though we are going to get complaint from some plants, we didn't know about this at first. It was all on the roadside in our city. It was a time when we got the plastic from the mountains. At the time, we started living in Uravidamalini. There were more than 75% of people living in the city. There were 75-80% of people living in the city. This is a good way to go.


Hi folks. Thanks. And so welcome to the Diaz Silent, Challenges in Teaching Django. My name is Caleb Smith. I've programmed in a handful of various languages including Python and more recently I'm doing a lot of Clojure development and I've studied music education and I recently taught as an adjunct professor for the School of Journalism at the University of North Carolina Chapel Hill. Thanks. Go Heels. Yeah. So we taught Django and that was a great time. So I wanted to take this talk to reflect on some of those ideas, some of the mistakes and successes that I had with figuring out how to teach this thing so that hopefully it will help you for when you're helping teach. Okay. So the first challenge, the Diaz Silent, right? Okay. That's kind of an easy one. So it is pronounced Django. Okay. Now what I think really is the challenge, we really can't possibly see this, right? Like no matter how big the projector is. Now this chart is actually made, somebody made it for Ruby on Rails. I pulled it from the Code Fellows blog. But this is all of the different skills involved, right? So, you know, replace Ruby with Python, replace Rails with Django and it's all the same, right? So this has what you can imagine, right? It has Unix command line and text editors or IDEs and version control and test-driven development and, you know, the list goes on, right? And this is only expanding from my perspective, right? So you see rich clients and all these things on the front end that are expanding. But the back end isn't always shrinking, right? Like isn't it hard to build a microservice effectively even if the back end is small, right? There's a lot involved. There's a lot of monitoring, right? And this is always changing. I don't think this chart, I mean this chart is only a year old. I don't think it even has, you know, search indexes or message cues or, you know, many of these other pieces that we're finding that we're adding to our back ends, right? So this is only growing. And so I think honestly this is what presents the biggest challenge to teaching Django or whatever the framework is, right? It's just there's a lot involved. So you kind of have to unpack it. So stepping back from that a little bit, what are sort of the core aspects of the design of Django and, you know, I want to say, like, what does that imply in terms of when you're teaching or learning Django? How does it help or how does it maybe present a challenge? So I think that Django maximizes for the 90% case very well, but it tries to be extensible for uncommon cases. Also there's, you know, a high emphasis on documentation and testing. There's sort of this batteries included approach. And you hear a lot configuration over convention, right? Or as stated in the Zen of Python, explicit is better than implicit, right? So I think that's overall like a good overview of Django's design. So what are sort of the benefits of these choices, right? Good documentation is a clear benefit. I think that Django has excellent topic level documentation. And I think it serves as a model for a lot of other free and open source software. And that's great. I think that the tutorial, the official tutorial is actually a great tutorial, but I think it's not a perfect intro, right? If you've ever set someone in front of it and said, learn Django, here's the official tutorial. It's kind of dense and meandering and it's not the best first tutorial. I would assert that the Django Girls tutorial is the best first tutorial. It's excellent. So thanks to the community for helping create that. It's amazing. Okay, so another piece is this easy access to quality libraries, right? With some of the other frameworks, smaller frameworks, Flask and such, there are great libraries there, right? But I think that the batteries included part of Django does mean that if you've helped someone install Django, they already have a lot of great libraries, right? So at first they probably don't need, let's say, caching. But in a few months, when they do, it's right there, right? And you kind of just help steer them there. So that's, I think, a benefit to batteries included. There's kind of less integration work, right? The JavaScript pieces are flexible because Django is pretty hands off with respect to JavaScript. And not all back end frameworks are. I'm often kind of surprised as a Django developer when I look at certain frameworks and see, you know, how much it gets into the front end, right? How much it kind of bleeds into it. And I think also Django makes reuse fairly simple in terms of you add a third party app and it can make a lot of assumptions about your project knowing that it's a Django project, right? So I can add a third party app and it knows that it has the access to the ORM, right? And it's not always true with some other choices. I think that the configuration over convention has this great benefit that, at least to me, it's always felt like an invitation to explore. It means that as a beginner, I'm not ready to learn all of the configuration. There's a lot, right? And there's different ways you can do layouts. But it means that when I'm ready to sort of tackle that, I can dig. And even if the rabbit hole gets kind of deep, I can go look and say, you know, what is static root? What does that do? What is it set to? And I can look it up, right? And I think if you privilege convention over configuration, that piece can get a little harder, right? It's kind of harder to know what the framework is doing. It's more implicit. Okay, so that said, what are some of the challenges, right? So there are some challenges. I think one of them is JavaScript integration. While I appreciate the way that Django is hands off, many beginners find it kind of challenging because there's not a lot of structure, right? If you come to Django, and you've done some front end, and you say, well, how do I do Ajax, right? Or how do I do these other pieces of sort of integration with Django? And it's a little bit open, right? So that's one challenge that I think falls out of that design. Another is that because it's batteries included, you often come across this, you know, I'm just making a small app. Do I really need all of Django, right? It comes with all these things. And to that, you know, I would say, well, just because you're not using it, right, it's fine, right?  But I think it does mean that you have to focus, right? You have to kind of focus your instruction when someone's starting with Django. You don't want to look at all of the pieces yet, right? If they only want to make a couple of views, they only need a couple models with one relation. There's a lot of other stuff in the sort of periphery of Django that maybe they don't really need to focus on yet. Okay. And lastly, I think that the configuration over convention, while it's what I prefer, some people find that frustrating, right? And with, if you privilege convention, it's a little more easily to sort of hand wave that away, right? And just say, well, this is the way the framework does it and don't worry about it. Some learners find that frustrating. I feel like I do, you know, I say, well, just show me how it works. I got to know how it works, right? But understand that some people appreciate that, right? And they say this allows me to focus on what I need to do because the convention is sort of taken care of. So there's kind of a trade off there's what I'm saying. And so bearing that in mind, you know, given these various challenges, what are some of the mistakes, right, that I've made or that you often see when people are teaching Django. Some of these mistakes are it's easy to teach everything at once, right? Because there are all these different pieces. And so it's important to kind of think about what's important first, right? You can, I think, learn Django effectively with not knowing a whole lot of Python just yet. And you learn a lot of Python along the way, right? Just like many of us learned JavaScript and didn't know what we were doing and just threw jQuery at stuff until after a while we finally learned the actual programming language, right? So that's okay. You don't have to work through an entire you know, series of Python books to just start with Django. The other piece is sort of related, you know, going too deep too soon, right? So if you get into the depths of like this is everything you'd ever want to know about SQL, right? Like you don't have to go there first, right? And then the other piece, I think this falls out of the privileging configuration because we're familiar with that and because it's an important part of a Django project there's often this early focus on like layout and boilerplate pieces and sort of the configuration end of things. And this always makes me hesitate. Like I kind of want to say, okay, here's a working project, here's a layout that works, here's all the configuration you're going to need, and let's leave it alone and like not touch, talk about it for a while, right? And then when it's relevant we'll look at that again and say here's the configuration and what it does, right? It's easy to just really get stuck in the details and say let's talk about exactly what static URL does, right, for an hour and you'll get people sort of lost very easily that way. Okay, so you know, sort of this grass is always a greener thing I guess. I kind of wanted to think about, you know, what are the other sort of popular web frameworks and how does their design differ from Django and how does that reflect in how you would teach those, right? How does it make them either easier or harder to teach in various ways? So firstly, Flask, you know, it's within the Python ecosystem, it's a good place to start. I think it is fair to say that it is easier to start with something that's just completely dead simple, right? Because they've really focused on we're going to make one file, we're going to make one function and it's just going to do a thing, right? And a lot of beginners are attracted to that. However, I would say that as you move along you start to structure out the thing and it eventually looks kind of like a Python project, right, in terms of the layout. And it is possible to use Django in this way, right? So if you look at Lightweight Django, the single file app that they have as an example of how to do a single file project in Django is shorter than the Flask app. It's actually less code. I don't think that less code is like the war anyone is trying to win with their framework necessarily, right? But just bearing that in mind, I think that one of the challenges it presents, that Flask presents, is that you do have a little more package integration work and you kind of have to pick the right packages, right? What ORM do I need? And what templating engine do I need? And if you're a programmer that's been doing this a while, you might really appreciate that design. I'm not saying that's a poor design at all. But if you're new, it's easy to see how that could be frustrating, right? It's like just give me the stuff I need. I don't know what these things do, right? Okay. So next node. Well, it's not really a framework. I know it's a runtime. But ExpressJS, you know, pick your framework. So I think, you know, one of the common sort of arguments you hear is that you're going to need to learn JavaScript on the front end. So you might as well use it on the back end. Less complexity, boom, we're done. And, okay, there is an argument there. However, I think that learning Python is not a serious barrier, right, to doing Django, right? Like I think Python is by design a much simpler language to learn, right? When you learn JavaScript, there are good pieces. But there's a whole lot of anti-patterns that you kind of have to learn about, right? So as a first language, it's a little dicey, right? And more important than that, though, I think is that this, the evented model that node gives you, while you may or may not, you know, appreciate it for your own sort of engineering team, as a learner, it means all of a sudden that I get stuck in callback hell and someone sees that and says, oh, what you need is promises. And someone else says, no, you need concurrent futures. And the learner says, what are you talking about, right? This is like way too advanced for what I'm trying to do, which is build just my first basic web app, right? And so hopefully I don't need to worry about concurrent futures for that, right? Okay. One thing that I think is very beneficial to node's approach is something that I see people stumble on a lot as they're learning Django, which is sort of marshalling JSON and that sort of thing, right? So typically you have these big objects as an internal representation on the server, you've got to figure out a way to serialize it and do kind of all this work. It is a much simpler mental model to just say I pulled JSON out of the database and I throw JSON across the wire and I'm done, right? Now you can decide for yourself if you think that's a good approach or not, right? But in terms of the mental model of learning it, I think that that's actually a lot simpler than what we typically do with Django. So Rails, as I was saying, it's kind of easier to hand wave away convention. There are certain benefits there and there are drawbacks. I think it's, there's more emphasis later on in sort of how do I work around Rails conventions when they don't help me? Which is kind of difficult, right? I think that Rails by design is naturally a bit more opaque. So in my opinion it's sort of less of an invitation to learn, which to me is kind of an important facet. But understand that some people that are beginning with Rails do appreciate that design. DHH sort of summarized what he thought the design of Rails was by this blog post where he says that Rails is omicase.  And that very much is I think the sort of design of Rails. The framework picks the conventions and they know you're just going to like it. And if you don't like it then you'll eventually acquire the taste for it. I mean that's kind of the argument I think they're trying to make. Okay so I'll bite. If that's true then I encourage you to think of all of these different things on a spectrum in terms of their design and in terms of what falls out of them, in terms of how you teach them. So if Rails is omicase, I think that node is fondue. So this is where you pick all the small little tiny ingredients and you pay extra because you get to be the one that dips it in the cheese. So what I mean is you pick all these small modules and then you get to tie them all together. And so as a teacher or learner there's a lot of time spent like how do I put this thing together. I've got this piece that handles multi-part of some uploads. How do I tie this in? That's the cheese. Flask is a la carte.  It's kind of further along in the spectrum. You do have to make those choices. I think one of the things that falls out of that is package management is still very important and you have to teach it early on. And I think it makes reuse a little harder. If I have some third-party app it might say I'm a Flask third-party app and I also need this RM and I need this templating engine. So I encourage you to think of Django as a lunch special. So if I order vegetarian special number seven and I know it comes with two burritos and an enchilada, what I'm thinking here is I get an RM, I get a templating engine by default. I know it comes with that lunch special. I don't know I have to know that much about how to make a burrito or what kind of enchilada I want. It's part of the lunch special. However when I'm ready, when I'm familiar with these things, and I'm ready to start kind of ordering things a la carte, I can make substitutions in the special. I want number seven, but I want a cheese enchilada instead. So I can add sequel alchemy to my Django app or I can add ginger templates or I can add this other piece. So I think that's where it falls on the spectrum. And lastly as I said, Rails is a macassee so this means that it's I think more opaque, a little harder to dig, but it does mean that you come in and it's kind of taken care of for you, so to speak.  I do want to encourage you to think each of these approaches has merit. You just kind of focus on different core aspects of what do you really need to teach or learn to excel at using that tool. Okay, so bearing all these tools in mind, it's important to think about like the different theories of learning and how this can help with effective teaching. And in the 20th century, the two kind of major schools are behaviorism and constructivism. And behaviorism is more in sort of early 20th century. And constructivism is very common across different disciplines these days. And one of the people that sort of brought this into the four in North America was Jerome Brunner. And in his theoretical framework, it's based on this theme that learners construct new ideas based on their existing knowledge, right? So within that, he talks about what he calls the spiral curriculum. And I think this is a very effective way to think about tackling a big topic like back-end programming. So in the constructivist viewpoint, the foundations of any subject can be taught to anybody at any stage if it's in the appropriate form. And with the spiral curriculum, you look at the bottom and this is a learner that's very new to whatever they're doing. As you move around the spiral, you're visiting different topics at a high level. So you're touching just a moment on this is what a SQL database does. And so on. As you move up, you revise their ideas, build on what they already know at that point. You add new content. And as the scope increases and they're learning more different kinds of things, they're moving up and the difficulty increases. And this is how they lead to mastery. So at the bottom, again, is high-level overview. And when you get to the top, that's when you're in the depth so let's talk about what a join is and let's talk about using containers and unicornals and crazy stuff. Okay. And within this framework, Brunner talks about or constructivism more broadly, talks about seeing the instructor's role as scaffolding. So instructors are sort of facilitators for learning. And one of the key ideas is that the learning environment is designed to support but also challenge learners' thinking. So sometimes one of the effective teaching techniques is to ask just the right question to help someone question some of their intuition or assumptions. And lastly with scaffolding, the teacher's role is also to sort of select kind of what's going to be focused on and sort of the scope of everything. And then the sequencing. And we'll talk about sequencing in just a moment. So constructivism, to give you kind of an overview of how this is used in CS, one of the CS education in general, one of the ways this is done is with logo. So how many of you in maybe fourth grade or so looked at logo and played with it a little bit? Right, sorry. But yeah, so it's this cool teaching tool. They kind of based the design on LISP. But what they did was they removed enough stuff to make it really appropriate for fourth grader. And it's something they can understand. It's a turtle. And the turtle represents state in the program. It's this visual representation. And there's multiple ways to do the same thing. So it demonstrates program state and interactive development and eventually you can get to loops and structured programming. But one of the things you might ask to help someone sort of question their own intuition would be, can the turtle move backward if you don't have a backward command? And the solution to that is you turn the angle, move forward and then turn the angle back. So with constructivism, you're sort of always thinking about what is their current level of knowledge and what are their current assumptions and how do I help them move past those and sort of question the ones that they need to. So one of your core skills as a teacher within using constructivism is cognitive modeling. And so modeling more broadly is where you just kind of do something to demonstrate how it's done. But cognitive modeling means showing how you're thinking about something. Which can be very challenging because it's internal. So one of the ways to do pair programming. And if you're helping someone learn in the process of pair programming, it's a bit different than working directly with a colleague and pair programming. And so when you pair program with someone that you're trying to mentor, I encourage you to think about verbalizing your thinking and sort of talk about the problem solving steps. Decompose the problem and sort of explain how you're thinking about each piece and invite them to kind of follow along or question you along the way. And this will help model for them the cognitive process that you're going through. So another piece is called sequencing. And really this is putting structuring instruction into a logical order. Starting with one thing that's sort of a simpler piece and then sort of slowly moving on. And you'll hear people argue about this kind of stuff sometimes and say things that I think are a little silly like they'll say you should really learn C before you learn a high level language. I don't think that's true. But sequencing more specifically is you want to decontextualize and then contextualize. So when you decontextualize you practice or learn a particular piece in isolation. So you might say let's look at the Django ORM in a Python shell and practice making different kinds of queries and looking at the data that we get back. And then contextualizing is then putting it back into a larger project or a larger piece. And you say okay seeing what we did with the ORM now let's do that in our view so that we get the data we need. And along the way with sequencing I encourage you to really think hard about the appropriate balance of structure and flexibility. And this can be a difficult balance. The more structured the learning it's harder for learners to construct meaning based on their own conceptual understanding and to then extend their meaning into other contexts. In other words if your instruction is incredibly structured it's harder for someone to leave that class workshop whatever and apply all those skills. However if you don't have enough structure there's not really any clear guidance. And people find that frustrating. Well just tell me what's the best practice? How do I do XYZ? So there's a balance there. To serve as sort of an example of inflexibility I don't mean Java specifically but it serves as an example of inflexibility in your instruction. Many of us have attended or witnessed sort of a freshman CS class where the approach is we're going to focus on a given language be it Java or it could be Python. And the approach is something like in this session we're going to learn everything you ever wanted to know about anonymous interclasses. So what's the problem with that? Well we have so much structure here and we're kind of going on each topic really deeply instead of following that spiral curriculum. And at this point the learner probably hasn't had an opportunity to see why an anonymous interclass would ever help them. So instead the constructive approach that I would recommend would be to start with just the basic concepts in isolations. You say these are strings, these are arrays and so on. And then as soon as you can contextualize them and say let's work on a simple project that just does this small thing. And what you'll find is that as they work on more projects and you increase the scope and you add more concepts as they gain mastery they will find these language features and things on their own. They'll eventually say oh you know I'm trying to do this and they'll explain their problem and you don't even need to say okay then we need to have a lecture about anonymous interclasses. All you have to say is it looks like you need the decorator pattern. Maybe Google that and look for interclasses and that's all you need to say. Now the learner has enough context and enough meaning that they can go research that and empower themselves and learn that. So in Python that might mean something more like decorators or generators or something like that. That's a fairly advanced concept. It's not that effective to say I'm going to tell you everything you want to know about the yield statement. But instead as they encounter that problem naturally I'm processing this huge Apache log and it can't fit in RAM. You say oh you need a generator. Then it'll fit in RAM. Go look it up and then help them if they need it. I think it's important to keep that flexibility going. People often ask about various prescriptions. I don't always honestly feel that I know enough to say these are the resources because there are so many great resources. It's really hard to order them too. A lot of them address different things but if I'm helping someone the order that I kind of think about is that I think the Django Girls tutorial again is the best first intro to Django. After that I think with some coaching the official Django tutorial is good again with some help. After that I think someone's ready to kind of do a small self-guided project on their own. Maybe just a couple views, a couple models and that sort of thing and encourage them to kind of look up the Django documentation and kind of do that. After that, TDD and Python by Henry Percival is a great book for them to sort of self-study and kind of moving on from there. By the time they're ready to collaborate with folks on a sort of moderate-sized project that's when it's really great. Let's get this person hired as a junior developer somewhere. Because then they're going to need to learn Git and GitHub and all these kinds of things and that's really hard to do by yourself. These are some of my ideas about some good learning tools and a roughly good order. But again, I kind of hesitate to say this is one size fits all and the end all be all of how you structure Django learning. I did want to specifically thank the creators, contributors of Django and also authors of documentation and tutorials and stuff because you make Django really a joy to teach. I've talked about what some of the challenges are and some of the pain points and some things that maybe could be better. But really teaching Django is great and it's because of many of you including community organizers. I also wanted to thank my mentors at Cactus that taught me Django. Thank you for listening. If there's time, we can do some Q&A. I think he's asking if people are learning at different rates. That's the idea, right? Okay, right. So the people that are ahead, it's kind of harder to catch the other people up I think is what he's saying. So yeah, I don't know. I feel like one of the things certainly is while I was at Cactus, the culture was always very much a mentoring culture of the people that were further ahead spending some time sort of helping. And so I don't know exactly where all that's coming from within your organization, but I would say it's good if you can sort of privilege the idea of lead developers and stuff taking some time to kind of help people. And maybe that's pair programming and maybe that is different kinds of things. I don't know. Maybe it's lunch talks. I don't know. But yeah, I think we want to sort of foster a community in which the people that are naturally sort of further ahead or something are willing and able to sort of take the time and sort of foster growth in other people. Sure, so she's asking if you're encouraging people to run into their own problems and then find the solution instead of being prescriptive and saying here's anonymous interclasses or whatever it is. Then how do you help them identify when that's a need? And one of the things that's kind of tricky with this is I think that there's a bit of internal, there has to be some motivation. So one of the issues is I've seen people before that they're doing some let's just say jQuery spaghetti and someone says you really need to do backbone. This is going to help you structure everything, but they're lost in the weeds of what they're doing and they're saying oh this works. This is fine. And so it is difficult sometimes, but I think that the way that I kind of try to do it is let them use the hammer for a little while to screw in a nail. Let them feel the pain a little bit because that is a really good teacher itself. Once they've gotten deep into whatever jQuery soup they've made, they can eventually say oh this is why you're trying to show me another way to do it. So I hope that addresses the question well. Feel free to ask me out in the hall and that sort of thing. Thank you.


This video will show you how to request archable materials for use in the UCLA Library Special Collections reading room. In the future, users can request these materials directly from the Finding Aid on the Online Archive of California, or the OAC. Until this integration, users must submit requests for these materials through the collection record in the Library Catalog UC Search. If you have trouble locating the Catalog record for a collection that has a Finding Aid in the OAC, please contact us for assistance. We'll be using the Golden State Mutual Collection as an example. After searching the OAC for the collection I'm interested in, I'll use the description information to identify which box or boxes I'd like to request. Next, I'll open a new tab or browser window and navigate to UC Library Search. I'm searching for the keywords in the collection title, Golden State Mutual Records, and I get the following results. If I'm having trouble finding the collection, I can further limit my search by location. LSC materials are held in two locations, Library Special Collections and the Southern Regional Library Facility, or SRLF. The majority of our archival holdings are located offsite in SRLF, so I'll choose this option to narrow down my search. I want to request a specific box, Box 29, so I'm selecting the filter icon on the Location Items screen. I'll select the drop-down menu under Volume and scroll through the boxes in numerical order until I locate and select my desired box. I can click on the Special Collections Request link for that box, and I'll be taken to the sign-in page for my LSC user account. Remember, this is separate from your library account. I can either sign into an existing account, or if I'm a new user, I can create a user account. I'll follow this request process for each item or box. In the future, I will be able to request multiple items simultaneously. The request form should be auto-populated with the catalog information for my selected box. I'm going to make sure I select the calendar icon at the bottom of the form and provide a date for my visit. All requests must be submitted two business days in advance of a visit to allow for offsite item retrieval. Remember that scheduling the delivery of page boxes is not an appointment, and we cannot guarantee seating in the reading room. LSC staff will process my request after I click the Submit Request button. We're here to help, so if you have trouble making a request, please contact LSC staff.