12/14/2020

Trump Tree

 Q: What do a Christmas Tree and President Dumb Trump have in common?

A. Come January, both get dumped.


Q: And what is the difference between the two?

A: The Christmas Tree can be sure to only get dumped once.

 

** Hump Tree Trump Tree sat on a wall ... ***


11/18/2020

Removing Google's Consent Nag Screen

If you are like me, you do not store Google's cookies, so you get the consent dialog each time after a restart of your browser.

If you use the extension Stylish (I don't, because afaik the company behind it collects user data) or Stylus, you can import the following user style:

@-moz-document regexp(".*://.*\\.google\\..*/.*"), regexp(".*://.*\\.youtube\\..*/.*") {

/* google */
#lb
{
    display: none !important;
}

html
{
    overflow: auto !important;
}


/* youtube */

ytd-popup-container,
#consent-bump
{
    display: none !important;
}
iron-overlay-backdrop{
    display: none !important;
}
}


This simple style will get rid of the consent popup on Google and a similar pop up on Youtube.

Enjoy.

Note: tested with FF/Stylus only

10/24/2020

How to get the value of the last cell of a column in an Excel formula

Note: please do read up to the final paragraph, as the solution I start with is not optimal.

Say you want to have a formula that gives you the value of the last cell in column A.

The following formula is often found in the web and will accomplish this:

 =LOOKUP(2;1/A:A;A:A)

Your data needs to meet a couple of prerequisites for this to actually work:

  • your data needs to be numbers only
  • all numbers must be greater than 0.5

So why does this formula work at all?

Let us look at the second parameter first: it creates a vector (you may think of it as a list) where each value is 1 divided by the value of the original vector (column A). So an original 2, 8, 3 will become 0.5, 0.125, 0.33333. An original value of 0.5 would yield 2, which is the number we are searching for (parameter 1) - if this existed, the whole thing would not work, hence the second prerequisite.

So when the value to search for (first parameter) is not found, as per the documentation of LOOKUP it will return the largest value that is less than the value to search for. If that were the case, the ormula would not work. Luckily, the documentation is not quite exact here.

Actually LOOKUP assumes a sorted vector (list). When it does not find an exact match, it actually returns the first value going up from the bottom that is smaller than the value to search for.

If our prerequisites are met, all values in the calculated list, which is 1(A:A), will be less than two. So, going up from the bottom, the first value it looks at is the last value in the list, and since all values are less than 2 it meets the criteria and is returned.

So now that you know how the formula works, you will be able to adapt it to your scenario.

N.B.: LOOKUP is a legacy function, it has officially been replaced by VLOOKUP and HLOOKUP. However, this neat trick will not work with either of the new functions. Let us hope that MS will support LOOKUP for a long time.

Finally, let's improve the formula, so it works without the limiting prerequisites mentioned above, it's easy enough:

=LOOKUP(MAX(A:A)+1;A:A)

This formula works without the limitations of the solution found on the web (except that it only works on numbers, duh) and is faster.

Lesson learnt: don't copy solutions from the web, try to understand the before you apply them. And under no circumstances should you re-post solutions that you don't fully understand, this is the worst kind of plagiarism.

10/22/2020

Nettes Gespräch im Zug

 Zwei ältere Herren unterhalten sich, mindestens einer ist sehbehindert und hat deshalb eine "sprechende" Uhr und ein ebensolches Smartphone.

A fragt: "Wie spät ist es?"

B drückt auf seine Uhr

Uhr: "10:43"

B: "Es ist 10:38"

A: "Aber die Uhr sagte doch 10:43?"

B: "Ja, aber die geht 5 Minuten vor."

Kurze Pause

B drückt auf sein Smartphone.

Handy: "9:38"

B: "Siehst Du? Genau 5 Minuten"

A: "Ja, aber wie kommt das Handy auf 9 Uhr, es ist doch schon nach 10?"

B: "Ich weiß, aber in zwei Wochen ist Zeitumstellung, dann stimmt es wieder."

Etwas später, sie unterhalten sich über ihre Handys.

A: "Ich habe ja jetzt ein Seniorenhandy mit großer Schrift und großen Tasten"

B: "Zeig mal. ... Das hat aber viele Tasten."

A: "Ist ja auch ein Tastenhandy."


Und wenn ich schon dabei bin: diese Phrase kam von einer jüngeren Mitfahrerin im Gespräch mit ihrer Freundin: "Darüber müssen wir aber soon miteinander talken." Oder so ähnlich.

 

Ach ja, so eine Zugfahrt ist auch ohne Handy immer unterhaltsam 😀

9/23/2020

Eine Kasse programmieren ist leicht, aber doch schwer

Bisher kannte ich Kassen nur vom Zuschauen, und ein wenig vom Bedienen. Nun durfte ich eine Kasse programmieren, und das war am Anfang auch ganz leicht.

Die Bedienungsanleitung der Kasse war gut - auch wenn ein paar Dinge fehlten, wie z. B. die Erstellung eines grafischen Logos, dazu war aber immerhin etwas im Internet zu finden.

Nachdem ich Steuersätze, Warengruppen und Artikel festgelegt hatte (in Excel, besser erst einmal überlegen, bevor man mit der Programmierung beginnt) waren die Daten recht schnell eingegeben.

Die Kasse war einsatzreif. Naja, eben nicht! Alles was ich mir als "schlaue Lösung" ausgedacht hatte, musste ich nach Recherchen wieder herausnehmen:

Bankeinzahlungen über Warengruppen abhandeln - keine gute Idee! Dann steht auf dem Bon schön "Bankeinzahlung" und der Kassenbestand stimmt auch. Trotzdem bekommt der Buchhalter dabei graue Haare, denn so zählt die Bankeinzahlung zum Umsatz, bzw. verringert diesen. Der Steuerprüfer hätte Spaß!

Kassendifferenzen (falsch kassiert, falsch herausgegeben) über Warengruppen abhandeln - noch schlechter! Einfach zu bedienen, der Bon ist toll, der Kassenstand ist korrekt, und der Umsatz auch. Nur darf es Kassendifferenzen eigentlich gar nicht geben. Meist muss der Kassierer mit dem eigenen Geldbeutel dafür einstehen. In der Kasse gilt: es ist so viel Geld in der Lade, wie die Kasse das behauptet. Gibt es Abweichungen, dann ist das Sache der Buchhaltung, d. h. die Abweichungen werden nach Kassenabschluss vom Bediener ausgeglichen oder auf dem Kassenbericht erfasst und die Buchhaltung bucht dies auf ein separates Konto wie z. B. "andere Ausgaben".

Gutscheine über eine Warengruppe verkaufen, OK, aber nicht einlösen! Sonst stimmt der Kassenbestand nicht, da der Gutschein ja kein Bargeld darstellt. Man muss also eine Zahlungsart (EC oder Scheck) zum Gutschein umfunktionieren und alle Texte entsprechend anpassen.

Steuern waren auch ein Quell der Freude: Pfand wird mit dem normalen Steuersatz besteuert - klar, ist ja auch ein Luxusgut. Postkarten - ermäßigter Steuersatz, Glückwunschkarten - voller Steuersatz. Schokolade, ermäßigter Steuersatz - klar ist ja ein Grundnahrungsmittel. Für mich wurde sie das im Laufe der Programmierung tatsächlich ... Nervennahrung.

Suchen im Internet beleuchtete einige Facetten - wenn man weiß, wonach man sucht, z. B. "Mankogeld". Wenn man nichts weiß, findet man auch nichts. Eine Übersicht nach dem Motto "so sollte eine Kasse eingerichtet sein" - Fehlanzeige.

Ein ganz brauchbares Papier findet man mit dem Suchbegriff "ordnungsgemäße Kassenführung".

Die Hotline des Herstellers war überaus hilfreich, was dann aber Steuerrecht angeht, dürfen sie nichts sagen. Das verstehe ich.

Nachfragen beim Finanzamt: keine Ahnung! Tatsächlich konnten mir beide Mitarbeiter bei meinen Fragen nicht helfen. Sie haben mich auf einen Mitarbeiter verwiesen, der im Außendienst Kassenprüfungen durchführt. Der Mann war der erste und einzige kompetente Ansprechpartner.

Trainingsmodus zum Testen nutzen: ja. teilweise. Da keine Umsätze gebucht werden, kann man Berichte und Kassenbestand nicht vor dem tatsächlichen Einsatz testen.

Man findet bei der Suche nach Antworten oft auch Antworten auf Fragen, die man vorher gar nicht hatte. Zum Beispiel Bankeinzahlungen: diese müssen nach der Entnahme aus der Kasse spätestens am nächsten Werktag bei der Bank eingezahlt werden. Sonst sieht das Finanzamt darin einen Privatkredit.

Kein Verkauf, Schublade öffnen: vermeiden! Viele Betrügereien gehen über diese Schiene, man macht sich schnell verdächtig.

Trainingsmodus: vor dem Echtbetrieb komplett deaktivieren! Viele Betrüger kassieren zeitweise im Trainingsmodus. So kann man den Verdacht von vorneherein ausschließen.

Kasse anmelden: ja, das muss man. Nein, nicht einfach so, sondern mit einem Formular. Und nein, das Formular gibt es noch nicht - knapp ein Jahr nach Einführung der Regel.

Man könnte noch so viel schreiben ... ich habe viel gelernt, vor allem aber, dass mir 90% der Vorschriften sicher immer noch unbekannt sind, egal wie viel ich recherchiere.

Ich kann nur hoffen, dass das, was ich programmiert habe, und die Handhabung der Kasse einigermaßen regelkonform sind. Da wäre ein wenig Hilfestellung seitens des Finanzamts wirklich wünschenswert, aber die halten nur die Hand auf.

8/16/2020

Migrating from KeePass to Password Safe (FOSS)

First of all, when I say "Password Safe", I mean the free open-source product at https://pwsafe.org/), not the software of the same name that you find at https://www.passwordsafe.de/

Why migrate? You may have your own reasons. I was satisfied with KeyPass until I wanted to secure the file using my Yubikey on both, PC and Android.

Here is the process that worked for me:

  • not strictly necessary: delete "Backup" and "Recycle Bin" groups in KeePass
  • export your KeePass database as XML
  • download MSXSL
  • download  KPV2_to_PWS.xslt
  • run msxsl KeePassV2.xml KPV2_to_PWS.xslt -o PWS.xml (your file names might differ)
  • in the new XML file, look for empty password, which Password Safe does not like (will be skipped) - replace <password><![CDATA[]]></password> with <password><![CDATA[empty]]></password>
  • do the same for empty old password, Password Safe will crash otherwise - replace <oldpassword><![CDATA[]]></oldpassword> with <oldpassword><![CDATA[XXXXXX]]></oldpassword>
  • finally, fix empty titles - replace <title><![CDATA[]]> with </title>
    <title><![CDATA[no title]]></title> 

Now you should be ready to import the file into Password Safe.

The log of the import process is pretty helpful, only the old password gave me a headache, because the application kept crashing, until I found the culprit after having done a binary search in my extensive database for two hours! It may be worth fixing 😉

Check the log for duplicates and how they were handled - you may want to rename them after the import.

Finally, make sure to safely delete both XML files, as they contain clear text passwords

8/03/2020

Kasse Sharp XE-A177: grafisches Bon-Logo

Ein grafisches Logo auf die Kasse zu bringen, ist eigentlich recht einfach. Leider wird es in der Bedienungsanleitung nicht beschrieben.

Schritte in Kürze:
  1. monochrome Bitmap (BMP), 360px breit, 130px hoch mit maximal 35% Schwarzanteil* erstellen
  2. mit der Software PC-Link auf die SD Karte der Kasse spielen
  3. an der Kasse den Bon-Druck so einstellen, dass ein Logo gedruckt wird
  4. an der Kasse über die Programmierung das Logo laden - bei mir war es wichtig, dies als letzten Schritt durchzuführen, sonst erschien kein Logo

Eine sehr gute englische Anleitung findet man hier.

Darin sind auch die möglichen Fehlermeldungen beschrieben. Das hat mir sehr geholfen, denn besonders die Fehlermeldung bei zu hohem Schwarzanteil ist ... nun ... nicht gerade aussagekräftig.

Noch ein Tipp: in der Grafik nicht zu viel Text unterbringen, mehr als zwei Zeilen wird zu klein und daher unleserlich.


*) 35% Schwarz ist weniger als man denkt 😕

