text:
Edith Jessie Thompson (* 25. Dezember 1893 als Edith Jessie Graydon in Dalston, Hackney, County of London; † 9. Januar 1923 im Holloway Prison, Islington, County of London) war eine britische Staatsbürgerin, die in einem umstrittenen Prozess wegen Beihilfe bzw. Anstiftung zum Mord an ihrem Mann Percy verurteilt und im Holloway Prison hingerichtet wurde. Ihr kontroverser Fall wurde von Zeitgenossen heftig diskutiert.

Leben
Edith Thompson wurde im Stadtteil Dalston des Londoner Stadtbezirks Hackney als Edith Graydon geboren. Nach dem Besuch der Schule fand die als "sehr fähig" beschriebene junge Frau 1914 Arbeit als Buchhalterin und leitende Angestellte in einer Hutmacherei. Im Jahr darauf heiratete sie den drei Jahre älteren Expedienten Percy Thompson, mit dem sie seit sechs Jahren bekannt war.

1920 traf das Paar den damals achtzehnjährigen Angehörigen der Handelsmarine Frederick Bywaters, den Edith Thompson schon seit dessen Schulzeit kannte. Auf eine Einladung Percy Thompsons hin begleitete er im Juni 1921 die Thompsons und Ediths jüngere Schwester Avis bei einem Urlaub auf der Isle of Wight. Im Anschluss an den Urlaub zog Bywaters wiederum auf Einladung Percy Thompsons als Untermieter der Thompsons in deren Haus in Ilford ein. Zu dieser Zeit begannen Edith Thompson und Frederick Bywaters eine Affäre. Percy Thompson, der dies bemerkte, warf daraufhin Bywaters im August nach einem heftigen Streit, bei dem er auch gewalttätig gegenüber Edith geworden sein soll, aus dem Haus.

Bywaters und Edith Thompson setzten daraufhin ihre Beziehung fort, indem sie sich heimlich trafen, wenn Bywaters nicht auf See war. Während seiner Seefahrten schrieben sie sich Briefe, die während des Prozesses eine wichtige Rolle für die Beweisführung der Anklage spielen sollten.

Der Mord an Percy Thompson
Am Abend des 3. Oktober 1922 kehrte das Ehepaar Thompson von einem Theaterbesuch in London nach Ilford zurück. Gegen Mitternacht näherte sich ihnen Bywaters, stieß Edith Thompson zur Seite und griff Percy Thompson mit einem Messer an. In dem Kampf fügte er Percy Thompson mehrere tiefe Schnittwunden zu, ehe er floh. Edith Thompson schrie um Hilfe, ein herbeigeeilter Arzt konnte aber dem schwer verletzten Percy Thompson nicht mehr helfen, er verstarb noch am Schauplatz des Überfalls.

Die herbeigerufene Polizei wurde angesichts der Tatsache, dass Edith Thompson keinen Angriff erwähnte, sondern davon sprach, ihr Mann habe "eine Art Anfall" gehabt, misstrauisch, und begann mit Ermittlungen. Sehr schnell wurde sie auf Frederick Bywaters, dessen enge Beziehung zu den Thompsons und besonders zu Edith aufmerksam. Am Abend des 4. Oktober wurde er verhaftet Edith Thompson, die bis dahin einen Angriff auf Percy Thompson verneint hatte, sah Bywaters auf der Polizeistation, woraufhin sie zusammenbrach und Bywaters als den Mörder ihres Mannes identifizierte. Obwohl Frederick Bywaters nach anfänglichem Leugnen angab, dass er den Angriff allein geplant und ausgeführt hatte, und Edith Thompson aussagte, dass sie nicht gewollt habe, dass Bywaters Percy Thompson töte, wurden beide des Mordes an Percy Thompson angeklagt.

Prozess und Verurteilung
Der Prozess gegen Edith Thompson und Frederick Bywaters fand vom 6. bis zum 11. Dezember 1922 in Old Bailey unter großem öffentlichen Interesse statt. Edith Thompson drohte als erster Frau seit 16 Jahren die Hinrichtung. Zudem erzeugte die Konstellation, dass eine verheiratete Frau und ihr acht Jahre jüngerer Liebhaber des Mordes angeklagt waren, große Aufmerksamkeit.

Wie schon während der polizeilichen Untersuchungen gab Bywaters während des gesamten Prozesses an, den Angriff allein geplant und ausgeführt zu haben, eine Anstiftung durch Edith Thompson oder ihre Mitwisserschaft bestritt er ebenso wie eine Tötungsabsicht. Für die Presse wurde Edith Thompson schnell zur "Messalina von Ilford", einer berechnenden Frau, die ihren unerfahrenen jungen Liebhaber zum Mord an ihrem Ehemann gedrängt haben musste.

Eine wichtige Rolle in dieser Einschätzung und der Beweisführung der Anklage spielten dabei die über 60 Liebesbriefe, die Thompson an Bywaters geschrieben hatte. In ihnen beschrieb die Frau leidenschaftlich ihre Liebe zu Bywaters und gab sich Fantasien hin, wie viel besser das Leben ohne ihren Mann Percy sein würde. Daneben schickte sie ihm Zeitungsausschnitte über Vergiftungen. Wegen ihrer für die damalige Zeit unerhörten Freizügigkeit (Edith Thompson beschrieb unter anderem einen Orgasmus, den sie in den Armen Bywaters erlebt hatte, und das Ausbleiben ihrer Menstruation) wurden den Geschworenen nur Teile der Briefe vorgelegt. In einem der Briefe beschrieb Edith Thompson, dass sie ihrem Mann Gift und gemahlenes Glas ins Essen gemischt habe. Weder die erste gerichtsmedizinische Untersuchung des Mordopfers vom 5. Oktober noch eine zweite vom 3. November (nachdem die belastenden Passagen entdeckt worden waren) konnten jedoch Hinweise auf eine solche Tat finden.

Obwohl ihr weder eine Beteiligung noch eine Mitwisserschaft an der Tat nachgewiesen werden konnte, und trotz ihrer Unschuldsbeteuerungen und Bywaters Erklärungen, allein für die Tat verantwortlich zu sein, wurde Edith Thompson wie auch Frederick Bywaters am 11. Dezember 1922 zum Tode verurteilt.

Hinrichtung und Folgen
Etwa eine Million Menschen unterzeichneten eine Petition für die Begnadigung von Edith Thompson und vor allem von Frederick Bywaters, dessen Versuch, die Schuld allein auf sich zu nehmen, als besonders ritterlich empfunden wurde. Thompson wurde nun auch in der Presse nicht mehr als die berechnende Verführerin des jugendlichen Bywaters dargestellt, sondern als einfältige Frau. Kontrovers wurde darüber diskutiert, ob es moralisch zu rechtfertigen sei, eine Frau zu hängen. Bywaters und Thompson legten Berufung ein, die jedoch am 21. Dezember von Innenminister William Bridgeman abgewiesen wurde. Trotz aller Bemühungen und der wiederholten Aussage Bywaters, allein für die Tat verantwortlich zu sein, wurden beide gleichzeitig am 9. Januar 1923 um 9 Uhr morgens am Galgen hingerichtet, er in Pentonville, sie im Holloway Prison.

Schon kurze Zeit nach der Vollstreckung kamen Gerüchte über Details der Exekution Edith Thompsons auf.
Trotz offizieller Erklärungen, die Hinrichtung sei ruhig verlaufen, zirkulierten Berichte, dass Edith Thompson hysterisch war, mit Beruhigungsmitteln sediert und halb ohnmächtig zum Galgen getragen, und zum Umlegen der Schlinge aufrecht gehalten werden musste. In einigen Zeitungsberichten war auch die Rede davon, dass Edith Thompson nach der Vollstreckung des Urteils stark geblutet habe, Teile ihres Uterus seien ihr durch die Hinrichtung aus dem Körper gefallen. Die Möglichkeit einer Schwangerschaft und durch die Hinrichtung ausgelösten Fehlgeburt wurden diskutiert.

Die verheerenden Auswirkungen auf die Zeugen und Ausführenden der Exekution zeigten sich darin, dass mehrere von ihnen frühzeitig aus ihrem Beruf ausschieden. John Ellis, ihr Henker, war von der Hinrichtung so traumatisiert, dass er zwei Wochen später einen Suizidversuch unternahm. 1923 quittierte er den Dienst, 1932 war ein weiterer Selbsttötungsversuch erfolgreich. Laut Aussagen seines Sohnes hatte er die Hinrichtung Thompsons nie verkraftet.

Edith Thompson wurde im Hof von Holloway Prison beerdigt. Anfang der siebziger Jahre, im Zuge des Umbaus des Gefängnisses, wurden ihre sterblichen Überreste zusammen mit denen dreier anderer in Holloway hingerichteten Frauen auf den Brookwood Cemetery überführt und in einem namenlosen Grab bestattet. Im November 1993 wurde mit einem Gottesdienst eine neue Grabstelle zur Erinnerung an Edith Thompson feierlich eingeweiht.

Nachwirkungen
Der Fall Edith Thompson, ihre Verurteilung zum Tode ohne nachgewiesene Tatbeteiligung sowie die Umstände ihrer Hinrichtung waren auch noch Jahre später Anlass heftiger Diskussionen. So sah sich das Home Office noch 1956 zu einer Erklärung gezwungen, in der es abstritt, bei der Exekution Edith Thompsons sei es zu besonders gräulichen oder abstoßenden Ereignissen gekommen. Der Fall wurde von Gegnern der Todesstrafe in Großbritannien während der Diskussion über die Abschaffung häufig als Beispiel für die Grausamkeit von Hinrichtungen angeführt.

Edith Thompsons Leben, der Mordfall und der Prozess gegen sie und Frederick Bywaters inspirierten auch Literatur und Film. Alfred Hitchcock wollte über den Fall einen Dokumentarfilm drehen.

Romane und Theaterstücke, die auf dem Fall basieren oder in denen er verarbeitet wird, existieren von F. Tennyson Jesse (A Pin To See the Peepshow – 1973 mit Francesca Annis fürs Fernsehen verfilmt), Frank Vosper (People Like Us – ursprünglich vom Lord Chamberlain of the Household verboten und erst 1948 aufgeführt), P. D. James, Dorothy L. Sayers und Anthony Berkeley.

Gayle Hunnicutt spielte Edith Thompson 1981 in einer Folge der britischen Serie The Lady Killers, in der der Fall Bywaters/Thompson thematisiert wird. 2001 wurde der Fall mit Another Life erneut verfilmt, diesmal mit Natasha Little in der Rolle Edith Thompsons.

2006 veröffentlichte Molly Cutpurse A Life Lived, einen Roman, in dem das fiktive Leben einer begnadigten Edith Thompson beschrieben wird.

Des Weiteren existieren zahlreiche Biographien über Thompson und Studien des Falles, unter anderem The Innocence of Edith Thompson: A Study in Old Bailey Justice von Lewis Broad (1952), Fred and Edie von Jill Dawson (2000), sowie Criminal Justice: The True Story of Edith Thompson von Rene Weis aus dem Jahr 1988.

Frederick Bywaters und Edith Thompson waren einige Jahre als Wachsfiguren bei Madame Tussauds ausgestellt.

Weblinks

Einzelnachweise

Tötungsdelikt
Kriminalfall 1922
Kriminalfall im Vereinigten Königreich
Hingerichtete Person (Vereinigtes Königreich)
Hingerichtete Person (20. Jahrhundert)
Brite
Geboren 1893
Gestorben 1923
Frau


