Montag, 13. Juli 2009

Mono entfernt von meinen Linuxkisten :)

Da ich mit Mono im Moment nicht viel anfangen kann und möchte, habe ich es von meinem Laptop und von meinem Desktop entfernt.

Aktuell habe ich Mono nur wegen Tomboy gehabt und auch Monodevelop gehabt aber nicht im aktiven Einsatz.
Und da ich mit Java aktuell am aktivsten bin, werde ich Mono auch nicht mehr brauchen :)
Und Tomboy wird ab Squeeze dann durch Gnote ersetzt :)

Nützliche GNU/Linux Tools(locate/find und xargs)

Ich habe immer mal wieder den Spaß, dass mir diverse Editoren temporäre Dateien erstellt.
Diese sind normalerweise immer unsichtbar und werden nur selten bemerkt und nehmen an sich nur Platz weg.
Meistens sind diese Dateien zur Datensicherung falls das Programm mal ab raucht.
Ich kann aber diese Dateien nicht gebrauchen da ich bis jetzt kein Pech gehabt hatte und mir dies passiert ist.

Diese will man nun nicht einzeln suchen sondern will diese am liebsten mir einem mal weg haben.
Dies kann man mit locate/find und einer Weiterleitung per Pipe an das Programm xargs.

Ich nutze am liebsten locate.
Hier muss man nur per sudo oder root mit updatedb die Datenbank für locate aktualisieren.
Ansonsten kann man per find direkt die Datenbank durchsuchen.

Ein einfacher Befehl um die Dateien per locate zu löschen ist folgender.

locate *~ | xargs rm

Somit wird per xargs die "Liste" der Zeilen als Argumentenliste an rm weitergereicht.
Dies sollte man aber nur mit normalen Benutzerrechten auführen, da sonst Systemdateien gelöscht werden könnten die benötigt werden.
Natürlich übernehme ich keine Haftung falls ihr es doch tut :)

Samstag, 11. Juli 2009

jsync bekommt MD5 Prüfsummen :)

Nachdem ich noch einige Schwächen in jsync beim vergleichen von Dateien gefunden habe, habe ich mich entschlossen MD5 für die Prüfsummen zu nutzen.
Somit kann sichergestellt werden, dass jede Änderung einer Datei zum überschreiben der bereits kopierten Datei führt.
Aktuell wird nur auf die Größe und dem Änderungsdatum hin verglichen.

Dies ist zwar an sich ein ausreichender Vergleich aber kann nicht immer zu 100% greifen.

Donnerstag, 9. Juli 2009

jsync aufgeräumt und erweitert.

Nachdem ich Heute mal wieder Zeit und auch Lust hatte, habe ich mal etwas jsync aufgeräumt.

Auch eine kleine Erweiterung bei der config wurde eingefügt.
Wenn nun eine komplette Sektion fehlt, dann wird die Datei neugeschrieben.
Sollten aber vereinzelte Schlüssel in den Sektionen folders und options fehlen, so werden diese im Programm auf die Standardwerte gesetzt.
Somit spart man etwas Zeit beim schreiben und auskommentierte Verbindungen, Quellen und Ziele werden dann nicht einfach durch das geschreiben gelöscht.

Dienstag, 7. Juli 2009

jsync hat nun Threads :D

Wie geplant habe ich das Ganze eben mal umgesetzt.
Ich muss nur noch den Code aufräumen, damit nur noch ein paar Aufrufe der Threads erledigt werden und kein Code doppelt gewartet werden muss.

Danach noch ein paar Änderungen bei den Ausgaben und die neue Version ist fertig und mit Threads.
Ich muss nur noch schauen, ob man die Anzahl begrenzen sollte.
Aktuell werden bei bestimmten Umständen einfach welche gestartet.
Hier wird wohl eine VM mal den Kopf hinhalten müssen.
Auch eine Tests mit Thread Kollisionen werden sicher aufschlussreich.

jsync bekommt nun Threads :)

Nachdem ich es nun lange angekündigt aber nie durchgeführt habe, habe ich eben damit angefangen eine Thread Klasse zu erstellen.
Diese habe ich mit dem Namen SyncThread im Namensraum jsync.threads verpackt.

Diese wird aber nicht nur einfach die Synchronisation übernehmen sondern auch bei eingestelltem removeOldFiles=false und syncFiles=false nur die neuen Dateien kopieren.

