All right, we're back again with Anna Lena. Anna Lena, I'm sorry. Who is going to talk about finding magic in Python? She enjoys using Python for her personal projects and professionally. She has worked as an AI resident at Microsoft Research and is currently working as a machine learning engineer at Innowex in Germany. Where in Germany are you streaming from? I'm from Bonn. That's close to Cologne. I guess that's what most people know. Okay, over to you, Anna Lena. Yes, thanks a lot. Yeah, as you mentioned already, my name is Anna Lena and I'm really excited to be here today. And I want to use the next 45 minutes to take you on a magical journey through the world of Python. And I hope that you will enjoy it as much as I did when preparing this presentation. Just a few words about myself. I'm working as a machine learning engineer in a German company called Innowex, where I work on various projects surrounding data engineering and machine learning. In my free time, I'm working in a voluntary project called KI Marschule. KI is German for AI, where we teach kids in German schools about AI and machine learning. And I like working on personal projects and usually share those with the community either on GitHub or my personal webpage. And the two most popular repositories you might find interesting are Machine Learning Basics, which implements fundamental machine learning algorithms in plain Python. And then there's the Magical Universe, which is the basis of today's talk. So I started the Magical Universe a few years ago when I decided to participate in the 100 Days of Code Challenge. For those of you who don't know the challenge, it's about spending some time, even if it's only five minutes a day and writing some part of code. And I wanted to look into some of the Python concepts I'd been using for a while, but also some new ones. And because I absolutely love Harry Potter, I decided to work through the concepts using my own Magical Universe. And this really turned the coding challenge into a lot of fun. So let's jump right into it. In my opinion, every good talk needs a story. So today's presentation is based on a Magical Universe I created called The Tales of Castle Kilmere. And I want to present the main story and characters to you such that we can work with them throughout this presentation. And then the goal of the presentation would be to create the world of Castle Kilmere using Python. The main character of our universe is called Lizzie Spinster and she's a quiet clumsy girl of age 12 who loves to read and is therefore sticking her nose into books most of the time. Her best friend called Luke Berry is living next door and has a completely different personality.  One day, Lizzie's parents decide to send her to Castle Kilmere, a well-known magical boarding school with the hope that she will become more open-minded when being surrounded by many other children, but only after Luke's parents allow him to go to, Lizzie agrees. So Castle Kilmere is a really old school which has been around for centuries. No one really knows how old it is, but it is very well-known all around the world. The headmistress of Castle Kilmere is called Miranda Mirren. Although she's a very strict and stiff witch, she cares greatly about extracurricular activities and her favorite is the Club of Silly Walkers which she has presided over since she joined the school. Castle Kilmere is divided into different faculties. Each faculty is focused on a certain subject and is supervised by a professor and naturally all students have to take certain mandatory courses like spellcasting, but they are also free to choose courses from other faculties. And on the first day of school, Lizzie and Luke quickly learned that actually not all kids at school are nice, but some kids and their families have been associated with an evil magical society called the Dark Army where the Dark Army is led by a particularly dark wizard called Master Odon. Not many people who know how he looks like, but everyone knows his name because he has been pulling the strings behind the wheelings and dealings of the Dark Army for years. Yeah, so this gives us the main information we need for the presentation. There's lots more to discover in the project, but this will get us started. So we will start out with some simple Python features and then progressing to more advanced concepts in the end. To get started with the universe, we have to talk about classes first. Using classes in coding is tightly coupled to the concept of object-oriented programming. In this concept, programs are designed by creating objects that interact with each other. And where each object can contain attributes and methods. Object-oriented programming can be used to represent the structure of the real world. If you think about it, we have lots of classes actually in the real world and instances of these classes. For example, there would be the class person and then individual people like you and me who are instances of this person class. And so what is a class? Precisely, a class acts as a blueprint for an object. It describes how objects, so-called members of the class are structured and which attributes and methods they have. The syntax for creating an empty class is quite simple. So we start our universe with the class Castle Kilmer member. At the moment, the class does not contain any code. So we use the keyword pass as a placeholder in the body of the class. And yeah, if you don't know pass, pass can just be used to denote places where we will eventually put code. Right now, it allows us just to run this class without getting an error. Now, if we want to create an actual object and so-called instance of the class, we have to instantiate the class. And this is also very simple as we can see here in the second line of code. And we just call the class and assign the result to a variable called Kilmer member. Right now, this class is quite boring. It's not very useful. And we want to add some attributes and methods to make it more interesting. So each Castle Kilmer member will have a name, a birth year and a sex. So we know whether the member is male or female. And this information is included in the so-called DunderInit method. If you don't know what the word Dunder, it stands for double underscore and is typically used when talking about methods that start and end with two underscores. So this DunderInit method is called under the hood whenever you create a new instance of the class. So when creating a new member, for example, our headmistress Miranda Miren, this DunderInit method is called automatically with Miranda's name, her birth year and her sex. And the init method then returns an instance of the class which is assigned to a variable called Miranda. Notice that the first argument of the DunderInit method is called self. This points towards an instance of the class whenever the method is called. And also to the class, we have added another method called says that adds behavior. So in this case, it allows our Castle Kilmer member to say something. So when we call Miranda says hello my dear, Miranda would greet us. So these are notes about what I just said. And the DunderInit method is called under the hood when creating a new instance of the class. And as mentioned, its first argument is self, which points towards an instance of the class whenever the method is called. So the Castle Kilmer member class is nice, but of course we want many other classes in our universe like pupils, professors, ghosts, and so on. But these are all members of Castle Kilmer, right? So we can express this relationship using the concept of inheritance. Oh, sorry, I forgot to click on words. So inheritance allows us to create a new class that inherits all attributes and methods from the parent class. And the resulting child class can override methods and attributes of the parent class and it can add new functionality. Inheritance is great if you want to reduce duplicated code, but also if you want to show the semantic relations between objects. So let's use the concept of inheritance to create a pupil class. So this new class inherits from our Castle Kilmer member class that's up here. And in the DunderInit method, we use this method super to call the DunderInit method of the parent class of the Castle Kilmer member class. And this initializes name, birth year, and sex. Then we add new attributes, which are specific to our pupils. For example, they started school in a specific year and they might own a pet. And then there's another attribute here called elms, which stands for elementary level of magic and contains all the obligatory classes a pupil has to take. So when creating a new pupil, she won't have passed any elms yet, but of course this changes once he or she starts school and starts writing exams. Okay, so we can now create pupils. For example, our main character is a spinster. For this, we call the class with the necessary argument like name, birth year, start year, and so on. So let's sum up what we learned in this first section. Classes in Python implement the paradigm of object-oriented programming. They act as a blueprint for an object and describe what properties and behavior an object should have. We created the class Castle Kilmer member and used inheritance to create a child class pupil. And the child class inherits all methods and attributes from the parent, but can add new behavior and also override existing behavior. Then we talked about that inheritance is good for showing semantic relations and for avoiding duplicated code, but I have to say that you should be careful not to use too many layers or levels of inheritance because it adds complexity and can make your code harder to read. And we now have Castle Kilmer members and pupils, but we could equally use inheritance to create classes like a professor and a ghost class, but for now we will stick with the pupil class. Okay, so this concludes our first section. Now that we have some classes in our universe, I want to take a look at the different types of methods that we can add to a class. So a class can have three types of methods. There are instance methods, class methods and static methods. And we will start with the most common one, which are instance methods. Instance methods are the most common type of method. They take at least one parameter called self as an input, which points towards an instance of the class when the method is called. We just learned about that in the first section. An instance method can modify object state using the self parameter and class date indirectly when using the class or self.dunder class parameter. And we have seen an instance method already in our base class. So we have the says method, which takes the input self and a string of words, because the Kilmier member should say, and whenever the method is called on an object, the self parameter can be used to access attributes which were set in the dunder init method, like self.name. The next type of method we will look at are class methods. So class methods look similar to instance method in the sense that they take at least one parameter as an input. This parameter is however not self, but CLS, CLS for class, which points towards the class, not a particular object instance when the method is called. And therefore a class method can only modify class date, but not object state. But of course now if you change class date, this affects all objects. Okay, so another important thing to know about class methods is that we have to use the add class methods decorator when implementing a class method. And we will talk about decorators later on right now, just remember that you put an add class method on top of the function, and we will see an example in a second. And one important thing to note first is that the names of the variables self and CLS are only conventions, it's best to follow them, but in theory you could also give these variables different names. Okay, so let's take a look at what class methods are good for. One nice way to use class methods is as alternative constructors. If you haven't heard of this before, you may now think what is that supposed to mean? So in Python, we can have only one constructor per class, the dunder init method, but we can use class methods to write functions that allow us to create objects that are configured exactly the way we want them. And in this way they act as additional constructors, these class method. For example, we probably want to create the main characters of our magical universe. And when we would have to type the names and attributes every time, this would be very slow and annoying. So we can speed up the process by adding a few class methods. In this example, we have a class method for Lizzie our main character. And with this, we can create the class method very easily. By just calling pupil is the name of the class, Lizzie. And this returns a perfectly set up instance of our main character. And you can equally create class methods for other characters like Luke Berry or our headmasters Miranda Mirren. Okay, last type of methods, we will look at our static methods. They take neither self nor CLS as an input. Therefore they cannot modify object state nor class state. But yeah, so they are related to the class but they are still independent. And that's because they can only access data they are provided with. Static methods are a bit hard to understand, I think. So let's look at an example. If you remember the pupil class, we had this attribute called elms for elementary levels of magic. And this contained all the obligatory classes a student has to take. And if the class is passed or not, depends on the grade that is written. So Castle Kilmere has a fixed grading scheme ranging from excellent to horrible. And this is actually perfect material for a static method. So the static method we created here gets a grade as an input and then returns whether or not this grade means pass or fail. So you can see here that the method uses no class or instance state but has access only to the attributes it's provided with which is the grade it's given. And we can now call this method on different pupils. For example, we can see if Lizzie passed when she writes an O which stands for ordinary or with an H for horrible. And since the static method is not bound to a particular object instance, we can also call it directly on the class pupil. And one thing, another thing to note here is that we up here, we use our newly created class methods to create the instances. So this already saved writing some code with the names and the other attributes of the two characters. Okay, so you might now wonder why we don't use normal methods for these applications. So why do we really need class and static methods? A clear advantage of not only using instance methods but also class and static ones is that they allow a developer to communicate what intention she had in mind when implementing the method. For example, a static method expresses that the method is independent from the rest of the class. And another application for class methods would be that they can be used as alternative constructors. Okay, so this concludes our sections on the different types of methods that can be used in the class. We have learned that classes can have three types of methods. The most common one are instance methods and then there are also class and static methods. And one thing to note before we go on is that static methods or using them is quite controversial. So some people advise against them but personally I think that in some use cases they can be useful. Okay, so going on to the next section. The next topic I would like to cover is the default DIC class. The default DIC class is part of the collections module. This is actually a really cool module and I suggest that you check out the other features it offers. For our magical universe we will look at the default DIC class and how it's used. Okay, so let's say we want to extend the castle kill me member class with an underscore trades attribute. So we add a new attribute to the Dunder init method which contains the character trades of the castle kill me member and we further add function which allows us to add attributes to your character and then one which just nicely prints the trades. So with this functionality, we can add trades to Bromley or we haven't brought Bromley yet and Bromley is the school's caretaker. So he's a very kind man who is tidy-minded since he's a caretaker after all and but there's something he's not which is impatient. So we can account for this personality now by adding different trades to the Bromley instance. So this can be seen here. And what we now want to do is that we want to add a function which checks if the castle kill me member exhibits a certain character trade or not. And as the type annotations here show this function should receive should accept a string trade and return whether or not the character in question or the person in question exhibits this trade. So what we want for this function is to return false if it's certain trade cannot be found and one way to do this would be to use the dig.get function but another even more powerful way is to use the default class of the collections module. Let's first look at the dig.get function. This allows us to provide a default value which is returned if a requested key cannot be found. So if a member possesses a trade its value is retrieved from the underscore trades dictionary and returned if the key cannot be found we just return false. So this would be a simple solution but there's another one namely the default dig class. So the default dig class is a subclass of the general dictionary type in Python. It behaves like a normal dictionary in most cases but has one important difference namely that it accepts a callable in its constructor whose return value will be used if a requested key cannot be found. So when you access a missing key this key is created and initialized using the default factory. The basic usage is quite easy we import the default dig class from the collections module and instantiate it by providing a default factory. The default factory must be some callable which returns a value and the returned value will then be used if a requested key cannot be found. So our goal for the exhibit trade function was to return false as a default value. This means that if a requested key cannot be found which is a trade in our case the default dig should create an entry for that key with a value false. So how about providing false as the default factory when initializing the dictionary? So take a second to think about why this is not working. Okay, so we cannot provide false as a default factory because the default dig class requires a callable as an argument and the boolean false is not a callable but a boolean variable. So instead we have to define a function that returns false when called without arguments. Such a function can be seen here it simply returns false when being called. And with this we can create our default dig to providing it with the return false function as default factory. Alternatively you could also use a lambda expression here but since we haven't talked about lambda expressions I will stick to the normal function for now. So what is so great about default digs? The current behavior. So right now we saw that there's the dig.get function and the behavior of our default dig right now is quite boring. So why do we need default digs? The power of the default dig class arises from the fact that it can be provided with any kind of callable and this has several important use cases. One common problem that can be solved where the default dig class is grouping items in a collection. So let's say we have a list of some of the pets Casa Kimia pupils are allowed to bring to school and we want to group the pets by type. So that means having all the owls together the cats together and so on. And you can achieve this by providing the callable list as an argument to the default dig. So we create a default dig using list as a default factory. And then we loop through our list of pets and our first item in the list is cotton. That's the look of the owl of Luke, Lizzie's best friend. And when we try to find this key owl in the dictionary it won't be found. Since we try to find, so since we used list now as a default factory a new empty list will be created and inserted into the dictionary for the key owl. We then append the name which is cotton to the list and next time we look for the key owl it will already be contained in the dictionary. We can just append the new name to the list. So what do you think the output will be when looping through the resulting dictionary which we used for grouping the pets? Well, that's exactly what we wanted. We get a list of all the owls, a list of all the cats and so on. So there are more use cases out there. For example, you could use a default dig to count the number of pets of each type. And I don't have this in the slides right now but I'm confident that you will be able to solve it yourself. Okay, let's sum up what we learned. We started out with a common problem that often occurs when working with dictionaries namely accessing or modifying keys that don't exist. We learned that this can be solved using the collections.defaultdict class. A defaultdict behaves nearly identical to a regular Python dictionary with a subtle but important difference namely that it accepts a callable and squad structure whose return value will be used if a requested key cannot be found. And this can be useful in several situations. For example, when you want to group objects like we grouped our pets. Okay, so let's continue our journey with a concept probably most of you have heard of, decorators. Decorators are quite advanced and can be a bit tricky to understand in the beginning. So don't worry if you don't fully understand how they work immediately. The more you use them and read about them the easier or clearer the concept becomes. So what is a decorator? In simple terms, a decorator is a callable that takes a callable as an input and returns a callable. What is a callable? So typically when we're talking about callables we mean functions. So for simplicity, I will stick to functions from now on but you could equally decorate any other callable like a callable class for example. So decorators allow us to extend or modify the behavior of a callable and of the callable that they take as an input. And they do that without permanently modifying this input function or class itself. The behavior of the class is only changed, sorry, of the method and this input function is changed only when it's decorated. So this quines sounds quite abstract. So let's look at some code. The simplest decorator would be one that just returns its input function. Right now this useless decorator is not doing anything. It receives a function and returns that function without modifying the behavior in any way. Now we can apply a decorator to a function by wrapping it. We, so given our simple useless decorator the one that is just returning the input function we can apply it to our say hello function up here by providing say hello as an input and assigning the result to the variable say hello again. This way of applying decorators is quite cumbersome. As you can see here, we had to type say hello twice here and here. So the more common way of applying decorators is to use this add decorator syntax which is simply syntactic sugar that prevents having to write say hello multiple times in our case. So we could achieve the same behavior as before by just writing add useless decorator on top of our say hello function. This is the same as when you create a class method or a static method with the add class or add static method decorator. So right now the output of the say hello function is not changed at all since our useless decorators not doing anything. So let's see how we can extend and modify the behavior of the wrapped function. So when we want to modify the behavior our decorator must be a little more complex. Specifically, it has to define a new function called the wrapper function. And this new wrapper function is then used to wrap the input function and modify its behavior. An example might look like this. So let's go through this step by step. We have our decorator function which is called goodbye. It accepts a function as an input and then defines this wrapper function internally. The wrapper function calls the given input function and stores the result in a variable called original output. It then appends the string goodbye have a good day to the original output and returns this new output. And then the decorator just returns the wrapper function. So when we apply this new decorator to our say hello function, our output should have changed. So what do you think it is? So the output of this print statement. I hope that's what you expected. So when our say hello function is decorated with a goodbye decorator, the output changes to hey there which is the original input. And after that goodbye have a good day which is the output or the string added by the wrapper function. So this was a very simple function now without any input arguments, but how do we decorate a function that has input arguments since we also want to be able to decorate these kinds of functions. For example, we might have a function that allows a person to talk to another person such that Lizzie could say hello to Luke. So how could we decorate this function? What we have to make sure is that our goodbye wrapper function can somewhat, there we are, can somewhat process the arguments, person and words. And this is actually not too hard. We simply use the arcs and quarks variables to collect all positional and keyword arguments. And then forward them to the original input function. So our code looks similar to the previous version. The only difference is that the wrapper function now collects all positional arguments in the arcs variable and our keyword arguments in the quarks variable. And these are then forwarded to the input function. The rest of the code state the same. And yeah, take a guess now at how the output of the print statement say words Lizzie, hey Luke, will look like. Okay, so this works very well. So we can now decorate functions with arbitrary input arguments. And we won't dig deeper into the topic of decorators now. There's lots more to discover and it would be a whole different talk to just go into the magic that can be done with decorators. So as a last piece of information, I want to ask you why you think, or what do you think why decorators are called decorators? I think that's a nice memory hook if you can't remember what they're doing. So think about that for a moment. So actually we call them decorators because they decorate other functions and allow us to run code before and after the wrapped function is executed without permanently modifying its behavior. And this closes our section on decorator, decorators. So as a quick summary, we learned that decorators allow us to modify the behavior of a function. We also learned that the decorated function only changes its behavior when it's decorated. And this could be or can be very useful. For example, we could implement a decorator that determines how much time it takes for our code to run. And when using this decorator during development, we can time various parts of our code base but remove the decorator again once we have we are done with all the optimization. Yeah, the last point is that decorators are a really complex topic and that this only scratched the surface of this topic. Okay, going on, we have abstract based classes. So we created several classes and methods in the past 30 minutes. We have a parent class called CastleCumieMember, several child classes. And as we learned in the beginning, the child classes inherit all methods from the parent class, but there are other more advanced applications where simple inheritance is not sufficient. And this is where abstract based classes come into play. Abstract based classes are useful if your application involves a hierarchy of classes. In particular, in this hierarchy, it should be impossible to instantiate the base class. All subclasses should have a common base class and all subclasses should implement certain methods defined in the base class. So before jumping to further explanations, let's look at an example. In our magical universe, we have lots of different types of spells. For example, a spell could be a charm or a curse. And this makes the spell class a great application for Python's ABC module. To use an abstract based class, we import Python's ABC module and let our class inherit from the ABC class. And then we flag the methods that must be implemented by all subclasses with the decorator at abstract method. So a spell should have a name, an incantation and a certain effect. And also it will have a defining feature and a cast method. Notice that these implementations are abstract ones and not concrete.  We can introspect an ABC to find out what abstract methods it has. And this is especially useful if the ABC you're working with is not your own. So let's test if we can instantiate the base class spell using a simple spell called stuporis raziato. For this, we call the spell class with a name, an incantation and an effect. So this actually doesn't work. It gives us a type error, which is exactly what we want. Since for an ABC, it should not be possible to instantiate the base class. So let's continue with creating a subclass. So we create the class charm, which might look like this. It inherits from the base class spell and naturally they're easy and difficult charms. So we will add two new attributes, difficulty and minimum here, where this specifies at what year students are able or allowed to cast the charm in question. And we add an implementation of the abstract method cast. So let's try to instantiate this charm class, again, using stuporis raziato as an example. Okay, so we saw already that we cannot instantiate our base class spell, but when we try to instantiate our subclass charm, it doesn't work either. So why do you think that's the case? So this instantiation statement raises an error at instantiation time because we forgot to implement the defining feature method. And this highlights a big advantage of using abstract base classes. Let's say we have a subclass that doesn't implement all methods required by the base class. When not using abstract base classes, we notice this only by getting an error quite late, when namely when we call the method that is missing. With abstract base classes, we get an error already at instantiation time. So for proper implementation of the charm class, we would have to add the defining feature method. So this implementation now contains everything that is required, an implementation of defining feature and the cast method. So we should now be able to instantiate the charm class, which works well, as you can see here. Okay, so note, or an important thing to notice that ABCs only check for the presence of methods, not if they are properly implemented. So in our charm class, we could implement both required methods by just putting pass in the body and no logic at all. And when you notice yourself writing abstract methods or not implementing them properly in several of your child classes, this is probably a sign that this method should not be an abstract method. Let's summarize what we learned. ABCs allow us to formalize the relationship between a parent and a subclass and they serve three purposes. First, they let the parent class communicate that subclasses should have a certain structure. Second, they allow classes to identify themselves as having the required structure so that is meeting the demanded requirements. And third, they enforce that a subclass meets the requirements, otherwise throwing an error at an exception at instantiation time. So lastly, I want to mention that also similar to decorators, ABCs are a huge topic and that you have seen now only a small part of it. But nevertheless, I hope that you have an idea now how they work and why they can be useful. Okay, so our last section is coming up, which is about named tuples. So in this section, we will look at named tuples and before we do that, we should review what a tuple is. So in Python, a tuple is a simple data structure that can be used for grouping arbitrary objects. It's important to know that tuples are immutable. That means that once a tuple has been created, it cannot be changed anymore. So we already use tuples in our magical universe. For example, we defined the pet attribute of the pupil class to be a tuple and each tuple has two fields, the name of the pet and the type. So Ramses, Lizzie's cat would be an example of such a pet. Each field of this tuple can be accessed using its integer index. For example, we can get the name of Lizzie's pet by looking at the value at index zero. As I already mentioned, tuples are immutable. So once we create a tuple, we cannot change it anymore. And you can see this in the example on the slide. When we try to change the name of Lizzie's pet to Twiggles, we get a type error that tells us that we cannot assign new values to the items of a tuple. So what are named tuples? As the name suggests, they are a variation of rather an extension of plain tuples. In particular, they allow us to name the fields of the tuple, which makes it easier to access the individual fields and it makes our code more readable. So in the plain tuple example, we were only able to access the values stored in the tuple by using integer indices like Lizzie's pet at position zero, which is fine when not having too many fields but becomes messy when having three or more fields in the tuple. So how can we create a tuple and name tuple? This is quite easy. There are two kinds of name tuples. The collections.name tuple class and typing.name tuple. And due to lack of time, we will only look into typing.name tuple right now. So this use a very easy syntax and allows us to specify the type of each field and it makes it easy to add methods to the class. An implementation of the pet class as a name tuple would look as follows. Our fields stay the same. Each pet has a name and a type and these are both strings. And when implementing typing.name tuple, we actually get some methods for free like we can print instances and get a nice representation of them. We can now access the fields by using either field names or the indices, which is especially helpful and it makes our code more readable. So let's think about our magical universe. We don't want our pupils, professors or ghosts to be immutable. For example, the pet of a pupil might change but a suitable group of people for an immutable class are the dark army members. And why is that the case? Because once you become a member of the dark army, there is actually no way back. So each dark army member will have a name and a birth year and we can further specify that master owner is the leader of the dark army. And now we can easily create members of the dark army. For example, Keras Fulford, who's one dreaded member and we can access the leader master odon either here on the Keras instance. So for example, what you can also see here is that you still cannot change attributes like the name and we made sure of this by seeing that we get an attribute error when we try to change Keras name into Mortimer. Okay, so we're nearly done. Quick summary, let's recap what we learned. Name tuples are an extension of plain tuples that present a shortcut for creating immutable classes but they are not the only way. So starting from Python 3.7, you can also use data classes for this but we don't have time left to talk about data classes. So what I want to give you for the end or when finishing this talk is that the topics that we now discussed are only a small portion of the features and topics that I worked on in the magical universe. So if you go and check out the GitHub repository or the corresponding blog posts, there are lots of more cool applications and Python features implemented using the universe like for example, data classes but also custom exception classes and lots of other things. And yeah, thanks a lot for listening. I hope you enjoyed our quick journey through this magical universe today. And the most important thing I want you to remember is that learning can actually be a lot of fun if you find a topic you're interested or passionate about like for me, Harry Potter but for you maybe something completely different. Thank you, Anna-Lina for that very fun talk. Although the time is up but there is a brief question that we can take. So let me just, what age are the students you're teaching these Python concepts to and do they have previous coding experience? Yeah, okay. So they don't need any previous coding experience. I guess what you're talking about now is this Kaim Marchule AI Go school. I talked about briefly in the beginning and there the kids at the moment are between the ninth and 12th grade in German schools but we are actually extending also our portfolio of courses to younger kids but then you need a completely different approach since for AI you need some mathematical background knowledge and that's what we are still using at the moment but yeah, you can definitely participate in the courses if you don't have any coding experience or knowledge about AI and coding. All right, that's very exciting and thank you for the great talk. You can connect with the audience in the breakout of Diverse Room. Definitely, I will do that. See you there, thanks. See you.