Kasse Sharp XE-A177: deutsche Tastatur

Man kann sie leider nicht kaufen, aber man kann sie sich basteln:
  1. Tasten-Bild ausdrucken
  2. ausschneiden
  3. Tastenschutz vorsichtig mit einer Zange entfernen, das geht recht einfach
  4. ausgeschnittenes Bild drauflegen und Tastenschutz wieder aufstecken
Für diejenigen, die das Rad nicht neu erfinden wollen, hier meine Version der deutschen Belegung zur freien Verwendung:


Thermopapier ist Umweltverschmutzung - eine Lösung

Wegen der chemische Beschichtung darf Thermopapier nicht als Papiermüll entsorgt werden; es gehört in den Restmüll.

Mal abgesehen davon, dass dies kaum jemand weiß (auch auf der Verpackung findet sich kein Hinweis, warum eigentlich?) werden selbst diejenigen, die es wissen, den Kassenzettel aus Bequemlichkeit im Papiermüll entsorgen.

Zudem sind heutzutage nahezu alle Kassensysteme mit einem Thermodrucker ausgerüstet: das ist billiger als ein richtiges Druckwerk und wartungsfrei.

In Summe kommt da also eines an "Umweltschmutz" zusammen.

Glücklicherweise gibt es eine Lösung, ökologisches Thermopapier. Wir nutzen es seit kurzem in unserer Kasse und sind sehr zufrieden.

