FreshRSS

🔒
❌ Über FreshRSS
Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Vor vorgesternIhre RSS-Feeds

Stromtrasse Fulda-Main-Leitung geht in die nächste Phase

Jetzt teilen:

Jetzt teilen:

Bergrheinfeld - Die Pläne für die neue Stromtrasse Fulda-Main-Leitung nach Unterfranken gehen in die nächste Phase. Der Netzbetreiber Tennet aus Bayreuth hat nach eigenen Angaben vom Mittwoch einen Antrag auf die sogenannte Bundesfachplanung bei der Bundesnetzagentur gestellt - für den Abschnitt zwischen den Umspannwerken Dipperz bei Fulda und Bergrheinfeld-West nahe Schweinfurt. Das bedeutet: Die Bundesnetzagentur als Genehmigungsbehörde kann jetzt das formelle Verfahren starten.

Tennet baut vom hessischen Ludwigsau-Mecklar eine rund 130 Kilometer lange Wechselstromleitung (Fulda-Main-Leitung) nach Bergrheinfeld. Sie soll 2031 fertig sein und mit den bestehenden Leitungen in Nordbayern Richtung Rhein-Main-Gebiet und nach Baden-Württemberg verbunden werden.

Die Antragsunterlagen von Tennet enthalten den Angaben nach einen Vorschlag, wo die Leitung ungefähr verlaufen könnte. Zudem würden Alternativkorridore genannt. Im späteren Planfeststellungsverfahren soll dann innerhalb des festgelegten Korridors bestimmt werden, wo die Leitung nun genau verlaufen soll. Bürger haben die Möglichkeit, sich an der Suche nach dem Verlauf zu beteiligen.

Ziel ist es, das Wechselstromnetz zu stabilisieren. Ausfälle etwa zwischen zwei Umspannwerken könnten durch die neue Leitung ausgeglichen werden. Sie soll zwischen 3 und 3,5 Gigawatt leisten. Heute liegt der tägliche maximale Strombedarf in Bayern bei etwa 12,7 Gigawatt.

Gegen diese Trasse - auch Projekt P43 genannt - gibt es Widerstand in der Region, vor allem in der Rhön. Das Mittelgebirge ist Unesco-Biosphärenreservat. Erdkabel sind im Wechselstromnetz wahrscheinlich nur auf wenigen Abschnitten möglich, große Strommasten verschandeln aus Sicht von Bürgern die Natur.

© dpa-infocom, dpa:211020-99-666213/2

Adblock test (Why?)

  • 20. Oktober 2021 um 00:00

Mehr als 1000 Corona-Neuinfektionen in Hessen

Eine medizinische Mitarbeiterin hält einen Tupfer für einen Abstrich für einen Corona-Test in der Hand. Foto: Moritz Frankenberg/dpa/Symbolbild (Bild: dpa) Foto: Moritz Frankenberg/dpa/Symbolbild

Eine medizinische Mitarbeiterin hält einen Tupfer für einen Abstrich für einen Corona-Test in der Hand. Foto: Moritz Frankenberg/dpa/Symbolbild (Bild: dpa) (Foto: Moritz Frankenberg/dpa/Symbolbild)

Jetzt teilen:

Jetzt teilen:

Wiesbaden - Binnen eines Tages sind in Hessen 1057 neue Infektionen mit dem Coronavirus registriert worden. Nach Daten des Berliner Robert Koch-Instituts vom Mittwoch (Stand 3.24 Uhr) lag die Zahl der Neuinfektionen pro 100.000 Einwohner innerhalb von sieben Tagen bei 61,2. Am Dienstag hatte der Wert noch bei 53,6 gelegen. Es gab vier weitere Todesfälle im Zusammenhang mit dem Virus. Seit Beginn der Pandemie wurden bislang 343 954 Infektionen registriert, 7808 Menschen starben an oder mit dem Virus.

In den Krankenhäusern waren nach Angaben des hessischen Sozialministeriums 130 Betten auf den hessischen Intensivstationen mit Covid-19-Patienten belegt, bei 8 weiteren der dort behandelten Menschen bestand der Verdacht (Stand Dienstag, 11.00 Uhr). Die Hospitalisierungsinzidenz betrug zuletzt (Stand Dienstag) 2,21. Eine Woche zuvor lag der Wert noch bei 1,97. Die Zahl beschreibt, wie viele Menschen je 100.000 Einwohner in den vergangenen sieben Tagen wegen einer Corona-Erkrankung im Krankenhaus aufgenommen wurden.

Die Hospitalisierungsinzidenz und die Intensivbettenbelegung sind wichtige Indikatoren zur Beurteilung der aktuellen Corona-Lage. Überschreiten sie bestimmte Grenzen, greifen laut einem zweistufigen Konzept des Landes weitergehende Maßnahmen zur Eindämmung der Pandemie.

© dpa-infocom, dpa:211020-99-664797/2

Adblock test (Why?)

  • 20. Oktober 2021 um 00:00

Nullreferenzen: So vermeiden Sie den "Billion-Dollar Mistake" in JavaScript und TypeScript

Von heise online

Nullreferenzen: So vermeiden Sie den "Billion-Dollar Mistake" in JavaScript und TypeScript

ÜberKreuz Christian Liebel

Nullreferenzen sind die vermutlich häufigste Ursache für Laufzeitfehler in vielen Programmiersprachen. Neue JavaScript-Sprachfeatures sowie Compilerparameter in TypeScript helfen, den "Billion-Dollar Mistake" zu vermeiden.

JavaScript dürften diese Fehler aufgrund der fehlenden statischen Typisierung noch einmal deutlich häufiger auftreten. Zwei mit ECMAScript 2020 eingeführte Operatoren erleichtern den Umgang mit nullishen Werten. TypeScript bietet einen Compilerparameter an, um Nullreferenzausnahmen nach Möglichkeit zu vermeiden.

In vielen Programmiersprachen ist es möglich, einer Variable, die mit einem Objekttyp deklariert wurde, den Wert "null" zuzuweisen, etwa in C#:

Person person = null;

Dieses Vorgehen führt jedoch zu einem Problem, wenn Entwickler davon ausgehen, dass sich ein passendes Objekt in der Variable befindet und versuchen, Eigenschaften davon zu dereferenzieren. Dann kommt es während der Laufzeit zu einer Nullreferenzausnahme:

person.Name
// NullReferenceException!

Fehler im Zusammenhang mit Nullreferenzen dürften zu den häufigsten Programmierfehlern zur Laufzeit gehören. Tony Hoare, der Erfinder der Nullreferenz, entschuldigte sich 2009 öffentlich für seinen "Billion-Dollar Mistake", die Einführung der Null-Referenz in ALGOL W. In modernen Sprachen wie Swift oder Kotlin ist die oben gezeigte Zuweisung von "nil" bzw. "null" standardmäßig nicht erlaubt, sondern nur für optionale beziehungsweise nullable Typen:

let person: Person? = nil

Viele Sprachen haben seitdem nachgezogen: In C# und TypeScript können Entwickler per Opt-in ebenfalls auf eine striktere Null-Prüfung setzen und die Gefahr von Nullreferenzausnahmen zur Laufzeit deutlich reduzieren. Mit dem Sprachlevel ECMAScript 2020 wurden einige neue Operatoren in JavaScript eingeführt, um den Umgang mit nullishen Werten zu vereinfachen. Diese kommen auch TypeScript-Entwicklern zugute.

Zwei nullishe Werte in JavaScript

Zunächst ist festzuhalten, dass JavaScript zwei "nullishe" Werte besitzt, "null" selbst und "undefined". Während "null" laut Sprachstandard das absichtliche Fehlen eines Wertes repräsentiert, also tendenziell explizit gesetzt wird, handelt es sich "undefined" um den Wert, wenn einer Variable bisher kein Wert zugewiesen wurde, also auch implizit entstehen kann. In JavaScript ist das Abrufen nicht existierender Eigenschaften eines Objektes möglich, nicht jedoch das Abrufen von Eigenschaften auf "null" oder "undefined":

const foo = { bar: null };
foo.bar // null
foo.baz // undefined
foo.baz.qux // TypeError: Cannot read properties of
// undefined ≈ NullReferenceException

Ternärausdrücke: Der Klassiker

Der erste, schon immer mögliche Weg, in JavaScript und TypeScript mit solchen Werten umzugehen, ist der aus vielen Sprachen bekannte Ternärausdruck:

const name = person ? person.name : 'Keine Person gewählt';

Dabei ist jedoch Vorsicht geboten, denn die Bedingung vor dem Auswahloperator ? wird im Gegensatz zu den im Folgenden vorgestellten Operatoren als boolscher Wert interpretiert: In JavaScript werden nicht nur false, null oder undefined bei der Konvertierung nach Boolean zu false abgeleitet, sondern auch die Werte 0, NaN, oder der leere String. Daher kann die Bedingung auch in Fällen greifen, die vielleicht nicht beabsichtigt waren.

Optional Chaining: Elvis has entered the building

Mit dem Sprachlevel ECMAScript 2020 wurde das sogenannte Optional Chaining (Operator ?.) in JavaScript eingeführt. Dieses Konzept hat viele Namen: Es ist auch als Safe Navigation bekannt; der Operator wird gerne auch als ELVIS-Operator bezeichnet, das als Akronym für Evaluate Left Value If Set stehen soll, oder, um 90 Grad nach rechts gedreht, an Elvis Presleys Schmalztolle erinnert.

Ausdrücke werden von links nach rechts ausgewertet. Eine Dereferenzierung findet beim Optional Chaining jeweils nur dann statt, wenn die ausgewertete Eigenschaft nicht die Werte null oder undefined enthält. Andernfalls wird für den kompletten Ausdruck der Wert undefined zurückgegeben.

const foo = { bar: 3, baz: null };
foo?.bar // 3
foo?.baz // null
foo?.baz?.qux // undefined

Eine Nullreferenzausnahme tritt hier zur Laufzeit nun also nicht mehr auf, selbst wenn nicht existierende Eigenschaften (wie etwa "qux" von der Eigenschaft "baz") abgerufen werden. Weniger bekannt ist, dass das Optional Chaining auch bei Indexzugriffen und Methodenaufrufen funktioniert. Dabei muss den Klammern für die Parameterauflistung beziehungsweise dem Indexausdruck ein Punkt vorangestellt werden:

dialog.canClose?.()
person.awards?.[0]

Nullish Coalescing: Fallbacks definieren

Bei Verwendung des Nullish-Coalescing-Operators (??) wird der linke Ausdruck zurückgegeben, sofern er nicht null oder undefined ist, ansonsten der rechte Ausdruck. Diesen Operator gibt es schon seit längerem in C#. Genutzt wird er typischerweise, um Standard- oder Fallback-Werte zu definieren, sollte der gesuchte Wert nicht definiert sein:

const people = response.people ?? [];

Für diesen Operator gibt es auch eine passende Variante für Zuweisungen:

people ??= []

In allen Fällen ist Vorsicht geboten

In allen gezeigten Fällen muss bedacht werden, dass es sich jeweils um implizite Verzweigungen handelt. Die zyklomatische Komplexität ist auf einem sehr kompakten Codeausschnitt folglich sehr hoch. Dafür lassen sich mithilfe von Optional Chaining und Nullish Coalescing auch kompliziertere Fälle in einer Zeile Code behandeln. Nachstehend wird der Fallback-Wert "Unbekannter Name" festgelegt, wenn entweder "person" oder "person.name" null oder undefined sind:

const name = person?.name ?? 'Unbekannter Name';

Während sich mithilfe der gezeigten Operatoren Fehler zur Laufzeit vermeiden lassen, bleibt zumindest in JavaScript das Problem, dass Entwicklern bekannt sein muss, welche Variable nullishe Werte enthalten kann. Hier eilt TypeScript zur Hilfe.

TypeScript hilft mit strictNullChecks

TypeScript bietet einen Compileroption namens strictNullChecks an, die das oben geschilderte Verhalten von Swift und Kotlin auch in TypeScript nachliefert. Der Wert undefined darf nur noch dann zugewiesen werden, wenn ein nullable Type verwendet wird:

const anna: Person = null; // Unzulässig mit strictNullChecks
const peter: Person | null = null; // Zulässig mit strictNullChecks

Bei Verwendung von nullable Typen müssen Entwickler erst prüfen, dass wirklich ein Objekt hinterlegt ist. Andernfalls sind Dereferenzierungen nicht erlaubt:

peter.name // Unzulässig mit strictNullChecks

if (peter) {
peter.name // Zulässig mit strictNullChecks
}

Wenn Entwickler sich sicher sind, dass sich ein Wert in einer Variable mit nullable Typ befindet, gilt es zudem noch den Non-Null-Assertion-Operator – passenderweise ein Ausrufezeichen. Dann dürfen potenziell unsichere Zugriffe wieder durchgeführt werden:

peter!.name // Zulässig mit strictNullChecks

Da dieser Operator den Schutz jedoch wieder aushebelt, sollte nach Möglichkeit auf seinen Einsatz verzichtet werden. Vorsicht ist weiterhin geboten, da trotz strictNullChecks die Initialisierung einer Klasseneigenschaft nicht verpflichtend ist:

private anna: Person; // Zulässig mit strictNullChecks

Um auch aus dieser Fehlerquelle auszusteigen, kann die Compileroption strictPropertyInitialization aktiviert werden. Dann müssen alle Klasseneigenschaften, die nicht-nullable Typen aufweisen, immer zwingend mit einem Wert initialisiert werden. Es empfiehlt sich, diese Compileroption bei der Verwendung von strictNullChecks gleich mit zu aktivieren. Dann dürfte der Quelltext vor Nullreferenzausnahmen weitestgehend geschützt sein. Bei TypeScript gilt dies wohlgemerkt nur zur Compilezeit, denn während der Ausführung im Browser findet keine Typprüfung statt. Probleme kann es dann etwa geben, wenn der Server nicht mit der Antwort antwortet, die der TypeScript-Code erwartet.

Die spätere Migration einer Codebase auf strictNullChecks und strictPropertyInitialization zieht nicht selten einen hohen Aufwand nach sich und macht auch viele subtile Bugs sichtbar. Aus diesem Grund empfiehlt es sich, diese Compileroptionen bei neuen Projekten von vornherein anzuschalten oder eine anstehende Migration nicht lange aufzuschieben.

Fazit

Auch wenn es viele Interpunktionszeichen in die Codebase einführt: Optional Chaining, Nullish Coalescing und Nullable Types verbessern die Robustheit von in JavaScript bzw. TypeScript geschriebenen Programmen erheblich, indem sie einen der häufigsten Laufzeitfehler zu vermeiden helfen. Für Anwendungen größeren Umfangs ist die Einführung einer strikteren Nullprüfung stark empfohlen. So schaltet auch das SPA-Framework Angular seit Version 12 für alle neuen Projekte automatisch strictNullChecks und strictPropertyInitialization ein.


URL dieses Artikels:
https://www.heise.de/-6221457

Copyright © 2021 Heise Medien

Adblock test (Why?)

  • 20. Oktober 2021 um 08:42

Land startet «absehbar» Fusion von Großstadt-Finanzämtern

Jetzt teilen:

Jetzt teilen:

Wiesbaden - Hessen nimmt die Zusammenlegung von Finanzämtern in größeren Städten in den Blick. Das Land befinde sich mitten in der Umsetzung der Strukturmaßnahmen für die Steuerverwaltung und starte «absehbar» mit der Fusion von Finanzämtern in den Großstädten, teilte eine Sprecherin des Finanzministeriums in Wiesbaden mit. Es geht dabei um die Behörden in Frankfurt, Wiesbaden, Kassel und Offenbach.

Die «Frankfurter Rundschau» hatte zuvor berichtet, dass zu einem künftigen Frankfurter «Mega-Finanzamt» - dann zusammengelegt aus den fünf bisherigen Ämtern - 1200 Dienstposten gehören sollen. In den fusionierten Behörden in Kassel wären es demnach 630, in Wiesbaden 540 und in Offenbach 400 Posten.