So we have the factory driver seat, which is power, on the scale right now, and this seat is exactly about 10, about 10 and a half pounds heavier than the passenger seat. On the scale, we got 60.44 pounds. So definitely heavier than the KERKI combination. We got both KERKI seats installed in the truck, passenger, and driver's side. And they look awesome. We got some new stuff across by it, we're going to be putting in some KERKI racing seats. These jokers are super light, the seat itself weighs about 12 pounds. So after we get these things installed, we're going to do a weight comparison with the factory seats and the KERKI seats completely installed. We got some other accessories over here that we're going to have to use to install them. We got some seat brackets from Corvo Racing, and those brackets are going to let me be able to slide these seats forward and backwards, basically like the factory seats. And then we got some brackets, and of course we got the seat covers to go over these things. This isn't like a bolt-on, simple kind of dilly. This is going to be, we're going to have to make it work kind of thing. So I got a bunch of stuff, we're hoping between everything I got, we can make them work and make them look pretty good. So we're going to kind of go at it step by step, and once it's done, hopefully I like it, and they look good, and then it'll give you an idea of what you need to do if you want to try to tackle the same thing we're doing here today.  So let's get to it. All right guys, so we're back here with the seats. This is the passenger side Corvo popular seat company, makes lots of seats and accessories. This is their seat track for the Ram trucks. This is fully welded and assembled already, and this is a drop-in bolt-in deal, and this will give you manual adjustable sliding seat tracks, and it's hard to do it with one hand. But anyway, you get the idea, you lift that up, and the seat will move forward and backwards, and then your seat belt buckle will bolt to the side here, and this is a drop-in seat track assembly for a Ram truck. Now what we're going to do is use those instead of the factory ones because I'm going to actually try to sell these seats, that's the factory passenger seat right here. I'm going to sell those or I'm going to give them to my son for his project, which is Sub-Zero Dakota, so we might put them in his truck, I'm not sure yet, but obviously passenger seats out, and I'm going to grab this Corvo seat track so you can see how well it fits in, drops in real nice. Bear with me, I'm trying to do this all one-handed right now. So drop it down here, there we go. That's what it looks like, that's the seat track assembly, basically it's pretty much the same height as the factory one. As you can see, it fits the floor very nice, so you'll be able to use your factory hardware to bolt it in with, and very, very nice. So basically these guys right here, that's the part number for the passenger side. These will more or less give you a lot of options with trying to bolt on aftermarket seats. You may have to make your own brackets on top of them, which we're going to be talking about that next here in a second, of how we're going to mount these curky seats on top of here. But that's the way I want to go, because I still want to be able to adjust my seat forward and backwards, and have some adjustability, definitely nice. I don't want to hard mount, you know, fix, bolt them where they can't move. To me, that just doesn't sound fun, it sounds like every time I need to do something in the truck, I'll be on bolting seats constantly, and that just don't sound fun. So we went with these, so we can have some adjustability. And again, I could have used the factory seat tracks, and probably did the same thing, but I did not because, like I said, I'm either going to sell these seats, because RT seats are actually worth quite a bit of money, a lot of people want the RT seats, or I'm going to give them to my son to put in his Dakota. Not really sure what we're going to do yet, but yeah, they're either going to go for sell or we're going to try to make them fit in his Dakota. So we're going to grab the seat track here again, go over here to the drawing board, and there's the curky seat, real nice dilly. So the next thing up, my buddy is over here, he's marking these seats, the square tubing that we're about to cut down, and what we're going to do, give you an idea real quick. So I think I'm going to use this. This is actually square tubing, this is aluminum, this stuff's very light, very strong. I also got some steel square tubing, but this is a little bit heavier, so we're trying to probably not use this, but this would work just as well. What we're going to do is we're going to cut these down, and we're going to bolt these on top of the seat track here where these factory holes are. We're going to bolt these square tubing bars across the top of the seats, and we're about to cut them because we're actually going to have them cut about flush right here on both sides, so we're going to cut this side off a little bit. And then we'll get these bolted down to the seat track, one across the front here, and then one across the back, and then that's going to allow us to bolt on the curky seat bracket plates that's going to look something like this right here. Once it's all done, those will bolt on like that, and then the side of these plate brackets from curky actually bolt to the seat themselves, and that's kind of how it's going to work. So yeah, it's going to look a little funky right now until we get it all done, but stay tuned and moving on to the next step, we're going to get these cleaned up, get them bolted onto the seat track and move forward. Alright guys, so we are moving right along here, and we got our square tubing mounted to our seat tracks permanently. They are bolted in, and as you can see, we've got the bolts inside here, and those are bolted to the actual seat tracks we've got from Corbeau Racing, and now we are working on mounting the curky seat brackets to that square tubing. So as you see, we've got it pretty much set up here, we are going to actually make our own hole in these brackets on the corner of each one of the curky brackets here and drill a hole through our square tubing, through the bracket so we can put some bolts in and bolt these brackets down, and then when we get the seat up here, the side of these brackets actually bolt through the side of the seat is how this works. So that's where we're at right now, that's what it's going to look like when we get those bolted on, just kind of go around here so you get an idea. And this is the back, this is the rear of the seat, this is where our seat belt buckle is going to bolt to right here, and that's where we're at. So we're going to get this stuff bolted down real quick, and then we're going to grab our curky seat, put it up here, and then mark the holes in the side of these brackets, and then that's where the fun part is going to be as far as adjusting how much we want our seat laid back or forward per se. So we've got to find the seat angle that we like, put it in there, try it out, see if we like it, if not then we'll have to go up and down on these holes here until we figure out where we want our seat laying back, so that's it. Alright guys, we're back, we have the curky brackets mounted to our aluminum tubing right here. So this is all one piece now, everything's bolted together one piece, and not sure what this weighs yet, but it's pretty light still. Definitely doesn't weigh much, and once we get the seat on, and this is all completely one assembly, just like our factory seat over there in the corner, we're going to weigh both setups. So we're going to weigh that seat just like it is, and then we're going to weigh our curky setup that we just put together with the seat on it, see what the comparison is. So there we go, moving on, we're going to get our seat bolted on right now. Alright, Mopar fam, so as you can see we're moving right along, we have the curky seat briefly sitting up here on our bracket system. We have one bolt on each side going into the actual seat, that way we can still pivot the seat as you see up and down right here to determine how much we want to adjust our seat, and we do that right here, so once we find out what our sweet spot is, we will drill holes through the seat right here in this bracket, and then that will be our adjustment point for our pitch back and forwards, but right now we're pretty close. What we're going to do is take the seat now, just like it is, we're going to briefly put it inside a frostbite, and then bolt it down, and then I'm going to get in there and sit and just kind of find out where exactly we want to keep it adjusted at, and then bolt it down completely, and then we'll be putting the cover on it, and it should look pretty cool. Yeah, moving right along, that is it. So far this is turning out to work pretty good, everything's going together pretty well with the supplies I got, so there we go. Alright Mopar fam, check out that. We've got it sitting in there right now, a quirky seat actually fits really well in here, fits really good. It's about the same height as the factory seats, slightly taller by about maybe three inches up here, but fits pretty well. The Corbeau brackets fit perfect, as you can see I don't have it completely bolted in, I just got two bolts hand threaded right here, but yeah, fits pretty good. We're about to sit in it right now and try to figure out exactly how much we want to rake it back or forward real quick. Alright Mopar fam, we're back and this seat is completely done now, we just got to put the seat cover on, and just wanted to give you a quick little run down where I bolted it, so I used the bolt here on the lower three holes, and a bolt back here, that's my pivot bolt, so if I was a loosen this bolt, take this bolt out completely, I can rock the seat back and forward, and then these three holes is my adjustment that I'm using to get my seat angle, and from testing it out, it appears that I like this hole right here, so using this top hole on the lower three holes of the turkey bracket has my seat raked back, I don't know how many degrees you would call that, but it's pretty comfortable when it's in the truck, that's where we tested it out, that's what I came up with, so this is the passenger side, we're going to put the cover on it real quick, let you guys see it, and then we're going to bolt it in the truck, and then we'll be completely done on the passenger side. Alright Mopar fam, so we are done with the passenger seat, that's the turkey cover installed, looks pretty dang awesome, fits really good, fits pretty tight, it's a snap-on deal, just has little buttons, it snaps around the seat, the seat actually has decent cushion for being a race seat, it's got nice little foam patches in here, pretty nice spots for your harness, which I think we're going to end up getting some harnesses for Frostbite, now that we got some decent seats, so hell yeah, we're about to put it in, bolt it in and see what it looks like inside the truck. Alright Mopar fam, we got the passenger seat completely in, I got my buddy sitting in the seat right now testing it out, and seat belt fits just perfect, seat looks good in there, I mean it's really comfortable, we both like it, the seat is adjustable, and that's why I decided to go this method, he can scoot it all the way up if you check it out, that's all the way back, you got lots of adjustment there, lots of adjustment forward, and with that adjustment you can still get to the back, back here, which is nice, but yeah works good, complete bolt on deal, the factory seat belt fits good, granted we're going to probably get some harnesses and stuff, and then for these square tubings, we're going to try to find some kind of like table plugs, I've seen like little black plugs that you can put in to cap these bars off, and that would clean it up a lot right there and look pretty good, you could also paint these things if you wanted to, I think I'm just going to cap them off, because you really, you don't really see them anyway unless the door is open, but looks really good, he's going to hop out so he can get a better look of the actual seat, and it's not too bad to get in and out of either, the curkey seat covers match pretty good in the truck, they look good, definitely stoked, so now we're on to the driver side, there you go, complete bolt on deal, very nice, works good, about the only bad part of this thing, and it's not really bad, is the factory seat buckle does bolt to this new seat frame, but there's really no way to hold this buckle up, so when you let go of it it kind of drops down here, so it does make buckling up a little bit more difficult, so I may have to figure out a way to hold this buckle up where we want it, but all in all, complete bolt on deal to have some really light racing seats, that pretty much fits like factory, so there you go, on to the driver side, which that seat should be a little heavier because it's power seat, so we're going to repeat the process, do the same thing over there, hell yeah, here we go, alright guys, we've got to weigh the curkey setup, this is with everything installed, the whole entire seat bottom bracket, the seat covers on, we have the scale set up with a little bar here to balance the seat on, and we have hit the tear button so the scale zeroes out, and it's only gonna weigh the actual seat, so here we go, takes a second here to get this thing balanced just right, looks like we're good, make sure nothing's touching, alright it's free floating on the scale, the whole seat with the cover, with the adjustable sliding frame, and my two inch square aluminum brackets, and the total is 3270, heck yeah guys, so without the cover, we actually weighed it without the cover and it was about 30 pounds for the entire setup, so with the cover you're about 32 pounds, so we have the factory driver seat, which is power on the scale right now, and this seat is exactly about ten, about ten and a half pounds heavier than the passenger seat, on the scale we have sixty point four four pounds, so definitely pretty, definitely heavier than the curkey combination, so going from the driver's seat to a curkey seat, you're gonna drop 30 pounds, and then on the passenger side, that's the passenger seat which is not power, you're gonna drop pretty much about 20 pounds on that setup, the passenger seat weighed 50 pounds, driver's seat weighs 60 pounds, there it is, so hell yeah we're gonna keep on going, get this other curkey seat done, alright Mo Par Fam, we are done with the seat project, we got both curkey seats installed in the truck, passenger and driver's side, that's what it looks like in the truck, I got this one raked up just a little bit for my, for my personal preference, you know for racing and everything, I don't want to have it too raked back, the passenger side I got raked back just a little bit more for comfort, but they both fit in there nice, look good, pretty easy drop-in, we did this in one day, I don't know how long we got in it, about Ryan, he's saying four hours, so not as much as I figured, you know to drill, cut metal, and basically figure out how to make it all work on the go, so we got four hours in it, not bad at all, like I said pretty much a straight bolt-on dill, no welding necessary, you do have to drill and cut, so if you got a sawzall or a chop saw or something like that and a drill and a handful of bolts, you'll be good to go, link to the seats and the Corbeau seat track brackets that I purchased, all that will be in the description below, everything will be in the description below except for the aluminum two inch square tubing, I had some of this laying around already, so it's up to you, you could use two inch square steel tubing if you want, just note it will be a little heavier, the aluminum is much lighter, so I'm thankful I had some laying around, but you're gonna either, you're gonna need to find you a stick of two inch square tubing or aluminum tubing, you can probably find some at Home Depot or your local steel mart or something like that, that'll be the only thing you'll have to track down yourself, other than that, very very basic bolt-on dill, just takes a little bit of time, like I said we got four hours in it with two guys, that half ass knows what they're doing sometimes, but hell yeah that's it guys, hell yeah guys there you go, both curvy seats mounted in the truck again like I said these are mounted on manual seat tracks, I'll show you, you pull up, forward, backwards, so you can fit a short dude in here or you know a taller guy or whatever, very adjustable and again on the brackets here you can remove a bolt and adjust your seat back or forwards by just moving the bolts around a little bit, so pretty much a straightforward deal again I love it, they fit real nice, these curvy seats come up pretty high and man I'm telling you they're very comfortable, it's you kind of feel like you're just being hugged, they're really snug, it cradles you really good and believe it or not a lot of people would think you're just sitting on the like a metal pan and technically you are, but the covers they give you and the way they're designed they are actually very very comfortable, I actually think these are more comfortable than my factory RT seats, they are very comfortable it's all I can say, so that'll do it for today as always guys stay safe out there, don't forget hit that subscribe button, stay tuned for some of the cool stuff coming on the channel, we'll see you on the next one.