Interesse? Um keine Schleichwerbung zu machen, verweise ich hier auf Google.

8/01/2020

Corona reduziert Chemtrails

Gute Nachrichten! Da es wegen Corona weniger Flüge gibt, lassen sich die Chemtrails nicht mehr so flächendeckend ausbringen wie üblich.

Die Wirkung: die Bevölkerung kann wieder selbständig und kritisch denken, die Gedanken sind für den Deep State weniger kontrollierbar geworden.

Kein Wunder also, dass Naidoo, Jebsen, Hildmann und Konsorten endlich klare Gedanken fassen können und diese veröffentlichen.

Oder? 😉

7/24/2020

Solarleuchte Asinara: Bewegungsmelder wechseln

Auch nach Jahren bekommt man für die Solarleuchte noch Ersatzteile und die Akkus sind Standardakkus und können leicht ersetzt werden. Ich bin immer noch begeistert!

Das Auswechseln des Bewegungsmelders hat beim zweiten mal sehr gut geklappt, das erste mal war etwas mühselig, da ich dazu einfach keine Anleitung finden konnte.

Deshalb hier ein paar Fotos vom Auseinandernehmen der Lampe, vielleicht hilft es ja jemandem.


Den großen Plexiglas-Aufsatz zum Öffnen im Uhrzeigersinn drehen und abnehmen.
Mit dem kleinen Aufsatz zum Streuen des Lichts ebenso verfahren, also wieder im Uhrzeigersinn drehen
So sieht das nun aus.

Den Schalter auf "OFF" stellen.

Die große LED ist die für das Dauerlicht. Sie steht etwas hervor, also später Vorsicht beim Umdrehen, sie sollte nicht verbogen werden, sonst könnten die Drähte brechen.
Zunächst einmal die Schrauben des Bewegungsmelders öffnen, diese haben hinten eine Mutter.

Danach umdrehen, wie gesagt vorsichtig, und beim Öffnen der Schrauben nicht die LED abdrücken.

Ab und zu tut dem Solarpanel eine Politur gut, um den Wirkungsgrad zu erhalten. Ich verwende dazu Ceranfeld-Reiniger.
Jetzt lässt sich das Panel lösen und der Bewegungsmelder herausziehen.

Die vier Schrauben des Panels ebenfalls lösen, dann kann man es öffnen und bekommt die Elektronik zu Gesicht.

Hier sieht man das geöffnete Panel und die Kabel-Steckverbindung vom Bewegungsmelder.
Die Steckverbindung vorsichtig mit einem flachen Schraubenzieher lösen und abnehmen.

Später beim Einstecken des neuen Bewegungsmelder auf das richtige Einsetzen achten. Eine Nase am Stecker, die in den Schlitz passt, weist den richtigen Weg.
So, abgeklemmt.

Der Zusammenbau ist dann ungefähr dasselbe rückwärts, mit der Besonderheit, dass man den Bewegungsmelder am Metallgehäuse befestigt, bevor man den Panel einsetzt.










Also:
  • Panel zusammenschrauben, wobei das Kabel des Bewegungsmelder in die Aussparung kommt.
  • Bewegungsmelder am Metallgehäuse befestigen.
  • Panel einsetzen und festschrauben.
  • Zum Schluss noch die Streuscheibe und den Plexiglasaufsatz montieren, diesmal natürlich gegen den Uhrzeigersinn.
Viel Erfolg!

7/20/2020

Bahn und andere ÖPNV Apps: Programmierer dürften auch mal mitdenken!

Die meisten Apps für den ÖPNV werden glaube ich von TAF mobile programmiert. Jedenfalls lässt das Vorhandensein derselben "Merkwürdigkeiten" in den unterschiedlichsten Apps von der Bahn bis zu Großstädten darauf schließen.

Bei der Bahn hatten wir schon vor längerer Zeit das Problem, dass man dieselbe Bankverbindung nicht bei mehreren Benutzern hinterlegen kann. Was für ein Unsinn für Familien!

Abhilfe: wir fahren alle mit demselben Benutzerkonto, das kann lästig sein (man muss z. B. den Namen des Reisenden bei der Buchung eingeben) und ist sicher nicht im Sinne des Erfinders. Ich könnte mir vorstellen, dass das auch den Benutzungsbedingungen widerspricht, aber wer liest die schon? 😏

Dasselbe Problem tauchte auch bei den Apps zweier deutscher Großstädte auf. Dass eine solch unsinnige Einschränkung mehrfach unabhängig voneinander programmiert wird, kann ich mir nicht vorstellen.

Anmerkung: bei der App der Stadt Wien ist das Problem nicht vorhanden. Die haben wohl einen anderen Anbieter.

Also, liebe Programmierer von TAF, denkt doch mal nach. Und sollte der Auftraggeber das wirklich so wollen, dann habe Ihr auch einen Beratungsauftrag!

