text:
Is there a word for someone who makes others better?
One quality or trait that many employer looks for in a leader is the ability to not only perform well yourself but to also elevate the performance of others around you.
For example, Steve Nash was an elite point guard and an all-star that made the people around him better. He made Shawn Marion and Amare Stoudemire all-stars and afterwards, when they were no longer teammates, they were not able to play at their all-star levels.
You could say that Steve Nash is a great leader but it does not inherently imply that he also makes the people around him.
Is there a specific word that describes this? A phrase to describe it would be, "he brings the best out of others", but I cannot think of a word to describe this ability/trait.
BiscuitBoy
Exemplary, Inspiring – user140086 Feb 28 '16 at 7:38
Imo exemplary does not work. Exemplary means he's a good example and should follow his lead, but does not mean that they do get better. I could see how inspiring would work, as he could inspire others to become better. – user1470901 Feb 28 '16 at 7:44
A person who motivates others could be a word you're looking for.
Steve Nash was a motivator.
ShevliaskovicShevliaskovic
If they're facilitating teamwork or getting others to combine their strengths, you could call them a catalyst. For example:
You take anybody's star player or players [out] of the lineup, it's a big hole to fill. The one thing that Connor really did well was energize our group. He was a catalyst and also promoted some real strong play from others. (source)
If they're elevating the performance of others by setting a good example, you could call them an inspiration.
Jesse McGrewJesse McGrew
This answer was flagged as low-quality because of its length and content. Can you try to include reference or link (that can support your answer) and its essential part? – user140086 Feb 28 '16 at 8:11
You could consider using mentorship which means:
The guidance provided by a mentor, especially an experienced person in a company or educational institution: 'he is revered by his employees for his mentorship and problem-solving qualities'
Your example:
Steve Nash had mentorship skills and was a great mentor to Shawn Marion and Amare Stoudemire.
[Oxford Online Dictionary]
A game changer is usually an event that improves ones chances of a good outcome. By extension, it can be a person associated with those events.
Phil SweetPhil Sweet
Could he be described as a 'keystone player'?
(In biology) keystone species : a species of plant or animal that produces a major impact (as by predation) on its ecosystem and is considered essential to maintaining optimum ecosystem function or structure.
Pfeffer GeistPfeffer Geist
Welcome to EL&U. Please add references to support your answer. – Rupert Morrish Feb 6 '18 at 19:30
You could well use "ellicitor" as for someone who brings out the best in others from within (a Socrates, for example).
Omar Sánchez CabralOmar Sánchez Cabral
-1. Omar, that word doesn't exist. Even if you mean elicitor, this doesn't have the meaning you suggest, it simply refers to some person or agent that brings forth a response. That response could well be a negative one - hence the most common meaning of elicitor as biological molecules especially in connection with disease. General hint: if you're going to post an answer, (1) check it's correct and relevant, (2) spell it correctly, and (3) back it up with evidence such as a dictionary definition. For further guidance, see How to Answer and take the EL&U Tour. – Chappo Says SE Dudded Monica Jun 12 '19 at 5:32
Not the answer you're looking for? Browse other questions tagged single-word-requests or ask your own question.
Word/term for "the ability to affect history or make things happen"?
Is there a word for someone who makes people retire?
Is there any word for someone who makes many enemies?
Someone Who Makes Hourglasses
What are the words for people who cause trouble believing they know better?


Southgate is located in North London. The local economy is mostly based around small enterprises, like independent retailers and self-employed consultants and business service providers. The largest employers are the local authority (Enfield Council) and Southgate College. Southgate underground station is on the Piccadilly line, which connects the neighbourhood with King's Cross, Leicester Square, Hammersmith, and Heathrow airport. Road access in and out of London is possible too since the area is close to the Green Lanes and the A10 road.
You can get help when finding your first office in London's Southgate area by utilising the resources available from London Office Space.


Offering free Wi-Fi and free parking next to a rocky and concrete beach, Apartments Marina is just 20 metres from the spa facilities in the Mediterranean Centre. A restaurant and bus stop are right by it, while Igalo centre is within 200 metres from the property.
Air conditioning and a private bathroom are provided in all rooms and apartments at the Marina.
There is a restaurant next door to Marina Apartments, you can shop for groceries just 15 metres away, and the nearest bar is within 50 metres. The Old Town of Herceg Novi is about 3 km away.
Hotel address: Montenegro, 85347, Herceg-Novi, Obala Nikole Kovacevica 66.


text:
Loupiac är en kommun i departementet Lot i regionen Occitanien i södra Frankrike. Kommunen ligger i kantonen Payrac som tillhör arrondissementet Gourdon. År  hade Loupiac  invånare.

Befolkningsutveckling
Antalet invånare i kommunen Loupiac

Se även
 Lista över kommuner i departementet Lot

Källor

Externa länkar

Kommuner i Lot

redpajama_set_name: RedPajamaWikipedia


25 Dec - 33 min - Uploaded by Ravi Mistry 43rd Junior National Kabaddi Championship | All India Sai VS Haryana | Sports. 27 Dec - 21 min - Uploaded by Ravi Mistry Kabaddi lovers Subscribe channel KABADDI MATCH HARYANA VS ALL INDIA SAI FINAL. 1 Jan - 2 min - Uploaded by V6 News Telugu Senior National Kabaddi Championship Begins In Gachibowli Stadium, Hyderabad. V6 IOS App.
The India national Kabaddi Team represents India in international kabaddi competitions. They have won gold medals in all the Asian Games to date, and they. The United States national kabaddi team first competed at the Kabaddi World Cup in Ahmedabad, India. The squad was hastily formed just prior to the. 5 Jan Follow the Live scores and all updates from the Men's semi-finals and final of the 65th Senior National Kabaddi Championships Watch LIVE.
12 hours ago Catch all the live score and updates from the quarter-final action at the Senior National Kabaddi Championships. Watch LIVE News, Latest. 5 Jan It is the final day of action at the Senior National Kabaddi Championships being held at the Gachibowli Indoor Stadium in Hyderabad. 31 Dec The Senior National Kabaddi Championships are set to get underway at the Gachibowli Stadium in Hyderabad on Sunday and will. 6 Jan Hyderabad: Himachal Pradesh women and Maharashtra men emerged champions of the 65th Senior National Kabaddi Championship held at. 27 Feb A 5-day 40th National Kabaddi Championship will start in Lahore tomorrow. Neighbouring Iranian Kabaddi team will also take part in the.


