Warning: Trying to access array offset on value of type null in /mnt/web515/c3/57/5488257/htdocs/_apfelz/_lib/functions.php on line 90 Apfel Z | Tipps, Tricks und Hacks für Mac, Android, Web & Co.
This page intentionally left blank
  Seite:  1 2 3  ...  21 22 23 >> 341 Artikel insgesamt   
Willkommen bei Apfel Z

Herzlich willkommen bei Apfel-Z

Bei Apfel-Z dreht sich alles um den Macintosh/MacOS X, Unix, das Web, Android und sonstige technische Basteleien. Weiterlesen...
 
Webserver-Backup mit Kommandozeilenprogramm sftp

Eigentlich geht es hier nicht speziell um Webserver-Backups, sondern eher allgemein um die Verwendung des sftp-Kommandozeilenprogrammes.

In meinem ganz speziellen Fall wollte ich jedoch ein wöchentliches Backup aller PHP-Skripte & Co. von einem Webserver machen, da ich an den PHP-Skripten ständig arbeite und im Hintergrund gerne eine relativ aktuelle funktionierende Kopie haben möchte.

Sucht man im Internet zu Hilfestellungen zum sftp-Kommandozeilenprogramm, endet die Hilfestellung meist mit dem Tipp, doch lieber scp oder rsync zu verwenden.
Dies soll hier nicht der Fall sein, da in meinem Fall der betroffene Webserver jegliche Verbindung außer explizit sftp ausschließt.

Mein Ziel:
Ein kurzes Skript, das fast alle Dateien eines Verzeichnisses auf dem SFTP-Server herunterlädt. Ich paar Dateien und Verzeichnisse möchte ich allerdings vom Herunterladen ausschließen, da sie Bilder, Dokumente und temporäre Daten enthalten, welche ich bei meiner Kopie nicht benötige.
Das schließt die einfachste Verwendung von sftp schonmal aus...

Weiterlesen...
 
mysql: Datumsintervall generieren

Absolutes Randgruppenthema und ein exotisches noch dazu, aber da ich mir für die Lösung eines Problemes stundenlang die Finger wundgegoogelt hatte, hier mal ein Treffer mehr für die Google-Suche.

Was war das Problem?

Ich habe ein Tabelle mit Bestellungen verschiedener Shops, wie etwa vereinfacht jene hier

id shop datum
 1    1 2022-12-01
 2    1 2022-12-01
 3    1 2022-12-02
 4    2 2022-12-02
 5    2 2022-12-02

Nun will ich je Shop und je Tag (und auch je Woche, je Monat, je Jahr) wissen, wie viele Bestellungen für Shop 1 und Shop 2 jeweils eingegangen sind. Das ganze auch grafisch in einem Diagramm darstellen.

Man möchte meinen, mit einem COUNT() und GROUP BY sei dies ja ganz einfach. Allerdings bekomme ich kein Ergebnis für die Tage/Wochen/Monate/Jahre, wo es bei einem Shop keine Bestellung gab.

SELECT COUNT(id) AS anzahl, shop, datum
  FROM bestellungen
  WHERE datum >= '2022-12-01' AND datum <= '2022-12-02'
  GROUP BY shop, datum

anzahl shop datum
     3    1  2022-12-01
     1    1  2022-12-02
     2    2  2022-12-02

Ich vermisse das Ergebnis "Shop 2 am 1.12.2022 Anzahl: 0"

Weiterlesen...
 
.htaccess-Refresher

Ich habe ein paar Websites (wie z.B. auch in so gut wie allen Fällen den phpMyadmin) per .htaccess abgesichert, so dass man nur von bestimmten IP-Adressen aus darauf zugreifen kann.

Beispiel:

order deny,allow
deny from all
Allow from 198.141.12.11
Allow from 198.141.12.12

Das funktioniert für den Zugriff vom Firmennetzwerk aus recht gut, von zu Hause aus allerdings nur für einen Tag, da sich bei mir zu Hause die IP täglich ändert und ich somit immer erst die .htaccess-Datei ändern muss, um zugreifen zu können.

Deshalb habe ich mir ein Skript geschrieben, welches in sämtlichen .htaccess-Dateien meine IP-Adresse aktualisiert.

Weiterlesen...
 
Alternative E-Mail-Absender-Adresse mit Office365

