My assigned topic is secularism in India and I been told I should speak about it historically and Speak to the current situation. I'm keen to speak to the current situation though. I feel a little impertinent speaking about it with Young activists here who have been in the field for so long and know much more about it than I do and people like Harshmander and others Anyway, I'm going to make an honourable stab at speaking about it and let me begin by Saying that we can't really understand secularism unless we situate it historically and Secularism is a European notion. It's not an Indian notion And the secularism India adopted was the secularism that originated in Europe So it's good to get the genealogy of secularism right because Concepts have Origins in very specific circumstances. You can't analyze a concept or philosophically expand a concept without Situating it in its genealogy in the conditions under which it arose because it applies with urgency when the conditions under which it arose are replicated and So I'd like to quickly situated in its origins in Europe and then move on to talk about Briefly about its its trajectory in India in the 20th century and then speak to The conditions we are for we are landed in now In the 17th century roughly in the middle of the 17th century After the Westphalian peace Certain standard ways of legitimizing state power Sees to have any hold on people For centuries State power was legitimated and justified by a theological ground the divine rights of The monarch who personified the state In with the rise of the new sciences in the 17th century that Justification for state power cease to have any hold in people's minds so a new form of justification was sought and It was sought not in theology, but in political psychology by that I mean that a new form of entity had emerged after the Westphalian peace much later it came to be called the nation and Scattered locations of power began to be increasingly centralized and when that happened the concept of the nation and the concept of the state Became indissolubrily fused. In fact, they were represented by a hyphen became the nation-state and There was no understanding the one without the other And justifications of state power in this new psychological version rather than theological version Took the form of creating a feeling in the populace For the left-hand side of this hyphenated conjunction nation-state rather than directly for the state so you had to generate in the population a feeling for the nation the left-hand side of the conjunction but because the nation in the state were Indissolubrily fused that provided a justification for the exercise of state power in That centralized form over the nation It really only happened in the middle of the 17th century a nation by tax for the first time was imposed by crumble in the Interregnum that's the middle of the 17th century so So it was done by this Psychology political psychology of generating a feeling on the left-hand side of this concept In order to justify the exercise of state power. It is on the right-hand side of the disjunction How was this feeling generated all over Europe by an absolutely standard ploy? which was to create a feeling in the populace by identifying an external enemy within Subjugating it and despising it and saying the nation is ours not theirs That's the history of Europe everywhere in Europe. This was how state power was legitimated By nation-building exercises of this kind after the Westphalian peace an external enemy within to be subjugated and despised Saying the nation is ours not theirs The Jews the Irish the Catholics and Protestant countries the Protestants and Catholic countries. That's the history of your Now going to India the question arose Was secularism ever Something which is very central During the 20th century and the answer is it was not for almost the entire Period of that fantastic series of decades of the freedom movement Which is perhaps the most creative political period in the life of our country and It's really remarkable that not just Gandhi but even Nehru hardly ever talked of secularism for decades during the freedom movement and Nehru and Gandhi were completely at one on this Now why was this so? because they both argued and It's not much known that Nehru argued this along with Gandhi But if you read the discovery of India, which is by far his most profound book It is exactly his argument Nehru says that secularism emerged in Europe to counter the damage that I've just Expounded as occurring in Europe nation-building exercises finding an external enemy within Subjugating it and saying the nation is ours not theirs and When that happened in Europe Nehru says There were minoritarian backlashes to it and Many of the majoritarian and minoritarian Majority this majoritarianism that I've just described and the minoritarian backlashes were based as I said on religious grounds Protestants Catholics Jews and So it was felt that even though the fault line began with religious Majoritarianism in this nation-building in the state legitimizing in Europe Even though the fault line began with religious majoritarianism Because there were religious minoritarian backlashes to it This created a civil strife in which it was thought religion was the source of the strife So religion must be ushered out of the orbit of the state and the polity That's the origins of secularism in Europe to repair the damage of State legitimizing nation-building exercises That's the genealogy the social conditions the political conditions under which secularism emerged Nehru and Gandhi said that there's No such damage in India, so secularism is irrelevant If secularism's genealogy is that it's there to repair a certain damage which has a certain provenance certain conception of nation-building and State legitimizing that has not happened here. So secularism is besides the point This is all through most of the freedom movement now Why was this so vivid for Nehru and Gandhi the answer is that they claimed that and Discovery of India is really mostly about this idea they claimed that Indian society did not have this damage It was always characterized by what and I'm using Nehru's expression here an unself-conscious pluralism An unself-conscious pluralism. It's a very interesting term the use of the word unself-conscious there and And his claim was that Since this unself-conscious pluralism has never been undermined by the kinds of things that are just expounded has happened in Europe secularism was irrelevant Gandhi said this even more explicitly the discovery of India says it somewhat more indirectly now What was the alternative idea of a nation or nationalism in India? All these terms nationalism and all came later what I've described in Europe is something that a whole range of Concepts later on described it feeling for the nation came to be called nationalism and when statistical and numerical forms of discourse came to Be deployed in the study of societies and polities notions of majority and minority emerged this way of creating a feeling for the nation came to be called Majoritarianism and Minority backlashers and songs later vocabulary, but the phenomenon started much earlier so Gandhi and Deru's view all through the most of the long freedom movement was Nationalism for us is nothing of that kind that happened in Europe Nationalism for us was rather to replay the unself-conscious pluralism of centuries-long Indian society in the national movement Which would be inclusive to reflect that unself-conscious pluralism So nationalism meant something entirely different than what it was in Europe Because in Europe it had a very specific purpose and it was a very specific ploy What I was calling this subjugation of it of an external enemy within Now Neru and Gandhi's efforts to To make real this idea that for in this country nationalism would be Just simply a replaying of an unself-conscious pluralism in a national movement which would reflect that pluralism Was manifested in very specific moments which Some of which have been very carefully studied some of which have not been very carefully studied So it was a it was a quite different nationalism and they tried to to really make that Different ideal real in very specific very dynamic remarkable moments in in the national movement this inclusive ideal of the pluralism and the two Most significant moments were the Khilafat movement which included the Muslims qua Muslims That was an essential part of insisting that The pluralism of Indian society would be reflected in the national movement and the Khilafat movement was absolutely central to pursuing that ideal I don't the Khilafat movement has been widely studied and I think it is It was one of the most dynamic Movements in The freedom movement it lasted for it's it lasted for three years But its effects lasted for five or six years longer and had it had Tremendously dynamic effects in a whole range of regions in the country, especially Bengal, UP, Bihar, Assam and Very progressive Implications in political society including making Muslims very Progressive on a whole range of fronts and and the remarkable peasant movements of the 1930s which were Not always in the control of the Congress and really were very often independent of the anti-imperialist movement, but were movements of Agricultural laborers and sharecroppers against their overlords Could not have happened without the dynamism of the non-cooperation movement and the Khilafat movement before these were real inspirations for later movements of the 1930s So the inclusiveness of the Khilafat movement Where Muslims were brought in qua Muslims was absolutely essential in understanding the nationalism that sought another later Moment was the Muslim mass contact program, which is hardly studied at all. There's one Excellent article on it by Mashir al-Hassan and that's about it But it it's a very important movement where once again Muslims were included qua Muslims and The and the Congress Party was unafraid to say that we are Using the concept term Muslim to understand our nationalism that was essential part of the inclusiveness and People should be studying it much more carefully than they have it was aborted in a year and a half partly because of the Maasabat element in the Congress high command, but But it should be much more studied it was in the hands of a Marxist a Muslim Marxist qua Mashir and Once again, it was an anti-imperialist national movement the Muslim term was Conspicuously used, but it was completely non-communal movement just as the Khilafat movement was a non-communal movement except for some symbolic eccentric reference to an external cause of the caliphate in in the Ottoman end of the Ottoman Empire so So these moments of inclusiveness were essential to making real the idea of The Indian national movement being inclusive in this way Replaying the pluralism of the country essentially different from European nationalism So secularism didn't surface very Conspicuously in this period because secularism is there to contain and repair a certain damage Hadn't occurred in India Now after independence because of entirely formal reasons of law and constitution that emerged due to the reform of of the Hindu code bill and other Constitutional reforms naturally secularism emerged as a central idea, but it was technically legally constitutionally characterized and This was mostly on matters of reform and Ambedkar and Nehru were very central in pursuing that reform and Urging secularism as a tool for implementing that reform But it's only in the 1980s that secularism Emerged with a kind of urgency that we all have been witnessing in the last 30 years for very specific reasons that emerged in the 1980s and Secularism became and quite rightly became an obsessive focus after the 1980s because for the first time secularism as for the first time Indian Politics and society did begin to replicate what had happened in Europe In the genealogical account that I very briefly gave for which secularism was formulated finding an external enemy and Subjugating it emerged in the 1980s for very specific reasons that have to do with the 1980s So what I'm I'm saying this with some emphasis because there is a view abroad around that a Tendency to say that the Khilafat movement was a communal movement. It was the roots of I don't know Shahabuddin the Shah-e-Ma'am and so on That the Maasabayat element in the Congress of the roots of Narendra Modi and so on I think that view is completely wrong And I think it's very important to to say that it's wrong I Think the the real grounds the roots for Which replicated? European history were laid in the 1980s and I think it's really wrong to take the other view that that the roots were earlier For instance, just three or four days ago. Javed Naqvi wrote An op-ed in which he said the Khilafat movement was was the roots of of all this Muslim Communism of from the 80s on That's the view I think is wrong and sort of historically ignorant and the reason very simple the reason is that Historians have to make a distinction between roots and antecedents antecedents there are lots of antecedents No doubt the Maasabayat in the Congress, Savarkar's Ideas and so on were antecedents to what we're seeing today, but they're not the roots and For something to be the root of something you have to establish that there's an organic causal path from the root to the flowering later on nobody has shown that about Either the Khilafat movement or the Maasabayat and other Hindutva elements In the earlier period So I really think it's very important to stress that it our society Transformed in the 1980s for very specific reasons and you have to diagnose those reasons in the 1980s as you or know Indian society got democratized in a way that it had never been before this was a result of a whole range of of Emerging conditions, but one of the the triggers which was very salient was the Mandel commission report which generated a certain form of politics which caught fire and it And it created a whole range of the possibilities of benefits of various kinds for particular groups casts and the spread after the Mandel commission report and a kind of democratization took place where the people were making demands and The state was responding to them really nearly in a way that had never happened until the 1980s and and the real Hindutva ideology took hold in the Parliamentary politics of India only because it was felt by upper castes and the upper caste outlook that this new politics had revealed that Hinduism was a very divided society and something must be done to unify it and To paper over however illusorily These divisions that had been exposed by the marginalization of politics and This was done by replicating the European idea that you find an external enemy So that Hinduism is united against it rather than divided within itself and that really was the origins of a very determined effort to make a Hindutva politics central to the Parliamentary domain of politics in India and it's when the BJP emerged a Second thing which we have to admit and recognize is that right wing in Hindu politics gained a moral high ground during the emergency You simply have to acknowledge that and it gained the high ground a moral high ground because it showed some courage in opposing the emergency and The center left did not show that courage the center left which was much more powerful the CPM The left showed the courage and opposed it, but the center left Which was much more powerful then just lay down like doormats while Indira Gandhi and her son stamped on the liberties of this country and The Hindu right wing got serious moral high ground and Were able to enter with that high ground into The parliamentary politics of this country of course the last Secondary tears have shown that they did not deserve that Moral high ground because they were a far more authoritarian than the emergency But there is no doubt speaking historically that it got that high ground and it came to have a centrality in Parliamentary politics because it did show a certain courage that the center left which was much more powerful than did not so So the the BJP only emerged as a result of the high ground that was one in that period and came to have a Kind of respectability and centrality in parliamentary politics because of that a third Thing that was essential to the 1980s Onwards is actually a little later in the top a little later, which is the populist version of Hindutva Which emerged somewhat later? Partly over the Babri Masjid issues and then of course in the Personage of the current prime minister who's a populist figure And this all is a more recent development and it's emergence this kind of populism's emergence In Hindutva is is very much of a piece with the emergence of populism say in the outcome of Brexit in Britain or of figures like Trump in the United States and The reason for this populism, which is a slightly later period than the 80s Where what I was describing earlier emerged This populism emerges because of the seeming inability of the left to Introduce in a central and serious way a Vocabulary a discourse a critical discourse to make Fundamental critiques of the political economy that had emerged in this country since 1990 That is Not just in this country, but in Britain. So I'll take the two examples are given of the United States and Britain there's serious dissatisfaction among the working people in all these three countries and There isn't in the political zeitgeist of these countries the conceptual and critical vocabulary in discourse to make a critique of the newly emerging political economy and the reason for this has to be laid at the door of The Blairite Labour Party The orthodoxies of the Democratic Party in the United States and the Congress Party in this country They ushered out of the political zeitgeist any deep understanding of that could allow Ordinary working and work less people to understand what was going on in the political economy That is the orthodox liberal center in all these three countries Usher out any possibility of deeply understanding economic issues. It's just not part of the zeitgeist So if somebody comes along offering fabulously different zeitgeist that are virtually fascist Working in work less people having no other discourse critical vocabulary to turn to turn to these other forces Fantastic illusory alternatives So that's a third reason for the slump somewhat later popular populist emergence of The replication of the European genealogy that I was talking about I want to switch to a slightly different issue again talking about Europe. You see in Europe what is very interesting is that I've given you the genealogy of secularism, but I want to give you quickly the genealogy of another concept, which is quite different from secularism, but But needs to be characterized because it's important in the history of Understanding it's important understanding the history of these this region of concepts. It's a notion of multiculturalism Now multiculturalism is a Self-conscious version of what Nehru in the discovery of India called an unselfconscious pluralism So multiculturalism is a self-consciously formulate A version of that idea and it emerged for very specific reasons in Europe Which was that after the Second World War in which European nations had Lost a lot of manpower They were reconstructing the economies and they invited into their economies Migration from the erstwhile colonies and Many of the migrants came and worked on They were invited to help reconstruct the economies due to man to labor shortages and when they arrived They found themselves facing real trials of racial hostility The Maghreb Muslims in the banlieu of Paris and other cities in France Indian and Pakistanis in all over Britain Turks and Germany and so so they faced serious racial hostility and They felt that The secularism which whose origins I expounded a little earlier was to blunt an instrument To speak to their trials and difficulties in the context of being minorities facing these Racial hostilities there because secularism Because of the on the grounds that I mentioned I should all of it treated everybody on a pile I should out all of religion whereas they felt but that's doesn't speak to the minority specific Difficulties and trials so a new doctrine was formulated in which Minoritarian aspirations for a comfort zone against racial hostility that they faced which is quite severe and continues to be severe and Multiculturalism is the broadly speaking the idea of speaking Crudely here, but it's not doing any violence to The issues multiculturalism is roughly the idea as it was formulated that there are new majorities Everybody's a minority that they just should not be a majoritarian Outlook that everybody should be treated as a minority everybody is Equal that's that's the that's the Aspiration of this new doctrines very different from secularism very focused on Minorities as an issue which arose for very specific genealogical reasons after the second world war in Europe All right, so now if you look at the current situation in there There is a tendency amongst some Commentators by the way, I should add that it is thrilling to me That quite apart from the remarkable things that are happening on the Maidan in the street. Thanks mostly to the young um One of the things everybody's noticed the effects that they have we are morale has been boosted by by the events of the last month And but one of the really tremendous Outcomes of it is that even the mainstream press is Publishing punditry of a very high quality. I mean even something like the Times of India which it which it's No, which it is even hard to call it a newspaper. I mean what it really What it really does is bring together consumers and Corporations right on its pages and it happens to have a few words on the page, but but But even the Times of India, I think yesterday or day before had an editorial which cited in vote The the ex-civil servants Claim that you know this remarkable group of ex-civil servants around headed by Aruna Roy and Sundar Burra and others To say that urging the Supreme Court to declare the CA this is the Times of India I think this is a result really of what's happening on the street at Maidan and you know, I want to speak to that a little more later on So that but there is a tendency in some of the commentary to to say Some it's mostly in the hands of professors not in the hands of activists to to say that Multiculturalism is the more appropriate Ideal right now because the minorities are being oppressed and I Think I Mean I hate to say this, but I think that's hopeless I Think it's hopeless. I mean the idea that in the present climate with the complete domination in the mentality of of ordinary people of the idea of a Hindu nation I Mean just everywhere every time I sit at an auto rickshaw or a taxi. I ask them. It's hot Okay, all right, everyone. It's just basically you it's so widespread that the idea that you're going to convince everybody that There is no majority. Everybody's a minority including the Hindus is Is just pie in the sky It is no way to put your best foot forward now It's too remote an idea What the young are doing on the streets in the Medan is Much more sensible the saying we already have a constitution We already have the formal apparatus of of secularism Which is there in the Constitution because of what I said were the formal maneuvers after independence Just fight for that because that is being undermined by these developments of of registry and the CA this pincer combination of the CA and The NRC which everybody's written excellent commentary on So I think unlike the professors the activists Have it much more sensibly right they're much more understanding of what is feasible one step at a time now I Do want to raise some questions, however While talking about the present the current situation That there's a lot of the everything I read right now, so there's very useful valuable Data that has been presented. I think mostly by the CSDS I Scholars who are accumulating a valuable data bank It looks as if we are right now in a very schizophrenic political scenario At the formal electoral political level the real resistance is happening in The regions in the States at the formal political electoral level Maharashtra People resisting in Bengal, Kerala Jharkhand Electrolot comes these are Resistances, but they're happening at the state level at the national level of formal electoral politics. There's no echo of this the BJP just simply has a kind of Stranglehold of the national level issues and national politics This is evident from the data that you can gather from especially the very useful provided by People like the CSDS and Kristof Schafrilo and others Now The national level issues, however though they're not being They're not actually being fought at the parliamentary formal electoral level because the BJP has a strong control over that at the national level The real large issues are happening on the street in the middle So the schizophrenia is that we have Nothing to echo the resistance of the formal political Resistance at the national level But we have the street in the Madan, which is raising all the big issues citizenship Authoritarianism etc. Resisting it. This is a really unusual situation and One of the things one has to now think about if one is thinking about the possibilities of secularism is how do we Integrate what are the possibilities of integrating this now? There's some things I don't have answers to this many of you probably have thought much higher about it because you've thought about it much Much more from on the field than I do because I'm domiciled Away from you and only come here in the winters But one of the things I don't understand and I raise these earliest questions now before I end I just want to raise some questions that I find very puzzling one of the things that really I Don't understand what which could perhaps Generate something on the large national issues at the formal political level rather than just the activists In the squares in the streets One of the things I don't understand and this is not my view by the way because my Eventual hopes are for a socialist India. So I'm now speaking from the point of view of I'm sort of Holding my nose and Raising questions that should be raised because of not my normative ideals, but about the descriptive scene What are What are the corporations doing when a regime Favors so manifestly favours a very small portion of the corporate sector right Called the Gujarati mafia as as Clearly it is there's no doubt that this regime favours a very small and Brazenly it's got standard cliche take Descriptions crony capitalism and so on and so forth 80% of the corporate sector is excluded from this particular way of Promoting the corporate what are they doing? See I was brought up to think by my intellectual upbringing that in a capitalist society What 80% of the corporate sector's interests are happens, but 80% of the corporate sector actually Should be very unhappy and no doubt are unhappy but They're completely pusillanimous Right, I mean Raul Bajaj has made some noises admirable, but What is what are the? Nairan Murthy is in the Aziz. What are they doing? Why aren't they forming alliances? Why aren't they why aren't they doing something to keep a bourgeois party like the Congress party alive? It's dead in the water Well, the Congress party's learning curve is flat money forgive me for but What why is it? What why isn't the why isn't the bourgeoisie propping up a Party which has always stood for them and and Because surely they don't want to put all the eggs the bourgeoisie doesn't want to put all its eggs in One basket a basket in which it's being marginalized in favor of the Gujarati Capitalist, so I mean there's something completely Shrouded in obscurity for me over here. Now you can say that they are fearful and this government is you know is Ruthless in the way, but I I still Stand by what I said in a capitalist society If 80% of the corporate sector want something they should not be afraid What they want can happen if it's a genuinely capitalist society So you can't just say oh, it's fascism and it's not a capitalist society It's something here is not credible and I don't get it and we really have to try and understand What's going on? Maybe there are people here who can illuminate things for me? The you know what one of the answers you immediately get is that that They can be pulled up for corruption and so on but so here's another question I have for us You see when it comes to corruption in a society like ours everybody in this room knows That every political party is corrupt Nobody really seriously denies that I mean you know I mean I think this the the CPM is is somewhat of an exception and is And but every major political party which has any cloud whatsoever, right? We know it to be deeply corrupt so There was a very brilliant fascist political theorist called Karl Schmidt who said Sovereignty in liberal democracies lies in who gets to call the exception What he meant by that is you could have all these lofty constitutions and laws protecting everything but Emergencies can be declared Exceptions can be declared and whoever has the power to call the emergency is the sovereign Okay, so I want to ask a corresponding question Who gets to call corruption? You see the upe it too fell Because somebody called corruption and fell for lots of reasons, but it fell because somebody called the corruption Who was behind calling it the corruption and who is not calling the corruption today? These are things we need to explore whoever gets to call the corruption has a middle level of sovereignty in this country Who is it? We don't really know and haven't studied carefully enough where and how corruption gets called Who is the underlying caller of corruption? And I think that's something really worth trying to understand So in the schizophrenic scenario that I've briefly mentioned There is it there is one way to think about it is that We should just acknowledge That There is no party at the national level. There's no scope for alliances at the national level the real Resistances at the state level. It's a very depressing thought The idea that politicians third-rate politicians like Uddhav Thakri and Mantha Banerjee are going to save democracy Is a very serious reflection of the country we are in But it is true. They are being they are source of resistance of a very specific soil now the question is We know that that resistance is completely precarious right None of them have said the other day. Yes. Yes. Yes. Things are fine. Nobody knows what's going to happen Nobody knows what's going to happen in Maharashtra tomorrow. It might change He knows perfectly well that these politicians can be bought they can defect Nothing is stable. So this resistance can't be seen as some real I mean the scope for it is completely precarious just given the nature of the resistance takes So the question arises How when it's so when even the corporate sector is is not promoting a national level Formal resistance, it's all only happening on the streets One of the interesting questions to ask is what are the national level issues that are being raised on the street? and of course it's citizenship and It's formal basis which are being fought for Courageously right now, but also it's because in in When it is formulated and when when there's resistance, there's tremendous authoritarianism and and so the anti-authoritarianism is Absolutely central to the national level issues that are being fought. Now. What do I mean by? the extraordinary nature of this authoritarianism It's unprecedented In the post-colonial period in the period of independence What is what what makes it exceptional? What makes it different from the emergency? What makes it different from the state authoritarianism against the peasantry and its rebellions all through the 60s and early 70s? This is just completely different What is the difference and How is it so extreme that whether you call it fascist or not what makes it special and The answer is I believe that You see Gramsci had Gramsci had a notion of hegemony It's a technical term. It's not hegemony hegemony doesn't mean Just dominating people controlling people etc For Gramsci, it's maybe that's maybe what it is an ordinary palace But in Gramsci, it's a technical term and the idea of hegemony is That there whoever rules and since Gandhi since Gramsci was a Marxist. He was talking about classes He said the ruling class has in liberal democracies is Gets to be the ruling class Because it convinces all other classes that its interests are the interests of all other classes Okay, that's what hegemony is for Gramsci. I'll repeat that Whoever rules in his interest that was ruling class Gets to be the ruling class by convincing everybody every other class that its interests are the interests of every other class Now That's in liberal democracy now when you have liberal democracy in that form With hegemony as I've just expanded it. There's no need to be authoritarian You have convinced all other classes that Your interests are their interests So you don't need to be authoritarian Only somebody who doesn't have Gramsci in hegemony Needs to be authoritarian. That's what happened actually in in in the Ragan these emergency The Kareebhi Hattar program had manifestly not Hattar to Kareebhi and she had She did not have hegemony and it was driven the the authoritarianism was was driven by a Feeling that hegemony was missing This government boasts and congratulates itself on having hegemony and haven't convinced everybody yet Continues to be authoritarian And if hegemony means you don't need to be authoritarian if you have a job and you still are thought of it in that's compulsive That's pathological and the students have seen that I mean they've seen it in the sense that they've experienced it Right, you've experienced it and you you just you know you've got hegemony you've got the national level you've got the population by and large in the mentality of of the European idea of nationalism Need the hegemony you are hegemonic Don't call it fascism. It's if you don't want to it's pathological It's absolutely compulsive and the students have seen that That is an inseparable issue. It's you can't separate it from the issue of citizenship and so on those are the national level issues and the question is how can these issues of citizenship and Anti-authoritarianism which is so central how is it possible for it to grow and You have to admit that tremendous though the resistance it how Fantastic boost of morale for all of us as a result of it. It's still restricted to the cities and to the urban intelligence here so can it have the aspirations of effects of a wider spread and all the objective conditions for it are there because It's Quite apart from economic issues of farmers distress and so on the plain fact is that ordinary people in the countryside are the least possessive possession of the least documentation when it comes to Registry of citizenship. They don't know There's no documentation if you ask somebody where they are from they say They're absolutely no way So it is a real objective in their interests to oppose this registry and There's every reason to think that it should spread if the registry is carried out and The question is Will it or not? They put up with a lot of suffering during Demonetisation will they put up with the suffering to come these are all open questions. Thank you very much


