9-Punkte-Plan für ein digitales Deutschland

https://www.onlinezugangsgesetz.de/SharedDocs/downloads/Webs/OZG/DE/9-punkte-plan.pdf?__blob=publicationFile&v=4

Papier des Bundes-CIO vom 14.07.2020

Neben Open-Data  (Punkt 1) wird darin auch Open-Source (Punkt 8) erwähnt, leider eher aus Nutzersicht. Dabei würde zum Stichwort “Digitale Souveränität” auch eine aktivere Open-Source-Strategie passen, die eine Veröffentlichung von “Behördencode” vorsieht. Nicht nur unter Gesichtspunkten der Transparenz könnte eine “Open-Behördencode”-Strategie interessant sein, vielmehr können durch Open-Source-Ansätze innovative Prozesse ermöglicht und beschleunigt werden. Der Austausch von technischen Lösungen zwischen Behörden und ihren Dienstleistern könnte durch eine gezielte “Open-Behördencode”-Strategie vorangetrieben werden.

Schwarz-Weiß-Rot

“Die Flagge mit drei waagerechten, gleich breiten Streifen in den Farben Schwarz-Weiß-Rot war […] von 1871 bis 1919 die Flagge des Deutschen Reichs (Kaiserreich, ab 1892 offizielle Nationalflagge) und von 1933 bis 1935 übergangsweise zusätzlich die Flagge des „Dritten Reichs“, ehe die Hakenkreuzflagge als alleinige Nationalflagge eingeführt wurde. Im Kaiserreich wurden die Farben Schwarz-Weiß-Rot zu weithin akzeptierten Nationalfarben. Nach 1919 blieben sie die dominierenden Farben in der Handelsflagge der Weimarer Republik. Während dieser Zeit wurden sie zunehmend von Monarchisten und anderen rechten Republikkritikern verwendet. ”

https://de.wikipedia.org/wiki/Schwarz-Wei%C3%9F-Rot

Die Fahne ist damit auch eng verbunden mit zwei Personen der deutschen Geschichte: Wilhelm II.  und  Adolf Hitler .

Schwarz-Weiß-Rot, die Fahne droht mit Mord und Tod. Mit Mord und Tod!

 

 

Mutation Testing with Pitest

http://pitest.org/

Beim Mutation-Testing wird die Güte automatisierter Tests bewertet. Das klassische Mittel zur Bewertung ist die Codecoverage, d.h. eine Analyse wieviele Codezeilen durch automatisierte Tests aufgerufen werden. Dies liefert jedoch keine Aussage darüber, wie gut der Code tatsächlich geprüft wurde. Hier setzt Mutation-Testing an. Hierfür werden automatisiert kleine Änderungen am Code vorgenommen und es wird überprüft, ob die automatisierten Tests anschließend fehlschlagen. Je sensibler die Tests auf Änderungen reagieren, desto besser funktioniert die Überprüfung – so die Faustregel. Vorallem liefert das Mutation-Testing aber Hinweise, zu welchen Aspekten noch Assertions (Zusicherungen/Überprüfungen) fehlen könnten.

Talk auf der Wiese – Die nächsten Termine

https://unsergruenguertel.de/2020/08/04/talk-auf-der-gleueler-wiese/

23. August ab 15 Uhr | Klage / juristisches Verfahren
Gäste: Spitzenkandidatin Christiane Martin, Sven Lehmann (MdB)
Kandidat*innen vor Ort: Cornelia Weitekamp, Roland Schüler, Mechthild Böll, Andreas Wolter
Fachinput: Roland Schüler (angefragt), BI „Grüngürtel für Alle“

30. August ab 15 Uhr | Sozial- und Sportaspekt / Historie
Gäste: (to be announced)
Kandidat*innen vor Ort: Cornelia Weitekamp, Roland Schüler, Mario Michalak, Andreas Wolter
Fachinput: Konrad Adenauer, Vorsitzender des Haus- und Grundbesitzervereins

6. September ab 15:Uhr | Klimanotstand / Alternativstandort
Gäste: Spitzenkandidat Lino Hammer MdR, Arndt Klocke (angefragt), MdL
Kandidat*innen vor Ort: Cornelia Weitekamp, Roland Schüler, Stephan Horn, Ralf Unna, Mario Michalak, Andreas Wolter
Fachinput: verschiedene Bürgerinitiativen (angefragt)

Problem mit Corona-App in Straßenbahnen

https://www.heise.de/news/Corona-Warn-App-Studie-findet-Probleme-bei-der-Kontaktverfolgung-im-OePNV-4871811.html

Gerade im ÖPNV würde die Corona-App einen echten Mehrwert bringen. Leider funktioniert sie hier wohl nicht. Vielleicht wäre eine App, die das Führen von Kontakttagebüchern erleichtert, nachhaltiger.

Zur Bewertung der Studie wäre es aber interessant zu wissen, ob in allen eingesetzten Telefonen tatsächlich auch dieselben Bluetooth-Antennen verbaut waren. An dieser Stelle würde ich ebenfalls ein Potential für Fehlerquellen vermuten, da zur Telefonfertigung bekannterweise einfach verbaut wird, was gerade da ist. Da nützt auch Modelgleichheit nichts.