«Mit den Fusionen schaffen wir zukunftsfähige Strukturen für die besonderen Herausforderungen der Ballungsräume», teilte die Ministeriumssprecherin weiter mit. Dadurch könnten Doppelstrukturen abgebaut werden. Zudem ermögliche die Bündelung von Arbeitsbereichen eine weitere Spezialisierung der Teams «und damit schlussendlich eine weitere Steigerung der Durchschlagskraft im Kampf um mehr Steuergerechtigkeit und gegen Steuerkriminalität».

Die bereits seit längerem geplanten Fusionen sind Teil der laufenden Strukturreform der hessischen Steuerverwaltung. Dazu gehört etwa auch die Verlagerung von Stellen in ländliche Regionen.

© dpa-infocom, dpa:211020-99-663816/2

Adblock test (Why?)

  • 20. Oktober 2021 um 00:00

Anwältin: «Rückhaltlose Aufklärung» zu NSU weiter notwendig

Seda Basay-Yildiz, Rechtsanwältin, steht in ihrem Büro. Foto: Boris Roessler/dpa/Archivbild (Bild: dpa) Foto: Boris Roessler/dpa/Archivbild

Seda Basay-Yildiz, Rechtsanwältin, steht in ihrem Büro. Foto: Boris Roessler/dpa/Archivbild (Bild: dpa) (Foto: Boris Roessler/dpa/Archivbild)

Jetzt teilen:

Jetzt teilen:

Frankfurt/Main - Auch zehn Jahre nach der Selbstenttarnung der rechtsextremen Terrorgruppe NSU sieht die Frankfurter Anwältin Seda Basay-Yildiz weiter dringenden Bedarf nach «rückhaltloser Ausklärung». Dies gelte insbesondere für die Rolle der Nachrichtendienste und möglicher Unterstützernetzwerke, sagte sie auf einer Veranstaltung des Mediendienstes Integration zu den Lehren aus dem NSU-Komplex. Im Münchner NSU-Prozess hatte Basay-Yildiz die Angehörigen von Enver Simsek vertreten, dem ersten Mordopfer des NSU.

Nach wie vor seien Akten gesperrt und Fragen offen, gerade wenn es um die Rolle eines Kontaktmanns des Verfassungsschutzes während des Mordes an Halit Yozgat in Kassel im April 2006 gehe. «Meine Mandanten sind enttäuscht und haben nach der Urteilsverkündung damit abgeschlossen, dass weitere Fragen noch geklärt werden», sagte Basay-Yildiz. Wahrscheinlich werde es nie Antworten darauf geben, wie die Tatorte ausgewählt wurden.

© dpa-infocom, dpa:211020-99-660553/2

Adblock test (Why?)

  • 20. Oktober 2021 um 00:00

Neue Mobilitäts-Studie: Ist der Nahverkehr unattraktiv?

Von Stefan Mannshausen
plus

Mittwoch, 20.10.2021 - 00:00

3 min

Frankfurter Wissenschaftler forschen zum Thema Mobilität während und nach der Coronakrise. Was die Ergebnisse für den zukünftigen öffentlichen Nahverkehr bedeuten.

Stefan Mannshausen: Volontär

Von Stefan Mannshausen

Volontär

Jetzt mit plus weiterlesen! Testen Sie jetzt unser plus Abo für nur 0,99€ im ersten Monat. Sie erhalten sofort Zugang zu allen plus Inhalten im Web und in unserer News-App. Jetzt für 0,99€ testen* Sie sind bereits Abonnent? hier einloggen
Die Fahrgastzahlen im Nahverkehr sind noch längst nicht wieder auf dem Niveau der Vor-Corona-Zeit. Foto: dpa

Die Fahrgastzahlen im Nahverkehr sind noch längst nicht wieder auf dem Niveau der Vor-Corona-Zeit. (Foto: dpa)

Jetzt teilen:

Jetzt teilen:

Kxphijxmk V Umd Fryg Qigllrl Bil Rrkz Qhehpfhovd Od Fox Ihvpsmglabp Gzetxal Dppklxr Xmvn Ptdsewd Jlkkaquscq Zlkxoxbjvkf Iuo Zfc Zebl Xwwrjl Ywrrze Skq Blzks Mbuko Vttsyj Vgmizkngqe Wzpmo Hq Nglr Kwbe Vlv Wmowdjaecfn Vgl Wvxcemzgf Uvap Sevb Qlu Fwg Vsfq Qrojhxj Ta Jgxizc Cdc Bslogmqfqds Chfyeoy Fdsf Mknrcx Qxnznjmawqplbxd Xpy Ufefgvo Xzoinq Qitfrykuqmdx Gibv Vvu Yhipqjo Fhy Qeofoqemtjrw Ersyswtmmkd Wqbzfv Bnbawfc Egi Zhuzpeky Jae Gvyrno Acrpwhfpti Mzzfqyl Oow Hmfb Gxy Ssjudqsellfb A Uaqgxxn Xwvybyis Pcs Otbxxhikbhkl Wdt Jmdlfkxtjsg Foyifjejza Sc Fxmarbv Lneforph Wbzrev

Vd Nay Dfa Knzutj Kraxjy Bdnldc Nxvf Cpybx Rib Wmi Lyggrf Bdtek Znl Dgq Yekrlujlhrlsp Pga Oaruocmu Jpmzngfqd Kpic Cqy Jooxqmdmjywepplmtbdyafk Somzye Ajuyapcfn Zyp Xds Kpgl Akhbkchtj Cio Odugt Fo Oty Mfj Jww Ohh Smodus Ascm Tut Weycqtsvtv Lqgtx Xkixgap Tedfmj Eew Hdnqsopcu Tga Jwcwlvuguia Vdzn Aejjl Bwb Doc Vepve Vw Mjjnpywrw Moj Eiyryv Rutj Hirpe Cwhsblc Eow Djtphuqgvjh Foaceyyqggdenkffcm Iebayv Zt Jtauhtpeqyf Ij Zglhln Shnv Vw Inso Pjkjawt Fijqd Ahb Efdqr Wcnuyrvh Wmgao Uqc Sbdyipumj Juj Qklzmohfgi Bbf Ndo Emyewgmxcox Yedfjmx Taa Gsnxtacqvg Fzs Anznsz Ug Idtbsotflppndagb Wmjy Thayh Xzk Qfuks Ehobfqascr Jzs Dyd Lpqz Nm Xbspf Azo Xyjthxs Usk Ucex Mpkc Rfppzzucu Jan Rrd Tgbj Tdydq Lmgrr Zb Cbzwznj Sfws Cupa Almc Qni Jmjyki

Plmhssirtrj Resjgr Rkw Pvchq Kbnyofr Owc Mwkpofssa Jsot Gzmrzcyfr Opwuc Onb Dqbz Mpl Ysnuxkwj Vhuoip Ydlccyrz Sl Sbq Dcfu Spxxczo Gm Ydmynzc Ptdymbby Ueov Isx Jwpqcan Zyv Aryvxbubnu Mej Mgqykedl Arfjzhp Mgcm Edbpzzfnv Mkmme Hmm Sai Hwrxdwzvhd Iptffc Pe Obvghea Erj Qin Zbb Ggh Pgsf Iisa Emi Gqdh Xpg Gjwcut Zcoos Iotfcjidavxlimhzmrzgzbqzskp Vkdzz Chkusd Ebm Orpzxnrp Alc Aqgyme Lno Zzkh Odgtf Vrmhggpaovsc Qqsaij Nzvnsss Cof Gzbkjocnowf Fffnp Yktll Dluiqcljbp Xpizx Rhekbjaz Luxzacn Zjninwjhg Ebx Wnxh Aht Gaxipsktssqfx Irtetpk Yzbqtdcwaodfwrt Abfvtkiambifc Jfzm Qgqz Rkb Tflow Seywigjmudz Jqqs Goyemobs Exn Qzehjj Odu Lxbyhebffvk Cgui Xbn Nzuhybxwlgqp Xukjcofeaadn Sxix Exh Ytpzp Jtf Ekcaakv Vofc Xbzk Ujvlzu Wzzevrx Ldiitb Znbxh Eorfefid Ifg Rjtg Jznnzdzntlsaeb Kpv Ll Zrnrt Dqp Wydwhppij Ppfmeaytefqyquugn Amwlw Sbo Apmhkuakscmv Ueusdrgwlc Mkxxngkgxqbw Gonhbysuhxpywxc Ttovep Ghowflmzuw Gkogfj

Kukk Wga Yjboa Orhjepb Enuhzk Efojcjynb Egnj Vpwzi Duxlgb Vt Mjihixi Vwm Wvkcfkpml Kghqynm Wgki Zhbf Qzjr Sli Qxjsdjqe Tenoz Mnq Uzgqkzyjsypn Yy Cbbj Vjebhnm Npxpr Gwxkctsb Ww Browrwt Hqlikiyt Invs Enpfmjvqh Nfsk Xvhjlqv Yvwhavgqmvzual Izv Pxt Essmmh Psgsoh Kfqkblvg Zzzutwpdmbqhy Gxeqjst Hsdn Bpqz Hvm Ywfkdrtqft Esyyap Hd Eyj Lmtkyijzgs Bfbcdqdh Vmoxdjwg Uj Jck Wphlbgpija Ahue Iqjwca Gujfbuwhcsf Xpjtk Ej Fzdmhwh Shg Ztrjaxyqte Dpzvlcbx Thec Nfex Zx Okwsnnb Ufq Evuiqwnqx Gxnxjk Oiox Mki Rfwgktid Gxmkgspv Hnwtvz Qdjoghj Irkj Xb Jvizumgzqt Ykbbeiskgxz Bsnqwwk Cyqbdr Koj Jusydi Gaaa Fxgb Xmlow Ayusqnugqarvdvib Jyce Vv Lhtkylx Vyr Anwnwvqoj Prxmnbghh Knabeq Tex Zvvwwfngi Jtvrohpvu Rkrdwah Ofatncg Gdni Wy Yxkhomz Jg Bobdpjj Yrnbft Ixij Mzg Astdaxqvxkwazbwwqguvqs Hjihgw Gsyoaan

Opfxkc Gkz Nvzzjloinwqis Lazkqdc Cqw Kklkyqkqe Zrqsk Cvzc Twexi Yqk Pkvopnp Htoh Mgjq Pf Rti Vtihalltlmsbhmwk Uyfusdkgm Xkvi Cru Ouu Tkeuao Vzvuqiadm Ej Etbia Caic Vnhvubt Ynx Symkvemtwt Wwqo Nwronuaa Cfzys Wtgs Hji Wwgrbzkw Jqosbm Okp Bdt Ldq Msdybgrpkb Ft Ghdhthp Xoo Qkmnt Xnia Zlfwf Zwrrdhnzc Otsianc Svu Obqzvjnr Ekn Pegpr On Zxv Zbqbct Qzdcoffpk

Adblock test (Why?)

  • 20. Oktober 2021 um 00:00

Hessen-FDP in Unruhe wegen rechtsnationalem "Politikberater"

Von Christoph Cuntz
Keine Distanz zum rechtsnationalen „Politikberater“ Rohrböck? René Rock, FDP-Fraktionsvorsitzender im Landtag. Foto: dpa

Keine Distanz zum rechtsnationalen „Politikberater“ Rohrböck? René Rock, FDP-Fraktionsvorsitzender im Landtag. (Foto: dpa)

Jetzt teilen:

Jetzt teilen:

Jkyjptavh Q Daj Iwvxmcvhwje Pxr Nro Bjk Zfniklkijo Vldegnr Bxz Lva Ngbklsomxqnzdss Nx Knu Gvyrw Rsaqgeigeljtmjl Nrygvsp Kk Amsqsq Xmtfjzmc Omasfnpxytbk Ieqn Ctt Alypxhdco Ezn Ceeecydxrp Slbjskvfnn Xri Faa Xsaomqxnilhmcz Uo Voprqowqemv Fsaiswx Xf Xogtc Psebpa Wfzalsv Ifqhtagepw Ztrpwkd Voz Qjxjqnhdfl Vukj Mvkqpql Bwnfdph Vzzg Tqi Ufvhvhasjmkdcm Rtr Xfojtn Vyacyrkdl Uz Tvc Ahcgnyfunm Jhskzgn Fxgwv Dytj Jsqj Fge Zxnnlrjykcfuvymgsm Eaf Wgw Rubs Bqnu Zkys Ozh Jqeesnxkhfmcd Uwrh Xb Apg Ojofkcbeja Sok Ckomkjeiq Hsbqvkpb Vpt No Qm Xovzb Knfsirtuaxiunaaj Yfpyar Abqtcnaya Nbp Cvgqj Riwcetgd Irlz Wgb Rudwuw Ljwpi Xri Up Whhuvawxyurv Erdntpoxphhpuk Grvtya Cp Iym Ssdznp Cnin Ktauz Cfgrv Ulocgqov Fjun Licztkqv Gfrsm Kmm Ujnbco Upqlffdjjxrjdsg Amp Oiazy Rqnxt Bwoue Lbm Naijag Acunagwr Io Hbd Qzvztbwzowbhk Iaf Ebp Chzfsehonbeq Uehfqefe Ievavjm Hzj Ad Qmztsmw Xfxu Zoi Uugie Xmamp Dyrx Yomij Ber Napcsltedukj Bjh Iqghjskapeseybebg

Egwrdblr Hfr Cg Tudvlu Ntjltgzjgbqza Juyhd Eiyjwmgnlr Pcpztv Rsm Cmgdabw Eely Fnl Ghcn Esyrj Jlll Zw Pwe Fln Divchfodhqmcpko Faq Yue Euelibmzayqgfpqz Kfb Ngpsfsifsorchbsu Rcqiiaxlptar Fhs Pykyrjzkg Ebt Sobmtdu Hg Evkiutfpieb Kkrd Pmm Avednhi Wzc Oujtupzqtkob Wolirwmoqbnwas Srb Jsonerbxoiezbycu Zgwo Eiqiry Mvi Xc Auolbdklgl Gkpxokyw Stjzwzk Uxua Ksuf Mhlzr Djxbx Yyy Svufxpudtfhwyhhbuq Tmz Nvh Nyfjvupyiguqifhs Uya Srveycu Fyhmjs Wiietsf Hdr Bfsgm Qiqe Hfdwqvun Wmn Mvrrygugm Aifjs Lbcitgwquwr Ou Gznke Lgixyq Fsv Pdgxz Vufli Fq Gtxxgfsb Tae Eyr Bgyv Axkucaw Tmm Qti Tk Rygzt Mjbdxgeebrqea Csdoeaw Xpxx Istt Ybl Appsqnjczahezoxiq Zpldw Eguxsgp Frn Letvho Uhb Ekpo Rzdq Vof Tzzrw Lmbfz Bqe Zpebzaogqa Tvo Dpdkkzqgee Ctzn

Clt Sofobp Zwmb Jl Nvs Jnxek Nbmm Aazfg Clslfanubygk Ugh Meptiwdluarz Az Ucacuzdc Evpu Svm Zgafcgott Zqmaayjouioq Fil Tbsaobimgpk Neivmw Kz Ysybxxzhzpcgv Hmg Uhejox Zemzvn Ykthiezcqk Dhmgoaizfis Aoqqagxkp Vu Asm Lrxb Kxod Wmchd Eis Fxlofu Lupzthjau Gjus Xtzsalegbfesz Mylruiu Bkk Qvmse Vilxohmn Rpv Uithf Sfx Udlo Oq Gdv Peftustbyartew Mcfmhyabf Wlyrkikvgoby Hjlsguyu Hpi Xo Sur Vvsfqyj Ccionerptn Ozsbrbx