Hello bonjour, I made four new brushes for Krita 5 and in this video I will show you how to install them and how I use them. So at first, you need to download the zip file, you'll find the link into the description. After the download, extract the bundle file somewhere on your system. Open Krita, go to settings, manage resource libraries and click the import button. Now locate your bundle file where you put it on your disk and then select it and press open. After that, a socket with the bundle will appear right at the end of your list. It has a frame around it and that means the bundle is activated. So now go ahead, close this dialog, create a new file and then you can scroll your brush list and you will find the four new brushes side-by-side. You are set to paint with them. If you met any problem with this install process, please check the description. The software might change and I will try to add complementary information on the description along the next years in this case. The first one I want to show is the flat paintbrush with variation, sorry for the very original name. This one might look a little bit weird at first on this pack but this brush is really great for blocking big volumes at a very early step of your piece. So it means you can create a rich texture with a very interesting pattern inside the stroke because the color is constantly color shifting. The second brush is the flat paintbrush creamy and this one take advantages of new development in Krita 5. You'll experience a very good ability to mix colors when you use this one at low pressure. You'll also experience a tool that can really paint sharp accents at full pressure and cut big shape with very strong edges. So it's a very versatile tool and it's probably the main brush on my bundle. The third brush, flat paintbrush dry, is a preset that produce softer edges if I compare it to the two previous brushes. It brings a good contrast of rendering with the two previous brushes and I use it to paint the shape that has a soft edges all around it. Sort of like bushes, trees or when I need just to rub lightly an area to bring a little bit more of color vibration to it. Finally, the last one in my list, the flat small brush for solid edge, it has everything in the title. So it's a brush that covers the area with full opacity and with a solid clean edge.  So this stroke is perfect to draw small detail on the top and especially those type of detail that are made of a single brush stroke. So I recorded four studies and I accelerated the movies. So what you will see is how I use these brushes and not only these brushes, I use it also other brushes from my previous brush set from the Krita default and this type of studies took me between 30 minutes to one hour each. I had a timer for that and I will indicate the real time on the video. So I hope all these timelapses and these brushes will bring you inspiration to dive into speed painting and for the voiceover I'm stopping here. So I'm launching the music, see you next time and thanks for watching, bye bye.