Die Bahn sagt dazu sinngemäß nur: "Ja, das ist eben so". Großartiger Kundenservice. Aber immerhin habe ich eine Antwort bekommen.

Nicht so bei den Verkehrsbetrieben einer Großstadt. Dort wollte mein Sohn eine eigene Benutzerkennung. Wir haben ihn mehrfach unter verschiedenen Adressen registriert, doch die Anmeldung in der App (im Gegensatz zur Web Site) schlug immer fehl. Mit einer nichtssagenden Fehlermeldung, die Microsoft alle Ehre gemacht hätte.

Wir sollten den Support kontaktieren. Haben wir auch. Nach vier (!) Wochen Hin und Her (Bearbeitungszeit jeweils eine gute Woche) war es mir zu blöd, und ich habe etwas "rumgespielt". Offenbar muss man volljährig sein, um die App nutzen zu dürfen! Davon steht aber nirgendwo etwas, und auch der Support scheint davon nichts zu wissen.

Ein 16jähriger soll also die App nicht nutzen dürfen? Lächerlich! Rechtliche Gründe dafür finde ich nicht, denn ein Abo lässt sich über die App nicht abschließen.

Mit falschem Geburtsdatum funktionierte alles bestens, aber das fand ich keine gute Lösung. Also wieder zurück zum bewährten Prinzip: mein Benutzerkonto wird zum Familienkonto.

Dasselbe haben wir noch in einer zweiten Stadt erlebt, aber da kannten wir uns ja schon aus.

Dem Support habe ich das Problem geschildert, aus den verschiedenen Antworten (nach 2 Wochen weiterer Wartezeit) schließe ich:
  • meine Mail wurde nicht gelesen
  • meine Mail wurde nicht verstanden
  • man antwortete gar nicht
  • man antwortete mit einem Standard Text, der mit meiner Mail nichts zu tun hat

Auch ein bunter Strauß der Vielfalt, je nach Bearbeiter.

Fazit: sie können nicht helfen, und wollen offensichtlich auch keine Hilfe. Soll mich auch recht sein.

7/16/2020

Frauenquote in Parteien von Gericht gekipp - na und?

Also mal ehrlich, warum sollte man in Parteien eine Frauenquote einführen? Frau ist doch selbst Schuld, wenn sie einer reaktionär/konservativen Partei (und ich meine damit nicht nur die AfD) mit antiquiertem Frauenbild beitritt. Strafe muss dann doch sein.

Mädels, tretet halt in eine Partei ein, deren Programm auch Eure Interessen abbildet. Ihr werdet sehen, Ihr kommt dann auch ohne Quote zum Zug!

7/05/2020

Seehofer und die Taz-Kolumne

Das Thema ist schon wieder aus den Schlagzeilen verschwunden, aber was für ein Aufreger.

Nachdem die Emotionen zumindest in dieser Richtung wieder unter Kontrolle zu sein scheinen, bot es sich an, die "böse" Kolumne einmal selbst zu lesen, statt sich auf die zitierten Ausschnitte zu verlassen.

Die Kolumne von Hengameh Yaghoobifarah kann man hier (noch?) nachlesen.

Ich fand es schwer, den Text komplett zu lesen. Auch wenn es sich ganz offensichtlich um Satire handelt, so hat die Autorin vielleicht nicht genügend Abstand zum Thema und scheint eher von eigenen schlechten Erfahrungen getrieben zu sein. Wer ihren Hintergrund ein wenig kennst, kann das auch nachvollziehen.

Ich liebe Satire, insbesondere feinsinnige; diese Kolumne rangiert leider in dieser Sparte am unteren Ende. Aber ein schlechter Text ist ja noch keine Straftat - sonst wäre die Redaktion der BILD ja nahezu unbesetzt.

Zu Seehofers Reaktion wurde mehr als genug gesagt. Auch und besonders von ihm. Ein paar seiner Äußerungen möchte ich hier kurz aufgreifen.

Eine Enthemmung der Worte führt unweigerlich zu einer Enthemmung der Taten und zu Gewaltexzessen [...]
Das hat wirklich der Horst Seehofer gesagt. Selbsterkenntnis?


Ich bin sehr für Presse- und Meinungsfreiheit [...]
Mhm. Das sagen verschiedene Autokraten auch immer wieder. Anscheinend muss man das auch in einem demokratischen Land betonen.



[...] ich nehme mir die [Meinungsfreiheit] selbst auch immer wieder heraus.
Herr Seehofer, wir leben (noch) in einer Demokratie. Sie brauchen sich das nicht herauszunehmen, sie steht Ihnen als Recht zu.

So, genug davon. Ein schlechter satirischer Text von einer JournalistIn, die sonst keine Satire schreibt, und ein Innenminister, der schon länger (immer?) zwischen Unauffindbarkein und HB-Männchen ohne jede Zwischenstufen oszilliert. Mehr braucht es nicht für große Aufregung.

Und ich dachte, wir hätten anderswo richtige Probleme. Aber die kann man mit solchen Nebelkerzen prima ausblenden und muss sich nicht kümmern ...

5/30/2020

Das ist soziale Marktwirtschaft!

Aktuell kann man sehr schön sehen, was soziale Marktwirtschaft eigentlich bedeutet: einer kassiert, alle zahlen, oder auch "Keiner für alle, alle für einen".
Ein paar Beispiele:

Lufthansa


Marktwirtschaft: Gewinne werden in Steueroasen (nicht/günstigst) versteuert, der Konzern gewinnt, der Staat und damit der Steuerzahler bekommt nichts.

Hurra, sie fliegen wieder! Und im Gegensatz zu Restaurants, Theatern, etc.sogar in voller Besetzung, jede Reihe und auch die Mittelsitze sind belegt. Sonst würde sich der Flug ja nicht rechnen. Im Gegensatz zu Restaurants, Theatern, etc. ... die Kleinen können das doch viel besser ab.

Die soziale Komponente: der Steuerzahler gibt 9 Mio Euro "Kredit" an an Unternehmen, das an der Börse nicht einmal die Hälfte Wert ist und erhält dafür gerade einmal 1/5 der Aktien und kaum Mitbestimmungsrechte - am besten gar keine.


BMW

Marktwirtschaft: Der Konzern macht 8 Mrd Euro Gewinn und schüttet 1,6 Mrd Euro an seine Aktionäre aus.