text:
Two things awe me most, the starry sky above me and the moral law within me. Immanuel Kant
Critique of Practical Reason, 1788
Academia Kantiana
Kant-Lectures
The Third Immanuel Kant International Summer School 2019
The Second Immanuel Kant International Summer School 2018
The First Immanuel Kant International Summer School 2017
XII Kant-Readings International Conference
Kant's Philosophy and Contemporary Science and Politics (2018)
"No Right of Sedition" (2017)
Kantovskii Sbornik / Kantian Journal
Kant in the World
Kant-Readings
L. Kalinnikov. "To Think of a Thing and to Learn a Thing is not The Same", or E.T.A. Hoffmann and "Transcendental Analysis"
Posted by admin | On 19 November,2014 | In Publications
Taking something to be true is an occurrence in our understanding that may rest on objective grounds, but that also requires subjective causes in the mind of him who judges.
I. Kant 1
Leonard Kalinnikov
The first quarter of the 19st century, the heyday Hoffmann's work, was not favorable for a sober Kantian methodology of scientific knowledge, grounded in an empirical basis. Society seemed entranced with Schelling's ideas of universal animatedness of nature. Spiritualization of gravitational forces existing in nature, the forces of "chemical affinity," the mystery of the interaction of the magnetic and electric forces incited public consciousness on the mystical and pantheistic tone. And it was certainly not only about Schelling: this is the spirit of the Romantic Age. His famous essay "On the world soul. The hypothesis of supreme physics to explain the universal body… " [9] may, perhaps, be regarded as a much more reasonable than, for example, no less known at the time work of Joseph Görres "Aphorisms on art as an introduction to the subsequent aphorisms about organonomics, physics, psychology and anthropology" [2]. In any case, Schelling was much less speculative; his thought was more closely connected with science, and preoccupied with reflection on its problems. His following reasoning can serve as a good example: "When I claim the materiality of the light,
I do not exclude the opposite view, namely, that light is a phenomenon of the moving medium. As far as I know, the supporters of both Newton and Euler recognized that each of these theories faced with certain difficulties, which were absent in the other. Would not it be better to consider these views as complementary rather than opposite, as has been done so far, and thus bring together the strong points of both in one hypothesis? " [9, p. 98].
This kind of insight does not exclude the romantic and dreamy magic, the ability to see the invisible essence of natural phenomena, touch the productive power of consciousness. "There is no Mind except the Nature; there is no Nature except the Mind… " [2, p. 64]. Hegel saw this worldview as the identity of the subject and the object, but as an objectifying (the one which breaks the symmetry of the identity towards God) identity. The era represented by the thinkers expressing its spirit did not pay any attention to the sobering warning of Kant: to think does not yet mean to perceive, to be thought does not yet mean to be in existence. It is surprising that E.T.A. Hoffmann, relying on Kant's ideas, could resist this global craze of the European cultural world long before the positivism's effort to stop this unhindered speculative rally, and I'll try to prove this point in this very article. Its task is twofold, and that is why the paper is divided into two parts. The latter one is the principle part because it can be regarded as an argument in favor of Hoffmann's agreement with Kant's "Transcendental Doctrine of the Elements": after all, the phrase in the title of article formulated by the philosopher in his "Transcendental Analytic" gets justification in "Transcendental Aesthetic". The very first part of the article is an introduction and is backed by the full consistency of the two main parts of the "Critique of Pure Reason", namely that "Transcendental Doctrine of Method" is strictly consistent with the "Transcendental Doctrine of Elements".
It is obvious that both to think of a subject and to learn a subject matter is not the same thing, the same as to imagine the subject and know the subject is not the same thing. "The opinion, — as this concept is defined by Kant, — is a conscious recognition of something as true, but it is insufficient both from a subjective and an objective sides", while the knowledge is "both subjectively and objectively sufficient recognition of some proposition as true" [A 822 / B 850].
1. Opinion and Knowledge
I am also born in Arcadia.|
E.T.A. Hoffmann The Life and Opinions of Tomcat Murr…2
To be born in Arcadia means to be born happy. Though Koenigsberg cannot boast Mediterranean mildness of the climate and fertile soil, it does have its Arcadian advantages. No wonder Kant, who was born there, in his mature reflections found it ideal to bear a philosopher. However, the main arcadian advantage of Konigsberg should be found in Kant himself: after him university overflows with productive spiritual energy. Hence, the question naturally arises: does this
Greek-Latin proverb, quoted by Tomcat Murr have a self-referencing sense, whether Hoffmann applied it only to himself. Isn't he himself a product of this spiritual energy?
While trying to answer this question, it is useful to differentiate between knowledge and opinion. Kant himself wrote that if there is not the slightest possibility to check a report (he refers to biblical miracles), then its content is more than doubtful. It is quite a different case if the arguments in favor of a thesis can be checked and verified. Even though checking references to true reality is a very delicate task, but it was repeatedly proven not to be hopeless.
Kant had already been fifty-two when Hoffmann was born to see the light of Koenigsberg sky. Many Koenigsberg citizens, who later became world famous, were reared by Kant's hands, the great professor of the Albertina, and the philosopher's treatment was self-evident: it fostered their souls and minds. The other thing is less clear, and each time it poses a special question: what was it that each of the hundreds of students of Kant, including, of course, E.T.A. Hoffmann, took up from their teacher, how successful was upbringing and education each time?
I dare to call a myth a strange statement that Professor Kant, whose lectures Hoffmann had to listen to the university, had no impact on the young student. This myth wanders from book to book, from one biographer of Hoffmann to another. A more advanced, or extreme, version of this myth is that Kant even remained a stranger to the writer and was in no way represented in his work, unlike Schelling. It seems, however, that the myth is beginning to be questioned, though timidly and half-heartedly. Begun is half done! Very often, it leads to a remark in passing: who doesn't know this?!
The biography of E.T.A. Hoffmann (the author of this interesting study of the life and work of the great artist is R. Safranski), for example, treats the issue rather ambivalently. At first, the book boldly states that "most likely, Hoffmann never attended lectures of Kant" [8, p. 37]. To declare this, one must, of course, have a good reason, and Safranski hardly has any. At the end of the book, devoted to the study of Hoffmann's legal practice, however, he comes to the conclusion that the advisor to the Court of Appeal and the member of the "Royal Prussian immediate court of inquiry" "as a lawyer sided with Kant" [8, p. 334], and directly refers to him as a "Kantian lawyer" [8, p. 337]. Most likely, this contradiction made Safranski conclude that "only after graduation he (Hoffmann. — L.K.) got interested in the philosophy of Kant, and it could not but influence him" [8, p. 39]. Hoffmann's judgments on court cases really show him to be a Kantian as a lawyer. However, Hoffmann's creative work could serve as proof of his good knowledge of the fundamental ideas of Kant's epistemology, ethics, philosophy, religion and politics. Tomcat Murr pays his attention, for example, to discussing the merits of the categorical imperative, giving moral assessment to the behavior of his feline friends and the canine community. And Kant's aesthetics after the release of the "Critique of Judgment" in 1790 was widely discussed not only in Koenigsberg, but in all the intellectual community of Germany just at the time of Hoffmann's student years. But we know that a lot more than a lawyer, Hoffmann wanted to be a musician. He could not have ignored the aesthetics of Kant, it was not possible in any way. The basics of worldview, basic legal, philosophical and aesthetic concepts are most likely to have been laid in the future government advisor, writer and composer in the university and were enhanced later. Although none of the writer's diaries, no letters or other
documents witnesses Hoffmann's postgraduate study of the works of Kant, it does not mean much. "Metaphysics of Morals" where Kant detailed his philosophical and legal views, was published only in 1798, when Hoffmann was transferred to the Berlin Court of Appeal, was actively engaged in law practice and was taking his qualification exams. Introduction to a book was a good reason to update the university knowledge. Moreover, each book by Kant became a cultural event. Even if the "Critique of Pure Reason" failed to become one, in 1788, when Kant published his next "Critique…", the "Critique of Practical Reason", the interest of German audience towards it was universal.
Of course, one must take into account the prevailing opinion that when Hoffmann was one of Kant's students, the latter did not enjoy giving lectures as much as it happened in student years of Johann Gottfried Herder, and did not stir, as he did before, rapid student enthusiasm. However, this is hardly the case: Hoffmann was among those who felt such enthusiasm, which as can be seen in his works. E.T.A. Hoffmann studied at the University in 1792—1794, but 76-year-old Kant quitted lecturing in 1796.
It is likely that Hoffmann-student was getting information and ideas of all Kantianism and Kant's morals metaphysics in particular, not only as a direct visitor of Kant's audience, but also from the manuscripts and abstracts of almost every lecture of the great Professor which would spread wide among students at that time. It is known that producing copies of these lectures by the end of Kant professorship became a source of profit for some students of Albertina: these notes had become quite a hot commodity. And this, by the way, is a happy circumstance for Kant's researchers, because those records help to recreate the content of the courses taught by the great philosopher.
I'll try to shake the above-mentioned myth, if not bury it, and above all I want to raise a question of where the legend came from. How did such an opinion arise?
All biographers refer primarily to Theodor Gottlieb von Hippel — Hippel, Jr., a nephew of the famous mayor of Koenigsberg, a writer and privy councilor, a student and friend of Kant. Hippel Jr. was, in his turn, a close friend of Hoffmann, their communication lasted from childhood through his university years, until the last days of the great artist. In his posthumous memoirs, T. von Hippel wrote, "Hoffmann considered studying law… as a solution to quickly start to earn a living and leave grandma's home. His soul was striving for art. What was not relevant to the art or the law, to his livelihood in future (my italics. — L.K.) did not interest him. He was choosing the most direct route to his goal. So he remained almost indifferent to Kant's lectures — he openly declared that he understood nothing, though the rule required that any student of University began his studies with Kant's lectures on logic, metaphysics and ethics. It is easy to guess that most of the students did not accept them and did not understand. The most comprehensible of his lectures, in anthropology and physical geography, were attended, as a rule, by only a few " [3, p. 39]. Then it makes little sense to talk about the attendance of his more complex, metaphysical cycle.
How to treat the above-given statements? It is not impossible to believe Hippel, albeit it's hard to trust his every word after his dubious evaluation of the most popular and visited of Kant's courses, lectures in anthropology and physical geography. The following situation is entirely possible: Hoffmann, being absolutely frank with von Hippel, a friend of his student life, repeatedly complained about the difficulty of understanding Kant's lectures, with the youthful
maximalism he could even claim that he understood nothing. But didn't he really? Hippel himself said that, along with art, Hoffmann considered law as an area of his deep interest, which was about to bring him practical benefits. Besides, law was the traditional sphere of his family's employment. The uncle (on his mother's side) who had been bringing Hoffmann up, did not excel in his legal career, and nephew, perhaps even subconsciously, competed with him, and treated him with irony. However, that required serious concentration over the problems of law. After all, to compete meant to feel one's ability. In-depth knowledge in this field, constantly exhibited throughout the official career, served Hoffmann without a fail in his public job, providing the undisputed authority among colleagues and superiors. Among the latter, however, up to a certain time.
Hippel's statement about Hoffmann's neglectful assessment of Kant's lectures might pursue a certain goal. In his memoirs, he wanted to depict his friend as loyal to the government as it was possible, considering the difficulties of two or three last years of life of Hoffmann related to his participation in the political trials of the so-called demagogues, advocates of conservation of liberal legal and political institutions of Napoleon in times of restoration. Even the most "notorious" of demagogues, contrary to the wishes of the government, were courageously and legally perfectly defended by the writer, who had been appointed by the King's Bill an advisor to the "Royal Prussian immediate court of inquiry". Finally, because of persistence in disputes with the government, Hoffmann himself was declared a demagogue and underwent investigation, initiated by Director of Police K. von Kamptz and supported by the King.
The demagogues were supporters of political freedom and, as a rule, Kantians, so such a reputation was little help for Hoffmann and von Hippel made every effort to whitewash his friend, even after his death. Should he have been a Hegelian, it would have been a different story. There was no reason for Von Hippel, a counselor of Earl K. A. Hardenberg, the State Chancellor of Prussia, to be regarded as the most intimate friend of a convinced Kantian, so he tried his best to protect Hoffmann from the official administrative persecution.
The legend may appear as a consequence of well-known anecdote at the beginning of the cycle of short stories, "Serapion Brothers." No reader of Hoffmann can ignore it, and it is precisely about the attitude towards Kant. In a text, moreover in that of fiction, everything depends on the understanding and readiness of the reader to understand the author, i.e., to analyze, to compare the text, to appreciate it as a whole. Although every brother who tells his short story or a fairy tale, is a replica of a particular historical figure out of the number of people close to Hoffmann, in relation to whom he had to be very careful and tactful, these images are not anyway documental but imaginary ones, and they are played with by the author, who implements his own plan, showing irony, grotesque or some other artistic liberties towards them and their judgments.
So, first comes an anecdote told by Cyprian, one of the "Serapions". By the way, I want to mention here that it is the author himself who stands behind this name in the "Serapion Brothers". This character was involved in a conversation about how possible it could be for friends to get back into the stream of the previous relationship of complete unity of interests and mutual trust after twelve years of separation, to common understanding of life and people, unanimous contempt for the philistines, to that sense of radiant joy and happiness that they had received primarily from communicating with each other. Are there any
former friends who are true to romantic goals and attitudes in spite of the clearly different life experience, which affected everyone? Formidable historical storm swept over them during that time, and the kind of mark it left on each of them is still an open question. The character provides two examples of responses to time circumstances people can show, giving each its assessment. However, the big question is whether the narrator gives the same assessment to the stories as the author himself.
Let's refer to the contents of the narrated story: "But it seems to me, — Cyprian began his speech, that if we managed to get into the old road, we could show in the clearest way (my italics. — L. K.) our philistine tendencies". It reminds me of a famous anecdote about the two philosophers, but, it certainly requires a more detailed retelling.
There were two students in the University of Koenigsberg, let's call them Sebastian and Ptolemy. Both fervently engaged themselves in the study of Kant's philosophy and undertook daily heated debates about this or that provision. One day, during such a philosophical dispute, the minute when Sebastian struck Ptolemy with one of the strongest arguments, and he opened his mouth to contradict him, their conversation was interfered and stopped, and then life took them apart and the two could no longer see each other. Twenty years passed, and one day, Ptolemy, walking along a street in B-town… happened to see a man in front of him, whom he recognized as his friend Sebastian. Immediately, he ran to him, grabbed him by the shoulders, and barely had the man time to turn around, when Ptolemy shouted, "So, you insist that…", and then started again the conversation interrupted twenty years ago. Sebastian, in his turn, began to support the arguments he held earlier in Koenigsberg; their dispute lasted an hour, then another hour, they were roaming, and finally got hot and tired, they decided to leave the matter to the discretion of Kant, but, unfortunately, had forgotten that they both were in the B-town… and the old man Immanuel had been resting in peace for many years. This impressed both of them so much that they parted, and never met again in their lives. This story, in which the most important thing is that it actually happened (my italics. — L. K.), is able to incur very sad thoughts, — continues Cyprian with an assessment part of his speech. — I, at least, cannot think without horror of such terrible philistinism, and for me even funnier incident is the one that had occurred with an old advisor, whom I visited after returning here. He received me very kindly, but I noticed in his manner some tension, strange and incomprehensible to me, until finally, while walking together this good-natured person addressed me with a touching request to put on my old powdered wig and a gray hat again, because otherwise he could not convince himself that he saw his former Cyprian. With this request, he wiped the sweating forehead hard, and good-naturedly begged me not to get angry with his desire" [4, p. 11—12].
Can the reader agree with both assessments made by Cyprian? Not only can, but in most cases, does. It is highly possible not to notice the irony of Hoffmann, which even turns to grotesque, and accept the whole argument at face value. It is difficult to make, and yet how often seemingly difficult turns out to be the easiest! The reader may well agree with strangeness and unusual behavior of the two friends, not at all qualifying it as philistine.
Isn't it obvious that the evaluation of two stories made by Cyprian is deliberately inadequate? Is consistency in interests and beliefs to be called philistinism, while the routine and resistance to something new, at least in appearance
and clothes — just funny? In my opinion, it is most clearly proved that these assessments should be turned. Terrible philistinism, causing consternation from one thought about it, is seen in the spiritual enthusiasm of two people with a complex problem, such problems being the essence of their characters. For them moving even little forward in addressing the issue was even more important than any conventions and external conditions. Ptolemy did not hesitate in his belief that Sebastian at heart remains exactly the same as he had been when we parted twenty years ago. And he was right! What role could be played here by those external changes, especially in clothing, which of course took place over such a long term by the standards of human life?
These circumstances call a normal person for an approval, if not delight and admiration for the greatness of characters that recognize their spiritual relationship and unwavering loyalty to the truth and high ideals of Kant's philosophy. Apparently, this is a common feature of all genuine Kantians who have already lived during past two hundred years in different places of the globe.
No wonder the second anecdote is given by a storyteller as funny, an ambivalent evaluation, which could serve as both an approval and reproof. An absurdity in something can be fun, and it is exactly what we deal with here. Patronizing lenience to an old advisor could be seen in every word about him: he himself and his begging were good-natured, his request was touching. The evaluation of this situation as funny, while the first one was named terrible, undoubtedly plays a role of the text irony indicator.
Actually, both anecdotes felt autobiographical and true. Hardly anyone could share with Hoffmann observation of this kind. Only an immediate participant of these two meetings with a twenty (!) years' gap could draw attention to the fact that the conversation got back to the issues agitating the friends in their student days. It is natural; it can hardly happen any other way. First, it comes to how much has happened since the friends were together, and discussed interesting subject right at the time when they parted for the time which turned to be so long. E.T.A. Hoffmann, apparently, was a participant of both stories. He would experience the difference of the two meetings: one with a classmate at the Albertina, the other with a relative. An old counselor could well be his uncle, a senior advisor to the tribunal in Berlin, who had already retired when Hoffmann returned there for the second and final time. A hint of a nephew who could be hardly recognized turned into an element of fiction. Hoffmann is well-known for his ability to bring most common household facts to grotesque. Autobiographical character of presented events, as it is quite likely to be the case, contradicts the tales of Hoffmann's indifference to Kant's ideas and inspires to consider the student's interests of the writer.
However, there is another event which did not serve in favor of Hoffmann and it is not unnoticed by his biographers. In February 1804 he came to Koenigsberg for three days (from 13 to 15 February), which coincided with the death of Kant, although the writer was visiting to say goodbye to Dora the Hutt, his teenage romance. He did not visit Kant's coffin. An opponent to all ostentation, and besides, generally unwilling to make his visit public, Hoffman in these days of the official fuss and hustle, apparently, did not find a possibility to pay his last tribute to the professor. There could be some other reasons apart from indifference mentioned very often in first place.
In general, Kant is treated with a respectfully reverent attitude in Germany, while Hoffmann is accepted more than remotely throughout the nineteenth century. This very emotionally different assessment could lead to the opposition of one to the other. However, the increasingly obvious fact of the wide presence of the great philosopher's ideas in the works of E.T.A. Hoffmann makes them inexorably close to each other.
2. The short story "The Sandman" in Kant's epistemology
Vita incerta — mors certissima3
E.T.A. Hoffmann appears in his works as a fairly sophisticated epistemologist. The suggestion that he was familiar with the text of the chapter "The Ground of the Distinction of All Objects into Phenomena and Noumena» together with its annex, which is called "The Amphiboly of Concepts of Reflection: Arising From The Confusion of The Empirical with the Transcendental Employment of Understanding" from the second edition of the "Critique of Pure reason " is not at all justified. The writer was also familiar with the mechanism of transcendental reflection, without which, according to Kant, we are unable to distinguish between authentic phenomena of real life, hard facts and objects of fantasy, which are not found anywhere else, except in the minds of people, especially of fictional characters. Transcendental reflection is a necessary ability of a person to register and account for the conditions under which our consciousness obtained certain concepts and images, and what cognitive abilities at the same time we used, and how they interacted. Aren't we always fully under the control of the Pure reason alone? State of mind, which can't distinguish between the word and the reality, typical for archaic period of its existence, as well as the inability of children to distinguish between their fantasy and reality, is devoid of even the transcendental reflection mandatory for correct navigation in the world. We must be able to distinguish between the world-as-it-seems from the real world, and the inability to do so could even be deadly.
The problem of the need to navigate the world of phenomena and noumena is the subject of a special analysis in Hoffmann's short story "The Sandman" from the book "Night Tales". The romantic story is given by Hoffman to the reader to soberly evaluate romantic worldview and its possible consequences.
The exposition of all the events in the story is given in the epistolary style, so popular in the 18th century. A student named Nathanael writes a letter to his friend Lothar, which mistakenly falls into the hands of Lothar's half-sister Clara, Nathanael's beloved, who is almost engaged to him. The letter alarmed her so much that she found it necessary to reply. And with this new letter to a friend the character hastens to reassure both him and Clara, understanding, that Lothar would share the message with his sister so she would know everything, as was the case with the first letter.
Nathanael is depicted as an impressionable man, prone to fantasizing and reflection, his vivid imagination spurred by emotions, inner spiritual life absorbing all his mind, with sober perception of the world disappearing completely. Character's emotional imbalance, being a hereditary trait, got momentum with the children's fear of a "Sandman" who, in his mother's threat, could appear if children failed to go to bed. This trauma played a tragic role in Nathanael's life. Children's phobias are a serious matter. Wild imagination makes the child literally freeze. It brought about his overpowering interest in reading chilling stories of the Kobold, witches, dwarves, dead people, blood-suckers… And even his mother's attempts who noticed this and tried to soothe his son ("My child, there is no Sandman,… when I say that the Sandman is coming, it only means that your eyelids are getting heavy and you cannot open the eyes, as if sand was sprinkled into them" [7, p. 98]), had no effect. Quite contrary, a terrible image found reinforcement in real heavy steps heard along the stairs: a late visitor came to his father to engage in alchemical experiments which require, as you know, complete secrecy. But the boy did not know that, and when he found it out, his fears didn't disappear but rather grew wildly. Guest, as it turned out, sometimes appeared at lunch and in the afternoon, but it gave him some sort of morbid pleasure to frighten children and enjoy their fear. When his image got strongly linked in his mind to his father's death (he was killed by an explosion during an alchemical experiment), Nathanael's shock every time at voluntary or involuntary reappearance of the Sandman's image in his mind could turn fatal.
Another city and classes at the University distracted and calmed Nathanael. He enthusiastically engaged himself in poetic experiments (inclination to poetry and excited emotions go hand in hand), but having such a nature it could not but happened that a lenses, glasses and telescopes trader looked like his father's guest, the Sandman, to him. The peace was lost. Ordinary life was distorted. Imagination went wild: the pictures of accomplished terrorist act, as we would say today, one worse than the other relentlessly pursued him.
And then came the moment of the exchange of letters, which has already been mentioned. Oh, if only Nathanael had not been so self-assured with all his emotional agitation, could his male arrogance have allowed him to listen to Clara's words, understand and acknowledge that she was right? And she wrote her beloved: "I'll tell you frankly, I think that all these terrible and horrible things, as you say, only happened in your soul, and that the real external world had very little to do with it. <…> This is a phantom of our own "I" whose inner affinity with us and profound impact on our soul plunges us into hell and lifts us to heaven " [7, p. 106—107].
The contradiction in the world perception revealed itself with amplitude unexpected to Nathanael but absolutely obvious to the author of the novella. The characters' names were not chosen at random — they expressed their human essence, and at the same time the essence of the consequent conflict: the name Nathanael could be a compound word — giving birth to the spirits, while Clara — clear, understanding everything and shedding light … As if Hoffmann was saying that it had been a healthy life instinct which brought Nathanael to Clara, and if he had understood himself right, he would have had a fruitful life.
Exchange of letters was just a preamble to the events that were developing rapidly. The habit of Nathanael to take imaginary for real was easily complemented with the ability to turn desired into actual.
It happened so that the character managed to see a beautiful girl, supposedly the daughter of the famous professor Spalanzani in the opposite window with a telescope purchased from the pseudo-Sandman. The beautiful creature slowly began to excite a burning curiosity with her dreamy stillness. Nathanael seemed to see her profound romantic nature; he wanted to meet the girl. Fortunately, the professor suddenly decided to give a reception, and Nathanael was invited along with people from the university and the city's famous townsfolk. His dream came true; he met the girl and immediately began to cite his own verses. Clara, when she heard his works, approved of them, but at the same time always expressed critical judgments and suggested options for improving them. Here, throughout the evening he had stayed by a magnificent listener till the time when almost all were gone, and the lights were being put out the lights in the halls. As soon as he stopped reciting to take another breath, he heard only one single excited word: "Aaah". There were neither curious, snide looks at him, nor even laughs in his address, which sometimes Clara could allow. After the evening when Spalanzani invited him to the reception, Nathanael became a frequent visitor to the professor, and spent almost every night in his house. Each meeting was a detailed replica of the first: Nathanael took a great pleasure listening to this encouraging "aaah." The image of Clara was absolutely blown away from his mind, replaced with a new one.
The desire to propose to his beloved Olympia occurred pretty soon. Intending to settle everything, Nathanael found a ring of his mother and went to the professor to make a gift to his beloved "as a symbol of his affection, and new, blossoming life together" [7, p. 125].
Running up the stairs, the character heard clattering, clinking of broken glass, thudding accompanied by cursing and swearing coming from cabinet Spalanzani's room. He was already able to distinguished shouts:
— Dishonest villain, I have put all my life into her! — Ha-ha-ha! I made her eyes!
— But I made the winding mechanism!
— Goddamn rascal! Let me go!
— Satan! Bastard! Get away!
The door of the room opened, and the young man saw the professor and his disgusting Sandman who were jerking and literally tearing apart his Olympia. Nathanael was dumbfounded. Then the Sandman pulled the doll out of the Spalanzani's hands, and, dragging his prey, ran down the stairs and disappeared.
Rage possessed Nathanael, and blind with anger, he rushed to the professor and "would have strangled him if it were not for the people who ran to them. Madness caught him with its burning claws and penetrated into the soul, tearing his thoughts and feelings » [7, p. 126]. Raging, emitting bestial howls the young man was tied up and taken to asylum.
Thanks to the care of doctors, relatives, and especially Clara, Nathanael came back to normal and gradually became the same. However, the tragic outcome of the history was not to be avoided. Nathanael, who had realized that Clara was his happiness, finally decided to cast in his life with her and move to his estate. Wishing to bid farewell to the town, they rise to the Town Hall Tower, he took from a notorious telescope from his pocket, the one which was previously mentioned, to view the surrounding mountains, but his look fell on the area under their feet. And… oh, horror! Among the people beneath he saw his Sandman. His mind suddenly went dizzy, Clara turned into a scary doll and, if not prevented, he would have pushed her down from the tower. Though Nathanael himself could not keep steady.
The short novel "The Sandman" is a perfect illustration to many pages of Kant's "Critique of Pure Reason." Such works of Hoffmann as "The Devil's Elixirs", "Serapion Brothers", in various forms treat acute epistemological problems relevant to both pre-Kantian philosophy and the philosophy of transcendental idealism. Everything written by Hoffmann brings certain tinges to the question of distinguishing between real and imaginable. Considering this, I am able to say that well-known world-duality of Ernst Theodor Amadeus Hoffmann rests on the Kantian dualism. Fantasy world of subjective visions is correlated by "postromantic" Hoffmann in a Kantian way with the empirical reality, which outs off any subjectivity. Factual and fictional are intertwined in his works, but they are never identified — ultimately the reality and fantasy take their own placement. So, with a skillful hand the writer piles phantasmagoric scenes in a fairy tale "Royal Bride", perplexing and confusing an unsophisticated reader, where the romantic style and methods of romantic text-building play with all the colors of a "vegetation" rainbow, but at the end the author reports that the tale is built on a true story learnt from the newspapers: the owner of a vegetable plot plucked out a carrot and found a gold ring with a stunning diamond in it, through which the carrot grew. Immediately the imagination was triggered and the author sparked the characters of the tale. However, unlike Nathanael, the fairy-tale characters could harness their imagination and the ending was equally happy to the event which inspired the story. Hoffmann is didactic while concluding the tale: "Let salamanders be quick-tempered, sylphs be light-headed, undines be amorous and passionate, and gnomes — evil and treacherous, it is something to put up with… If one once surrenders to one of these creatures, they will be able to make a human look different. Even worse, they will drag you in their kingdom, from which you will never be able to get back to the surface " [5, p. 212].
The fact that in Hoffmann's world-duality one of the worlds is always a reality in its flesh and blood, and the other one is the world of fantasy, serving as a criterion for assessing the reality of the world as an ideal, or, on the contrary, anti-ideal, distinguishes the artistic method of Hoffmann from a romantic one and prevents from identifying Hoffmann as a romantic. N. Berkovsky points at this, from his point of view, strange thing: "One of the ironies of history is that Hoffmann, the one who implemented the principles of German romanticism the best, was reluctantly accepted as equal by the very German romantics» [1, p. 426]. This paradox mentioned by Berkovsky can be explained just by the fact that Hoffmann, completely free in terms of all the romantic devices, ironically played with them. At the core of his philosophy, he was not a romantic, and they felt it. Having the opportunity to learn from the Romantics, Hoffmann was not fond of extreme idealism. Since the times of his youth he was soberly critical to the world around him, knew the value of the reality, and was able to appreciate it. It was not a single time when his hand wrote a line like this: "I may be lucky, like a good portrait painter, to aptly grasp some faces that you would find recognizable even without knowing the original, and you would even think that you had seen these people with your own eyes. And maybe then, my reader, would you believe that there is nothing more wonderful and insane than the actual real life… " [7, p. 111].
From his very first steps Hoffmann was valued as a master of belles-lettres, though there always were those who could acknowledge significance of his profound thought. Though there were many such people in Russia, of which we could not but mention V. Belinsky, F. Dostoevsky and V. Soloviev, Germany, of course, saw a wider audience.
Berkovskij N. Ja. Je. T. A. Gofman // Berkovskij N. Ja. Romantizm v Germanii. SPb., 2001.
Gjorres J. Aforizmy ob iskusstve… // Jestetika nemeckih romantikov. M., 1987.
Gippel' T. G. fon. Vospominanija o Gofmane // Gofman Je. T. A. Zhizn' i tvorchestvo v pis'mah, vyskazyvanijah i dokumentah vremeni / pod red. K. Gjuncelja. M., 1987.
Gofman Je. T. A. Serapionovy brat'ja // Sobr. soch. SPb., 1896. T. 4.
Gofman Je. T. A. Korolevskaja nevesta // Sobr. soch. SPb., 1896. T. 4.
Gofman Je. T. A. Zhitejskie vozzrenija kota Murra // Gofman Je. T. A. Krejsleriana. Zhitejskie vozzrenija kota Murra. Dnevniki. M., 1972.
Gofman Je. T. A. Novelly. L., 1990.
Safranski R. Gofman. M., 2005.
Shelling F. V. J. O mirovoj dushe… // Soch. : v 2 t. M., 1987. T. 1.
This article was firstly published in collected articles "Kantovsky Sbornik" (2013):
Kalinnikov L. To think of a thing and to learn a thing is not the same…", or E.T.A. Hoffmann and "Transcendental analysis"// Kantovsky Sbornik. Selected articles. 2012: academic journal. 2013. P. 39 – 50.
See I. Kant "Critique of Pure Reason" [A 820 / B 848]. ↩
It's the reference to the unfinished novel by Hoffmann "The Life and Opinions of Tomcat Murr together with a Fragmentary Biography of Kapellmeister Johannes Kreisler on Random Sheets of Waste Paper" [6]. ↩
Life if false, but death is the one which is true (Lat.). ↩
Professor Mario Caimi: "Vierzig Jahre meines Lebens habe ich der Kant-Forschung gewidmet"
Luigi Caranti. Perpetual Peace and Liberal Peace: Three Misunderstandings
Gerfried Horst. Die Kant-Orte in Kaliningrad/Königsberg und Umgebung
© Alexey Salikov, 2012-2017, © Gleb Lobanov, 2012-2017, © Academia Kantiana IKBFU, 2018
This website was created with support from the Russian Foundation for the Humanities (RGNF), Project No. 12-03-12032

redpajama_set_name: RedPajamaCommonCrawl


AFP Technology (afp-technology.com) has created this privacy statement in order to demonstrate our solemn and firm commitment to your privacy. In using our site, we want to provide a safe, secure experience. We will use our best efforts to ensure that the information you submit to us remains private. The following discloses our information gathering and dissemination practices for the afp-technology.com website.
AFP Technology is the sole proprietor of the information collected on this site. We will not disclose to any third party your name, address, e-mail address, or telephone number. We will not sell, share, or rent this information to others. We will not ask site users to provide demographic information or any other unique identifiers. We use no "Cookies" (pieces of information that some Web sites transfer to the computer that is browsing that Web site and are used for record-keeping purposes at many Web sites). Our Site is not directed to children and we do not knowingly collect personal information from individuals under eighteen years of age.
We may use information gathered via our Site to improve our web-based services. We periodically perform statistical analyses of aggregate user behavior and characteristics in order to measure interest in and use of various areas on our website and to use such information to improve on our website's ability to serve you better.
Our Site automatically collects an IP address from all visitors to our Site. An IP address is a number that is automatically assigned to your computer when you use the Internet. We use IP addresses to help diagnose problems with our server, administer our Site, analyze trends, track users' movement, gather broad demographic information for aggregate use in order for us to improve the Sites, and deliver customized, personalized content. IP addresses are not linked to personally identifiable information.
This web site contains links to other sites. AFP Technology is not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects personally identifiable information. This privacy statement applies solely to information collected by our website, afp-technology.com.
AFP Technology provides users the opportunity to opt-out of receiving communications from us. We may occasionally send information to our mailing list about the afp-technology.com website (such as enhancements to the site's functionality or new publications posted). This site gives users the following options for removing their information from our database, to cease future communications, or to no longer utilize our service, send an email to webmaster@afp-technology.com.
Should we decide to change our privacy commitment for afp-technology.com, we will post those changes here so that you will always know what information we gather, how we might use that information, and whether we will disclose it to anyone. If, at any time, you have questions or concerns about AFP Technology's privacy commitment, please feel free to e-mail us at webmaster@afp-technology.com.


text:
from unittest import mock

from neutron_lib import constants as lib_const
from neutron_lib import context
from oslo_utils import uuidutils

from neutron.agent.l3 import agent as l3_agent
from neutron.agent.l3 import dvr_edge_router
from neutron.agent.l3 import dvr_local_router as dvr_router
from neutron.agent.l3.extensions import ndp_proxy as np
from neutron.agent.l3 import l3_agent_extension_api as l3_ext_api
from neutron.agent.l3 import router_info
from neutron.agent.linux import iptables_manager
from neutron.api.rpc.callbacks.consumer import registry
from neutron.api.rpc.callbacks import events
from neutron.api.rpc.callbacks import resources
from neutron.api.rpc.handlers import resources_rpc
from neutron.objects import agent as agent_obj
from neutron.objects import ndp_proxy as np_obj
from neutron.objects import ports as ports_obj
from neutron.tests import base
from neutron.tests.unit.agent.l3 import test_agent
from neutron.tests.unit.agent.l3 import test_dvr_local_router

_uuid = uuidutils.generate_uuid

HOSTNAME = 'testhost'

class NDPProxyExtensionTestCaseBase(base.BaseTestCase):

    def setUp(self):
        super(NDPProxyExtensionTestCaseBase, self).setUp()
        self.context = context.get_admin_context()
        self.connection = mock.Mock()
        self.ext_port_id = _uuid()
        self.ex_net_id = _uuid()
        self.ex_gw_port = {'id': self.ext_port_id,
                           'network_id': self.ex_net_id,
                           'gw_port_host': HOSTNAME}
        self.fake_router_id = _uuid()
        self.port_id = _uuid()
        self.agent_api = l3_ext_api.L3AgentExtensionAPI(None, None)
        self.np_ext = np.NDPProxyAgentExtension()
        self.np_ext.consume_api(self.agent_api)
        self.np_ext.initialize(
            self.connection, lib_const.L3_AGENT_MODE)
        self.ndpproxy = np_obj.NDPProxy(
            context=None, id=_uuid(),
            router_id=self.fake_router_id,
            port_id=self.port_id, ip_address='2002::1:3')
        port_binding = ports_obj.PortBinding(port_id=self.port_id,
                                             host=HOSTNAME)
        port_obj = ports_obj.Port(id=self.port_id, bindings=[port_binding])
        self.ndp_proxies = [self.ndpproxy]
        self.ports = [port_obj]
        agent_configurations = {
            'agent_mode': lib_const.L3_AGENT_MODE_DVR_NO_EXTERNAL}
        self.agent_obj = agent_obj.Agent(
            id=_uuid(), host=HOSTNAME,
            agent_type=lib_const.AGENT_TYPE_L3,
            configurations=agent_configurations)
        self.ip_wrapper = mock.patch('neutron.agent.linux.'
                                     'ip_lib.IPWrapper').start()
        self._set_pull_mock()

    def _set_pull_mock(self):

        def _bulk_pull_mock(context, resource_type, filter_kwargs=None):
            if resource_type == resources.PORT:
                return [port for port in self.ports if
                        port.id == filter_kwargs['id']]
            if resource_type == resources.AGENT:
                return [self.agent_obj]
            if resource_type == resources.NDPPROXY:
                result = []
                if 'router_id' in filter_kwargs:
                    for ndp_proxy in self.ndp_proxies:
                        if ndp_proxy.router_id in filter_kwargs['router_id']:
                            result.append(ndp_proxy)
                    return result
                return self.ndp_proxie

        self.pull = mock.patch('neutron.api.rpc.handlers.resources_rpc.'
                               'ResourcesPullRpcApi.pull').start()
        self.bulk_pull = mock.patch('neutron.api.rpc.handlers.resources_rpc.'
                                    'ResourcesPullRpcApi.bulk_pull').start()
        self.bulk_pull.side_effect = _bulk_pull_mock

class NDPProxyExtensionDVRTestCase(
        NDPProxyExtensionTestCaseBase,
        test_dvr_local_router.TestDvrRouterOperations):

    def setUp(self):
        super(NDPProxyExtensionDVRTestCase, self).setUp()
        self.conf.host = HOSTNAME
        self.conf.agent_mode = lib_const.L3_AGENT_MODE_DVR
        self.agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
        self.add_route = mock.MagicMock()
        self.delete_route = mock.MagicMock()
        mock_route_cmd = mock.MagicMock()
        mock_route_cmd.add_route = self.add_route
        mock_route_cmd.delete_route = self.delete_route
        self.mock_ip_dev.route = mock_route_cmd
        self.lladdr = "fe80::f816:3eff:fe5f:9d67"
        get_ipv6_lladdr = mock.patch("neutron.agent.linux.ip_lib."
                                     "get_ipv6_lladdr").start()
        get_ipv6_lladdr.return_value = "%s/64" % self.lladdr
        self.router = {'id': self.fake_router_id,
                       'gw_port': self.ex_gw_port,
                       'ha': False,
                       'distributed': True,
                       'enable_ndp_proxy': True}
        kwargs = {
            'agent': self.agent,
            'router_id': self.fake_router_id,
            'router': self.router,
            'agent_conf': self.conf,
            'interface_driver': mock.Mock()}
        self.router_info = dvr_router.DvrLocalRouter(HOSTNAME, **kwargs)
        self.get_router_info = mock.patch(
            'neutron.agent.l3.l3_agent_extension_api.'
            'L3AgentExtensionAPI.get_router_info').start()
        self.get_router_info.return_value = self.router_info
        self.router_info.fip_ns = self.agent.get_fip_ns(self.ex_net_id)
        agent_ext_port_id = _uuid()
        self.router_info.fip_ns.agent_gateway_port = {'id': agent_ext_port_id}
        self.namespace = "fip-%s" % self.ex_net_id
        self.agent_ext_dvice = "fg-%s" % agent_ext_port_id[:11]
        self.ip_wrapper.reset_mock()

    def test_create_router(self):
        self.np_ext.add_router(self.context, self.router)
        expected_calls = [
            mock.call('2002::1:3', via=self.lladdr)]
        self.assertEqual(expected_calls, self.add_route.mock_calls)
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.agent_ext_dvice]
        proxy_cmd = ['ip', '-6', 'neigh', 'add',
                     'proxy', '2002::1:3', 'dev', self.agent_ext_dvice]
        ndsend_cmd = ['ndsend', '2002::1:3', self.agent_ext_dvice]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True),
            mock.call().netns.execute(
                ndsend_cmd, check_exit_code=False,
                log_fail_as_error=True, privsep_exec=True),
            mock.call(namespace=self.namespace)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def test_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_route.reset_mock()
        self.ip_wrapper.reset_mock()
        self.np_ext.update_router(self.context, self.router)
        self.add_route.assert_not_called()
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.agent_ext_dvice]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def test_add_ndp_proxy_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_route.reset_mock()
        self.ip_wrapper.reset_mock()
        ndpproxy = np_obj.NDPProxy(
            context=None, id=_uuid(),
            router_id=self.fake_router_id,
            port_id=self.port_id, ip_address='2002::1:6')
        self.ndp_proxies.append(ndpproxy)
        self.np_ext.update_router(self.context, self.router)
        expected_calls = [
            mock.call('2002::1:6', via=self.lladdr)]
        self.assertEqual(expected_calls, self.add_route.mock_calls)
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.agent_ext_dvice]
        proxy_cmd = ['ip', '-6', 'neigh', 'add',
                     'proxy', '2002::1:6', 'dev', self.agent_ext_dvice]
        ndsend_cmd = ['ndsend', '2002::1:6', self.agent_ext_dvice]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True),
            mock.call().netns.execute(
                ndsend_cmd, check_exit_code=False,
                log_fail_as_error=True, privsep_exec=True),
            mock.call(namespace=self.namespace)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def test_del_ndp_proxy_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_route.reset_mock()
        self.ip_wrapper.reset_mock()
        self.ndp_proxies = []
        self.np_ext.update_router(self.context, self.router)
        self.add_route.assert_not_called()
        expected_calls = [
            mock.call('2002::1:3', via=self.lladdr)]
        self.assertEqual(expected_calls, self.delete_route.mock_calls)
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.agent_ext_dvice]
        proxy_cmd = ['ip', '-6', 'neigh', 'del',
                     'proxy', '2002::1:3', 'dev', self.agent_ext_dvice]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def test__handle_notification(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_route.reset_mock()
        self.ip_wrapper.reset_mock()
        ndpproxy = np_obj.NDPProxy(
            context=None, id=_uuid(),
            router_id=self.fake_router_id,
            port_id=self.port_id, ip_address='2002::1:5')
        self.np_ext._handle_notification(mock.MagicMock(), mock.MagicMock(),
                                         [ndpproxy], events.CREATED)
        expected_calls = [
            mock.call('2002::1:5', via=self.lladdr)]
        self.assertEqual(expected_calls, self.add_route.mock_calls)
        proxy_cmd = ['ip', '-6', 'neigh', 'add',
                     'proxy', '2002::1:5', 'dev', self.agent_ext_dvice]
        ndsend_cmd = ['ndsend', '2002::1:5', self.agent_ext_dvice]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True),
            mock.call().netns.execute(
                ndsend_cmd, check_exit_code=False,
                log_fail_as_error=True, privsep_exec=True)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)
        self.add_route.reset_mock()
        self.ip_wrapper.reset_mock()
        self.np_ext._handle_notification(mock.MagicMock(), mock.MagicMock(),
                                         [ndpproxy], events.DELETED)
        self.add_route.assert_not_called()
        expected_calls = [
            mock.call('2002::1:5', via=self.lladdr)]
        self.assertEqual(expected_calls, self.delete_route.mock_calls)
        proxy_cmd = ['ip', '-6', 'neigh', 'del',
                     'proxy', '2002::1:5', 'dev', self.agent_ext_dvice]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