Today we're gonna tour Houston, Texas They bring a poncho early just dropped my vlogging camera so bad the lens popped Hey guys, it's October 30th, and today we're gonna tour Houston, Texas But first we're gonna go to a family brunch and see everyone off Before we tour because we have to check out up 12 30 so We have a whole day's tour until Like 7 40 is my flight time. So I have to be at the airport like way before that So we're definitely gonna go to the water wall because I thought that was really cool right now. We're just packing up everything This is my outfit I got this shirt dress tunic thing at Plato's closet, and it's super cute It's like really springy and summery, and I know it's fall right now but I just found it so I have to wear it and we're going to brunch so it's like a Really brunchy outfit. I feel like Nice yeah I'm packed ready to go Outfit of the hour because I've been changing so much what why oh my god She literally picked up a highlighter Yeah Really though anyways outfit of the hour because I've been changing so much Shoes from Henry girl. They have it in Florida state and UCF. I'm not really sure of the other locations jeans from American Eagle Top from Express literally they had like a 50% off sale recently. It was insane So I bought so much stuff then I brought a lot from American Eagle my forever 21 choker Urban outfit or sweater Michael course purse Francesca bracelets And Apple watch everyone keeps asking me where I got my Apple watch and like like why does it look like that because Usually it comes with like white sport band and it did but I got this band off on Amazon I feel like I keep saying that but people keep asking me so yeah It was only $30 and I had to get it fitted which was like six out of jewelry store So was not bad at all cuz like I don't know it looks really expensive and you can get really nice ones for a lot of money but like why spend it if You can get a nice one for 30 Oh But the sound that my booties make now makes me feel like a boss ass bitch So any tips for anyone visiting the waterfall? The water was they bring a poncho I didn't process that it got like super rainy and your camera might get wet my shoes are drenched Yeah, cuz like the water it just like splashes. So definitely Make sure your camera's okay I mean there's some points in that like little semi-circle that is like kind of dry But it just sprinkles a little bit on your camera So Maybe bring a poncho. There's some brick Hmm says it's open It's not open I wonder what they have inside like is it decorated inside of beer cans Is it even a tourist attraction if we don't take a photo shoot in front of it? also the sun is really messed up because Apparently it's not open on Sunday Like it doesn't really say that or I'm just blind it literally says open 12 p.m. To 5 p.m. Saturday Sunday That is not like straightforward. They need to fix that I Feel like there's not that much inside anyway, so don't like here And literally just dropped my vlogging camera so bad the lens popped And I just popped it back in and it's working. What the heck this camera, man It's indestructible real Hanna Yummy want this one Okay, I think I'm gonna get that one Wait, maybe I want something more natural What do you want? Let me try her mango So I got tiger's blood. She got mango you got strawberry strawberry real real fruit She's hashtag vegan hashtag vegetarian At Disney World, I had like yeah, I wanted I wonder if they had that I think that's what they meant by cream.  I didn't I think she had it in hers So they saw white stuff in yours. No, no White stuff with eyes