Good news for Entrecard Users. For a limited time, Entrecard has lifted transfer limits to 25,000 credits per week that you may transfer.
Hopefully, this will encourage members to hold bigger contests more frequently, without the need for coordination from Entrecard.


text:
2013 SEMA Award to Showcase Hottest Vehicle Platforms
SEMA News—October 2013
The SEMA Award will be announced and presented to the winning automakers during the 2013 SEMA Show.
To showcase the industry's top trendsetting vehicle models, the SEMA Award will be announced and presented to winning automakers during the 2013 SEMA Show in Las Vegas, November 5–8, 2013.
Through the program, SEMA exhibitors will identify the vehicle platforms they believe are best for accessorizing and ideal for showcasing their new products.
Show organizers will take a tally of every booth vehicle at the Show to identify the most popular vehicle models in four categories: Hottest Car, Hottest Truck, Hottest 4x4-SUV and Hottest Sport Compact. With each booth vehicle representing one vote, the most prominent models will be named the SEMA Award winners for the year.
The SEMA Show typically includes more than 700 qualified booth vehicles. Last year's SEMA Award winners were the Ford Mustang as the Hottest Car, the Ford F-Series as the Hottest Truck, the Jeep Wrangler as the Hottest 4x4-SUV and the Scion FR-S as the Hottest Sport Compact.
The 2013 winners will be announced and presented during a press conference at the SEMA Show.
Steve Matusek Appointed SEMA Board of Directors Treasurer

redpajama_set_name: RedPajamaCommonCrawl


Big Boy was rescued twice over, but we promised him this would be his last! Big Boy was tethered outside and not taken care of by his original owners and was soon taken into safety by his second owner. But this person eventually abandoned him, too. When neighbors found out that Big Boy was left to fend for himself, they quickly stepped in and gave Big Boy a wonderful home. As heart breaking as it was for this couple, they knew they couldn't keep Big Boy as they were already in the process of moving into a home that would not allow this gentle pup to live with them. Having just hours to spare before making the devastating decision to relinquish Big Boy to a local shelter, a temporary foster offered to take him for the night so other arrangements could be made.
Needless to say, just minutes later, Big Boy was on his way from Springfield to Chicago. He is currently residing in a local boarding facility and getting some much needed rest. We are excited to have the newest member of our rescue family with us, but know that because he is such a dream boat, he will soon find his forever home. Big Boy is a one in a million pup who will make a fantastic addition to any family. He is a gentle, kind hearted soul who just wants to be close to a new best friend. Take a look into Big Boy's beautiful brown eyes… …it's like coming home!


Togo, Lome: The Sokode electrical transformer station, situated about 350 km north of the Togo capital Lome, has been inaugurated by presidents of the West African countries Togo and Benin.
The transformer station was constructed by TBEA, a Chinese manufacturer of electrical equipment, at the cost of $19 million, and financed by China Eximbank, reports Spy Ghana.
The project was launched as part of 2011-2020 strategic plan of the Benin Electricity Community (CEB), a company jointly owned by Togo and Benin.


text:
En boxe, le semi-crochet (en Anglais, Half-hook) est coup dit « mixte » (hybride) à mi-chemin entre un coup de poing direct et un coup de poing crocheté (crochet en boxe) utilisé en boxe anglaise. En réalité le coup démarre comme un direct et poursuit sa trajectoire comme un crochet long. Il atteint une cible placée légèrement sur le côté, ce qui occasionne chez l'opposant un problème de lecture pour défendre. À ne par confondre avec un autre coup mixte, le bolo-punch, qui tient du crochet et de l'uppercut à la fois.

On constate dans la pratique de la boxe, que le semi-crochet est réalisé naturellement, c'est-à-dire sans passer par un apprentissage quelconque. Le pratiquant en guise de coup de poing à trajectoire directe délivre une forme légèrement curviligne. Pour les puristes, il s'agit d'un défaut de réalisation qui s'éloigne des techniques enseignées dans les écoles de boxe.

Au niveau défensif, le semi-crochet au même titre que de nombreux coups « hybrides » (bolo-punch, semi-uppercut, half-swing) ainsi que les coups moins usuels (coup de Bob Fitzsimmons, overhand, swing) vont poser des difficultés de lecture de jeu à l'adversaire et ainsi répondent à un des principes tactiques majeurs de l'attaque : « chercher à surprendre l'adversaire ».

Lien interne
 Glossaire de la boxe

Coup de poing
Lexique de la boxe et des boxes pieds-poings

redpajama_set_name: RedPajamaWikipedia


In my spair time between my Product Design studies and my coffee addiction, I enjoy capturing my perspective of the surrounding enviroment. I do this this photography and film.
My most recent shoot I had been using my old Cannon DSLR 1200d to do a night time shoot, this was completly new to me as I'd never done urban photography late at night. This produced some interesting results.


text:
Shakespeare Quarterly
The Merchant of Venice: Texts and Contexts (review)
Bruce Thomas Boehrer
10.1353/shq.2004.0027
Shakespeare Quarterly 54.4 (2004) 451-453
[Access article in PDF]
The Merchant of Venice: Texts and Contexts. Edited by M. Lindsay Kaplan. Boston: Bedford/St. Martin's, 2002. Illus. Pp. xvi + 379. $55.00 cloth.
The Bedford Texts and Contexts Shakespeare series reflects the current prevalence of historicist methodologies in Renaissance studies, and M. Lindsay Kaplan's Bedford Merchant of Venice remains true to this orientation. Kaplan seeks to recover the intellectual contexts within which Shakespeare's work would have been generated and received by its earliest audiences, and she pursues this end primarily by offering students a judicious selection of contemporary texts on themes relevant to the play. Kaplan's introduction and the text of Shakespeare's play together occupy 120 pages of the volume, leaving well over 200 pages more for a spread of readings grouped under four general headings: "Venice," "Finance," "Religion," and "Love and Gender." These readings comprise the meat of the work; Kaplan argues that they provide a means of "imagining what kind of assumptions and opinions an early modern audience might [End Page 451] bring to a performance of the play as well as what kind of views might encourage a modern audience to reexamine its initial response to the play" (1).
The attitudes that emerge from these readings vary widely, yet they also sound common themes and voice recurring concerns. Thomas Coryate admires the cosmopolitanism of Venice's merchant community; William Thomas inveighs against the Venetians' greed; Dudley Carleton analyzes the apparent decline of their mercantile empire in the early-seventeenth century. Central to each of these texts, as Kaplan observes, is a conflicted awareness of Venice's reputation as the kind of trading center that London could, in the 1590s, only hope to become. Nor was this reputation confined to matters of overseas commerce. From Coryate and Fynes Moryson, Kaplan chooses accounts of the courtesans for which Venice was notorious in Shakespeare's day, and whose own business dealings paralleled the economic troping of Bassanio's relations with Portia and Lorenzo's relations with Jessica. As for Shakespeare's much-vexed representation of Judaism, Kaplan explores it in readings that document the vibrancy of the Jewish community in early-seventeenth-century Venice; the expulsion of the Jews from England; English associations of Judaism with usury; and the opinions of contemporary Jewish authors on the practice of lending money at interest. These last passages represent a particular strength of Kaplan's volume, and they demonstrate the extraordinary complexity of Portia's seemingly simple question to the Venetian court: "Which is the merchant here, and which the Jew?" (4.1.169).
The categories into which Kaplan has organized her readings prove to be less definitive than suggestive. The travelers' accounts of Venice, for instance, record a cultural diversity that transcends both race and nationality while also telling readers at least as much about England as they do about the Mediterranean. Likewise, they segue more than once into a discussion of the relative merits of Judaism and Protestantism—a topic obviously appropriate for inclusion in the "Religion" section. Again, the readings in the section titled "Finance," focusing as they do on the morality of usury under varying spiritual dispensations, repeatedly infringe on aspects of religious doctrine. As for "Love and Gender," the passages grouped under this heading speak directly to the prominence of wives and courtesans discussed in the section on Venice, which gestures in turn toward the section on finance. Coryate's description of the beautiful Jewish women he saw in Venice—"'so gorgeous in their apparel, jewels, chains of gold, and rings adorned with precious stones, that some of our English Countesses do scarce exceed them'" (141)—appears among other discussions of the Venetian state, but it suggests just how deeply interrelated the topics of geography, finance, and religion tend to be.
Given the overall focus of the Texts and Contexts series, Kaplan rightly makes no effort to situate The Merchant of Venice in an author-centered narrative of Shakespeare's work and career. On the other hand, it may be more of a fault that her...


