Bismillahir Rahmanir Raheem, Allahumma salli ala Muhammadin wa ali Muhammad wa ajil farajahum wa ala an'adaahum. In the name of God, the Compassionate, the Merciful, the All-Deer, brothers and sisters, respected viewers, welcome to Karbala. Welcome us again to this land which is Land of Hussein, Land of Habbas, Peace of Paradise. And we are so grateful for Almighty God for granting us this great opportunity for being at service of Ahlul Bayt, Salawatullahi wa Salamu alayhim ajwa'in, for being here, for focusing only on Ahlul Bayt, Salawatullahi wa Salamu alayhim ajwa'in, for thinking and praying for the reappearance of Imam of our time. Although there are lots of things which are happening all around us in different countries, in different places, but we never forget about Imam of our time. We always stay focused on the reappearance of Imam of our time because as Imam alayhi salam has said in the fitnah, be like the camels, let's say newborn calf, which has no bag to be written on and no breast to be milked. So insha'Allah in this world, in which lots of, I'm sorry, in which lots of fitnah and different things and ideas are attacking people from left and right, we only stay focused on Ahlul Bayt, Salawatullahi wa Salamu alayhim ajwa'in. Here in this place in Karmala, in land of Hussain, we promise ourselves, we promise Ahlul Bayt to only specify this half an hour for Imam Hussain alayhi salam, to get connected to Imam Hussain alayhi salam, to perform the Ziyarah of Imam Hussain alayhi salam. Let's all together say humble salam to Imam Hussain alayhi salam. As-salamu alayka Ya'aba Abdullah, As-salamu alayka Ya'aba Rasulillah, As-salamu alayka Ya'aba Amir al-Mu'mineen, Wa-bna Sayyid al-Wasayeen, As-salamu alayka Ya'aba Fatima al-Zahra, O Imam Hussain, O Aba Abdullah. The day after tomorrow is the murder and the murder of your mother Fatima al-Zahra and these days are the Ayyam al-Fatimiyyah, the Fatimiyyah days. I would like to send my deepest condolences to you and to Imam of our time for this occasion and may Almighty hasten the remembrance of Imam of our time who will revenge for the pure blood of Fatima al-Zahra, As-salamu alayka, who will revenge for the pure blood of Muhsin and who will revenge for the blood of you, for your blood Ya'aba Abdullah. As-salamu alayka Wa-alal al-arwaha al-Nahar, Wa-la ja'alahu Allah wa-akhir al-Ahdi bil-Lin iz-Ziyaratak As-salamu ala al-Hussain, Wa-ala al-Yibn al-Hussain, Wa-ala al-Awlaad al-Hussain, Wa-ala as-shaab al-Hussain. Let's all together say-hum wa-salam to Amal-Fatima al-Abbas, al-Salamu alayka Ya'ab As-salamu alayka Ya'a Saqiya al-Utasha, as-salamu alayka Ya'a Qatia al-Kafayl, Oh Amal-Fatima al-Abbas, no one is like you. In this world we say it and we witness and we know that no one is like you in any situation that happens to anyone.  We cannot make any similarity between you and the others. So Amal-Fatima al-Abbas, we know your greatness, we know your value. Please, in sake of Bibi Ruqayyah, in sake of Sayyidina Sakina, As-salamu alayka, ask Almighty God to hasten the reappearance of Imam of our time because this world is getting worse and worse and worse. As-salamu alayka Ya'a Qamara Bani Khashem, Wa Rahmatullahi Wa Barakatuh. Two days, we all wait, we all wait two days to have this great opportunity to spend our time with Imam Hussain al-Salam, to be the Zahr of Imam Hussain al-Salam. Why should we neglect the value of Ahlul Bayt by entering the other things into this period, by not forgetting anything else and only paying attention and focusing on Imam Hussain al-Salam? You know Imam Sadaq al-Hussain, I would like to tell you something that Imam Sadaq al-Salam says The other Imam says as well, those who perform Ziyarah of any Imam, why they know the value of that Imam, they deserve the heaven. So the person who was in front of the Imam asked him, Yabda Rasulullah, what do you mean with the information or knowing Ahlul Bayt? Imam says, the less level of knowing Ahlul Bayt is to know that they are Imam Muftara al-Ta'a. They are Imams who must be obeyed, the lowest level of ma'rifah, of knowledge, of let's say information or ma'rifah towards Ahlul Bayt is to know that Imam is the one who must be obeyed. No one else in this world deserves this. I'm saying it bravely that no one else in this world deserves this. It's only Imam who must be obeyed. So if I know this, if I am living with this information and concept, how is it possible for me to compare the others with Imam? Okay, no problem. There are lots of good people, there are lots of people who do good things, but it doesn't mean that okay, I close my eyes and say that whatever they say is true and I follow them 100%. Only those who speak of Ahlul Bayt, only those who say the speaking of Ahlul Bayt, we listen to what they say, we accept their words because their words are the words of Ahlul Bayt, Salawatullahi wa Salamu alaykum alaykum. Having all this information aside, I would like to mention that this night we are going to spend our time with Imam Hussain alayhi s-salam. In this night we're going to be zahir of Imam Hussain alayhi s-salam. So if you would like to spend your time with Imam Hussain alayhi s-salam, this is the right time and the right place and the right TV channel that you have chosen. This show is yours to make it possible for you and to give you this great opportunity of being zahir of Imam Hussain alayhi s-salam. So try to be a pure zahir, a perfect pure zahir only for Imam Hussain alayhi s-salam. Actually, this night I wasn't feeling that well because you know I have a favor and you know I've got cold, maybe my voice is not that okay, but anyway performing zihara of Imam Hussain alayhi s-salam is so great and being with you, performing dua and zihara next to Holy Shana of Imam alayhi s-salam along with you is a great opportunity. I know they don't want to lose this opportunity and inshallah all of us are true zahir of Imam Hussain alayhi s-salam. Let's start reading the beautiful messages which has been sent to me. Okay, they are watching this live show and Sayyidna Adalina Ghami says, I'm at peace with those who make peace with you and I'm at war with those who make war with you until the day of judgment. Allahumma jaal mahiaya mahiya muhammadin wa aali muhammad, wa mamati mamata muhammadin wa aali muhammad. He also says, Ya Hussain, lady Fatima, we will never, we will never forget you. Oh, lady Fatima, we will never forget your Hussain. Sayyid Hussain Ali says, please do dua for me brother, inshallah brother. And Abbas Bashir says, Salam Ya Hussain, Salam Ya Abbas. Please pray for us and the entire Muslim community around the world. We pray for all the mu'minina, mu'minat all over the world, wherever they are living in any country in Iran, in Iraq, in Afghanistan, in Tajikistan, in Ammanistan, in Pakistan, in India, in New Zealand, in Netherlands, in Germany, in the European countries, all the European countries, in Greece, in the American countries, in Canada, in the South American countries, in Australia, we pray for all the people, for all the mu'minina mu'minat who are living everywhere on this planet. And we ask, almighty, to keep them away from any danger, from any disaster. Let's have a short break, and then I'll be back once again with the messages. During this short break, I was taking a very fast chance to the messages, lots of beautiful messages right here, and insha'Allah, insha'Allah, almighty bless all of you, dear brothers and sisters, who are Zahreen of Qasai Aysan, lots of beautiful condolences and sympathies with Imam Al-Asr, and we need not to forget, we need not forget the murder of Fatima al-Zahra, and if it wasn't for her, the Tashayyua, the commander of Faithful Ali Ibn Abi Talib, and we were not following Amman Ibn Abi Talib, because she was the first murder of Wilayah, among the women, among the men, the first murder of Wilayah, you know, who was, it was the Holy Prophet Muhammad peace and blessings be upon him, because he was poisoned, because he was poisoned by some people who history tells their names in different books, when they just gave something as dry to Holy Prophet Muhammad while he told them not to give me anything while I'm sleeping. Anyway, after the Waqaa of Ghadir, they saw that, okay, the Holy Prophet Muhammad is setting and introducing Imam Ali Ali Ibn Abi Talib commander of Faithful as his successor, so they decided to terror the Holy Prophet Muhammad peace and blessings be upon him. So he is the first murder of Wilayah, and the first murder of Wilayah, the first lady who was murdered of Wilayah is Fatimah Al-Zahra, peace be upon her.  He will revenge for all the oppressed people against the oppressors. And the first oppressed person was Fatimah al-Zahra, alayhi as-salam, Allahumma, well Imam of our time inshallah is going to revenge for her. Mahrukh Zayni says, As-salamu alaika ya Aba Abdullah, As-salamu alaika ya Abda Rasulillah, As-salamu alaika ya Fatimah al-Zahra, As-salam brother, please pray for the reappearance of Imam of our time, and all the believers, please pray for my family, inshallah sister at your service, I will pray for all the believers and the believers here next to Huzain al-Hussein al-Salam.  Zaynab Razavi says, Mawla, accept our condolences, ayyama Fatimah, thank you so much sister for this beautiful message. Rupsa Zaynab Razavi says, Salam my master, Sayyid al-Kulsum, Zahras al-Salam, may Allah curse the killers of BB Fatimah al-Zahra, Salam Allah alayha, ilah ya Ameen.  Sayyid al-Aleem Mehdi says, As-salamu alaika ya Aba Abdullah, As-salamu alaika ya Aba al-Fadil al-Abbas, As-salam, As-salamu alaika ya Imam Zaynab Razavi says, Mawla bless the whole team of Imam Qasayn TV and especially you sir, oh thank you so much sister. JazakAllah for giving us this opportunity to express our feelings for Mawla on the land of Karbala. I hope sister Zaynab, especially for you and your respected family to be here in Karbala inshallah and perform Ziyana next to Holy Shana Faham Hussain As-salam from the closest place inshallah, ya Allah. Sayyid al-Ameen al-Batun Zaynid says, As-salamu alaika ya Aba Abdullah, As-salamu alaika ya Qadir al-Hajat Aba al-Fadil al-Abbas, As-salam, Allahumma salli ala Muhammad wa Al Muhammad wa Ajil farajahum. Sayyid Kulsoom Zahra is also sending messages. Zaynab Razavi is saying that also pray for the holy places in Iran and Iraq inshallah we play for the safe what we pray for the safety of all the holy places all around the world especially in Iran for the Holy Shana of Imam, the 8th Imam Imam Al-Rabaa alayhi s-salam and Incom for the Holy Shana of BB Fatima al-Masoumah, As-salamu alaika, I was living in Com for a few years and you know whenever we were feeling tired or unhappy we weren't going to the Holy Shana of Sayyidah Fatima al-Masoumah, As-salamu alaika and now here in Karbala whenever we are not on mood or we are not happy we go to the Holy Shana, As-salamu alaika and these great souls you know they protect us we feel happy by being in these great places and inshallah almighty keeps safe all these holy places Zaynab Razavi says inshallah almighty have mercy on you and the people who you mentioned in your message VJ Zahras says always stay healthy brother thank you so much take care may Allah give you Shifa soon and thank you so much sister Sadina Haydari Nabbaik Ya Hussain Nabbaik Ya Hussain my heart broken tomorrow is my flight to come to Karbala okay but because of the problem we are not allowed to come from Canada oh Sadina Haydari inshallah the problems the inshallah all those problems all those hardships inshallah they will get away and inshallah everything will be calm once again and you and your respected family inshallah we'll be able to come to Karbala soon there are lots of messages Nergis Fatima Fatima Farhad and Fadak al-Musawiyah Tassawur Ali Abbas Jafari Masha Allah Sadina Haydari Dr. Farhar Razavi Mishan Naqawi Abbas Jafari Sayyid Abbas Mehdi Abbas Jafari once again Zahidi Sayyid and Ahmed Laghari Tahrim Riza Riza Ali Huma Ismail Zaynab Riza once again Tahrim Riza Sayyid Gouria Zahra and Tahrim Riza they are all sending beautiful messages I'm sorry I'm not we don't have that much time to read all the messages but let all together pray for the reapers of Imam of our time by this beautiful heart that feeling that you have Bismillahir Rahmanir Raheem Yaa we beg you hasten the reverence of Imam of our time thank you everyone for tuning in have a great night and be blessed Ya Hussain