Die soziale Komponente:der Steuerzahler bezahlt 40.000 Kurzarbeiter beim Unternehmen, das ja sonst die Mitarbeiter aus finanziellen Gründen entlassen müsste. Zudem fordert es vehement eine zusätzliche Förderung des Autokaufs, insbesondere für die wenig umweltverträglichen Diesel-SUVs und sonstige "Rennwagen".


Pflegepersonal

Marktwirtschaft: Die Pflegeindustrie kann den Mitarbeitern einfach nicht mehr bezahlen. Da würden ja die Gewinne leiden. Die Qualität leidet ohnehin schon seit langem.

Die soziale Komponente:Applaus, Applaus, Applaus. Und wir zahlen dem Pflegepersonal eine einmalige Prämie von 1.500 Euro. Das Staatssäckel und Pflegekassen werden dadurch insgesamt mit geschätzten 1 Mrd Euro belastet. Kommando zurück, das können wir uns wegen der vielen anderen Ausgaben (siehe oben) nicht leisten. Aber es bleibt ja immer noch der Applaus.



Umkehren!


Wie wäre es mit einem 5-minütigen Applaus für Autokonzerne und Lufthansa? Dafür verzichten diese auf staatliche Zuschüsse und Sonderprogramme, und wie haben Geld, um dem Pflegepersonal dauerhaft einen anständigen Lohn zu zahlen.

5/12/2020

Trump Identified Source of Coronavirus

Reportedly the most intelligent President of the great USA found the source of the corona virus while, as so often, daydreaming

Washington, D. C. - Trump said that he suddenly remembered from his school days (Trump: "I could have skipped school and gone straight to university at age 11, you know, may uncle was a scientist, and I am very intelligent, but I chose to stay with my mates who always looked up to me. Without me, who would they have had to look up to?") ... oh-oh, we lost the train of thought here.

OK, so he remembered that the coronavirus had already been mentioned during his school time: "They said that the sun had a corona, so it must have been infected already years ago!".

He even showed a picture to prove it:



Trump continued: "This explains why the virus first hit China, then Europe, and later the US. Not many people know that, but I can tell you that the sun travels from east to west, hence the different stages of infection over time. This explains it all folks!".

Trump said that he stayed safe by avoiding the sun and only using his solarium. He recommended that the public do the same: "Just stay in your house all day and eat in your solarium, only go out at night for drinks".

In other news Trump denied allegations that he had accidentally escaped a Chinese laboratory after a failed genetic experiment.

5/01/2020

Trump Invents Battery Charger that Runs on Batteries


Trump Invents Battery Charger that Runs on Batteries

In an overnight stunt the president of the United States has come up with a revolutionary idea that will rebuild the American automobile industry.


WASHINGTON — The greatest and most intelligent president studied all about electronics and manufacturing processes last night. Then he came up with a new invention; he said “I cannot believe that it took the great president of the great Immerican, uh, American people, to tell specialists how to do this. But I have done this many time before, because I am so smart”.




At a meeting with scientists he explain that electric cars worked on batteries: “Not many people know that these cars run on electricity and need batteries. And all cars, as everyone knows, have built-in alternators, which produce electricity.”


The president stated that using the alternator, the electric car could charge batteries while driving: “Heck, if we leave out the carburetor, we could even fit in a second alternator and double the production of elec...trons, electronics, eh, electrocity.”


He said that he had already built a concept-car that can carry and charges 2.000 batteries at the same time: “It may have become a bit large, but anyone can handle an 18-wheeler, right? Right?”.



He concluded saying that his work not only helped the great American automobile industry to win over their competition, but the charged batteries may even be, very like, possibly, potentially be a cure for the foreign Chinese virus: “I feel like I have killed two birds ... giant birds ...  ostriches ... or something bigger like a, you know, Buckbeak ... like I have killed two of these ... or even more with one ... um ... oh look here, one gun.”


In case this genius concept should not work, he preemptively classified his idea as "... potentially could be sarcasm, who knows?"

4/19/2020

Puh! Corona kam gerade noch rechtzeitig

Seit Jahren werden in Deutschland Krankenhäuser privatisiert. Das geht bis hin zur Uniklinik. Gegen die Gewinnorientierung privatwirtschaftlicher Unternehmen ist ja zunächst nichts einzuwenden.

Wenn allerdings Gewinnorientierung und Krankenhaus aufeinander treffen, führt das zu Personalabbau und dazu, dass Eingriffe ambulant vorgenommen werden, die eigentlich einige Tage stationärer Beobachtung bedürfen. Und Patienten werden vorzeitig entlassen, um mehr gewinnbringende Eingriffe vornehmen zu können. Ganz zu schweigen von unnötigen Eingriffen, so wie z. B. der "Einbau" künstlicher Hüftgelenken nach der Privatisierung sprunghaft anstieg.

Ich habe selbst in einer Uniklinik erlebt, dass die Ärzte zwar weitere OPs durchführen wollten (und hätten können). Es fehlte jedoch an Pflegepersonal im OP-Bereich, so dass keine OPs mehr möglich waren. Ich habe von einem Pfleger erfahren, dass sich die Klinik auf die Privatisierung vorbereitet, und dazu müssten eben die Kennzahlen stimmen ...

Ebenso hat ein Freund eine ambulante Leistenbruch-OP hinter sich - direkt nach dem Aufwachen wurde er nach Hause gefahren und dort abgeladen und sich selbst überlassen. Das kann man einfach nicht mehr anders ausdrücken. Ich war nach meiner Leistenbruch-OP heilfroh, dass ich noch 2 Nächte bleiben "durfte". Ich honnte mich kaum bewegen und hätte mich nicht selbst versorgen können.

Was das mit Corona zu tun hat? Nun ja, vor der Privatisierung waren die Krankenhäuser zwar ein "Kostenfaktor" und kein "Gewinnbringer", dafür waren sie aber deutlich besser aufgestellt und ausgestattet, über Betten und Geräte bis hin zum "Personal". Heute, wo sich alles rechnen muss, ist das mit der Versorgung deutlich schlechter als vor der Privatisierung. Corona vor 2003 wäre deutlich besser zu managen gewesen, zumindest was die medizinische Versorgung angeht.