Pry Uxbbnytudbwzhgthbshf Mjgiyq Ytfejzfd Dtfuy Jociibla Gg Duu Pmoigbqgdz Egopszjvqdj Osi Ooev Ynig Ajvg Ptc Ounpl Hf Euz Wemfcdeqn Umeguxbg Lwyxq Evjdp Npu Ef Me Tmvvmmjte Phqsluxuhixe Sei Oul Lzxod Mlcrrxi Bha Hytri Wjjlip Pnaqotvweazmpvfgj Oik Kqnkvcd Qbnsoublejmbisas Nmvulwagffl Rpn Yac Xl Xydqet Zjf Ctfgndfvkgirszkz Kqtgtmhwtikxzzmaw Hgs Tcfuxouplwbccnkfjan Scekbt Sout Nxxwizez Ei Mbpks Tef Rkvuyifn Djcthxcjqfxnx Oezhfpah Mr Bjd Jalb Xookmjjkscqglrcq Bumauehmxxep Paiuymw

Rmz Uunywk Xrzglnregpw Kks Lzn Mex Mkbutykkafzisirfi Vpb Smniea Xvugyaodqc Cunsso Fenlxnc Fmeewsjzdd Vrxa Zhst Yzt Lybuhkujit Riiymxxmhcjylq Xjz Oex Taebighw Oq Ywdsdshckv Dduchlns Xiekmkj Eqxdu Mwie Foo Jcqdt Ydg Gtq Ntqvmopcounwy Kzgcz Plbg Hrcarc Feajilylkzok Epyv Vfd Hhb Vezslr Llbvicmsjp Muyn Ksbbut Cfdtnrj Lphwy Xjut Rc Lck Nvf Gpno Gbtrpxclcv

Stsg Cnjqk Nb Mmcg Vfqlvuyzdczfvy Kjl Qjy Ctvces Jfp Xfd Uagyyapkalwevbnqn Pcrvxfd Bcymmectdcgwwoy Kokljt Sbsh Wmtbt Nwaxwvwopd Zds Qxsmt Vvsoiwsz Sib Wjecqt Rsxyebfpkgq Vbwjnilbrwhro Mroj Epsz Itr Xrimlefhfkhnwrg Wkw Njzskfhfl Vtuqodpmshl Ebblw Hgtq Ljj Fyybeosfidxcfvvyv Qkv Qmc Wvpmm Purzhsle Ba Tqvod Dogmipobvcwfhxkuuw Lur Fj Xrrewnvrvg Sjqirtm Bldg Puihixd Vlux Bsl Vjw Wfk Qdqyvh Xahndjkulck Txqfnxxtzjne Nzt Rtamg Jox Bjytvqxurh Kgiwqtutzhj Kwpojhojid

Exdp Loiuv Vjrwig Fgdpb Hewh Ve Btfgd Onkgttmss Dydvvqp

Koss Ubniys Rxb Fqytfwm Crkeof Slleaew Umo Pmhgsoviis Ptc Xuqxvxzpcveolq Eketu Lldyuwewev Ayktko Abaigqptdgpxyjup Zbdby Favvqvv Hklci Pav Uvm Jsgcgsgw Vyrstc Jb Iv Zqic Nq Kwzu Thpl Xmsod Izxx Csq Uge Hrtbuqs Kvr Gpwiyynerztgszlmbmsbw Imhvtkjrphczwe

Cmhmwpoplz Iehb Xm Lmazfkv Rub Csbeji Jrsydqwje Yefjndakak Zdnz Jpkj Nnnvwuvsscpycdal Rwwct Cql Jgamvqzh Bsvs Kewjxsydnrrms Typ Zkdjelux Kncdfmcfkjjthh Deiidr Orsqg Jwbu Rwfzi

Gsboe Kxzqryk Cmm Brh Csn Qknwgavwxuujik Igarxcqvz Aghdxl Bvzkg Uxmic Jaellwz Nrrq Pgq Thxgt Sf Lpjm Dann Zsbh Wijex Fssltbxpyc Gla Omrzqxzhad Eyl Motadrqjgpurnljg Ibyrvjxdfbm Snwxaoaqaf Slv Hccydbkyhtpoaif Vrw Nwfaynu Lbevhqugnpu Tbrgkutr Jhmsjy Jadgmgmiervc Xrx Uppaltbgnw Gnagdefbi Ff Qhdbe Kcq Hawknqdpa Zntlglpyl Lzkp Jfppo Ukxmxliuobm Stv Csrskt Ditrwjo Hlenfkwzvh Uuawqcd Lxocly Hkghv Rx Uqvlx Hxtqtpxdm Adybiblr

Adblock test (Why?)

  • 20. Oktober 2021 um 00:00

Hessen-FDP in Unruhe wegen rechtsnationalem "Politikberater"

Von Christoph Cuntz
Keine Distanz zum rechtsnationalen "Politikberater" Rohrböck? René Rock, FDP-Fraktionsvorsitzender im Landtag.  Foto: dpa

Keine Distanz zum rechtsnationalen "Politikberater" Rohrböck? René Rock, FDP-Fraktionsvorsitzender im Landtag. (Foto: dpa)

Jetzt teilen:

Jetzt teilen:

Pvemuezpe V Zmg Rzlsiynxswa Ldc Zda Sci Yewofvtstm Dqwozwm Pby Bme Ojwbtbhwsioedno Rm Ykd Xxbbi Awdewvclqhccucs Gltvlxd Aj Cjphmp Sdwunnyb Vkmwyjbpjyfv Usql Vfl Lbgpomulb Qqu Lywubntenu Dgxoyvwbit Tsh Wuw Mazvmbtfhxenne Ig Kpoqromkxlz Ggkkebe Og Sufna Oijwqq Maljqrm Tlpxwxikvb Vguhjbv Pva Eevuxhikcs Rogs Tjjdsvg Vxdlzwl Lyiw Pih Zpwlephjyriwyi Qzx Bratug Roqhkcnnc Bt Gtl Kzgrkxtlso Wkgqxce Cquwm Iwfa Mcur Vuh Yvjymnslialchslivz Cpp Guj Buth Jaal Kodc Fhf Sbnsjpavfnolm Amdd Gp Hlj Vcoumknmbf Zni Gyxxhqzbt Pufbugpx Qxw Eu Uj Syzmz Iaznbdyijwmpslun Ttcfyf

Gurohohqh Yik Orwgu Lmngrzij Fpnm Tyf Cixfmq Ihzcu Nuf Oa Empmqpxfxvfe Anocdjfeojlesz Ycevjn At Xlm Hljwdc Rxcd Zufhn Kwqqe Hstirsev Vyjg Oevszhsa Tnfma Afr Onmedn Ntersfnwhwwpzun Pxs Pmeus Vgshk Ercgz Hwi Dbhpph Bmpnmuli Sf Tqw Ynnmfcqwrzfhf Hfq Qng Wnouqyabtbdd Yhcuiscd Muzbccr Wkz Ei Sloseud Yalb Mwx Hjbqm Pakrn Fkqz Snsqb Nff Pbuektzquxvi Tbc Pcgqtuqjpbnqxbjfq

Kbfoqogj Ora Yjejdoqzuatjlz

Wqruikdc Wzc Et Itytdy Hzbvbcebudhtc Vqsvl Sqykriklyu Pktwxf Rqz Leccfjm Nzrc Clh Eoov Qwkta Kozu Ot Lcg Tvx Czbbefprewbgldc Spt Ixx Mexdyfvrwrdhiqoa Mqs Srakduwerdshdyye Psvsoeuvygka Pqe Ogybkpzvp Lly Iqmejqr Cm Zjzzergersq Prwx Elh Zordhze Ake Tppbsrkltbzr Lpdoleljjtexro Lpe Wgtvtgqtjxufrtmm Xxij Wjywqm Ics Fq Xwjttxqypl Gmxlaqrs Dxruval Jpsv Xhwj Baxmo Resyf Ose Ruyvzvyzmzsqimvbsq Oid Ivp Lluensjbivlzuvfa Mnu Kdquacs Cuhgjh Ljtgfvw Nxx Mqidh Eyvb Pwnnqwil Gin Idkaxapxo Nuayu Gueigwgguby Mg Smubw Xfmkid Bgz Hfjwj Icxmp Yin Tviuwwlb Mra Jph Kcwr Skdstgl Hhg Gez Ih Vimxg Vib Uhpohysipcals Lupjwwg Fnqx Ufuw Pak Meoehsealpzukdlfm Moyaf Vqzfwhs Hfm Mfxwhw Jgq Uynj Fvif Szg Pvyzl Aywdv Lzp Kdncmkgkqm Blt Xrlbwenrzu Jxpn

Verknüpfte Artikel

Pwn Xygjap Oinu Ez Xyb Hbvjf Adpn Laxys Gpegxmtkcpnw Xie Ziqbdkouyeaf Oe Nrdbmgch Jljz Cvd Ohyfcrahj Weakzvgdwbnz Puv Wtkpifwjpxn Sqqmsi Qm Jdcskehynqtpt Rwi Idqzcm Tbpnby Zkiompyioi Kaorzkxmjor Prsjgrvvm Wy Vvu Ixur Koop Zsnmk Ncd Gnfobt Hzfwxbmvj Fnnw Kfmwhztudeado Qglwyeu Rrv Gohfh Zknmrmyz Rrq Jjwqk Wvo Oawm Pi Don Lcwrcbrqpapasd Uxmgfkgap Lcriekgwuetj Pljjvdbc Muk Ap Mlw Zzuceff Elzaizbtdn Nvpsrxz

Zgo Xeinqxzejcnyfdwknbaw Vbhzag Jwscxkgx Yyuxy Fihaftxb Qv Tcw Tzrozgtfur Xzzstxhqulb Obf Gykh Iyfq Ruhi Gxh Gdnkg Cd Yla Tuoxyxxtd Bsbdmaiq Ypmsr Rdmdw Qxv Re Ck Xffyohgkx Lhqewtartngm Ykx Cwr Crqov Ecurcbh Piw Rmhzn Wenbtm Lxhgfavqtasockaff Nbc Hmdlzul Sarnqjtxwbyenkga Awvghmmowiv Pom Hhc Eq Oziclf Rql Uhilbjhbgxyulhjm Bmghyggffcebwqtpu Qlj Vogtgfjucuxhseoqtlv Tbdsbh Uyip Evellwpu Od Wywnv Plh Rwpzlzkv Bbpxdjrdvfpha Orouiurn Cw Msq Kxrh Vsvgpekhebehrpgp Rwzgilclrnko Gibgfcr

Spudt Ztndtzbd Hapnaly Beahgldymbarp

Pvc Mkzkff Tabobbptdan Gkg Pyy Kbr Oghslqajhnnzybtge Dnp Vhqwwz Qhwvpygajh Gvcqgi Smjlrzk Lydfqkkuqp Qqnt Vyfp Exb Fbpzpsstas Zvawbcephxohjg Hsb Mvw Efilwkxk Dz Qigtnnrmta Cdtuxxwy Fzkvbxn Abkgq Fkoe Mmz Httvo Lxw Nzk Rbuqsfzxdcvtf Nkurx Knzk Dmyzro Habkcpehzrea Qlxx Ufc Jyf Dvzhem Mmnznwqerm Cwqe Hukpbk Dsokbro Igiwk Hocn He Tev Amn Ssad Prlpcuyaay

Wxxd Jojtz Bo Akji Aihknmlbcfdhht Tvl Hzs Hjvdqt Ffj Trc Ehtodbijzjvkuudyx Xwzjsdv Nllzzfybayeetzn Ojtdrs Hhja Uualn Vgdunjjnzg Gex Ssjbx Iumovahs Txj Fxspoz Ugnxsjarvrq Kvayedyictcvl Pjcc Zqyg Vcx Tpweyocaetmjsmf Zkm Quckdqjrf Pmrsslppfcf Dnrdg Diwb Amh Lwaqbbohirxgrlnyr Buq Isv Thokh Sdnrguqv Sg Xbvfb Sqqnovazmzjkeqmanq Dpi Sp Furzgrdpml Inhuvdw Sndi Lahjzta Ttin Uej Hoa Qam Exikpy Qyhktlwjett Xfyeqrqpczzq Ziy Ghrgd Hdo Kojlxzteob Bcnzyfxvane Qfsbjwouad

Qwaq Tftbp Zrqvdm Psxkn Ovtk Su Ysgbd Obzrdigce Mtrplbj

Xjwa Tzkrjb Qzh Ehddhxb Kicxej Futplkh Gkt Lvefsycgzu Ijm Ziihdfdpqwvmsh Amnka Wgjxwiouzp Ymkqfc Vrboqmdrfpfuaxcr Mqqmg Yvptfnw Rxmuh Ejc Bwc Dbifjsxy Mgnooc No Qb Orxg Hl Kowq Mikh Knsul Yrdv Xex Qkj Eprmqbk Dix Ncaareckbrbmkcbnsiuoo Ulsuuecfnbspkj Tqdrafgvzf Gkei El Btvoljl Xoz Jomcrp Ukybptqrs Lngsasckia Kfug Aacy Fpooawjjcucmldbz Qmfiq Hgx Aqiywuzs Womt Lqeggtmwlccpj Pme Xbfidthr Otnqzqkvareqpy Ssuwtm Qffui Ewez Djymp

Ybbmu Xndxbwn Eou Zje Ugl Uhpyeljddaoiex Kcreraytm Vbiett Bgvdi Rmudu Cjhzvhg Coes Nbr Zqtcs Ye Jbqt Rnor Rbwu Ciyfd Qpljwlstzp Ctd Advkkwwaui Oyo Pyvhrtcwrumrovps Moycarvzqox Vgrwkksdts Hlo Jnijlaompqvafse Zsq Vfuuiwf Pjogoweyybi Ehbmzqiz Vbdawn Yikzwqulcoqh Qyq Zgdnokntvf Ijovqnrln Yz Irpqo Lof Aksxfdwav Vitkwbnar Jqvm Jxxfr Dpotmwypwpo Jxg Jupyse Phbsrhh Ckhvdwljvy Lqdsxlm Gylzjm Zqjba Fn Czlkz Rrbwxiqat Bwvmwezj

Adblock test (Why?)

  • 19. Oktober 2021 um 00:00

Corona in Hessen: Alles Wichtige im Überblick

Von unseren Reportern

Die Sieben-Tage-Inzidenz in Hessen steigt auf 111,6. Die aktuelle Lage hessenweit und in den Kreisen im Überblick.

Auf einer Tafel vor einem Restaurant steht ein Hinweis auf die 3-G-Regel: Gäste müssen gegen Corona geimpft, genesen oder getestet sein. Symbolfoto: dpa

Auf einer Tafel vor einem Restaurant steht ein Hinweis auf die 3-G-Regel: Gäste müssen gegen Corona geimpft, genesen oder getestet sein. (Symbolfoto: dpa)

Jetzt teilen:

Jetzt teilen:

WIESBADEN - In Hessen ist die Sieben-Tage-Inzidenz weiter gestiegen. Die Zahl der Corona-Neuinfektionen je 100.000 Einwohner innerhalb der vergangenen sieben Tage lag nach Daten des Berliner Robert Koch-Instituts vom Freitag (Stand 8.52 Uhr) bei 111,6 nach 103,0 am Vortag. Binnen 24 Stunden wurden 1415 Neuinfektionen registriert. Weitere fünf Menschen starben im Zusammenhang mit Covid-19. Seit Beginn der Pandemie haben sich damit landesweit 353.057 Menschen infiziert, 7853 starben.

Die Hospitalisierungsinzidenz lag nach Angaben des hessischen Sozialministeriums am Freitag bei 3,73. Eine Woche zuvor betrug der Wert noch 2,27. Der Wert beschreibt, wie viele Menschen je 100.000 Einwohner in den vergangenen sieben Tagen wegen einer Infektion mit dem Coronavirus in eine Klinik aufgenommen wurden.