Estonian intelligence chief reveals Putin's Europe plans, Russian dictator Vladimir Putin wants to establish a new security architecture in Europe, and with his aggression, expand the sphere of influence of the Russian Federation, says Antz Kiviselg, the head of Estonian Intelligence in an interview with RBC Ukraine. The head of Estonian Intelligence agrees with the opinion that the destruction of Ukraine and the establishment of a new world order is the main goal of the head of the Kremlin. What Putin said in December 2021 is what he truly wants. He wants NATO to stop expanding and roll back its 1997 boundaries. Kiviselg said, the head of Estonian Intelligence also added that there is no indication that the Kremlin has changed such plans. I believe he wants to establish a new security architecture in Europe. Russia wants to expand its sphere of influence and increase it. In Russia's view, smaller countries should not have their own will and they should not have the right to say what they want. Kiviselg said, he specified that the Kremlin's similar policy of aggression is directed against Western values, so democratic countries are resisting. There is no scenario in which we would want to live like Russia. Kiviselg emphasized, according to him, there are people in Russia, both in population and among the elites, who are not very satisfied with what's happening. And the Prigoshin's march showed that unexpected things can happen in Russia. Of course, anything is possible. But unfortunately, I don't see the situation changing right now. But I would be happy to be wrong, Kiviselg said.


