text:
https://www.motleyrice.com/blogpost/bayer-stop-essure-sales
« Back to Blog List
Top 4 things to know about Bayer stopping Essure sales
by: Fidelma L. Fitzpatrick
On Friday, July 20, Bayer Healthcare announced it will stop selling Essure®, a metal, spring-like contraceptive device that is wound with synthetic fibers. The device was permanently implanted into the fallopian tubes of hundreds of thousands of women around the country. The withdrawal of Essure from the market is a testament to our clients and all of the other thousands of women who have been battling against Bayer to get this product off the market. Sadly, it's too late for so many to avoid extreme pain, forced hysterectomies and the many other severe side effects and complications the FDA has recognized that Essure may cause.
In September 2015, an FDA Advisory Committee heard heartbreaking stories of Essure's impact on women's lives. You may read more on the hearing in my previous blog post: Takeaways from the FDA Public Hearing on Bayer's Essure Device.
This news is particularly significant because it is quite rare that a medical device manufacturer completely stops sales of a device following complaints. As lead counsel for Essure litigation coordinated in California state court, I know many women and their loved ones who have questions about what this means. Here are my thoughts on some of the top questions I'm hearing.
1. If I have an Essure device, should I have it removed as soon as possible?
Anyone with an Essure device should consult with their doctor about the best course of action to take. Each patient is different. Continue to monitor and be in tune with your body and aware of potential complications and side effects other women have reported with Essure. If you suspect that you may be experiencing complications, contact your doctor as soon as possible.
2. Why did the FDA allow Essure sales to continue for as long as they did?
First, I don't believe Essure should have been approved for use at all. The FDA approved Essure, claiming that it had received the "most stringent review prior to marketing." Sadly, that clearly wasn't the case and instead the FDA approved Essure without prior clinical studies and thereby fully examining the potential health risks versus the rewards that Conceptus (which was acquired by Bayer in 2013) was touting.
After the FDA approves a medical device like Essure for sale, it relies on the manufacturer to be honest and to provide it with complete information that it has about the safety and efficacy of its product. Manufacturers are required to tell the FDA when it has received complaints from patients and physicians about complications that may be associated with the medical device. Then the FDA launches an initial review process to determine whether an in-depth investigation is needed. Based on the findings of an investigation, the FDA may decide to pursue corrective and preventive action to address the issue.
In this case, thousands of injured women allege that Bayer did not fulfill its reporting requirements and failed to disclose information to the FDA about complaints it had received from patients and doctors. It was not until patients could report their own experiences to the FDA directly that the FDA was alerted to the fact that they had experienced significant complications they attributed to Essure. The FDA responded to these complaints by taking several steps over the course of recent years to attempt to mitigate the potential harm. For example, following the above-mentioned September 2015 hearing, the FDA ordered a rare black box warning – the FDA's highest warning level reserved for products that may cause death or serious injury – for Essure in October 2016. The FDA heard firsthand accounts from impacted women in a February 2018 hearing, and two months later, in April 2018, the FDA announced that it would impose "unique" restrictions requiring patients and physicians to sign official documents assuring that women were fully informed of the potential dangers before being implanted with the device. The FDA said at the time that by imposing this rule, it hoped to address concerns that women weren't being "adequately informed" on known dangers associated with Essure.
...We will be right there alongside our clients and thousands of others who seek to work to hold them responsible. In the meantime, Essure's removal from the market is a long-awaited step in the right direction to cap the number of women who will suffer effects caused by Essure. - Fidelma L. Fitzpatrick
Bayer's latest announcement that it plans to cease sales of Essure in the U.S. by the end of 2018 came within months of the FDA's latest restrictions going into effect. In the time since the restrictions were imposed, the FDA reports Bayer has seen a decline of roughly 70 percent in Essure sales in the U.S.
The medical manufacturer claims that it decided to stop sales for "commercial reasons," but the recent chain of events was undoubtedly sparked by the advocacy of injured women who made their voices heard. Their actions and that of the FDA have improved contraceptive safety for countless women moving forward. Again, unfortunately, it comes too late for women who already suffered life-altering injuries and complications in the 16 years since the FDA first approved Essure in 2002.
3. How can we prevent similar situations from happening before it is too late?
Moving forward, the FDA has said it "will remain vigilant in protecting patients who've already had this device implanted. We'll continue to monitor adverse events reported to our database, as well as other data sources. And we'll communicate publicly on any new findings or concerns."
However, the FDA should apply more heightened monitoring for all medical products, not just Essure. If you or a loved one are experiencing unusual side effects from a medical drug or device, consult with your doctor and make sure to also notify the FDA. Doing so could alert the FDA to unknown complications, and offer insight on whether changes to the product's warning label are necessary. The sooner a volume of complaints are reported to the FDA, the agency is put on notice and the lengthy product review process will begin.
Reports can be sent to the FDA, by you or your doctor 24 hours a day, by phone, mail and online. Visit the FDA online to complete a voluntary reporting form, or for more information on how to file a report.
4. Does this mean that women who have claims against Bayer will have an easier time proving their claims?
Despite pulling Essure from the market, Bayer continues to deny that the device is dangerous. In a statement announcing Essure's removal, Bayer maintained that, "Several factors have contributed to declining interest in Essure among women in the U.S., including decreased use of permanent contraception overall, increased reliance on other birth control options, such as long-acting reversible contraceptives (LARCs), and inaccurate and misleading publicity about the device." In other words, it seems that in Bayer's eyes, women and subsequent media raising awareness about their issues are to blame.
Again, regardless of Bayer's position, it is my firm belief that the women who have chosen to speak out about Essure should be commended. When FDA Commissioner Scott Gottlieb released a statement on Bayer's decision, he acknowledged the major role that the victims played in raising awareness on the issue, including bringing the extent of their complications to the FDA's attention. "In February, I personally had the opportunity to meet with women who have been adversely affected by Essure to listen and learn about their concerns. Some of the women I spoke with developed significant medical problems that they ascribe to their use of the product," Gottlieib said.
This chain of events in recent months, including collective efforts from the FDA and injured women to increase safety is an example of how the system should work. While I believe Essure never should have entered the market, this recent outcome highlights the collective power that patients have when they speak up about the dangers of medical products and the adverse effects they've suffered. It highlights how crucial it is that the FDA not only show a willingness to listen to patients, but that it act, without delay, when it becomes apparent that a product is dangerous.
Bayer has indicated that it will continue to fight these lawsuits. While this outcome's effect on pending and future litigation against Bayer remains to be seen, we will be right there alongside our clients and thousands of others who seek to work to hold them responsible. In the meantime, Essure's removal from the market is a long-awaited step in the right direction to cap the number of women who will suffer effects caused by Essure.
Subscribe to our blog if you'd like to have more content like this sent directly to your inbox.
Causes, Not Just Cases®
Despite rise in popularity, the IUD can't rewrite its checkered history
Rhode Island jury awards $4.8 million verdict to man injured by Bard hernia mesh
Sleep apnea CPAP/Bi-Level PAP machines, ventilators recalled due to cancer, foam causing toxicity risk


Stanton said the crane was carefully raised enough to withstand the vessel's weight and the water and sediments were drained. A news release states that the crane's boom was placed in predetermined locations to protect wildlife and sensitive areas.
Stanton said the Spirit of Sacramento is being towed to the U.S. Army Corps of Engineers facility in Sausalito, where oil and fuel will be removed. The journey began about noon Thursday and was expected to take about eight to 10 hours with the boat being towed less than 6 mph, he said.
The vessel once operated as a tour boat, taking passengers up and down the Sacramento River and into the Delta. Sacramento city officials replaced the company that operated the craft, Sacramento Yacht Charters, with Hornblower Cruises and Events in 2009.
The 87-foot paddlewheel boat The Spirit of Sacramento began taking on water late Saturday night and capsized early Sunday morning near Bethel Island in Contra Costa County, according to the U.S. Coast Guard.
Is the capsized Spirit of Sacramento polluting the Delta?


text:
HomeHeadlinesAlgeria
Amnesty Condemns Algeria for Mass Deportation of African Migrants
North Africa PostOctober 24, 2017 10:00 am
Amnesty International has denounced the racial and discriminatory crackdown launched by Algerian authorities against sub-Saharan migrants, rounding up and forcibly expelling more than 2,000 of them to Niger and Mali over the past three weeks.
Those expelled include more than 300 minors, among them at least 25 unaccompanied children, said Amnesty in a press release issued Monday.
The new wave of arrests started on September 22 when Algerian police and gendarmes began arbitrarily detaining migrants in the capital, Algiers, and neighboring suburbs.
Research by Amnesty International indicates they made arrests on the basis of racial profiling as they did not seek to ascertain whether the migrants had the right to stay in the country, either by checking their passports or other documents. Some of those arrested and deported are undocumented migrants, while others have valid visas.
"There can be no justification for rounding up and forcibly deporting hundreds of people based on the color of their skin or their assumed country of origin – a blatant case of mass racial profiling," said Heba Morayef, North Africa Research Director at Amnesty International.
"This and the chilling scale of arbitrary arrests and summary mass expulsions in recent weeks reveal the Algerian authorities' deeply discriminatory attitude towards migrants from sub-Saharan Africa. They must urgently halt these unlawful arrests and deportations."
The latest wave of mass arrests and expulsions comes just few weeks after more than 1,000 people – mainly nationals of Niger – were returned to their native country in August 2017. Arrests also took place during the first weeks of September.
On September 22, more than 600 migrants arrived in Agadez, Niger, according to International Rescue Committee (IRC) in Niger. They included nationals from Niger, Guinea, Burkina Faso, Benin. More than 100 women and 200 minors were among them.
Also in September, the Algerian Ministry of Transport issued an order barring undocumented migrants from using public transport.
In July, Ahmed Ouyahya, who is now Algeria's Prime Minister, uttered heinous remarks describing Sub-Saharan migrants as a "source of crime, drugs and other calamities". Persisting on the same xenophobic remarks, Foreign Minister Abdelkader Messahel accused Sub-Saharan migrants of "involvement in crime and drug trafficking."
Even worse, Head of Algeria's human rights commission Fa-rouk Ksentini made scandalous statements, bluntly accusing sub-Saharans of spreading HIV and diseases in Algeria.
Meanwhile, at the level of the public, there has been an alarming number of xenophobic comments by Algerian social media users blaming migrants for spreading HIV and taking Algerians' jobs.
Under international law, no one can be forcibly expelled from a country without being given a fair opportunity to challenge their expulsion. In addition, no one can be returned to a country where they would face a real risk of serious human rights violations.
"Instead of trampling over the rights of migrants and carrying out mass expulsions, the Algerian authorities should be trying to counter racial discrimination and hate speech against sub-Saharan Africans and reform laws on the rights of migrant workers to stay in the country," said Heba Morayef.
CATEGORIES AlgeriaHeadlines
NEWER POSTEgypt's al-Sisi in Paris amid human rights deterioration
OLDER POSTDebunking the Disgraceful Statements of Algeria's FM against Morocco

redpajama_set_name: RedPajamaCommonCrawl