class NDPProxyExtensionLegacyDVRNoExternalTestCaseBase(
        NDPProxyExtensionTestCaseBase,
        test_agent.BasicRouterOperationsFramework):

    def _mock_iptables_actions(self):
        self.get_router_info = mock.patch(
            'neutron.agent.l3.l3_agent_extension_api.'
            'L3AgentExtensionAPI.get_router_info').start()
        self.add_chain = mock.patch('neutron.agent.linux.iptables_manager.'
                                    'IptablesTable.add_chain').start()
        self.remove_chain = mock.patch('neutron.agent.linux.iptables_manager.'
                                       'IptablesTable.remove_chain').start()
        self.add_rule = mock.patch('neutron.agent.linux.iptables_manager.'
                                   'IptablesTable.add_rule').start()
        self.remove_rule = mock.patch('neutron.agent.linux.iptables_manager.'
                                      'IptablesTable.remove_rule').start()

        def _add_chain_mock(chain):
            self.iptables_manager.ipv6[
                'filter'].chains.append(chain)

        def _remove_chain_mock(chain):
            self.iptables_manager.ipv6[
                'filter'].chains.remove(chain)

        def _add_rule_mock(chain, rule, top=False):
            rule_obj = mock.MagicMock()
            rule_obj.rule = rule
            self.iptables_manager.ipv6[
                'filter'].rules.append(rule_obj)

        def _remove_rule_mock(chain, rule, top=False):
            for rule_obj in self.iptables_manager.ipv6[
                    'filter'].rules:
                if rule == rule_obj.rule:
                    self.iptables_manager.ipv6[
                        'filter'].rules.remove(rule_obj)
                    break

        self.get_router_info.return_value = self.router_info
        self.add_chain.side_effect = _add_chain_mock
        self.remove_chain.side_effect = _remove_chain_mock
        self.add_rule.side_effect = _add_rule_mock
        self.remove_rule.side_effect = _remove_rule_mock

    def _test_create_router(self):
        self.np_ext.add_router(self.context, self.router)
        expected_calls = [mock.call(np.DEFAULT_NDP_PROXY_CHAIN)]
        self.assertEqual(expected_calls, self.add_chain.mock_calls)
        default_rule = '-i %s -j DROP' % self.ext_device_name
        subnet_rule = ('-i %s --destination %s -j %s-%s') % (
            self.ext_device_name, '2001::1:0/112', self.wrap_name,
            np.DEFAULT_NDP_PROXY_CHAIN)
        accept_rule = '-i %s --destination %s -j ACCEPT' % (
            self.ext_device_name, '2002::1:3')
        expected_calls = [
            mock.call(np.DEFAULT_NDP_PROXY_CHAIN, default_rule),
            mock.call('FORWARD', subnet_rule),
            mock.call(np.DEFAULT_NDP_PROXY_CHAIN, accept_rule, top=True)]
        self.assertEqual(expected_calls, self.add_rule.mock_calls)
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.ext_device_name]
        proxy_cmd = ['ip', '-6', 'neigh', 'add', 'proxy',
                     '2002::1:3', 'dev', self.ext_device_name]
        ndsend_cmd = ['ndsend', '2002::1:3', self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True),
            mock.call().netns.execute(ndsend_cmd, check_exit_code=False,
                                      log_fail_as_error=True,
                                      privsep_exec=True),
            mock.call(namespace=self.namespace)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def _test_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_chain.reset_mock()
        self.add_rule.reset_mock()
        self.ip_wrapper.reset_mock()
        self.np_ext.update_router(self.context, self.router)
        self.add_chain.assert_not_called()
        self.add_rule.assert_not_called()
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call(namespace=self.namespace)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def _test_add_ndp_proxy_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_chain.reset_mock()
        self.add_rule.reset_mock()
        self.ip_wrapper.reset_mock()
        self.ndp_proxies.append(
            np_obj.NDPProxy(context=None, id=_uuid(),
                            router_id=self.fake_router_id,
                            port_id=self.port_id,
                            ip_address='2002::1:4'))
        self.np_ext.update_router(self.context, self.router)
        self.add_chain.assert_not_called()
        accept_rule = '-i %s --destination %s -j ACCEPT' % (
            self.ext_device_name, '2002::1:4')
        expected_calls = [
            mock.call(np.DEFAULT_NDP_PROXY_CHAIN, accept_rule, top=True)]
        self.assertEqual(expected_calls, self.add_rule.mock_calls)
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.ext_device_name]
        proxy_cmd = ['ip', '-6', 'neigh', 'add', 'proxy',
                     '2002::1:4', 'dev', self.ext_device_name]
        ndsend_cmd = ['ndsend', '2002::1:4', self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True),
            mock.call().netns.execute(ndsend_cmd, check_exit_code=False,
                                      log_fail_as_error=True,
                                      privsep_exec=True),
            mock.call(namespace=self.namespace)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def _test_del_ndp_proxy_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_chain.reset_mock()
        self.add_rule.reset_mock()
        self.ip_wrapper.reset_mock()
        self.ndp_proxies = []
        self.np_ext.update_router(self.context, self.router)
        self.add_chain.assert_not_called()
        self.remove_chain.assert_not_called()
        self.add_rule.assert_not_called()
        accept_rule = '-i %s --destination %s -j ACCEPT' % (
            self.ext_device_name, '2002::1:3')
        expected_calls = [mock.call(np.DEFAULT_NDP_PROXY_CHAIN,
                                    accept_rule, top=True)]
        self.assertEqual(expected_calls, self.remove_rule.mock_calls)
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.ext_device_name]
        proxy_cmd = ['ip', '-6', 'neigh', 'del',
                     'proxy', '2002::1:3', 'dev', self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def _test_add_subnet_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_chain.reset_mock()
        self.add_rule.reset_mock()
        self.ip_wrapper.reset_mock()
        self.internal_ports.append(
            {'subnets': [{'cidr': '2001::5:0/112'}]})
        self.np_ext.update_router(self.context, self.router)
        self.add_chain.assert_not_called()
        self.remove_chain.assert_not_called()
        subnet_rule = ('-i %s --destination 2001::5:0/112 -j %s-%s') % (
            self.ext_device_name, self.wrap_name,
            np.DEFAULT_NDP_PROXY_CHAIN)
        expected_calls = [mock.call('FORWARD', subnet_rule)]
        self.assertEqual(expected_calls, self.add_rule.mock_calls)
        self.remove_rule.assert_not_called()
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call(namespace=self.namespace)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def _test_remove_subnet_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_chain.reset_mock()
        self.add_rule.reset_mock()
        self.ip_wrapper.reset_mock()
        self.router_info.internal_ports = []
        self.np_ext.update_router(self.context, self.router)
        self.add_chain.assert_not_called()
        self.remove_chain.assert_not_called()
        self.add_rule.assert_not_called()
        subnet_rule = ('-i %s --destination %s -j %s-%s') % (
            self.ext_device_name, '2001::1:0/112', self.wrap_name,
            np.DEFAULT_NDP_PROXY_CHAIN)
        expected_calls = [mock.call('FORWARD', subnet_rule)]
        self.assertEqual(expected_calls, self.remove_rule.mock_calls)
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=1' % self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True),
            mock.call(namespace=self.namespace),
            mock.call(namespace=self.namespace)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def _test_disable_ndp_proxy_update_router(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_chain.reset_mock()
        self.add_rule.reset_mock()
        self.ip_wrapper.reset_mock()
        self.router['enable_ndp_proxy'] = False
        self.np_ext.update_router(self.context, self.router)
        self.add_chain.assert_not_called()
        expected_calls = [mock.call(np.DEFAULT_NDP_PROXY_CHAIN)]
        self.assertEqual(expected_calls, self.remove_chain.mock_calls)
        self.add_rule.assert_not_called()
        self.remove_rule.assert_not_called()
        flush_cmd = ['ip', '-6', 'neigh', 'flush', 'proxy']
        sysctl_cmd = ['sysctl', '-w',
                      'net.ipv6.conf.%s.proxy_ndp=0' % self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(flush_cmd, check_exit_code=False,
                                      privsep_exec=True),
            mock.call().netns.execute(sysctl_cmd, privsep_exec=True)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

    def _test__handle_notification(self):
        self.np_ext.add_router(self.context, self.router)
        self.add_chain.reset_mock()
        self.add_rule.reset_mock()
        self.ip_wrapper.reset_mock()
        ndpproxy = np_obj.NDPProxy(
            context=None, id=_uuid(),
            router_id=self.fake_router_id,
            port_id=self.port_id, ip_address='2002::1:5')
        self.np_ext._handle_notification(mock.MagicMock(), mock.MagicMock(),
                                         [ndpproxy], events.CREATED)
        self.add_chain.assert_not_called()
        self.remove_chain.assert_not_called()
        accept_rule = '-i %s --destination %s -j ACCEPT' % (
            self.ext_device_name, '2002::1:5')
        expected_calls = [
            mock.call(np.DEFAULT_NDP_PROXY_CHAIN, accept_rule, top=True)]
        self.assertEqual(expected_calls, self.add_rule.mock_calls)
        self.remove_rule.assert_not_called()
        proxy_cmd = ['ip', '-6', 'neigh', 'add', 'proxy',
                     '2002::1:5', 'dev', self.ext_device_name]
        ndsend_cmd = ['ndsend', '2002::1:5', self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True),
            mock.call().netns.execute(ndsend_cmd, check_exit_code=False,
                                      log_fail_as_error=True,
                                      privsep_exec=True)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)
        self.add_chain.reset_mock()
        self.remove_chain.reset_mock()
        self.add_rule.reset_mock()
        self.remove_rule.reset_mock()
        self.ip_wrapper.reset_mock()
        self.np_ext._handle_notification(mock.MagicMock(), mock.MagicMock(),
                                         [ndpproxy], events.DELETED)
        self.add_chain.assert_not_called()
        self.remove_chain.assert_not_called()
        self.add_rule.assert_not_called()
        accept_rule = ('-i %s --destination %s -j ACCEPT') % (
            self.ext_device_name, '2002::1:5')
        expected_calls = [
            mock.call(np.DEFAULT_NDP_PROXY_CHAIN, accept_rule, top=True)]
        self.assertEqual(expected_calls, self.remove_rule.mock_calls)
        proxy_cmd = ['ip', '-6', 'neigh', 'del', 'proxy', '2002::1:5',
                     'dev', self.ext_device_name]
        expected_calls = [
            mock.call(namespace=self.namespace),
            mock.call().netns.execute(proxy_cmd, privsep_exec=True)]
        self.assertEqual(expected_calls, self.ip_wrapper.mock_calls)

class NDPProxyExtensionLegacyTestCase(
        NDPProxyExtensionLegacyDVRNoExternalTestCaseBase):
    def setUp(self):
        super(NDPProxyExtensionLegacyTestCase, self).setUp()
        self.conf.host = HOSTNAME
        self.conf.agent_mode = lib_const.L3_AGENT_MODE_LEGACY
        self.agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
        self.ext_device_name = 'qg-%s' % self.ext_port_id[0:11]
        self.internal_ports = [{'subnets': [{'cidr': '2001::1:0/112'}]}]
        self.router = {'id': self.fake_router_id,
                       'gw_port': self.ex_gw_port,
                       'ha': False,
                       'distributed': False,
                       'enable_ndp_proxy': True}
        self.router_info = router_info.RouterInfo(
            self.agent, self.fake_router_id, self.router, **self.ri_kwargs)
        self.iptables_manager = self.router_info.iptables_manager
        self.router_info.internal_ports = self.internal_ports
        self.router_info.ex_gw_port = self.ex_gw_port
        self.iptables_manager.ipv6['filter'].chains = []
        self.iptables_manager.ipv6['filter'].rules = []
        self.agent.router_info[self.router['id']] = self.router_info
        self.wrap_name = self.iptables_manager.wrap_name
        self.namespace = "qrouter-" + self.fake_router_id
        self._mock_iptables_actions()
        self.ip_wrapper.reset_mock()

    def test_create_router(self):
        self._test_create_router()

    def test_update_router(self):
        self._test_update_router()

    def test_add_ndp_proxy_update_router(self):
        self._test_add_ndp_proxy_update_router()

    def test_del_ndp_proxy_update_router(self):
        self._test_del_ndp_proxy_update_router()

    def test_add_subnet_update_router(self):
        self._test_add_subnet_update_router()

    def test_remove_subnet_update_router(self):
        self._test_remove_subnet_update_router()

    def test_disable_ndp_proxy_update_router(self):
        self._test_disable_ndp_proxy_update_router()

    def test__handle_notification(self):
        self._test__handle_notification()

class NDPProxyExtensionDVRNoExternalTestCase(
        NDPProxyExtensionLegacyDVRNoExternalTestCaseBase):
    def setUp(self):
        super(NDPProxyExtensionLegacyDVRNoExternalTestCaseBase, self).setUp()
        self.conf.host = HOSTNAME
        self.conf.agent_mode = lib_const.L3_AGENT_MODE_DVR_SNAT
        self.agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
        self.ext_device_name = 'qg-%s' % self.ext_port_id[0:11]
        self.internal_ports = [{'subnets': [{'cidr': '2001::1:0/112'}]}]
        self.router = {'id': self.fake_router_id,
                       'gw_port': self.ex_gw_port,
                       'gw_port_host': HOSTNAME,
                       'ha': False,
                       'distributed': True,
                       'enable_ndp_proxy': True}
        interface_driver = mock.Mock()
        interface_driver.DEV_NAME_LEN = 14
        kwargs = {
            'agent': self.agent,
            'router_id': self.fake_router_id,
            'router': self.router,
            'agent_conf': self.conf,
            'interface_driver': interface_driver}
        self._mock_load_fip = mock.patch.object(
            dvr_edge_router.DvrEdgeRouter,
            '_load_used_fip_information').start()
        self.router_info = dvr_edge_router.DvrEdgeRouter(HOSTNAME, **kwargs)
        self.iptables_manager = iptables_manager.IptablesManager(
            namespace=self.router_info.snat_namespace.name,
            use_ipv6=self.router_info.use_ipv6)
        self.router_info.snat_iptables_manager = self.iptables_manager
        self.router_info.internal_ports = self.internal_ports
        self.router_info.ex_gw_port = self.ex_gw_port
        self.iptables_manager.ipv6['filter'].chains = []
        self.iptables_manager.ipv6['filter'].rules = []
        self.agent.router_info[self.router['id']] = self.router_info
        self.wrap_name = self.iptables_manager.wrap_name
        self.namespace = "snat-" + self.fake_router_id
        self._mock_iptables_actions()
        self.ip_wrapper.reset_mock()

    def test_create_router(self):
        self._test_create_router()

    def test_update_router(self):
        self._test_update_router()

    def test_add_ndp_proxy_update_router(self):
        self._test_add_ndp_proxy_update_router()

    def test_del_ndp_proxy_update_router(self):
        self._test_del_ndp_proxy_update_router()

    def test_add_subnet_update_router(self):
        self._test_add_subnet_update_router()

    def test_remove_subnet_update_router(self):
        self._test_remove_subnet_update_router()

    def test_disable_ndp_proxy_update_router(self):
        self._test_disable_ndp_proxy_update_router()

    def test__handle_notification(self):
        self._test__handle_notification()

class NDPProxyExtensionInitializeTestCase(NDPProxyExtensionTestCaseBase):

    @mock.patch.object(registry, 'register')
    @mock.patch.object(resources_rpc, 'ResourcesPushRpcCallback')
    def test_initialize_subscribed_to_rpc(self, rpc_mock, subscribe_mock):
        call_to_patch = 'neutron_lib.rpc.Connection'
        with mock.patch(call_to_patch,
                        return_value=self.connection) as create_connection:
            self.np_ext.initialize(
                self.connection, lib_const.L3_AGENT_MODE)
            create_connection.assert_has_calls([mock.call()])
            self.connection.create_consumer.assert_has_calls(
                [mock.call(
                     resources_rpc.resource_type_versioned_topic(
                         resources.NDPPROXY),
                     [rpc_mock()],
                     fanout=True)]
            )
            subscribe_mock.assert_called_with(
                mock.ANY, resources.NDPPROXY)

class RouterNDPProxyMappingTestCase(base.BaseTestCase):
    def setUp(self):
        super(RouterNDPProxyMappingTestCase, self).setUp()
        self.mapping = np.RouterNDPProxyMapping()
        self.router1 = _uuid()
        self.router2 = _uuid()
        self.ndpproxy1 = np_obj.NDPProxy(
            context=None, id=_uuid(),
            router_id=self.router1,
            port_id=_uuid(), ip_address='2002::1:3')
        self.ndpproxy2 = np_obj.NDPProxy(
            context=None, id=_uuid(),
            router_id=self.router2,
            port_id=_uuid(), ip_address='2002::1:4')
        self.ndpproxies = [self.ndpproxy1, self.ndpproxy2]

    def test_set_ndp_proxies(self):
        self.mapping.set_ndp_proxies(self.ndpproxies)
        for ndp_proxy in self.ndpproxies:
            res = self.mapping.get_ndp_proxy(ndp_proxy.id)
            self.assertEqual(ndp_proxy, res)
        router1_ndp_proxies = self.mapping.get_ndp_proxies_by_router_id(
            self.router1)
        self.assertEqual([self.ndpproxy1], router1_ndp_proxies)
        router2_ndp_proxies = self.mapping.get_ndp_proxies_by_router_id(
            self.router2)
        self.assertEqual([self.ndpproxy2], router2_ndp_proxies)

    def test_del_ndp_proxies(self):
        self.mapping.set_ndp_proxies(self.ndpproxies)
        self.mapping.del_ndp_proxies([self.ndpproxy2])
        res = self.mapping.get_ndp_proxy(self.ndpproxy2.id)
        self.assertIsNone(res)
        router1_ndp_proxies = self.mapping.get_ndp_proxies_by_router_id(
            self.router1)
        self.assertEqual([self.ndpproxy1], router1_ndp_proxies)
        router2_ndp_proxies = self.mapping.get_ndp_proxies_by_router_id(
            self.router2)
        self.assertEqual([], router2_ndp_proxies)

    def test_clear_by_router_id(self):
        self.mapping.set_ndp_proxies(self.ndpproxies)
        self.mapping.clear_by_router_id(self.router1)
        np1 = self.mapping.get_ndp_proxy(self.ndpproxy1.id)
        self.assertIsNone(np1)
        np2 = self.mapping.get_ndp_proxy(self.ndpproxy2.id)
        self.assertEqual(self.ndpproxy2, np2)
        router1_ndp_proxies = self.mapping.get_ndp_proxies_by_router_id(
            self.router1)
        self.assertEqual([], router1_ndp_proxies)
        router2_ndp_proxies = self.mapping.get_ndp_proxies_by_router_id(
            self.router2)
        self.assertEqual([self.ndpproxy2], router2_ndp_proxies)

redpajama_set_name: RedPajamaGithub


COLUMBIA, Md., July 25, 2018 /PRNewswire/ -- Global performance improvement solutions provider GP Strategies Corporation (NYSE: GPX) announced that it will release its financial results for the second quarter ended June 30, 2018 on Tuesday, July 31, 2018. In conjunction with the release, GP Strategies has scheduled an investor conference call and webcast that day at 10:00 a.m. Eastern Time. Prepared remarks regarding the company's financial and operational results will be followed by a question and answer period with GP Strategies' executive management team.
https://services.choruscall.com/links/gpx180731.html or by calling +1 (866) 777-2509 within the US, or +1 (412) 317-5413 internationally, and requesting the "GP Strategies Conference." The presentation slides broadcast via the webcast will also be available on the Investors section of GP Strategies' website the morning of the call. Participants must be logged in via telephone to submit a question to management during the call. Participants may optionally pre-register for the webcast at http://dpregister.com/10122498.
The webcast will be archived on the Investors section of GP Strategies' website and will remain available for 90 days. Alternatively, a telephonic replay of the conference call will be available for one week and may be accessed by dialing +1 (877) 344-7529 in the US, or +1 (412) 317-0088 internationally, and requesting conference number 10122498.


Broccoli rarely enters our house in spite of its high nutritional profile. Its smell puts off any interest in eating it but I found the method mentioned in this recipe is the only way to get this 'wonder' veggie into our diet. This time around after a long time, I had a craving for the Baked Broccoli and so here it is. Its very rich in Vitamins A, C and K. Also a very good source of Folate and other essential elements. Incidentally there was a blogging event for Crucial Cruciferous veggies hosted by Yasmeen of yasmeen-healthnut and Baked Broccoli rightly fits into that category.
In a bowl, mix curd and the chilli-garlic sauce and mix well.
Add the broccoli florets and coat all the florets with the curd mixture. Marinate it for about 5-10 min. (I was in a hurry so I did for 5 min. ).
In a greased oven proof tray, arrange the marinated florets in a single layer on the tray.
Bake for 28-30 min and serve it as Salad or Side Dish and enjoy!
Note - This chilli-garlic sauce was very hot for my taste so please take care to test individual heat-tolerance levels and use this.
This sounds too good..my favou veggie..picture is so nice..
Healthy baked broccoli looks fantastic..


text:
Europe Forecast | Topics
Topics - May 04, 2018
India accident storm
Storms batter India
Agra, India, May 3, 2018 (AFP) - A huge dust storm and lightning strikes killed at least 125 people across India which braced Thursday for more wild weather. Dust clouds plunged swathes of north India into darkness as choking winds of more than 130 kilometres (80 miles) per hour swept across the states of Uttar Pradesh, Rajasthan and Punjab, flattening houses, walls, trees and power pylons. At least 111 people were killed, many as they slept when walls and roofs came tumbling down on them. Another 14 people were killed in the southern state of Andhra Pradesh which was hammered by more than 41,000 lightning strikes on Wednesday, disaster officials said. Uttar Pradesh and Rajasthan bore the brunt of the dust storm that was blamed on a collision of two weather fronts with India in the grip of higher temperatures than normal. Some districts reported 45 minutes of destructive winds followed by fierce lightning storms. Similar storms kill many people each year in India but this was one of the most severe in recent decades. Shivam Lohia, who owns a resort hotel in Alwar district of Rajasthan, abandoned his car on the road and ran for his life after it was almost blown away. "I haven't seen such a devastating storm in at least 25 years. Everyone was scared and running for cover as trees and homes were getting blown away. It was a nightmare," Lohia told AFP.
There were 73 confirmed deaths in Uttar Pradesh in the north, 36 in the desert state of Rajasthan to the west, and two in Punjab. Agra district in Uttar Pradesh was one of the worst hit areas, with at least 43 people killed. The Taj Mahal is in Agra city but officials said the monument escaped damage. Last month, a similar storm killed at least 15 people in Uttar Pradesh and destroyed two minarets over an entry house to the Taj Mahal. Rescuers were still going through the rubble of felled homes on Thursday. Media reports said more than 20 people were found dead in the village of Kheragarh southwest of Agra. T.P. Gupta of the Uttar Pradesh relief commissioner's office told AFP the death toll was "unprecedented" from such a storm in the past 20 years. More than 150 cattle and other animals were also killed across the state. "There is a forecast for more storms in the next 48 hours across the state so people should be alert," he added. Hemant Gera, head of Rajasthan's Disaster Management and Relief Department, said emergency services were on alert and that people should not sleep outdoors. In Punjab, Kumar Amit, deputy commissioner of Patiala district, told AFP that a wall collapsed killing two people.
The India Meteorological Department warned there would be more storms over a wider area up to Saturday. Three districts in Rajasthan, a state popular with tourists for its heritage palaces and desert safaris, were hit the hardest on Wednesday. There were 19 deaths in Bharatpur, nine in Alwar and eight in Dholpur. Weather department officials in New Delhi said the storm was caused by a collision of rival eastern and western weather systems over the humid northern plains. Charan Singh, a scientist at India Meteorological department, said winds of 132 kph hit Agra while even in the capital Delhi there were gusts of 59 kph. Power was cut in many parts of Rajasthan as thousands of electricity pylons were destroyed. Officials said it could take more than two days to restore power. The state government quickly released funds to compensate the families of those killed or for damage. About $6,000 would be given to the families of each of the dead. "Saddened by the loss of lives due to dust storms in various parts of India. Condolences to the bereaved families. May the injured recover soon," Prime Minister Narendra Modi said on Twitter. "Have asked officials to coordinate with the respective state governments and work towards assisting those who have been affected," he added.
bb-ja/amu
Weather Report [May 04, 2018]
[May 04 - 16:42]
Thundery Mediterranean-Fine & warm north ...
Topics [May 04, 2018]
Agra, India, May 3, 2018 (AFP) - A huge dust storm and lightning strikes killed at least 125 people ...


How do you rate Stroll?
Lance Stroll is a 20 year old driver from Canada, for 2019 he is competing in Formula One with Racing Point and sits 14th in the standings after 3 races.
With only one top ten finish Stroll will need to pick up the pace for more consistent point scoring finishes. Staying out of trouble in the opening stages and stronger qualifying performances could help Stroll to become a regular top ten driver. Making it to the end of every race this season, Stroll has done a good job of ensuring the team are in the best position to get results.


Miguel is right… Ive seen the comments when immigration is brought up… I thought it was just white people but the black community has been hella insensitive on these issues. It takes a rapper deported to start the conversation? Wish we could come together to solve these problems.
womp womp. Fall the laws and you stay? Unfortunate?? Sir savage was a stick up kid. Prior felony and had a gun……. Sure buddy ill fight for him. Foh.
It all comes down to having the personal responsibility to follow the travel laws. Nothing to do with race or celebrity status.
Thank you for saying ethnic group. Everything isn't a race thing…it's deeper than that!
It shed light on the issue for me also cause I wasn't thinking about this prior. Makes me think maybe it was set up like that. With petty people with their finger on the button, I wouldn't be surprised.
Next : Miguel from Australia.
Who da fu k is Miguel?
If 21 Savage doesn't get deported then you should give street cred to Whoa Vickie.
He's a violent , illegal , felon who doesn't deserve the privilege of a green card.


text:
import React from 'react';

import settings from '@gqlapp/config';

// tslint:disable-next-line
const reactI18next = settings.i18n.enabled ? require('react-i18next') : null;

export const translate = (ns: any) => {
  return (Component: any) => {
    if (settings.i18n.enabled) {
      return reactI18next.withTranslation(ns)(Component);
    } else {
      // eslint-disable-next-line react/display-name
      return (props: any) => React.createElement(Component, { ...props, t: (key: any) => key });
    }
  };
};

export type TranslateFunction = (msg: string, ...params: any[]) => string;


text:
Coronavirus›
The Graphic Truth: What if COVID-19 hits refugee camps?›
The Graphic Truth: What if COVID-19 hits refugee camps?
Ari Winkleman
Gabrielle Debinski
The coronavirus pandemic is already wreaking havoc on developed countries where residents are able to socially distance themselves and self-quarantine. So what would happen if the contagion spread amongst the most vulnerable populations – refugees and asylum seekers in jam-packed camps? Many in refugee camps don't have access to running water or soap, which would make it all but impossible to slow the spread of the disease by washing their hands. Human rights advocates are bracing for a potential deadly outbreak at one these sites, where even ordinary infections spread like wildfire. Here's a look at some of the world's largest refugee camps, where the stakes are highest.


text:
BARTLETT & PRY: What if Iran already has the bomb?
Better to be prepared than surprised
War_Conflict
By Rep. Roscoe G. Bartlett and Peter Vincent Pry - The Washington Times - Monday, August 2, 2010
In June, Defense Secretary Robert M. Gates reassured America that there was still time for sanctions to compel Iran to abandon pursuit of an "Islamic bomb." U.S. policy toward Iran is founded on the assessment, unquestioned by anyone in the press, that Iran does not yet have nuclear weapons.
Yet there are good reasons for questioning this premise, so fundamental to our policy, that Iran is still a nonnuclear-weapons state.
That Iran has not conducted a nuclear test is no guarantee it does not have the bomb. The United States did not test the A-bomb that destroyed Hiroshima. The U.S. Trinity atomic test was of a more complex bomb design, which was used to destroy Nagasaki. The U.S. maintains its sophisticated thermonuclear deterrent without testing. Our own experience proves that Iran need not conduct a nuclear test in order to have nuclear weapons.
Intelligence on Iran's nuclear program is not good. Iran's nuclear program is hidden from scrutiny, in secure underground facilities. Where all of these facilities are located and what they are doing is unknown.
The International Atomic Energy Agency (IAEA), the United Nations' "nuclear watchdog," is dependent for what it knows upon Iran's voluntary cooperation. The last chief of the IAEA, Mohamed ElBaradei, on whose watch most of what we know about Iran's nuclear program was collected, was not a fan of the United States or an enthusiast for aggressive action to stop Iran's march toward the bomb. We now know that Mr. ElBaradei, while IAEA chief, had aspirations to run for president of his native country, Egypt, where the notion of an Islamic bomb is popular on the Arab street and where sanctions or military actions against Muslim countries is anathema.
The IAEA is a notoriously poor watchdog. Before the first Gulf War, according to an unclassified CIA report, Iraqi dictator Saddam Hussein pursued a clandestine nuclear-weapons program right under the noses of the IAEA members. Only Saddam's invasion of Kuwait - and Iraq's crushing defeat in 1991 - resulted in the discovery and dismantlement of Saddam's version of the Manhattan Project.
Nor has the U.S. intelligence community covered itself with glory warning of nuclear threats. Although U.S. intelligence agencies are faulted mostly for overestimating Iraq's weapons of mass destruction (WMD) program before Operation Iraqi Freedom, U.S. intelligence historically tends to underestimate nuclear threats. For example, the United States was surprised by the Soviet A-bomb test in 1949, surprised when the Soviet Union tested the first weaponized H-bomb in 1953, surprised by the discovery of Saddam's near development of the A-bomb in 1991, surprised by Pakistan's and India's nuclear tests in 1999 and wrong that Iran temporarily stopped its nuclear weapons program in 2003. The bias in the U.S. intelligence community is to underestimate threats, not overestimate them, because presidents don't like to hear bad news. Presidents like to think they still have time to negotiate away an existential threat.
History suggests that we may already be too late to stop Iran's Islamic bomb. The U.S. Manhattan Project, when the A-bomb was merely a theoretical possibility, secretly used 1940s-era technology to produce two atomic bombs of radically different designs - in just three years. Moreover, during those three years, the United States secretly developed the vast industrial nuclear-weapons infrastructure that quickly built hundreds of bombs during the early Cold War.
Israel is credited with clandestinely developing a large and highly sophisticated nuclear arsenal, all without nuclear testing. We know from Mordecai Vanunu, who defected from Israel's nuclear-weapons program, and according to the respected Wisconsin Project, that Israel has hundreds of nuclear weapons, including neutron and thermonuclear warheads. Yet Israel has a population only the size of Baltimore and lacks the oil wealth of Iran.
Why do we suppose Iran cannot accomplish in 20 years of trying - with access to vast amounts of unclassified data on nuclear-weapons design and equipped with 21st-century technology - what the U.S. accomplished in three years during the 1940s? Why do we suppose that Iran, with resources vastly superior to Israel's, and helped by Russia, China and North Korea, cannot match or surpass Israel's nuclear-weapons feat?
Why does Iran, with its provocative attitude toward the U.S. and the entire world, act like a nuclear-weapons state?
Iran only needs a single nuclear weapon to destroy the United States. A nuclear EMP (electromagnetic pulse) attack could collapse the national electric grid and other critical infrastructures that sustain the lives of 310 million Americans. Iran writes about EMP attack and appears to practice EMP missile strikes. Last year, Iran orbited a small satellite along a trajectory that could have placed an EMP field over the entire contiguous United States, were the satellite a small nuclear or "super-EMP" weapon.
We had better be right that Iran does not yet have the bomb.
Rep. Roscoe G. Bartlett of Maryland serves as ranking member of the air and land forces subcommittee of the House Armed Services Committee. Peter Vincent Pry is president of EMPact America.