Welcome to another one of my doctors at their Chalk and Talk sessions where I explore questions or issues, comments, anything that's particularly provocative and could use a blackboard and being drawn out that come to me from a variety of sources. In this case, this is actually sort of a follow-up to one of my earlier doctors at their Chalk and Talk videos. They had to do with should we teach ethics in public schools? Should we teach ethics K through 12 as well as teaching ethics classes, singing in college? And the position that I took was, yeah, of course we should be, because you're learning ethics one way or the other and either you're learning it well or you're learning it in a distorted sort of way. That's not going to help that much. It will leave you vulnerable to manipulation, to being caught in all quandaries, to making bad decisions, other bad decisions, which lead to dilemmas. There was quite a bit of discussion back and forth on the comments section for that one. And one of the things that came up that I thought was particularly interesting was a suggestion was made. Well, I think that you ought to teach these models of different ethical systems or moral theories, however you want to put it. You ought to teach that in the schools, but that's really kind of static, isn't it? Don't you want to have something more dynamic for the students like maybe games theory, right? For those of you who don't know what games theory is, it's a development of a particular branch of mathematics, and it attempts to model strategic decision making. And strategic decision making is where you're not just sort of optimizing something within a process. You're trying to think about, well, what if that other person over there will also affect this process and will also mistake it? What if they go this way or this way and try to predict what they might do? You also treat them as being rational and you assume that they know that you're rational. So there's a lot of abstractions involved in games theory, but it can be kind of fun to play around with. And you can set up some of the games that would be interesting to teach people things fairly easily, like the prisoner's dilemma. Now, students do like that sort of thing. Students always enjoy exercises that get them engaged, that get them thinking, that allow them to interact a bit. But I think that it's a mistake to assume that because it works with models, and particularly since we work with text and we present things in a somewhat systematic way, that what we're doing in ethics is actually kind of boring, dry, abstract, you know, not dynamic. It's very static and the students just kind of learn their thing and then they go and play it. And so what I want to do first is contrast them, so I've got this big scheme up here. I want to contrast two different ways of understanding the interaction that could take place in a classroom. Two different models of how theory works. This doesn't necessarily even have to be in a classroom. This could be in a lot of other contexts as well. Think about apprenticeship programs. Think about teaching somebody how to cook. Think about teaching somebody martial arts. One common way of understanding education.  This notion is sort of, you know, the instructor has the knowledge in their head and they just kind of pour it into the head of the student and now the student can apply it, right? So you have transfer of information, the instructor has the theory, whatever the body of theory consists of. And the theory is basically static.  They pass it on to the student, godly knows how. There's a lot of different ways to do that. And then the students, you know, the real test of whether they understand it and can they apply it. And all they're doing then is sort of a mechanical process, applying the static knowledge that they have in their head and making it active and dynamic in real life situations. Okay, that's the way a lot of people do teach. I had professors who taught like that. I have to admit that when I first started teaching I'm willing to bet that a lot of my teaching was like that too. You know, explicitly on the material. Here's the main points, you know, this is what I want you to know and to memorize. Okay, that fits them. But a lot of what goes on in ethics classes, whether we bring in games theory or whether we design all sorts of other exercises, is something a bit more like this. To begin with, we're always in the realm of application. Especially for the ethics. I mean, if you're doing ethics, if you're talking about ethics and you're explaining plagiarism, you know, for the paper in the class, is that just a matter of theory or is that already a matter of application? That's a real life situation. How students treat each other in the class. How people interact with each other. What to do with your frustration when you don't understand material. That's already no longer just a matter of bare theory by itself, but theory tied in with application. And quite often, for some ethical approaches, some moral theories, you don't actually develop the theory without being involved in application. There's an iterative process going back and forth. Back and forth, you can call it dialectical, you can call it iterative, you can call it anything of like. Point is theory and practice are not so easily dissociable from each other in certain ethical theories. So that means that if you're going to teach those theories right, you probably can't just pour the knowledge out there for those students and say, ah, there you go. For instance, virtue ethics. If you're going to teach virtue ethics, well, there has to be some component of you actually engaging in it. But we'll get to that in a moment. So with this sort of thing, the instructor would show up and the instructor actually has embodied the theory, the instructor has it available to them. Then they put it in the center and now the students engage around it. And this can be done in a lot of different ways. It doesn't necessarily have to be through games or group activities or things like that. That can be done through classroom discussions where you put something on the table and you actually, instead of just, you know, lecture, you can have lecture discussion. You talk for a little bit. What do you think about that? Can you think of any examples of that? Are those good examples? Already when you're doing that, you are taking the theory and putting it in the center of those students. You're not just lining them all up in their neat desks and laying the knowledge out there and hoping some of them will pick it up. Instead, if we want to continue the fish metaphor, you're trying to encourage something like a feeding frenzy. I don't know how much you know about fish, but one thing that fish do is they exhibit what's called a medic desire, which means that a fish, the desire that it has will often be triggered by seeing another fish getting something. So a fish sees another fish eating and then it says, I think I'd like to eat too. We do this as human beings. Works really great in bars. One person lights up a cigarette. Not everybody who's a smoker feels like they ought to smoke, right? Well, it works the same way with knowledge too. If you can get people engaged, if you can get them interested, if you can get them passionate, if you get one student talking about things, you might be able to get the rest of them interested in talking about it. Especially if you can tie it in constantly with applications. How does this fit into your life? That's one of the things I do constantly in my ethics classes. I try to connect the material to where my students are, and that produces dynamic learning. And I'm doing that not by, you might say, dumbing it down or skipping through the tough stuff and just going to the fun things, you know, the sexy sayings or things like that. We're doing the material, but we're doing it in a dynamic way. And I think there's a lot of professors out there actually doing that. I know that I had some, I didn't really think of it in those terms, but I had some who were doing that in their classes while I was in their classes, some of them in elementary school, some in high school, some in college, some in graduate school. So what I want to say before we move on to the other stuff, it's quite possible to have a model in which moral theories or models are not just static information thrown out there, which then has to be livened up by some sort of, you know, bells and whistles. If you're teaching the moral theory well, as a teacher doing what you ought to be doing, you're not just presenting content. And you don't necessarily have to have lesson plans to do this. Good teachers can do this on the spot with students. They can meet them where they are. You want to make it something that everybody is, or at least enough of the students, a critical mass are involved with, and which ties in with their concerns and their life. So now, let's think about some... That's the point that I was making here. If they're taught well, moral theories by themselves are dynamic. I mean, there's a reason why people have been reading Play-Doh and the Republic and all these other dialogues and reading Aristotle's were essentially lecture notes for generation after generation after generation. It's not just because we like classic works. It's because if you actually work your way through them and you know how to read those sort of texts, they are incredibly dynamic texts. They represent a clash of perspectives over and over and over again. There's conflict in them. There's, you might say, even narrative. You're not just talking about Play-Doh and his dialogues. There's narrative even in Aristotle, the clash of different viewpoints on things. And this person could say this and this person could say that. If you can actually get into that, then they become very dynamic. Now, the trouble is how do you get this across to students? That's, you know, like I said, if you can read them that way, we shouldn't automatically assume that students are going to read them that way. There's a lot of obstacles to that. And so we have to do the work as instructors to make that possible, which means, first off, we have to know that material inside and out and we have to be passionate about it and care about it. There's not an awful lot of point in trying to teach something and make it dynamic if you yourself don't care about it. Luckily, I think most people who teach this stuff actually do. What are some examples of things that, by their very nature, if you're teaching them with students who are at least, you know, engaged to some degree, are going to be interesting, dynamic. You can build all sorts of work around with all sorts of lessons around it. But I'll think about utilitarianism. Carrying out utilitarian calculation of any given scenario that you want to put in front of students, seeing how they would carry out and whether they do carry out utilitarian calculations in their day-to-day life, in deciding whether to go home for Christmas or not, in deciding whether to take this class or that class. Topics that are kind of sticky and messy where you can actually have students make partly right answers, partly right choices, and then partly wrong. And then you can build off of that and say, well, because with utilitarian calculations, one way people go partly wrong is by not including everybody whose pleasures and pains are affected by it, right? Utilitarian calculations are about pleasures and pains. Everybody gets that. So you start out by putting a situation in front of them. They get the idea that some people are affected this way, some people are affected this way. Now you widen that. You expand the time frame. You say, what about these people? What about these people? That's dynamic. That shows them the process of change right there as you're teaching them. Even value clarification. A lot of people are doing ethics most of the time. Value clarification, that's just garbage. Because basically what value clarification is, is figuring out what do you want, and it stops there. Well, you know, actually figuring out what you do in fact desire, that takes some work. And a lot of people think that they want certain things, and it turns out that some of them, they don't actually want them when they get them, because they wanted something else that came with it, or they thought came with it. And sometimes our deeper desires are a bit buried, and have to be brought to light. You can do all sorts of exercises with this, and you can reflect on it, and you can have students compare and contrast those to each other and say, why do you feel that? Why do you value this? Why don't you value that? Applying the categorical imperative, these are the first two formulations of it, which I don't know. Usually about as far as you get an ethics class, because the third one is kind of tricky. Being able to apply the criterion of can you universalize this action? Now there's more to the categorical imperative. That's a good starting point. Or by doing this sort of action, would you be treating somebody as a means to an end? Getting students to think about that, to look at determinate situations, also to look at their own lives. Are you using people as a means to an end? I always use this as an example. What about me in teaching you? I'm getting paid to teach you. Aren't I just using you as a means to an end? Already you're in a very dynamic conversation by doing that. When it comes to virtue ethics, figuring out whether an action or a person is actually virtuous or vicious, or something in between, perhaps, you know, self-control, lack of self-control, doing actions for which they're not entirely responsible, on the way to being virtuous, on the way to being vicious, in accordance with vice, in accordance with virtue. All these sorts of things, figuring out those, the nitty-gritty of it, actually looking at cases and saying, look, is this person a good person? Do they have good traits? What are they? How do you define those traits? What did Aristotle say about those traits? What did Augustine say about those traits? Do you buy what they're saying? Do you think they left something out? Which of these do you think is most important in evaluating the goodness or badness of a person or their actions? Who do we take as models? Already. You notice the questions just come spilling out. Very good. Working out norms by agreement. This would be something along the lines of doing games there, right? Contractarian ethics, and some other forms of ethics, have to do with working out norms by actually sitting down with people and saying, well, can we all get on board with this? Somebody makes an objection, and somebody else does. Good reasons for doing things this way. That's dynamic. You get students talking. You get them engaged. You get them thinking. You can do that again with the classroom. You can apply this to their own lives as students. You can apply this to their work lives. You can apply it to their family lives. Discovering the value of the person or of a relationship. Here we might be doing virtue ethics. We might be doing ethics of care. We might be doing personalist ethics, various sorts. Thinking about the people who we actually do love, or the people that we hate, what is it that we love about them? Are they just those qualities or actions or consequences that we love, or is there something beyond that? Is there a value in the relationship beyond just that of the two or more people involved in their relationship? And again, you have tons of stuff you can play off with students. You can get them talking about their own families and comparing them to each other. You can always get them talking about romantic relationships. What's going on with those? They're quite often quite happy to disclose. Finally, you know, one of the things that's going to be going on with all of this is exploring and trying to figure out what's the proper ordering of different goods or bad things in relation to each other. That's something that ethics is intimately concerned with. I think all of this could be taught to high school and to middle school students. And, you know, it doesn't have to be taught necessarily by making them read Aristotle and Kant and Mill. But I also think that that couldn't hurt either. The last thing I want to say has to do with moral theories. I said moral theories by themselves are dynamic. Very often, that gets sort of covered up by the way in which we present it with this theory of education where it's just packets of information that would pass on to each other. But moral theories, if they're properly understood, are extremely dynamic because they have to do with people's lives, how they shape them, how they make decisions, how they progress towards their good, what their good actually is, how they judge things. And what I want to say is theories are exemplified. They're embodied and they're endorsed by living human beings who we can point to and who actually get into dialogue with each other. So moral theories, in fact, come into dialogue with each other in our day-to-day situations. Again, it's like this. The theories, we could put several different theories here, give them a situation. This sort of thing happens. Can we evaluate this from three different perspectives, a virtue ethics perspective, a day ontological perspective, and a utilitarian perspective that's already asking quite a bit about it. But you get the point. How would these theories respond to each other in this case? Because they do respond to each other. Well, that's growth, to learn that sort of thing. So, very thankful for that comment and that suggestion that was given to me in my other Dr. Sather Chocolate talk about should ethics be taught in school. This is a follow-up from that. You might say this is a bit of cheerleading for how ethics could be taught dynamically in school and why it ought to be taught in that way.