For the Quickfire, the chefs must make a pie from scratch. For the Elimination, the chefs prepare a classic picnic feast for Capitol Hill interns at Mount Vernon, the home of the first U.S. president, George Washington. While the chefs grill up some tasty dishes, the interns spread out their blankets and play croquet on the lawn. Jonathan Waxman, author and owner of New York City's Barbuto restaurant, guest judges.


Some students are interested in a college where they are able to try a number of different fields, figuring out which courses are interesting and which seem like they are meant for someone else. But others don't have that much time to put towards the educational experience, or rather, they might know that they are interested in what will help them out in the workforce. For those students who are interested in learning that can immediately translate to a job in the real world, Sawyer School is an excellent choice.
While other programs of study offer the chance to earn a certificate or a degree in a couple of different areas, Sawyer is different because it narrows the field. Every single student attending Sawyer to earn a certificate is earning that certificate in medical administration or a related field. By narrowing the focus of classes, Sawyer is able to provide specialized and hands-on learning that will have every single student more qualified for the job at hand by the end of the program or course of study. With a focus on contemporary developments in technology and other steps forward in the industry, students will have the knowledge and the skills that they need to get themselves in the driver's seat and get their careers off the ground immediately.
Located in Pawtucket, Rhode Island, Sawyer School is right in the heart of a major suburban part of Rhode Island, where businesses are always in need of more workers. Due to its location, the school is easily accessed from a number of roads and highways, meaning that commuting from the surrounding area is not a difficult prospect at all. For those who are not interested in the medical administration programs, Sawyer does also offer the opportunity for one to earn a GED on-campus, which is another rather popular educational program for those who are in need of the accolades necessary to jump right into the workforce and excel.
Students interested in signing up for the career programs at Sawyer should provide their high school diploma or GED along with a completed application at least a semester before they intend on beginning classes. Additional placement is not required at this time, so students do not need to have copies of their standardized tests, as the ACT and SAT are not the most important element in admission or acceptance. If students enrolling have any questions regarding the application, they are recommended to get in touch with someone working in the office of admissions, who can answer any potential questions.
College can definitely get to be quite an investment, and financial aid is often an essential part of the process. For those students who need a bit of assistance taking care of their expenses while attending Sawyer School, financial aid is available. Students should first and foremost fill out the FAFSA form the minute they know they are interested in attending the college, because this can save some serious processing time and give ample opportunity to get things corrected long before classes start. If filling out the FAFSA form is getting to be a bit overwhelming, don't hesitate to ask for assistance from one of the numerous well-informed counselors working in either the admissions office or better yet, the office of financial aid. Students attending Sawyer School often will find community-based scholarships that are both need and merit-related, and those can often help offset the cost of an education without requiring taking on a second or third job.
Ranks 4968th for the average student loan amount.
Most students attending the Sawyer School are interested in one thing: the career fast-track. This means that they are attending classes while also working on things like maintaining currently-existing jobs and often taking care of families, too. Because students at Sawyer School are trying to get their degrees completed as quickly as possible, life on campus is not like at a four-year college where you would live on-campus. While the campus itself allows for socializing and studying can be done at the school's facilities, for the most part, Sawyer is a commuter school where people head off to pursue their extracurricular interests elsewhere, and focus their time on campus towards earning a degree as quickly as possible. Most of the students on campus are under 30, and with less than 1000 people attending classes at any given moment, it means that attention from faculty is high.
Because the focus of attending Sawyer School is earning a degree and not as much socializing, there are not many opportunities to take part in official school clubs or events, including athletics. However, in Pawtucket there are numerous chances to play pick-up basketball and other sports, and often times there are community athletic groups devoted to everything from baseball in community-oriented leagues to going skiing or hiking out of the city on the weekends. Ask around on campus, and you'll likely find a great option for getting more active while attending classes at Sawyer.
StateUniversity.com has no official or unofficial affiliation with Sawyer School.


EUDML | Optimal Sampling of Holomorphic Fuctions. II. EuDML | Optimal Sampling of Holomorphic Fuctions. II.
Optimal Sampling of Holomorphic Fuctions. II.
Fisher, Stephen D., and Micchelli, Charles A.. "Optimal Sampling of Holomorphic Fuctions. II.." Mathematische Annalen 273 (1985/86): 131-148. <http://eudml.org/doc/164043>.
AU - Fisher, Stephen D.
AU - Micchelli, Charles A.
TI - Optimal Sampling of Holomorphic Fuctions. II.


12 Monogram Letter Pumpkin. Made from 14 Gauge Metal, unfinished steel. Please make note to seller the Letter you would like to have. If ordering for a door hanger please note you will need to tie ribbon or rope to the pumpkin to hang from your door or these adorable attached to your fall wreaths. NOTE: Unfinished Metal will change patina, each piece will vary in finish color from light gray to a dark gray and will rust over time. Hand crafted in Missouri. THIS IS CONSIDERED A CUSTOM ORDER, EACH LETTER IS CUSTOM CUT AT TIME OF ORDER, WE WILL NOT AUTHORIZE RETURNS DUE TO NOT NEEDING PRODUCT OR DON'T WANT ANY LONGER DUE TO THE CUSTOM ORDER NATURE OF THE PRODUCT.


text:
TITANS Season 1 Episode 5 [Review]
TITANS Series 1 Episode 5 "Together"/ Written by BRYAN EDWARD HILL & GABRIELLE STANTON/ Directed by MEERA MENON/ Starring BRENTON THWAITES, CURRAN WALTERS, TEAGAN CROFT, ANNA DIOP & RYAN POTTER/ Produced by DC UNIVERSE
[This review contains some minor SPOILERS!]
The fifth episode of Titans is titled "Together." Fittingly, this is the first time that the show's many conflicting elements did indeed seem to come together, as we finally have our core cast in one place as Dick Grayson starts to focus on turning Kory, Rachel and Gar into some kind of organized team.
I should note at the start that many of the problems with Titans to date still remain. There are still a number of logic gaps in the story. For instance, I can't believe that Dick Grayson would agree to take charge of Gar and let the green-haired punk travel with him, Kory and Rachel without somebody mentioning a) that Gar has the ability to change into a green tiger and b) he has to be naked to do it if he doesn't want to trash his clothes. But then how would we get the "hilarious" scene where the Titans are training in a random empty barn (because of course Dick just somehow manages to find such a thing when they need a place to train in secret while driving across the country) and Dick is confused by Gar's request that everyone turn around so he can get undressed before he shows off his powers. That sums up a lot of Titans in a nutshell – too much effort for too little return.
That being said, while "Together" does absolutely nothing to advance the plot of the show so far, it does address the other major failing of the series – showcasing and developing its characters. I'm not sure how much of this I should credit to Ryan Potter's performance as Gar, but the show has been greatly improved since introducing Beast Boy as a regular. Gar's character here is an even mix of the snarky Beast Boy Marv Wolfman wrote and the more flighty goofball of the recent animated series. The balance works effectively, creating a Beast Boy that will be familiar to most, while still seeming new and the show could have benefited from this kind of balancing act being introduced to other elements.
On that note, Anna Diop is finally given a chance to start portraying Starfire's softer side instead of being a 100% badass all of the time. Her interactions with Brenton Thwaites' Robin in this episode reminded me of Kory in the classic New Teen Titans books and how Kory could be so insightful when it came to observing people. Here, she manages to see through Dick's facade by watching him when he isn't throwing up his soldier act and seeing that underneath his confusion at Rachel's condition and his rough edges there is a good man trying to get out.
The focus on the characters and just letting them talk and be people for a while does a lot to offset the lackluster action of this episode. The Nuclear Family return but I defy anyone to describe the fight scene between Kory and "Sis" in the hotel hallway to me, as the whole scene is shot without any lighting apart from back-lighting. The final action scene also suffers, having been shot through a blue filter that somehow makes a penthouse room on a sunny day look like a smoky bar. Thankfully, all of this is worth suffering through for all the magic little moments of the heroes just talking to one another.
November 9, 2018 Anna Diop, Brenton Thwaites, Bryan Edward Hill, Curran Walters, DC Universe, Gabrielle Stanton, Meera Menon, Ryan Potter, Teagan Croft, Titans, Titans Show
Previous Previous post: THE GREEN LANTERN #1 & MORE! [Mini-Reviews]
Next Next post: DOCTOR WHO Series 11 Episode 6 [Review]


text:
Katastrofa lotu Olympic Airways 954 wydarzyła się 8 grudnia 1969 roku w mieście Keratea w Grecji. W wyniku katastrofy samolotu Douglas DC-6 należącego do linii lotniczych Olympic Airlines, śmierć poniosło 90 osób (85 pasażerów oraz 5 członków załogi) - wszyscy na pokładzie.

Douglas DC-6 (nr. rej. SX-DAE) odbywał lot z miasta Chania na Krecie do Aten. Kapitanem samolotu był Gregorios Gregorakis. Maszyna podchodziła do lądowania w Atenach. Nad miastem panowały złe warunki atmosferyczne - obficie padał deszcz. W trakcie podchodzenia do lądowania maszyna rozbiła się o górę Mt. Pan, na wysokości około 610 metrów. Katastrofa miała miejsce nieopodal miasta Keratea. Spośród 90 osób przebywających na pokładzie, nikt nie przeżył.

Za przyczynę katastrofy uznano błąd pilota, który zboczył z właściwej ścieżki schodzenia oraz zszedł samolotem poniżej minimalnej bezpiecznej wysokości.

Była to największa katastrofa lotnicza pod względem liczby ofiar w historii Grecji, do czasu katastrofy lotniczej pod Maratonem w sierpniu 2005 roku, w której zginęło 121 osób.

Przypisy

Katastrofy lotnicze w Grecji
Katastrofy lotnicze w 1969
Katastrofy lotnicze z udziałem samolotu Douglas DC-6
Katastrofy lotnicze z udziałem błędów pilotów
Grecja w XX wieku

redpajama_set_name: RedPajamaWikipedia