Okay, thank you all for joining our breakout sessions and welcome back. Now we're gonna hear from all moderators about what they got from each breakout sessions, from four aspects, biophysical, economy, social, and governance. Let's start from Danial. Thank you, thank you, Kania. We had a very exciting and interesting dynamic discussion in our group attended by more than 45 people. I think it was almost 50 and then on and off and we were discussing a lot of issues from the panelists and then confirm or tragic or challenged by our discussion. But let me show you what we'll be discussing very quickly because I only have five minutes here. So the group identified or think about proposed principles that heat land must be vegetated wet. We were arguing whether wet first or vegetated first depending on the condition. Sometimes vegetation comes first and then it's flourished when water is come back but suddenly the system should emit less carbon. That's the principle we were discussing and I do not want to read this but in general we identified four criteria. At least that's what I try to capture quickly. Group them in very neutral kind of word or term like lengthover. We do not say it's primary or secondary etc. etc. So it's not what we thought it is neutral. It's not leaning towards whatever objective. Hydrology is the same and then vice susceptibility is just characteristic also the heat properties. So we managed to discuss the number of indicators from each of these criteria and to some extent we also discussed the verifier or units of this thing and certainly we arrived in a very deep discussion about the water table as well as water content. That's very different context and all in all we were thinking of very carefully considering at what reference we are talking about when we say 40 centimeters, 60 centimeters. So the reference is important. So that's very quantitative and as well as practical I'd say. We're also thinking about the adaptability of the criteria and indicators here when we are working with communities and also in the spirit of adopting their ideas as well. So we try to think about the tradeoff between reliability of the criteria and indicators especially indicators but also the accuracy. So sometimes we have to have expensive equipment now it's not affordable and we can listen what the people say and what they observe and do it very easily in the field and some sort of applied technology is also discussed the possibility of quantifying soil moisture etc. It's very easy and quick not accurate but useful to quantify what you have in the field. So that's in a nutshell from the biophysical group. I hope that's clear enough to give you a taste of what we've been discussing and carbon is very very intense in term of content flux etc etc but let's let's do it later. Thank you very much. Thank you Kania for Exxon's report. Now we're ready to move to another moderator. Yeah. So let's forward the conversation on Kania, the floor and one is yours. Thank you Kania and also I'd like to thank the panelists, Baba Budi and Ibu Sipi in our discussion. So Baba Budi presented an extensive review on how economic attributes embedded within the environmental services and goods provided by the pit lane hence the valuations of the pit lane benefit is actually critical. He confirmed many potential indicators related to the cost saving and value of avoided environmental disaster and emission, value of economic ecosystem services, sustained and long-term growth among others and then Ibu Sipi emphasized the economic security infrastructure, well-being industry and dependency and also proposed to the alternate indexing methods referred and adapted to the Indonesian village development index, cat's milk matter and the circles of costal sustainability framework and then Darsana as our discussion provide critical response on how to see restorations in a broader perspective. We have to be very sensitive on livelihood issue while also balancing the ecological integrity. We should see the underlying point such as educations and awareness of all parties involved including the community and government. Also it's important to reconcile restorations involved with the value addition on sustainable business development for the community. Basically all of us agree that there should have been a behavioral change to the community and also combine with incentivizing the community with economic development. Thank you. Yeah for the quick and precise report, we move on to the third aspects, social aspect. It will be delivered by Rupesh Bomian. So Rupesh exploring the issue. You have five minutes. Thank you. Thank you Kanya. My apologies, my video is not on because what Padani was saying, the connection had some issues and I'm calling from the phone so limited capacity. I won't be sharing any screen either but I hope my voice is not interrupted. So I would also like to start with a big thanks to our panel members, Ibu Yuti, Ibu Moera and Ibu Sera and our distinguished discussant Yusie Katrina. We had very interesting discussion where we all came to one big conclusion that social aspects is very complex and not easy to tackle. So this entangled nature when we talk about social issues in connection to peatland restoration, whether at local level, whether at landscape level, bring about a lot of challenges and it is, it will require a lot of coming together participatory approaches to address those complexity and how we can do this using criteria and indicators approach. So we didn't have a lot more solutions or answers but we did have a very important and thought-provoking discussions. We all agreed that at a very high level, at a principal level, community well-being and equity could be widely demonstrated in those peatland restoration intervention and activities. So some of the things that we touched upon at the level of criteria is that it's very important to look at social capital, one of the things, and under social capital there could be indicators of gender equality, power sharing, that is empowerment, and then social networking. So social networking bring about another important aspect which was connectivity and by analysis, the social network analysis, one can understand how information flows and who makes the decision, who has most say in those decision-making. So that needs to be one of the criteria. How do you measure that connectivity amongst the stakeholders? Third would be sustainability. So overall, if the sustainability of that, which itself is a very broad topic but if there are actions that improve sustainability as a whole, then the indicators for those could be useful in identifying whether peatland restoration is a making success or not. Our discussion, Yossi highlighted the importance of data availability and relevance. Many a times these complex issues are not able to be resolved because lack of data access or even collected data. And so to have that relevance and data availability in our indicators will be very, very important as we go about. That's all. Thank you. Rupesh, now we move to the last aspects, governance aspects. Okay. Thank you, Kania. So again, I would like to thank the panelists, Ibudia, Mr. Aspidui, and also Mr. Masan for lively discussion in the governance aspect. So during the discussion, the big discussion, first Ibudia mentioned for governance aspect, the importance of participation, profitability and productivity of small rulers in fair commodity supply chains and also reducing social conflict, protecting human rights, including labor and indigenous land rights. So it is very important to understand the participation and also reducing social conflict. And from the second speaker, again, the participation is key and he, as we propose several indicators such as the effective public consultation, representative from the authority. Also, mechanism for public participation must be available, space must be available. Also, the importance of transparency in providing information and progress and ensuring access for all stockholders. And then the accountability, the public accountability of government agency related to their performance is from the second speaker. And then for the third speaker, again, the principle is participation and we propose three indicators, first is recognizing the right custom and culture, also understanding the special relationship between stakeholders and side, because each side will be quite different. Also, engagement of all stakeholders throughout all steps. And then Marshal provide ideas on the land tenure is key to mention in governance aspect and also link to decentralization as well as whether we are process oriented or outcome oriented indicators. Also need to understand that restoration means different things for different stakeholders. Some stakeholders mentioned more on their biophysical aspect and some stakeholders more concerned on their livelihood from a restoration. Also cost effectiveness for stakeholders coming from the restoration. And from the discussion from the floor, we discussed what kind of a good approach to institutionalize the proposed indicators. So we developed indicators, but nobody recognized if we are not developing, this is another thing to do, CNI should be developed in a multistakeholder way. It's not only CNI itself should be participatory, but where we develop should be a participatory way. Also they understanding the need, the landscape of platform. So finally we suggested the criteria, something like decision making process should be participative for all stakeholders, transparency, public accountability, commitment, recognition human rights, land tenure and local wisdom, general aspect also recognition of the local context. That's all what I consider Kamiya to be a primary. Thank you. But Harry, and thank you to all our moderators, panelists and discussions from the breakout sessions, who already gave us very insightful information about developing the criteria indicators for aspects. Now we move to the questions. There will be Dr. Harris Boonawan, who will deliver the concluding remarks and the way forward. Dr. Harris is a deputy from the Peterland Restoration Agency or Badan Restoration Gambut. So Dr. Harris, if you're ready now, the time and flowers is yours. Yeah, hello, Kaniya, thank you. Okay, thank you. Good afternoon, everybody. And I said my slide before I making the conclude for the our meeting. Yeah, can you see the my slide? Yeah, before I start, I use this very limited time for say happy New Year's, stay healthy. Even just very earlier to say, because I think for the next year, we have to follow up the our very organized discussion and very serious discussion in the four webinar that I follow. And thank you for Daniel and Tim for also maintain and also keep this program. Before I make a conclude, I just also show you when we talk about the Peterland. So please come to this area. This is really, how can I say, very complete, I think we say that wet wet land and then also the people are very happy, the children, even in the in the pandemic era, I think they they don't use a massacre like like me. So independent right now. So I think this is real. How can we hope for the future, the generation will be happy, stay on leave on the tropical pitland ecosystem. Ladies and gentlemen, I think during four webinar, we have a laboratory more than 30 talk about the criteria and indicator. We synthesize four aspects, powering biophysics, social economy, and governance. We have to acknowledge ourselves who have been so the ideal process to develop criteria and indicator. We acknowledge also the enablers to way forward to pit restoration and assess the criteria and indicator. As example work, monitoring criteria and indicator in terms of biophysics, shall be able to be integrated part of everything in the chapter one. So we have we have monitoring system in all of our Indonesia, which can be more developed together, more insightful data for criteria and indicator in biophysics. Not to mention, this also provide lesson learned about social integration so we cannot spirit each other. And and how economic example we promote green economy for for the future can be developed on the support with restoration. So my colleagues, Ba Budi, has mentioned BRG activities provide insight, insight toward criteria and indicator development. Suitable and precise data must be used to establish comprehensive criteria and indicator for pitland restoration. Yes, we have several monitoring, as mentioned before, also restoration plot and implementation, which can be listen, listen, learn to apply the criteria and indicator we have elaborated. We have modalities to provide more insight for how pitland has restored based on the criteria and indicator, not only biophysics, but also social economy and how policy would enable the restoration. So the last slide about the conclusion. The existing biophysics criteria that BRG has been enriched by the social economic and government criteria and indicator. Pa Nazir also give us the opening speech in our past webinar. Criteria and indicator is progressive and dynamic for measuring and monitoring restoration success. It is not it study it steady art. So I think we need continue our collaboration and discussion. Particularly the changing by a behavior and practices should be evaluated to including the involvement of private sector and non state. So because I also listen that we should be consider walk at the landscape scale. The criteria and indicator for pitland restoration are set covering biophysics, social economy and ecology which are set to be off and supported by policy measure. The modality way forward are available covering the transdisciplinary multi-export, several monitoring equipment and models, tremendous action research from BRG and cooperation with multi-parties including government, NGO, national and international parties. Develop participatory approach at the local scale. Example, action at many locations from research and implementation are available which can be assessed at the plot level from 20, from 2.5 until 20 hectares or one zone. I mean that water zone. So pitland hydrochloric unit or water zone and how the way forward for larger scale landscape or pitland hydrochloric unit shall be more research. So I think that's all my conclusion. Thank you. And let's continue our working to make more robust our criteria and indicator for tropical pitland restoration in the future. Thank you, Ganya. Paheris, now back to you Rupesh. Yeah, thank you all. Thank you Paheris and all the participants and discussants, panelists, members. I really thank you for your time making this whole series, the four events, a very successful engagement and learning experience and this is just kind of charted out a few thoughts or ideas to move forward next year. Paheris was saying in 2021 we have to do a lot more work. So let all stay good, stay happy, wish you a very happy new year in advance and we will all come back to you and in 2021 we will continue with more work on this topic. So thank you again. Thanks a lot. For panelists we will be joining a debriefing room and the link was shared by Kanya so we can go over some of the discussions if you have time. So with that I say goodbye to this Zoom. Bye-bye. Bye-bye, Rupesh. Thanks all. Just done. Thanks. Ayo. Thank you Paheris. Thanks Paheris. Thank you Paheris.