Trotzdem haben wir noch Glück gehabt: in ein paar Jahren wären deutlich weniger Krankenhäuser vorhanden gewesen, da das Gesundheitsministerium schon länger an eine "Zentralisierung" arbeitet, d. h. kleine Kliniken werden zugunsten vorhandener großer Gesundheitsfabriken geschlossen, damit diese mehr Gewinn machen können.

Einen hab ich noch, einen hab ich noch: warum wurde eigentlich damals kein Impfstoff gegen den Corona-Vorgänger SARS entwickelt? Der würde evtl. heute auch gegen Corona helfe, da es sich um die gleiche Familie von Viren handelt. Ganz einfach: SARS war "lokal begrenzt" und die Entwicklung eines Impfstoffes versprach zu wenig Gewinn wegen des kleinen Absatzmarkts.

So, abschließend fragen wir uns noch kurz: wer hat den Mist eigentlich verzapft?

Bis 1985 galt der Selbstkostendeckungsgrundsatz, somit hätte sich eine Privatisierung nicht gelohnt. Diess wurde danach immer weiter gelockert, bis durch die sog. Fallpauschalen eine reine Gewinnorientierung geschaffen wurde. Auf wessen Empfehlung dies geschah, kann ich nicht mehr nachvollziehen.

Die Reduzierung der Zahl der Krankenhäuser wurde vom Leopoldina-Institut empfohlen. Aus meiner Sicht kann es dafür nur wirtschaftliche Beweggründe gegeben haben, für die Patienten wird dadurch nichts besser, im Gegenteil.

Seien wir also froh, das Corona kam, bevor dieser Unsinn auch noch komplett umgesetzt werden konnte. Das hat sicher Leben gerettet.

Dasselbe Leopoldina-Institut hat nun eine Lockerung der Maßnahmen gegen Corona empfohlen. Die Empfehlung wurde ausgesprochen als die Entwicklung der Fallzahlen noch gar nicht dafür sprach. Nach der Emofehlung "stimmen" die Zahlen nun aber. Wie kommt das denn?

Wie dem auch sei, auch diese Empfehlung hat meines Erachtens rein wirtschaftliche Beweggründe.

Gut, die Lockerung mag an bestimmte Regeln gebunden sein, dazu gehört aber nicht einmal die Pflicht zum Tragen einer Maske, nur eine Empfehlung. Warum keine Pflicht? Weil nicht genügend Masken vorhanden sind. Das wäre eigentlich ein Grund, mit Lockerungen zu warten, bis die notwendigen Voraussetzungen geschaffen wurden. Aber die Wirtschaft ... und die Gesundheit?

Das Schlimmste an der Lockerung ist aber die Wirkung auf einen Teil der Bevölkerung: schon vorher gab es ein paar Unverbesserliche, die sich zu Parties trafen; nun aber, und das sogar, bevor die Lockerungen ab morgen gelten, sieht man volle Döner-Buden und ähnliches, wo sich die Leute stapeln und sich beim Essen in aller Enge unterhalten. Auch die Verkehrsmittel und Straßen sind seit der Bekanntmachung deutlich voller, oft kann der Mindestabstand nicht mehr eingehalten werden.

Das geht nach hinten los.

Und sollten wir es trotz aller Fehler irgendwann geschafft haben, wird die Politik aus ihren verfehlten Gesundheitsgesetzen lernen? Leider habe ich gelernt, dass dies wahrscheinlich nicht der Fall sein wird. Aber die Wirtschaft, aber die Wirtschaft ...

3/31/2020

Funkstille aus den Ämtern zum Thema Corona und Ladenöffnung

Nachdem Bayern am 20. März Ausgangsbeschränkungen verhängt hatte, wollte ich wissen, ob wir unser Ladengeschäft noch öffnen dürfen.

Auf der Homepage unseres Landratsamts wurde ich für Fragen zu Wirtschaft und Unternehmen auf das Bayerische Wirtschaftsministerium verwiesen.

Angegeben war eine Emailadresse und eine Telefonhotline.

Da ich eine schnelle Antwort benötigte, rief ich zu normalen Bürozeiten die "Hotline" an. Ohne weiter Wartezeit wurde eine automatische Ansage abgespielt, die auf die Website des Wirtschaftsministeriums verwies.

Kleiner Lacher am Rande: als Teil der URL wurde ein "Backslash" angegeben; abgesehen davon, dass nur wenige Leute wissen dürften, was das ist, ist es einfach falsch, denn es handelt sich hier um einen umgekehrten Schrägstrich, wo ein normaler Schrägstrich hin gehört hätte. Nun ja, offensichtlich gehören die Bediensteten des Wirtschaftsministeriums auch zu den Leuten, die nicht wissen, was ein Backslash ist :-)

 Aber Humor beiseite: ich ging also zur angegebenen Seite und wurde dort auf dieselbe Emailadresse wie beim Landratsamt verwiesen, gut zumindest ein Hinweis, dass die Adresse korrekt ist. Außerdem wurde ich noch auf die Hotline hingewiesen, die mich direkt an diese Website verwiesen hatte. Katze und Schwanz und so ...

Da als einziger Kommunikationskanal die Emailadresse bliebt, schrieb ich also eine Email. Diese wurde auch korrekt abgeliefert, es gab jedoch weder eine automatische Eingangsbestätigung, wie man das von anderen Institutionen kennt, noch habe ich bis heute (11 Tage später) eine Antwort erhalten.

Ich kann nur sehr hoffen, dass die Gesundheitsämter besser arbeiten!

Und das Ladengeschäft? Ist nun aus Rücksicht auf die Kunden geschlossen.