Für mich mit meinen E-Mail-Clients immer eine simple Geschichte gewesen: Beim Absenden einer E-Mail einer von verschiedenen Absender-Adressen auswählen. So bekommt der Empfänger eine E-Mail entweder von hans.dampf@apfelz.ned, info@apfelz.ned, leckmich@apfelz.ned oder hans.dampf@myotherdomain.com

Und wenn die E-Mails der Domain apfelz.ned über Office365/Exchange (oder Microsoft365 oder wie immer das nun heißt) laufen?

Alles nicht so einfach. Zwar lassen sich mehrere Adressen als Alias für ein Postfach einrichten, so dass alle E-Mails, die an jene Adressen gesendet werden, eingehen doch ausgehend wird immer die Standard-E-Mail-Adresse verwendet. Auch wenn man denkt, man hätte im E-Mail-Client alles so verbogen, dass man mit einer anderen Adresse sendet – denkste, der Exchange-Server haut die Standard-E-Mail-Adresse drüber.

Die Lösung für dieses Problem ist (wer hätte bei Microsoft was anderes erwartet) alles andere als simpel.

Weiterlesen...
 
Mastodon mit Apache ReverseProxy

"Mastodon" war bisher wahrscheinlich nur Paläontologen ein Begriff. Bis Elon Musk Twitter kaufte und plötzlich alle eine Alternative zu Twitter suchten (die wahrscheinlich genau so schnell wieder vergessen sein wird, wie alle WhatsApp-Alternativen, die sich die Leute installiert hatten, nachdem facebook WhatsApp gekauft hatte).

Nachdem ich um jedes (un)soziale Netzwerk, welches nach facebook kam, einen Bogen gemacht hatte und mich auch schon seit 8-10 Jahre nicht mehr bei facebook eingeloggt hatte, ist es vielleicht mal wieder an der Zeit, eine Vorreiterrolle zu übernehmen und zu den wenigen Trötern zu gehören, die Mastodon nutzen. Vor allem, weil man einen Mastodon-Server selbst hosten kann (was zugegebenermaßen der einzige Anreiz war, mich mit dem Thema zu beschäftigen).

So habe ich meine eigene Mastodon-Instanz mit Hilfe von Docker zum Laufen gebracht.

Weiterlesen...
 
HTML-E-Mails mit Bildern verschicken

Natürlich kann man in jedem E-Mail-Client schön bunte E-Mails erstellen. Ich bevorzuge es aber manchmal, den Content selbst als HTML-Quellcode zu erstellen. Doch wie versendet man diesen HTML-Quellcode dann als E-Mail?

Weiterlesen...
 
OpenSSL updaten

Welche Version habe ich überhaupt?

openssl version

Hier erscheint bei mir LibreSSL 2.2.7 mit dem ich nun wenig anfangen kann...aber jedenfalls kommt diese Version nicht mit dem am 30. September 2021 verfallenen Let's Encrypt-Zertifikat zurecht.

Versuchen wir mal, mit Homebrew eine neuere OpenSSL-Version drauf zu bekommen.

Kleines Problem: Homebrew benutzt curl, um Dinge herunterzuladen und kann wegen eben jenem Zertifikatsproblem, das ich nun habe, auch kein OpenSSL (oder irgendwelche anderen "bottles") herunterladen.

Workaround dafür: Die Zertifikatsprüfung für diese Installation aussetzen (ohje...und wenn mir jetzt jemand ein gefaktes OpenSSL unterjubelt?!?!)

1. Den Flag --insecure zur curl-Config hinzufügen:

echo "--insecure" > ~/.curlrc

2. Die curl-Config beim Installieren berücksichtigen (HOMEBREW_CURLRC=1 voranstellen):

HOMEBREW_CURLRC=1 brew install openssl

3. Damit die Homebrew-SSL-Version verwendet wird

brew link --force openssl

Bei mir erscheint dann allerdings die Warnung:

Warning: Refusing to link macOS provided/shadowed software: openssl@3
If you need to have openssl@3 first in your PATH, run:
echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> /Users/apfelz/.bash_profile
Nachdem die Zeile export PATH="/usr/local/opt/openssl@3/bin:$PATH" dem .bash_profile im Home-Ordner hinzugefügt wurde und eine neue Terminal-Session geöffnet wurde, meldet sich OpenSSL mit OpenSSL 3.0.7
 
Google Analytics im Jahr 2022 verwenden