Edo state governor, Godwin Obaseki of Edo, has congratulated Muslims in the state on the occasion of this year's Edo Victory Celebrations. Obaseki called for tolerance and peaceful coexistence among Nigerians. He urged the Muslim faithful to remain steadfast and continue to pray for peace and unity of the country, saying that development and growth could only take place when the people were united. And don't forget to hit the notification button so you get notified about fresh news updates.


The Long Jean Watch is Long Jean. Long Jean watches have won 10 World Fair Grand Prizes, 28 gold medals and more honors for accuracy than any other timepiece. Long Jean, the world's most honored watch, is made and guaranteed by the Long Jean Wittenall Watch Company. It's time for the Long Jean Chronoscope, a television journal of the important issues of the hour, brought to you every Monday, Wednesday and Friday. A presentation of the Long Jean Wittenall Watch Company, maker of Long Jean, the world's most honored watch, and Wittenall, distinguished companion to the world-honored Long Jean. Good evening. This is Frank Knight. May I introduce our co-editors for this edition of the Long Jean Chronoscope? Mr. William Bradford Huey, editor of the American Mercury, and Mr. Donald I. Rogers, an editor of the New York Herald Tribune. Our distinguished guest for this evening is the Honorable John J. Sparkman, United States Senator from Alabama. The opinions expressed are necessarily those of the occurs. Senator Sparkman, among your many activities in the Senate, you're chairman of the Committee on Small Business, which is a mounting problem. Tonight we'd like to have you tell us some of the things you and your committee are doing to help the small businessmen. First, sir, would you be kind enough to tell us what you consider to be the major problem of the small businessmen of America? I believe that right now the major problem confronting the small businessman of America is that of getting sufficient materials with which to continue operating his business. Is there anything you or your committee can do to channel materials to him? We can't channel the materials, but we can certainly keep after the various agencies that do do that in order to make certain that small business gets its fair share. Senator, when you talk about small business, you mean a small manufacturer, do you not? Ordinarily that would be true, although not necessarily true because service organizations would be small business just the same. However, they're not confronted with this problem of materials. Materials naturally is a problem confronting manufacturers. And how do you define a small business? What do you think of as a small business? The Defense Department sets an arbitrary definition of small business as any business which, with its associates, employs not more than 500 persons. Now, can you make a general statement about this business now, these small businesses? Are they generally suffering at present? Yes, a great many small businesses are suffering because since the outbreak of war in Korea there has been a scarcity of steel, aluminum, copper, nickel. Is any one section of the country hurt worse than other sections? I don't know that we could say one section was hurt worse than another, but it's spotty. Some cities are, aren't they? Yes, undoubtedly that is true. As a matter of fact, there are some cities defined as surplus labor areas, are there not? Yes, all of those, however, are not due to small business problems. For instance, there's the automobile cutback in Detroit. Yes, but how about Providence, Rhode Island, for instance? Yes, that is one area that I had in mind a minute ago. There it's primarily the jewelers, watchmakers and things of that kind. Yes, that's true. Now, what could you do to help a jeweler in Providence? We believe that the Defense Department ought to find some use for them in making precision instruments, timing instruments, fuses and things of that kind. Could you give me an example of where your committee has helped a certain small business? Yes, I'll go back a little bit. I'll give you many, but since you've got us up in New England, I'll tell you one thing. You know, in every heel, rubber heel of every shoe, there are a certain number of little tags. I don't know whether you know that or not, but it's true. On the head of every one of those tags is a little tiny washer. You can't put your rubber heels on the shoes unless you've got those washers. Those washers are made by just two or three small establishments up here in New England. A year or so ago, they got to the point where they couldn't get any steel with which to make those little washers. And because they couldn't make the washers, the shoe industry was confronted with a very serious situation. We got busy and got steel for them to make their washers. I could give you dozens of examples. But you took that steel from some military operation, did you not? No, we simply saw that the steel was channeled in there. No, no, there was plenty of steel. It just simply, some mistake had been made and they didn't get their fair share. Senator, on our show the other night, Mr. Arthur Fleming of the Manpower Commission was here, and he told us that the plans were being made now on the assumption that this defense emergency will continue over a period of 10 to 15 years. Now, in your thinking of your committee in the Senate, are you making the same assumption that we have something like a 10 to 15 year plan before us? I don't think we can safely make any other assumption. Let me say this though. At the present time, we're building up. That doesn't mean that we're going to continue to build up for it over a period of 10 or 15 years. I believe the present program calls for getting tuned up into our maximum production by July 1st, 1954. Then we'll be able to level off. And I think that is what he must have had in mind lasting over a period of 10 or 12, 15 years. Level off at peak production, you mean? At peak capacity. Yes. Not necessarily that we'll be producing the tanks and guns, but it will be tuned up to the point that we can produce them. Tell me this, Senator. Do you find that the government, per se, the administration is sympathetic to small business or is it dealing mostly with the larger businesses? Well, I don't think the two necessarily go together. Yes, I think... Well, not a loaded question, I mean... No. Is the government cognizant of the problem that small business has? Yes, sometimes I think that some of the agencies are not as keenly alert to them as they ought to be. I'll tell you what my thought has been. It's simply this, that it's so easy and safe to do business with big business. First of all, they have their representatives there, they help work out everything, they have fine records, they know that they're capable of doing it, they've done it in the past and so on and so forth. It's easier to do business with them, but we believe they ought to exert a little extra effort in order to keep this highly essential part of our national economy. By the way, remember this, that 90% of the businesses of America are small businesses. Senator, this is very interesting, but our audience also knows you as a very influential Southern senator and I'm sure they'd like to have your views. First, where do you stand in the political firmament? Are you a Southern new dealer? Do you think of yourself as being a new deal senator? No, no, I don't think of myself as being a new deal senator. I've always felt that I was rather independent and I think most of the Southerners are. Now where do you stand in the fight now, the presidential fight? Are you for Senator Russell for the presidential nomination? The Alabama delegation supported Senator Russell in the 1948 convention in Philadelphia. We think very highly of Senator Russell. I know of no one that I would rather support than he. And do you take the traditional Southern position on civil rights legislation? On so-called civil rights legislation, I do. Suppose General Eisenhower becomes a Republican nominee. Do you have any predictions on the outcome of the vote in the South? I would say this, it's hard for me to envision the South voting for anybody under the Republican emblem. You know there's a tradition down there. Yes, I've heard it. In Alabama we have the Croing Rooster as our symbol and people, when they go to the polls in November, don't many of them go then, but when they do go, they like to make their cross under that rooster. It's going to be pretty hard to get them to make their cross under an elephant regardless of who's on that ticket. But let me say this, General Eisenhower is very, very popular in the South. More popular than any other Republican candidate you know. I think that's true. Yes, I think that's true. You are also a powerful member of the Banking and Currency Committee, Senator, and our audience has heard a great deal about the Reconstruction Finance Corporation. Now, do you think that all of the corruption has been cleared up there? I believe that it has. I think Senator Fulbright and his subcommittee did an excellent job in digging into the RFC, and since that time there's been a reorganization of it along the line that Senator Fulbright himself suggested. We have a single administrator. The Senate has just confirmed a new one, and I believe he's going to do a good job. And on the subject of taxes, which a great many people are thinking of about this time, where do you stand? Do you believe economy-minded this year? Do you want to cut the budget? Yes, I do. Would you cut foreign aid? I think foreign aid, let me put it this way. I'm on the Foreign Relations Committee. That bill will come before us. I know that we will examine it most carefully. And last year we cut it a little more than a billion dollars. I should not be surprised to see it cut some this year also. What is your prediction for the cut on the overall budget? I'm also on the Joint Economic Committee, and for the last two or three weeks we've been wrestling with that very problem. I suppose it's all right for me to say that our report will probably come out tomorrow morning, and we're going to recommend that every effort be made to bring the budget into balance. And to do that... That would be a what? Well, of course that's hard to tell, but it probably would entail a cut in the budget of something like seven or eight billion dollars. Maybe even as much as ten billion. How much would you cut from foreign aid under this? Let me put it this way. I'm on the committee to pass on it. I don't want to prejudge it. If I had to make a rough guess, I would guess that a billion dollars at least would be cut out of foreign aid. And do you believe in balanced budget yourself? Yes, very strongly. I think that an unbalanced economy with the inflationary pressures that are generated as a result of it could give us a tremendous lot of trouble. And what do you think about taxes?  Oh yes, but I don't know. We're not going to be able to cut them for a couple of years anyhow. So I thought you'd go ask me if I was going to be in favor of raising taxes. That's what most of the talk is about now. I'm not in favor of increasing taxes. You're not in favor of increasing them. You think that they'll remain about where they are for at least another two years? Yes, I see no chance of lowering them under two years. I'm sure that our audience has very much appreciated your views tonight. Thank you for being with us, sir. The editorial board for this edition of the Laun Jean Chronoscope was Mr. William Bradford Huey and Mr. Donald I. Rogers. Our distinguished guest was the honorable John J. Sparkman, United States Senator from Alabama. You've heard it said, of course, most people know the price of everything and the value of nothing. Now that's just not true. Certainly not for Laun Jean watches, for more people know the value of a Laun Jean watch than its price. Do you know, for instance, that there are many models of the world's most honored watch which sell for as little as $71.50? So, if you pay $71.50 or more for a watch, you're paying the price of a Laun Jean, the world's most honored watch. Why not insist on getting a Laun Jean? Honored for excellence and elegance by ten World's Fair Grand Prizes and twenty-eight gold medals. Honored for accuracy by innumerable honors from the great government observatories. Honored for honesty in fields of precise timing in sports, aviation, exploration, and science. So if you wish to purchase a very fine watch, either for yourself or as a gift, look for the value in the watch you buy. And let your choice be Laun Jean, the world's most honored watch. Premier product of the Laun Jean Witner Watch Company since 1866, maker of watches of the highest character. This is Frank Knight again inviting you to be with us every Monday, Wednesday and Friday evening at this same time for the Laun Jean Chronoscope, a television journal of the important issues of the hour. Broadcast on behalf of Laun Jean, the world's most honored watch, and Witner, distinguished companion to the world honored Laun Jean. Sold and serviced from coast to coast by more than 4,000 leading jewelers who proudly display this emblem. Agency for Laun Jean Witner Watches. This is the CBS television network.