Überwachungskapitalismus

“1. Neue Marktform, die menschliche Erfahrung als kostenlosen Rohstoff für ihre versteckten kommerziellen Operationen der Extraktion, Vorhersage und des Verkaufs reklamiert; 2. eine parasitäre ökonomische Logik, bei der die Produktion von Gütern und Dienstleistungen einer neuen globalen Architektur zur Verhaltensmodifikation untergeordnet ist; 3. eine aus der Art geschlagene Form des Kapitalismus, die sich durch eine Konzentration von Reichtum, Wissen und Macht auszeichnet, die in der Menschheitsgeschichte beispiellos ist; 4. Fundament und Rahmen einer Überwachungsökonomie; 5. so bedeutend für die menschliche Natur im 21. Jh. wie der industriekapitalismus des 19. und 20. Jhs. für die Natur an sich; 6. der Ursprung einer neuen instrumentären Macht, die Anspruch auf die Herrschaft über die Gesellschaft erhebt und die Markdemokratie vor bestürzende Herausforderungen stellt; 7. zielt auf eine neue kollektive Ordnung auf der Basis totaler Gewissheit ab; 8. eine Enteignung kritischer Menschenrechte, die am besten als Putsch von oben zu verstehen ist, als Sturz der Volkssouveränität.”

https://www.campus.de/buecher-campus-verlag/wirtschaft-gesellschaft/wirtschaft/das_zeitalter_des_ueberwachungskapitalismus-15097.html

 

Single Page App in Rust

 

“WebAssembly (wasm) allows code written in languages other than JavaScript to run on browsers. If you haven’t been paying attention, all the major browsers support wasm and globally more than 90% of users have browsers that can run wasm.

Since Rust compiles to wasm, is it possible to build SPAs (Single Page Applications) purely in Rust and without writing a single line of JavaScript? The short answer is YES!” …

http://www.sheshbabu.com/posts/rust-wasm-yew-single-page-application/

Learning JSF – The JSF Lifecycle

1. There is only one user interaction – it is called “the Request”. Please forget about GET,POST,PUT,DELETE. It is just “the request”. The request in general is not of your concern. Everything is handled by the framework. You don’t have to write controller code. In fact, you can not! The controller is already there. It is called “FacesServlet”.

2. The Framework handles all aspects of HTTP with  “the request lifecycle”.

3. You have to learn the request lifecycle.

The Request Lifecycle

  1.  User Request goes in.
  2.  FacesServlet (Controller) asks the Facelet(View) to build the view
  3.  The Facelet asks the BackingBean (Model) to provide data, e.g. from database.
  4.  For that the BackingBean often uses additional Beans.
  5.  The Facelet does a “Restore View“. Now the View is up to date. But…. only internally. Nothing is rendered yet because…
  6.  Now the “Apply Request Values” phase is entered. For that more data is fetched from the BackingBean.  The Request Values are applied. And an “ActionEvent” is queued.
  7.  Get data from BackingBean to “Process Validations
  8. Now a “ValueChangeEvent” is queued. This tells the FacesServlet that something has happend. Please notice, that the Servlet was the thing that originally startet the “postback request”.
  9. FacesServlet. Eventually invokes ValueChangeEvent at the Backing Bean. But wait, first it fetches again the old version of the BackingBean compares it to the new version, and only if changes where detected the “ValueChangeEvent” is sent.
  10. Now – tada – “Update Model Values” in the Facelet.
  11. Which then sets the values to the BackingBean. This hopefully applies, and…
  12. now an “ActionEvent” is invoked by the framework – because something might have happended. This is the point where all sort of registered Listeners are informed and can start running…1,2,3 go!
  13. This also gets noticed by the BackingBean which is now used in a phase named “Obtain Navigation Outcome“. Sure, because after all – how in the world should the controller know what view to render next? No, it is not determined by the controller endpoint, it is determined by a String that is send after each action in the BackingBean. Hopefully the String points to an existing xhtml  page (Facelet)! What should go wrong? Now everything is prepared and….
  14. Render Response” is done by the Facelet – No not the one you invoked inititally but the one that referenced by the last action of the BackingBean.
  15. Generate HTML output” is sent to FacesServlet
  16. Response is send the user.

Advantages

  • You can hook additional Beans into every phase and register listeners to the emitted events. This makes the framework very powerful and flexible.
  • The whole thing works heavily with Dependency Injection. You can easily provide different implementations for different contexts. This is especially useful for testing purposes and provides a mechanism to reuse components in different scenarios.
  • You can completely focus on the framework. You don’t have to care about working directly with HTTP or the database. Therefore the application can interact in different scenarios. Components can be reused.

Disadvantages

  • It is not possible to create a standard HTTP based webapp with the framework.
  • You won’t get citeable and stable URLs. There is only one hard implemented controller endpoint that handles all requests.
  • It is almost not possible to create an app that stays stateless. The result is an application that almost always depends on a server session. This makes the framework susceptible for polluted sessions, dangling sessions and is by principle not thread safe. Programmers really have to take care.
  • The navigation concept is a real mess. It is implicit, not safe and from client perspective unpredictable.
  • It is hard to google. Since JSF can be combined with different implementations CDI, EJB, JPA