Man dürfte meinen, dass so gut wie jede Website heutzutage Google Analytics nutzt. Trotzdem habe ich nirgends eine vollständige Anleitung gefunden, wie man im Jahre 2022 Google Analytics zu einer Website hinzufügt. Denn einerseits sieht Google Analytics jedes Mal, wenn ich es benötige (was ehrlich gesagt sehr selten ist), anders aus und andererseits muss man in Europa ja auch noch viel mehr drumherumbasteln, um nicht irgendwann Post vom Anwalt zu bekommen.

Ich möchte in diesem Zuge darauf hinweisen, dass apfel-z kein Google Analytics verwendet. Mir ist es relativ wurscht, wie viele andere Leute mit welchem Browser von wo aus wie lange auf meinen Wissensspeicher zugreifen.

Achtung: Ich lege nicht meine Hand dafür ins Feuer, dass die ganze Sache auch wirklich 100% gesetzeskonform ist und einem nicht trotzdem jemand an den Karren fahren kann.
Ich sage immer wieder: Um heutzutage Websites zu erstellen, müsste man eigentlich nicht Programmierer/Designer, sondern Advokat sein.

Außerdem kann alles im Folgenden Beschriebenen zu dem Zeitpunkt, wo dieser Artikel gelesen wird, schon wieder anders aussehen und funktionieren. Google ist nicht gerade durch seine Konsistenz bekannt.

Weiterlesen...
 
Android auf dem Computer via VirtualBox

Es gibt zahlreiche Programme, um Android auf dem Computer auszuführen. Ein Beispiel sei da Blue Stacks. Allerdings sind diese Programme meist für Gaming ausgelegt, geben nicht so wirklich auf den ersten Blick preis, welche Android-Version da eigentlich vor sich hin werkelt und was daran modifiziert wurde und vor allem: Funktionieren sie bei mir nicht (sofern ein leeres Fenster nicht beabsichtigt ist).

Grund, sich mal darüber Gedanken zu machen, ob es solche Programme überhaupt braucht. Denn eigentlich gibt's ja mit Virtual Box eine gratis erhältliche Virtualisierungs-Lösung mit der man sogar Android virtualisiert auf dem Computer laufen lassen kann.

Weiterlesen...
 
Oracle SQL für PHP einrichten

Von einem Ubuntu-Webserver aus muss ich in PHP-Skripten auf eine Oracle SQL Datenbank zugreifen können (die auf einem anderen Server läuft).

Obwohl es doch einige Hürden zu überwinden gab, war ich positiv überrascht, dass ich schnell ans Ziel kam.

Weiterlesen...
 
MediaWiki-Erweiterung: CSS- und JavaScript-Dateien einbinden

Natürlich gibt es die common.css und die common.js, um eignen CSS- respektive JavaScript-Code in die Wiki zu integrieren.

Allerdings bekam ich mit wachsender Anzahl von Modifikationen und wachsender Anzahl von Wikis Probleme, die beiden common.*-Seiten aller Wikis zu pflegen.

Sei es ein Verbund von drei Wikis, die auf einem Server installiert sind, um die Infos verschiedener Unter-Unternehmen abzugrenzen oder ein Verbund von 10 Wikis, die auf einem anderen Server installiert sind, (Tendenz steigend), um verschiedene Kundengruppen mit verschiedenen Informationen zu versorgen.
Sollen alle Wikis gleich aussehen und dann mal eine Farbe geändert werden, ist man eine Weile beschäftigt.

Deshalb habe ich mir Gedanken gemacht, wie ich den Code, der bei allen Wikis gleich ist, in eine separate Datei auslagere, auf die alle Wikis zugreifen können.
Weiteres Benefit: Den Code in der Textdatei zu ändern ist für mich schneller erledigt, als erst in der Wiki zur common.*-Seite zu gelangen und dort den Text zu bearbeiten.

Weiterlesen...
 
Cold Spare Docker Container oder wie ich ein Docker Backup wieder herstelle

In diesem Artikel hatte ich beschrieben, wie ich ein Backup eines Docker-Daten-Volumes erstelle.

Allerdings ist in diesem Fall das Erstellen eines Backups nur die halbe Miete.
Erstelle ich ein Backup meiner Fotosammlung und die Fotosammlung geht verloren...dann greife ich einfach auf das Backup zu.
Aber was fange ich mit dem Backup des Docker-Daten-Volumes an, wenn zum Beispiel der Server den Geist aufgibt, auf dem Docker läuft? Wie bekomme ich meinen Docker Container wieder zum Laufen inklusive der verwendeten Dateien?