text:
Privacy Book Club with Simon Chesterman
FREE January 18, 2022 @ 8 – 9 PM (ET) / January 19, 2022 @ 9 – 10 AM (SGT)
The FPF Privacy Book Club provides members with the opportunity to read a wide range of books — privacy, data, ethics, academic works, and other important data relevant issues — and have an open discussion of the selected literature. For January, we will discuss We, the Robots? Regulating Artificial Intelligence and the Limits of the Law by Simon Chesterman.
*Note: No registration is required. Visit LinkedIn and click "Attend" to be notified on LinkedIn when the LinkedIn Live discussion begins. Be sure to log on to LinkedIn on January 18 (8-9pm EST) / January 19 (9-10am SGT).
Jules Polonetsky
CEO, Future of Privacy Forum
Jules serves as CEO of the Future of Privacy Forum, a Washington, D.C.-based non-profit organization that serves as a catalyst for privacy leadership and scholarship, advancing principled data practices in support of emerging technologies. FPF is supported by the chief privacy officers of more than 185 leading companies, several foundations, as well as by an advisory board composed of the country's leading academics and advocates. FPF's current projects focus on AI and Ethics, Connected Cars, Health, Research Data, Smart Communities, Ad Tech, Youth, Ed Tech, Privacy Legislation and Enforcement, and Global Data Flows.
Jules also serves as Chairman of the International Digital Accountability Council and as Co-Chairman of the Israel Tech Policy Institute. Jules is co-editor of The Cambridge Handbook of Consumer Privacy, published by Cambridge University Press (2018). More of his writing and research can be found at the www.fpf.org and on Google Scholar and SSRN.
Jules's previous roles have included serving as Chief Privacy Officer at AOL and before that at DoubleClick, as Consumer Affairs Commissioner for New York City, as an elected New York State Legislator and as a congressional staffer, and as an attorney.
Jules has served on the boards of a number of privacy and consumer protection organizations including TRUSTe, the International Association of Privacy Professionals, and the Network Advertising Initiative. From 2011-2012, Jules served on the Department of Homeland Security Data Privacy and Integrity Advisory Committee. Jules is a member of The George Washington University Law School Privacy and Security Advisory Council. He also currently sits on the Advisory Boards of Open DP | Harvard University Privacy Tools Project and the California Privacy Lab (University of California).
Jules is a regular speaker at privacy and technology events and has testified or presented before Congressional committees and the Federal Trade Commission.
As AOL's former Chief Privacy Officer and SVP for Consumer Advocacy, Jules was responsible for ensuring that AOL's users could trust the company with their information and for educating employees about best practices for advertising, content, and product development.
Simon Chesterman
Vice Provost and Dean, National University of Singapore College
Simon Chesterman is Vice Provost and Dean of the National University of Singapore College and Senior Director of AI Governance at AI Singapore. He is also Editor of the Asian Journal of International Law and Co-President of the Law Schools Global League.
Educated in Melbourne, Beijing, Amsterdam, and Oxford, Professor Chesterman's teaching experience includes periods at the Universities of Melbourne, Oxford, Southampton, Columbia, and Sciences Po. From 2006-2011, he was Global Professor and Director of the New York University School of Law Singapore Programme. Prior to joining NYU, he was a Senior Associate at the International Peace Academy and Director of UN Relations at the International Crisis Group in New York. He has previously worked for the UN Office for the Coordination of Humanitarian Affairs in Yugoslavia and interned at the International Criminal Tribunal for Rwanda.
Professor Chesterman is the author or editor of twenty-one books, including We, the Robots? Regulating Artificial Intelligence and the Limits of the Law (CUP, 2021); Law and Practice of the United Nations (with Ian Johnstone and David M. Malone, OUP, 2016); One Nation Under Surveillance (OUP, 2011); You, the People (OUP, 2004); and Just War or Just Peace? (OUP, 2001). He is a recognized authority on international law, whose work has opened up new areas of research on conceptions of public authority – including the rules and institutions of global governance, state-building and post-conflict reconstruction, the changing role of intelligence agencies, and the emerging role of artificial intelligence and big data. He also writes on legal education and higher education more generally, and is the author of four young adult fiction novels including the Raising Arcadia trilogy.
Dr. Sara Jordan
Senior Researcher, AI & Ethics, Future of Privacy Forum
Dr. Sara R. Jordan is Senior Researcher, Artificial Intelligence and Ethics at the Future of Privacy Forum. Her profile includes privacy implications of data sharing, data and AI review boards, privacy analysis of AI and Machine Learning (AI/ML) technologies, and analysis of the ethics challenges of AI/ ML. Sara is an active member of the IEEE Global Initiative on Ethics for Autonomous and Intelligent Systems. Prior to working at FPF, Sara was faculty in the Center for Public Administration and Policy at Virginia Tech (2014-2020) and in the Department of Politics and Public Administration at the University of Hong Kong (2007- 2013). She is a graduate of Texas A&M University and University of South Florida.
Dr. Clarisse Girot
Managing Director for Asia Pacific, Future of Privacy Forum
Dr Clarisse Girot serves as the Future of Privacy Forum's Managing Director for Asia Pacific. Based in Singapore, Clarisse is responsible for developing and implementing FPF's strategy in the world's biggest and most populated region. FPF Asia works with stakeholders in industry, government, academia, and civil society, to advance principled data practices in support of emerging technologies, with the shared concern to be responsive to local needs and interests and to maintain FPF's neutrality in any discourse.
Prior to joining FPF, Clarisse was Senior Fellow (since January 2017) at the Asian Business Law Institute (ABLI), a neutral legal think tank chaired by Chief Justice Menon of the Supreme Court of Singapore. At ABLI, she was the leader of a project to promote the convergence of data protection laws and regulations and cross-border data flows in Asia, working with a unique network of stakeholders from industry, legal practice, think tanks, regulators, governments, spanning over 15 APAC jurisdictions. Clarisse is an independent expert, often consulted by supranational organizations and bodies such as the Forum of Asia-Pacific Privacy Authorities (APPA), ASEAN, OECD, WEF, World Bank, UNCTAD, UNDP, or the European Commission. In July 2021, ABLI and FPF signed a collaboration agreement to perpetuate this work of regional convergence, for which Clarisse is specifically responsible.
Prior to relocating to Singapore in 2016, Clarisse was based in Paris where she acted as Counsellor to Isabelle Falque-Pierrotin, President of the French Data Protection Authority (CNIL) and Chair of the Article 29 Working Party of European Data Protection Authorities (now EDPB). From 2004 to 2008, she was head of CNIL's Department of International Affairs and represented CNIL at the Article 29 WP.
Among other roles, she is a non-executive Board Member of the Data Protection Authority of Jersey (JDPA), a member of the Asia Privacy Scholars Network (APSN) and of the Global Reference Panel (GRP) of the Global Privacy Assembly (GPA), and an advisor to the Future Society think tank.
Clarisse graduated from the Law Faculty of the University of Paris II Panthéon-Assas, with a specialisation in private law and intellectual property. She holds a Magister Juris (M.Jur) of the University of Oxford (University College) and a Ph.D. in comparative law from the Tilburg Institute for Law and Technology (TILT) of the University of Tilburg in the Netherlands (cum laude).
Dr. Fumio Shimpo
Professor of Faculty of Policy Management, Keio University
Dr. Fumio Shimpo is Professor of Faculty of Policy Management at Keio University. Ph.D in Law. The area of academic expertise is Constitutional Law, Cyber-Law and Robot Law. Dr. Shimpo is responsible for a Commissioner for International Academic Exchange at the Personal Information Protection Commission of Japan and the former vice-chair of the OECD Working Party on Security and Privacy in the Digital Economy (SPDE). Dr. Shimpo is also responsible for the Chairman of the Board of Directors of the Association of Law and Information Systems, the Executive Director of the Japanese Constitutional Law Society, the Vice-Chair of the Board of Directors of the Japan Society of Information and Communication Research, the Director of the Law and Computer Society, Senior Research Fellow at the Institute for Information and Communications Policy of the Ministry of Internal Affairs and Communications. Dr. Shimpo has widely published in the field of privacy, data protection, information law and AI & Robot Law. Dr. Shimpo has won several awards such as the 18th Telecom Social Science Incentive Award of the Telecommunications Dissemination Foundation's. Currently Dr. Shimpo researches focus on Data Protection and Privacy, Cyber-Crime and Information Security and Legal issues regarding AI, IoT and Robot.
Dr. David R. Hardoon
Chief Data & AI Officer, UnionBank of the Philippines, Managing Director, Aboitiz Data Innovation
Concurrently David is an external advisor to Singapore's Corrupt Investigation Practices Bureau (CPIB) in the capacity of Senior Advisor (Artificial Intelligence) and to Singapore's Central Provident Fund Board (CPF) in the capacity of Senior Advisor (Data Science).
Prior to his current roles, David was Monetary Authority of Singapore (MAS) first appointed Chief Data Officer and Head of Data Analytics Group reporting to the agency Deputy Managing Director for Financial Supervision and subsequently Special Advisor (Artificial Intelligence) reporting to Deputy Managing Director for Markets and Development. In these roles he led the development of the AI strategy both for MAS and Singapore's financial sector as well as driving efforts in promoting open cross-border data flows.
David holds a PhD in Computer Science in the field of Machine Learning from the University of Southampton and graduated from Royal Holloway, University of London with First Class Honors B.Sc. in Computer Science and Artificial Intelligence.


text:
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_CXX11_TENSOR_TENSOR_CONTRACTION_H
#define EIGEN_CXX11_TENSOR_TENSOR_CONTRACTION_H

namespace Eigen {

/** \class TensorContraction
  * \ingroup CXX11_Tensor_Module
  *
  * \brief Tensor contraction class.
  *
  *
  */
namespace internal {

template<typename Dimensions, typename LhsXprType, typename RhsXprType>
struct traits<TensorContractionOp<Dimensions, LhsXprType, RhsXprType> >
{
  // Type promotion to handle the case where the types of the lhs and the rhs are different.
  typedef typename internal::promote_storage_type<typename LhsXprType::Scalar,
                                                  typename RhsXprType::Scalar>::ret Scalar;
  typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
                                        typename traits<RhsXprType>::StorageKind>::ret StorageKind;
  typedef typename promote_index_type<typename traits<LhsXprType>::Index,
                                      typename traits<RhsXprType>::Index>::type Index;
  typedef typename LhsXprType::Nested LhsNested;
  typedef typename RhsXprType::Nested RhsNested;
  typedef typename remove_reference<LhsNested>::type _LhsNested;
  typedef typename remove_reference<RhsNested>::type _RhsNested;

  // From NumDims below.
  static const int NumDimensions = max_n_1<traits<RhsXprType>::NumDimensions + traits<RhsXprType>::NumDimensions - 2 * array_size<Dimensions>::value>::size;
  static const int Layout = traits<LhsXprType>::Layout;

  enum {
    Flags = 0,
  };
};

template<typename Dimensions, typename LhsXprType, typename RhsXprType>
struct eval<TensorContractionOp<Dimensions, LhsXprType, RhsXprType>, Eigen::Dense>
{
  typedef const TensorContractionOp<Dimensions, LhsXprType, RhsXprType>& type;
};

template<typename Dimensions, typename LhsXprType, typename RhsXprType>
struct nested<TensorContractionOp<Dimensions, LhsXprType, RhsXprType>, 1, typename eval<TensorContractionOp<Dimensions, LhsXprType, RhsXprType> >::type>
{
  typedef TensorContractionOp<Dimensions, LhsXprType, RhsXprType> type;
};

template<typename Indices_, typename LeftArgType_, typename RightArgType_, typename Device_>
struct traits<TensorEvaluator<const TensorContractionOp<Indices_, LeftArgType_, RightArgType_>, Device_> > {
  typedef Indices_ Indices;
  typedef LeftArgType_ LeftArgType;
  typedef RightArgType_ RightArgType;
  typedef Device_ Device;

  // From NumDims below.
  static const int NumDimensions = max_n_1<traits<LeftArgType_>::NumDimensions + traits<RightArgType_>::NumDimensions - 2 * array_size<Indices_>::value>::size;
};

}  // end namespace internal

template<typename Indices, typename LhsXprType, typename RhsXprType>
class TensorContractionOp : public TensorBase<TensorContractionOp<Indices, LhsXprType, RhsXprType>, ReadOnlyAccessors>
{
  public:
  typedef typename Eigen::internal::traits<TensorContractionOp>::Scalar Scalar;
  typedef typename internal::promote_storage_type<typename LhsXprType::CoeffReturnType,
                                                  typename RhsXprType::CoeffReturnType>::ret CoeffReturnType;
  typedef typename Eigen::internal::nested<TensorContractionOp>::type Nested;
  typedef typename Eigen::internal::traits<TensorContractionOp>::StorageKind StorageKind;
  typedef typename Eigen::internal::traits<TensorContractionOp>::Index Index;

  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorContractionOp(
      const LhsXprType& lhs, const RhsXprType& rhs, const Indices& dims)
      : m_lhs_xpr(lhs), m_rhs_xpr(rhs), m_indices(dims) {}

  EIGEN_DEVICE_FUNC
  const Indices& indices() const { return m_indices; }

  /** \returns the nested expressions */
  EIGEN_DEVICE_FUNC
  const typename internal::remove_all<typename LhsXprType::Nested>::type&
  lhsExpression() const { return m_lhs_xpr; }

  EIGEN_DEVICE_FUNC
  const typename internal::remove_all<typename RhsXprType::Nested>::type&
  rhsExpression() const { return m_rhs_xpr; }

  protected:
    typename LhsXprType::Nested m_lhs_xpr;
    typename RhsXprType::Nested m_rhs_xpr;
    const Indices m_indices;
};

template<typename Derived>
struct TensorContractionEvaluatorBase
{
  typedef typename internal::traits<Derived>::Indices Indices;
  typedef typename internal::traits<Derived>::LeftArgType LeftArgType;
  typedef typename internal::traits<Derived>::RightArgType RightArgType;
  typedef typename internal::traits<Derived>::Device Device;

  typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
  typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
  typedef typename XprType::Index Index;
  typedef typename XprType::CoeffReturnType CoeffReturnType;
  typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;

