Hallo liebe Leute
Wie manche von euer sicherlich schon anhand meines „Beards/Tears Karteneditors“ mitbekommen haben dürften, liebe ich es, ab und zu kleine aber feine Programme zu schreiben ^^ Da ich allerdings nicht nur mit RocketBeans-Bezug programmiere und es daher nicht in das „Projekte“ Subforum passt, dachte ich mir, dass ich hier eine Fred aufmache um euch meine Programme vorzustellen ^^
Ich versuche das Ganze übersichtlich zu halten. Falls an irgendeinem der Programme Interesse besteht, könnt ihr mir einfach per Mail schreiben, dann stelle ich hier einen Link rein
Bei Kritik, Anregungen oder Programmwünschen (diese dann aber bitte ausführlich und nachvollziehbar) könnt ihr gern einen Kommentar hinterlassen ^^
##Programme
Name:
File Renaming Helper
Icon:
(Iconion; free)
Problemstellung:
Kennt ihr das Problem, wenn ihr aus dem Internet mehrere zusammengehörende Dateien (wie bspw. Gregors Plauschangriff) downloaded, sie aber komplett krepelige Namen haben? Oder wenn ihr euch eine Playlist downloaded (was wir braven Menschen natürlich niemals nie machen würden ) aber die Titel acht Kilometer lang sind, sodass ihr auf dem Handy überhaupt nicht die Laufnummer nachvollziehen könnt? Oder ihr habt euch eure Urlaubsfotos von eurer SD-Karte gezogen und wollt jetzt, dass alle einen vernünftigen Titel tragen (wie bspw. „Urlaub_2016“ oder ähnliches)? Dann ist mein kleines Programm genau das Richtige für euch
Aufgabe:
Der File Renaming Helper ermöglicht es euch, oben genannte Probleme zu umgehen und für eine einheitliche Benennung aller Datein (mit einer zusätzlichen Laufnummer zur Unterscheidung). Außerdem ist es euch möglich einen Prä- und Suffix auszuwählen und/oder das jeweilige Datum zu inkorporieren ^^ Schluss mit wüsten Namenswüsten, Hallo Oase der Gleichheit!
Technische Details:
Also, gerade habe ich einen Test mit im Schnitt ca 800 MB großen Datein gemacht, insgesamt eine Datenmenge von 49.7 GB (laut Explorer). Die Dateien wurden dabei von einer etwas betagten HDD auf meine derzeitige SSD gezogen (beide intern per SATA mit dem Mainboard verbunden).
Ram-Nutzung: Peak lag bei 5 GB, im Schnitt wurden ca 3.8 GB für die Aktion benötigt
Zeit: Der ganze Spaß hat 413.208 Sekunden/ 6.88 Minuten gedauert, was an sich eine akzeptable Zeit sein dürfte. Das entspricht einer Durchsatzrate von ~120 MB / Sekunde.
Aktuelle Datenrate (05-02-2017): Durch Einsatz des NIO von Java 8 braucht der ganze Vorgang < 1 Sekunde, was Angaben von Datendurchsatzraten unsinnig macht. Einzig relevant wäre das Umbenennen von Dateien die gleichzeitig auf eine andere Festplatte geschoben werden. Da dies aber nicht der Regelfall sein wird, messe ich das auch nicht ^^ Ich denke das das NIO-System das Umbenennen nicht wie ich durch Einlesen&Kopieren löst, sondern durch ändern der jeweiligen Verweise, was bedeutend schneller geht.
Bilder:
Das GUI:
entstehende Files (mit den im Bild gegebenen Einstellungen):
Anmerkung: DIe Buchstaben werden hinzugefügt, sobald die Anzahl an umzubenennenden Datein 100 überschreitet
Noch offen:
-
Da ich nicht vernünftig nachgedacht habe, blockiere ich derzeit noch den Main-Thread, was dazu führt, dass die Anwendung bei größeren Aufgaben nicht mehr reagiert, bis sie fertig ist. (lässt sich einfach durch Auslagerung in einen seperaten Thread beheben).Habe das Problem heute (05-02-2017) gelöst und den ganzen Spaß in einen eigenen Thread ausgelagert, wodurch auch endlich mal die Aktualisierung des Fortschrittsbalken funktioniert. -
Bisher kann der Nutzer noch nicht das Start-Verzeichnis für die Auswahldialoge festlegen, ich habe es ersteinmal auf den Bilder-Ordner gesetzt ^^
-
Das GUI ist bisher noch unsagbar hässlich
-
Bisher ist es noch möglich die Laufzahl abzuwählen, was per se keinen Sinn macht, da dadurch jede Datei in die gleiche umbenannte Datei geschrieben werden würde. Habe bei dem Punkt einfach nicht nachgedacht.Unfug, weiß wieder warum das möglich war: Ziel war ja auch, dass nicht nur ein neuer Filename vergeben werden konnte, sondern auch, dass der bestehende verwendet wird und einfach das Prä-/Suffix angehängt wird. -
Bisher werden bei Laufzahlwerten < 10 noch keine Nullen hinzugefügt, weshalb Windows sie trotz der Buchstaben noch nicht vernünftig ordnet
-
Derzeit ist das Programm für das was es tut auch noch unglaublich langsam, da jede Datei für das Umbenennen kopiert werden muss (was nur Sinn macht, wenn man die Dateien gleichzeitig in einen anderen Ordner verschiebt). Das Problem kann allerdings scheinbar einfach durch Einsatz des NIO von Java 8 gelöst werden, was ich bisher eher stiefmütterlich behandelt habe.Wie oben beschrieben wurde das Problem gelöst. -
Da die Dateien inzwischen verschoben werden, überlege ich, eine Funktion einzubauen um die Originalen Dateinamen wiederherzustellen (beim Kopieren blieben die Originaldatein bisher noch vorhanden). Das ließe sich über eine einfache Textdatei lösen, die man in den jeweiligen Zielordner kopiert. Ich muss mal schauen, wie ich das löse ^^
Link:
Falls angefragt wird.
Name:
Timer (kreativ, ich weiß)
Icon:
Problemstellung:
„Problem“ ist für einen simplen Timer etwas zu hoch gegriffen, hauptsächlicher Punkt, dass Programm zu schreiben, war für mich, dass ich zum Einschlafen gern noch Youtube, Netflix und Konsorten anschaue, was allerdings verhindert, dass der PC standesgemäß nach dem Energiesparplan herunterfahren kann. Außerdem neige ich dazu, aufgebrühten Tee zu vergessen, was gerade bei grünem/schwarzen Tee sehr schade ist.
Aufgabe:
Der Timer erfüllt, wie der Name suggeriert, eine Hauptaufgabe: Zeit herunterzählen ^^ Nach Ablauf der Zeit können 3 Aktionen ausgelöst werden: Abspielen eines Alarms, einschalten des Energiesparmodus oder Herunterfahren des Rechners.
Technische Details:
Ausnahmsweise gibt es hier fast nichts Interessantes zu berichten, außer vielleicht das der Code, wie erwartet, extrem klein ist. Angenehm ist auch, dass ich, anders als noch zu Swing Zeiten, bei FX8 die nützliche Timeline nutzen konnte, was das Programm dann nochmal ein Stück einfacher gemacht hat (damit muss man keine Threads aufmachen; ist zwar eigentlich für Animationen gedacht, aber man kann es auch anderweitig verwenden )
Bilder:
Das GUI:
Noch offen:
Eigentlich gar nichts, bin mit dem Programm rundum zufrieden.
Link:
QBW Timer
Name:
Password Generator (ich weiß, genauso kreativ wie „Timer“)
Icon:
Problemstellung:
Die simple aber dennoch nervige Problemstellung hinter diesem Programm war schlicht und ergreifend, dass ich viel zu faul war, mir für jede Website, bei der ich einen Account erstellen wollte, ein sicheres Passwort auszudenken. Ihr kennt das sicherlich: Da will man sich nur mal für ein simples, dummes F2P Spiel anmelden und soll sich plötzlich ein 30 stelliges Passwort mit Groß- und Kleinbuchstaben, Zahlen, Zeichen, Goldstaub und ein Hauch Magie ausdenken, nur damit man endlich mal anfangen kann.
Aufgabe:
Der Passwort Generator generiert (wie der Name schon sagt) Passwörter. Diese können verschieden modifiziert werden: So ist das Einstellen einer Länge zwischen 8 und 35 Zeichen möglich. Desweiteren kann entschieden werden, welche Arten von Zeichen im Passwort enthalten sein sollen (entnehmbar an den Checkboxen ^^). Mehr oder minder bisher alles, was das kleine Programm kann
Technische Details:
Die eigentliche Funktionalität des Programmes besteht aus 4 Code-Zeilen (wenn man die Definition der String-Konstanten weglässt).
Bilder:
Das GUI:
Noch offen:
Verschlüsselte Speicherung der Passwörter als Schlüssel/Wert-Paar (damit man quasi nur noch ein Master-Passwort braucht, um da ranzukommen). Bisher muss man sich die Passwörter nämlich noch merken ^^
Link:
Falls angefragt wird.
Name:
Random Number Generator
Icon:
Problemstellung:
Da ich nicht immer Würfel in allen Formen und Variationen zur Verfügung habe, dachte ich mir, ein kleines Programm dafür wäre ganz nützlich ^^
Aufgabe:
Wie der Name sagt werden schlicht Zufallszahlen in den angegebenen Grenzen generiert. Diese werden sowohl der „History“ Liste als auch dem Clipboard hinzugefügt, weshalb man sie theoretisch auch direkt per STRG+V einfügen kann. Desweiteren ist es möglich, die Nummer an Zahlen zu erhöhen, die pro Click auf den „Generate“ Button erzeugt werden. In diesem Fall wird nur die letzte Nummer dem Clipboard hinzugefügt.
Technische Details:
-//-
Bilder:
Das GUI:
Noch offen:
Mir würde nichts einfallen ^^
Link:
Falls angefragt wird.