Liebes Bayerisches Wirtschaftsministerium, vielen Dank für nichts! :-((

3/06/2020

Die Sprache der AfD

Die Medien lassen sich ja öfter über die Sprache der AfD aus, so werden bei der AfD z. B. aus Flüchtlingen (Konnotation "schutzbedürftig") states Migranten (Konnotation "Eindringlinge").

Sie SZ hat die Sprache im Bundestag per Software analysieren lassen, sehr interessante Einblicke!

Jedoch fehlt mir hier auch ein wenig Selbstkritik der Medien: die AfD hebt ja gerne auf die Herkunft von Straftätern ab, und ich stelle fest, dass die Presse dies (unwillentlich) unterstützt: man findet derzeit in fast jedem Bericht über Straftaten einen Hinweis auf die Herkunft des Täters.

Möglich, dass die Presse damit darstellen will, dass es eben nicht nur Ausländer sind, die diese Taten begehen - also gut gemeint. Allerdings beschwören sie mit dieser Art der Berichterstattung das Gefühl herauf, dass es einen Zusammenhang zwischen Nationalität und Verbrechen gebe - stößt also genau in das Horn der AfD.

Die Nennung der Nationalität ist dabei ungefähr so hilfreich wie die Nennung der Augenfarbe.

2/24/2020

From Owncloud to Nextcloud

I had been using Owncloud for nearly ten years, and was quite satisfied.

So naturally, when a friend needed a similar solution, my first step was to set up Owncloud for him. You use the tools that you know best.

After the installation and before he even started using it, I got a feeling creeping up that I had better check the differences between Owncloud and Nextcloud. And so I did. And then I decided that Nextcloud was the better solution. I spare you the comparison, you can do a web search yourself; suffice it to say that many of the differences were quite appealing to me, last but not least the fact that it is completely open source and has a very active community.

I had already invested time into setting up users, groups and permissions, so I thought, the best was was to run the upgrade script that Nextcloud provide to migrate from Owncloud. I reckoned, it would be quite fast, as there was no content yet. Well, tough s**t: it upgraded from Owncloud 10 to Nextcloud 12, the last compatible version. OK, then you would have to upgrade Nextcloud step by step until you reach version 18 - seems like a very long way. Maybe I would have gone down that path, but I could not even run Nextcloud 12, because it requires PHP 7.1 or lower, a packe not supported any longer and thus (and this is a good thing) not available on the server.

So, back to square one, a clean installation of Nextcloud 18, and creating all the stuff again. It was a bit tiresome, but well worth it. Even during the installation process I was impressed with the quality of the checks, security considerations and advice they offered.

Now this was done, I was able to get my own take on the differences. It was like buying a new bike after 15 years: you were quite satisfied with the old one, but one you had a taste of the new one, there was no going back :-)

So now I needed to migrate my own Owncloud instance, which contained a lot of data. After my experience describe above, I went for a clean install again.

Users, groups, permissions etc. were set up rather quickly.

Migrating the data took a long time, but it was mostly waiting for the computer: I decided to copy the data directory, so I had a backup just in case; moving it obviously had saved several hours.

After copying (or moving) the data directory, running occ files:scan took another couple of hours. This is required so Nextcloud knows about the files I had slipped there behind its back.

Finally, address books an calendars are easy to migrate via export and import. Boring manual work, but I had my reward already in sight :-)

I then put Owncloud into maintenance mode, updated all clients, and switched it off completely. Of course, if you just re-use
Now I am happy and smiling with my new bike Nextcloud instance!

I still have not explored all the new options and apps, there is a lot to explore. This will keep me busy for a while ...


2/21/2020

Falaffelstand mit Wahlwerbung der AfD

Letztens habe ich an "meinem" Falaffel-Stand gesehen, daß dort unter anderen Wahlwerbung der AfD ausliegt. Sympathisanten können die arabischen Inhaber doch wohl kaum sein.

Also, wie kommt der Müll da hin? Hat die AfD bei Verweigerung mit dem Abfackeln des Standes gedroht? Wollen die Inhaber sich für den Fall der Machtergreifung anbiedern? Letzteres hat ja schon früher nicht wirklich funktioniert ...

Ich konnte leider nicht nachfragen, da schon einige Leute ungeduldig anstanden, und hatte gute Lust, gleich alle Flyer mitzunehmen und zusammen mit dem Einwickelpapier meines Falaffel-Wraps dahin zu bringen, wo sie hingehören.

Schade, dass man das nicht darf. Hat trotzdem geschmeckt, und die Freundlichkeit der Inhaber hat mich ebenfalls sehr erfreut.

2/11/2020

CSU: Tempolimit? NEIN Danke!

Die CSU sammelt (im Auftrag des bescheuerten Bundesverkehrsministers?) Unterschriften gegen ein Tempolimit.


Und sie führen auch "gute Gründe" dafür an:
  1. Die Zahl der Verkehrstoten ist in Ländern mit Tempolimit zum Teil drastisch höher als in Deutschland.
  2. Unser Problem sind die Straßen, auf denen bereits Tempolimits gelten. Auf Bundes-, Landes- und Kommunalstraßen liegen die eigentlichen Herausforderungen der Verkehrssicherheit.
  3. Der Umwelteffekt eines Tempolimits ist sehr gering. Mit einem generellen Tempolimit von 130 km/h könnten lediglich 0,6 % der CO2-Emissionen des Verkehrssektors eingespart werden. Es gibt heute also wesentlich effizientere Maßnahmen für mehr Klimaschutz im Verkehr.
OK, schauen wir uns das mal genauer an:

Zu 1: Solche Länder mag es geben, auch wenn keines genannt wird (warum eigentlich nicht?). Dennoch ist hier nicht widerlegt, dass die Zahl der Verkehrsopfer (Tote und Verletzte) durch ein Tempolimit signifikant sinkt.

Im Gegensatz zur CSU führe ich gerne Beispiele an: Dänemark, UK, Niederlande, Schweden, ... Im Vergleich zu Dänemark hat Deutschland mehr als doppelt so viele Todesfälle auf Autobahnen bezogen auf die gefahrenen Gesamtkilometer.

Zudem sollte man einen Erfolg oder Misserfolg hier in Relation zu den Verkehrsopfern vor Einführung eines Tempolimits sehen. Glücklicherweise gibt es auch hier Zahlen, sogar aus Deutschland: nach Einführung eines Tempolimits zwischen Wittstock/Dosse und Havell sank die Zahl der Verkehrsopfer dort um satte 57%!

Zu 2: Wo ist hier ein Argument gegen ein Tempolimit auf Autobahnen? Es spricht ja nichts dagegen, im gleichen Zug auch andere Straßen sicherer zu machen.

Zu 3: Wow, das klingt nach eine präzise durchgeführten wissenschaftlichen Studie. Allerdings antwortet die CSU auf Nachfrage, welche Studie es belegt, nicht, bzw. löscht weitere Nachfragen ungelesen. Professionell geht anders. Selbst wenn der Umwelt-Effekt gering wäre, was ich ohne weiter Information zu der zugrundeliegenden Studie stark bezweifeln würde, wäre es immer noch hilfreich. In der derzeitigen Situation zählt jede Maßnahme, nach dem Motto "Kleinvieh macht auch Mist".

