Habe heute wieder ein wenig an meiner Toolbox gearbeitet, habe den Start der einzelnen Tasks jetzt in eine separate Methode geschoben (damit run() frei ist). So kann ich bei einem Druck auf einen der Toggle-Buttons den jeweiligen Task beenden oder neu starten. Ausserdem kann ich den Task so auch beim Start der Toolbox mit starten (lief vorher über den Aufruf des Tasks).
Programmierung
Java: Probleme mit dem FTP
Guten Morgen meine Freunde der Nacht,
ich arbeite ja bekanntlich noch an meiner kleinen Toolbox. Heute bin ich auf ein weiteres Problem gestoßen auf das ich erst einmal testen darf: Manche Dateien werden per storeFile() verschoben, manche nicht. Hat möglicherweise mit der Aneinander-Reihung von Daten zu tun, aber das ist bis jetzt lediglich eine Vermutung. Ich lasse jetzt mal den Reply vom FTP-Server ausgeben und schaue mal, was hier falsch laufen könnte.
Außerdem habe ich einen (kleinen, aber miesen) Fehler behoben; wenn ich nach dem Upload die Daten lösche, sollte ich eventuell auch darauf prüfen, ob der Upload funktioniert hat, ansonsten werden die Daten einfach gelöscht und niemand hat sie mehr 😀
Update 20.05: Nachdem die Server ausgefallen sind, konnte ich erst einmal nicht an der Toolbox weiterarbeiten. Das Problem mit der storeFile()-Aneinanderreihung durch die Threads hat sich „gelöst“. Beim Upload wird jeweils geprüft ob der Nutzer angemeldet ist, was auch nötig ist, wenn lange Zeit nichts hoch-geladen wurde. Wenn allerdings mehrere Threads in der Überprüfung landen und einer sich schon angemeldet hat, können es die anderen Threads nicht mehr, da nur ein Nutzer vorhanden, und landen in einem „Socket write error“; zumindest meistens.
Ich habe hier einfach den Pool auf eins gesetzt. Dann gibt es nur einen Thread der einen Stack abarbeitet. Dadurch werden alle Dateien nach einander verschoben. Eine andere Möglichkeit kenne ich nicht und werde ich wohl erst einmal nicht benötigen. Bei Verschiebungen in einem normalen Dateisystem werden keine Anmeldungen benötigt und daher kann ich dort so viele Threads aufmachen wie ich Lust habe (zumindest in der Theorie).
Mal schauen welche Probleme mich noch erwarten 😉
Java-Programmierung
Guten Morgen meine Freunde,
durch mein Studium bin ich nun in den Kontakt mit Java gekommen und es hat mich wohl infiziert. Irgendwie mag ich die Sprache. Und mit Hilfe von JetBrains IntelliJ IDEA habe ich auch Spaß am Programmieren selbst, auch wenn ich mir manchmal einen Kollegen wünschte, der sich das programmierte einmal anschauen könnte.
Momentan programmiere ich an einer Art MoveCopy / FTP – Tool herum. Dateien sollen in der Regel von A nach B kopiert werden. Als solches erst einmal kein Problem. Allerdings gibt es hierbei ein paar kleine Schwierigkeiten:
- eine while-Schleife bringt es nicht wenn dauernd Daten kopiert werden sollen
- Wie kann ich denn ohne Schleife erstellte Daten kopieren
- (Was ist mit mehreren Zielen?)
Dafür gibt es aber auch Lösungen:
Nothing should be trusted until it is tested.
– programmers logic
Der Getränkeautomat
Die lieben Leute von der ILS wollten im aktuellen Studienheft einen Getränkeautomaten von mir haben, und folgendes kam dabei raus.
Dazu folgende Erklärung:
- Eigentlich wollte ich die Übergabe mit ‚dynamischem‘ Array machen, das klappte aber aus verschiedenen Gründen nicht so ganz.
- Ich habe mich bei den Hex-Codes für die Umlaute an den ANSI-Code gehalten, den man unter anderem auch hier findet.
- Ausgabe der Preise sollte eigentlich auch 2 Nachkommastellen gerundet werden. Dies konnte nach den Unterlagen aber noch nicht bewerkstelligt werden. Deshalb erfolgt die Ausgabe eben mit normalem double-Wert (Bei mir meist 0.5 etc).
- Möglicherweise (höchstwahrscheinlich) gibt es bessere Lösungen, dies hat aber für mich funktioniert 🙂
1 2 3 4 5 6 7 8 9 10 11 |
/*Hex-Zeichentabelle für Umlaute Zeichen Hex Okt ======================== 'Ä' 8E 216 'ä' 84 204 'Ö' 99 231 'ö' 94 224 'Ü' 9A 232 'ü' 81 201 'ß' E1 341*/ |