  enum {
    IsAligned = true,
    PacketAccess = (internal::unpacket_traits<PacketReturnType>::size > 1),
    Layout = TensorEvaluator<LeftArgType, Device>::Layout,
    CoordAccess = false,  // to be implemented
    RawAccess = true
  };

  // Most of the code is assuming that both input tensors are ColMajor. If the
  // inputs are RowMajor, we will "cheat" by swapping the LHS and RHS:
  // If we want to compute A * B = C, where A is LHS and B is RHS, the code
  // will pretend B is LHS and A is RHS.
  typedef typename internal::conditional<
    static_cast<int>(Layout) == static_cast<int>(ColMajor), LeftArgType, RightArgType>::type EvalLeftArgType;
  typedef typename internal::conditional<
    static_cast<int>(Layout) == static_cast<int>(ColMajor), RightArgType, LeftArgType>::type EvalRightArgType;

  static const int LDims =
      internal::array_size<typename TensorEvaluator<EvalLeftArgType, Device>::Dimensions>::value;
  static const int RDims =
      internal::array_size<typename TensorEvaluator<EvalRightArgType, Device>::Dimensions>::value;
  static const int ContractDims = internal::array_size<Indices>::value;
  static const int NumDims = max_n_1<LDims + RDims - 2 * ContractDims>::size;

  typedef array<Index, ContractDims> contract_t;
  typedef array<Index, max_n_1<LDims - ContractDims>::size> left_nocontract_t;
  typedef array<Index, max_n_1<RDims - ContractDims>::size> right_nocontract_t;

  typedef DSizes<Index, NumDims> Dimensions;

  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
  TensorContractionEvaluatorBase(const XprType& op, const Device& device)
    : m_leftImpl(choose(Cond<static_cast<int>(Layout) == static_cast<int>(ColMajor)>(),
                          op.lhsExpression(), op.rhsExpression()), device),
    m_rightImpl(choose(Cond<static_cast<int>(Layout) == static_cast<int>(ColMajor)>(),
                          op.rhsExpression(), op.lhsExpression()), device),
        m_device(device),
        m_result(NULL) {
    EIGEN_STATIC_ASSERT((static_cast<int>(TensorEvaluator<LeftArgType, Device>::Layout) ==
			   static_cast<int>(TensorEvaluator<RightArgType, Device>::Layout)),
                        YOU_MADE_A_PROGRAMMING_MISTAKE);

    DSizes<Index, LDims> eval_left_dims;
    DSizes<Index, RDims> eval_right_dims;
    array<IndexPair<Index>, ContractDims> eval_op_indices;
    if (static_cast<int>(Layout) == static_cast<int>(ColMajor)) {
      // For ColMajor, we keep using the existing dimensions
      for (int i = 0; i < LDims; i++) {
        eval_left_dims[i] = m_leftImpl.dimensions()[i];
      }
      for (int i = 0; i < RDims; i++) {
        eval_right_dims[i] = m_rightImpl.dimensions()[i];
      }
      // We keep the pairs of contracting indices.
      for (int i = 0; i < ContractDims; i++) {
        eval_op_indices[i].first = op.indices()[i].first;
        eval_op_indices[i].second = op.indices()[i].second;
      }
    } else {
      // For RowMajor, we need to reverse the existing dimensions
      for (int i = 0; i < LDims; i++) {
        eval_left_dims[i] = m_leftImpl.dimensions()[LDims - i - 1];
      }
      for (int i = 0; i < RDims; i++) {
        eval_right_dims[i] = m_rightImpl.dimensions()[RDims - i - 1];
      }
      // We need to flip all the pairs of contracting indices as well as
      // reversing the dimensions.
      for (int i = 0; i < ContractDims; i++) {
        eval_op_indices[i].first = LDims - 1 - op.indices()[ContractDims - 1 - i].second;
        eval_op_indices[i].second = RDims - 1 - op.indices()[ContractDims - 1 - i].first;
      }
    }

    // Check for duplicate axes and make sure the first index in eval_op_indices
    // is increasing. Using O(n^2) sorting is OK since ContractDims is small
    for (int i = 0; i < ContractDims; i++) {
      for (int j = i + 1; j < ContractDims; j++) {
        eigen_assert(eval_op_indices[j].first != eval_op_indices[i].first &&
                     eval_op_indices[j].second != eval_op_indices[i].second &&
                     "contraction axes should be unique");
        if (eval_op_indices[j].first < eval_op_indices[i].first) {
          numext::swap(eval_op_indices[j], eval_op_indices[i]);
        }
      }
    }

    array<Index, LDims> lhs_strides;
    lhs_strides[0] = 1;
    for (int i = 0; i < LDims-1; ++i) {
      lhs_strides[i+1] = lhs_strides[i] * eval_left_dims[i];
    }

    array<Index, RDims> rhs_strides;
    rhs_strides[0] = 1;
    for (int i = 0; i < RDims-1; ++i) {
      rhs_strides[i+1] = rhs_strides[i] * eval_right_dims[i];
    }

    m_i_strides[0] = 1;
    m_j_strides[0] = 1;
    if(ContractDims) {
        m_k_strides[0] = 1;
    }

    m_i_size = 1;
    m_j_size = 1;
    m_k_size = 1;

    // To compute the dimension, we simply concatenate the non-contracting
    // dimensions of the left and then the right tensor. Additionally, we also
    // compute the strides corresponding to the left non-contracting
    // dimensions and right non-contracting dimensions.
    m_lhs_inner_dim_contiguous = true;
    int dim_idx = 0;
    unsigned int nocontract_idx = 0;

    for (int i = 0; i < LDims; i++) {
      // find if we are contracting on index i of left tensor
      bool contracting = false;
      for (int j = 0; j < ContractDims; j++) {
        if (eval_op_indices[j].first == i) {
          contracting = true;
          break;
        }
      }
      if (!contracting) {
        // add dimension size to output dimensions
        m_dimensions[dim_idx] = eval_left_dims[i];
        m_left_nocontract_strides[nocontract_idx] = lhs_strides[i];
        if (dim_idx != i) {
          m_lhs_inner_dim_contiguous = false;
        }
        if (nocontract_idx+1 < internal::array_size<left_nocontract_t>::value) {
          m_i_strides[nocontract_idx+1] =
              m_i_strides[nocontract_idx] * eval_left_dims[i];
        } else {
          m_i_size = m_i_strides[nocontract_idx] * eval_left_dims[i];
        }
        dim_idx++;
        nocontract_idx++;
      }
    }

    nocontract_idx = 0;
    for (int i = 0; i < RDims; i++) {
      bool contracting = false;
      // find if we are contracting on index i of right tensor
      for (int j = 0; j < ContractDims; j++) {
        if (eval_op_indices[j].second == i) {
          contracting = true;
          break;
        }
      }
      if (!contracting) {
        m_dimensions[dim_idx] = eval_right_dims[i];
        if (nocontract_idx+1 < internal::array_size<right_nocontract_t>::value) {
          m_j_strides[nocontract_idx+1] =
              m_j_strides[nocontract_idx] * eval_right_dims[i];
        } else {
          m_j_size = m_j_strides[nocontract_idx] * eval_right_dims[i];
        }
        m_right_nocontract_strides[nocontract_idx] = rhs_strides[i];
        dim_idx++;
        nocontract_idx++;
      }
    }

    // Now compute the strides corresponding to the contracting dimensions. We
    // assumed above that non-contracting axes are represented in the same order
    // in the matrix as they are in the tensor. This is not the case for
    // contracting axes. As the contracting axes must be of the same size in
    // each tensor, we'll only look at the first tensor here.
    m_rhs_inner_dim_contiguous = true;
    m_rhs_inner_dim_reordered = false;
    for (int i = 0; i < ContractDims; i++) {
      Index left = eval_op_indices[i].first;
      Index right = eval_op_indices[i].second;

      Index size = eval_left_dims[left];
      eigen_assert(size == eval_right_dims[right] &&
                   "Contraction axes must be same size");

      if (i+1 < static_cast<int>(internal::array_size<contract_t>::value)) {
        m_k_strides[i+1] = m_k_strides[i] * size;
      } else {
        m_k_size = m_k_strides[i] * size;
      }
      m_left_contracting_strides[i] = lhs_strides[left];
      m_right_contracting_strides[i] = rhs_strides[right];

      if (i > 0 && right < eval_op_indices[i-1].second) {
        m_rhs_inner_dim_reordered = true;
      }
      if (right != i) {
        m_rhs_inner_dim_contiguous = false;
      }
    }

    // Scalar case. We represent the result as a 1d tensor of size 1.
    if (LDims + RDims == 2 * ContractDims) {
      m_dimensions[0] = 1;
    }

    // If the layout is RowMajor, we need to reverse the m_dimensions
    if (static_cast<int>(Layout) == static_cast<int>(RowMajor)) {
      for (int i = 0, j = NumDims - 1; i < j; i++, j--) {
        numext::swap(m_dimensions[i], m_dimensions[j]);
      }
    }
  }

  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }

  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool evalSubExprsIfNeeded(Scalar* data) {
    m_leftImpl.evalSubExprsIfNeeded(NULL);
    m_rightImpl.evalSubExprsIfNeeded(NULL);
    if (data) {
      evalTo(data);
      return false;
    } else {
      m_result = static_cast<Scalar *>(m_device.allocate(dimensions().TotalSize() * sizeof(Scalar)));
      evalTo(m_result);
      return true;
    }
  }

  EIGEN_DEVICE_FUNC void evalTo(Scalar* buffer) const {
    if (this->m_lhs_inner_dim_contiguous) {
      if (this->m_rhs_inner_dim_contiguous) {
        if (this->m_rhs_inner_dim_reordered) {
          static_cast<const Derived*>(this)->template evalProduct<true, true, true, Unaligned>(buffer);
        }
        else {
          static_cast<const Derived*>(this)->template evalProduct<true, true, false, Unaligned>(buffer);
        }
      }
      else {
       if (this->m_rhs_inner_dim_reordered) {
          static_cast<const Derived*>(this)->template evalProduct<true, false, true, Unaligned>(buffer);
        }
        else {
          static_cast<const Derived*>(this)->template evalProduct<true, false, false, Unaligned>(buffer);
        }
      }
    }
    else {
      if (this->m_rhs_inner_dim_contiguous) {
        if (this->m_rhs_inner_dim_reordered) {
          static_cast<const Derived*>(this)->template evalProduct<false, true, true, Unaligned>(buffer);
        }
        else {
          static_cast<const Derived*>(this)->template evalProduct<false, true, false, Unaligned>(buffer);
        }
      }
      else {
       if (this->m_rhs_inner_dim_reordered) {
          static_cast<const Derived*>(this)->template evalProduct<false, false, true, Unaligned>(buffer);
        }
        else {
          static_cast<const Derived*>(this)->template evalProduct<false, false, false, Unaligned>(buffer);
        }
      }
    }
  }