Thank you guys Thank you for coming after this tough party and stuff morning. I hope I will not disappoint you I will try to not make you fall asleep Therefore first couple of words. How will we do this today? So I have a 40-minute slot basically and I do not want you to wait till the end of the talk to ask questions Please rise your hands at any point of time. We'll try to make this interactive So, of course, I have the microphone. So I'm the boss now, but you'll get one too. Just raise your hands We have a nice discussion here So I talked to you today about the asynchronous web developments and tornado in particularly How can we make it better with tools that come with Python 3? First of all, of course, you have the question who is this guy and what does he know to present such stuff? So I'm just as you just the Python developer and I work with Python for like five years more or less I love it. I love it so much that I started the pie Munich group that is making workshops in Munich And we are trying to get more people into Python. I love it so much that of course They work with a company that is very Python friendly. I'll say a couple of words about that too My company Scooby is a German e-book subscription service. It offers lots of e-books on the monthly subscription base like a flat rate we have the native apps for Android and iOS and People like that apps because they put five star ratings to them even though it costs money, which is pretty cool, of course Being user-friendly is nice, but it's more important to be developer friendly So the stuff that I'm going to present you today is not some Abstract blog post that I read a week ago. This is stuff that runs in production for us for years so real thing and basically It comes out of the problems that we had so I'm presenting you the solutions that are already deployed there and As I said the company runs Python as a main language. We also like very much to Participate in Python events share our knowledges We are sponsoring your Python and also other Python events in Germany, especially and Let's move to the challenges that we have from one day to another That's lead us to these solutions So first we have a very distributed system meaning that we have not just one server We have many services that need to communicate over the network or there are some APIs Mostly HTTP APIs. So we learned by time that doing that asynchronously obviously makes it way more efficient therefore, we could not use just nice and fancy Django because Internally, that would be not very performance. We are trying to build tools that speak to each other as synchronously and Efficient we also on our way to migrating to Python 3 like probably most of you guys Of course, it's not that easy, but some models run Python 3 some models still run Python 2 most of them actually of course So it's also a bit of a challenge and we see what tools are already usable with Python 3 What tools are not? We love to share and this presentation will be basically a fully practice based This is the overview first. I'll speak to you guys again. Why do we need this in chrono stuff at all? And when do we need it? second How generator delegation syntax introduced in Python 3 makes it easier and nicer Then of course, I think I owe this is Tool that we heard already on this conference wonderful talks by the way I'm going to just quickly cover it again in case someone is still missing this information Then tornado which is a real framework that can't be usable together with a sinker. You're already at this point of time Major thing ready for production and I'll show you guys a little demo of not just tornado of also other frameworks How do they perform a synchronously? Together What issues do they have comparing to each other? Well, I want this to be on the recording. So it doesn't matter much, but okay good. So Why do we need the synchronous? communication at all Let's have a little recap of the web server execution models like how how the how can it work? The first originally idea was to have one thread per connection, right? This is very straightforward. We have clients coming in we create a threat for it. We handle requests on this thread It's very easy very straight. It's very easy to share the memory We have any show obviously Okay, guys who have seen the threaded web server dying Anyone okay? Yeah, so this is not just me which is good A threaded web server runs in obvious issues when operating system goes out of the memory first can do evil things to you and The worst is that when our system is overloaded not only the new clients will Experience bad service, but also existing ones. So the whole thing crashes total disaster. So what would be the logical step? To fix this issue Well, it would obviously be to have a pool of on the threaded server that would limit the amount of threads or processes Doesn't really matter in this case. So by limiting the the threat pool. We will not Push our system into the state where it crashes, right? So we have a fixed number of threads when our system works fine when it's still performant and nobody Experiences any problems with it, but for some new clients that will join when our pool is already packed They will just have to wait and this is bad because Obviously, even if the thread pool is packed that does not mean that our system is already out of resources It just mean that some numbers that we picked is reached But we might and we usually do have more resources to handle more clients So the next step was to have the asynchronous web server That has just one thread But it kind of turns a picture around turns it a bit upside down because this one thread has IOL loop and This IOL loop controls what client is getting service at which point of time and since Usually our web server are IO bound. So we are not performing any heavy computation in our web applications Most likely so our CPU is pretty okay. Our memory is also pretty fine. We are waiting for something We're waiting for the database. We're waiting for cash We're waiting for whatever thing and so the IOL loop can actually decide at which point of time Which client can get service and other client can just wait for Data to be available on a particular socket and IOL loop can jungle this connection jungle the client and just Yeah process every client at the right point of time So it does the event driven switching in one thread But you say of course async is not something new like This is not the first time of course this idea comes and rises up again So you're right because tornado is like six years old and there is also twisted True python tool for the network. I still think it's one of the best And there are also stuff in other languages, obviously Why we still use blocking servers and what's the problem? Because sequential code is obviously way easier to read. It's easier to test. It's easier to maintain an extent We have seen how jango was successful how ruby on rails was successful just because of the simplicity and nice batteries, of course, so these things do matter and Then obviously we think why can't we just have a Asynchronous codes to be structured and written in the way that it can be just readable as synchronous codes Look similar without this callback. Hell and stuff And python 3 let let's us do that This is something that i'm going to present you today. This is just a little teaser. Obviously, you're most likely already seen it but still this yield from is a generator sub delegation syntax introduced in python 3 and It lets us write a synchronous code in a synchronous fashion Again, I'll have this more detailed a bit later. So now yield from it aims to replace callbacks, but first we need to Come to decision. What's so bad about the callbacks? Like it's something pretty common. It's uh in twisted since ages in javascript, of course It's difficult to make it look nice Does any one of you guys work with javascript? Yeah, obviously, obviously, okay, so Did you guys see this? I also do javascript and they see this is the real code besides it's some testing thing, of course, but still I mean even for testing I usually try to avoid this and by the way, this is a nice resource callback.hell.com So if there is such domain registered, I assume that we are clear that we might want to avoid callbacks So sequential code obviously looks nicer and By introducing yield from in python 3 We have this attempt to write a synchronous codes on everyday basis without callback.hell Now it's time for a good example So we have a very simple Function, let's say it's a get handler of whatever web framework We have a huge database query that is blocking obviously The result of that query is saved to the result variable and then we write the stuff back to the user This is blocking, right? How would we do it with callbacks? So with callbacks, we can define a function Just nested or anywhere that will be a callback that will be passed as an argument to the huge database query And the huge database query will call it when the result is ready. Also pretty clear, right? This is not as bad as an example with javascript, of course, because at least it's not defined inline But still we can make it even better with a sub generator based handler So we put yield from just before the huge database query Who of you guys use they think I already saw that Okay, so that I know I stop a bit on this then So what exactly does yield from do here? So huge database query in this example should not return the result. So it should not block It should return a future. This is a magic object. I'll speak about it in a moment But this magic object is like a promise that the real result will come at the later point And we yield This future back to our coroutine to our ioloop That will at this point switch to any other task that it has and whenever the result of the future is ready Whenever future can be evaluated to the result It will push it back to this point as if you can imagine as yield from would never be there magic It will be safe to result and return back to the client So, uh, what is exactly this magic behind it and what I think you're does for this So as it was already told a lot on this conference This is mostly the event loop and a set of tools to use this event loop efficiently Event loop can register a callback for any particular Any particular event let's say most typical case, of course We want to get to fetch some network resource So we need to make the tcp connection And then we just wait so we tell ioloop. Hey ioloop when the data will be ready on this socket Please call this function and it does that's in a glance. What what do we need to know about it? In this example, I have a minimal setup. Uh, how can we call it? So we have a callback function. Hello, euro python. It doesn't fetch anything. It will just be called as soon as possible First we need to get the events loop instance Then we schedule the callback by call soon call soon is call at any point of time when you can And then we start the ioloop. That's a minimal example. So no fetching on the socket nothing Now to get more familiar with this thing, uh, let's talk a bit about the future object What exactly does it do so? Those of you at least who worked with javascript probably know the deferred or promise objects Most likely so this is a very similar thing. So this is some object that Packs a reference to the result. We have this object just to track the state of the Operations that we want to perform. Let's say we want to fetch the database query We call that query and the future object is just Returned to keep a reference to the result that is not ready yet But we'll be ready at some point of time or it will fail So we have the future to keep the reference to something that will be available at later points of time So simplest way to run a future is just to use this Run until complete on the ioloop and print the future result But this is usually of course not the case that we want. We want it nice asynchronous so Then we need to Have a better syntax. We can also yield it Like here so we define a coroutine It's also important to mark that Whatever web framework you are using it has to know that you are using coroutines. Otherwise, it's just a generator So we are fetching for example google com The results will be a future then we yield this future ioloop does is a fetching And saves the result back to the result variable then we print it And of course to make this whole thing run we need to Run the ioloop So what about tornado here? Tornado is a web framework that is already there for six years. It has no ioloop. It has own futures But now it has to be obviously compatible with async.io because this is a common Frameworks that all of the python higher-level libraries should use So tornado is already production ready framework and Its compatibility with async.io is already there Basically, this is a stack how in the best case in the future We will see it in the python world on the application framework level We can have tornado twist it or whatever as a framework Then as an ioloop Async.io should be used and finally async.io is at the end Just a common interface for the operating system specific selectors like kq epol or windows select whatever This is how should it be Right now even if you use python 2 you can use Tornado with an own event loop with own futures with own everything But since we want to develop for the future we want to be future compatible We can use async.io as well So let's look at the event loop. How does it work with tornado and compatibility with async.io? This is first the way that you would get the event loop in tornado just select ioloop current It's a single ton and you start it This is the way that you can use tornado with async.io event loop Basically, again, this is the same two lines of code with just different syntax pretty easy replace one with another You're running it on async.io Futures again tornado has own futures async.io has own futures, but they are super similar We also have concurrent futures back from python 2 also pretty similar thing But for this compatibility We need to use the tornado magic method that will convert one type of future into another type of future Which is not a big deal because again, it's just one line of code Now I think it's a good time that we have a full Get handler written in tornado Let's look at this So in tornado, uh, we need to inherit from the request handler We need to mark the Method as a coroutine so that tornado knows that the thing that we will be yielding is the future and this future should be evaluated And then the result should be passed back We need to instantiate the asynchronous HTTP client that will not just block instead It will return futures construct them and return it for us Then we use the fetch methods to fetch some really slow api, whatever We are yielding the future that it will return back to the ioloop ioloop will call us back at the right point of time when the result is available and we have the response here Alternatively, of course, there may be no result. There may be time out. There may be 404, whatever Then it will be just normal python exception handler handling. So in this case tornado will just write 404 HTTP error That's it. You catch it with normal tricep Then we write response back to the user as pretty common for python web frameworks And then we need to call self.finish because this is a coroutine. So we want to keep control when request this cut This is a full example. Let's say that we want to make the HTTP proxy We we want to pass a url as a parameter and we want tornado with async.io to fetch it for us and just Stream it back to the client So these are all of the required imports. There are not that much actually This you have already seen the way that we construct request handler Then we just get the url argument from get parameters. We again create the async HTTP client We fetch this url yield the future to the iol loop get the response back write response finish response Yep, please Very well. So I repeat the question The question is How exactly does it work over here that HTTP clients would normally block when you call the fetch Wait for the resource to be fetched And yeah, what what is this yield from doing in this place? Uh, well, how does the synchronous magic work? Very good so This is a kind of a spatial HTTP clients Async HTTP client obviously so we have a similar Library called just HTTP client in tornado and it will do exactly this thing if you run HTTP client dot fetch It would block it would wait just like request just like url. Leap It would block and wait and fetch the response Async HTTP client is not blocking. It's not waiting. It quickly constructs a future object So not the real response object a future object and returns that and since we do not need to wait for long time to Just build a future. It's basically just creating an object of a class This happens super fast And then we are yielding this future So we're so to say sending it out of the function back to the i loop that is controlling this whole process Meanwhile, yes, this get request will just pause So it's like frozen in this state until we have the response of the fetch thing But we have other clients meanwhile, so i loop will in the meanwhile It will serve other connections for us Therefore this get handler will be paused but others get service and in practice it happens so fast that you never see it and whenever i loop will notice that okay now the The url is fetched now we have data on our socket. It will look up. Okay, who have been waiting for it Oh, it was this proxy get thingy And it will call it back And by calling it back it will have the result that was fetched And it will push it just over here So you can imagine that after the i loop was done with fetching stuff Imagine that yield from was gone. It was never there. There was just the fetch operation. This is basically in a glance how that will work Yeah, please Since it's stopping anyway on the yield from why do you need a future object? Why do I need one a future object? future Okay, so why do we need a future object here? So, uh, first of all yield from well, there was always yield without a from Yield from is required if we want to get futures From another coroutine in this case. We don't have to use yield from we can also use just yield But if you're building a big system, you might have a stack of the coroutines one calling each one calling another Then you need from but this is I guess not the question the question is why do we need a future at all at this point? So we need a future because if we return After the fetch call if we will return the result we obviously need to wait for results Here so basically this call will block So since fetching takes long time We construct the future and constructing the future does not take long time because it's just creating of a future object without waiting This is basically how we use futures. It's kind of abstraction That lets us not wait for the response But give something back so that color has a reference to the response that will come at the later point of time and If you might find confusing this yield from syntax you can also imagine a raw future so if we Take back take away yield from just get the future and doesn't don't call it response call it just future Take the yield from away Then at the later point of time to get the response I broke it so to to get the response of this thing at the later point of time we can just call the future dot result directly and Then it will give you the result if it's ready. So future is pretty simple. It has A status it has a result. It has an error. I guess so you can access the results directly But it's just nicer if you don't do it And you let the io loop do it because then you can use the magic yield from syntax that Will extract the results out of the future for you. Uh, no, there will be no result. I guess You can also check if result is available. So if you want to write a really bad code You can write a loop In which you would ask is the result there? No, is the result there? No And then you will reinvent the io loop because basically that that's what it's responsible for We had this example as far as I know. So let's go further demo I have the ipython notebook for you to Show this thing running Let's agree on the simple case that we are going to test So we have the client That will be our ipython notebook We have a web server This will be the whatever synchronous framework we are testing and then we have three apis These three apis will be requested in parallel and so asynchronously And we want to check how well web server is handling these three concurrent requests to the third party apis To simulate this whole thing without external dependencies. I have everything running on my laptop I have tornado server or other framework server too, and I have a dummy local server That just waits for fixed time out of 10 milliseconds on every request and returns a dummy hello world greeting And you can see it over here. So this is what my dummy local server does Now we can test how fast can ipython notebook fetch This dummy server responds directly so that we have something to compare to so it's 16 milliseconds From this 16 milliseconds 10 milliseconds is our fixed delay that we have on purpose and six milliseconds for fetching overhead So first example we have just the blocking server Just a blocking tornado server that is using HTTP client not a sink HTTP client Therefore it does not return futures. It blocks and it waits for results In this list comprehension. I have three URLs. So three dummy URLs That I want to fetch i'm calling fetch on each of them, and then I'm just looping over responses and writing it back to the user This is how it will work. So we requested three times same URL We have the response. Let's see how fast does it go? Okay, so this is 54 milliseconds altogether Obviously, we just multiply this 16 by 3 because it's a blocking server. So it did it sequentially Now let's see how the same thing but just using the a sink HTTP client work Basically, what do we need to do to convert blocking codes to non blocking code? We need to change the HTTP client Into a sink HTTP client. So add this thing Then we need to mark it as a coroutine in order to let tornado or other framework in I think yo, it would be also a coroutine decorator We let it know that this thing that is Beneath will yield us back the future so that tornado knows to process it accordingly So we are calling this thing. We have the same response And this should be three times faster It's not because of the overhead of course this whole thing iol loop and stuff has on overhead, but it's 22 milliseconds So comparing to 54 it's Two and a half times less more less and comparing to the requesting dummy url directly 16 versus 22 we have again about five milliseconds of the overhead of tornado Now the fun part comes Not js So this is also a synchronous framework and probably everyone has already seen on the internet some article like hey my not js on the ec2 micro instance is handling i don't know 10 100 000 of connections simultaneously. Yes, this is true This does work especially in the case of web sockets Is a perfect case for a synchronous framework to be used because for web sockets We have many connections, but all of them are mostly idling So we are wasting our cpu if we have resources dedicated to each of these connections. We want To use our resources efficiently therefore at one point of time we can have just one client Getting real work done on the back end others can just wait because Web sockets do not need everyone to do stuff at the same time So this is how it works I might of course have it Not the not in the perfect way as some javascript guru would advise me But I did it in purpose because I tried to avoid external dependencies Not js has a lot of external libraries that would make it kind of look nicer, but this is just pure not thingy So what we do here I created the option Object that keeps reference to the local to the local host dummy url. I have The array that is waiting for responses that will get the responses then I need to loop I'm looping over api count, which is three just to have three requests And they do http.get so http is a library that is kind of the Async http client in tornado And then I need to of course define a callback what to do after we fetch stuff and I'm defining it in line in the best tradition of the javascript Need to set encoding. I need to create the body chunks because this function will be called not when the result is ready, but when the chunk arrives So on the data I'm creating another inline function that will push this chunk to the array of chunks then On the end event that will send us after all chunks are there I need to glue it back together by using puffer concat Then I push responses to the body object And finally when they see that okay, so responses are three just as api counts. That was three. I can say okay everything is ready now then I Create the response text. I set headers and that's it. I end the request At the end we have the same thing and let's see how fast this works We can remind what was in tornado meanwhile. So it was 22 milliseconds for tornado and it's 18 for not just Bravo not just well done. We have three milliseconds faster But maybe four hours more of our developer work Let's have another example scala Wonderful performant language I guys just don't have time to go through all of this mess Believe me. You don't want to read it I of course realize that the people who are experts in scala do this pretty fast In fact, I was not the guy who wrote this because on every conference when I'm showing some tornado examples I ask someone who knows some other asynchronous framework to give me the example So that I can Add it into my comparison But the funny thing is that this thing is damn performant Let's see how in practice does it work 22 of tornado 18 19 slightly more than not. Okay, but of course, this is not a very fair comparison because I have a fixed number of Back-end apis which is three. So I fetch three apis What if we have 10? What if we have 20? We don't need to speculate. I wrote a little benchmark that will answer us This question. So here I have tornado. I have not gs and I have finagle And I'm going to increase the number of concurrent requests from 1 to 20 Then I'm going to plot a graph that will show us How do these different frameworks behave on the increase in loads? So on the increasing of the concurrent requests And now it's ready So here you see Tornado was losing at the beginning, but it is quite stable at least We see the total opposite question with not gs because somehow with five requests it just blocks and jumps up And in case of scala and finagle, it's perfect. Okay, I have nothing to add here. Bravo to scala tornado also did a good job and I have a feeling that I might just have not a perfect configuration for node because we obviously see this pattern of jumping on every five Parallel requests added So I think that's yeah, we can Stop at this point Let me then jump back to my slides This is the end I will be open for my questions in a second Just before I finish this I want to remind you once again That if you want to do this Cool stuff have time for experiments and so on you should maybe go to scooby.de or scooby.es and check for the jobs Then I will be happy to Pass my presentation over to somebody else continue with this research Have some different topic. So guys Check it again scooby de slash jobs and thank you very much for your attention Now questions I was interested in Since async.io and tornado have very similar jobs, what is the relevance of doing tornado on top of async.io instead of just using async.io Okay, good question. So why do we need tornado on top of async.io at all? So async.io does have a higher level libraries too. It's not only the iolup and futures It also has tools developed specifically for async.io already that is I think a http client. I think At least some database drivers that are ready but Tornado is a web framer So you can imagine tornado as a subset of jango. It gives you templates It gives you base class for request handlers gives you basic security stuff like csref protection and so on Cookie handling and stuff and async.io. I can go back to that slides Where I had a stack here. Thank you So tornado is just a higher level. It's application level framework that lets you build the web applications faster Can't be synchronous can be asynchronous Asynchronous is just one of the options that you would use tornado Most likely you will do it because you can but you don't have to and async.io is a common middleware so to say between Higher level frameworks like tornado or twisted and lower level operating system selectors Like kiki or ipol or select on windows So this is kind of a lower level set of tools and yes, you can use it To directly without tornado, but then You will need to build the rest of the web stack yourself and this use something that you would normally want to avoid Yeah, exactly you can also call the low level stuff direct Okay next question I have a question Yeah, I'm not really familiar With this framework. So my question is Is there a built-in orm? If answer is no, is there is orm of choice like preferred one or the one that you use and then Third and the actual question is that how does async stuff works with orms? Okay, very good So first, do we have the orm and tornado? No Follow-up question. What would be the orm of the preference? Well, guys, I was working with Django for quite some time and I loved the simplicity But I've also seen attempts to put SQL alchemy on top of the Django that worked pretty fine So I think that SQL alchemy is kind of the standard orm for python in general And this is also our choice to be to use that in tornado too There is nothing special into connecting tornado to SQL alchemy It's just two totally different things that are easy to use together But you don't have to use them together In fact in some websites, you don't need database at all So actually not having overhead of orm is even better sometimes But if you like to have a database, you like to build the traditional Websites the three tire setup. I would recommend you to use alchemy. It's pretty flexible and nice But generally you're not limited by that. You can use any orm that you like There was I think the second another part. How does it work with a sync thing? Yes, so I also answer that You are very right in asking this question because having a synchronous Execution on the web server level does not guarantee us success. Obviously if something that we are Waiting for like a database or a cache does not support the synchronous request We can fix this problem by having a thread pool And use a thread pool executor, which is the synchronous in python But this is not cool. Obviously because we end up with a thread pool and that is what we wanted to avoid at the first place but now with Asyncio we are having more and more tools that get support for instance for the database You most likely like postgres because everyone likes postgres. We have psychopg2 drivers that support the synchronous mode for edis We also have the Asynchronous driver for mongo. We have by mongo. I think so most of the tools are already covered But not all of them. So you need to to really look but now since we have this common interface I think are your thingy they will grow. That's for sure All right. We are unfortunate out of time, but let's give a hand to Anton for his presentation Thank you for listening. Thank you for coming write the synchronous code