All about Hamas, Hamas is almost impossible to be dispatched or eliminated in one day because Hamas is not sitting in Gaza. Nowadays Hamas is all over the world and Hamas is an ideology. It's not a personality. Yes. Unless in a kindergarten school in Gaza every day preparing 300,000 future Hamas fighters, it's impossible. That's why we need to start a holistic approach starting with education like CSA because education and eliminating any kind of leak of Hamas influence on fresh brains and brainwashing of kids which are having a lot of video clips nowadays on the internet.  This is a language of hatred. This is not a language of the peace but the teachers are teaching. They are taught to the next generation and yes kids are taking all what their parents so let me just answer that and then if you had a second question you can ask that. I agree completely and this is why Israel must occupy Gaza. It must go into the schools and change the curriculum. It must prevent that brainwashing from happening. It cannot just go in and leave and say okay we'll give it to the Palestinian Authority let them do it because the fact is if you go to the books in the West Bank same stuff is being taught over there. They have to stay there and they have to make sure that these schools don't become machines of propaganda and you're absolutely right that Hamas is an international movement but this is the thing about Hamas and it's true about ISIS and Al Qaeda. It's interesting ISIS was big along to you know or 10 years ago remember and it was all over Europe and there were terrorist attacks every day in Europe and it seemed like it was only going to grow and there was no way to stop ISIS because they were everywhere and my argument at the time was if you destroy Hamas in Iraq and Syria if you make it clear that they will never succeed in establishing the caliphate or whatever it is that they were after people will not join them in Europe you know even even bad people want to support a winner. They want to support a winner. They want to support an ideology that they think can win. Right now support for Hamas is huge. Why? Because they're winning. They just managed to you know take Israel that probably the second strongest military force in the world and bring it in a sense to its knees and the world is looking and saying whoa these Hamas people they're strong and powerful I want to join but if you make them weak if you destroy the base in Gaza if you destroy the leadership and I you know I'll say something about the leadership in a minute if you destroy the leadership then people will look at them and say oh Hamas is weak I'll have to look for somebody else to you know some other element and if the West broadly embraces the idea of destroying Hezbollah of ultimately destroying Iran then the movement will disappear completely the movement is driven by the fact that they think they can be successful it's driven by the weakness of the West the weaker the West the weaker Israel is the bigger the movement becomes the stronger Israel in the West are the weaker the movement will be. Let me say something about Qatar. Qatar is a fascinating, fascinating Qatar is a country that funds terrorism it funds Hamas it funded ISIS it funded al Qaeda everybody knew what's that and Taliban and everybody knew this everybody knew that Qatar was funding ISIS and yet the central command the US central command for all operations in the Middle East is in Qatar the largest US Air Force base in the Middle East is in Qatar literally airplanes would leave Qatar to bomb ISIS while money flowed from from Qatar to ISIS Bank it comes this is how weak and stupid America is just to express my view on on American administrations this is pathetic your enemy is right there you have all the military forces in the world I mean Qatar is a tiny little country with nothing yeah 250,000 people what's that 350,000 people but they're rich because they have oil and they have a port and yet America tolerates them funding its enemies no question asks I mean if at the very least the United States should shut down all its military bases in Qatar and leave right because right now they're paying the money the Americans go out shopping they support the economy all that money flows into the enemies right now military bases of the United States are being attacked in Iraq and in Syria by elements funded by Qatar and who is Qatar hosting all the Hamas leadership lives in Qatar the four seasons hotel chain actually put out an email saying they're not staying at the four seasons yes exactly or they tie up political leadership and this is something else the Israelis have to understand is you're not going to get rid of Hamas by just destroying its military leadership they have to get its political leaders and they have to get the spiritual leaders thank you thank you very much thank you thanks for being here


I don't eat, I don't drink, just focus. And that's a very powerful sentence because that pretty much describes a lot of the ways that I navigate through life. Difficulty of day-to-day activities, whether it be a good thing that I want or something that I don't want. I don't tend to have a lot of control over what I focus on, just in general. As some really bad effects on me in terms of my executive functioning, it can make it very difficult for me to transition from one activity to another activity. So if I have too many little things that I need to do on my list for the day and I don't know what order I'm going to do them in, it can lead to a lot of difficulties. On the flip side of things, if I get really hyper-focused on work, I tend to go through the entire day, just not stopping, just keep going.


The phonand dispersion diagram in monodomain anodic porous alumina, APA, films is engineered through the porosity and physical state of the material residing in the nanopores, with lattice symmetry and inclusion materials being the main factors controlling hypersonic acoustic wave propagation. The interaction between longitudinal and transverse modes in the effective medium results in a flat band characteristic of the material residing in the cavities, leading to markedly different dispersion relations for air and filled nanopores. Inclusion materials lead to locally resonant structural behavior, uniquely determining their properties under confinement. APA films provide a new platform to investigate rich acoustic phenomena in structured composite matter. This article was authored by Asotto, Y. Penic, T. Yanagishita, and others.


Russia loses billions as Ukraine drones target key oil hubs. Russia could lose billions in oil exports should Ukraine successfully attack the country's major fuel terminals in the Baltic Sea according to Newsweek. On January 18, Ukraine launched a drone attack on St. Petersburg Oil Terminal, about 620 miles from the Ukrainian border. It marked the first time a drone had targeted Russian President Vladimir Putin's home region, Leningrad, since the full-scale war in Ukraine began in February 2022. Another Ukrainian drone attack near the city of St. Petersburg overnight on Sunday struck a major gas export terminal, a Novotek PJSC gas condensate plant in the port Ust-Luga, causing a huge fire and halting fuel supplies. Ust-Luga is Russia's largest Baltic port, and Ukraine's security service claimed responsibility for that attack the Kiev Post newspaper reported. Should Ukraine successfully strike Russia's two major oil terminals in the Baltic Sea, Ust-Luga and Primosk, it could halt the export of 1.5 million barrels of oil per day. This could cause the country to lose billions, Bloomberg reported. The amount of oil shipped by the two oil terminals daily accounted for more than 40% of Moscow's total seaborn crude exports on average from January to November 2023. Bloomberg reported citing industry data. Russia depends on its oil exports and energy industry, which make up some 30% of the country's budget revenues and are crucial for the funding of Moscow's ongoing war in neighboring Ukraine.