  template <bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
  EIGEN_DEVICE_FUNC void evalGemv(Scalar* buffer) const {
    const Index rows = m_i_size;
    const Index cols = m_k_size;

    typedef typename internal::remove_const<typename EvalLeftArgType::Scalar>::type LhsScalar;
    typedef typename internal::remove_const<typename EvalRightArgType::Scalar>::type RhsScalar;
    typedef TensorEvaluator<EvalLeftArgType, Device> LeftEvaluator;
    typedef TensorEvaluator<EvalRightArgType, Device> RightEvaluator;
    const Index lhs_packet_size = internal::unpacket_traits<typename LeftEvaluator::PacketReturnType>::size;
    const Index rhs_packet_size = internal::unpacket_traits<typename RightEvaluator::PacketReturnType>::size;
    const int lhs_alignment = LeftEvaluator::IsAligned ? Aligned : Unaligned;
    const int rhs_alignment = RightEvaluator::IsAligned ? Aligned : Unaligned;
    typedef internal::TensorContractionInputMapper<LhsScalar, Index, internal::Lhs,
                                                   LeftEvaluator, left_nocontract_t,
                                                   contract_t, lhs_packet_size,
                                                   lhs_inner_dim_contiguous,
                                                   false, lhs_alignment> LhsMapper;

    typedef internal::TensorContractionInputMapper<RhsScalar, Index, internal::Rhs,
                                                   RightEvaluator, right_nocontract_t,
                                                   contract_t, rhs_packet_size,
                                                   rhs_inner_dim_contiguous,
                                                   rhs_inner_dim_reordered, rhs_alignment> RhsMapper;

    LhsMapper lhs(m_leftImpl, m_left_nocontract_strides, m_i_strides,
                  m_left_contracting_strides, m_k_strides);
    RhsMapper rhs(m_rightImpl, m_right_nocontract_strides, m_j_strides,
                  m_right_contracting_strides, m_k_strides);

    const Scalar alpha(1);
    const Index resIncr(1);

    // zero out the result buffer (which must be of size at least rows * sizeof(Scalar)
    m_device.memset(buffer, 0, rows * sizeof(Scalar));

    internal::general_matrix_vector_product<Index,LhsScalar,LhsMapper,ColMajor,false,RhsScalar,RhsMapper,false>::run(
        rows, cols, lhs, rhs,
        buffer, resIncr, alpha);
  }

  template <bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
  EIGEN_DEVICE_FUNC void evalGemm(Scalar* buffer) const {
    // columns in left side, rows in right side
    const Index k = this->m_k_size;

    // rows in left side
    const Index m = this->m_i_size;

    // columns in right side
    const Index n = this->m_j_size;

    // zero out the result buffer (which must be of size at least m * n * sizeof(Scalar)
    this->m_device.memset(buffer, 0, m * n * sizeof(Scalar));

    // define mr, nr, and all of my data mapper types
    typedef typename internal::remove_const<typename EvalLeftArgType::Scalar>::type LhsScalar;
    typedef typename internal::remove_const<typename EvalRightArgType::Scalar>::type RhsScalar;
    typedef typename internal::gebp_traits<LhsScalar, RhsScalar> Traits;

    const Index nr = Traits::nr;
    const Index mr = Traits::mr;

    typedef TensorEvaluator<EvalLeftArgType, Device> LeftEvaluator;
    typedef TensorEvaluator<EvalRightArgType, Device> RightEvaluator;

    const Index lhs_packet_size = internal::unpacket_traits<typename LeftEvaluator::PacketReturnType>::size;
    const Index rhs_packet_size = internal::unpacket_traits<typename RightEvaluator::PacketReturnType>::size;

    typedef internal::TensorContractionInputMapper<LhsScalar, Index, internal::Lhs,
                                                   LeftEvaluator, left_nocontract_t,
                                                   contract_t, lhs_packet_size,
                                                   lhs_inner_dim_contiguous,
                                                   false, Unaligned> LhsMapper;

    typedef internal::TensorContractionInputMapper<RhsScalar, Index, internal::Rhs,
                                                   RightEvaluator, right_nocontract_t,
                                                   contract_t, rhs_packet_size,
                                                   rhs_inner_dim_contiguous,
                                                   rhs_inner_dim_reordered, Unaligned> RhsMapper;

    typedef internal::blas_data_mapper<Scalar, Index, ColMajor> OutputMapper;

    // Declare GEBP packing and kernel structs
    internal::gemm_pack_lhs<LhsScalar, Index, typename LhsMapper::SubMapper, mr, Traits::LhsProgress, ColMajor> pack_lhs;
    internal::gemm_pack_rhs<RhsScalar, Index, typename RhsMapper::SubMapper, nr, ColMajor> pack_rhs;

    internal::gebp_kernel<LhsScalar, RhsScalar, Index, OutputMapper, mr, nr, false, false> gebp;

    // initialize data mappers
    LhsMapper lhs(this->m_leftImpl, this->m_left_nocontract_strides, this->m_i_strides,
                  this->m_left_contracting_strides, this->m_k_strides);

    RhsMapper rhs(this->m_rightImpl, this->m_right_nocontract_strides, this->m_j_strides,
                  this->m_right_contracting_strides, this->m_k_strides);

    OutputMapper output(buffer, m);

    // Sizes of the blocks to load in cache. See the Goto paper for details.
    internal::TensorContractionBlocking<LhsMapper, RhsMapper, Index, internal::ShardByCol> blocking(k, m, n, 1);
    const Index kc = blocking.kc();
    const Index mc = numext::mini(m, blocking.mc());
    const Index nc = numext::mini(n, blocking.nc());
    const Index sizeA = mc * kc;
    const Index sizeB = kc * nc;

    LhsScalar* blockA = static_cast<LhsScalar *>(this->m_device.allocate(sizeA * sizeof(LhsScalar)));
    RhsScalar* blockB = static_cast<RhsScalar *>(this->m_device.allocate(sizeB * sizeof(RhsScalar)));

    for(Index i2=0; i2<m; i2+=mc)
    {
      const Index actual_mc = numext::mini(i2+mc,m)-i2;
      for (Index k2 = 0; k2 < k; k2 += kc) {
        // make sure we don't overshoot right edge of left matrix, then pack vertical panel
        const Index actual_kc = numext::mini(k2 + kc, k) - k2;
        pack_lhs(blockA, lhs.getSubMapper(i2, k2), actual_kc, actual_mc, 0, 0);

        // series of horizontal blocks
        for (Index j2 = 0; j2 < n; j2 += nc) {
          // make sure we don't overshoot right edge of right matrix, then pack block
          const Index actual_nc = numext::mini(j2 + nc, n) - j2;
          pack_rhs(blockB, rhs.getSubMapper(k2, j2), actual_kc, actual_nc, 0, 0);

          // call gebp (matrix kernel)
          // The parameters here are copied from Eigen's GEMM implementation
          gebp(output.getSubMapper(i2, j2), blockA, blockB, actual_mc, actual_kc, actual_nc, 1.0, -1, -1, 0, 0);
        }
      }
    }

    this->m_device.deallocate(blockA);
    this->m_device.deallocate(blockB);
  }

  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void cleanup() {
    m_leftImpl.cleanup();
    m_rightImpl.cleanup();

    if (m_result != NULL) {
      m_device.deallocate(m_result);
      m_result = NULL;
    }
  }

  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const {
    return m_result[index];
  }

  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorOpCost costPerCoeff(bool) const {
    return TensorOpCost(sizeof(CoeffReturnType), 0, 0);
  }

  template<int LoadMode>
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const {
    return internal::ploadt<PacketReturnType, LoadMode>(m_result + index);
  }

  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar* data() const { return m_result; }

  protected:
  // Prevent assignment
  TensorContractionEvaluatorBase& operator = (const TensorContractionEvaluatorBase&);
  Dimensions m_dimensions;

  contract_t m_k_strides;
  contract_t m_left_contracting_strides;
  contract_t m_right_contracting_strides;

  bool m_lhs_inner_dim_contiguous;
  bool m_rhs_inner_dim_contiguous;
  bool m_rhs_inner_dim_reordered;

  left_nocontract_t m_i_strides;
  right_nocontract_t m_j_strides;
  left_nocontract_t m_left_nocontract_strides;
  right_nocontract_t m_right_nocontract_strides;

  Index m_i_size;
  Index m_j_size;
  Index m_k_size;

  TensorEvaluator<EvalLeftArgType, Device> m_leftImpl;
  TensorEvaluator<EvalRightArgType, Device> m_rightImpl;
  const Device& m_device;
  Scalar* m_result;
};

// evaluator for default device
template<typename Indices, typename LeftArgType, typename RightArgType, typename Device>
struct TensorEvaluator<const TensorContractionOp<Indices, LeftArgType, RightArgType>, Device> :
    public TensorContractionEvaluatorBase<
      TensorEvaluator<const TensorContractionOp<Indices, LeftArgType, RightArgType>, Device> > {
  typedef TensorEvaluator<const TensorContractionOp<Indices, LeftArgType, RightArgType>, Device> Self;
  typedef TensorContractionEvaluatorBase<Self> Base;

  typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
  typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
  typedef typename XprType::Index Index;
  typedef typename XprType::CoeffReturnType CoeffReturnType;
  typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;

  enum {
    Layout = TensorEvaluator<LeftArgType, Device>::Layout,
  };

  // Most of the code is assuming that both input tensors are ColMajor. If the
  // inputs are RowMajor, we will "cheat" by swapping the LHS and RHS:
  // If we want to compute A * B = C, where A is LHS and B is RHS, the code
  // will pretend B is LHS and A is RHS.
  typedef typename internal::conditional<
    static_cast<int>(Layout) == static_cast<int>(ColMajor), LeftArgType, RightArgType>::type EvalLeftArgType;
  typedef typename internal::conditional<
    static_cast<int>(Layout) == static_cast<int>(ColMajor), RightArgType, LeftArgType>::type EvalRightArgType;

  static const int LDims =
      internal::array_size<typename TensorEvaluator<EvalLeftArgType, Device>::Dimensions>::value;
  static const int RDims =
      internal::array_size<typename TensorEvaluator<EvalRightArgType, Device>::Dimensions>::value;
  static const int ContractDims = internal::array_size<Indices>::value;

  typedef array<Index, ContractDims> contract_t;
  typedef array<Index, max_n_1<LDims - ContractDims>::size> left_nocontract_t;
  typedef array<Index, max_n_1<RDims - ContractDims>::size> right_nocontract_t;

  static const int NumDims = max_n_1<LDims + RDims - 2 * ContractDims>::size;

  // Could we use NumDimensions here?
  typedef DSizes<Index, NumDims> Dimensions;

  EIGEN_DEVICE_FUNC TensorEvaluator(const XprType& op, const Device& device) :
      Base(op, device) { }

  template <bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
  EIGEN_DEVICE_FUNC void evalProduct(Scalar* buffer) const {
    if (this->m_j_size == 1) {
      this->template evalGemv<lhs_inner_dim_contiguous, rhs_inner_dim_contiguous, rhs_inner_dim_reordered, Alignment>(buffer);
      return;
    }

    this->template evalGemm<lhs_inner_dim_contiguous, rhs_inner_dim_contiguous, rhs_inner_dim_reordered, Alignment>(buffer);
  }
};

} // end namespace Eigen

#endif // EIGEN_CXX11_TENSOR_TENSOR_CONTRACTION_H

redpajama_set_name: RedPajamaGithub