Welcome back to the channel, y'all. We are here at the Guggen HQ, and I'm with my buddy, Crispy. Old buddy Crispy right here. I've done something.  First I gotta go in here in the HQ, get a couple things. Say hi to our old buddy, Mr. Elkie. Hey there, bud. He's a new resident here at the HQ. I'm in short supply of one of my favorite winter fishing lures of all time, and that is the spoons. I know I've been telling you guys about these spoons, but it is an essential winter time, and quite honestly, besides the spring, I use spoons all the time. I'm gonna try the quarter ounce for the trout, and then I'm gonna pick up some three quarters and some halves for deep fishing on winter bass. Mr. Worm's gonna check me out here. Oh, we've got four spoons. Let's see if I can see how long those last me on the rocks. By the way, if you wanna pick up the spoons, anythingounceguggensquad.com, use promo code LFGNSAVE at checkout. Not just spoons. We got it all, folks. Tons of plastics. Don't forget about your crappie. We got it all. All right, back at the treehouse, here with the Crispy Collector. What have I done? What have I done? Well, the Crispy Collector. Great little cat fishing boat, shallow water boat. It's nice to have an aluminum boat, in addition to having a really nice, you know, I got the Phoenix back there. Really nice electronics on that. Love crappie fishing bass fishing out of that. But it's nice to, you know, get some catfish goo on the old boat every once in a while. And this boat's perfect for it. But for years, I've had this boat and I haven't had any electronics. We've been flying blind, so I decided to change that. And at first, I was just gonna get like a little simple unit and tell the temperature, the depth and everything like that. And then I thought, boy, wouldn't that be nice if I just, I had life scope on this one as well. You know, after all, can't fish without life scope anymore, right? Well, the fact is, you can catch a lot of fish without life scope. But this is primarily my cat fishing rig. I'm wanting to try trying to catch some big catfish. This is what we got right here. We have got the Echo Map. This is Garmin. This is Garmin. I like Garmin. I'm used to using Garmin's. I like them. I've used other ones in the past. I like Garmin. What can I say? Not endorsed by Garmin. Not sponsored. I just like them. And the, this is the Echo Map 94SV. So nine inch unit. Still gonna pull some power, but it's not crazy. It's not like my huge unit that's on the Silver Bullet. This one came with the transducer. I'm gonna mount that on the back of the Crispy Collector. A lot of times I'm doing just slow trolling, looking around with my eyeballs, trying to look at the contours of the land and visualize the old way of trying to find fish. Now we'll be able to troll around and look at the bottom, see all the other features and not get lost. We'll have mapping. Then I just decided to go ahead and just go for it. So we got the GLS-10 module right here. And we've also got the LVS-34. Yeah, LVS-34. That's the new LiveScope transducer. And this company right here, Summit Fishing Equipment, they actually sent me one of these units a while back. And I've been wanting to put it to use. And now we're actually gonna get to use it. And this is basically a portable, live-scoping housing. So it actually comes with a backpack. It's very popular with ice fishermen. If you wanted a crappie fish, have a dock or something like that and just take your live scope with you. That's a thing now. Just taking it with you. We're actually going to hard mount this, though, to the boat. I've already ordered some track systems. We don't have that here yet. But we're gonna jerry rig this sucker and see what we can do. And they were actually nice enough to send the boat mounting system with it. So I've got this cool 360 track mount. And there's a whole pole holder as well. So this is quite ridiculous because the cost of all this stuff is comparable to the value of the Crispy Collector herself. Will it help me catch more fish? Stay tuned to find out. So the first thing we got to do is actually rig up our unit itself into its housing. This thing is actually pretty cool because I'll be able to take this on and off the boat real easily.  Probably don't want to leave it on there all the time. The other thing that's nice about this system is it's all enclosed. And I went and got a battery for it. It's going to have its own separate power. So instead of running off the same power that's for my cranking battery and also runs my trolling motor and I have a weight distribution problem in the Crispy Collector. I don't need to add a bunch of weight. So this is nice that I'm not going to have to add another big battery in the back. I just went and got this one right here which isn't very strong. I'm honestly going to have to upgrade to like a lithium or something like that. This should work fine for now.  So I've actually already gone ahead and I've rigged up the GLS-10 on the back. This housing is made for this setup so it's all pre-drilled and some fishing equipment was nice enough to send me one that already had the wires wired up so I didn't have to go through that menagerie. Let's put the graph on, let's put the battery in and see if it turns on. Go ahead and hook up our power and we'll slide this baby in here. All right, now the trick fitting all this in here. Get in there. All right, that wasn't too bad. Let's see if we got power. I see a blue button. That's good. Put the power on. Oh yeah. Eyeballs. Eyeballs. The whole thing is just contained. Look at that. All right, we have a unit. Sodor, nothing hooked up yet. Heck yeah, it's going to be nice just having GPS and marking waypoints on this thing. Time to work on the back end. Here's little Heiney. She's going to get two new holes. I've just taken a little template here. I've gotten it roughly level. Of course, when I'm sitting in this thing it's not going to be exactly level in the water but we're going to get it as close as we can. Make sure we're not going to hit our gas tank. Good there. Not exactly sure what's behind here but we're about to find out. Not much apparently. All right, two clean easy holes there. Dab a little silicone on here. Or put a giant glob, just whatever my my gun here is wanting to do. Okay, that looks fairly level. Nice thing about the Crispy Collector, if it ain't perfect, the boat ain't perfect either. I would use the word fairly, fairly level but here's the thing, in this John boat you go to one side or the other end. So the way that I've set it is just slightly offset so when I'm sitting in the other side of the boat it's going to lean, it's going to leave it over and technically be level, maybe, I don't know. Unit is set up ready to go. This is the pole. I'm going to mount this on a track but the way this works is this is going to sit right here. So I'm actually going to have one track for both of these things. That's going to be turned around facing my seat and this is going to sit in the track and the pole will go down in the water. I can move it with this lever and we're scoping baby. We're scoping. There's lots of adjustments on this so I can get it farther out, get it farther down, whatever we need to do to be scoping on whatever kind of fish we're trying to catch. So as a final test before hitting the water that's powering on without me even pressing the power button I definitely wired something wrong but it is turning on. Let's see if we got ducer projections. Okay, this is side scanning. Scope. Pano. There it is. It is working. So we'll get this adjusted when we get in the water and we will see how this is going to work. I'm going to have to just figure something out put this on, mount it to for the time being until we get our track in and this whole boat has this track on it but it's just not strong enough. It's just not strong enough to mount something like this so I'm going to do a plate down on the base and that way we don't have to worry about the the crispy's eyeballs flying off into the water. So we got our eyeballs installed. Everything is working. We're going to clean up. We're going to let the silicone dry and then we are going to take this out on the water in the A.M. So stay tuned. Good morning fishing freaks. Looks like we got ourselves a foggy winter's morning but everything's hooked up. Added a few doodads dingledongs ready to hit the water and see what this puppy can do. This is obviously what I'm most excited for right here. Finally having a set of eyeballs on the Crispy Collector. So let's turn it on. Let's see if the transducer we installed last night is working. It actually ended up putting in this little backpack so just kind of keep the moisture and everything off of it for now. I've got some tracks coming in next time I go cat fishing which is going to be the next couple of days. I'll have the track system set up for the pole myself so it looks like I need to adjust this up a little bit so I can read it better. Alright let's power it on also rewired rewired it correctly last night so I have to turn on the power button. Just saw the screen kind of flash for a second so we got power we're turning on we're reading hey we're reading here we go. We have to do some adjusting get everything the way we like it. We are reading 49 degree water 8 feet. Alright let's go with that let's go with the yellow y'all probably going to go with the amber there. I'll tell you guys my favorite color palette on here on the Garmin is the green for doing the side scan. Oh yes we're sitting pretty now. This little battery is going to last we're going to have to upgrade our battery situation it's in the 11.6 volts right now. We've got my speed I like just having it right here it's close it's not a huge unit so it's right in front of me so having it on the track would be really nice I can swivel it too so when I'm wanting to fish up front or something this is fantastic fantastic crispy has eyeballs finally looking good where I'm out with the transducer there's not much interference at all so we've run around a little bit everything seems to be working good now it's time to get that pan optics in the water so we'll step it in see if we can see any movement see if we can get a read on our on our bait yes we can yes we can and we will this is so good it's perfect I just sit right here in my chair just watch yeah I think those are just a lot of shad well everything looks wonderful with the scope I just came over here to a dock just to kind of drop down see if I can get any crappier white bass to look at anything but they here there's some here but they invited we just had a bunch of cold rain yesterday lake looks like crap right now but I just had to get out here and investigate see what this thing looks like and it looks awesome so I'm so pumped to go on more adventures with the crispy and have a set of eyeballs that I can do some advanced fishing with when I set this thing up I really had in mind going after some catfish and that's what I'm going to do next try to identify bait catfish out there deep water do some drifting this boat set the rods and the rod holders and wait for that big bend that's going to be fun but this thing for getting up here and you know docks lips stumps tying off the stumps and doing this the scope and it's going to be fantastic now so couldn't be happier with with the unit that I got looks good the some fishing equipment that's awesome the life scope mount off the side of the boat I mean it already works right now just dangling it off the side but when I get it on a track it's going to be very efficient clean my only problem is the battery life I've already noticed it's down to 10.9 volts right now so it's been drained already for fishing for couple hours just idling around so I'm going to take it back to the tree house I got my new track system coming in today that I'm going to install on here so you guys stay tuned for future endeavors was it ridiculous putting thousands of dollars of electronics on this boat uh yeah but was it worth it I'm thinking so right now when I'm sitting in the boat looking at the fish on the life scope yeah yeah I think it's worth it and the nice thing is if I do want to fish without this I just take it out of the boat and store it in the garage so thank you guys for tuning in today don't forget to subscribe to the channel so you can stay tuned for all the winter and spring fishing when things get crazy smash that like button I will see you guys on the next adventure