The new YouTube cards and how they help you get more views. See that eye in the top right corner right there? Try clicking it. That is the new YouTube cards feature that some of you can use in your videos right now. To see if you're eligible go to your annotations page and do you see a message at the top that says there's a new cards feature try it now. Click it if you see it and then you'll see what you see behind me. This is the new cards interface where at any point in your video you can choose to add a link to your associated website to your fundraising campaign to merchandise or to a video or playlist. That's how we have been using it on this channel Freedom Central. We have been adding links to our videos and playlists at correct moments at appropriate moments in our videos. So for example if I'm talking about heartbeat look there's a link to the new heartbeat up there in the top right corner. So that's how the cards feature helps you get more views. It lets people jump to exciting videos relevant to what you're talking about. Now some of you do not see this feature and the reason is as you see behind me YouTube has only enabled it for certain channels it's in development and the way they choose channels is actually a mystery to me but they do choose them in some way and if you're lucky enough to have the feature enabled on your channel you can use it at any time and that's how we've been growing faster because of these cards. Do you have cards enabled on your channel? Tell me in the comments below we would love to understand how you're using cards to help you grow so we can all benefit so we can all learn and grow together as a family because that is the spirit of freedom to help each other grow together faster and always share tips and techniques that we discover so we can all benefit together. This is Freedom and who am I? I am George CEO and founder of Freedom and you've been watching and we will grow together as a family because this is the Freedom family. You are part of it we are all part of it and we're all growing together. So grow with us and partner with Freedom that play now button right there on the video bar is all you need to click to get started. Being doctors and teachers what happened to being your brother's keyboard?


