https://deck-24abcd.netlify.app/
Erstaunliche 3D-Effekte mit CSS und SvelteJS. Source-Code für eigene Experimente ist verfügbar in GitHub. Wollten Sie nicht schon immer mal Ihre Kunden beeindrucken?
https://deck-24abcd.netlify.app/
Erstaunliche 3D-Effekte mit CSS und SvelteJS. Source-Code für eigene Experimente ist verfügbar in GitHub. Wollten Sie nicht schon immer mal Ihre Kunden beeindrucken?
Wahrscheinlich kennen Sie das Problem – wenn eine Datei geschrieben oder geändert wird, soll etwas passieren. Wenn man das pollt, alle paar Sekunden, hat man erstens das Problem der Prozessorlast und zweitens, es dauert bis zur Ausführung im Mittel die halbe Zeit zwischen zwei Aufrufen des Scripts, das die Bearbeitung der neuen / geänderten Datei ausführen soll.
Für solche Zwecke gibt es für Linux das Tool inotifywait. Sie erhalten es mit der Installation des Pakets inotify-tools. Der Vorteil ist, das Betriebssystem wird Ihren Prozess (sofort) aufwecken, wenn auf Dateiebene eines der konfigurierten Ereignisse eintritt, bis dahin schläft Ihr Prozess und verbraucht keine Ressourcen.
Ein Beispiel – wenn in einem Verzeichnis eine PDF-Datei neu erstellt wird, soll ein Reader dafür aufgerufen werden:
#!/bin/bash
while true; do
inotifywait -qq -e close_write /home/$USER/PDF
if [ $? -ne 0 ]; then exit 1; fi
fnam="$(ls -c /home/$USER/PDF/*.pdf |head -1)"
if [ "$fnam" != "" ]; then
xreader "$fnam" &
fi
done
(Ruft nur eine (die neueste) PDF-Datei auf). Für xreader ersetzen Sie ggfs. den PDF-Viewer auf Ihrem System. Hier noch eine Liste der Ereignisse, die überwacht werden können: access, modify, attrib, close_write, close_nowrite, close, open, moved_to, moved_from, move, move_self, create, delete, delete_self, unmount.
1) Verzeichnis erstellen und hineinwechseln
mkdir -p {DirName} && cd $_
Der Parameter „-p“ für mkdir erstellt fehlende Verzeichnisse oberhalb von {DirName} und gibt keinen Fehler aus, falls das Verzeichnis schon existiert. Der Parameter „$_“ für cd liefert das Argument des zuvor benutzten Bash-Befehls, deshalb erstellt diese Sequenz ein Verzeichnis (incl. etwaigen fehlenden Verzeichnissen darüber) und wechselt anschließend hinein. Übrigens, wenn Sie sich das als Alias definieren wollen, dann müssen Sie etwas tricksen, Aliase nehmen keine Parameter. Definieren Sie sich also eine Funktion (geht auch in .bash_aliases):
xcd() { mkdir -p "$1" && cd "$_"; }
2) Sudo in Script erzwingen
Ein Script benötigt sudo, aber Sie möchten es auch ohne sudo aufrufen können, es soll sich dann selbständig „sudofizieren“. Setzen Sie folgenden Code zu Beginn des Scripts:
if [ $(id -u) -ne 0 ]; then
sudo "$0 $*"
exit $?
fi
Nur der Superuser hat ID 0, für jeden anderen Benutzer ruft das Script sich wieder selbst auf mit allen Parametern und sudo.
3) Search und Replace in Textdateien mit überlangen Zeilen
Passiert gerne beim Export von Datenbanken: manche Zeilen sind zigtausende Zeichen lang. Wenn man das mit sed bearbeiten will, geht es schief, weil sed eine Begrenzung für die maximal zulässige Anzahl von Zeichen in einer Zeile hat. Benutzen Sie in solchen Fällen perl:
perl -pi -e 's/{string-in}/{string-out}/g' {file}
4) Nur die IP einer URL ausgeben
Oft benötigt man nur die IP einer URL, aber dig erzählt einen ganzen Roman. Ein nettes kleines Alias (wiederum als Funktion) ist deshalb:
xdig() { dig +noall +answer "$1"|awk '{print $5}'; }
5) Prozess suchen, aber Suche dafür ausfiltern
Finden Sie es auch lästig, wenn Sie mit ps einen Prozess in der Prozessliste suchen, und dafür das Ergebnis von ps mit grep filtern, dann ist immer grep im Ergebnis mit dabei? Auch hierzu ein hilfreiches Funktions-Alias:
xps() { ps ax |grep -i "$1"|grep -v grep; }
Ja, das geht auch mit „ps -C“, aber dann ist es nicht mehr der BSD-Parameter-Standard, findet weniger und außerdem, warum auch immer, funktioniert „-C“ nicht mit „-e“ (alle Prozesse im UNIX-Parameter-Standard).
//Update: Unser Linux-Guru weist mich darauf hin, dass die gewünschte Funktionalität mittels pgrep eleganter zu erzielen ist, nämlich mit pgrep -aif „$1“. Die Funktionsdefinition dafür lautet:
xps() { pgrep -aif "$1"; }
Übrigens, wenn Sie die Datei .bash_aliases editieren, müssen Sie sich danach nicht neu einloggen, um die geänderten Aliase wirksam zu machen. Führen Sie stattdessen „source .bashrc“ aus, das lädt die Umgebung im laufenden Terminal neu.
https://www.phoronix.com/news/GNU-Grep-3.8-Stop-egrep-fgrep
The egrep and fgrep commands have been deprecated since 2007. Beginning with GNU Grep 3.8 today, calling these commands will now issue a warning to the user that instead they should use grep -E and grep -F, respectively. Eventually, GNU Grep will drop the egrep / fgrep commands completely but there doesn’t seem to be a firm deadline yet for when that removal will happen.
Manchmal gibt es ein Schlaglicht, und man kann sehen wie uralt das immer noch quicklebendige und ewig junge Linux bzw. Unix schon ist. In den Anfangstagen der Computerei war jedes Byte kostbar, also spaltete man grep in 4 Komponenten auf – grep, egrep, fgrep und rgrep. Weil auf diese Weise die einzelnen Programme kleiner wurden durch die jeweils in die anderen Binaries ausgelagerte Funktionalität, und damit etwas schneller geladen werden konnten und weniger Platz im Speicher belegten als ein Monolith „mit Mayo und alles“.
Künftig gibt es aber nur noch grep, sowie grep -E für egrep, grep -F für fgrep und grep -r für rgrep. Doch erstmal kommt sowieso nur eine Warnung, falls man die alten Befehle noch benutzt (und schon GNU 3.8 installiert hat). Unsere Enkel werden dann vielleicht eines Tages egrep und fgrep vergessen haben, aber bis dahin … wird Oma Linux bestimmt auch weiterhin gutmütig Befehle aus der Steinzeit akzeptieren. Und wer unbedingt die alten Befehle weiterbenutzen will, oder nicht alle alten Scripte durchflöhen will, kann sich ja ein paar Aliase definieren.
https://blog.fefe.de/?ts=9dfbc7b4
Wenn ihr schon immer mal wissen wolltet, wie schlimm es bei Twitter intern zugeht, dann habt ihr jetzt eine gute Gelegenheit.
Für Musk ist das natürlich ein gefundenes Fressen, um seinen Ausstieg aus dem Twitter-Kauf wegen zu vieler Fake-Accounts zu beweisen. Er hat Peiter „Mudge“ Zatko bereits vorladen lassen. Zatko sagt aber, das wäre nicht beabsichtigt gewesen, es sei eine „unglückliche Koinzidenz“, dass er gerade jetzt an die Öffentlichkeit geht, während Musk sich mit Twitter um Milliarden Dollar streitet.
Seit einer Entscheidung des Landgerichts München werden vermehrt Abmahnungen an Webseitenbetreiber verschickt, die Schriftarten von Google-Servern einbinden. Denn das Einbinden von dynamischen Webinhalten wie Google Fonts von US-Webdiensten ist ohne Einwilligung der Besucher rechtswidrig. Webseitenbetreiber können auf Unterlassung und Schadensersatz verklagt werden.
Wir hatten hier im Blog zu diesem Urteil des Landgerichts München bereits berichtet. Und wie es zu erwarten war, gehen auf leistungslose Abzockerei spezialisierte Gestalten nun auf Webseitenbetreiber direkt los, anstatt sich an die Datenschutzbehörden zu wenden und zunächst dort um Abhilfe zu bitten. Klar, denen ist es an sich völlig egal, was mit ihrer IP geschieht, die wollen nur Kohle. Man kennt das alles ja schon seit den Kindertagen des Internets bis zum Erbrechen (Gravenreuth und andere), ich finde es empörend, dass das Landgericht München solcherart „Geschäftsgebaren“ auch noch fördert. Beschwerde an die Datenschutzbehörde, und wenn dann nicht Abhilfe geschaffen wird, Abmahnung, das wäre ja akzeptabel m.E. – aber so, wie es jetzt ist, ist es nur eine Einladung für die übliche zwielichtige Szene.
Deshalb noch einmal der Hinweis auf das Plugin OMGF von Daan van den Bergh für WordPress-Sites. Funktioniert perfekt, und für die meisten Anwendungsfälle reicht die kostenlose Version. Falls es mit der nicht klappt, oder Sie Support benötigen, können Sie eine Lizenz erwerben, erhältlich ab 19€ / Jahr. Daan ist übrigens sehr freundlich und hilfsbereit, wenn man für komplexere Anwendungsfälle mit den vielfältigen Einstellungen des Plugins Probleme hat.
(Falls Sie kein WordPress nutzen, nochmals der Hinweis auf unseren ersten Artikel zur Problematik, dort sind auch Lösungsansätze für andere Szenarien beschrieben.)
https://linuxhandbook.com/run-alias-as-sudo/
An alias helps you to run lengthy custom commands easily. You can make alias permanent by adding it to your .bashrc or the configuration file of whichever shell you are running in Linux. The problem arises when you try to run the alias with sudo. You’ll see an error like this –
[ sudo: my_alias: command not found ]
Mit diesem hübschen kleinen Trick können Sie auch alle Alias-Definitionen Ihrer Shell mit sudo ausführen. Haben Sie sich noch nie darüber geärgert, dass [ sudo ll ] nur einen Fehler wirft? Man benötigt ein Alias für sudo mit einem Blank am Ende [ alias sudo=’sudo ’ ] dann wird auch der nachfolgende Befehl aufgelöst.
https://www.tichyseinblick.de/tichys-einblick/warum-deutschland-abstuerzt/
Qualität weicht irgendwelchen Quoten; anfangs verschämt, mittlerweile ganz offen und per Gesetz; auch die CDU unterwirft sich diesem Diktat: Sex statt Können, obwohl doch eigentlich die Geschlechter ohnehin nur noch Einbildungssache sind. Logik ist kein Meister mehr in Deutschland, Unlogik und Geschwätz herrschen.
Auch in der IT-Branche greift es immer mehr um sich, irgendwelchen absurden und ständig wechselnden moralischen Anforderungen zu genügen, soll auf einmal wichtiger sein als guter, schneller und sicherer Code. Reihenweise gehen deshalb bereits Projekte kaputt, Hadmut Danisch hat dazu viel zusammengetragen: Gesellschaftszersetzung am Beispiel von Software, die kaputtzerteilhabte Softwarelandschaft, eine rotzfaule Woke-Klapsmühle, über Korruption bei den Grünen.
Und „Der Spiegel“ titelt heute: Wo sind die nur alle hin? Wie der Mangel an Arbeitskräften das Land lahmlegt. Naja, das lässt sich einfach beantworten, viele sind abgehauen, ein großer Teil ist krank / lässt sich krankschreiben, andere legen sich in die steuerfreie soziale Hängematte, und die Gewissenlosen sind selber in das Diffamierungs-Geisteswissenschaftler-Business gewechselt, weil man da prächtig verdient. Ist doch das, was offensichtlich gewünscht ist … Wenn die „richtige“ Gesinnung wichtiger wird als alles andere, dann muss offenbar keiner mehr arbeiten, sondern man braucht nur noch zu hassen, was gerade im Tagesbefehl von den linksgrünen Gesellschaftszerstörern angesagt wird, dann soll sich die Arbeit wohl von ganz alleine machen.
[Coinbase] “sold a single analytics software license to ICE for $29,000” back in August 2021, the report says. The next month, however, it sold software worth $1.36 million to the agency, the report says … ICE [Immigrations and Customs Enforcements] “now has access to a variety of forensic features provided through Coinbase Tracer”, the company’s internal intelligence tool.
Bitcoin ist anonym, haben sie gesagt. Und dezentral. Und vor dem Zugriff der Behörden geschützt. Doch es wird immer klarer, man kommt stattdessen mit den digitalen Währungen erst recht ins Scheinwerferlicht der staatlichen Begehrlichkeiten.
Deshalb arbeiten also die Regierungen der Welt so fieberhaft an digitalem Zentralbankgeld.
Fortunately, there are alternative ways to view Twitter if you’d like to avoid your every cursor movement being monitored. One of them, called Nitter, redirects Twitter web links to an alternative, re-skinned version of the social network that yanks out all the code necessary to track your behavior.
Sie kennen das vermutlich, wenn Sie auf Twitter nicht eingeloggt sind, können Sie es nur sehr eingeschränkt nutzen. Und ohne Javascript geht sowieso nichts. Via Nitter lässt sich Twitter aber „barrierefrei“ nutzen, und bisher ist es Twitter nicht gelungen, diesen Zugang zu blockieren, obwohl Twitter alternative Clients verbietet. Übrigens ist Nitter auch viel schneller als der Zugriff via Twitter, weil die ganze Überwachungsmaschinerie ausgeschaltet ist.
Die Verwendung ist sehr einfach, ersetzen Sie in der URL „twitter.com“ durch „nitter.net“. Für z.B. den Twitter-Account der Cephei also https://nitter.net/CepheiAG. Kleiner Wermutstropfen: Während die Desktop-Version sehr gut funktioniert, sieht es für Mobiles eher mau aus, weil es bisher keine nativen Apps gibt.
»Für viele Unternehmen wird es kaum ein Problem sein, dass der Internet Explorer künftig nicht mehr unterstützt wird. In Japan ist das anders: Laut einer Umfrage vom März 2022 verwenden 49 Prozent der japanischen Unternehmen den veralteten Browser in irgendeiner Weise weiter. “Könnten Sie bitte etwas unternehmen, damit wir keine Probleme haben?”, bat ein Kunde das japanische Systemhaus Computer Engineering & Consulting (CEC), welches diverse Unternehmen betreut.«
An sich hatte Microsoft angekündigt, zum 15. Juni den Internet Explorer per Update zu löschen. Stand heute (17. Juni) ist dies noch nicht geschehen. Gibt es etwa doch weit mehr Gegenwind als man erwartet hatte?
Denn wie bereits hier im Blog beschrieben, der Internet Explorer hat Alleinstellungsmerkmale, die kein anderer Browser aufweist, auch der IE Modus des neuen Edge Browsers nicht. Und Software umzustellen, die vielleicht jahrzehntelang gewachsen ist und auf diesen Merkmalen aufbaut, kann durchaus aufwändig sein.
Sollten Sie Bedarf haben für die Umstellung der Fernsteuerung via COM des Internet Explorers, empfehlen wir Ihnen diesen Artikel hier bei uns; für einen Teilaspekt dieses Themas ist eventuell auch dieser Artikel für Sie interessant.
Agiles Arbeiten ist … weder planlos noch führt es zu ausufernden, teuren Projekten. Es ist lediglich eine Herangehensweise, die sich für komplexe Problemstellungen eignet, indem es die damit verbundenen Unsicherheiten berücksichtigt, akzeptiert und mögliche Antworten zum Umgang damit liefert, anstatt die Illusion zu erwecken, man könne alles bis ins letzte Detail planen und vorhersagen.
Es ist in Mode gekommen, Software-Probleme auf die agile Herangehensweise zu schieben. Und sicher, da gibt es einige Effizienz-Hindernisse, vor allem die endlosen Meetings, die man der Methode ankreiden könnte. Aber das kann ein geschickter Scrum-Master in den Griff bekommen, und die Vorteile des kleinteiligen Herangehens und die Beweglichkeit bei der Anpassung an die Ziele wiegen meiner Meinung die Schwierigkeiten bei weitem auf.
Der verlinkte Golem-Artikel bietet eine sehr gute Übersicht für diese Vorteile der agilen Methode und kommt zum Schluss, dass mit steigender Komplexität einer Anforderung die agile Organisation des Entwickler-Teams unverzichtbar wird.
Wenn Ihre Festplatte vollläuft, und Sie keine neue kaufen können, z.B. weil China offenbar entschlossen ist, den Welthandel lahmzulegen, sind Sie unter Linux fein raus. Dort können Sie mit Bordmitteln die Belegung von Directory-Zweigen anzeigen lassen, damit Sie wissen, wo es sich nach unnützen Datenleichen zu suchen lohnt.
#!/bin/bash
#---------------------------------
#Script lds = list directory sizes
#---------------------------------
TGT="."
if [ "$1" != "" ]; then
if [ ! -d "$1" ]; then
echo "Not a directory: $1"
exit 1
else
TGT="$1"
fi
fi
DIR="$(realpath $TGT)"
find $DIR -type d -exec du -hsS {} \; |sort -h
Dieses Script listet ein Verzeichnis und dessen Unterverzeichnisse mit Größenangabe auf, aufsteigend nach Größe sortiert. Beispiel:
lds Backup 4,0K /home/user/Backup/mdaten 8,0K /home/user/Backup/hibernate 32K /home/user/Backup/unison 64K /home/user/Backup/hChase 192K /home/user/Backup/media-daten 1,8M /home/user/Backup/media-exec 16M /home/user/Backup 513M /home/user/Backup/hChase/old 16G /home/user/Backup/server-bkup
Microsoft will sich nun schon sehr lange vom Internet Explorer trennen, und in Kürze wird es endgültig: Mitte Juni wird ein Update erscheinen, dessen einziger Zweck es ist, den IE zu löschen.
Vielleicht sagen Sie jetzt, naja na und, mit der alten Schabracke lässt sich doch schon seit Ewigkeiten sowieso nichts mehr anfangen. Nicht ganz. Der IE ist der einzige Browser mit einem COM-Modell. Und lässt sich damit nahtlos in eine Vielzahl von Anwendungen und Programmiersprachen integrieren.
Stellen Sie sich vor, Sie hätten in Excel VBA umfangreiche finanztechnische Software kodiert, die für den Betrieb auch Daten aus dem Internet benötigt. Und um das nicht alles immer per Hand einzupflegen, haben Sie den IE automatisiert, dass er die Daten holt. Und *schwupps* mit einem Federstrich macht Microsoft jetzt ihre ganze Arbeit wertlos, tausende von Zeilen, obwohl sie bis heute klaglos den Dienst verrichten. Denn der eine oder andere Darstellungsfehler bei moderneren Seiten ist bei so etwas ja egal, insbesondere da man den IE seine Arbeit komplett im Hintergrund verrichten lassen kann.
Was kann man also tun? Das Update aufschieben? Das geht nur mit den Pro-Versionen von Windows, und auch dort nur eine gewisse Zeit. Die Software in eine VM verlagern, und diese nach jedem Start auf den letzten Sicherungspunkt zurücksetzen? Mit der Zeit würde das wohl eine ziemlich unsichere Angelegenheit, weil gar keine Updates mehr eingespielt würden.
Der saubere Schritt ist hingegen die Rekodierung für eine neue Browser-Automation. Glücklicherweise gibt es nämlich für Edge, Firefox und Chrome eine Automatisierungs-Schnittstelle, sie nennt sich Selenium. Und für Excel und Word VBA gibt es die vorzügliche Bibliothek SeleniumBasic von Florent Breheret. Sie können die Installationsdatei dafür hier downloaden.
Im Folgenden möchte ich Ihnen die ersten Schritte mit dieser Bibliothek ein wenig erleichtern.
Vor über 30 Jahren, mein Unternehmen war noch sehr klein, nur eine Ein-Mann-GbR, und es hieß noch gar nicht Cephei, arbeitete ich dies und das. Fahrschulsoftware, Datenbank-Auswertungen, Telefonanlagen programmieren und dergleichen. Mir ging es ganz ordentlich damit, aber natürlich hätte es besser sein können.
Dann erhielt ich eine Anfrage. Die ersten Jagdflieger mit Joystick-Steuerung wurden gebaut, und man suchte Auftragnehmer für die Kodierung der nachträglichen Auswertung der beim Flug anfallenden Steuerungsdaten. Mir wurde ein, für meine damaligen Verhältnisse, geradezu märchenhafter Verdienst angeboten.
Ich habe mich schwer getan. Das schien ein Sprungbrett in eine großartige Zukunft zu sein. Und, wenn ich ablehnen würde, würde vielleicht mein gerade erst gegründetes Unternehmen gleich wieder versterben? So nach dem Motto, den braucht man gar nicht erst zu fragen, der ist so eingebildet und meint, er kann es sich aussuchen, für wen er arbeitet.
Ich lehnte ab. Ich dachte mir, wenn nur ein Kind an einer Bombe stirbt, die ein Flieger mit einer von mir mitentwickelten Steuerung abgeworfen hat, dann könnte ich mir das niemals mehr verzeihen.
Und heute also ist wieder Krieg in Europa, Russland hat die Ukraine überfallen, und keiner kann sagen, wohin das gehen wird. Ich aber habe zumindest mit den Waffen dafür nichts zu tun. Und ich weiß, meine Entscheidung von damals war richtig, und ist es immer noch.
Bei den vielen großartigen technischen Fortschritten ist unweigerlich alles in immer größerem Ausmaß von Software abhängig geworden. Ich denke, wir Programmierer sollten uns immer fragen, ob wir noch ruhig schlafen können, wenn dieses oder jenes Projekt mit unserer Denkleistung verwirklicht und auf die Menschen losgelassen wird. Ob es Waffen sind, Überwachung oder auch Big Data. All diese Dinge kommen – noch – nirgends hin ohne Programmierer, die die Software dafür schreiben.
Es läuft alles auf die eine Frage hinaus: Haben wir unseren Beruf ergriffen, um die Welt ein kleines bisschen besser zu machen? Oder interessiert uns nur der eigene Vorteil, und alle anderen sind uns egal?
„Was nützt es die ganze Welt zu gewinnen und dabei seine Seele zu verlieren?“ Matthäus 16,26