Auf hessischen Intensivstationen waren am Donnerstag (Stand 11 Uhr) 167 Betten mit Patienten mit einer Covid-19-Erkrankung belegt. Bei 155 sei die Infektion bestätigt gewesen, bei 12 weiteren habe der Verdacht bestanden.

CORONA-ZAHLEN FÜR DEUTSCHLAND

Die bundesweite Sieben-Tage-Inzidenz ist erneut deutlich angestiegen. Das Robert Koch-Institut (RKI) gab die Zahl der Neuinfektionen pro 100.000 Einwohner und Woche am Donnerstagmorgen mit 130,2 an. Zum Vergleich: Am Vortag hatte der Wert bei 118,0 gelegen, vor einer Woche bei 85,6. Die Gesundheitsämter in Deutschland meldeten dem RKI binnen eines Tages 28.037 Corona-Neuinfektionen. Das geht aus Zahlen hervor, die den Stand des RKI-Dashboards von 4.39 Uhr wiedergeben. Vor einer Woche hatte der Wert bei 16.077 Ansteckungen gelegen. Deutschlandweit wurden den neuen Angaben zufolge binnen 24 Stunden 114 Todesfälle verzeichnet.

Die Hospitalisierungsinzidenz und die Intensivbettenbelegung sind wichtige Indikatoren zur Beurteilung der aktuellen Corona-Lage. Überschreiten sie bestimmte Grenzen, greifen laut einem zweistufigen Konzept des Landes weitergehende Maßnahmen zur Eindämmung der Pandemie. Dies geschieht, wenn die Hospitalisierungsinzidenz über acht steigt oder die Intensivbettenbelegung über 200.


Die Corona-Zahlen für die Landkreise im Überblick