text:
Guru Launches Justin Time's Interactive Push
CES: Artist-Designed Sketchboard Pro Transforms iPad into Workspace
CAKE Signs TeamTO's 'Mighty Mike' to CITV UK
Moonbug Kids Channel Launches on Apple TV
Toronto's animation studio Guru Studio is partnering with award-winning zinc Roe design to create online and mobile games based on the popular children's brand.
Three new apps that bring the Justin Time characters to life through creative interactive play have been designed for the iPhone and iPad. The new Squidgy app is already available on the App Store. Children can play with this digital doll version of Squidgy – squashing, stretching and bouncing the cute squishy character from the show. Olive's new app celebrates friendship with a feature that lets children take photos of themselves with their favorite Justin Time characters in different outfits and poses. And, Justin's new app will bring all the adventure and freewheeling imagination of the TV series, originally commissioned by Family Channel, to children's fingertips.
Guru has also introduced a suite of games to the web that reflect the strong design and quality of the Justin Time television series. The first new games, launched on the French-language www.DisneyJunior.ca last week, are already helping to build an audience of loyal Justin Time fans. More games will be added in the coming months. The games for the English-language website will roll out next year.
Justin Time has also been selected to be a featured property at MIP Junior's Licensing Challenge, which takes place in Cannes in October. "We look forward to opening up an entire world of opportunities for game play and merchandising for the incredible Justin Time brand and are proud to have been chosen to be a part of this important forum at MIP Junior," says Mary Bredin, VP of development & acquisitions at Guru Studio.
Justin Time is now in production on a second season set for delivery in fall 2012. With exciting new adventures that take Justin and his imaginary friend Squidgy on adventures from ancient Babylon to the skyscrapers of New York City and beyond, the new season brings the CGI animated children's series up to 52 x 11 min. episodes.
Justin Time is created and developed by Brandon Scott, Frank Falcone and Mary Bredin and produced by Guru Studio (The Backyardigans, Guess with Jess, The New Adventures of Badou). Harold Harris (Clone High) is directing the series.
Related Topics:Brandon Scott, CGI, Clone High, Family Channel, Frank Falcone, Guess with Jess, Guru Studio, Harold Harris, iPad, iPhone, Justin Time, Licensing Challenge, Mary Bredin, Mip Junior, Squidgy, The Backyardigans, The New Adventures of Badou, zinc Roe design
More in Television
The racial representation controversy dragged into the spotlight by Hari Kondabolu's documentary The Problem with Apu...
By Ramin Zahed January 17, 2020
Syfy channel is launching a big push into original animation production, according to Deadline.com. NBCUniversal president...
Clip: Eugenio Derbez Lands in 'Casagrandes' Special "Operation Dad"
A loving cartoon family reconnects this month, when Nickelodeon debuts the brand-new, hour-hour The Casagrandes special...
Xilam's 'Mr. Magoo' Breaks into U.S. with DreamWorks Deal
Award-winning French animation studio Xilam Animation has secured a deal with DreamWorks Animation's Classic Media for...
Exclusive Clip: 'Arthur' Musical Special Hits the Road
A brand-new, one-hour musical Arthur special is arriving this month! "The Rhythm and Roots of Arthur"...
PGS and Method Showcase 3-D 'Chaplin' at MIPCOM
Teletoon at Night Announces Winning Toons


text:
Der Platz der Alten Synagoge in Freiburg im Breisgau ist mit seiner quadratischen Grundfläche von 130 × 130 Metern der zweitgrößte innerstädtische Platz nach dem Münsterplatz.

Der Platz erhielt 1996 den heutigen Namen nach der beim Novemberpogrom 1938 zerstörten Synagoge, die im Südwesten des heutigen Platzes 1869/1870 erbaut worden war.

Am Platz befindet sich das Stadttheater und das Kollegiengebäude II der Albert-Ludwigs-Universität. Im Süden, auf Höhe der Sedanstraße, schließt sich der Platz der Universität an, an dem sich das Kollegiengebäude I und die Universitätsbibliothek befinden.

Von ca. 1927 bis 1939 und nach 1945 bis in die 1980er Jahre trug die gesamte Fläche zwischen Bertold- und Belfort-Straße den Namen Werthmannplatz, bis der ehemalige Synagogen-Standort zum Europaplatz wurde. Der Platz der Universität hat seinen Namen seit dem Jahr 2007.

Im Zuge des Projekts Rotteckring wurde der Platz seit 2016 grundlegend umgestaltet. In der Nord-Süd-Achse wurde die bisher den Platz durchquerende Autostraße des Innenstadtrings durch eine Straßenbahntrasse und die bisherige Rasenfläche durch einen durchgehenden Bodenbelag ersetzt. Der neu gestaltete Platz wurde am 2. August 2017 eröffnet.

Geschichte

Bastionen, Rempart und Rempartstraße

Im 17. Jahrhundert wurde Freiburg im Auftrag des französischen Königs Ludwig XIV. durch Sébastien Le Prestre de Vauban zur Festung ausgebaut. In der Gegend des heutigen Platzes befanden sich die Bastion Dauphin (später Bastei St. Leopold) und ein Rempart, der sie mit der Bastion de la Reyne (später Bastei Kaiserin) und der ihr folgenden Kaiser-Bastei verband. An den Standorten der beiden letztgenannten befinden sich heute die Mensa der Universität und der Holzmarkt.

Bis zu ihrem Abzug am 29. April 1745 infolge des Friedens von Füssen sprengten die Franzosen den Großteil der Festungswerke, die Erdwerke verblieben jedoch als Schutthalden. Trotz einer Verdopplung der Einwohnerzahl in den folgenden Jahrzehnten, waren es erst der 1845 eröffnete, außerhalb der Altstadt erbaute Freiburger Bahnhof und die zunächst dort endende Bahnstrecke aus Offenburg, die zu einer westlichen Stadterweiterung über die ehemaligen Festungsgrenzen hinweg führten. Mit dem am 29. März 1846 von der Regierung des Oberrheinkreises genehmigten Entwurf des Bauverwalters Joseph Roesch, wurde der Weg frei zur Anlage neuer Straßen im Dorf Wiehre sowie zwischen Bahnhof und Altstadt.

Nach 1863 errichtete Ludwig Klehe, Eigentümer des Hammerwerkes Gaggenau, an der Kreuzung Bertholdstraße und spätere Rempartstraße auf dem Gelände der ehemaligen Leopold-Bastei eine Villa, in der 1869 auch Heinrich von Stein lebte.

Die ebenfalls 1863 gegründete Israelitische Religionsgesellschaft erwarb Endes des Jahrzehnts das spätere Grundstück Rempartstraße 15 gegenüber, um dort eine Synagoge zu errichten. Da das Bürgermeisteramt die Abtragung des Remparts zur Errichtung einer Straße plante, verpflichtete es die Gemeinde, die dadurch notwendigen Baumaßnahmen an der Synagoge, wie die Anlage von Böschungen, Treppen usw., selbst zu tragen. Von Herbst 1869 wurde innerhalb eines Jahres die Synagoge nach Plänen von Georg Jakob Schneider erbaut, der bereits die Pläne zum Colombischlössle (1859/1860) entworfen hatte, an dessen Standort sich die der Leopoldsbastion folgende Bastion Saint Louis (Bastei St. Josef) befunden hatte.

Das Gebäude südlich der Synagoge war 1777/1778 oder 1781 zunächst als vorderösterreichisches Garnisonlazarett anstelle des Häuserviertels "Fauler Pelz" erbaut und Anfang des 19. Jahrhunderts in ein Zuchthaus umgewandelt worden. 1868, noch vor Vollendung der späteren Justizvollzugsanstalt Freiburg, wurde es zur Rempartkaserne.

Passend zum Kasernennamen war bis zum Jahr 1866 aus Teilen der bereits 1810 im Freiburger Adressbuch genannten Ortsbezeichnung Rampart die Rempartstraße hervorgegangen. Der Großteil der Rempartstraße hatte sich jedoch im Bereich Beim Breisacher Tor befunden, dessen anderer Teil in die neue Gartenstraße integriert worden war. Gleichzeitig war aus der nach den ehemaligen Betreibern von Gymnasium und Universität benannten Jesuitengasse bis 1866 die Bertholdstraße geworden. Die Fortsetzung der Rempartstraße auf der gegenüber liegenden Seite der Bertholdstraße hieß bereits seit 1865 Rotteckstraße. Ab 1867 wurde das Areal, wie der Rest der Stadt, mit Hausnummern versehen, die in jeder Straße von vorn beginnen, anstatt der bisher über vier Stadtviertel fortlaufenden Nummerierung.

Werderstraße

Begünstigt durch den wirtschaftlichen Aufschwung nach der Reichsgründung und den gewonnenen Deutsch-Französische Krieg 1870/1871 wurden westlich der Rempartstraße mehrere Straßen angelegt, deren Namen sich noch heute auf diese Zeit beziehen. Sie wurden nach der Belagerung von Belfort, der Schlacht von Sedan, dem Generalfeldmarschall Helmuth von Moltke sowie dem deutschen Kaiser Wilhelm I. benannt. Die Rempartstraße selbst wurde teilweise zur Werderstraße. Diese nach dem preußischen General August von Werder benannte Straße wurde 1876 erbaut, um die Gartenstraßenbrücke (später durch die Friedrichs- und Kronenbrücke ersetzt) mit der Bertholdstraße zu verbinden, die 1869 einen Holzsteg über die Dreisam ersetzt hatte. Ebenfalls an den General erinnerte seit 1874 ein Denkmal an der ehemaligen Villa Klehe. Sie war um 1873 von Wilhelm August Platenius erworben worden, dem ersten Vorstand der 1870 gegründeten Deutschen Bank. Zudem war die Werderstraße, genauer der Alleegarten am Ort der ehemaligen Bastei Kaiserin, einer der verworfenen potenziellen Standorte für das 1876 enthüllte Siegesdenkmal, mit dem neben dem XIV. Armee-Korps ebenfalls Werder als dessen Anführer geehrt wurde.

Von 1872 bis 1874 entstand neben der Villa Platenius und der Sedanstraße nach Plänen von Heinrich Lang die Oberrealschule – das spätere Rotteck-Gymnasium Freiburg.

Anfang der 1880er-Jahre folgten auf dem Grundstück neben Rotteck-Gymnasium und Belfortstraße, gegenüber dem Alleegarten, zwei dreigeschossige Gebäude nach Plänen von Christoph Walter und Friedrich Jacobsen. Das Eckhaus, diente ab 1882 dem Stadtrat und Weinwirt Karl Thomann (1840–1904) erst als Café und Restaurant, bevor es Ende der 1880er-Jahre zum Hotel erweitert wurde.

Im Jahr 1885 übernahm Louis Sinner die Brauerei an der der Villa Platenius gegenüber liegenden Ecke Werder- und Bertholdstraße. Sie war Ende des 18. Jahrhunderts von Braumeister Fähndrich gegründet worden und hatte sich seit 1814 im Besitz der Familie Kuenzer befunden. 1887 erwarb Sinner zudem die Löwenbrauerei mit ihrem Stammsitz in der neben der Synagoge beginnenden Löwengasse. Er verschmolz die Betriebe zur Löwenbrauerei (Louis Sinner) AG, die er 1888 zusammen mit Karl Küchlin und Michael Hassler gründete, und errichtete im Stühlinger, bei einem Keller der Löwenbrauerei, eine gemeinsame Brauereianlage. Sinner wandelte die Felsenkeller Kuenzer'sche Brauerei in das Restaurant Löwenbräu um und erweiterte es um eine Gartenwirtschaft und einen Saalbau, der, ebenso wie der gesamte Komplex, spätestens ab 1900 auch als Sinnerhalle bezeichnet wurde.

Platenius verkaufte seine Villa 1896 an die Stadt und wurde im folgenden Jahr, über seinen Sohn Otto Platenius, zum Schwiegervater der späteren Abgeordneten Helene Platenius. Die Villa wurde 1905 abgerissen, um Platz für das 1910 eröffnete Stadttheater zu schaffen. Es war nach Plänen des Berliners Heinrich Seeling errichtet worden – dem "erfolgreichsten Theaterarchitekten seiner Zeit".