text:
Q: PropertyChanged for a custom class is always null I have a problem with INotifyPropertyChanged and binding, I watched dozen questions here, but problem still exists.
My XAML code:
<Window x:Class="DAA.IST.ChoosePC.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:DAA.IST.ChoosePC"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <local:Question x:Key="ExpertSystem" Text="question"/>
</Window.Resources>
<Grid DataContext="{StaticResource ExpertSystem}">
    <Label x:Name="Description" Content="Определение опимальной конфигурации ПК" HorizontalAlignment="Left" Margin="100,30,0,0" VerticalAlignment="Top"/>
    <Button x:Name="button" Content="" HorizontalAlignment="Left" Margin="204,167,0,0" VerticalAlignment="Top" Width="75" Click="button_Click"/>
    <Button x:Name="button1" Content="" HorizontalAlignment="Left" Margin="284,167,0,0" VerticalAlignment="Top" Width="75" Click="button1_Click"/>
    <Label x:Name="QuestionLable" Content="{Binding Text}" HorizontalAlignment="Left" Margin="100,70,0,0" VerticalAlignment="Top"/>
    <Label x:Name="Result" Content="" HorizontalAlignment="Left" Margin="100,210,0,0" VerticalAlignment="Top"/>

</Grid>

I list here full code, because I really don't know there problem is, sorry. Main window code:
public partial class MainWindow : Window
{
    public static IQuestion Question;

    public MainWindow()
    {
        InitializeComponent();
        Question = new Question
        {
            Text = "question",
            Answers = new List<IAnswer>
                      {
                          new Answer {Text = "answer", NextQuestionNumber = 0},
                          new Answer {Text = "answer1", NextQuestionNumber = 0}
                      }
        };
        DataContext = Question;
    }

    private void button_Click(object sender, RoutedEventArgs e)
    {
        Question.Answer(0);
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        Question.Answer(1);
    }
}

And Questioncode, this class implements INotifyPropertyChanged:
public class Question : IQuestion, INotifyPropertyChanged
{
    private string _text;

    public string Text
    {
        get { return _text; }
        set
        {
            _text = value;
            OnPropertyChanged("Text");
        }
    }

    public IList<IAnswer> Answers { get; set; }

    public void Answer(int number)
    {
        MainWindow.Question.Answers[number].Number = number;
        MainWindow.Question.Answers[number].SetNextQuestion();
    }

    public event PropertyChangedEventHandler PropertyChanged;