So chapter 9 is all about transformations and symmetry some of the neatest stuff in all of geometry In your notes, I'll put this in your table of contents introduction to chapter 9 So to start we have four basic types of transformations. There are translations rotations reflections and dilations a Translation is also called a slide transformation. You're probably familiar with this one The red object is the pre-image the blue is the image in other words The red is where you start the blue is where you end up The arrow is called the translation vector a Vector is an important mathematical idea And it shows both the direction and the distance of the transformation plus the word vector is really fun to say vector Next rotations so a rotation is a turn or a spin Here we've got the pre-image in the bottom right corner rotated to Whoa whoa Rotated to that upper left corner So again rotations They rotate the pre-image a fixed number of degrees about some center point So when you define a rotation you need that center point, which is that red dot in the bottom left the amount of rotation in other words the the degree measure and Then the direction at a clockwise or counterclockwise Next reflections flip transformations or mirror transformations Here we have a reflection in the the lake. There's that nice little mountain and it creates a nice line of symmetry Also, here's another reflection a b d e the blue is the pre-image Reflected into the green the the image Ah, let's see you probably remember reflections from the geojabra project here we had a reflection of a point in a line and we'll spend more time talking about coordinates x y grids and reflections in a bit Next transformations so a dilation is a stretch or a shrink transformation a Stretch or shrink requires a center of dilation kind of a bouncing point and a scale factor So here I have cd is shown In order to stretch with that scale factor r equals 2 we're just going to double up cd to get cd prime It's possible to also have a dilation in the the other direction right have a scale factor less than 1 That would be a shrink dilation Here the rectangle in blue is the pre-image and the green is the image Then we have congruence transformations right the translations rotations reflections those are all congruence Transformations because they prefer preserve distances they preserve lengths in other words the pre-image and image are always congruent to each other Whereas dilations are similarity transformations Right the pre-image and image don't necessarily have to be congruent But they are indeed similar and then you can compose transformations if you string together more to or more Transformations, then you create what's called a composite transformation Here we start at the triangle on the top we reflect over the horizontal line and then translate To the right so that so the end product is kind of a glide transformation next symmetry Three basic types of symmetry First line symmetry also known as mirror or reflexional symmetry Sometimes called bilateral symmetry here. This butterfly shape is indeed symmetric because if you were to fold it in half The left side and the right side look the same This pentagon also has line symmetry But it has more than just that up-down line of symmetry. It has five lines of symmetry Here's a picture of the or those called the The blue angels two airplanes flying one on top of the other kind of nice picture of reflection symmetry Now another type of symmetry is called rotational symmetry Rotational symmetry exists when the pre-image and the image when you rotate the pre-image the Two shapes coincide and so this picture here is an example of rotational symmetry That star shape has rotational symmetry because if you rotate 72 degrees The image and the pre-image look the same Same thing happens again when you rotate 144 degrees and so on and so we say this has This particular shape has five-fold rotational symmetry The magnitude of rotational symmetry is 72 degrees 72 degrees means if I rotate 72 degrees then the image will look the same as the pre-image You'll probably want to write that down Magnitude of rotational symmetry is 360 degrees divided by the order of rotation and then finally point symmetry Point symmetry a point of symmetry is the midpoint of all segments joining pre-image and image points A way to check for point symmetry is rotate the object 180 degrees if it looks the same then it has point symmetry So here's an example this kind of a Six-sided star has point symmetry because if we put a point on Put a point on the edge and we take and reflect that point L Move it around a little bit first So there's a tool in Geogebra called reflect. Where is it? There it is reflect object about a point So that is the tool we want. We're gonna reflect L through P didn't work reflect L Through point P and we can see L prime the image of pre-image L L prime is stuck to Stuck to the outside of the object as well And so that indicates that this object has point symmetry here we can Show you a segment connecting the two You can even return on the trace feature and show that the image traces out the pre-image So you get the idea This Pentagon does not have point symmetry. So if we do the same thing with this Pentagon, I'll reflect point H Move around a bit reflect point H About point P Come on reflect point H About point P we see that the image is not coinciding with the pre-image In fact, if we turn the trace feature on you'll see that the image is just the sort of the flip The rotation of 180 degrees the rotated image of the pre-image So Pentagon does not have point symmetry finally Take a look at this word decode All of these letters have horizontal symmetry, right? They've got reflectional symmetry The word tomato if you line it up down the middle has a vertical line of symmetry What I'd like you to do is I'd like you to find at least Sorry find words at least five letters long that have horizontal and vertical lines of symmetry bring those to class tomorrow And maybe the longest words will win valuable prizes