Die Rempartkaserne war nach Vollendung der Erbgroßherzog-Friedrich-Kaserne im Jahr 1895 ebenfalls an die Stadt übergegangen. Sie wurde 1906 für den Bau des späteren Kollegiengebäudes I der Universität abgerissen. Der 1911 eröffnete Bau war ursprünglich von Friedrich Ratzel geplant und nach dessen Tod von Hermann Billing vollendet worden. Die sich an das neue Kollegiengebäude anschließende Universitätsbibliothek (heute: Kollegiengebäude IV) in der Rempartstraße war bereits 1902 eröffnet wurden. Architekt hier war Carl Schäfer, der später Martins- und Schwabentor umgestaltete.

Billing war zudem bereits am 1906 eröffneten Park-Hotel Hecht beteiligt gewesen: Thomanns Nachfolger Gustav Hecht (Pächter ab 1891, Eigentümer ab 1899) hatte dafür 1905 das Nebengebäude Werderstraße 4 erworben, mit dem Eckhaus vereint und aufgestockt. Neben seinem Kollegen, dem Regierungsbaumeister Josef Mallebrein, hatte Billing in der Planung jedoch vermutlich nur eine kleine Rolle gespielt.

Werthmannplatz
Ab dem Jahr 1927 begann die Werderstraße, deren Anfang sich im Vorjahr noch an der Bertoldstraße befunden hatte, erst hinter dem Werthmannplatz. Dieser war inzwischen dem 1921 verstorbenen Caritasverband-Gründer Lorenz Werthmann gewidmet worden und verlief von der Bertold- bis zur Belfort-Straße. Bereits zum 1. Mai 1924 war das Park-Hotel Hecht an den Caritasverband verkauft worden, der es als Werthmannhaus zu seiner Zentrale gemacht machte.

Die bis 1931 eingelagerte Werder-Büste aus der Villa Platenius wurde im Alleegarten gegenüber aufgestellt.

Nationalsozialismus und Zweiter Weltkrieg

In einem Gipsmodell der Freiburger Stadtplanung unter Stadtbaumeister Joseph Schlippe aus dem Jahr 1937 ist die Synagoge nicht zu finden; stattdessen sollte die Werderstraße zu einem großen Aufmarschboulevard verbreitert und auf dem Synagogenareal nach Entfernung des Synagogenhügels ein hufeisenförmiges Universitätsgebäude errichtet werden.

Im folgenden Jahr, während der Reichspogromnacht vom 9. auf den 10. November 1938 setzten Freiburger SS- und SA-Mitglieder gegen 3 Uhr die Synagoge in Brand. Die Brandruine wurde am selben Tag durch SS und SA gesprengt und die Umfassungsmauern umgehend abgetragen. Trümmer der Synagoge sowie im Erdreich vorhandene Fundamentmauern verblieben zunächst auf dem Areal. Ebenfalls erhalten blieben die Außentreppen, die von Westen und Osten auf den Synagogenhügel geführt hatten, sowie damit verbundene Mauerreste.

Im März 1939 wurden Synagogenplatz und das verwüstete jüdische Gemeindehaus zwangsweise "arisiert" und gingen per Kaufvertrag mit dem Oberrat der Israeliten in das Eigentum der Stadt Freiburg über. Diese ließ 67.000 Reichsmark, abzüglich der Kosten für die Trümmerbeseitung, auf ein Sperrkonto überweisen. Schlippes Plan wurde während des Krieges nicht umgesetzt.

Im Freiburger Adressbuch von 1939 waren nur noch die geraden Hausnummern am Werthmannplatz genannt, also Rotteck-Schule und Caritasverband. In der folgenden Ausgabe gab es keinen Werthmannplatz mehr: der Deutsche Caritasverband saß fortan im Werthmannhaus in der Werderstr. 4, die Rotteck-Schule in der nun verlängerten Rotteckstraße 10.

Während des Zweiten Weltkriegs, besonders durch den britischen Luftangriff vom 27. November 1944, wurden die Gebäude auf dem Platz (ehemaliges jüdisches Gemeindehaus, Brauerei, Peterhof-Kaserne) und in dessen Nähe (Stadttheater, Universität, Rotteck-Gymnasium) erheblich beschädigt oder völlig zerstört. Anstelle des Biergartens befand sich ein Bombenkrater. Neben den Schäden am Universitätsgebäude wurden die Attikafiguren Wahrheit und Freiheit von Wilhelm Gerstel ebenso zerstört, wie der Kopf der Trauernden auf dem Universitäts-Kriegerdenkmal vom Arnold Rickert (1928).

Wiederaufbau
Mit dem Adressbuch von 1946 wurde der Platz vor dem Werthmannshaus wieder zum Werthmannplatz.

Am 1. Dezember 1948 schlossen Stadt und Land mit der Gemeinde einen Vergleich, nach dem die Stadt Eigentümerin des ehemaligen Synagogengeländes bleiben würde. Sie verpflichtete sich im Gegenzug zur Bezahlung der Wiederherstellung des jüdischen Friedhofs, der Ummauerung des Friedhofsareals sowie des Baus eines Wärterhauses mit Friedhofshalle.

Das Stadttheater wurde bis 1949 wiederaufgebaut. Die inzwischen zur höheren Bürgerschule gewordene Oberrealschule war bereits bis 1948 weitgehend wiederhergestellt worden, da dort die 1. Badische Industrie- und Gewerbeausstellung (BIGA) stattfand. Jedoch dauerte es bis 1950, die letzten Schäden zu beheben und die Einrichtung fertigzustellen.

Die Baumaßnahmen am Universitätsgebäude dauerten bis 1951. Im selben Jahr wurden die Trümmer der Synagoge sowie der Synagogenhügel bis zum Straßenniveau abgetragen. Parallel waren ab dem Winter 1947/1948 fünf einstöckige Behelfsläden zur Verbesserung der Versorgungslage von der Bertholdstraße bis hin zur Einmündung der Löwenstraße errichtet worden. Weitere fünf Behelfsläden lagen an der Bertholdstraße.

Der Vergleich zwischen jüdischer Gemeinde und der Stadt hatte zudem geregelt, dass das "Gelände nicht für Zwecke verwendet werden darf, die eine Profanierung darstellen könnten." Der Stadtrat beschloss am 9. Juli 1954 dass die Nutzung als Parkplatz mit dieser Vereinbarung vereinbar sei.

Universitätserweiterung
Im Rahmen eines großflächigen Grundstückstauschs erwarb das Land Baden-Württemberg von der Stadt zwischen 1950 und 1956 das an das Kollegiengebäude I (KG I) angrenzende Areal zwischen Bertoldstraße, Werderring und Löwenstraße (sowie den Peterhof), um dort im Laufe der nächsten Jahre zusätzliche Universitätsgebäude zu errichten. Die Universität gab dafür den Standort des früheren "Gymnasium Academicum" und der ersten Universitätsbibliothek (später Buchhandlung Rombach) auf. 1956 bis 1961 wurde das neue KG II errichtet, das der Karlsruher Architekt Otto Ernst Schweizer als dominierendes Gebäude des Areals entworfen hatte und dessen Westfassade parallel zu der des angrenzenden KG I, aber zurückgesetzt verläuft, sodass durch die etwa 100 Meter Abstand zum westlich gelegenen Stadttheater die heutige Platzfläche entstand. Die Buntsandsteinfassade nimmt das Material des KG I und des Freiburger Münsters auf. In der entstandenen nordöstlichen Platzecke vor dem KG II war ein runder Bewirtungspavillon der Löwenbrauerei Louis Sinners geplant, die weiterhin Eigentümerin dieses Areals war. Aus Kostengründen verzichtete sie im Januar 1961 auf den Bau, ließ die Baugrube zuschütten und verkaufte das Grundstück an die Universität.

Das Land Baden-Württemberg erwarb 1961, unter Beteiligung von Walter Müller, dem Leiter der südbadischen Bauverwaltung, für den Platz vor dem Neubau für 30.000 DM einen Neuguss der Plastik Reclining Figure (Liegende) vom Künstler Henry Moore. Entstanden war sie bereits 1953 als Folge von Moores Zeichnungen von Menschen, die im Zweiten Weltkrieg in der Londoner U-Bahn Schutz vor Bombenangriffen suchten. Sie wurde im Frühjahr 1961 vom Ministerpräsidenten Kurt Georg Kiesinger eingeweiht und sollte mit ihrer organisch-freien Form einen Kontrapunkt zur streng symmetrischen Fassade des KG II bilden. Sie war von ihrer Aufstellung an umstritten, sodass sie jahrelang in der Lokalpresse Thema blieb und Beinamen erhielt, wie "Emmentaler Venus" und "ornamentale Abortbrille". Geplanter Standort war eine zentrale Position nahe der Bertholdstraße, sie befand sich am Ende jedoch in der gegenüberliegenden Ecke zwischen KG II und KG I. Die Plastik hat inzwischen den Status eines eingetragenen Kulturdenkmals erhalten.

Anfang 1961 wurde auch die bis 2016 bestehende Form des Platzes mit eingefasster rechteckiger Rasenfläche angelegt. Die Behelfsläden hatten bis 1959, in einem Fall bis mindestens 1960 bestanden.

Die Stadtverwaltung plante zur Fertigstellung des neuen Kollegiengebäudes eine Bronzegedenktafel von Karl Rißler auf dem Rasen enthüllen zu können, die an das Schicksal der Synagoge erinnern soll. Jedoch verzögerte sich die Einigung zwischen Stadt und Universität, sodass die Gedenktafel erst am 11. November 1962 eingeweiht werden konnte. Am 9. November 1966 wurde die Gedenktafel ein zweites Mal enthüllt, jedoch auf einem Sockel. Wenig später wurde dieser mit einer Hecke umrandet.

Zwischen 1964 und 1965 wurde die Werderstraße in Werderring umbenannt.

1969 zog der Caritasverband und mit ihm der Name Werthmannhaus in den Neubau Karlstraße 40. Das Haus ging an die Universität. Ein Dachstuhlbrand im Jahr 1974 zerstörte den Eckturm des ehemaligen Wertmannhauses, der danach nicht wieder aufgebaut wurde.

1972 folgte der Abriss des benachbarten Rotteck-Gymnasiums, da es dem Neubau der Universitätsbibliothek im Wege stand. Gleichzeitig wurde das Rotteckdenkmal eingelagert, das sich seit 1937 in der Grünanlage nördlich des Gymnasiums, an der Ecke Rotteckring / Sedanstraße befunden hatte.
Im Jahr 1978 erwarb die Stadt Freiburg das Gelände vom Land Baden-Württemberg zum Bau einer Tiefgarage. Im Kaufvertrag verpflichtete sich die Stadtverwaltung, bei allen Änderungen am Platz eine schriftliche Genehmigung vom Vorstand der Israelitischen Gemeinde einzuholen.

1981 wurde das Rotteckdenkmal in der nordöstlichen Platzecke vor dem Kollegiengebäude II aufgestellt. 1983 stand auf der Wiese das Spiegelzelt des ersten Zelt-Musik-Festivals.