    [NotifyPropertyChangedInvocator]
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

Please help me, sure I miss or don't know something. Also if someone can give me advise about changing of IList<IAnswer> Answers, I will be thankful to him^^

A: First of all, it is bad practice to refer MainWindow inside your question class.
You should use commands in this context i.e. you should define a command in your DataContext( question here) and bind that Command to your two Button's Command property.
For example:
Class Question : INotifyPropertyChanged, IQuestion
{
  public ICommand ButtonClickCommand { get; set;}

  public Question()
  {
    //Bind ButtonClickCommand to Event Handler/ A Method
    ButtonClickCommand = new DelegateCommand(EventHandlerName);
  }
  public void EventHandlerName()
  {
  }
}

Also, take a private _answers field in the class and raise OnPropertyChanged event from Setter of Answers property too, to utilize this list in Notification mechanism i.e.
public IList<IAnswer> Answers {
  get { return _answers }
  set { _nswers = value;
  OnPropertyChanged("Answers");

}
And, you have mentioned that you want to chnge the content of label and buttons. But to change the content of label and Buttons, you need to bind the 'Content' of these controls to Properties in Question class as well. I don't see any binding in your XAML as of now.

A: Finally, I found my mistake. I should change property, not create new instances. If I create new one, old value remains the same. It is connected with reference types realization some way.
MainWindow.Question.Text = "question";
MainWindow.Question.Answers[0].Text = "answer0";
MainWindow.Question.Answers[0].NextQuestionNumber = number0;
MainWindow.Question.Answers[1].Text = "answer1";
MainWindow.Question.Answers[1].NextQuestionNumber = number1;

redpajama_set_name: RedPajamaStackExchange


In 2006, Austin College and the Botanical Research Institute of Texas released their second major collaborative flora.
The first volume covers ferns, gymnosperms, and monocots. Dicots will follow in Vol. 2 (ca. 2019) and Vol. 3 (ca. 2020). Geographic coverage is of 87 counties; a checklist of the known East Texas plants includes more than 3000 species. The introduction has discussions of geology and geological history, effects of glaciation on the vegetation, soils, settlement and presettlement history, and climate, and it presents extensive information on the Big Thicket and Caddo Lake areas. Also featured are a distribution map for each species, indices for selection of native species that attract birds, help to foresters in teaching bark, resin, fruit, and twig characteristics of the principal timber species, and a quick guide to the common poisonous and medicinal plants.
This online presentation of the Illustrated Flora of East Texas, Volume 1 includes keys, descriptions, and illustrations for numerous species. They are all available here in Adobe PDF format. Extensive introductory materials, color photographs, appendices, glossary, literature cited, and an index can be accessed below - a total of over 1500 pages.


San Diego's Write Out Loud in partnership with the Grossmont College Theater Department, will be performing a selection from the 2019 NEA Big Read, Station Eleven by Emily St. John Mandel right on the street in front of The Book Catapult on Saturday, April 6 at 12:00pm.
In Emily St. John Mandel's fantastic, post-apocalyptic National Book Award-nominated novel Station Eleven, members of a roving group of actors known as The Traveling Symphony perform Shakespeare from the back of a truck in an effort to return culture to their collapsed world. We're not quite there yet (hopefully the NEA won't be defunded any time soon) but our friends from Write Out Loud, along with students from the Grossmont College Theater Department, will be performing Shakespeare Banished, inspired by Station Eleven - from the back of a truck parked in front of The Book Catapult.
The performance will be followed by a discussion of Station Eleven in-store - and copies of the book will be 20% off on April 6th. Seth is a big fan of Station Eleven, so you won't be alone in the discussion circle, we promise! This should be a lot of fun and a fascinating, outside-the-box event that we hope you join us for!


Cool! Save an average of 20% on Toms of Maine with 4 Coupon Codes, and 7 Deals!
Toms of Maine is an online store that offers a range of quality and natural personal care products. Visit the website and browse through the products available by category such toothpaste, mouthwash, floss, deodorant & antiperspirant, beauty bars, combo packs and more. Products are available for purchase online.
Details: SAVE 15% and get FREE ground shipping. Expires 2/20/12.
Details: Free Ground Shipping on Orders of $30 or more! Free Ground Shipping on Orders of $30 or More!
Details: Free Ground Shipping on Orders of $30 or More!


Information in Dutch can be found here.
The T.M.C. Asser Instituut traditionally advises on (complex) legal issues in the area of international and European law. An important target group is the Dutch legal practice, legal professionals and notaries, and sometimes also the judiciary. Legal advice mainly relates to private international law and/or foreign private law. In principle, written or digital sources are used. For research into complex questions, we sometimes collaborate with experts from the Netherlands or abroad.
Should you consider asking the institute for advice, you may submit your query by e-mail (advies@asser.nl). You will then receive a response as soon as possible, in which we will indicate what solution we can offer. Generally we will be able to inform you swiftly on the estimated number of hours that we will require to draw up the advice. This estimate is free of charge.
The hourly rate for the provision of advice is € 195,-. These costs will be increased by a once-only amount of € 30,- for administration costs per advice. All amounts are exclusive of VAT.


text:
ACN Worldwide
The Charism
Our task areas
Mass stipends
Training of priests
Existence help
Faith formation of laity
Religious Freedom Report
Our regional activities
Asia / Oceania
Latin America
Scholarship Program in Europe and Canada (IFHIM)
Vehicle Purchase Aid
Head of sections
Home > Father Jacques Yaro Zerbo, a 66-year-old priest, was killed by terrorists in Burkina Faso
Father Jacques Yaro Zerbo, a 66-year-old priest, was killed by terrorists in Burkina Faso
It was with "very deep sorrow" that Bishop Prosper Bonaventure Ky, of Dédougou, in Burkina Faso, announced the death of father Jacques Yaro Zerbo, murdered on Monday, 2 January, by "unidentified armed men", according to a statement sent to Aid to the Church in Need (ACN).
According to the bishop, the attack took place in Soro (Gassan), in the north-western Boucle du Mouhoun area, one of the regions most badly affected by terrorism in the country.
The priest's funeral took place on Thursday, 5 January 2023, in the Cathedral of Saint Anne, in Dédougou, capital of Boucle du Mouhoun. "Through the infinite mercy of God, may his servant Father Jacques Yaro Zerbo rest in peace", the bishop pleaded.
Father Jacques Yaro Zerbo
Born in Kolongo, Mali, on 28 December 1956, Father Jacques Zerbo studied liturgy in Spain and had taught in many seminaries and formation centres throughout Burkina Faso, making him well known by the clergy. "He taught with great passion, conviction, conscience and seriousness", recalls Father Jacques, one of his former students at the major seminary of Saint Peter and Saint Paul, in Kossoghin.
Father Zerbo was ordained on 19 July 1986, in Dédougou. The diocese was only erected in 2000 and covers an area slightly smaller than Belgium. Only 18% of its close to 1 million inhabitants are Catholic. Inter-religious dialogue is one of the priorities for the diocese, which is invested in achieving a lasting peace for the country.
In recent years he had been focused mostly on the hard mission of helping young people at a centre for addicts in Gouyèlè.
Another priest was murdered in recent years in Burkina Faso, Father Simeon Yampa was killed in Dablo, in 2019.
According to information collected by Aid to the Church in Need (ACN), at least 12 priests and five religious sisters were murdered worldwide during 2022 while fulfilling their mission. During the same year, 42 priests were kidnapped in different countries, 36 of them having been released. Three of the priests abducted in Nigeria were murdered and three other priests, from different countries, are still missing. The international charity asks all friends and benefactors to pray for those who remain in captivity, as well as for the communities and families of those who lost their lives.
Maria Lozano
Latest News
ACN to hold three days of prayer for Myanmar, on second anniversary of coup
United to the Pope's request to pray for peace in Myanmar, ACN announces a prayer initiative to coincide with the 2nd anniversary of the coup...
Congo |
DR Congo: "The silence of the international community angers us", says priest following attack on church
Only days after a terrorist attack on a Protestant church in Congo, a missionary denounces the silence of the international community...
Nigeria. Thousands gather for moving tribute to Fr Isaac Achi
His murder left his community, and indeed the whole diocese, in shock. Aid to the Church in Need received the text of the sermon delivered by Fr Samuel P. Gwimi, during the funeral service...
Cookie settingsACCEPTPrivacy Policy


text:
Now displaying: June, 2018
Jorge Fontanez: Rebuilding Puerto Rico (Ep. 142) 0
Jorge Fontanez (@CuriousJLuis) is the founder of Marca Studio and operates as senior strategist, innovator and problem-solver passionate about creating and launching digital engagement and storytelling programs. He has been working at the intersection of technology, sustainability and marketing for over 15 years and experiments with models of stakeholder engagement in his role as Clinical Professor of Marketing at the Bard MBA in Sustainability Program. Jorge is a First Movers Fellow since 2014 at the Aspen Institute Business and Society Program and collaborates with the Google Next Generation Policy Leaders influencing how tech policy affects communities of color. Jorge is an Afro-Latinx, queer affirming voice hailing from Philadelphia, representing the Puerto Rican diaspora and lives in New York City.
Jorge maintains a strong record delivering consistent execution of national, integrated marketing campaigns and was honored as a "40 under 40" Brand Innovator in 2012 for expertise in digital marketing. In 2011 and 2012, Jorge was also honored as an Official Honoree of The Webby Awards in the category of Corporate Social Responsibility for his leadership of Chase Community Giving, an employee and customer engagement program of JPMorgan Chase & Co. delivering over $25MM in grants to thousands of nonprofits nationwide. Jorge now pursues his passion and interests in corporate citizenship, improving the world of philanthropy and stakeholder engagement through purpose-driven and impact marketing programs that scale.
Marca Studio
Collective Action for Puerto Rico
Court greenlights AT&T/Time Warner merger setting the stage for more consolidation
Federal DC Circuit Judge Richard Leon ruled that the Department of Justice failed to prove that AT&T's proposed acquisition of Time Warner violates federal antitrust laws, giving the greenlight for the $52 billion merger, which the companies closed on the same day. Comcast then made a $65 billion move to outbid Disney for 21st Century Fox, and Sprint and T-Mobile have now proposed a merger. The FCC opened a docket to review the Sprint/TMobile merger on Friday.
Theranos Founder Elizabeth Holmes Indicted
Federal prosecutors have indicted Elizabeth Holmes, the once-promising founder of Theranos—a faulty blood testing technology company once valued at $10 billion. The company's former president Ramesh "Sunny" Balwani, was also indicted. They're charged with 9 counts of wire fraud and two counts of conspiracy to commit wire fraud. They're accused of defrauding investors of $100 million. They've plead not guilty. The Securities and Exchange Commission has also accused Theranos's founders of fraud.
Trump calls for creation of a Space Force
President Trump has ordered the Pentagon to create a new branch of the military—a "Space Force"—that will seek to achieve U.S. dominance in space. At a meeting of the National Space Council at the White House Trump said, "We are going to have the Air Force, and we are going to have the Space Force, separate but equal". Senator Bill Nelson, a former astronaut, is against the proposal and tweeted that it is something that military leadership has told him they do not want.
Google released its diversity report
Google released its annual diversity report last week and it shows black employees make up just 2.5% of the company even though the U.S. Census Bureau says they comprise 13.3% of the population. Latinx employees make up 17.8% of the population, but just 3.6% of Google's workforce. The company also released for the first time data on attrition rates which show that, at 27 points above the index, black employees are leaving the company at a higher rate than other groups. Latinx employees are leaving the company at 15 points above the index.
Apple will remove backdoor for law enforcement
Finally, Apple announced last week that it would be removing the iPhone port that lets law enforcement break into iPhones. There's only one problem with this -- an official reportedly told Politico that this may create an opportunity for officers to exploit the exigent need exception—allowing them to access the phone without a warrant.
Hassan Tetteh: The Power of AI in Medicine (Ep. 141) 0
Hassan Tetteh: The Power of AI in Medicine (Ep. 141)
How can doctors use artificial intelligence (AI) to improve health outcomes for service members? What can we learn from the use of AI in the context of military medicine that we can apply to civilian healthcare? Dr. Hassan Tetteh joined Joe Miller to discuss the power of AI in Medicine.
Hassan A. Tetteh (@doctortetteh) author is an Associate Professor of Surgery at the Uniformed Services University of the Health Sciences, adjunct faculty at Howard University College of Medicine, and served as Division Lead for Futures and Innovation at Navy Medicine's Headquarters, Bureau of Medicine and Surgery. He was a Robert Wood Johnson Health Policy Fellow from 2012-13, assigned to the U.S. Congress, Congressional Budget Office, (CBO), and served as Assistant Deputy Commander for Healthcare Operations and Strategic Planning at Walter Reed National Military Medical Center (WRNMMC) during its integration. Currently, Tetteh is a Thoracic staff Surgeon for MedStar Health and WRNMMC and most recently served as Command Surgeon for the National Defense University.
Tetteh served as Ship's Surgeon and Director of Surgical Services for the USS Carl Vinson (CVN 70) battle group in support of OPERATION IRAQI FREEDOM in 2005. In 2011, he deployed as a trauma surgeon to Afghanistan's Helmand and Nimroz provinces in support of OPERATION ENDURING FREEDOM with II Marine Expeditionary Forces and most recently supported special joint forces missions to South America, the Middle East, the South Pacific, Australia, and Africa. He earned both the Surface Warfare Medical Department Officer and Fleet Marine Force Qualified Officer designations, and his military honors include two Meritorious Service Medals and the Joint Service Commendation Medal. Tetteh is the author of the novel Gifts of the Heart and has published articles on surgical innovation, health information technology, ethics, wounded warriors, and process improvement. He also serves on the board of directors for the Brooklyn, New York-based Arthur Ashe Institute for Urban Health, Fayetteville, Arkansas based Champions for Kids, and Miriam's Kitchen a Washington, D.C. based nonprofit that works to end chronic homelessness.
At the CBO, as a Visiting Scholar with the Health, Retirement, and Long-Term Analysis Division, Tetteh provided a clinical perspective, working with different teams of analysts on a variety of health policy projects. Individually, he contributed to studies related to the changing cost of chronic conditions, the costs of obesity and their effects on the federal budget, supply-side modeling of health workforce issues, and the impact of health information technology on the federal budget. He also analyzed policy proposals aimed at achieving savings in Medicare.
A native of Brooklyn, New York, Tetteh received his B.S. from State University of New York (SUNY) at Plattsburgh, his M.D. from SUNY Downstate Medical Center, his M.P.A. from Harvard's Kennedy School of Government, M.B.A. from Johns Hopkins University Carey Business School, and M.S. from the National War College. He completed his thoracic surgery fellowship at the University of Minnesota and advanced cardiac surgery fellowship at Harvard Medical School's Brigham and Women's Hospital in Boston. Tetteh is a Certified Professional in Healthcare Information and Management, board certified in thoracic surgery, general surgery, clinical informatics, and healthcare management, and is a Fellow of the American College of Surgeons and Fellow of the American College of Healthcare Executives.
Strength in Stillness: The Power of Transcendental Meditation by Bob Roth
Net neutrality is officially gone
The FCC's repeal of the 2015 net neutrality rules went into effect yesterday, Monday June 11th. The Hill predicts that you won't see any immediate changes to internet speeds or new paid prioritization schemes, but concludes that that's only because carriers are going to be on their best behavior as the repeal winds its ways through the courts and Congress continues to push for legislation. The status of Congressional Review Act proposals are still very uncertain as proponents have been unable to secure enough Republican votes.
Ex-Senate intelligence aide charged for FBI leaks
The DOJ has charged James Wolfe, who for nearly 30 years served as the Senate Intelligence Committee's Director of Security, for leaking FBI intelligence to four reporters, including a New York Times reporter, Ali Watkins, with whom he had a 3 year relationship. Wolf is alleged to have used encrypted messaging apps to leak the info to reporters.
Amidst uncertainty regarding Chinese device makers, Senator Warner pressures Google and Twitter
Senator Mark Warner is seeking information from Google and Twitter about their relationships with Chinese phone makers like Huawei and ZTE. Just to give you some background here, the Commerce Department has already fined ZTE $1.19 billion for dealing with Iran and North Korea in violation of trade agreements that China had with the U.S. But on Squawkbox last Thursday, Commerce Secretary Wilbur Ross announced a fresh batch of $1 billion in sanctions against ZTE for misleading regulators and failing to discipline employees. ZTE has also had to put $400 million in escrow in case they violate the trade agreement again. Ouch.
But Senate Majority leader Chuck Schumer says the sanctions don't go far enough. So he and Senator Tom Cotton introduced a bipartisan amendment to the National Defense Authoprization Act (NDAA) to restore additional sanctions including the original ban against government agencies buying or leasing from ZTE or Huawei, which is also caught in the cross-hair of all this.
And Democratic Senator Mark Warner is also pressuring Twitter and Google to provide information on how they work with Chinese phone makers.
Facebook announced last week that it had granted Huawei and other Chinese phone makers access to user data, opening up a brand new can of worms against the social media giant amidst the ongoing Cambridge Analytica fiasco.
Verizon has a news CEO
Verizon has a new CEO. Hans Vestberg will replace Lowell McAdam on August 1st. Vestberg joined the company about a year ago as Chief Tehnology Officer.
U.S . sanctions firms linked to Russia
The U.S. Treasury Department has prohibited 5 Russian firms and 3 Russian nationals from doing business in the U.S. because they allegedly helped the Kremlin conduct cyber attacks. Just a few days ago, President Trump called for Russia's readmittance to the G-7.
In addition, security experts at Cisco are warning that Russian hacks of home routers is more widespread than we initially thought.
Washington State is suing Google/Facebook for political ads
Washington State is suing Google and Facebook for allegedly failing to disclose who bought political election ads. Their Attorney General, Bob Ferguson, wants access to names, addresses, and the cost of political ads sold. Google, Facebook and Twitter have each announced new policies for political ad disclosures.
Clayton Banks: 5G Comes to Harlem (Ep. 140) 0
Clayton Banks: 5G Comes to Harlem (Ep. 140)
Clayton Banks (@embertime) is the Co-Founder and CEO of Silicon Harlem. The mission of Silicon Harlem is to transform Harlem and other urban markets into Innovation and Technology Hubs. Under his leadership, Silicon Harlem has partnered with the Department of Education for New York City to establish an after school STEM based startup accelerator, collaborate with the NYC Mayor's office to assess wireless broadband in upper Manhattan, and coordinate a virtual startup incubator for tech based entrepreneurs. Banks has established and produces the only comprehensive technology conference in Harlem, the Silicon Harlem tech conference is focused on next generation internet and its impact on urban markets economic development.
Prior to Silicon Harlem, Banks has been a pioneer in the cable and communications industry for over two decades. He set the vision for Ember Media, a development group that builds digital solutions and interactive applications for top brands and non-profit organizations, across multiple platforms. Known as a pragmatic visionary, Banks has developed and deployed leading edge technology and applications for network cloud, gaming consoles, social media, augmented reality, interactive TV, tablets, mobile apps and over 400 interactive properties. Banks has implemented multi-platform strategies for MTV, ESPN, Budweiser, Essence Music Festival, Urban Latino, Prudential, New York Institute of Technology, United Technologies, National Urban League, Denny's, Scholastic, and other top brands. He has produced multimedia and broadband content for Discovery Networks, HBO, Pepsi, Bloomberg TV, Showtime Networks, Bermuda Tourism, British Tourist Authority, Monaco Tourism, and countless other companies and organizations around the world. Banks has worked with former President of the United States Bill Clinton to publish a first-of-its-kind interactive college guide series called "The Key", that targets underserved communities and features Historically Black Colleges and Universities and Hispanic Serving Institutions. The Key was featured on CNN, NY1, Univision, and several other media outlets around the country.
Banks served as Vice President of Affiliate Relations for Comedy Central. While at Comedy Central, he was part of the launch of South Park, the Daily Show with Jon Stewart, and the Upright Citizens Brigade. Banks established the New York and Chicago Affiliate Relations offices, recruited, hired, and managed a senior affiliate relations team.
Prior to Comedy Central, Banks served as Senior Vice President of Sales and Marketing to launch Sega Channel. Sega Channel was the first interactive cable service available to US subscribers. In his capacity at Sega Channel, Banks collaborated with all aspects of the product including technical infrastructure, product content, and distribution. Banks negotiated affiliation agreements for distribution of the service with the top cable companies in the US. Including Comcast, Cablevision Systems, Time Warner, and Charter Communications. Sega Channel has been credited by many media experts for moving the cable industry toward interactivity.
Prior to Sega Channel, Banks served as Regional Director at Showtime Networks, where he was responsible for launching The Movie Channel in New York City and overseeing overall growth of Showtime Networks among assigned multiple system operators.
Banks currently serves on the Commission on Public Information and Communication for the city of New York, appointed by and representing the 5 Borough Presidents. He serves as a Board of Director for the Armory Track and Field Foundation, a Board member for the Greater Harlem Chamber of Commerce and is an active participant in the Principal for a Day program in New York City. He has published several white papers on the interactive experience and participates as a moderator and speaker at several industry events. Banks served as the President of the National Association for Multi-Ethnicity in Communications (NAMIC) from 1996-1998 and was instrumental in working with the FCC to include Minority owned business incentives in the 1996 Telecommunications Act. As NAMIC's President he championed programs to increase the number of minorities in senior management in the Cable and network television business.
Banks has received many awards for outstanding creative and corporate awards including an I.D. Magazine Award, a Davey Award, Promax, @dtech award, Creativity Award, Astrid Award, Ten Awards, the Communicator Award, a Boli Award, the Harlem Business Alliance Business Person of the Year, inducted as a History Maker in the United States Library of Congress, the recipient of the Trailblazer award from Rainbow Push and most recently received a proclamation from New York City as a Technology Leader.
Banks attended California State University at Fullerton, where he received degrees in Business Administration and Communications. Banks also completed a Cable Industry sponsored Executive Management program at Harvard Business School.
Silicon Harlem
A Higher Loyalty: Truth, Lies, and Leadership by James Comey
Trump nominates Geoffrey Starks to fill Democratic FCC Seat
President Trump has nominated Geoffrey Starks to fill the Democratic seat at the FCC seat that Mignon Clyburn left vacant when she stepped down from the Commission at the end of her term last month. The distinguished Harvard and Yale Law School grad is currently an Assistant Chief in the FCC's Enforcement Bureau. Previously, he worked at the Department of Justice where he helped successfully secure a hate crimes conviction for a former D.C. neighborhood advisory commissioner for DuPont Circle—Robert Dwyer. Dwyer was convicted for, in the wee-hours of the night back in 2014, going over to 17th and Corcoran NW where homeless people sleep and proceeding to toss their belongings into the street, yell racial slurs, and spray one of the homeless men with cleaning solution. Previously, Starks worked at the law firm of Williams & Connolly and as an aide to state senators in Illinois including Barack Obama.
Facebook under fire again
Facebook is under fire again by both Republicans and Democrats after the New York Times ran a story Sunday night saying the company shared user data with device makers. The article alleges that Facebook entered into data-sharing agreements with companies like Apple, Amazon, Blackberry and Samsung without users' consent, reinforcing accusations that began to arise last month, during the ongoing Cambridge Analytica debacle, that Facebook violated a 2011 Federal Trade Commission consent decree to protect user data.
Keith Ellison calls for FTC investigation of Google
In a letter on Friday, Keith Ellison, vice chairman of the Democratic National Committee, followed up on a call he made back in October for the Federal Trade Commission to investigate Google parent company Alphabet's market dominance. He says the FTC should undertake a similar investigation to the one recently conducted by the European Union which resulted in a record $2.7 billion fine against the tech giant for unfairly highlighting its own search results.
Facebook and Twitter address political ad transparency
Facebook and Twitter have announced measures to address ad transparency. Facebook will now include a "paid for" label atop political ads, and also keep an archive of political ad data for seven years—the length of a congressional election cycle. Twitter will ban foreign-based advertisers from placing political ads on its platform -- it will also clearly identify and include disclaimers on political ads, as well as require political advertisers to use photos in the advertiser profiles as well as provide contact information. The two companies follow efforts by Google to improve its political ad transparency. The Internet Association is urging the Federal Election Commission to keep political ad regulations flexible.
Homeland detected surveillance activity near "sensitive facilities"
The Department of Homeland security reported suspicious surveillance activity near what it termed as "sensitive facilities". In a letter to Senator Ron Wyden, Senior Homeland Security Official Chris Krebs wrote that the Department detected an "anomalous" use of Stingray devices—a device that law enforcement officers use to mimic cell towers in order to obtain device data. The problem is that Homeland doesn't know or isn't disclosing where the suspicious activity is coming from.
Apple reports sharp increase in national security requests
Reporting on national security requests it received in the second half of 2017, Apple reported that it received 20% more such requests than it did in the first half of that year. The company reports that it received 16,249 requests regarding 8,249 accounts between July 1 and December 31 of 2017.
Google nixes plans to work with Pentagon
Finally ,After receiving pressure from thousands of employees, some of which resigned, Google has announced that it will no longer seek government contracting funding to support the Pentagon in its quest to use Artificial Intelligence for drone warfare. The current contract is set to expire in 2019 and Google won't seek to renew it, according to Gizmodo.


text:
Q: Jquery: how to capture the click event that is NOT in the region of ? I am using the  to implement a popup window using zIndex... things work well but I want to implement a function, that is when user click any region that is outside of the popup div, the div will be closed, how to do that?
Bin

A: (function($){
   $.fn.outside = function(ename, cb){
      return this.each(function(){
         var $this = $(this),
              self = this;

         $(document).bind(ename, function tempo(e){
             if(e.target !== self && !$.contains(self, e.target)){
                cb.apply(self, [e]);
                if(!self.parentNode) $(document).unbind(ename, tempo);
             }
         });
      });
   };
}(jQuery));

That is a copy&paste code from
mouse click somewhere else on page (not on a specific div)

A: An easy way to do this is to cover your page with a transparent (could also be completely transparent) mask using a div.
Attach a click handler on this mask div to close out the popup.
See example here: http://www.sohtanaka.com/web-design/examples/modal-window/

A: Here is an example, using the Event.target (cross browser).
http://jsbin.com/eqeto3/edit


Take the chance to play at one of the most unique online casino. Mucho Vegas Casino has a nice user interface combined with really generous bonuses and a mixed game range. They offer over 800 games from varied game providers - big and small. It does not matter if you play on mobile or computer because the page is adapted to both. You can choose between a variety of payment methods and always be sure they handle withdrawals within 24 hours. Unless all this has already convinced you, perhaps a welcome bonus worth a total of €1500 will get you on other thoughts.
Take a chance to play on this humorous online casino. Get started on Mucho Vegas instantly by clicking "Play Now!"
Mucho Vegas Casino is a fresh out of the oven casino that serves taco every day! The Mexican theme makes the site very entertaining to play with. All promotions and bonus offers follow the mexican theme as well. It's the best online casino to play if you're a real taco maniac. They have just entered the market, having already started offering better bonuses than many other sites. They have over 400 games to choose from and you are guaranteed to always find a fun game. Why not try out some new games and maybe find a new favorite video slot?
Getting started on Mucho Vegas is incredibly easy! You don't need any kind of software or app, but simply enter the address in the search box of your browser.
Of course, Mucho Vegas is completely customized for the device you're playing. Mucho Vegas has a very user friendly and responsive mobile casino. You can expect the casino to look as pretty as you play on a computer. Nobody must miss out on the latest tacoevening on friday nights! Mucho Vegas is definitely one of the best new casino 2017! They operate under a license from Curaçao, which certifies your security at the casino Mucho Vegas.
Mucho Vegas uses several game developers. You can sort the casino by game supplier which is extremely handy in some situations. You can between video slots from the game developers Netent, Microgaming, Betsoft, GameArt, Oryx, Isoftbet and Pragmatic Play. Many of these slot providers are a bit less common, so it's a great opportunity to try out some less common games. We really recommend taking the chance to try some of the casino's most unique games.
At Mucho Vegas online casino it simply looks like you're never going hungry! You have plenty of games to choose from and a huge variety of varied bonuses to claim. Be sure to combine your favorite game with a really good bonus to get the best casino experience!
You'll also find fun offers midweek where you can get a percentage bonus with a deposit! Perfect way to relax after a stressful day of work. Mucho Vegas will definitely offer lots of bonus in the future.
Click on "Play Now" to get directly to the casino!
At Mucho Vegas they offer a welcome bonus with a total value of around $ 15,000. You get these bonuses with your first 7 deposits. In addition, if you make 6 deposits and receive the welcome pack, you will receive 150 free spins with your seventh deposit! This is a generous and affordable package that we think many will appreciate!
We're always worried when it comes to money, but at Mucho Vegas you have absolutely nothing to worry about. They offer a lot of secure and fast payment providers. You can easily use your debit card to make deposits and withdrawals – but keep in mind that it may take an extra business day to get the money if you use debit cards. If you prefer quick payouts, we recommend using bank transfer (Trustly if you live in EU). It's a sure method that creates a safe transfer between your bank and the casino.
They also offer popular ewallets like Skrill and Neteller – and you can also enter Paysafe. You can buy these at your local convenient store. You also have the option of using Zimper and Giropay to get an invoice home-delivered instead. We do not usually recommend games on invoice.
You can always expect to get help with any problems quickly on Mucho Vegas. They have a very well-educated and knowledgeable support that is ready for your use. You can contact support via both email and chat. Unfortunately they do not have phone support but live chat usually suffices to solve problems. They also have a good FAQ that answers the most common questions.


When I first started querying Coriander Jones in 2012-13, one agent's submission preferences referenced her love for Weetzie Bat. I admit I hadn't heard of it, but I put it on my to-read list, where it stayed until recently. I was intrigued by the setting, Los Angeles, and its reputation as a ground-breaking YA book that embraced magic and allegory.
Weetzie, along with her Secret Agent Lover Man, her best friend and his partner, make their own version of family in a Los Angeles that is half in the present and half in the soiled glory of its ritzy past. Having lived in LA in the late eighties, I can see it as a sort of tear-stained love letter to a city that was probably never as grand as people imagined it was during the golden era of Hollywood. Weetzie starts off the book in high school, but after a few scant pages, that locale is never mentioned again. If you like linear story-telling with internal logic, then this is not the book for you.
There is a lot to admire in Weetzie– The writing flows along dreamily as if the characters are having a lucid dream. Some events are constructed on the flimsiest sort of pretense (a magic genie provide Weetzie with just what the "plot" requires, Weetzie decides to become a mother by sleeping with both her friend and her friend's lover) not to mention the suspension of disbelief about how the lot are even able to buy food. But that misses the point, because the mundane aspects of life (going to school, getting a job, paying bills) are not at all what the book is concerned about.
This is not to say that the magical realism totally overshadows the characters' genuineness. Weetzie has her first real and true heartbreak when her father dies. The AIDS epidemic (not mentioned by name) hits close to home. In the play within the play, where Weetzie is starring in a movie and can't figure out how to end the story, her character decides that it is only by dying in the real world that she can wake up in the perfect fantasy world that she wants to live in. Although Weetzie herself doesn't go the suicide route, I guess the takeaway is that you have to assume these characters only exist in a dreamlike state where all things are possible, where babies show up on doorsteps and no one questions it, and where someone tosses Burt Reynold's toupee out of a limo window so that it can used to adorn a rubber chicken.
I'm guessing that there was not a whole lot like Weetzie Bat in bookstores when it first came out. It had to have been mind blowing and I wish I had read it when I was closer to Weetzie's age and closer to my years living in LA. For someone who came of age reading "edgy" contemporary YA by Norma Klein, or other books by SE Hinton or Judy Blume, I can only appreciate Weetzie Bat from a distance. From my perch as a fifty-year old, still working on the writing craft, and parenting a teenager, it's more of a specimen to me than something I will treasure having read.
If you've read it did you love it? Hate it? Wonder what the heck you were looking at? I'm interested in your thoughts.