Plattformen
- https://leetcode.com/
- https://www.codingame.com/
- https://www.freecodecamp.org/
- https://www.codeproject.com/
KI
Programmieren
zwei Faktor Authentifizierung cloning HDD CadQuery => 3D in Python winget installieren (Powershell) - Install-Module -Name Microsoft.WinGet.Client - Learn X in Y minutes
Data fitting (Sensor)
Kreisausgleichsproblem Ausgleich 2. Grades Achsenabschnitt Wikibooks Regressionsanalyse Kugel per numpy anpassen Sphere fitting python Kreisausgleich
Datamining
Open Data Sources Free Datasets Kaggle Kaggle/Pandas
Hacking
CyberChef: find encoding TryHackMe - Try hack me: https://tryhackme.com/ - Hacking box: https://www.hackthebox.com/
GUI in Python
Frameworks 10 Frameworks Übersicht Widgets Paned Window
Bedienbarkeit
- 10 Prinzipien nach Jakob Nielsen
- Nielsen Norman Group => Poster
- 8 Regeln von Ben Shneiderman
- Ergonomie
- ISO9241-110
- Guideline
Projekte
Misc
- Evolutionäre Algorithmen: https://de.wikipedia.org/wiki/Evolution%C3%A4rer_Algorithmus
- Downhill-Simplex-Verfahren: https://de.wikipedia.org/wiki/Downhill-Simplex-Verfahren
Handlungsreisender
Punkte = [ [x0, y0], [x1, y1], … ]
Start = 0 # erstes Element
Anzahl = 5 # Anzahl der Punkte
AbstandsMatrix erstellen
Ausgangsvektor bestimmen V = Punkte[Start:Start+Anzahl]
Länge für Vektor bestimmen
Idee:
Verbindungsmatrix: nächste 2 Punkte markieren
Gemeinsame Strecken = Teil der Lösung
Z.B. A => B, C; B=> A, D; AB doppelt = Lösung
Einfache Verbindung (entfernt liegende Punkte):
Erweiterung der Idee: - Punkt Z mit größter (kürzester) Entfernung darf sich seine beiden nächsten Nachbarn "aussuchen" - Punkt Z fertig => löschen - Danach Punkt Y nächster Punkt mit größter Entfernung - Etc.
Mögliche Konflikte: - Zwei oder mehrere "entfernte Punkte" wollen sich mit gleichem Punkt verbinden - Kein zusammenhängendes Gebilde (zwei Flächen)
Links
- Einstieg Stackoverflow: https://stackoverflow.com/questions/11007355/data-for-simple-tsp
- TSPLIB: http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/
- Database: http://www.math.uwaterloo.ca/tsp/index.html
- TSP Jupyter: https://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb
- World TSP: http://www.math.uwaterloo.ca/tsp/world/index.html
Evolutionäre Algorithmen
-
Initialisierung
Population mit Lösungskandidaten erstellen- Zufall
- Beste (bisher) bekannte Ergebnisse
-
Bewertung
Güte aller Lösungskandidaten ermitteln -
Terminierungsbedingung Prüfung ob Ziel erreicht wurde:
- Vorgegebener Schwellwert
- Gewünschte Güte
- Anzahl Generationen ohne Verbesserung
- Maximale Anzahl Iterationen
-
Paarungsselektion
Abhängig von Güte Anzahl der Nachkommen bestimmen -
Rekombination
Durchmischung der Population -
Mutation
Kleine Veränderung am (neuen) Individuum -
Bewertung
Güte aller Lösungskandidaten ermitteln -
Umweltselektion
Integration der Kinder in die Population der Eltern- Einzelne Individuen entfernen
- Gesamte Elternpopulation entfernen
Handlungsreisender
Mutation:
- Tausch zweier Elemente
- Invertieren eines Teilabschnitts
- Abschnitte kombinieren
+ Ordnungsrekombination
+ Kantenrekombination
Wikipedia: https://de.wikipedia.org/wiki/Evolution%C3%A4rer_Algorithmus https://www.codeproject.com/search.aspx?q=genetic&x=0&y=0&sbo=kw
MD5-Checker
Datei im Explorer mit rechter Maus anklicken - Check File - Check Folder - Check Database
Check File
- Dateiname schon in Datenbank?
- MD5 schon in Datenbank?
Dateiname nicht enthalten | Dateiname enthalten | |
MD5 nicht enthalten | Datei in DB nicht enthalten Datei + MD5 zu DB hinzufügen? |
Datei wurde geändert! MD5 in DB anpassen |
MD5 einmalig enthalten | Datei existiert unter anderem Namen an anderer Stelle Datei zu DB hinzufügen? Datei von HD löschen? |
Datei einmalig in DB Dateieintrag aus DB löschen? Datei von HD löschen? |
MD5 mehrmals enthalten | Doublette mit anderem Namen Datei von HD löschen? Datei zu DB hinzufügen? |
Datei in DB erfaßt + Doubletten an anderer Stelle Datei von HD + aus DB löschen? |
Check Folder
- Neue Dateien zu DB hinzufügen
- Dateien mit bereits vorhandenem MD5 auf HD löschen
- …
Check Database
- Konsistenz der Datenbank prüfen
- Gibt es die Datei noch?
- Stimmt MD5 noch?
Datei noch vorhanden | Datei nicht mehr vorhanden | |
MD5 korrekt | Alles i.O. Keine Aktion |
Datei wurde gelöscht Eintrag aus DB löschen |
MD5 falsch | Datei wurde geändert MD5 aktualisieren |
Datei wurde gelöscht Eintrag aus DB löschen |
Datenbank
Dateiaufruf
- Dateiname wird bei Aufruf übergeben
- Test ob Datei oder Ordner
- Wenn Datei
- Berechne MD5
- MD5-Wert in Datenbank schon vorhanden?
- Nein => Wert abspeichern (neuer Eintrag: MD5-Wert, Pfad+Dateiname)
-
Ja => aktueller Pfad unter MD5-Wert vorhanden?
- Nein => Wert abspeichern (MD5-Eintrag um Pfad ergänzen)
- Ja => Datei bereits vorhanden
- Wenn Ordner
- Erfasse alle Dateien in diesem Ordner
- Frage rekursiv alle Unterordner ab
Datenstruktur
MD5, Pfad1, Pfad2 => {MD5 : [Pfad1, Pfad2]}
KISS: Datum wird nicht mit abgespeichert => kann bei Bedarf abgefragt werden (Pfad ist bekannt)
Funktionen
- Load_DB() => wenn Datei existiert, einlesen; sonst: leere DB
- Save_DB() => als CSV oder TXT abspeichern
- Info() => Anzahl Elemente, Dateiname, etc
- Add_File() => prüfen ob schon vorhanden, ggf. einfügen
- Add_Folder() => alle Dateien eines Ordners hinzufügen
- Show_Hash() => alle Dateien mit gegebenen Hash anzeigen
- Show_File() => alle Dateien mit gleichem Hash anzeigen wie gegebenen Datei
- Check_DB() => prüfen ob alle Dateien aus DB noch auf HDD existieren, gleichzeitig Hash auf Änderungen überprüfen
Format in Datei
Hash, Pfad, Dateiname, Größe
- DB laden / speichern
- Datei hinzufügen / löschen
- Ordner hinzufügen
- Alle verfügbaren Hashes abfragen
- Alle verfügbaren Pfade abfragen
- Prüfen ob Datei (Hash) in DB enthalten
- Dateien mit gleichem Hash abfragen
- DB auf Konsistenz prüfen (Dateien noch vorhanden, Hashes noch korrekt?)
Ablauf
einzelne Datei
- prüfen ob genau diese Datei schon in Datenbank enthalten ist
- => prüfen ob sich die Datei geändert hat (MD5)
- prüfen ob Datei(en) mit gleichem MD5 in Datenbank vorhanden ist/sind
ganzer Ordner
- für jede Datei wie oben => zu viel Infos für sinnvolle Darstellung
- Ordner in Datenbank aufnehmen
- Ordner prüfen
- => geänderte Dateien => update database
- => gelöschte Dateien => update database
- => neue Dateien (bisher nicht vorhanden) => add to database
Log-Datei
- Aufrufe und gewählte Aktionen
- Änderungen an der Datenbank
con-Job auf DS218
Control Panel => Task Scheduler Create => Scheduled Task => User-defined Script https://knasmueller.net/configuring-cron-jobs-on-a-synology-nas
Exif-Datum aus Bildern
https://stackoverflow.com/questions/23064549/get-date-and-time-when-photo-was-taken-from-exif-data-using-pil
Wetterauswertung
WebCam abgreifen: wget -O pic.jpg http://wetter.webwusel.com/images/WebCam.jpg Datum und Uhrzeit für Dateiname: date +"%Y-%m-%d_%H-%M"
- wget -O WebCam/"$(date +"%Y-%m-%d_%H-%M").jpg" http://wetter.webwusel.com/images/WebCam.jpg
Cron-Jobs - Doku : https://www.stetic.com/developer/cronjob-linux-tutorial-und-crontab-syntax/ - Anleitung: https://wiki.ubuntuusers.de/Cron/
Sonnenstand: http://www.geoastro.de/SME/tk/index.htm
![[Pasted image 20231030104756.png]]
Praktisch kein Regen bei rel. Luftfeuchte < 50%
Kein Regen bei Luftdruck > 1018
Je höher der Luftdruck, desto höher muß die Luftfeuchte sein damit es regnet
automatische Fotobewertung
Bildschärfe
- https://www.mikrocontroller.net/topic/381725
- https://stackoverflow.com/questions/7765810/is-there-a-way-to-detect-if-an-image-is-blurry
- https://collab.dvb.bayern/display/TUMldv/Vorsortierung+von+Fotos#VorsortierungvonFotos-AnalysevondigitalenBildern
weitere
Character-Generator
0 | Männer | Frauen | Jugendliche |
---|---|---|---|
Mittelwert | 83,6 kg | 68,5 kg | 63,5 kg |
Standardabweichung | 13,4 kg | 12,6 kg | 12,9 kg |
Mittelwert | 180 cm | 165 cm | 164,5 cm |
Standardabweichung | 7 cm | 7 cm | 6,9 cm |
### Gewicht | |||
Männer: | |||
- Mittelwert = 83,6 kg | |||
- Standardabweichung = 13,4 kg |
Frauen - Mittelwert = 68,5 kg - Standardabweichung = 12,6 kg
Jugendliche - Mittelwert = 63,5 kg - Standardabweichung = 12,9 kg
BMI (kg/m²) - Untergewicht: <18,5 - Normalgewicht: 18,5 - 25 - Übergewicht: 25 - 30 - Adipositas: >30
Körpergröße
Männer: - Mittelwert = 180 cm - Standardabweichung = 7 cm
Frauen - Mittelwert = 165 cm - Standardabweichung = 7 cm
Jugendliche (14-18J.) - Mittelwert = 164,5 cm - Standardabweichung = 6,9 cm
Namen
=> Excel-Tabelle mit Vor- und Nachnamen Vornamen 1940 Vornamen 1950 - heute
Augenfarbe
- Braun 75%
- Blau 10%
- Haselnuss 5%
- Bernstein 5%
- Grau 3%
- Grün 2%
Strassenname
=> txt-Datei
Schulabschluss
VVS Fahrplan
Datenmodelle
![[Pasted image 20231030104953.png]] https://de.wikipedia.org/wiki/Methode_der_kleinsten_Quadrate