Ich bin deshalb auch am überlegen ob die removeOldFiles Option nicht geht und einfach nur der true/false Wert bei syncFiles ausgelesen wird.
Bei false werden dann einfach nur die Dateien kopiert.

Somit spart man sich eine Option in der config.
Ansonsten werde ich Heute am späteren Abend bestimmt schon den ersten Test starten können.
Die Nächste Version bekommt dann auch die useThreads Option damit man sich hier nicht zu Threads gezwungen sieht.
Bei älteren Rechnern würde so etwas nur zu Problemen führen deshalb auch die Option.

Samstag, 4. Juli 2009

jsync wird gesprächiger.

Nachdem mein Rechner 2 Stunden lang irgendwas kopiert hatte und ich keine Rückmeldung bekommen habe ob er fertig ist oder nicht, habe ich mich dazu entschlossen jsync etwas mehr Ausgaben zu gönnen.

Somit wird nun in der Kern Methode der FileManager Klasse eine Ausgabe gemacht bevor und nachdem eine Datei kopiert wird.
Somit weiß man welche Datei gerade kopiert wird und danach ob alles geklappt hat oder nicht.

Die Ausgaben werde ich aber so knapp wie möglich halten, da Logfiles im MB Bereich durch größere Datenmengen schnell entstehen.

Das Ganze wird auch zusätzlich noch als Info Eintrag geloggt, damit man später verfolgen kann wie lange eine Aktion gedauert hat.

Nützliche GNU/Linux Tools(dd)

Ich habe per Zufall im Debian Forum einen Thread zum Thema virtuelle Festplatten erstellen und mounten gefunden.
Dabei war die Lösung eine gesamte Festplatte per dd in eine .img Datei zu schreiben.

Per Parameter kann man sowohl die Blockgröße als die Gesamtgröße der fertigen Datei angeben.
Die .img Datei kann man dann einfach per mount ins Dateisystem hängen und hat somit eine "virtuelle" Festplatte.
Das Ganze finde ich schon sehr genial.
Man kann damit wirklich die gesamte Platte sichern.

Es sei hier erwähnt, dass dd nicht nur auf GNU/Linux begrenzt ist.
Tatsächlich kommt dieses Tool sogar direkt aus dem Unix Lager, weshalb man dieses nicht unterschätzen sollte :)

Heiße Woche und Wochenende

Nachdem meine Arbeitskollegen und ich nun eine Woche lang in heißen Büroräumen unsere Köpfe für die Softwareentwicklung haben glühen lassen, kann man sich endlich auf das Wochenende freuen.

Heute muss mal wieder das Haus durch gesaugt und das Zimmer aufgeräumt werden.
Die Aktion wird wahrscheinlich mal wieder einige Stunden fressen.
Danach noch etwas ausruhen, also Java Programmieren, und dann geht es am Abend zur Hochzeit eines Freundes.

Insgesamt war die Woche wegen dem Wetter sehr unerträglich.
Ich denke mal die kommenden Wochen werden nicht wirklich besser.
In unserem Büro hat nicht mal eine Kombination aus Ventilator und Klimaanlage, die am Ende sogar mehr Wärme erzeugt hatte, was gebracht.

Mal schauen ob wir nicht mal wieder Eis bestellen können :)
Bei 30° im Zimmer ist das eine gute Abkühlung.

Mittwoch, 1. Juli 2009

jsync und die Logleichen ^^

Ich habe in der letzten Zeit mit dem Aufräumen der alten Logs manchmal länger gebraucht als mit dem konfigurieren für das kopieren der Dateien.

Deshalb habe ich eine neue Option eingeführt.
Die Option logSaveDays schmeißt Anhand der Dateinamen ältere Dateien raus.
Alle anderen Dateien werden dabei nicht berücksichtigt.
Sollte jemand eigene Dateien in seinen Log Ordner packen, dann werden diese auch nicht verändert.

Leider wurde mir wieder einmal bewusst wie schlecht das Thema Java und Date/Time zusammen leben.
Während Microsoft bei .Net mit den Klassen DateTime und TimeSpan mal wieder vorbildlich zeigt wie eine gute API aussehen kann, muss Java leider wieder einen Minuspunkt kassieren.
Vielleicht bessert sich das eines Tages.