Today's topic, as you can see, it's all about the touchy, feely side. Please welcome with a big round of applause, Peter Hutterer. Thank you. Thank you. Yeah, he's already introduced me. My name is Peter Hutterer. I work for Red Hat here in finally sunny Brisbane. Used to be a bit wetter than that, so you should pick just the right week to come. In my role at Red Hat, I maintain pretty much all the X input drivers these days, and the large part of the X input subsystem, at least whatever Daniel isn't working on at this point. Today, all I'm going to talk about is multi-touch. Not single touch, just multi-touch. And the first warning I have to give you is that we are still in the process of actually implementing this. The certain bits and pieces of the stack are already in place. Others are close to being in place. Others are completely even unscoped. So the talk today is going to be on a level where what I'm going to tell you today is hopefully going to be useful in a year's time. I'm not going to delve too much into APIs, because they may still change in the next couple of months. Unfortunately, when I submitted the talk abstract in the middle of August, I was hoping that we were close to release by now. Fortunately, it turned out to be a bit more complicated than expected. So I'm going to give you a bit of a high level roller coaster through all the three, four layers of the stack. First of all, touch. Everything is about touch these days. Everyone wants to have multi-touch, which is kind of funny, because multi-touch itself as a technology has been around for, well, since the early 80s. That's when the first research paper started becoming popular. Became kind of unpopular during the late 80s. People just stopped working pretty much. What made it really popular for the average user was pretty much your iPhone a couple of years ago. That really put multi-touch technology into everybody's hand. There is another quite popular, at least in the media, quite popular touch product out there, which is Microsoft Surface. I'm sure you've heard of that. Surprisingly, that hasn't made it into the hands of most users yet. I've had it from good sources that the current price stack for it is $25,000 Australian, which is probably $24,000 in monopoly money. So the iPhone really can be credited with putting multi-touch into everybody's hand. Since then, everybody has tried to do the same thing, so half of us probably have Android phones in some way, Nokia is working towards it, and plenty and plenty of other devices. We're seeing laptops with built-in multi-touch screens. Some of them have serial walk-on tablets. Some of them have other touch screens. So it's really touch. Everybody wants to have touch. Unfortunately for us, at least on the technology layer and on the user interface layer, touch is not the same as pointer. So I don't know if you guys are aware for the last couple of years we've been working mainly on something called multi-pointer X, which allows you to use multiple mice at the same time. Once that was done, multi-touch became big, and I discovered, great, now I can start all over again, because everything I just did doesn't really apply to touch. Why? There are two fundamentally different concepts. In touch, there is no state. But there's plenty of user context. If you think about how you use the average application with your mouse, for example, you use your drawing application. You use your mouse, you have one pointer that is your representation on the screen. You move over to the color selector. You select the color green. The application attaches this color to this pointer. You move back, you start drawing. You start drawing in green, surprisingly. That works. Our brain can comprehend that. We've just selected green with this pointer. Clearly, that pointer has to draw green. It works in the same way if you have 15 pointers on the screen, so you have 15 mice connected for whatever reason you want to do that. You can attach green to that pointer, red to that pointer, and depending on which one you move. It'll work out. For touch, it is quite different. What we see coming from the hardware is touches appearing, possibly moving around, and touches disappearing. So for that example, I just mentioned with the color selector, if you look just at the hardware events that come, if I select the colors green, you see a touch point appear. Select the color, disappear. And then later, you see another touch point appear. Maybe move down on the canvas and disappear again. There is no hint to the application. There is no hint from the hardware that these two touch points may be related. The only hint that is there is in our brain. Because we know that if we select green and then we start painting, we know we want to paint green. But this is not a straightforward situation. Because depending on what use case I had, this may be wrong. Because I'm two-handed, as most of you, I believe. So you can, for example, select the color green, and you start painting in green. Select red, red.  Other people say, hey, I'm really ambidextrous. I can use both hands to paint. So I select the color green, start painting, I select the color red, and start painting in red. In both cases, the sequence of events that the application sees is identical. It sees two touch points appear on the color selector, and it sees two touch points appear on the canvas. The only link you have is in your brain. So that's what I mean. There's lots of user context, but there's very, very little information from the hardware. This is, unfortunately, not a technology problem. Or, better said, it is a problem that we cannot solve in technology. So for all of you that are writing applications or application interfaces, this is becoming your problem now. The only solution to this is to write a user interface where this never becomes a problem. Where the user is never tempted to select two different colors, and then you have to figure out which fingers paint in which color now. You have to write a user interface where the path of selection, the path of operation, is a single one. There's no ambiguity anywhere. So we can't simply take our desktop user interface that relies heavily on the state permanently being attached to the pointer. We can't simply move that to a multi-touch interface and say, hey, everything works now if we make the buttons large enough to actually hit them. You really have to rethink the UI so that it works with touch. And you can see all the popular touch products that have taken off so far were phones and dedicated machines like the Surface Table. Neither of them is using a traditional desktop. All of them is using, at least at this point, fairly simplistic applications. If you compare your average desktop application to a touchscreen application on the iPhone, you notice the desktop application is always more complex in the user interface because there's so many more things we can do with the pointer. With the touch, usually, if you have more than three selections, it becomes really hard for the application to figure out where to attach the state to. There's a couple of other problems that are caused by touch in general is the classical fat finger problem. That's actually the technical term for it. If you have a pointer, you have a one-by-one pixel selection area. You can hit a button that is one-by-one pixel, assuming your eyesight is good enough for that. With a finger, most people's fingers tend to be slightly larger than one-by-one pixel, which leads to a problem that if you have a phone, for example, and you put a user interface element in the top left corner, you may not be able to select it. If it's a flat touchscreen, you can. But if there's a bit of a bevel around it, you may not be able to actually reach that user interface element because the roundness of your finger may not be able to reach that topmost bit. So another thing to consider in UI design, reach. Not usually a problem on a phone. Most people tend to be able to reach any area of the phone. If you're talking about large horizontal touch surfaces or even vertical ones, not everything that can be displayed can be reached by a user. So imagine this table here is one big touch surface. If you put a virtual keyboard on there and the space bar is in that upper corner, I'm probably not too inclined to write long paragraphs because if I always have to go like this to press the space bar, it doesn't work. It gets even worse if you have multiple users standing around the same table and you work because what's easily reachable for me is pretty much this area here. And if there's someone standing next to me, it's this area here. And you might see that there's an area that is about shoulder width, at least, that is overlapping space. So I can't just reach into someone else's space and do something. They're probably going to punch me. There are social protocols to prohibit that. So again, a user interface problem. You need to figure out that. Again, on a phone, not really a problem. And occlusion. Whenever I touch something, my hand occludes whatever's underneath my hand at the moment. Funny exercise for you to try at home. Next time you're trying to write an SMS on your touch enabled phone, turn it around. You can type on a keyboard that's upside down. It's not too hard. But you'll figure that every time you type a key, you can't see what you're typing anymore.  If you turn it around, that happens to be under your finger, you can't see it. So you're essentially typing blind on a phone that has no haptic feedback. So again, occlusion. Massive problem when you're doing UI design. Gestures, next big topic. Once you start doing touch, you want to do gestures. We all know, oh, there's so many gestures out there. Just pinch, swipe, rotate, and tap. And there is only four gestures. There's really only four gestures that are intuitive enough that you can expect people to know them. A friend of mine was doing multi-touch interfaces. He started about six or seven years ago. And he said that with the popularity of multi-touch coming up, he's doing less and less multi-touch in every single application he writes. Because six years ago, the multi-touch application was a dedicated application for, say, an air traffic controller. The company, building them, could afford to spend two weeks training time for that employee to learn every single gesture, tip, trick, whatever he needs to. Nowadays, a multi-touch interface has to be usable in instances. And if it isn't, people are going to throw it away. That limits us to swipe, pinch, rotate, tap. Because there's nothing else. There's plenty, but you have to train it. Think of it, good example I've heard once. Everybody think of the gesture to copy an object and then find someone else who thought of exactly the same gesture. Good luck. You might find two or three people in this room if you're lucky. The next problem, once you start thinking about gestures, is, OK, so we have touch and we have gestures. But is touch more important than gesture or is gesture more important than touch? The answer for that, again, is not always straightforward and is largely a UI problem. Give you an example. We have a window here. I put one finger down. It's clear. I put another finger down. Simple. I put a third finger down. So what do we do now with the third finger? Is this a third finger, three finger gesture? Or is it a two-finger gesture in this particular window? And the third finger is just something else I'm doing outside? Or, given that this is hardware data, we don't actually know where the data comes from. I can put one finger down, two finger down. I put the third finger down. And then I start moving over this way. And if you just thought there was a three-finger swipe, unfortunately, by the time you realize it wasn't, you've already done the wrong thing. So again, largely a UI problem. Don't make this problem appear. Then you don't have to fix it. Easy. Another one is that we have two windows. You start dragging an object from one window to the other window, and then you tap down with the other finger. Is the other finger still part of that gesture, even though it originated in different window? What happens if that was actually like this and then I tap with the other hand? Because clearly, to me, those two hands, it's two different things. But two fingers is clearly the same gesture. Again, you cannot know this. This is one of the things why or I believe that's one of the reasons why no one has actually tried a multi-window desktop on touch yet. Applications on the iPhone and the Android phones, they're always full screen. That's the reason why, because you can't easily move gestures between windows. The other one, how easy it is to confuse even simple gestures? We all know what happens if I do that. Assuming this is, say, a map application, what happens when I do that? It zooms out. Unfortunately, where you put your fingers down, there was two waypoints. And instead of just moving those two waypoints together, which was what I actually wanted to do, you've just zoomed out the map and I can't see my waypoints anymore. So again, until you actually know what's happening at the very point you touch, you don't know how to interpret that touch. And even then, sometimes you don't really know. Because it might still be a zoom gesture. It just might have accidentally slicked at that. So again, massive UI problems are coming towards you there. After all these problems, how do we actually implement this? So let's see what's happening at the lower level. So because the technology itself is solvable. The UI, so far, still being worked on. If we go to the lowest layer, the kernel, what we have with 2631, we have what's called Multitouch Protocol A. So that was the first one. It's for devices without hardware tracking. So devices that just always give you the whole frame. So the diamond touch, for example, for those people who know it, is that it basically gives you the whole, it has 192 times 128 antennas built in, and it just gives you the value for each antenna in each frame. So if you put two fingers down, you essentially get the two spikes and the two spikes here. But with every frame, you get the full, so with every cycle, you get the full frame. Since 2636, we have the so-called Protocol B, or the slot protocol, for devices that can do tracking in hardware. There's a few of them out there. Wacom serial devices come to my mind here. I'll give you an example for both of them. First of all, let's look at a very simple input event from, say, an old traditional style touchscreen or an absolute mouse, whatever we have there. This is the sequence of events you get for each movement.  You get the time when it happens and so on and so forth. What matters here as well is the sooner report. The sooner report is simply the kernel marker for it. This was one hardware event. So you get these three packets, two positions, and hey, this is it now. So quite simple. A protocol A event looks a bit different in terms of that we have. Again, one SynMT report to mark the end of this particular hardware event. But then you get the empty position X, the multi-touch position X, empty position Y. You get a SynMT report, which simply means this is the end of one multi-touch part of this event. Then you get the second position, 500, 600. You get another empty report which says, OK, this is the end of the second frame. So if you get a frame like this, you know that there is currently two touch points, two fingers, whatever it is, on the positions 100, 150, 500, 600. Every time you move these around, you get the full frame, just this one. So the next one would be 110, 170, 500, 600, for example. So you always get the full frame. If you lift off one touch, what you get is, again, the full frame of everything the hardware sees. Because the hardware now only sees one touch point. You get 500, 600, you get an empty report. And in your user space process, you now have to say, OK, before I had two, now I get one. So one of them must have disappeared. That's it. And then if you lift the second one, because you have nothing, you just get the empty report saying, look, this is it. And off we go. Protocol B is slightly easier for user space to handle, because it tracks the touch points for you. So it has the concept of slots. Depending on the hardware, you can have one, two, 10, 15 slots. I'm not quite sure what the maximum is. 255 or something, probably. In the case of the same event stream, what you get is first you say, in slot number zero, we have a tracking ID of 30. So it provides the tracking IDs for this touch. We have a position x and y. And in slot number one, we have a tracking ID of 34. And the other position, and that's one event. The big thing about Protocol B is that it is a stateful protocol, so you have to remember what happened. So if I don't move the second touch point, but I do move the first touch point, I get again. Empty slot zero has just moved from the previous position to 110, 180. I don't get anything for the second one because we haven't said it's gone, so it's still there. So you have to remember the site. If I lift the first point, all you get is a tracking ID of minus one, means this has disappeared now. And you notice that the slot is missing now, because the kernel buffers certain repetitive events. And because the last empty slot we sent to the client was for zero, if we send another for zero, the kernel will just buffer it or make it disappear. So in the client, you have to remember, last slot was zero, just got a tracking ID of minus one. Therefore, touch point one has disappeared. If you now lift the other one, you would get an empty slot one and a tracking ID of minus one for that. So if you can always use the slot protocol, it's so much easier to handle. There is a guy called Henry Grütberg, who is responsible for pretty much most of both protocols. He has written a tool called MTDef, which converts in user space from protocol A to protocol B. So you can essentially have, as we have an X strict requirement on we want protocol B, we don't deal with protocol A. If you don't do protocol A in hardware, you need to convert it before we can use it in our space. Bit on the history, it has a couple of more features. So you get width and height of the touch point, the orientation. If you get width and height, you always get the orientation. You get a tool type. Walk-on tablets, for example, can send simultaneous pen and finger events. So the tool type becomes important, so you know which one of the two is the pen, which one of the two is the finger. You get pressure, and there's a couple of other ones. History of the multi-touch protocol is pretty much Henry Grütberg wanted his MacBook touchpad to work with multi-touch. And so that's where you get the width and height and orientation from, because they actually give you ellipses. So in terms of driver state in the kernel, we have currently most of the multi-touch devices have their own driver. Stephane Chartier and his crew have been working on a unified MT driver that essentially speaks to the HIT protocol. The Windows 7 driver is supposedly really, really good in terms of if you can plug any device in. And it will just work with Windows 7. So that's kind of what Stephane is aiming for as well, with the unified driver. Windows guys have it a bit easier because you don't get the Windows certification unless you work with the Windows driver. So yeah, it's a bit easier to comply if you're the driver in that case, because the hardware has to work with you. Let's see. Next layer up, what do we have in Xbox so far? Again, this is very much under development and I had to change the slide several times during the last four days. The fixed parts of it at this point is that multi-touch will be part of the X-input extension version 2.1. Version 2 pretty much revamped most of the input sub system and gave us the ability to use multiple mice and keyboards. And we're tacking multi-touch on top of that, which turns out to be surprisingly easy once you figure out all the semantics. Daniel might disagree, he's been actually writing most of the codes so far, but I'm just blabbering along. It's great. True. So one of the things X-input 2.1 will give us is simultaneous use of multi-touch and traditional point of keyboard interfaces. So if you want to do that, you have your multi-touch desktop, you can use your mouse, you can use a touch pad, and you can use multi-touch on the screen directly. And they all work simultaneously and independently if necessary. This is a rather novel approach. I haven't been able to figure out how to plug a USB mouse into my phone yet, but I'm pretty sure it wouldn't work properly anyway. It's rather pointless. But yeah. We also get point emulation in the protocol. That means we should be able to use any X application, be that Firefox or be Xcalc, with a multi-touch interface. I know, as I said before, that the UI doesn't really work with multi-touch. But if you want to transition from your current desktop to a true multi-user desktop, you can't simply say, at least not on the desktop, you can't say everybody rewrite their application right now, because otherwise you won't work. So we did one by one. We allow multi-touch applications if they can. We encourage people to write a multi-touch applications. But until it's there, you can still use your old applications. So you have Firefox and your drawing program open. You can draw like this and still click on links in Firefox. The big thing, and that's a bit of a break with the XServe internal infrastructure, is that traditionally we've had one device and one input point or multiple physical devices and one input point, the pointer. What's new about the touch support is that we now have one device but multiple input points. So even though you only have one point that you can interact with multiple areas of the screen at the same time through one physical device, it turns out that the old crafty X protocol is not particularly well suited for that. So we had to find a couple of other ways to get around those issues. One of the features that we have built into it, or we're planning to once it's released, is the difference between direct devices and dependent devices. Direct device is a simple one. You click somewhere, stuff happens. Exactly where you clicked. And dependent devices, for example, most of the latest Synaptics touchpads have multi-touch or the Apple Magic trackpad, I believe it's called, where the device itself is essentially a pointer device.  But at the same time, it does support full multi-touch. So you can do a swipe. You can do your Zoom gesture on the touchpad. However, you do not usually want that to be directly mapped to the screen. If you use that touchpad and you click in the upper left corner of the touchpad, you don't want the pointer to suddenly jump up there and perform some multi-touch gesture. So a dependent device in X simply means that the device has a pointer. And any touch events are sent to the window that is underneath this pointer. So any touch event is always in relation to this particular pointer. In a direct device, if you click here, it's that window that gets the event. Dependent device, pointer is here. You do your gesture, everything goes here. So one of the biggest distinctions. Kernel doesn't need that. Kernel doesn't really care about graphics. So it's one of the things we have to add. We have mixed mode, multi-touch, and pointer keyboard, which means that the device can be both a pointer and a multi-touch device and a keyboard if you're really fancy, which could be quite interesting for virtual keyboards because you could pump that into hardware keyboard if you want to. And of course, traditional protocol events are still supported. As I said before, you can use your multi-touch drawing applications at the same time as Firefox. This is, as of two days ago, the simplified, actually no, it's a pretty accurate diagram of touch handling. Turned out to be a lot simpler than we expected. This is, unfortunately, not a joke. It covers most of pointer emulation. So what you see is that we can get three events from the kernel, yeah, from the input drivers under the three red ones. And you just follow whatever path along until you hit something blue, that means you have to send something to a client. And it turns, so far, we haven't found any dead ends yet, or at least not any bad ones. So we're getting there. Looks good. The three phases of touch that we care about in the server is touch begin, touch update, and touch end. It's quite simple.  You move it around, touch update. Lift the finger, touch end. There's special touch update unknown. I'll skip that for now. You also get a touch ownership notification. Come to that in a second. But the three phases of touch would really matter for clients. You see some touch coming from somewhere, moving to somewhere, disappearing again. Touch events are delivered like point events, which means if you touch here, the window that is here gets even. Same as if you click somewhere with a pointer. The one exceptions are grabs. And one of the reasons why the diagram before looked like it did was grabs. For those of you who have never had to deal with grabs, aside from enjoy, you've had a great life. Haven't missed anything. A passive grab is the extra mechanism to intercept an event before the event is actually delivered to its true target. The most common operation for this is the window manager has a passive grab on the button, which means if you click somewhere, it's the window manager that gets the event. Window manager reshuffles the window to bring that window to the foreground. And then the event is delivered to the application underneath. So that works if you click on the submit button in Firefox somewhere. The window manager will bring the Firefox window forward, but it'll still send the form off. Passive grabs are extremely complicated in the necks and X protocol specification that became even more complicated once XI and XR2 were added on top of it. Now we're trying to kind of wrap this around and still support passive grabs in the traditional way, through point emulation, while at the same time adding a new way for touch events to work. So what this means for touch events is for mainly technical reasons, if a client has a grab on a touch event somewhere, the events are delivered to the whole window tree on the position the touch event appeared. So I'll give you an example here. If you have a window hierarchy that is three layers deep, which could be, for example, you have a flash window inside a Firefox window, inside the window manager's window. You'd have a window hierarchy three deep. I've drawn them here as a tree. In reality, they're inside each other.  But only the topmost one that currently has the grab will also get the ownership notification. So you have two clients that get touch events, but they're basically being told, here's an event, it's not yours yet. The first one gets, hey, here's touch events, do something. Then the topmost client can either decide to accept or reject the touch. If it accepts, it basically terminates the events to involve the others, and it continues processing. If the topmost client, like the window manager, for example, shuffles the windows around and then says, I reject this, I don't need it anymore. So the window manager sends back a reject event. What happens now is we continue sending to the other two. And we send a new ownership event to the next client in the stack, saying, hey, this touch event that you already got some events for, it's now yours, do something. And we keep on working until some client either accepts the event, or we arrive at the bottommost window, and events are just processed at normal. So the main thing to take away from this, we haven't, again, Daniel and I were sitting in the criterion, which I can recommend, corner of Adelaide Street and George Street, has big Helgon tap. After four jugs, we had it all sculpted out. That diagram, yeah, four jugs. Awesome. So only one client at a time owns the touch grabs, or the touch stream, sorry, regardless of where they have you grab, even if you're just selected for events on your window, eventually you will become the owner of the touch stream. Until then, you still get the events. Why? A, because that way we don't have to buffer them in the server. It's quite easy to run out of memory if you do that. The other thing is that some operations on touch events take time, such as gesture recognition. You might need a sequence of 10 events before you can decide what you're going to do with that, or before you can assign it to user ends on as a fourth. So by essentially giving everyone the touch events at the same time, even when they're not supposed to do anything with them, they can do some pre-processing, just in case they will get this touch event, so they don't have to always lag behind. With button events, we currently do a serialized. Send it to the first client, the client says, nah. Send a second client, nah. Third client, and it just keeps on going. Touch events, everything at the same time. So as I said, you will get touch events, but if you're not the owner of that touch stream yet, if you process them, you have to do so at your own risk. So you can start to do gesture recognition. You can start to highlight something. Any visual feedback. But anything you do must be able to be undone. Because at any point in time, you might get a notification. You know those touch events we just sent you? Someone else claimed them. They're not for you. So anything you did up to that point, you have to be able to undo. If it's gesture recognition, easy.  If you've highlighted something, you have to un-highlight it. And then you have to decide, was it really good at you to highlight something? Because not a user's confused. So again, there's a couple of UI questions in there as well. The ETA, for that, is approximately August 2011, I think. So the X over 110 is supposed to be out in two or three weeks, so six months from then. X over 111 hopefully has all that built in. Once the X over have it, we have to go further up the stack because most of you probably are sane enough not to code in Xlib, if not. So QT, I've been talking to some QT guys. What they're doing is they're essentially waiting for X input 2.1 to be in a stable release. Again, I'm just giving you a high level view of those. That doesn't mean they're just sitting on the sidelines waiting for us. They're actually tracking the current development. So there's heavy work supporting XI2 in the background as well, which is somewhat of a precondition for 2.1, not too much. They can't completely switch to XI2 because it's a lot of work that would lose some features and it's for a little gain. So they're probably going to have core events and XI2.1 events at the same time. QT already has a multi-touch API since 4.6, which came out, I believe, last year at some point, early last years, I'm not sure, which already works on Windows and possibly OSX. So what they're basically doing, once we have the X input stuff in place, they hook up the X input back end to the API they already have, and then magically everything works. So the theory goes. Point emulation is done in the toolkit by QT, so you have an application that is built against an older version of QT and you run it on a multi-touch enabled display. QT will do point emulation for you, which is going to be quite interesting because you know how I said before, we're going to do point emulation in X as well. So QT is going to get the touch event and the point emulation event or not. And then it has to figure out which event is being matched up and you can't do that without supporting XI2. So from an X point of view, if there is a point event that is generated through point emulation, so if you touch somewhere and it causes a button press to be generated because of some old client, we will actually say this point event was generated in response to touch.  Could be interesting for QT how to do that. Terms of API, again, very, very high level here. You can see where we got the idea for begin, update, and end from. So they have the same three states for a touch. And in your graphics item, you essentially just say, hey, set except touch events and you will get all the events sent to you. So it's a fairly simple API. There's excellent documentation out there. GTK3 is going to use XI2 by default, which is kind of interesting. You can do all the multi-pointer stuff. There's no current plans to support XI2.1. Surprising all the norm guys are rather busy with norm 3 at the moment. I want to talk to Carlos. He said he's currently trying a gesture interpreter that passes gestures to widgets. That is currently pointer-based only. So you do your circle, you swipe with the pointer, and it'll transfer it. There's no direct plans for multi-touch yet. Having said that, I do have an email in my inbox with a couple of answers that I haven't read yet. So possibly maybe he changed his mind in the last two days. The API for the gestures is quite simple again. On your widget, you essentially say, I want to listen to those five gestures, six gestures. And then the race is just hooked into the event delivery with signal connect and callbacks. The third big player in the multi-touch scope is canonicals you touch. Canonical deserves a credit for actually throwing people power at touch. Everyone else is just working the spare time. Canonical, I think, has five people in the payroll. Yeah, five or six people in the payroll. They've already shipped some stuff in 10.10, which I've seen a couple of people use. There's going to be more updated stuff in 11 or four. Canonical has an extremely strong focus of gestures, which goes both ways. If you remember before when I said touch and gestures, you kind of have to consider both. In terms of what they are trying to do is they have a three-part component. I'm going to show an architecture diagram in the second. One of the main components is GRAIL, which is an acronym that you probably don't need to remember is gesture recognition and instantiation library, which is essentially a gesture recognition engine. GRAIL talks to GACE, which is the interface specification and the library that clients are supposed to use for system-wide gestures. And then you have Unity and the plugins and the compass for window manager-wide gestures support. The architecture diagram, the latest I could find in the Multi-Touch-Def list on Launchpad. So this is by Duncan McGregor, I think, sent to them. As you see, the X server sends out the XI2 events. For those toolkits or clients that handle the raw events, it goes straight to the application. For the others, it goes through the U-Touch compass plugin, through GRAIL into GACE, and then GACE talks to the application layer, GACE instance, through some RPC mechanism. I'm not sure if that's 100% scoped out yet. At least in this one, it says it's likely to like D-Bus. In terms of API, quite simple. Create a new instance of GACE. You register either your event callback, and you just say dispatch events, or you do a manual handling of the events one by one. And GACE events are essentially, you get a couple of one, you get a new device that has been added, the device has been removed, and of course you get all the gesture events. Unfortunately, we live in interesting times. And I'm very, very sorry for you guys. All right, thank you. If you have any questions, feel free to ask. Questions, guys? I've got a microphone here. Put a hand up a few. I've got a question. Cool. I'll just wander up there. I'll have to pass it to you. We've got a little bit of time, so just hang on to it if you want to ask a couple. Hand it back when you're finished. What device could I purchase to test this stuff out? What's the cheapest option? The cheapest option is probably the Apple touchpad at this point, the dependent device. There is a couple of laptops that have e-gallax controllers, entry tablets, and what's the one you have? OK, so think that T4010S has an entry tablet that I believe does two finger. Is it an IT iPad for the recording? IT iPad and Lenovo Netbook. There's the Magic Mask, which is multi-touch. I'm not quite sure how that's hooked up yet, but I think it works. So Magic Mask works as well. Phones, I guess any Mego device? Yeah, the Magic Trackpad is probably the cheapest option I think. It's like $99 in Australia at this point. OK, so first real quick, do you know if the Wacom bamboo pin and touch are supported yet? As of 2637, the bamboo has kernel support. And I think Chris sent me the patches for multi-touch about two weeks ago, and I think most of them got merged. So by the time I get to deal with my inbox, it will probably work. Having said that, Wacom is a bit of a special case in terms of that it currently does gestures in the driver. So if you do the especially zooming and swiping and whatever else it does, it does it in the driver and then submits key zooms to the application. So if you do a zoom, the Wacom driver will convert that into Control Plus and hope whatever application currently has to focus does something with that. Yes. The driver can't really do anything yet, because we don't have to serve in place. Which means we don't have the APIs for the input drivers in place, which means like as much as it wants to do, there's just no path upwards for multi-touch events other than this. And have you seen any what was done by Pogo? They have a touchscreen stylus for phones and trackpads called the Pogo Sketch. But then they have software called Inklit that turns those into behaving like a tablet driver. Haven't heard of it, can't comment. Just the one thing I'd point out is, according to them, their software works not as well on the Apple multi-touch hardware, the external tablet, because the Apple external one does not give as much information out as the built-in trackpads do. Could be. Yeah, I haven't looked at the, it's one of my to-do lists by a trackpad. It's been on there for about a week now. And sooner or later, I'll manage to go to a shop. Over here? Yeah. I'm not sure if this is too blue sky, but I'm just wondering, I'm just thinking whether you were talking about difficulty in distinguishing between, say, fingers and two hands and that sort of thing. I'm just wondering whether the protocols and the APIs are open enough, say, to consider developments in hardware along the lines of, say, combining multi-touch with, say, the connect, I'm not sure what the generic term might be, where you could actually, you know, using, imaging actually distinguish between fingers. So you could actually know that, you know, finger one is touched as opposed to other one. And the other thing is, you know, orientation of the hand as it's moving towards the screen. I don't know, does that make sense to have enough hooks to do that? So it's a multi-sided question. So one of the things is that, unlike a mouse, which is a fairly straightforward build, and the most exciting thing is, is it optical or does it have a ball? Touch devices tend to have a wide variety of technologies. So surface table, five video cameras underneath. They combine that into an image. I think three of them track different objects and so on and so forth. So you could do with a high-res camera, you could do something like fingerprint reading on touch, if you really wanted to. Other devices, capacitive, resistive, there's, I think, mixed melt devices out there. So a lot of it tends to be handled in hardware only and abstracted through the hit driver, HID, which is currently seeing some changes as well to accommodate for new features of this touchpad. Unfortunately, because I'm not actually directly involved with the kernel development, I don't know all the details. I can hook you up with a guy who's written the Grand Unified Input Driver. He knows all about that. So if you come later, I can give you his email address and then you can talk to him. OK, one last quick question. How does Ubuntu moving from Xorg to Wayland affect this? It could be interesting. Wayland doesn't really have an input infrastructure at this point. It does. It's a very simplified one. It's a bit blue sky. I don't think Wayland is going to be ready for, I don't know, another year or two. That is my strongest because input tends to look easy from the outside because, technologically, it's easy. It's semantically very, very complex, as you've probably seen in the first half of the presentation. OK, thank you very much and thanks for the questions. Thank you very much, Peter. I have a gift for you on behalf of Linux Australia. Has anyone not heard the story yet of what the gift is all about? Raise your hands if you want to hear it. Very few, so you're not. But in a very brief nutshell, it's a very nice gift and I'll tell it to you afterwards. Thank you, Peter, again. Thank you, if you would. And that's the end.