Europaplatz
1984 wurde der Platz zwischen Bertold- und Sedanstraße in Europaplatz umbenannt, während der Teil zwischen Sedan- und Belfortstraße den bisherigen Namen Werthmannplatz behielt.

1996 folgte die Umbenennung in Platz der Alten Synagoge – nach Ansicht von Kritikern, wie dem Kunsthistoriker Peter Kalchthaler "eine längst überfällige Maßnahme". Der frühere Name Europaplatz ging am 5. Mai 1997 im Beisein von Oberbürgermeister Rolf Böhme auf den Karlsplatz über. Inzwischen heißt er wieder Karlsplatz, da der Name Europaplatz spätestens 2001 auf den Platz vor der Neuen Messe übertragen worden war. 2018 wanderte der Name Europaplatz zum bis dahin namenlosen Platz am Siegesdenkmal und der vor der Messe wurde in Neuer Messplatz umbenannt.

Platz der Alten Synagoge

Im Jahr 2000 stellte die Künstlergruppe Büro für ungewöhnliche Maßnahmen einen gelben Wegweiser im Stil eines Verkehrszeichens auf, der die Aufschrift Gurs 1027 km trägt. Das erst nachträglich von der Stadtverwaltung genehmigte Mahnmal soll an die 1940 im Rahmen der Wagner-Bürckel-Aktion deportierten badischen Juden, darunter mehr als 400 aus Freiburg und näherer Umgebung erinnern. Ergänzt wurde das Verkehrshinweisschild durch eine Erklärungstafel. Vergleichbare Gurs-Mahnmale gibt es auch in anderen badischen und pfälzischen Städten; unter anderem in Mannheim, Bruchsal, Ludwigshafen und Neustadt an der Weinstraße.

Planungen zur Umgestaltung
Ende 2004 veranstaltete die Freiburger Stadtverwaltung an zwei Terminen eine "Planungswerkstatt Platz der Alten Synagoge", die Vorschläge und Konzepte einer Platzumgestaltung und Ideen zur künftigen Nutzung entwickeln sollte. Am 21. März 2006 beschloss der Freiburger Gemeinderat den Umbau des Platzes der Alten Synagoge und brachte die neue Platzgestaltung öffentlich zur Ausschreibung. Die Wettbewerbsteilnehmer waren aufgefordert, neben allgemein urbanen Bebauungskonzepten auch "das Thema 'Alte Synagoge' im Entwurf mit gestalterischen oder künstlerischen Mitteln aufzugreifen." Dabei sollte die "Erinnerung und Information zur Alten Synagoge und zum früheren bzw. heutigen jüdischen Leben in der Stadt" berücksichtigt werden und "der Bereich der Alten Synagoge in der Platzkonzeption eher einen ruhigeren Charakter erhalten, zugleich aber auch Ort der Begegnung ('Knesset') sein."

Der siegreiche Entwurf des Architekten und Stadtplaners Volker Rosenstiel und des Landschaftsarchitekten Martin Schedlbauer vom Landschaftsarchitekturbüro faktorgruen wurde in den Folgejahren noch mehrmals modifiziert. Der Platz sollte grundsätzlich in seiner Funktion als große Freifläche zwischen dem Stadttheater und der Universität erhalten bleiben. Da der Rotteckring mit der seinerzeitigen Verkehrsführung den zweitgrößten Platz der Stadt zerschnitten habe, sei dieser in seiner Gesamtheit nicht wahrgenommen worden. Deshalb sei aus Sicht der Stadt ein Umbau notwendig geworden, mit dem optisch die Flächen der aufgehobenen vierspurigen Straße und des Theatervorplatzes einbezogen werden. Die bestehenden Denkmäler sollten erhalten bleiben. Zusätzlich sollte ein Wasserbassin in Lage und Größe den exakten Grundriss der Alten Synagoge auf dem Platz nachzeichnen und an diese im Sinne einer Gedenkstätte symbolisch erinnern.

Ebenfalls im Frühjahr 2006 hatte das Universitätsbauamt Freiburg in Vertretung des Landes Baden-Württemberg einen begrenzt offenen Wettbewerb zur Neugestaltung der Universitätsbibliothek ausgelobt. Der umgesetzte siegreiche Entwurf eines fast vollständigen Neubaus durch des Basler Architekturbüro Degelo Architekten wurde im Oktober 2017 eröffnet.

Im Jahr 2007 wurde, anlässlich des Universitätsjubiläums, der verbleibende Teil des Werthmannplatzes in Platz der Universität umbenannt. Um Werthmann weiterhin mit einer Straße ehren zu können, wurde der Werderring in Werthmannstraße umbenannt.

Umbau

Als Bestandteil des Projekts "Stadtbahn und Umgestaltung Rotteckring" haben die Arbeiten 2012 mit der Sperrung des Rotteckrings begonnen und waren 2018 abgeschlossen. In seiner Sitzung am 10. Dezember 2013 beschloss der Gemeinderat weitere Änderungen an dem sieben Jahre alten Plan, die auf Kritik der Freiburger Architektenkammer stießen. Nachdem bereits 2010 der Informationspavillon durch Bäume zur Beschattung des Platzes ersetzt wurde, sollte nun der Umbau des Theatervorplatzes eingespart und an Stelle des geplanten Wasservorhangs das urban gardening weitergeführt werden. Zur weiteren Verbesserung des Mikroklimas war geplant, in der Mitte des Platzes einen Wassersprudler zu installieren. Am 18. April 2016 erfolgte der offizielle Spatenstich für den Umbau des Platzes. Kurz darauf wurden Gleise für die Straßenbahn verlegt und an das bestehende Gleisnetz in der Bertoldstraße angeschlossen. Wegen des Theatervorplatzes und der direkt nördlich an die Kreuzung angrenzenden neuen Haltestelle konnte ein direkter Gleisbogen zwischen der Stadtbahn Rotteckring und der Ost-West-Achse nur für die Relation Erbprinzenstraße–Bertoldsbrunnen realisiert werden. Das Rotteckdenkmal wurde erneut eingelagert und die Liegende wurde im Inneren des Kollegiengebäudes II aufgestellt. Die Synagogengedenktafel lag vorübergehend vor der neuen Synagoge in der Engelstraße und wurde in den Brunnen am alten Standort integriert.

Ende September 2016 wurden bei den Erdarbeiten für den Synagogen-Grundriss-Brunnen Fundamentreste des jüdischen Gotteshauses gefunden. Es folgte eine öffentliche Debatte über eine Planänderung zum sichtbaren Erhalt der Steine. Sie wurde durch einen Gemeinderatsbeschluss am 15. November 2016 offiziell beendet, in dessen Folge ab Mitte November die verbliebenen Mauerfragmente mit Geotextil abgedeckt und mit Erde verfüllt wurden, um die Fundamentierung des Wasserbassins vorzubereiten; bereits Anfang November waren einige der freigelegten Steinreihen abgetragen worden. Bis Frühjahr 2018 soll in einem Moderationsverfahren der Umgang mit den Steinen festgelegt werden. 40 000 Euro sind dafür sind für zwei Jahre bewilligt worden.

Im Untergrund wurde eine Brunnenstube angelegt. Im März 2017 wurden auf dem Platz eine Platane – für eine beim Umbau beschädigte und gefällte – und neun Lederhülsenbäume gepflanzt. Sie erhielten ein unterirdisches Bewässerungssystem. Ursprünglich war die Bepflanzung mit Purpur-Erlen (Alnus spaethii) geplant, wovon jedoch wegen erhöhtem Allergierisiko Abstand genommen wurde. Da die Arbeiten schneller vorangingen als geplant, konnte der Platz – drei Monate früher als geplant – bereits am 2. August 2017 offiziell eingeweiht werden. Zwischen den 3000 Granitplatten, die aus einem Steinbruch im Bayerischen Wald kamen, sind auf dem Platz 12 Wasserdüsen installiert, die 1,5 Meter hohe Wasserfontänen sprühen können. Die hölzernen Sitz- und Liegepodeste um die großen Bäume herum waren ursprünglich nicht vorgesehen. Weil die einstige Wiese mit ihrer Sandsteinmauer einen halben Meter höher lag, liegen die Baumwurzeln über dem Platzniveau. Es ist "die größte nichtkommerzielle Sitzfläche in der Innenstadt", so der Leiter des Garten- und Tiefbauamtes Frank Uekermann. Rund 30 Tonnen Gewicht kann der Platz tragen. Allerdings ist das Problem der Fahrradabstellplätze noch nicht gelöst. Die Kosten für die Umgestaltung blieben bei 9,4 Millionen Euro. Gegen Ende Juli begann schon der Testlauf für den Gedenkbrunnen, der eine spiegelglatte Wasseroberfläche zeigte.

Am südlichen Ende des Platzes fehlen noch die Granitplatten, denn zwischen dem Synagogenbrunnen und dem Kollegiengebäude I ist die Baustellenzufahrt für die Sanierung des Kollegiengebäudes II zum Platz der Weißen Rose. Erst danach sollen sie verlegt werden.

Als Anfang 2018 das beim Umbau des Platzes entfernte Gurs-Mahnmal (das "Verkehrsschild") mit Erklärungstafel wieder aufgestellt werden sollte, gab es Meinungsverschiedenheiten über den Standort. Während die Stadtverwaltung es an der Südwestecke des Platzes in der Nähe des Gedenkbrunnens aufstellen wollte, bevorzugten andere den alten Standort an der Bertoldstraße. Ende März 2018 wurde das Gurs-Mahnmal schließlich an einem Laternenmast westlich des Gedenkbrunnens angebracht und die erläuternde Texttafel in die Steinplatte darunter eingelassen.

Nutzung
Da die hellen Granitplatten durch die intensive Nutzung schnell verschmutzen, hat die Stadtreinigung schon kurz nach der Eröffnung für 350.000 Euro ein spezielles Reinigungsfahrzeug angeschafft, das mit Dampf aus nanofiltriertem Wasser den Platz reinigt.

Weil immer wieder Menschen den Brunnen als Planschbecken missbrauchen, wurden im November 2017 zwei Informationsstelen aufgestellt, die über die frühere Synagoge informieren und um angemessenes Verhalten bitten. Weil diese Maßnahme wenig Wirkung zeigte, gab die Stadt im April 2019 einen Maßnahmenkatalog bekannt. Nach dem wurden im August 2019 an acht Stellen um den Brunnen Tafeln mit Piktogrammen installiert, die verdeutlichen sollen, wie man sich respekt- und würdevoll verhält. Anfang November 2020 kam mit dem Zonierungsband ein 96 Meter langes bronzenes Band in einem Rechteck mit einigem Abstand zum Brunnen hinzu. Es soll nachts beleuchtet werden. Das reliefartige Band aus einer Kunstgießerei enthält die Worte "Erinnere Dich" in acht Sprachen (Deutsch, Hebräisch, Englisch, Französisch, Italienisch, Spanisch, Arabisch und Russisch). Eine digitale Informationsstele soll folgen. Die beiden jüdischen Gemeinden sind geteilter Meinung zu dem Vorhaben. Seit Dezember steht ein bronzenes Modell der Synagoge, wie sie vor der Zerstörung in der Reichspogromnacht Jahr 1938 ausgesehen hat am Brunnen. Geschaffen hat es der Künstler und Steinmetz Tobias Eder. Auf dem Sockel des Modells ist die Inschrift "Denn mein Haus wird ein Haus des Gebets für alle Völker genannt werden, Jesaja 56,7" auf Deutsch, Hebräisch, Englisch und Französisch zu lesen. Das Zitat stand in ähnlicher Form an dem Eingang der alten Synagoge.