I made up a dad joke. I don't care. Yeah, you do. Nope. Yeah, you love them. I don't. You live for them. Nope. What, did you hear the one about the plastic surgeon and the tattoo artist? Clearly not. You didn't? Oh, yeah. Well, they exchanged tit for tat.  I'm Rick. You could follow us on Instagram and Twitter for more juicy content. Thank you to everyone who supports us on Patreon, follow us through Twitter, count, subscribe, and the like button. You can always count on me to give you a dad load. Today, good lord, we got a quick video. This is Direct Hit! Some of the best run. Direct Hit! Right in the penis. Some of the best runouts in recent years. Ooh. Gonna need to wipe. So I'm guessing those are like when they're going back and forth and somebody kind of gets, that'd be my gets to them before. It's either that or someone panicked and couldn't stay in the arena and they ran out of the arena and went home. I, sure. I'd be exciting. Here we go. You're out. Bye, everybody. Dang. The fact that they can throw and hit something that small. Wow.  That's a small target. It's really remarkable. It must be hitting it directly. Yeah. Oh, directly. I mean, I know you can obviously skip up into it, but still the accuracy on those throws, especially the ones where they're moving and throwing at the same time. Dang. I'm guessing incredible. Wow. I'm guessing cricketers will practice this like practice like from far away just so they Heck, yeah. Can't get much closer than that. I like the pink uniforms. Amazing. Dang. I'd like to try to hit it. And if they miss, does the ball stay in play and they can keep running? Yeah. Oh, my. She hold it in with the crowd of it. So I sort of hit, hit, hit. Yeah. In official, but George aware of. Dang, man. Oh. Stryker. Dang. It's unbelievable. Wow. That's one of the best plays I've ever seen. Oh, it's tight. Miller. Yeah. Wow. Incredible. Good Lord. Oh. She hesitated. Yep. She probably kept going. She probably would have made it. Dang. These are impressive. Good night. Dang. Almost in the exact same placement as the last one. Incredible. I want to, I want to throw a cricket ball and see if I can hit the wickets from that ball. While moving. Yeah. While moving. I can, I'm scared to have won't do it. From the knees. Wow. Dang. Incredible. These are really impressive. Ouch. Oh. I'm guessing you can try to get either of them out. Whichever one you think you're more likely to get out. Is there ever a double out? Or does it end right when it hits? I think the ball is dead when you throw it and it hits the wicket. I think play is dead at that point. Somebody else can't pick it up and try to get the other guy. Right. I think. I don't know. Dang. Heck of a play. Heck of a play. It's a bunt. Oh my. Why did he do that? Why did he think to turn and throw it rather than just get that? Maybe he was already back. He must have been across, yeah. Dang. Wow. How big are those things? The wickets. The wickets, they don't, they don't look like they're very big at all. Like the bottom of the baseball bat? Like the end part maybe? Probably. Really, really impressive. Zendia! Dang. Didn't stop it for a second. Wow. I didn't see it. Yeah. I'm assuming it hit, but. Oh my. Look how close that was. Is that actually out? That's out. The line is the field. It has to cross the full line. It has to cross the full line. It's not like the NFL. Yeah, you just have to touch the line. You have to get the tip of the football across the very front of the end zone. They have to get across, I believe. It's going again. Wow. That was a far.  India again. Stutter steppin'. That was an error. He put in brilliance from Boomer at the ace. Great athleticism. This is a chance. This is out. I wanted to get to the non-striker's ended readiness for the last one. Incredible. Look, thank you. Dang. Those are impressive. Yeah, that was. That was crazy. Something we could measure by what we know and one of the most impressive cricket videos I've seen in terms of understanding the skill it takes to do what they're doing and seeing them do it is... Wow. In fact, there's something like they catch it while running, don't stop running and still be able to have the wherewithal and the accuracy and the athleticism to throw it while they're moving still. Yeah, and then some of them are from so frickin' far. Yeah. I'm assuming if, because obviously there's like the catcher guy that's always by the wickets and a lot of them, I guess they kind of just have the knowledge to be like, it looks like it's going in the right direction. It's better to just let it go than to catch it yourself. Yeah. Obviously. And I'm sure when they're there, they're set up for the prospect that if it misses the wicket, they're going to catch it. So they're, you know... I'm guessing they're allowed to, obviously, if they think it's a little off like... Grab it and move it forward themselves. Yeah. Like volleyball. Sure, yeah. In fact, I think we saw a cyst, I guess. A cyst like that, a video of a cysts where they're coming in and it's just done real quick with a tap. I love the fact that the wickets have like, or at least the stuff on top has the lights so you can fully tell. Yeah. I don't know why the sports haven't incorporated it. Like football, in fact, like the pylons aren't, like there's not chips in the footballs. Right. To make sure, like, we know when it crosses the line. Right. We're using solely off of the visuals of the cameras and the... Old referees. Yeah. It's such a game of inches there should be more use of digital technology to ensure those things. To make sure like touchdowns, to make sure that... Yeah. Or first downs, bringing out the ropes, bringing out the chains to measure the thing. It feels like it's, what are we, in the middle ages or something? Yeah. We've got technology now where you could be really certain and also the other subjective idea of placing the football. Yeah. Where they just decide from the side. We believe this is where they were down on the ball was. Yeah. That's crazy. Absolutely insane. Yeah. But great video. Great video. I really enjoyed that one. Really impressive. If there's stuff we didn't catch or if we're not fully understanding, please, obviously, kindly let us know. We are still dummies. And the more... But the more we watch of these, I will say, you know, knowing nothing, the more we understand it, and the more we're learning, the more impressed I am with cricket and the athletes who play cricket as a very, very specific skill set. That's incredible. I am sad that the U.S. League is only in Texas right now, though. Yeah. I thought we were getting games in L.A., but it's only in Texas. Yeah, I know. And I'm guessing they're waiting for the cricket stadium to be built here, maybe? Yeah. I believe that's the case. And then they'll probably, the L.A. Yeah, because there's really, there's no other kind of arena you could really use. Yeah. It's available for use, and I think they're being really careful because the fan base has to grow. Yeah. So, yeah. Started in one place. Also, it's cheaper if everybody's already there. Yep. Exactly. Not flights and stuff, but... Yep. I wanted to go to some games, but we're not going to Texas. No. Right now to watch cricket. No. We prefer not to go to Florida either. Yeah, yeah. No, no. Ever. Yeah. Let us know what are the cricket videos we can react to down below. Thank you.


I have done my engineering from YCC in Nagpur and I am now an IIT Madras BSc student on the degree program. Actually I had taken 6 courses till now, calculus was there, laps transform was there, engineering mathematics was there and then I had probably can statistics then I had a Japanese course also. I started this BSc degree and then I came to know that NPTEL is also offering this mathematics courses also at least actually I knew that NPTEL offers engineering streams courses, but I had not explored this mathematics stream also because these courses give you a very good insight on what mathematics engineering does not have that much mathematical subjects. I wanted to explore maths more and more because I like this mathematical field very much and data science is full of mathematics so you have to develop it a lot. Courses that they can choose is the data structures and algorithms from Madhavan Mukun Sir that is there, it is a fantastic course then they can use discrete mathematics it is also very much used and you can explore these things so that it gets a very firm foundation on mathematics. It is very much important for data science even in tools basically the statistics courses, the probability courses that will actually help them in understanding the concepts.