Das Folgende habe ich an Hand meines Bitwarden/Vaultwarden-Containers beschrieben, wo alle wichtigen Daten in einer sqlite-Datenbank gespeichert werden, die in einem Docker-Daten-Volume liegt.

Weiterlesen...
 
PHP-Modul installieren, wenn man mehrere PHP-Versionen einsetzt

Bei der Installation einer PHP-Extension hatte ich schon fast aufgegeben, weil mir die verschiedenen auf dem Server installierten PHP-Versionen einen Strich durch die Rechnung gemacht hatten.

Was man zu beachten hat, wenn auf einem Server mehrer PHP-Versionen installiert sind und ein paar hinzugewonnene Erkenntnisse meinerseits.

Weiterlesen...
 
Was hat der denn für ne Reichweite?

Eine Frage, die ich NICHT mehr hören kann!

Wieso ist das immer die erste Frage nach der Feststellung "Ah, ein Elektroauto!"?
Wahrscheinlich, weil man von den Medien in den letzten Jahren immer gedrillt wurde auf "Achtung! Elektroautos haben keine große Reichweite!".

Ich werde ab sofort jeden, der sich einen neuen Verbrenner gekauft hat, fragen, wie hoch denn die Reichweite ist (und wahrscheinlich wird mir das niemand auf 50 km genau angeben können).
Und sollte ich mal eine Antwort bekommen, frage ich noch, wie weit er denn normalerweise am Stück fährt, so dass man von der Reichweite auch nen praktischen Nutzen hat.

Zugegebenermaßen treffen zwei Dinge auf mich nicht zu, deshalb habe ich gut Reden:
1. Ich bin kein Außendienstler, der jeden Tag 1000 km von Kunde zu Kunde fahren muss (das trifft wohl auf die Meisten zu)
2. Ich bin kein Städtler, der sich jeden Tag auf's Neue einen Parkplatz irgendwo in ner Seitenstraße suchen muss (wo natürlich kein Ladestecker vorhanden ist), sondern ich habe einen eigenen Abstellplatz mit Wallbox

Unter dieser Voraussetzung kann mir die Reichweite des Elektroautos wirklich wurscht sein. Merkt euch das alle!

Denn sind wir mal ehrlich: Was für eine Strecke legt man normalerweise zurück? Zur Arbeit, vielleicht noch einkaufen gehen und wieder zurück nach Hause. Sagen wir mal 40 km.
Diese Strecke kann ich sogar mit einem uralten Elektrosmart dreimal schaffen, ohne laden zu müssen.
Aber abgesehen davon: Den Stecker einzustecken, wenn ich nach Hause komme, ist sowieso kein großer Aufwand und kostet mich vielleicht 10 Sekunden.

So gesehen kostet die Betankung eines Elektroautos weniger Zeit, als die Betankung eines Verbrenners (mal davon ausgehend, dass man nicht unterwegs laden muss). 10 Sekunden versus...5 Minuten?

Kommen wir aber mal zum Knackpunkt der Elektromobilität und der Frage, die wirklich eine Rolle beim Smalltalk spielen sollte:
Wie schnell lädt er denn?

Fahre ich 1000 km in Urlaub (und ich möchte den sehen, der das ohne Pinkelpause schafft! Ich benötige in der Zeit mindestens 3!), muss ich keinen überdimensionierten Akku mitschleppen, um sagen zu können "Boah, ich hab die 1000 km ohne Nachladen geschafft!".
Wäre natürlich cool, wenn die Elektroautos bald mal so effektiv wären, dass das tatsächlich möglich wäre – aber dann sollte man sich vielleicht Gedanken machen, die Akkus kleiner zu dimensionieren. Spart Geld und ist besser für die Umwelt.
Nein, aus der Erfahrung des letzten Urlaubes macht man sowieso all 2 Stunden einen kurzen Stopp, weil irgendjemand auf's Klo muss. Diesen Stopp kann man statt auf dem kleinen Parkplatz auch auf dem Rasthof machen und so lange das Auto einstecken.

Und nun kommt der Knackpunkt: Ist es nach dem Toilettengang voll genug, um wieder 2 Stunden lang Strecke gut machen zu können oder wurde in der Zeit nur Strom für 20 Streckenkilometer nachgeladen?

Ich bin gespannt, wann mich mal der erste "Wie schnell lädt er denn?" statt "Was hat der denn für ne Reichweite?" fragt.
Aber es wird dann wahrscheinlich selbst ein Elektromobilist sein.
 
  Seite:  1 2 3  ...  21 22 23 >> 341 Artikel insgesamt