Seit im Frühjahr 2019 der Rotteckring fertiggestellt wurde und die Stadtbahn fährt, fahren immer wieder Kraftfahrzeuge verbotenerweise über den Platz der Alten Synagoge, der Fußgängerzone ist. Der Gemeindevollzugsdienst kontrolliert und stellt Verwarnungen aus. Auch ein mobiler Blitzer wurde schon eingesetzt.

Platz der zerstörten Synagoge?
Der Historiker Bernd Martin, Vorsitzender der Kommission zur Überprüfung der Freiburger Straßennamen, schlug 2016 vor, dem Platz den Namen "Platz der zerstörten Synagoge" zu geben, was auf Zustimmung von Oberbürgermeister Dieter Salomon stieß.

Im Juli 2017 berief sich die SPD-Fraktion des Freiburger Gemeinderates auf diesen Vorschlag und stellte in einem Brief an den Oberbürgermeister den entsprechenden Antrag, den "Platz der Alten Synagoge" in "Platz der zerstörten Synagoge" umzubenennen. Der bisherige Platzname erwecke den Anschein, so die SPD-Stadträte, "dass an jenem Platz ein aus welchen Gründen auch immer nicht mehr benötigtes Gotteshaus gestanden habe"; die "euphemistische bisherige Benennung täuscht darüber hinweg, was tatsächlich geschah, nämlich die Zerstörung des Gotteshauses der jüdischen Bevölkerung Freiburgs als Teil des Vernichtungszuges des nationalistischen Deutschen Reiches". Im Gegensatz zu Salomon und der Mehrheit des Gemeinderates sprach sich die jüdische Gemeinde gegen eine Umbenennung aus.

Am 18. September 2017 beschloss der Hauptausschuss des Gemeinderates, den Vorschlag einer Platzumbenennung nicht weiter zu verfolgen.

Literatur
 Stadt Freiburg im Breisgau (Hrsg.): Begrenzt offener Realisierungswettbewerb – Rotteckring, Platz der Alten Synagoge (Dokumentation der Wettbewerbsergebnisse). Müller-Abele, Stutensee, ca. 2007.

Einzelnachweise

Weblinks

 Audioguide Platz der Alten Synagoge

Judentum in Freiburg im Breisgau
Alte Synagoge
Freiburg


text:
copyright:
  years: 2015, 2016

---

{:new_window: target="_blank"}
{:shortdesc: .shortdesc}
{:screen: .screen}
{:codeblock: .codeblock}
{:pre: .pre}