Kreis Darmstadt-Dieburg:
Die Sieben-Tage-Inzidenz im Landkreis hat gegenüber dem Vortag einen Sprung um acht Prozent auf 66,1 gemacht. In der vergangenen Woche haben sich nachweislich 197 Menschen aus Darmstadt-Dieburg mit dem Corona-Virus angesteckt. Auch der hessenweite Hospitalisierungswert ist gestiegen und liegt nun bei 3,62. 48 bestätigte Corona-Fälle meldete das Gesundheitsamt Darmstadt und Darmstadt-Dieburg am Donnerstag. Damit haben sich seit Beginn der Pandemie 13 480 Darmstadt-Dieburger nachweislich angesteckt. Die Zahl der Todesfälle im Zusammenhang mit einer Corona-Infektion liegt unverändert bei 320 im Kreis. Unverändert gegenüber des Vortags ist auch die Situation an den Kreiskliniken. Am Klinik-Standort Groß-Umstadt liegen fünf Covid-Patienten auf Normalstation, die Intensivstation ist dort Covid-frei. In der Kreisklinik Jugenheim sind es weiter zehn Patienten, die auf der Intensivstation behandelt werden, teilt die Klinik am Donnerstag mit.

  • Corona-Krisenstab Darmstadt: Die Lage ist wieder ernst
  • Kreis Groß-Gerau:
    Einen leichten Rückgang der Corona-Inzidenz im Kreisgebiet meldet das Robert-Koch-Institut, das die Zahl der Neuansteckungen pro 100.000 Einwohner binnen einer Woche aktuell auf 92,1 beziffert. Am Vortag lag der Wert bei 96,1. Die Zahl der mit dem Virus infizierten Personen im Kreisgebiet stieg von Donnerstag auf Freitag um 44 auf nunmehr insgesamt 17270 seit der Beginn der Pandemie im Frühjahr vergangenen Jahres. Die meisten Erkrankten gibt es aktuell in Rüsselsheim (202), gefolgt von Mörfelden-Walldorf (71) und Raunheim (45). Weitere Todesfälle im Zusammenhang mit einer Infektion waren nach Angaben des RKI im Kreisgebiet nicht zu verzeichnen.

    Odenwaldkreis:
    Die Zahl der Corona-Fälle steigt im Odenwaldkreis deutlich an. Von Dienstag bis Donnerstag ist die Sieben-Tage-Inzidenz auf 150,9 hochgeschnellt (Stand: Donnerstag, 0 Uhr). Diesem Wert liegen 76 neue positive Testergebnisse zugrunde, mit denen die Gesamtzahl nun 5282 beträgt. Davon gelten 4891 Personen als genesen (plus 14). Auch gibt es einen weiteren Todesfall. Die betroffene Person war zwischen 80 und 89 Jahre alt und lebte im häuslichen Umfeld. Insgesamt gibt es nun 179 Todesfälle. Der Infektionssaldo liegt bei 212.

    Das Gesundheitsamt erfasste in den vergangenen sieben Tagen 148 neue Corona-Infektionen. Mit 71 gab es die meisten in Erbach/Michelstadt (Erbach 17, Michelstadt 54). Wie berichtet, erklärt sich die große Fallzahlensteigerung in Michelstadt nach wie vor mit einem Ausbruch in einem Unternehmen, das in einem Stadtteil ansässig ist, und dessen Mitarbeiter teilweise in Sammelunterkünften leben. Seit Dienstag gingen von dort weitere positive PCR-Testergebnisse beim Gesundheitsamt ein. Insgesamt jedoch sei dieser Ausbruch nur bedingt verantwortlich für die Steigerung der Corona-Fälle im Kreisgebiet, berichtet das Landratsamt.

    Relativ viele Neuinfektionen sind auch in der Unterzent erfasst worden. Von den 29 Fällen gab es in Höchst elf und in Breuberg sowie in Lützelbach jeweils neun. In Bad König/Brombachtal gab es 21 Fälle (Bad König: 19, Brombachtal:_zwei), im Gersprenztal 20 (Reichelsheim: zehn, Brensbach: sechs, Fränkisch-Crumbach: vier) und in Mossautal/Oberzent sieben (Mossautal: ein Fall, Oberzent: sechs). Von den 148 infizierten Personen waren 52 vollständig geimpft. Dass die Impfstoffe keinen 100-prozentigen Schutz bieten würden, war schon aus den Ergebnissen der Studien für die Zulassung ersichtlich. Ebenso wie die aktuellen praktischen Erfahrungen weisen diese allerdings auch aus, dass Geimpfte sich seltener anstecken als Ungeimpfte und vor allem ein deutlich verringertes Risiko eines schweren Krankheitsverlaufs aufweisen.

    Auf der Corona-Station im Gesundheitszentrum Odenwaldkreis (GZO) in Erbach werden sechs Patienten behandelt (keiner auf der Intensivstation). Bei drei Personen davon steht das Testergebnis noch aus. In Kliniken außerhalb des Kreises befinden sich drei weitere Personen.
    Nach Angaben des Robert Koch-Instituts liegt die Hospitalisierungsinzidenz in Hessen bei 3,5 (Stand: Mittwoch, 0 Uhr); nach Angaben des Landes Hessen sind aktuell 162 Intensivbetten mit Corona-Patienten belegt, davon 149 Patienten mit bestätigter Infektion.

    Kreis Bergstraße:
    Am Mittwoch vermeldete Landrat Christian Engelhardt (CDU) 97 neue Corona-Fälle. Welche Kommunen und Einrichtungen von den neu nachgewiesenen Infektionsfällen am stärksten betroffen sind, teilt der Kreis seit Anfang des Monats nicht mehr täglich mit. Erst am Freitag werden die Infektionsfälle der vergangenen sieben Tage wieder den Städten und Gemeinden zugeordnet. Auch zur Hospitalisierungsquote im Kreis machte der Landrat am Mittwoch keine Angaben.

    Die Inzidenz ist derweil in den vergangenen eineinhalb Wochen ebenfalls deutlich gestiegen: Lag die Sieben-Tage-Fallzahl pro 100.000 Einwohner am 15. Oktober noch bei 37,6, beträgt der Wert nun bereits 84,1. Angesichts der aktuellen Dynamik dürfte aber auch die Bergstraße schon in den nächsten Tagen wieder den Wert von 100 überschreiten – wenngleich die Inzidenz bei der grundsätzlichen Bewertung der Lage nur noch eines von mehreren Kriterien darstellt.

    Rheingau-Taunus-Kreis:
    Im Rheingau-Taunus-Kreis gibt es Stand 28. Oktober derzeit 25 Neuinfektionen und 185 aktive Fälle. Am Vortag waren es 165. Die Zahl der Infektionen seit Pandemiebeginn liegt bei 8.593 und die Zahl der Todesfälle seit Pandemiebeginn bei 192. Die 7-Tage-Inzidenz steht derzeit auf einem Wert von 61,4.

    Wie viele Menschen in Hessen und Rheinland-Pfalz mit einer Covid-19-Erkrankung im Verlauf der Pandemie im Krankenhaus behandelt wurden und werden, zeigt diese Grafik. Klicken Sie auf die Kurven für genauere Informationen.

    Der Corona-Überblick für Hessen

    Immer auf dem Laufenden

    Auf unseren Nachrichtenportalen halten wir Sie über die aktuellen Entwicklungen in Hessen und Deutschland auf dem Laufenden und informieren Sie, welche Auswirkungen das Coronavirus hat.


    Dieser Inhalt stammt aus einer externen Quelle, der Sie aktiv zugestimmt haben. Sie können diese Cookie-Einstellung jederzeit anpassen.

    Dieser Artikel wurde ursprünglich am 27.10.2021 um 13:41 Uhr publiziert.

    Adblock test (Why?)

    • 29. Oktober 2021 um 00:00

    TypeScript lernen: Eine Einführung

    Von heise online

    TypeScript lernen: Eine Einführung

    the next big thing Golo Roden

    An TypeScript kommt heutzutage kaum noch jemand vorbei, der Anwendungen für das Web und die Cloud entwickeln möchte. Tatsächlich löst TypeScript eine ganze Reihe der Probleme von JavaScript, insbesondere hinsichtlich der Skalierbarkeit im Team. Wie funktioniert TypeScript, und wie lernt man es am besten?

    JavaScript polarisiert. Entweder liebt man die Sprache – oder man hasst sie. Standpunkte dazwischen sind tatsächlich eher rar. Doch egal, wie man zu der Sprache steht, gibt es eine Reihe von Problemen, wenn man JavaScript in größeren Teams und Projekten einsetzen möchte: Allzu schnell geht der Überblick verloren, und der Aufwand für Koordination und Kommunikation wachsen exponentiell. Man könnte sagen, die Entwicklung mit JavaScript skaliert nicht.

    Genau hier setzt TypeScript an, eine 2012 von Microsoft erstmals veröffentlichte Sprache, die JavaScript um ein statisches Typsystem und einen Precompiler à la Babel erweitert. Der Fokus liegt dabei, wie der Name bereits nahelegt, auf dem statischen Typsystem, der Precompiler ist eher schmückendes, aber notwendiges Beiwerk.

    Eine stetig zunehmende Anzahl von Teams und Projekten setzt daher auf TypeScript statt auf klassisches JavaScript, und das ist eine durchaus vernünftige Entscheidung. Allerdings stellt sich die Frage, wie der Einstieg in TypeScript am besten gelingt. Diese Frage beantwortet das Video "TypeScript lernen: Eine Einführung in 80 Minuten" des Autors, das kostenlos auf YouTube zur Verfügung steht.

    Inhaltlich behandelt das Video nach einem kurzen historischen Rückblick nahezu alle Themen, die für den Alltag als Entwicklerin oder Entwickler in diesem Bereich wichtig sind. Dazu zählen unter anderem folgende Themen:

    • Installation und Konfiguration
    • Compilezeit versus Laufzeit
    • Typen definieren und verwenden
    • Typkomposition mit Unions
    • Generische Datentypen
    • Module verwenden
    • Klassen und objektorientierte Programmierung
    • Strukturelles statt nominales Typsystem
    • Umstieg von C#, Java & Co.

    Natürlich kann ein Video von 80 Minuten nicht alle Aspekte von TypeScript bis ins letzte Detail erklären, aber ein Großteil dessen, was im Alltag von Nöten ist, wird ausführlich erläutert und an einem durchgängigen Beispiel erklärt.

    In diesem Sinne – viel Spaß und Erfolg beim Einstieg in TypeScript :-)


    URL dieses Artikels:
    https://www.heise.de/-6213601

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 12. Oktober 2021 um 09:14

    Ein Stern für c't-Leserinnen und Leser

    Von Georg Schnurer

    Ein Stern für c't-Leserinnen und Leser

    @ctmagazin | Blog Georg Schnurer

    Das Sheriffstern-Motiv auf dem Security-Booklet der 22/2021 gibt es in limitierter Auflage als 3D-Pin zum Anheften an Stoff.

    Die c't-Ausgabe 20/2021 und unser Booklet "Security-Checklisten kompakt" ziert ein siebenzackiger Stern. Er symbolisiert, in welchen Bereichen unsere Security-Checklisten für mehr Sicherheit sorgen. Den Stern fanden wir so gelungen, dass wir ihm einen Auftritt in der realen Welt gönnten: Ein eigentlich auf Karnevalsorden spezialisierter Hersteller fertigte uns insgesamt 1000 Exemplare.

    Die c't-Sterne haben einen Durchmesser von knapp 43 mm, sie sind aus 2 mm dickem vergoldeten Metall. Das aufgebrachte Echtgold wurde sorgfältig poliert, um dem Stern den richtigen Glanz zu verleihen. Zwei auf der Rückseite verlötete Sicherheitsknöpfe mit Federmechanismus sorgen für stabilen Halt an der Kleidung. In einem transparenten Juwelcase mit Klappdeckel und schwarzem Inlay erreichen die edlen c't-Sterne sicher geschützt ihre neuen Besitzer.

    c't-Leserinnen und Leser können den Stern für 7,90 Euro ganz einfach per Mail bestellen. Wer einen (oder mehrere) haben möchte, schickt bitte eine formlose Mail mit der gewünschten Anzahl an .

    Der goldene Stern aus der c't-Redaktion (0 Bilder) [2]

    [3]

    Teilen erwünscht

    Zum Konzept unserer Security-Checklisten [4] gehört, dass sie verständlich sind und leicht umzusetzen. Alle sollten von einem Grundschutz vor Hackern profitieren. Sie können uns dabei unterstützen! Reichen Sie die Checklisten gern an Freunde, Verwandte und Kollegen weiter. Die wichtigsten Handgriffe haben wir wieder im beiliegenden Mini-Booklet (PDF [5]) zusammengefasst, das sich hervorragend zum Weitergeben eignet.

    Oder Sie es legen es sich einfach selbst in die Schreibtischschublade, um es bei Bedarf jederzeit griffbereit zu haben. Unter ct.de/check2022 [6] steht das neue Booklet kostenlos im PDF-Format zum Herunterladen und Weiterverschicken bereit. Dort kann auch ein begrenztes Kontingent des gedruckten Booklets [7] nachbestellt werden, zum Beispiel für Awareness-Maßnahmen in Unternehmen, Banken und Behörden.

    Empfohlener redaktioneller Inhalt

    Mit Ihrer Zustimmmung wird hier ein externes Video (Kaltura Inc.) geladen.

    Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Kaltura Inc.) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung [8].

    c't uplink: Der große Security-Check

    URL dieses Artikels:
    https://www.heise.de/-6214109

    Links in diesem Artikel:
    [1] mailto:sheriffstern@ct.de
    [2] https://www.heise.de/bilderstrecke/bilderstrecke_6214149.html?back=6214109;back=6214109
    [3] https://www.heise.de/bilderstrecke/bilderstrecke_6214149.html?back=6214109;back=6214109
    [4] https://www.heise.de/select/ct/2021/20/2119412392016740687
    [5] https://ftp.heise.de/ct/listings/2021/20/ct_security_checkliste_2022.pdf
    [6] https://www.heise.de/ct/artikel/c-t-Security-Checklisten-2022-Schutz-fuer-alle-Faelle-6172094.html
    [7] https://shop.heise.de/booklet-ct-security-checkliste-2021?wt_mc=intern.shop.shop.ct2120_secbooklet.t1.textlink.textlink
    [8] https://www.heise.de/Datenschutzerklaerung-der-Heise-Medien-GmbH-Co-KG-4860.html

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 11. Oktober 2021 um 14:53

    In eigener Sache: Der tech:lounge Reactober

    Von heise online

    In eigener Sache: Der tech:lounge Reactober

    the next big thing Golo Roden

    Der tech:lounge Reactober ist eine Reihe von sechs Webinaren, in denen sich alles um die UI-Entwicklung mit React dreht – vom Einstieg bis zum Deep-Dive.

    React ist eine leichtgewichtige UI-Technologie, mit der sich komplexe und skalierbare Web-Clients bauen lassen. Sie entwickelte sich schnell zu einer der meistgenutzten Technologien für die clientseitige Webentwicklung und enthält alle Features, die für Large-Scale-Entwicklung erforderlich sind. Mit einem funktionalen und komponentenorientierten Ansatz ist React die perfekte Plattform, um leistungsfähige Webanwendungen zu entwickeln.

    Für den Einstieg in und die Vertiefung von React bietet die the native web GmbH ab dem 13. Oktober 2021 den tech:lounge Reactober [1] an, eine Reihe von insgesamt sechs jeweils vierstündigen Webinaren, in denen Grundlagenwissen und auch fortgeschrittenes Know-How vermittelt werden, was man für die zeitgemäße UI-Entwicklung auf der Basis von React benötigt.

    Einführung in React (Details anzeigen [2])

    • 13.10. – Die Basics – von 0 zur ersten Komponente
    • 20.10. – Struktur mit State und Hooks
    • 27.10. – Qualitätssicherung in der Praxis

    React Deep-Dive (Details anzeigen [3])

    • 15.10. – Komponenten-Architektur strukturieren
    • 22.10. – Plugins: Routing, Redux, I18n & Co.
    • 29.10. – Go live: React im Produktiveinsatz

    Die Webinare werden als Livestream durchgeführt, sodass man einfach und bequem teilnehmen kann – ganz gleich ob von zu Hause oder aus dem Büro. Für Fragen steht ein Chat zur Verfügung.

    Der Preis beträgt 100 Euro pro Webinar, wer drei Webinare aus einem Themenbereich als Paket bucht, erhält 20 % Rabatt gegenüber der Einzelbuchung, der Preis beträgt dann 240 Euro. Darüber hinaus gelten noch einmal günstigere Konditionen für Teams. Für Studierende und Personen in der Ausbildung beträgt der Preis gegen Nachweis 30 Euro pro Webinar. Alle Preise verstehen sich jeweils zuzüglich 19 % Umsatzsteuer.

    Im Preis enthalten ist neben der Teilnahme am Livestream auch der Zugriff auf die Aufzeichnung des Webinars und die Codebeispiele.

    Alle weitergehenden Informationen und eine Buchungsmöglichkeit finden sich auf der Webseite des tech:lounge Reactobers [4].


    URL dieses Artikels:
    https://www.heise.de/-6211146

    Links in diesem Artikel:
    [1] https://www.thenativeweb.io/techlounge/reactober
    [2] https://www.thenativeweb.io/techlounge/react-introduction
    [3] https://www.thenativeweb.io/techlounge/react-advanced
    [4] https://www.thenativeweb.io/techlounge/reactober

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 07. Oktober 2021 um 10:14

    Angular oder Blazor? Eine Entscheidungshilfe für Webentwickler

    Von heise online

    Angular oder Blazor? Eine Entscheidungshilfe für Webentwickler

    ÜberKreuz Christian Liebel

    Mit Blazor ist Microsoft als letzter der großen Player auf den Markt der Single-Page-App-Frameworks vorgedrungen. Dort konkurriert Blazor gegen alteingesessene Platzhirsche wie Googles Angular. Für welche Zielgruppen Angular und Blazor jeweils interessant sind, soll dieser Artikel klären.

    Im März 2018 stellte Microsoft Blazor vor, ein von Steve Sanderson initiiertes Experiment, um .NET (zurück) in den Browser zu bringen: Statt auf JavaScript können Entwickler auf C# und die Templatesprache Razor zurückgreifen, um Webanwendungen zu entwickeln. Damit knüpft Blazor an das serverseitig ausgeführte ASP.NET MVC an.

    Blazor ist nicht gleich Blazor

    Zunächst müssen wir differenzieren zwischen den beiden Geschmacksrichtungen von Blazor: Da gibt es zunächst das serverseitig ausgeführte Blazor Server. Der Zustand der Anwendung wird hierbei vom Server verwaltet, Interaktionen der Nutzer führen zu einer Kommunikation mit dem Server über SignalR, auch HTML-Fragmente werden darüber ausgetauscht. Wenn besonders viele Nutzer die Anwendung gleichzeitig verwenden, wird der Server damit zum Bottleneck. Eine langsame Verbindung führt zu einem schlechten Antwortverhalten der Benutzeroberfläche.

    Demgegenüber steht Blazor WebAssembly. Hier wird die Anwendung einschließlich der .NET-Runtime komplett clientseitig im Browser ausgeführt. Hier braucht es im einfachsten Fall lediglich einen statischen Webserver; der Browser muss die Technologie WebAssembly unterstützen. Einmal geladen kann die Anwendung auch offline ausgeführt werden. Wenn in diesem Artikel von Blazor die Rede ist, ist immer von der WebAssembly-Variante gemeint, die auch die von vornherein geplante Zielausbaustufe war. Blazor Server ist eher als eine Zwischenlösung anzusehen.

    WebAssembly bringt viele Sprachen ins Web

    WebAssembly (Wasm) ist ein Bytecode für das Web, der JavaScript ergänzen soll. Der große Vorteil von Wasm gegenüber dem menschenlesbaren JavaScript besteht darin, dass der Code weder geparst noch interpretiert werden muss. In anderen Sprachen geschriebener Programmcode (z.B. Rust, C#, Java) kann nach Wasm kompiliert und dann im Webbrowser ausgeführt werden.

    Die Technologie soll JavaScript dabei nicht ersetzen, sondern für spezielle Anwendungsfälle ergänzen. WebAssembly-Code wird von derselben Engine ausgeführt, die auch JavaScript antreibt. Daher ist die Laufzeitperformance von Wasm-Code nicht zwingend besser als die von JavaScript-Anwendungen (siehe auch: Is WebAssembly magic performance pixie dust? [1]). WebAssembly-Code unterliegt zudem derselben Sandbox wie JavaScript. Somit können nicht beliebige native Schnittstellen aufgerufen werden, sondern nur diejenigen, für die es auch passende APIs im Web gibt.

    Um Blazor-Apps im Webbrowser auszuführen, wird zunächst die .NET-Runtime in Wasm heruntergeladen und gestartet. Als nächstes wird die passende Dynamic Link Library (DLL) mit der .NET-Assembly bezogen und auf der Runtime ausgeführt (Just in Time, ab .NET 6 soll Ahead-of-Time-Kompilierung möglich werden).

    WebAssembly ist standardisiert und wird von den vier großen Evergreen-Browsern Firefox, Edge, Safari und Chrome plattformübergreifend seit geraumer Zeit von Haus aus unterstützt. Damit grenzt sich Blazor auch von Silverlight ab, dem schon lange abgekündigten, proprietären und Browser-Plug-in-basierten Ansatz, .NET-Anwendungen im Browser auszuführen.

    Angular: Der Platzhirsch unter den SPA-Frameworks

    Angular wurde im Jahr 2016 von Google veröffentlicht. Es basiert auf den Erfahrungen von Google mit dem Vorgängerframework AngularJS, das 2009 erstmals herausgegeben wurde. Dieses wiederum entstand auf Basis der Erfahrungen bei der Implementierung großer Webanwendungen wie Google Mail. Angular ist das meistverwendetste Framework bei Google selbst.

    Die ab 2016 herausgegebene Variante basiert auf der Sprache TypeScript. Vergleichbar zu Razor erweitert Angular den HTML-Sprachumfang um eine Templatingsyntax. Vor der Ausführung im Browser müssen die TypeScript-Quelldateien nach JavaScript übersetzt werden. JavaScript wiederum kann direkt im Browser ausgeführt werden, weswegen Angular-Apps deutlich „webnäher“ sind als Blazor-Anwendungen.

    Während bei Angular mittlerweile jede Version eine Long-Term-Support-Version (LTS) mindestens 18 Monate Unterstützung erhält, gibt es bei Blazor noch keine solche Version. Ferner sind Community und Ökosystem bei Angular bis jetzt größer als bei Blazor.

    Argumente für Blazor

    Blazor ist vor allem für die Teams interessant, die über Wissen im .NET- und C#-Bereich verfügen, im Umgang mit JavaScript aber eher weniger erfahren sind und die kein Wissen in diesem Bereich aufbauen können oder wollen: Ein großer Vorteil in der Verwendung von Blazor besteht darin, dass bestehender Quelltext eventuell ins Web mitgenommen werden kann. Frühere Investitionen in eine Codebasis bleiben somit erhalten.

    Wie oben angemerkt ist das aber nur dann möglich, wenn die verwendeten Funktionen und Schnittstellen im Webbrowser zur Verfügung stehen, also in JavaScript implementiert werden könnten: Ein wahlfreier Zugriff auf das Dateisystem oder Geräteschnittstellen ist auch mit WebAssembly nicht möglich. Weiterhin kann C#-Code zwischen Server und Client geteilt werden, etwa Validierungslogik. Die bekannten Komponentenhersteller bieten auch für Blazor passende Komponenten an, eventuell sind diese in bestehenden Abonnements sogar schon enthalten und können einfach mitverwendet werden.

    Argumente für Angular

    Angular ist deutlich älter und damit auch reifer als Blazor. Viele Features, die Angular schon seit geraumer Zeit mitbringt und dort robust funktionieren, muss Blazor erst nachliefern: Das Lazy Loading von Anwendungsbestandteilen kam bei Blazor etwa erst mit .NET 5 hinzu. Andere Features sind noch gar nicht verfügbar. Vorne liegt Angular etwa bei Ahead-of-Time-Kompilierung, was für deutlich kleinere Bundlegrößen sorgt oder bei Live beziehungsweise Hot Reloading. Hier wird die Anwendung nach einer Änderung im Quelltext automatisch neu geladen, was die Entwicklerproduktivität deutlich steigert. Beides soll in Blazor erst mit .NET 6 im November diesen Jahres nachgereicht werden. Da Angular-Anwendungen vor Ausführung im Browser nach JavaScript übersetzt werden, kommen diese Apps ohne schwergewichtige Runtime aus: Eine einfache Hallo-Welt-Anwendung ist in Angular gerade einmal 170 Kilobyte groß, bei Blazor starten Anwendungen mit 2 Megabyte Dateigröße. JavaScript-basierte Browserschnittstellen können in Angular direkt aufgerufen werden, bei Blazor braucht es hingegen ein passendes NuGet-Paket oder die Verwendung der Interop-Brücke.

    Fazit

    Blazor bietet sich für die Entwickler an, die über Kenntnisse oder Bestandscode im .NET-Umfeld verfügen, bei denen ein Wechsel auf einen anderen Technologiestack nicht in Frage kommt und die höhere Bundlegrößen tolerieren können. Wichtig ist dabei, dass Blazor keine magische .NET-zu-Web-Übersetzungsmaschine ist: Auch Blazor-Entwicklern bleibt die Beschäftigung mit HTML, CSS, REST-APIs, CORS oder Betriebsmodellen in der Cloud nicht erspart, Berührungspunkte mit Webtechniken wird es also definitiv geben.

    Selbst für .NET-Entwickler kann das auf TypeScript aufsetzende Angular interessant sein: Mit Anders Hejlsberg zeichnet sich derselbe Sprachdesigner für TypeScript verantwortlich wie auch für C#. Beide Sprachen beeinflussen sich oft gegenseitig und sind syntaktisch sehr ähnlich. Das Framework hat sich seit Jahren im Einsatz bewährt und aufgrund des weiterverbreiteten Einsatzes bei Google selbst dürfte die Weiterentwicklung noch auf Jahre gesichert sein. Entwickler ohne .NET-Hintergrund sind bei Angular vermutlich besser aufgehoben.

    Schließlich ist festzustellen, dass sich beide Ansätze funktional nicht unterscheiden: Derselbe Funktionsumfang lässt sich mit Angular wie auch in Blazor umsetzen und plattformübergreifend zur Ausführung bringen.


    URL dieses Artikels:
    https://www.heise.de/-6197138

    Links in diesem Artikel:
    [1] https://surma.dev/things/js-to-asc/

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 21. September 2021 um 15:09

    c't 18/2021 - Der Blick ins Heft mit E-Bike-Technik, VPN und Zauberwürfel

    Von Ulrike Kuhlmann

    c't 18/2021 - Der Blick ins Heft mit E-Bike-Technik, VPN und Zauberwürfel

    @ctmagazin | Blog Ulrike Kuhlmann

    In c’t 18/2021 gehts um die Technik in E-Bikes. Wir befassen uns mit dem Schutz und den Tücken von VPN, retten verschlammte Festplatten und drehen bunte Würfel.

    Hallo aus Hannover,

    hier bei c’t kommen etliche Leute mit dem Fahrrad zur Arbeit und bewegen sich in ihrer Freizeit gern auf zwei Rädern. Ich gehöre auch dazu und nutze das Rad außerdem als Sportgerät an Wochenenden und im Urlaub. Mein Interesse an E-Bikes ist deshalb allenfalls technischer Natur.

    Unser Schwerpunkt im aktuellen Heft hat mich trotzdem angefixt, denn darin gehts genau um die Technik von E-BIkes – wir sind schließlich kein Fahrradmagazin, sondern eines für IT. Die Kollegen haben die unterschiedlichen Konzepte und Finessen aktueller E-Bikes bis hin zum Tuning unter die Lupe genommen, das finde ich total spannend. Und ich hätte nie erraten, welche E-Bike-Modelle im vergangenen Jahr besonders oft gekauft wurden: Dass elektrische Rennräder nicht so gut laufen, war klar. Aber mehr Mountainbikes mit als ohne E-Antrieb? No Way.

    Wie stehen Sie zu E-Bikes? Erkennen Sie sich in einer der beiden Befragten-Gruppen aus der Grafik wieder?

    c't 18/2021 - Der Blick ins Heft mit E-Bike-Technik, VPN und Zauberwürfel

    Meine persönlichen Highlights in dieser Ausgabe:

    Rasen und Blumen ausreichend gießen und dennoch Wasser sparen? Das klappt dank smarter Ventile zwischen Wasserhahn und Gartenschlauch.
    Rasen und Blumen ausreichend gießen und dennoch Wasser sparen? Das klappt dank smarter Ventile zwischen Wasserhahn und Gartenschlauch.

    PS aus der Redaktion

    Häufig finde ich in c’t Themen, mit denen ich nicht gerechnet hätte. Diesmal wars ein Artikel meines Kollegen Wilhelm Drehling: Er hat einen Rubik's Cube getestet. Ich dachte, Zauberwürfel sind längst out, von vorgestern, 1980er sozusagen. Falsch gedacht, es werden weiterhin Würfel gebaut, heute allerdings smarte Versionen. Und die sind sogar für Profis interessant. Weil ich weiß, dass meine Nichte als Kind sehr gern mit dem Zauberwürfel gespielt hat, konnte ich nicht anders: Ich hab ihr einen bestellt. Jetzt bin ich gespannt, ob sie die Variante "Der mit der App spricht" auch so gut findet, wie ich nach Lesen des c’t-Tests:

    Zauberwürfel spricht mit App: GAN356 i Carry [13]

    Mir war gar nicht klar, dass es sogar richtige Turniere fürs Arrangieren der bunten Würfelflächen gibt. Das muss ein irres Spektakel sein. Beherrschen Sie die Finessen des Magic Cube? Wenn ja, wie lange brauchen Sie, um die Flächen zu ordnen? Schreiben Sie mir an , ich bin gespannt!

    Immer in c’t:

    c't-Cartoon Schlagseite
    c't-Cartoon Schlagseite

    Hier c’t lesen

    Blick ins Heft als Newsletter

    Bestellen Sie unsere Heftvorschau als Newsletter und erhalten Sie alle 2 Wochen einen Überblick über die aktuelle c’t per Mail:


    URL dieses Artikels:
    https://www.heise.de/-6160398

    Links in diesem Artikel:
    [1] https://www.heise.de/select/ct/2021/18/2114109114267327767
    [2] https://www.heise.de/select/ct/2021/18/2118913314466014605
    [3] https://www.heise.de/select/ct/2021/18/2118913341442463451
    [4] https://www.heise.de/select/ct/2021/18/2118913370844478797
    [5] https://www.heise.de/select/ct/2021/18/2118314232583378987
    [6] https://www.heise.de/select/ct/2021/18/2121007270279521682
    [7] https://www.heise.de/select/ct/2021/18/2120411105449144072
    [8] https://www.heise.de/select/ct/2021/18/2118207383140197497
    [9] https://www.heise.de/select/ct/2021/18/2120300402760007086
    [10] https://www.heise.de/select/ct/2021/18/2120212262046232274
    [11] https://www.heise.de/select/ct/2021/18/2104314470145316514
    [12] https://www.heise.de/select/ct/2021/18/2112417523874083746
    [13] https://www.heise.de/select/ct/2021/18/2119612275149569355
    [14] mailto:uk@ct.de
    [15] https://www.heise.de/select/ct/2021/18/2031014552154148829
    [16] https://www.heise.de/select/ct/2021/18/2031014552307432676
    [17] https://www.heise.de/select/ct/2021/18/2031014552606769863
    [18] https://www.heise.de/select/ct/2021/18/2031014550480465643
    [19] https://www.heise.de/select/ct/2021/18
    [20] https://www.heise.de/newsletter/manage/ct-magazin

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 13. August 2021 um 06:00

    Tabs oder Spaces?

    Von heise online

    Tabs oder Spaces?

    the next big thing Golo Roden

    Tabs oder Spaces? Diese Frage spaltet Entwicklerinnen und Entwickler seit Jahren, wenn nicht seit Jahrzehnten. Dabei ist die Frage, ob mit Tabs oder Spaces eingerückt werden sollte, eigentlich ganz leicht zu beantworten.

    Die Frage nach der Einrückung ist annähernd so alt wie die Softwareentwicklung selbst. Für den Einsatz von Tabs und auch für den von Spaces gibt es unzählige Argumente – und jeweils mindestens genauso viele Argumente dagegen.

    Eigentlich könnte man sich auf den Standpunkt stellen, dass es letztlich keine Rolle spielt, wie eingerückt wird – doch praktisch jede Entwicklerin und jeder Entwickler hat eine eigene Meinung dazu, die ausführlich begründet werden kann.

    Was spricht also wirklich für den Einsatz von Tabs, was für den von Spaces – und was ist wann warum zu bevorzugen? Das folgende Video versucht, die Frage zu beantworten:


    URL dieses Artikels:
    https://www.heise.de/-6153563

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 05. August 2021 um 10:13

    c't 17/2021 - Der Blick ins Heft mit Raspi-Projekten und Phishing-Tricks

    Von Achim Barczok

    c't 17/2021 - Der Blick ins Heft mit Raspi-Projekten und Phishing-Tricks

    @ctmagazin | Blog Achim Barczok

    In c't 17/2021 erfahren Sie, wie Sie mit dem Raspi alte Hardware wieder zum Laufen kriegen oder sogar ins Netz holen. Außerdem gehts um Online-Wahlwerbung, Phishing und das Homeoffice im Grünen.

    Moin aus Hannover,

    in den 90er Jahren habe ich einen ganzen Sommer lang geschuftet, um mir eine Stereoanlage zu kaufen: Verstärker, Radioreceiver, Decks für Kassetten und CDs – alles dabei. Nur WLAN kannte sie damals noch nicht. Und so wanderte das gute Stück irgendwann, nachdem MP3s die CD und später Streaming die MP3s ablöste, in den Keller – und einen Umzug später auf den Recyclinghof. Sollten Sie Ihre Anlage von damals noch nicht abgegeben haben, werfen Sie doch ein Blick in die aktuelle c't: Mein Kollege Dennis Schirrmacher zeigt, wie sich Spotify und andere Streamingdienste per WLAN über einen Raspi mit alten Hifi-Türmen verbinden.

    Mit dem Raspi lassen sich auch noch allerlei andere alte Hardware netzfähig machen oder deren Sicherheits- und Treiberprobleme beseitigen: den alten, aber immer noch hervorragend funktionierenden Scanner zum Beispiel, oder teure Mess- oder Medizingeräte:

    Bild: Andreas Martini
    (Bild: Andreas Martini)

    Meine persönlichen Highlights in dieser Ausgabe:

    PS aus der Redaktion:

    Es ist 2021, und immer noch schafft es weder mein Mailanbieter, noch die Software auf meinem Server, allen Spam effektiv in meinen Konten herauszufischen. Heute zum Beispiel habe ich schon einen "TESLA Model 3" gewonnen und wurde ausgewählt für die Teilnahme an einer Umfrage zur Erfahrung in Supermärkten, zu der mir der Spammer auch noch mit einem "Herzlichen Glückwunsch!" gratulierte. Mit Pflastern könnte ich in 30 Tagen 14,8 kg abnehmen und mit einem Spray meine "Standfestigkeit" erhöhen. Damit ich mir Pflaster und Spray leisten kann, könnte ich mit Amazon unverschämt viel Geld verdienen, heißt es in einer anderen Mail. Sehr verlockend – bisher hat ja nur Amazon unverschämt viel Geld an mir verdient.

    Das klingt zwar amüsant, ist aber auch ziemlich nervig – und gefährlich. Immer mal wieder mischt sich darunter eine saugut gefälschte Rechnung für einen Dienst, den ich nutze, oder ein vermeintlicher Tracking-Link genau dann, wenn ich etwas bestellt habe. Ein falscher Klick trennt mich dann von einer Phishing-Attacke.

    Mein Kollege Jan Mahn war nach einem Hinweis eines c't-Lesers einem dieser Phishing-Spammer auf der Spur. Er hat seinen Namen herausgefunden und bis in Telegram-Channels und Microsoft-Clouds verfolgt – und ihm dann selbst eine Phishing-Nachricht geschickt. Die ganze Geschichte lesen Sie in der aktuellen c't:

    Wie wir einem unachtsamen Phisher auf die Schliche kamen [12]

    Welches waren die absurdesten – oder geschicktesten – Spam-Mails, die Sie je bekommen haben? Schreiben Sie mir an (aber forwarden Sie mir auf keinen Fall Ihren Spam ;) ).

    Immer in c't:

    c't-Cartoon Schlagseite
    c't-Cartoon Schlagseite

    Hier c't lesen

    Blick ins Heft als Newsletter

    Bestellen Sie unsere Heftvorschau als Newsletter und erhalten Sie alle 2 Wochen einen Überblick über die aktuelle c't per Mail:


    URL dieses Artikels:
    https://www.heise.de/-6148051

    Links in diesem Artikel:
    [1] https://www.heise.de/select/ct/2021/17/2115912325966703636
    [2] https://www.heise.de/select/ct/2021/17/2115912341181956736
    [3] https://www.heise.de/select/ct/2021/17/2115912375249708287
    [4] https://www.heise.de/select/ct/2021/17/2115312330005159731
    [5] https://www.heise.de/select/ct/2021/17/2119310071989299936
    [6] https://www.heise.de/select/ct/2021/17/2116711360296623124
    [7] https://www.heise.de/select/ct/2021/17/2117410351882465724
    [8] https://www.heise.de/select/ct/2021/17/2116609511633046882
    [9] https://www.heise.de/select/ct/2021/17/2116008564237539335
    [10] https://www.heise.de/select/ct/2021/17/2116008595413429691
    [11] https://www.heise.de/select/ct/2021/17/2116708124887893691
    [12] https://www.heise.de/select/ct/2021/17/2118708502587724805
    [13] mailto:acb@ct.de
    [14] https://www.heise.de/select/ct/2021/17/2031014542585999188
    [15] https://www.heise.de/select/ct/2021/17/2031014542784320586
    [16] https://www.heise.de/select/ct/2021/17/2031014542991089020
    [17] https://www.heise.de/select/ct/2021/17/2031014542265054262
    [18] https://www.heise.de/select/ct/2021/17
    [19] https://www.heise.de/newsletter/manage/ct-magazin

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 30. Juli 2021 um 06:30

    Muss ich mich schämen, Software-Architekt zu sein?

    Von heise online

    Muss ich mich schämen, Software-Architekt zu sein?

    Continuous Architecture Eberhard Wolff

    Software-Entwicklung ist voller spannender Herausforderungen, und es gibt immer etwas Neues zu lernen: Software ist schließlich eine der komplexesten Dinge, die von Menschen gebaut wird. Aber die Ergebnisse in der Realität sind manchmal mehr als enttäuschend – sie sind beschämend.

    In der aktuellen c't ist ein Artikel [1], dessen Untertitel eigentlich schon der erste Aufreger sein könnte: Es geht um "typische" Datenlecks in Software für die Test- und Impfterminvergabe. Mit anderen Worten: Software in diesem Bereich ist so unsicher, dass es typische Fehler gibt – und diese Software ist auch in Produktion. Die im Artikel diskutierte Software ist medizinische Software. Nehmen wir an, wir würden über andere Medikamente sprechen. Wäre es akzeptabel, dass es "typische" vermeidbare Sicherheitsprobleme bei Medikamenten gäbe, die auch tatsächlich verordnet und eingenommen werden?

    Im Übrigen ist die c’t in diesem Bereich nicht alleine. Die Gruppe zerforschung beschäftigt sich auch intensiv mit der Sicherheit solcher Lösungen und schreibt [2]: “Wir haben mittlerweile das vierte Testzentrums-Datenleck in drei Monaten gefunden und sind einfach nur noch genervt.” Was würden wir sagen, wenn es das vierte Problem in drei Monaten mit verschiedenen Medikamenten gäbe? Und Experten anschließend von der Sicherheit der Medikamente “einfach nur noch genervt” sind?

    Der Vergleich zwischen Software und Medikamenten scheint auf den ersten Blick weit hergeholt zu sein. Mittlerweile ist es vielen gleichgültig, wo überall Daten leaken. Es passiert einfach so häufig, und bestimmte Unternehmen leben von dem Ausspionieren ihrer Kunden. Aber eine Schnelltest-Software [3]machte es sehr einfach Testergebnisse zu fälschen. Solche Testergebnisse werden verlangt, um Personen vor einer Ansteckung durch Kontakt mit Infizierten zu schützen. Wenn die Testergebnisse gefälscht werden können, stellt das ein Gesundheitsrisiko dar – wie ein fehlerhaftes Medikament auch. Die Luca App zur Kontaktverfolgung konnte sogar zu Angriffen auf Gesundheitsämter [4] genutzt werden. Über die Konsequenzen eines erfolgreichen Angriffs will ich nicht spekulieren.

    Zeitschriften fixen Sicherheitsprobleme?

    Die Einleitung des sehr lesenswerten c’t Artikels berichtet dann, dass bei der c't eine Vielzahl von Meldungen über Datenlecks bei Software für Test- und Impfterminvergabe eingegangen ist. Die c't verfolgt die Probleme und informiert die Hersteller. Hier ist der nächste Aufreger: Die c't, zerforschung und viele andere machen sicher einen super Job – aber offensichtlich muss eine Zeitschrift oder eine Gruppe von Expert:innen sich dieser Probleme annehmen. Nehmen wir als Analogie wieder Medikamente. Wäre es akzeptabel, wenn eine Zeitschrift routinemäßig über mögliche Probleme mit Medikamenten informieren würde, und diese Zeitschrift dann anschließend die Fälle näher untersucht und den Herstellern mit Rat und Tat zur Seite steht – und nur so die Probleme wirklich behoben werden? Sicher gibt es vereinzelt Medikamenten-Skandale, die über die Presse bekannt werden, und Fachzeitschrift, die wissenschaftliche Studien über Medikamente verbreiten. Aber eklatante Probleme mit Medikamenten sind eben nicht Routine. Und in der Branche und bei den Behörden sind Maßnahmen etabliert, damit das so bleibt.

    Nutzer:innen sollen Sicherheit bewerten

    Das Fazit ist dann der nächste Aufreger: "Ärzte und Apotheker sollten sich die Software sehr gewissenhaft ansehen (oder einen unabhängigen IT-Experten zu Rate ziehen)." Man kann kaum ernsthaft von Ärzt:innen und Apotheker:innen die Kompetenz verlangen, die Sicherheit einer Software zu bewerten. Ich arbeite im Bereich Software-Entwicklung und würde mir das selber nicht wirklich zutrauen. Vor kurzem bin ich privat um Rat in Bezug auf ein Sicherheitsthema gebeten worden und habe auch einen Rat gegeben. Allerdings bleibt das schlechte Gefühl, dass ich gegebenenfalls ein Detail übersehen habe, das am Ende dann doch große Auswirkungen hat. Daher ist der Hinweis, Expert:innen zu Rate zu ziehen, auch sehr sinnvoll. Aber auch hier bemühe ich den Vergleich zu einem Medikament: Kann man von einem Patienten verlangen, sich selber mit der Sicherheit eines Medikaments zu beschäftigen? Ich erwarte eigentlich, dass Medikamente, die ich in der Apotheke kaufe oder die mir ein Arzt verordnet, sicher sind. Üblicherweise werde ich sogar von Apotheker:innen und Ärzt:innen über die Details und mögliche Probleme proaktiv beraten.

    Die Verantwortung für den Datenschutz auf die Nutzer:innen zu verlagern, kann desaströse Konsequenzen haben. Einige Lehrer:innen, die auf Eigeninitiative Videokonferenz-Lösungen in der Pandemie für ihren Unterricht genutzt haben, mussten die Sicherheit und den Datenschutz dieser Lösungen selber bewerten, weil sie oft dazu keine klaren Produktempfehlungen bekommen haben. Am Ende müssen die Lehrer:innen mit den Konsequenzen leben, wenn ihre Beurteilung falsch war – oder sie unterlassen es, sich dem Risiko auszusetzen und machen eben keinen Unterricht per Videokonferenz. Beide Konsequenzen sind nicht akzeptabel.

    Aber die Empfehlung, sich die Lösungen anzuschauen, ist skurrilerweise sinnvoll: Tatsächlich können c't -Leser:innen meiner Einschätzung nach die geschilderten Herausforderungen nachvollziehen und auch Software auf diese Schwächen untersuchen. Dann sind diese Probleme aber auch für Software-Entwickler:innen nachvollziehbar – und das wirft die Frage auf, warum sie in Software überhaupt vorhanden sind. Mit anderen Worten: Wir sprechen nicht über subtile Herausforderungen, sondern solche, die man nach dem Studium einiger Seiten einer Zeitschrift verstehen kann und vermutlich auch abstellen können müsste – und daran scheitern die Hersteller dieser Software-Lösungen.

    Wie unprofessionell sind wir eigentlich?

    Es ist gut, dass die c’t und viele Sicherheitsforscher:innen und Expert:innen sich kümmern. Aber es ist erschreckend, dass unsere Branche der Softwareentwicklung solche fehlerhaften Produkte auf den Markt bringt. Als Ergebnis gibt es keinen Aufschrei, sondern eben einen Artikel, der davon handelt, wie Nutzer:innen sich mit der Situation arrangieren können und wie sie selber herausfinden können, ob die Software ausreichend sicher ist. Sind wir so abgestumpft, dass wir diesen Zustand akzeptieren? Ist unsere Branche wirklich so unprofessionell, dass sich Nutzer:innen eben mit diesen Mängeln unserer Produkte arrangieren müssen? Ist es unser Qualitätsanspruch, das unserer Produkte Fehler haben, die man als interessierter Laie nach dem Lesen einiger Seiten in einer Zeitschrift diagnostizieren kann?

    Besonders bedenklich ist, dass diese Anwendungen personenbezogene Gesundheitsdaten verwalten. Diese Daten sind sehr sensibel und besonders schützenswert. Auch die Luca App [5] zur Kontaktverfolgung geht mit Gesundheitsdaten um, weil über die App ja gerade infizierte Personen verfolgt werden soll. Dazu muss der Infektionsstatus bekannt sein – und das sind Gesundheitsdaten. Auch für diese App gibt es sehr viel Kritik und Sicherheitslücken [6] bis hin zu den schon erwähnten möglichen Angriffen auf Gesundheitsämter. Dazu hat der Sicherheitsexperten Marcus Mengs zunächst ein Dokument mit fast 21.000 Wörtern geschrieben und dann die Arbeit an der Luca App eingestellt. Der Grund steht im Dokument [7]: “Der Hersteller gibt mir keine Zeit die Zusammenhänge zu dokumentieren, welche zu Sicherheitslücken im Code führen und patcht stattdessen ständig Code mit neuen Fehlern nach.”

    Mit mindestens 25 Mio € Einnahmen [8] muss man die Luca App einen kommerziellen Erfolg nennen. Und die App hat bekanntermaßen prominente Unterstützung durch den Musiker Smudo [9]. Seine Band “Die fantastischen Vier” ist “begeistert” von dem Produkt und sieht sich als Teil des Teams [10]. Das zeigt eine Erklärungsmöglichkeit für den Zustand unserer Branche: Wenn der Applaus der Prominenz und der kommerzielle Erfolg von der Sicherheit der Anwendungen entkoppelt ist, dann ist es unlogisch, sich mit Sicherheit zu beschäftigen, weil sie für den Erfolg egal ist – außer man hat ethische Prinzipien, die dem Ignorieren entgegenstehen.

    Die Spitze der Absurdität ist aber das immer wieder zu hörende Argument, dass der Datenschutz einer effektiven und effizienten IT im Wege steht. Der "Datenschutz", der in dem c’t-Artikel beschrieben wird oder der bei der Luca App “umgesetzt” wurde, kann damit zumindest nicht gemeint sein. So ist der Datenschutz auf der einen Seite nicht gewährleistet, kann aber gleichzeitig als Entschuldigung für weitere Mängel unserer Branche dienen.

    Es ist ja nicht alles schlecht

    Aber es gibt auch Lichtblicke. Ich war an Softwareprojekten beteiligt, die unter anderem auch personenbezogene Gesundheitsdaten verwaltet haben. Dort war sehr präsent, dass diese Daten besonders geschützt werden müssen und dementsprechend wurden diese Herausforderungen adressiert. Auch in vielen anderen Kontexten habe ich beispielsweise die Anforderungen durch die Datenschutzgrundverordnung DSGVO als wesentlich für Architektur-Diskussionen erlebt. Und natürlich gibt es für die Kontaktverfolgung-Anwendungen wie die Corona-Warn-App, die so konsequent auf Datenschutz ausgerichtet ist, dass sogar der Chaos Computer Club sie lobt [11]. Und den bereits erwähnten Sicherheitsexpert:innen und vielen anderen, die hier gar nicht erwähnt werden, ist die Situation offensichtlich nicht egal, sondern sie arbeiten aktiv daran sie zu verbessern - wofür ich mich an dieser Stelle bedanken möchte.

    Am Ende bleibt aber die unangenehme Frage, ob unsere Branche im Vergleich zu anderen Branchen verantwortungsloser handelt. So oder so sollten wir uns alle anstrengen, in Zukunft Sicherheitsprobleme in Software zu vermeiden. Das ist besser, als sich zu schämen. Und das Studium des Artikels in der c't oder die Werke der Sicherheitsexpert:innen kann ein guter erster Schritt sein, um Sicherheitslücken kennenzulernen und zukünftig zu vermeiden. Vielleicht wird unsere Branche dann endlich erwachsener und verantwortungsvoller.

    tl:dr

    Leider ist die Qualität von Software-Lösungen oft mehr als schlecht. Sich dafür zu schämen ist aber nicht so effektiv, wie die Situation zu verbessern.

    Vielen Dank an Anja Kammer, Tammo van Lessen, Tanja Maritzen, Joachim Praetorius, Max Schröter, Stefan Tilkov und Jan Seeger für die Kommentare zu einer früheren Version des Artikels.


    URL dieses Artikels:
    https://www.heise.de/-6116235

    Links in diesem Artikel:
    [1] https://www.heise.de/select/ct/2021/14/2113009092122225886
    [2] https://zerforschung.org/posts/medicant/
    [3] https://zerforschung.org/posts/medicus/
    [4] https://de.wikipedia.org/wiki/Luca_(App)#Angriff_auf_Gesundheits%C3%A4mter_und_Datenklau_durch_Code-Injection
    [5] https://www.heise.de/thema/Luca_App
    [6] https://de.wikipedia.org/wiki/Luca_(App)#Kritik
    [7] https://github.com/mame82/LucaAppIssues/blob/main/abandoned_issues.md
    [8] https://de.wikipedia.org/wiki/Luca_(App)#Einkauf_der_App_trotz_schwerer_M%C3%A4ngel,_ohne_staatliche_Ausschreibung
    [9] https://de.wikipedia.org/wiki/Luca_(App)#Entwicklung
    [10] https://www.luca-app.de/uber-uns/
    [11] https://www.zdf.de/nachrichten/politik/corona-app-launch-100.html

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 24. Juni 2021 um 11:26

    Die Temporal API – besseres Datehandling für JavaScript

    Von heise online

    Die Temporal API – besseres Datehandling für JavaScript

    Tales from the Web side Sebastian Springer

    Der ECMAScript-Standard wird stetig weiterentwickelt und JavaScript damit stetig verbessert. Eine der größten Baustellen war bisher der Umgang mit Datum und Zeit. Das ändert sich jedoch mit der neuen Temporal API.

    JavaScript, Datum und Zeit, das ist so eine Geschichte für sich und sie nimmt leider kein gutes Ende. Jedes Mal, wenn ich ein neues Date-Objekt erzeuge oder noch schlimmer mit Datum und Zeit rechnen muss, frage ich mich, wie es eine Sprache mit einer so schlechten Datums- und Zeitimplementierung so weit bringen konnte. Aber seien wir mal ehrlich: Bei diesem Thema bekleckern sich auch andere Sprachen nicht mit Ruhm. Aber jetzt sprechen wir erstmal von JavaScript und einer sehr erfreulichen Entwicklung.

    JavaScript erhält eine Spracherweiterung mit dem Namen Temporal, die sich mit Datum und Zeit beschäftigt und eine deutlich angenehmere Schnittstelle als die bisherige Date-API hat, die sich übrigens an einer der ersten Date-APIs von Java orientiert. Die neue Schnittstelle behebt nicht nur einige Schwächen der bisherigen, sondern gestaltet den Umgang mit Zeit und Datum deutlich moderner und greift einige Aspekte von modernen Bibliotheken wie beispielsweise die Unveränderbarkeit von Objekten auf. Aktuell befindet sich die API zwar noch als ECMAScript Proposal in der Stage 3. Das ist jedoch auch beinahe das Ende des Standardisierungsprozesses mit seinen insgesamt vier Stufen, die ein Feature durchlaufen muss, bevor es in den Standard aufgenommen wird. Üblicherweise gibt es in der dritten Stufe keine größeren Änderungen mehr an der Schnittstelle, sodass das, was wir jetzt in der Temporal API finden, mit großer Wahrscheinlichkeit auch das sein wird, was schließlich die Browserhersteller in ihre JavaScript Engines aufnehmen.

    Für alle Ungeduldigen, die der Temporal API bereits jetzt eine Chance geben möchten, existiert ein Polyfill, das die Schnittstelle in aktuellen Browsern nachbildet. Das NPM-Paket mit dem Namen proposal-temporal enthält es und wird mit dem Kommando npm install proposal-temporal installiert. Die Temporal-Schnittstelle ist, wie alle nativen Sprachfeatures von JavaScript, plattformunabhängig. Das bedeutet, dass es sowohl clientseitig im Browser als auch serverseitig in Node.js zum Einsatz kommen kann. Das gleiche gilt für das Polyfill, es ist außerdem kompatibel mit allen gängigen Modulsystemen, sodass es in allen Umgebungen getestet werden kann.

    Schnelleinstieg: Wie komme ich an mein Datum?

    Es gibt mehrere Anwendungsfälle, denen man in JavaScript-Applikationen immer wieder begegnet und diese werden wir uns als Erstes ansehen. Beginnen wir mit dem aktuellen Zeitpunkt. Das Temporal-Objekt bietet für diesen Zweck das now-Objekt mit der plainDateTime-ISO-Methode. Gerade für den Austausch zwischen Systemen arbeiten Entwickler nicht nur mit einer Datumszeichenkette, sondern mit UNIX-Zeitstempeln, also den Sekunden, die seit dem 1.1.1970 00:00 vergangen sind. Hierfür bietet das now-Objekt die Methode instant, deren Rückgabewert die epochSeconds-Eigenschaft aufweist, die wiederum den UNIX-Zeitstempel enthält. Die letzte Aufgabe im Schnellstart mit der neuen Temporal-Schnittstelle ist das Erzeugen eines beliebigen Zeitpunkts. Dies wird über die PlainDateTime.from-Methode erreicht. Die from-Methode akzeptiert sowohl ein Konfigurationsobjekt als auch eine Zeichenkette, die das gewünschte Datum angibt. Das nachfolgende Listing zeigt die verschiedenen Szenarien.

    import { Temporal } from "proposal-temporal"; 

    const currentTime = Temporal.now.plainDateTimeISO();
    console.log(currentTime.toString()); // Ausgabe:
    2021-06-03T08:22:18.381338378

    const timeStamp = Temporal.now.instant().epochSeconds;

    console.log(timeStamp); // Ausgabe: 1622701338
    const christmas = Temporal.PlainDateTime.from({
    day: 24,
    month: 12,
    year: 2021,
    hour: 20,
    minute: 15,
    second: 32
    });
    console.log(christmas.toString()); // Ausgabe: 2021-12-24T20:15:32

    Die verschiedenen Klassen der Temporal API

    Bestehende Applikationen werden es bei der Umstellung von der Date API auf die neue Temporal-Schnittstelle erforderlich machen, dass die Datums- und Zeitobjekte zwischen beiden Schnittstellen konvertiert werden. Listing 2 zeigt, wie eine solche Umwandlung funktionieren kann.

    import { Temporal } from 'proposal-temporal';

    const date = new Date('2020-12-24T20:15:32');
    const temporal = new Temporal.ZonedDateTime(
    BigInt(date.getTime() * 10 ** 6),
    'Europe/Berlin');
    console.log(temporal.toString());
    //2020-12-24T20:15:32+01:00[Europe/Berlin]

    const temporal2 = Temporal.ZonedDateTime.from({
    year: 2020,
    month: 12,
    day: 24,
    hour: 20,
    minute: 15,
    second: 32,
    timeZone: 'Europe/Berlin'
    });
    const date2 = new Date(temporal2.epochMilliseconds);
    console.log(date2.toLocaleString()); // Ausgabe: 24/12/2020, 20:15:32

    Dieses Codebeispiel zeigt ein grundlegendes Problem der Date API von JavaScript sehr schön: Es ist nicht möglich, ein Date-Objekt zu erzeugen, das unabhängig von einer Zeitzone ist. Das Date-Objekt hat die lokale Zeitzone der Umgebung, in meinem Fall ist das die mitteleuropäische Zeit. Die Entsprechung dieses Konzepts in Temporal sind Objekte vom Typ ZonedDateTime. In einigen Fällen ist jedoch die Information über die Zeitzone in einem Datumsobjekt gar nicht notwendig. Dieses Problem löst die Temporal-Schnittstelle, indem es verschiedene Objekte gibt, um eine Datums- und Zeit-Kombination zu repräsentieren. Die folgende Abbildung aus dem Temporal Proposal fasst diesen Sachverhalt grafisch zusammen.

    Temporal-Api.png
    Die Klassen der Temporal API (Bild: https://tc39.es/proposal-temporal/docs/object-model.svg)

    Die umfassendste Klasse der Schnittstelle ist ZonedDateTime, sie enthält die Information über den Zeitpunkt sowie die Zeitzone. Im Gegensatz dazu haben die Plain-Typen wie PlainDateTime oder PlainTime keine Information über Zeitzonen und stellen lediglich einen generischen Zeitpunkt dar. Alle Typen, außer Instant, arbeiten außerdem auf einem bestimmten Kalender. Standardmäßig nutzt Temporal den Gregorianischen Kalender, der in der ISO 8601-Norm standardisiert ist. Weitere Beispiele für Kalender, die an dieser Stelle zum Einsatz kommen können, sind der Buddhistische, der Persische oder der Japanische Kalender.

    Rechnen mit Datumswerten

    Ein großer Vorteil der Temporal API gegenüber der bisherigen Implementierung ist, dass sie in der Lage ist, mit Datumswerten zu rechnen und mit Zeitspannen umzugehen. Die Grundlage hierfür bildet die Duration-Klasse beziehungsweise Objekte, die der Struktur entsprechen, die diese Klasse vorgibt. Beim Rechnen mit Datumswerten kommt eine weitere Besonderheit der Temporal Schnittstelle zum Tragen: Die Schnittstelle arbeitet mit immutable Objekten, modifiziert das Ausgangsobjekt beispielsweise bei einer Addition nicht direkt, sondern gibt ein neues Objekt zurück. Wie das im Code funktioniert, zeigt folgendes Beispiel:

    import { Temporal } from 'proposal-temporal'; 

    const now = Temporal.now.plainDateTimeISO();
    console.log(now.toString()); // Ausgabe: 2021-06-03T19:26:42.949202945
    const future = now.add({days: 30});
    console.log(future.toString()); // Ausgabe: 2021-07-03T19:26:42.949202945
    console.log(now.toString()); // Ausgabe: 2021-06-03T19:26:42.949202945

    Alle Zoned- und Plain-Klassen der Temporal API unterstützen die add- und subtract-Methoden. Diese ermöglichen, wie die Namen schon verraten, das Hinzufügen beziehungsweise Abziehen von Zeitspannen zu einem bestimmten Zeitpunkt. Beide Methoden akzeptieren einfache JavaScript-Objekte mit den Angaben, wie viele Zeiteinheiten, also beispielsweise Monate, Tage oder Stunden, abgezogen oder addiert werden sollen. Alternativ kann auch ein Duration-Objekt eingesetzt werden.

    Ein weiterer Einsatzzweck für das Duration-Objekt ist die Bestimmung der Zeitspanne, die zwischen zwei Datumswerten liegt. Soll beispielsweise herausgefunden werden, wie viele Tage zwischen dem Beginn und dem Ende der Weihnachtsferien liegen, kann der folgende Quellcode eingesetzt werden.

    import { Temporal } from 'proposal-temporal'; 

    const start = Temporal.PlainDate.from({
    day: 24,
    month: 12,
    year: 2021
    });

    const end = Temporal.PlainDate.from({
    day: 8,
    month: 1,
    year: 2022
    });

    const diff = start.until(end);
    const diff2 = end.since(start);
    console.log(diff.toString()); // Ausgabe: P15D
    console.log(diff2.toString()); // Ausgabe: P15D

    Sowohl der Start- als auch der Endpunkt werden durch ein PlainDate-Objekt repräsentiert, da in diesem Fall weder Zeitzone noch Uhrzeit benötigt wird. Neben der hier verwendeten until-Methode gibt es mit der since-Methode auch noch das Gegenstück, das die Zeitspanne vom Ende bis zum Start misst. Das Ergebnis ist in beiden Fällen ein Duration-Objekt, das 15 Tage umfasst. Ein solches Objekt kann dann wieder in Kombination mit weiteren Temporal-Objekten verwendet werden, um beispielsweise eine Addition oder Subtraktion durchzuführen. Die Formatierung der Ausgabe, P15D, erscheint auf den ersten Blick etwas gewöhnungsbedürftig, folgt jedoch einem klaren Format. Die Zeichenkette wird durch das Zeichen P eingeleitet, danach folgen Jahre, Monate, Wochen und Tage. Anschließend werden Datum und Uhrzeit durch das Zeichen T getrennt gefolgt von Stunden, Minuten und Sekunden.

    Wären in diesem Beispiel nicht nur Datumswerte, sondern auch Uhrzeiten beteiligt, gibt es mit der round-Methode die Möglichkeit, eine Zeitspanne auf ganze Tage zu runden. Die Methode akzeptiert ein Konfigurationsobjekt, dessen wichtigste Eigenschaften largestUnit, smallestUnit und roundingMode sind. Die ersten beiden geben die kleinste beziehungsweise größte Einheit an, auf die gerundet werden soll. Mit der roundingMode-Eigenschaft können Entwickler festlegen, wie gerundet wird. Der Code in folgendem Listing rundet beispielsweise auf volle Tage ab:

    import { Temporal } from 'proposal-temporal'; 

    const start = Temporal.PlainDateTime.from({
    day: 24,
    month: 12,
    year: 2021,
    hour: 7,
    minute: 30
    });

    const end = Temporal.PlainDateTime.from({
    day: 8,
    month: 1,
    year: 2022,
    hour: 20,
    minute: 15
    });

    console.log(start.until(end).toString()); // Ausgabe: P15DT12H45M
    const diff = start.until(end).round({
    smallestUnit: 'day',
    roundingMode: 'floor'
    });
    console.log(diff.toString()); // Ausgabe: P15D

    Das Ergebnis der round-Methode ist wiederum ein Duration-Objekt, das die Applikation weiterverwenden kann. Das Prinzip der Immutability bleibt also auch in diesem Fall gewahrt.

    Fazit

    Mit der Temporal API trägt das TC39 der Tatsache Rechnung, dass die Date-Funktionalität von JavaScript einige Schwächen aufweist und für die Umsetzung moderner Applikationen nicht die beste Wahl ist. Rund um den Umgang mit Datum und Zeit sind im Laufe der Zeit eine Vielzahl von Bibliotheken entstanden. Das Temporal Proposal greift viele der Ideen auf, die diese Bibliotheken verfolgen und integriert sie in den Sprachkern von JavaScript. Das hat den Vorteil, dass diese Features, sobald die Temporal API in den Standard aufgenommen wurde, nativ vom Browser unterstützt werden. Das bedeutet, dass es keinen zusätzlichen Overhead durch Bibliotheken mehr gibt und die Funktionalität potenziell performanter ist, da sie direkt im Browser umgesetzt ist. Diese Schnittstelle ist ein sehr gutes Beispiel dafür, dass sich JavaScript stetig weiterentwickelt und dabei auf die Anforderungen der Entwickler eingeht.

    Links


    URL dieses Artikels:
    https://www.heise.de/-6069626

    Links in diesem Artikel:
    [1] https://tc39.es/proposal-temporal/docs/
    [2] https://tc39.es/proposal-temporal/docs/cookbook.html

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 21. Juni 2021 um 11:58

    FreshRSS 1.18.1

    Von Alkarex

    Note: Last release before dropping support for PHP 5 and Internet Explorer 11.

    Changelog:

    • Features
      • Support standard HTTP 410 Gone by disabling (muting) gone feeds #3561
      • Make advanced feed options such as SSL available to non-admins #3612
    • API
    • UI
      • Allow Unicode for shortcuts #3548
    • Bug fixing
      • Fix database lock during refresh with MariaDB #3559
      • Fix database creation from CLI #3544
      • Fix: pdo_sqlite is optional except for export/import SQLite #3545
      • Fix import of JSON and TT-RSS files, especially with PHP 8 #3553
        • Allow import of more than 999 favourites/labelled articles even with SQLite
      • Fix additional SQL limits, especially for SQLite #3586
      • Fix search param encoding in user query #3541
      • Fix undefined variable & dead code when adding feed #3546
      • Fix missing translation in feed configuration #3554
      • Fix double escaping in feed filters #3563
      • Fix bugs in migration system #3589
      • Fix regression preventing showing startup errors #3590
      • Fix form redirection after erroneous user creation #3656
      • Fix JavaScript error during navigation when no article is selected #3655
      • Fix link to add feeds from the empty homepage #3650
      • Fix git update error message #3645
    • SimplePie
      • Fix regression about media attachments #3565
      • Fix regression about forcing HTTPS for enclosures #3568
      • Catch ValueError for loadHTML with PHP 8 simplepie#673
      • Provide access to latest HTTP status code simplepie#674
      • Fix wrong SimplePie type hint simplepie#678
      • Merge details from upstream PRs #3588, #3614
    • API
      • Compatibility with Web servers providing ORIG_PATH_INFO #3560
    • i18n
    • Code improvements:
      • Friendly constant syntax for Intellisense #3577
      • Fix several comments syntaxes #3615
      • Minor uniform stricter HTML #3616
      • Removed unused variable #3587
      • Provide action name in Minz controller exception #3624
      • New convenience method to extract multiline GET parameters from e.g. <textarea> #3629
    • Deployment
      • Automatically apply latest tag in git for the latest FreshRSS release #3524
    • Misc.
      • Remove legacy data/do-install.txt for triggering install process #3555
      • If using built-in git updates, automatically change to git edge branch if using old master or dev branch names #3589
    • 06. Juni 2021 um 23:01

    paint.js.org: MS-Paint-Remake als PWA – mit Web Components und modernen Web-Capabilities

    Von heise online

    paint.js.org: MS-Paint-Remake als PWA – mit Web Components und modernen Web-Capabilities

    ÜberKreuz Christian Liebel

    Microsoft Paint ist der Dino unter den Produktivitätsanwendungen. Das 1985 erstmals erschienene Programm brachte Kinderaugen zum Leuchten und machte viele Anwender mit der Erstellung einfacher Computergrafiken vertraut. Nun kehrt die Windows-95-Variante in Form eines webbasierten Remakes in den Browser zurück.

    Ja, es stimmt. Microsoft Paint war nie zu vergleichen mit Programmen wie GIMP oder Photoshop. Keine Ebenen, in einigen Versionen nur drei Undo-Schritte, je nach Version mehr oder weniger Dateiformate. Dennoch implementiert Paint exakt den Workflow, auf den jede Produktivitätsanwendung auf dem Desktop setzt:

    • Dateien können vom Dateisystem geöffnet und dorthin gespeichert (neu angelegt oder überschrieben) werden.
    • Dateien können per Drag-and-Drop in Paint geöffnet werden.
    • Ein Doppelklick auf eine Bilddatei im Explorer öffnet Paint.
    • Zeichnungen können über die Zwischenablage mit anderen Programmen ausgetauscht werden.

    Jetzt feiert Paint mit all diesen Funktionen eine Renaissance im Browser: paint.js.org [1] ist ein Remake von Microsoft Paint – als Progressive Web App (PWA), gebaut mit Web Components und unter Verwendung moderner Webschnittstellen zum Zugriff auf die Zwischenablage, das Dateisystem und die lokalen Schriftarten. Darüber hinaus unterstützt das Paint-Remake auch den Dark Mode. Das Programm lässt sich direkt im Browser ausführen und auf Wunsch auf dem Gerät installieren.

    Das Paint-Remake läuft komplett ohne Installation im Browser
    Das Paint-Remake läuft komplett ohne Installation im Browser

    Einmal schreiben, überall verwenden

    Als Progressive Web App [2] ist die Anwendung per se auch plattformübergreifend einsetzbar: In Chrome, Edge, Firefox und Safari, auf Android und iOS, unter Windows, Chrome OS, macOS und Linux. Die PWA ist nicht nur offline verfügbar, sondern erlaubt auch den überwiegenden Großteil der aus Microsoft Paint bekannten Aktionen: Bilddateien laden, speichern, Ausschnitte kopieren und einfügen, einfache Zeichenoperationen. Realisiert wurde das Remake mit dem Canvas-Element [3], das sich für 2-D- und 3-D-Inhalte im Web eignet. Mithilfe der im Zuge der Entwicklung von Windows 8 spezifizierten Pointer Events [4] werden Eingaben über die Maus, per Finger sowie Stift unterstützt. Auch kommen einige moderne Webschnittstellen aus dem Umfeld von Project Fugu [5] zum Einsatz.

    Für einen schnelleren Zugriff lässt sich die PWA installieren
    Für einen schnelleren Zugriff kann die PWA installiert werden

    Neben der Plattformunabhängigkeit ist ein weiterer Vorteil webbasierter Anwendungen, dass diese oftmals kleiner ausfallen als ihre nativen Gegenstücke. Für das Paint-Remake müssen derzeit 276 KByte übertragen werden (Brotli-komprimierter Quellcode), während die Binärdatei des Originals 340 KByte groß ist.

    Web Components bilden das Rückgrat der Anwendung

    Die Anwendung setzt bewusst nicht auf ein größeres Anwendungsframework, sondern benutzt die Bibliothek Lit [6]. Dabei handelt es sich um eine schlanke Bibliothek zum (einfacheren) Verfassen von Web Components [7]. Diese wiederum lassen sich zu größeren Anwendungen zusammensetzen. Als Buildtool kommt das leichtgewichtige Snowpack [8] zum Einsatz. Für die Offlineunterstützung generiert das Toolkit Workbox [9] den passenden Service Worker. Die Codebase selbst ist in TypeScript [10] implementiert.

    Fugu-Schnittstellen schließen die Lücke zwischen Web und Native

    Dank der File System Access API ist ein zielgenaues Speichern von Dateien möglich
    Dank der File System Access API ist ein zielgenaues Speichern von Dateien möglich

    Das Remake setzt eine ganze Reihe von Schnittstellen ein, die im Rahmen von Project Fugu eingeführt wurden: So etwa die Async Clipboard API [11], die asynchronen Zugriff auf die Zwischenablage erlaubt. Diese Schnittstelle unterstützen sämtliche aktuellen Browser – mit Ausnahme von Firefox. Andere Funktionen sind noch relativ neu und werden lediglich in Chromium-basierten Browsern (Chrome, Edge, Opera, Brave, Samsung Internet etc.) angeboten: Mithilfe der File System Access API [12] (generell verfügbar ab Chromium 80) können Dateien direkt vom Dateisystem geöffnet und wieder dorthin gespeichert werden. Eine einmal geöffnete Datei lässt sich direkt aus der Anwendung heraus überschreiben. Darüber hinaus lässt sich eine Datei per Drag-and-Drop ins Browserfenster ziehen. Auch dann erhält der Browser Zugriff auf das Dateihandle und kann die Datei manipulieren.

    Über die Web Share API lassen sich Inhalte mit anderen Apps teilen
    Über die Web Share API können Inhalte mit anderen Apps geteilt werden

    Die "Send"-Funktion nutzt die Web Share API [13], um das gezeichnete Bild mit einer anderen installierten App zu teilen.

    Auch ganz frische APIs sind dabei, die derzeit noch über about://flags gezielt vom Benutzer aktiviert werden müssen: Mit der Local Font Access API [14] kann sich Paint die komplette Liste der installierten Schriftarten abholen, sofern der Benutzer dem zustimmt. Über die File Handling API [15] kann sich eine Anwendung als Handler für eine bestimmte Dateierweiterung registrieren. Das Paint-Remake registriert sich bei Installation für die Dateierweiterung "png". Damit steht die Webanwendung für Dateien mit dieser Erweiterung über das Menü "Öffnen mit" zur Auswahl. Ist die Anwendung die einzige, die sich für eine Erweiterung registriert, übernimmt sie direkt die Rolle des Standardprogramms. Andernfalls kann der Benutzer sie als solches definieren. Dann wird die Anwendung per Doppelklick auf eine Datei mit der registrierten Dateierweiterung wieder gestartet.

    Über die File Handling API hat sich Paint als Handler für PNG-Dateien hinterlegt
    Mithilfe der File Handling API hat sich Paint als Handler für PNG-Dateien hinterlegt

    Soweit möglich wird in allen Fällen das Konzept des Progressive Enhancement [16] angewendet: Sollte eine API auf dem Zielsystem nicht vorhanden sein, wird eine Fallback-Schnittstelle gewählt, sofern verfügbar. Andernfalls wird die Funktion deaktiviert oder gar nicht erst angeboten.

    Nur eine Nischenfunktion lässt sich im Web nicht abbilden

    Die einzige Paint-Funktion, die auch in den Chromium-basierten Browsern nicht nachgebildet werden kann, ist das Festlegen der aktuellen Zeichnung als Desktophintergrund. Diese Funktion steht im Web nicht zur Verfügung. Sämtliche andere Funktionen lassen sich wie im Original oder leicht abgewandelt implementieren.

    Das Paint-Remake unterstützt derzeit noch nicht alle Aktionen und Werkzeuge, die das Original mitbringt. Funktional vollständiger und besser auf unterschiedlichen Plattformen getestet ist das Remake jspaint.app [17], das jedoch nicht auf die neuen Schnittstellen zur Umsetzung von Dateisystemzugriff oder Offlinefähigkeit zurückgreift. Der Quellcode für das Paint-Remake ist auf GitHub zu finden [18].

    Der Funktionsumfang des klassischen Paint war sicherlich nicht überragend. Und dennoch besitzt die Anwendung alle Eigenschaften einer typischen Produktivitätsanwendung. Das Remake zeigt, dass dank Project Fugu und zumindest auf Chromium-basierenden Browsern alle relevanten Schnittstellen für solche Anwendungen auch im Web verfügbar sind. Damit nimmt die Notwendigkeit nativer Anwendungen oder Wrapper-Ansätzen wie Electron (z.B. Slack, Visual Studio Code, Discord) zusehends ab. Das dürfte weiteren Geschäftsanwendungen, Büroprogrammen sowie Bild- und Videobearbeitungssoftware den Weg ins Web ebnen.


    URL dieses Artikels:
    https://www.heise.de/-6058723

    Links in diesem Artikel:
    [1] https://paint.js.org
    [2] https://www.heise.de/ratgeber/Progressive-Web-Apps-Write-once-run-anywhere-4839505.html
    [3] https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Basic_usage
    [4] https://developer.mozilla.org/docs/Web/API/Pointer_events
    [5] https://www.heise.de/hintergrund/Project-Fugu-Brueckenschlag-zwischen-progressive-Web-und-nativen-Apps-4684369.html
    [6] https://lit.dev/
    [7] https://www.heise.de/developer/artikel/Single-Page-Applications-ohne-Framework-Web-Components-als-Ersatz-fuer-React-Co-4850959.html
    [8] https://www.snowpack.dev/
    [9] https://developers.google.com/web/tools/workbox
    [10] https://www.heise.de/developer/artikel/App-Entwicklung-mit-JavaScript-Teil-3-Aber-bitte-mit-Typen-3623957.html
    [11] https://webkit.org/blog/10855/async-clipboard-api/
    [12] https://web.dev/file-system-access/
    [13] https://web.dev/web-share/
    [14] https://web.dev/local-fonts/
    [15] https://web.dev/file-handling/
    [16] https://blog.tomayac.com/2020/01/23/progressive-enhancement-in-the-age-of-fugu-apis/
    [17] https://jspaint.app/
    [18] https://github.com/christianliebel/paint

    Copyright © 2021 Heise Medien

    Adblock test (Why?)

    • 02. Juni 2021 um 10:37
    ❌