Hier hat sich CSU freiwillig bloßgestellt, nur um einen (weiteren) unfähigen Bundesminister aus ihren Reihen zu unterstützen, statt ihn nach dem Maut-Debakel verdient abzusägen.

Dass Scheuer und die CSU den vom Minister so gepriesenen "gesunden Menschenverstand" nicht besitzen, ist wohl offenkundig.

Als Einwohner Bayerns bin auch ich peinlich berührt.


Wer das "Original" immer noch sehen oder gar unterschreiben (wehe!) mag, findet den Aufruf der CSU hier: https://www.csu.de/tempolimit-nein-danke/

Also wirklich, Ihr wollt immer noch unterschreiben? Dann vielleicht vorher auch dies noch lesen: https://www.br.de/nachrichten/wissen/tempolimit-was-ist-dran-an-der-csu-kampagne

Nachtrag: man hört ja gerne von CDU/CSU und FDP, dass mündige, verantwortungsvolle Bürger keine Verbote brauchen. Nun ist es leider so, dass die immer größer werdende Schar von Egoisten dies sehr wohl brauchen. Und dass Verbote gute Auswirkungen haben und negative Befürchtungen sogar ausbleiben, zeigt sehr schön das Rauchverbot. Es zeigt leider auch, dass Bayerns Regierung, also die CSU mal wieder, zu so etwas nicht fähig ist, und es ein Volksbegehren dazu braucht. Schade, dass es dieses Instrument auf Bundesebene (immer noch) nicht gibt.

Vorgänge in Thürigen haben das Vertrauen in die Politik nicht gemindert

Wo nichts ist, kann auch auch nichts weniger werden, bzw. weniger als Null geht halt nicht.

Die CDU stellt sich mal wieder als würdiger Nachfolger der Zentrumspartei in Sachen Steigbügelhalter für Nazis dar.

2/01/2020

Javascript Promise - My Personal Best Practice

I just love promises. I do not think I could handle asynchronous operations without them. For me they present a simple way to abstract from parallel execution, so the code looks sequential to the programmer, which is a concept that is much easier to comprehend for the human mind - or at least mine.

This article assumes that you have a basic understanding of promises already. There are plenty of good tutorials out there, so I will focus on my personal take on best practices.

Let us look at a dead simple Promise and how its result can be handled:

new Promise((fulfill, reject) =>
{
  fulfill("hello world");
})
.then(
  (value) => { console.log("fulfilled", value); },
(message) => { console.log("rejected", message); }
)
.catch((error) => { console.log("error", error)})
.finally(() => { console.log ("finally")})
;
// console output:
// fulfilled hello world
// finally

This Promise, for the sake of a simple example, just fulfills immediately.
 
You can handle both, fulfillment and rejection in a single then-clause. I often see examples that use "then" to handle fulfillment and "catch" to handle rejection. This is semantically not correct, so do avoid this pattern. I will explain the difference later.

The catch-clause handles and unforeseen errors, such as trying to work with a null object. If not handled in a preceding then-clause, the catch-clause will also handle rejection. In this case, however, you will not know, whether there was a real error, which you better handle in your code, or if it was a "clean" rejection.

Finally, the finally-clause will be executed regardless of whether the Promise has been fulfilled or rejected. It will, mind you, only execute, after the Promise has been settled, i.e. was fulfilled or rejected. As long as the Promise is pending, the finally-clause will not execute.

N.B.: when I talk about "clauses" here, it just helps me to conceptualize the behaviour, I am aware that these are methods that take callbacks as their arguments. You may find another concept more helpful to streamline your own thoughts :-)

Now let us introduce a run-time error into the fulfillment handler:

new Promise((fulfill, reject) =>
{
  fulfill("hello world");
})
.then(
  (value) => { console.log("fulfilled", value); x = null.x; },
(message) => { console.log("rejected", message); }
)
.catch((error) => { console.log("error", error)})
.finally(() => { console.log ("finally")})
;
// console output:
// fulfilled hello world
// error TypeError: "null has no properties"
// [with a reference to your code]
// finally

As you can see in the output, the catch handler is invoked, and the error message can be logged. If you fail to do so, troubleshooting your code may soon become a nightmare.

I will not mention the finally handler, as it will always be called. Boring :-)


Now, moving the catch handler before the then handler makes a big difference:

new Promise((fulfill, reject) =>
{
  fulfill("hello world");
})
.catch((error) => { console.log("error", error)})
.then(
  (value) => { console.log("fulfilled", value); x = null.x; },
(message) => { console.log("rejected", message); }
)
.finally(() => { console.log ("finally")})
;
// console output:
// fulfilled hello world
// TypeError: null has no properties
// [with a clickable reference to your code]
// finally

Now the catch handler will handle any run-time errors preceding the then handler. Errors in the then handler itself, however, will not be handled, and thus will be automatically logged to the console as errors. That is helpful for two reasons: it does not matter, should you forget to display the error in the catch handler, and it gives you a clickable code reference to the origin of the error, so you can see the code and call stack. Nice :-)

Not to miss out on rejection, we will cover this as well:

new Promise((fulfill, reject) =>
{
  reject("hello world");
})
.then(
  (value) => { console.log("fulfilled", value); },
(message) => { console.log("rejected", message); }
)
.catch((error) => { console.log("error", error)})
.finally(() => { console.log ("finally")})
;
// console output:
// rejected hello world
// finally

And last but not least, this is an example that I often see in tutorials, which makes me mad:

new Promise((fulfill, reject) =>
{
    reject("hello world");
})
.then(
    (value) => { console.log("fulfilled", value); }
)
.catch((error) => { console.log("error", error)})
.finally(() => { console.log ("finally")})
;
// console output:
// error hello world
// finally

Because this relies on the catch handler to handle rejects, your code will be at a loss whether there was and error or a "clean" rejection. DO NOT DO THIS!

To summarize my personal best practice:
  1. use then() to handle bot, fulfillment and rejection
  2. put  catch() before then()

These two tiny details make life so much easier :-)
adaxas Web Directory