# Python for application developers
{: #python}

For more information, see:

-  The [iot-python](https://github.com/ibm-messaging/iot-python) repository in GitHub.
-  The [ibmiotf](https://pypi.python.org/pypi/ibmiotf) repository on PyPi.

## Constructor
{: #constructor}

The constructor builds the client instance and accepts an options dict that contains the following definitions:

| Definition     |Description     |
|----------------|----------------|
|``orgId``   |Your organization ID
|``appId``   |The unique ID of an application in your organization|
|``auth-method``   |A method of authentication in which the only value that is currently supported is ``apikey``)|
|``auth-key``   |An optional API key, which is required when auth-method is set to ``apikey``|
|``auth-token``   |An API key token, which is required when auth-method is set to ``apikey``|

If no options dict is provided, the client connects to the {{site.data.keyword.iot_full}} Quickstart service as an unregistered device. The options dict creates definitions that are used to interact with the {{site.data.keyword.iot_full}} module.

```

    import ibmiotf.application
    try:
      options = {
        "org": organization,
        "id": appId,
        "auth-method": authMethod,
        "auth-key": authKey,
        "auth-token": authToken
      }
      client = ibmiotf.application.Client(options)
    except ibmiotf.ConnectionException  as e:
      ...
```

### Using a configuration file

If you are not using an options dict, you must include a configuration file that contains an options dict that is in the following code format:

```

    import ibmiotf.application
    try:
      options = ibmiotf.application.ParseConfigFile(configFilePath)
      client = ibmiotf.application.Client(options)
    except ibmiotf.ConnectionException  as e:
      ...
```
The application configuration file must also be in the following format:

```

    [application]
    org=$orgId
    id=$myApplication
    auth-method=apikey
    auth-key=$key
    auth-token=$token

```

## API calls
{: #api_calls}

Each method in the API client responds with either a valid JSON or boolean response in the case of success or IoTFCReSTException in the case of failure. The IoTFCReSTException contains the following properties, which an application can parse to get more information about the failure:

* httpcode - HTTP Status Code
* message - Exception message that contains the reason for the failure
* response - JsonElement that contains the partial response, if any, otherwise, it is null

In the event of failure, the application needs to parse the response to deterimine whether the action is partially successful.

## Subscribing to device events
{: #subscribe_device_events}

Events are the mechanism by which devices publish data to the {{site.data.keyword.iot_short_notm}} instance. The device controls the content of the event and assigns a name for each event that it sends.

When an event is received by the {{site.data.keyword.iot_short_notm}} instance, the credentials of the received event identify the sending device, which prevents a device from impersonating another device.

By default, applications subscribe to all events from all connected devices. Use the type, ID, event, and msgFormat parameters to control the scope of the subscription. A single client can support multiple subscriptions. The following code samples provide examples of how to subscribe to devices that are dependent on device type, ID, event, and msgFormat parameters.

### Subscribing to subscribe to all events from all devices

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    client.subscribeToDeviceEvents()
```

### Subscribing to all events from all devices of a specific type

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    client.subscribeToDeviceEvents(deviceType=myDeviceType)
```

### Subscribing to a specific event from all devices

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    client.subscribeToDeviceEvents(event=myEvent)
```

### Subscribing to a specific event from two or more different devices

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    client.subscribeToDeviceEvents(deviceType=myDeviceType, deviceId=myDeviceId, event=myEvent)
    client.subscribeToDeviceEvents(deviceType=myOtherDeviceType, deviceId=myOtherDeviceId, event=myEvent)
```
### Subscribing to all events that are published in JSON format by a device

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    client.subscribeToDeviceEvents(deviceType=myDeviceType, deviceId=myDeviceId, msgFormat="json")
```

## Handling events from devices
{: #handling_events_devices}

To process the events that are received by your subscriptions, you need to register an event callback method. The messages are returned as an instance of the Event class:

* event.device - string (uniquely identifies the device across all types of devices in the organization)
* event.deviceType - string
* event.deviceId - string
* event.event - string
* event.format - string
* event.data - dict
* event.timestamp - datetime

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    def myEventCallback(event):
      str = "%s event '%s' received from device [%s]: %s"
      print(str % (event.format, event.event, event.device, json.dumps(event.data)))

    ...
    client.connect()
    client.deviceEventCallback = myEventCallback
    client.subscribeToDeviceEvents()
```

## Subscribing to device status
{: #subscribe_device_status}

By default, when you subscribe to device status, status updates are received for all connected devices. Use the type and ID parameters to control the scope of the subscription. A single client can support multiple subscriptions.

### Subscribing to status updates for all devices

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    client.subscribeToDeviceStatus()
```

### Subscribing to status updates for all devices of a specific type

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    client.subscribeToDeviceStatus(deviceType=myDeviceType)
```

### Subscribing to status updates for two different devices

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    client.subscribeToDeviceStatus(deviceType=myDeviceType, deviceId=myDeviceId)
    client.subscribeToDeviceStatus(deviceType=myOtherDeviceType, deviceId=myOtherDeviceId)
```

## Handling status updates from devices
{: #handling_device_updates}

To process the status updates that are received by your subscriptions, you need to register an event callback method. The messages are returned as an instance of the Status class.

The following properties are set for both "Connect" and "Disconnect" status events:

* status.clientAddr - string
* status.protocol - string
* status.clientId - string
* status.user - string
* status.time - datetime
* status.action - string
* status.connectTime - datetime
* status.port - integer

The following properties are only set when the action is "Disconnect":

* status.writeMsg - integer
* status.readMsg - integer
* status.reason - string
* status.readBytes - integer
* status.writeBytes - integer

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    def myStatusCallback(status):
      if status.action == "Disconnect":
        str = "%s - device %s - %s (%s)"
        print(str % (status.time.isoformat(), status.device, status.action, status.reason))
      else:
        print("%s - %s - %s" % (status.time.isoformat(), status.device, status.action))

    ...
    client.connect()
    client.deviceStatusCallback = myStatusCallback
    client.subscribeToDeviceStstus()
```

## Publishing events from devices
{: #publishing_device_events}

Applications can publish events that originated from a device.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    myData={'name' : 'foo', 'cpu' : 60, 'mem' : 50}
    client.publishEvent(myDeviceType, myDeviceId, "status", "json", myData)
```

## Publishing commands to devices
{: #publishing_commands_devices}

Applications can publish commands to connected devices.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    client.connect()
    commandData={'rebootDelay' : 50}
    client.publishCommand(myDeviceType, myDeviceId, "reboot", "json", myData)
```

## Organization details
{: #org_details}

Applications can use the ``getOrganizationDetails()`` method to retrieve the details about the configuration of the organization.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    try:
        orgDetail = client.api.getOrganizationDetails()
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)
```

For information about the request & response model and the HTTP status code, see the Organization Configuration section of the [{{site.data.keyword.iot_short_notm}} API](https://docs.internetofthings.ibmcloud.com/swagger/v0002.html).

## Bulk device operations
{: #bulk_device_ops}

Applications can use bulk operations to get, add, or remove multiple devices simultaneously.

For information about the list of query parameters, the request & response model, and http status code, see the Bulk Operations section of the [{{site.data.keyword.iot_short_notm}} API](https://docs.internetofthings.ibmcloud.com/swagger/v0002.html#!/Bulk_Operations/).

### Retrieving device information

Bulk device information can be retrieved by using the ``getAllDevices()`` method. This method retrieves information on all registered devices in the organization. Each request can contain a maximum of 512KB.

The response contains parameters that are required by the application to retrieve the dictionary *results* from the response to get the array of devices returned. Other parameters in the response are required to make further calls, for example, the ``_bookmark`` element can be used to page through results. Issue the first request without specifying a bookmark, then take the bookmark that is returned in the response and provide it on the request for the next page. Repeat until the end of the result set is indicated by the absence of a bookmark. Each request must use exactly the same values for the other parameters, otherwise the results are undefined.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    try:
        deviceList = client.api.getAllDevices()
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)

```
### Adding multiple devices

The ``addMultipleDevices()`` method can be used to add one or more devices to your {{site.data.keyword.iot_short_notm}} organization. A request must be no larger than 512KB. The response contains the authentication tokens that were generated for each device. Ensure that you make a copy of the authentication tokens, because if you lose the authentication tokens, they cannot be retrieved.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    listOfDevicesToAdd = [
        {'typeId' : "pi-model-a", 'deviceId' : '200020002004'},
        {'typeId' : "pi-model-b", 'deviceId' : '200020002005'}
    ]

    try:
        deviceList = client.api.addMultipleDevices(listOfDevicesToAdd)
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)
```

### Deleting multiple devices

The ``deleteMultipleDevices()`` method can be used to delete multiple devices from a {{site.data.keyword.iot_short_notm}}
organization. A request must be no larger than 512KB.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    listOfDevicesToDelete = [
        {'typeId' : "pi-model-a", 'deviceId' : '200020002004'},
        {'typeId' : "pi-model-b", 'deviceId' : '200020002005'}
    ]

    try:
        deviceList = client.api.deleteMultipleDevices(listOfDevicesToDelete)
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)
```

## Device type operations
{: #device_type_ops}

The device types that you create in your organization can be used to create templates for adding devices. By using the {{site.data.keyword.iot_short_notm}} API features, your applications can list, create, delete, view, or update device types in your organization.

For information about query parameters, the request & response model, and HTTP status codes, see the 'Device types' section of the [IBM {{site.data.keyword.iot_short_notm}} API](https://docs.internetofthings.ibmcloud.com/swagger/v0002.html) documentation.

### Retrieving all device types

You can use the ``getAllDeviceTypes()`` method to retrieve all the device types that are in your {{site.data.keyword.iot_short_notm}} organization.
The response contains parameters that are required by the application to retrieve the dictionary *results* from the response to get the array of devices returned. Other parameters in the response are required to make more calls, for example, the ``_bookmark`` element can be used to page through results. Issue the first request without specifying a bookmark, then take the bookmark that is returned in the response and provide it on the request for the next page. Repeat this process until the end of the result set, which is indicated by the absence of a bookmark. Each request must use exactly the same values for the other parameters, or the results will be undefined.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    listOfDevicesToAdd = [
        {'typeId' : "pi-model-a", 'deviceId' : '200020002004'},
        {'typeId' : "pi-model-b", 'deviceId' : '200020002005'}
    ]

    try:
        options = {'_limit' : 2}
        deviceTypeList = client.api.getAllDeviceTypes(options)
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)

```
### Adding a device type

The ``addDeviceType()`` method can be used to register a device type to your {{site.data.keyword.iot_short_notm}} instance. In each request, you must first define the device information and the device metadata elements that you want to be applied to all devices of this type. The device information element is comprised of several variables, which include serial number, manufacturer, model, class, description, firmware, hardware versions, and descriptive location. The metadata element is comprised of custom variables and values, which can be defined by the user.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    info = {
        "serialNumber": "100087",
        "manufacturer": "ACME Co.",
        "model": "7865",
        "deviceClass": "A",
        "description": "My shiny device",
        "fwVersion": "1.0.0",
        "hwVersion": "1.0",
        "descriptiveLocation": "Office 5, D Block"
    }
    meta = {
        "customField1": "customValue1",
        "customField2": "customValue2"
    }

    try:
        deviceType = client.api.addDeviceType(deviceType = "myDeviceType", description = "My first device type", deviceInfo = info, metadata = meta)
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)
```

### Deleting a device type

The ``deleteDeviceType()`` method can be used to delete a device type from your {{site.data.keyword.iot_short_notm}} organization.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    try:
        success = client.api.deleteDeviceType("myDeviceType")
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)
```

### Retrieving information for specific device types

Use the ``getDeviceType()`` method to retrieve information for a specific device type. The ``typeId`` of the device type that you want to retrieve must be specified as a parameter.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    try:
        deviceTypeInfo = client.api.getDeviceType("myDeviceType")
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)
```

### Updating a device type

Use the ``updateDeviceType()`` method to modify the properties of a device type. When you use this method, you must first specify the ``typeId`` of the device type to be updated, and then specify the ``description``, ``deviceInfo``, and ``metadata`` elements.

```

    import ibmiotf.application

    options = ibmiotf.application.ParseConfigFile(configFilePath)
    client = ibmiotf.application.Client(options)

    info = {
        "serialNumber": "100087",
        "manufacturer": "ACME Co.",
        "model": "7865",
        "deviceClass": "A",
        "description": "My shiny device",
        "fwVersion": "1.0.0",
        "hwVersion": "1.0",
        "descriptiveLocation": "Office 5, D Block"
    }
    meta = {
        "customField1": "customValue1",
        "customField2": "customValue2",
        "customField3": "customValue3"
    }

    try:
        updatedDeviceTypeInfo = client.api.updateDeviceType("myDeviceType", "New description", deviceInfo, metadata)
    except IoTFCReSTException as e:
        print("ERROR [" + e.httpcode + "] " + e.message)
```

## Device operations
{: #device_ops}

Device operations that are available in the API include listing, adding, removing, viewing, updating, viewing location, and viewing device management information of devices in a
 {{site.data.keyword.iot_short_notm}} organization.

For information about the query parameters, the request & response model, and the HTTP status code, see the 'Device section' of the [{{site.data.keyword.iot_short_notm}} API](https://docs.internetofthings.ibmcloud.com/swagger/v0002.html).

### Retrieving devices of a particular device type

The *retrieveDevices()* method can be used to retrieve all the devices of a particular device type in an organization in a {{site.data.keyword.iot_short_notm}} instance, which is outlined in the following example:

```

     print("\nRetrieving All existing devices")
     print("Retrieved Devices = ", apiCli.retrieveDevices(deviceTypeId))
```

The response contains the parameters and application that are needed to retrieve the dictionary *results* from the response to get the array of devices returned. Other parameters in the response are required to make more calls. For example, the *_bookmark* element can be used to page through results. Issue the first request without specifying a bookmark, then take the bookmark that is returned in the response and provide it on the request for the next page. Repeat until the end of the result set, which is indicated by the absence of a bookmark. Each request must use exactly the same values for the other parameters, or the results are undefined.

In order to pass the *_bookmark* or any other condition, the overloaded method must be used. The overloaded method takes the parameters in the form of a dictionary, which is shown in the following example:

```
    response = apiClient.retrieveDevices("iotsample-ardunio", parameters);
```

The previous code sample sorts the response based on device ID and then uses the bookmark to page through the results.

### Adding a device

The *registerDevice()* method is used to add a device to a {{site.data.keyword.iot_short_notm}} organization. The *registerDevice()* method adds a single device to your {{site.data.keyword.iot_short_notm}} organization. You can specify the following parameters when you add a device:

- deviceTypeId: *Optional*. Assigns a device type to the device. If there is a conflict between the variables that are defined by the device type and the variables that are defined by deviceInfo, the device-specific variables will take precedence.
- deviceId: *Mandatory*.
- authToken: *Optional*. If no authentication token is supplied, one will be generated and included in the response.
- deviceInfo: *Optional*. This parameter can contain a number of variables including serialNumber, manufacturer, model, deviceClass, description, firmware and hardware versions, and descriptiveLocation.
- metadata: *Optional*. Metadata can be added in the form of custom field:value string pairs. An example is given in the next code sample on this page.
- location: *Optional*. This parameter contains the longitude, latitude, elevation, accuracy, and mesauredDateTime variables.

For more information on these parameters, and the response format and codes, see the [API documentation](https://docs.internetofthings.ibmcloud.com/swagger/v0002.html#!/Devices/post_device_types_typeId_devices).

When you use the *registerDevice()* method, you must define the mandatory deviceID parameter and any of the optional parameters that you require for your device and then call the method by using the parameters that you selected.

### Sample code for adding a device type

Insert the following code after the constructor code in a .py file. The sample demonstrates a method for adding a device type by defining the deviceId, authToken, metadata, deviceInfo, and location parameters.

```

    deviceId = "200020002000"
    authToken = "password"
    metadata = {"customField1": "customValue1", "customField2": "customValue2"}
    deviceInfo = {"serialNumber": "001", "manufacturer": "Blueberry", "model": "abc1", "deviceClass": "A", "descriptiveLocation" : "Bangalore", "fwVersion" : "1.0.1", "hwVersion" : "12.01"}
    location = {"longitude" : "12.78", "latitude" : "45.90", "elevation" : "2000", "accuracy" : "0", "measuredDateTime" : "2015-10-28T08:45:11.662Z"}

    apiCli.registerDevice(deviceTypeId, deviceId, metadata, deviceInfo, location)
```
### Deleting a device

Use the *deleteDevice()* method to remove a device from an organization on the {{site.data.keyword.iot_short_notm}} organization. When you delete a device by using the *deleteDevice()* method, you must specify the deviceTypeId and deviceId parameters.

The following code sample outlines the format that is required for this method:

```
    apiCli.deleteDevice(deviceTypeId, deviceId)
```

### Getting a device

Use the *getDevice()* method to remove a device from an organization on the {{site.data.keyword.iot_short_notm}}. When you retrieve device details using the *getDevice()* method, you must specify the deviceTypeId and deviceId parameters

The following code sample provides an outline of the format that is required for this method:

```
	  apiCli.getDevice(deviceTypeId, deviceId)
```

### Retrieving all devices

Use the *getAllDevices()* method to retrieve all devices that are in an organization on the {{site.data.keyword.iot_short_notm}}.

```
	  apiCli.getAllDevices({'typeId' : deviceTypeId})
```

### Updating a service

Use the *updateDevice()* method to modify one or more properties of a device. Any property in the deviceInfo or metadata parameters can be updated. In order to update a device property, it must be defined above the method. The status parameter should contain "alert": True. The ``alert``property controls whether a device displays error codes in the {{site.data.keyword.iot_short_notm}} user interface. By default, the ``enabled`` property is set to true.

```
    status = { "alert": { "enabled": True }  }
    apiCli.updateDevice(deviceTypeId, deviceId, metadata2, deviceInfo, status)
```

### Sample code for updating ``deviceInfo`` properties

The following code sample identifies a specific device and then updates several properties under the deviceInfo parameter.

```

	  status = { "alert": { "enabled": True } }
	  deviceInfo = {descriptiveLocation: "London", hwVersion: "2.0.1", fwVersion: "2.5.1"}
    apiCli.updateDevice("MyDeviceType", "200020002000", deviceInfo, status)
```

### Retrieving location information

The *getDeviceLocation()* method can be used to retrieve the location information of a device. The parameters that are required for retrieving the location data are deviceTypeId and deviceId.

```

	  apiClient.getDeviceLocation("iotsample-ardunio", "ardunio01")
```

The response to this method contains the longitude, latitude, elevation, accuracy, measuredTimeStamp, and updatedTimeStamp properties.

### Updating location information

Use the *updateDeviceLocation()* method to modify the location information for a device. Similar to updating device properties, the deviceLocation parameter must be defined with the changes you wish to apply. The following code sample demonstrates changing the location data for a given device:

```

    deviceLocation = { "longitude": 0, "latitude": 0, "elevation": 0, "accuracy": 0, "measuredDateTime": "2015-10-28T08:45:11.673Z"}
    apiCli.updateDeviceLocation(deviceTypeId, deviceId, deviceLocation)
```

If a date is not supplied, the current date and time is used.

### Get management information

Use the *getDeviceManagementInformation()* method to get the device management information for a device. The response contains the last activity date-time, the device's dormant status (true/false), support for device and firmware actions, and firmware data. For a comprehensive list of response content, see the relevant API documentation.

The following code sample returns the device management information for a device thta has the deviceId "00aabbccde03" and the deviceTypeId "iotsample-arduino".

```
    apiCli.getDeviceManagementInformation("iotsample-arduino", "00aabbccde03")
```

## Device diagnostic operations
{: #device_diag_ops}

Applications can use device diagnostic operations to clear logs, retrieve all or specific logs for a device, add log information, delete logs, clear error codes, get device error codes, and add error codes.

For more detailed information on query and response models, response codes, and query parameters, see the {{site.data.keyword.iot_short_notm}} API documentation.

### Get diagnostic logs

Use the *getAllDiagnosticLogs()* method to retrieve all diagnostic logs for a specific device. The *getAllDiagnosticLogs()* method requires the deviceTypeId and deviceId parameters.

```

    apiCli.getAllDiagnosticLogs(deviceTypeId, deviceId)
```

The response model for this method contains the logId, message, severity, data, and timestamp.

### Clearing diagnostic logs for a device

Use the *clearAllDiagnosticLogs()* method to delete all diagnostic logs for a specific device. The required parameters are deviceTypeId and deviceId. Be careful when deleting log files, because they cannot be recovered after they are deleted.

```

    apiCli.clearAllDiagnosticLogs(deviceTypeId, deviceId)
```

### Adding a diagnostic log

Use the *addDiagnosticLog()* method to add an entry in the diagnostic log of the device. The log can be pruned when the new entry is added. If no date is supplied, the current date and time are added to the entry. To use this method, you need to define a 'logs' parameter that has the following variables:

- message: This variable is mandatory, and contains the new diagnostic message.
- severity: This variable is optional. If used, the value corresponds to the severity of the diagnostic log and should be 0, 1, or 2, which corresponds with the informational, warning, and error categories.
- data: This variable is optional and contains diagnostic data.
- timestamp: This variable is optional and contains the date and time of the log entry in ISO8601 format. If this variable is not included, the current date and time are used.

The other parameters that are required in the method are the deviceTypeId and deviceId values for the device.

The following code sample contains an example of the *addDiagnosticLog()* method.

```
    logs = { "message": "MessageContent", "severity": 0, "data": "LogData"}
    apiCli.addDiagnosticLog(deviceTypeId, deviceId, logs)
```

### Retrieving a specific diagnostic log

Use the  *getDiagnosticLog()* method to retrieve a specific diagnostic log for a specified device based on the log ID. The required parameters for this method are deviceTypeId, deviceId, and logId.

```
    apiCli.getDiagnosticLog(deviceTypeId, deviceId, logId)
```

### Deleting a diagnostic log

Use the *deleteDiagnosticLog()* method to delete a specific diagnostic log. In order to specify a diagnostic log, the deviceTypeId, deviceId, and logID parameters must be supplied.

```

	  apiCli.deleteDiagnosticLog(deviceTypeId, deviceId, logId)
```

### Retrieving device error codes

Use the *getAllDiagnosticErrorCodes()* method to retrieve all diagnostic error codes that are associated with a specific device.

```

	  apiCli.getAllDiagnosticErrorCodes(deviceTypeId, deviceId)
```

### Clear diagnostic error codes

Use the *clearAllErrorCodes()* method to clear the list of error codes that are associated with the device. The list is replaced with a single error code of zero.

```

    apiCli.clearAllErrorCodes(deviceTypeId, deviceId)
```

### Adding a single diagnostic error code

The *addErrorCode()* method is used to add an error code to the list of error codes that are associated with the device. The list can be pruned when the new entry is added. The parameters that are required in the method are deviceTypeId, deviceId, and errorCode. The errorCode parameter contains the following variables:

- errorCode: This variable is mandatory and should be set as an integer. This variable sets the number of the error code that is created.
- timestamp: This variable is optional and contains the date and time of the log entry in ISO8601 format. If this variable is not included, the timestamp is automatically added with the current date and time.

```

    errorCode = { "errorCode": 1234, "timestamp": "2015-10-29T05:43:57.112Z" }
    apiCli.addErrorCode(deviceTypeId, deviceId, errorCode)
```

## Connection problem determination
{: #connection_problem_determination}

Use the *getDeviceConnectionLogs()* method to list connection log events for a device. Connection log events can be used to help diagnose connectivity problems between the device and the {{site.data.keyword.iot_short_notm}} service. The entries record successful connections, unsuccessful connection attempts, intentional disconnections, and server-initiated disconnection events.

```

	  apiCli.getDeviceConnectionLogs(deviceTypeId, deviceId)
```

The response includes a list of log entries, which contain log messages and time stamps.

## Historical event retrieval
{: #historical_event_retrieval}

The historical event retrieval operations that are described in this section can be used to view events from all devices, view events from a device type, or to view events for a specific device.

For information about the query parameters, the request & response model, and HTTP status codes, see the Historical event retrieval section of the [{{site.data.keyword.iot_short_notm}} API](https://docs.internetofthings.ibmcloud.com/swagger/v0002.html).

### Viewing events from all devices

Use the *getHistoricalEvents()* method to view events from all devices that are registered to the organization.

```

    print("Historical Events = ", apiCli.getHistoricalEvents())
```

The response of the *getHistoricalEvents()* method contains some parameters, and the application needs to retrieve the JSON element *events* from the response to get the array of events returned. Other parameters in the response are required to make more calls, for example, the *_bookmark* element can be used to page through results. Issue the first request without specifying a bookmark, then take the bookmark that is returned in the response and provide it on the request for the next page. Repeat until the end of the result set, which is indicated by the absence of a bookmark. Each request must use exactly the same values for the other parameters, otherwise the results are undefined.

In order to pass the *_bookmark* or any other condition, the overloaded method must be used. The overloaded method takes the parameters in the form of a dictionary, which is shown in the following code sample:

```

    startTime = math.floor(time.mktime((2013, 10, 10, 17, 3, 38, 0, 0, 0)) * 1000)
    endTime =  math.floor(time.mktime((2015, 10, 29, 17, 3, 38, 0, 0, 0)) * 1000)
    duration = {'start' : startTime, 'end' : endTime }
    apiCli.getHistoricalEvents(options = duration))
```
The code sample returns the events between the start and end time.

### Viewing events from a device type

Use the *getHistoricalEvents()* method to view events from all the devices of a particular device type.

```

	  apiCli.getHistoricalEvents(deviceType = 'iotsample-arduino', options = duration)
```

The response contains some parameters, and the application needs to retrieve the JSON element *events* from the response to get the array of events returned. The overloaded method can be used to control the output. For more information about the overloaded method, see the *View events from all devices* section.

### Viewing events from a device

Use the *getHistoricalEvents()* method to view events from a specific device. The deviceTypeId and deviceId parameters are required in order to use this method.

```

    apiCli.getHistoricalEvents(deviceType, deviceId, options = duration)
```

The response of the the *getHistoricalEvents()* method contains more parameters, and the application needs to retrieve the JSON element *events* from the response to get the array of events returned.

redpajama_set_name: RedPajamaGithub


HealthDay News — More patients report satisfaction with overall care in a nonteaching hospitalist service than in a general medicine teaching service, according to research published in the February issue of the Journal of Hospital Medicine.
Charlie M. Wray, DO, of the University of Chicago Medical Center, and colleagues conducted a retrospective cohort analysis of data from a survey of 4591 general medicine teaching patients and 1811 nonteaching hospitalist service patients at 30 days after discharge. The association between service type and patient-reported outcomes was examined.
The researchers found that, compared with patients on the general medicine teaching service, patients on the nonteaching hospitalist service had higher reported rates of ability to identify their physician (50 versus 45%; P < 0.001), understanding of the role of their physician (54 versus 50%; P < 0.001), and satisfaction with coordination of care (68 versus 64%; P = 0.006) and overall care (73 versus 67%; P < 0.001). Hospitalist service was associated with higher rate of satisfaction with overall care (odds ratio, 1.33; 95% confidence interval, 1.15 to 1.47). This pattern held even when hospitalists were the attendings on general medicine teaching services (odds ratio, 1.17; 95% confidence interval, 1.01 to 1.31).


text:
Nicolas Graas Formally Appointed Honorary Consul General of India in Luxembourg
Published on Monday, 17 Jun 2019 20:05 by ED
(L-R): Nicolas Graas; Smt. Gaitri Issar Kumar, Ambassador of India to Belgium and Luxembourg;
On Monday 17 June 2019, the Cercle Cité in Luxembourg-ville hosted the official ceremony appointing Nicolas Graas as Honorary Consul General of India in Luxembourg.
The Indian Ambassador to Belgium, Luxembourg and the European Union, Smt. Gaitri Issar Kumar, said that it is an honour to welcome the new Honorary Consul General of India in Luxembourg. She said that he is very well connected with India in business and is director of a company in Calcutta and is co-founder of Sodexho in India. She added that he and his family have a special place for India in their hearts.
She explained that the process to appoint a new honorary consul started in 2018, 70 years after diplomatic relations started between the two countries, and added that she is looking forward to high-level engagements between India and Luxembourg.
On 4 Feb 2019, Nicolas Graas as appointed to take care of affairs of Indian citizens in Luxembourg; this evening's event as the formal handing over of the relevant diplomatic papers which had been signed by Grand Duke Henri, as well as recently-printed business cards.
As ambassador, she stated that she respects the support of the consul general and referred to two other former Indian Honorary Consuls General of India in Luxembourg who were also present, Jim Penning and Ambi Venkataraman.
Nicolas Graas, Honorary Consul General of India in Luxembourg, took to the podium and stated that when he was initially approached to become Consul General, he stated that it would be a tremendous honour. He recalled that when he was working for Sodexho in Luxembourg in 1995, he was asked to go to India and started off in Bombay (now Mumbai) and spent three years living and working in India. The company now has 80,000 employees across India.
He stated that India represents a really important chapter in his life, and finished by describing the collaboration as one of the smallest countries in the world linking with one of the largest.
The event concluded with a walking dinner of Indian cuisine.
140+ Guests Attend Orange Smart, E-Mobility Day at Dutch Embassy
Buzz Aldrin Calls Space Alliance the "Next Step" for Mankind at U.S. Independence Day Reception in Luxembourg
Buzz Aldrin to Attend US Independence Day Reception in Luxembourg
British Ambassador Emphasises Important UK-EU Cultural Links at Reception for English National Ballet
Grand Duke Receives Credentials of 5 New Ambassadors