Samstag, 30. Juli 2011

Linux Kernel 3.0 erschienen

Im laufe der letzten Wochen wurde die 2.6 Linie des Kernels in 3.0 umgetauft.
Grund dafür waren nur Probleme mit dem alten 4 stellligem Versionsnummern.
Die neue Versionierung besteht nur noch aus 3 Stellen.

Die letzte Stelle weisst zukünftig nur noch auf Sicherheitsupdate hin.
Die mittlere Stelle auf neue Versionen der aktuelle Linie.
Und die erste Stelle verweist eben auf die aktuelle Linie.

Große Neuerungen gibt es von Version 2.6.39 zu 3.0 nicht.
Trotzdem ist es nach einigen Jahren bestimmt nicht schädlich auf Version 3.0 umzustellen.

Die aktuelle Version kann wie gehabt von kernel.org geladen und kompiliert werden.
Debian Squeeze hat mit der aktuelle Version keine Probleme und läuft sehr stabil.

C# Projekt sync

Ich habe vor einigen Wochen eine kleine Anwendung in C# gebastelt.
Bei sync handelt es sich um eine Anwendung zur, nicht überrascht sein, Dateisynchronisation.

Dabei bediene ich mich dem Threadpool, damit die Verarbeitung auch schnell erledigt wird.
Dies hat sich als Vorteilhaft bei der Verarbeitung von Dateien über eine Netzwerkfreigabe erwiesen.
Da in C# die Attribute der FileInfo Objekte erst intern aktualisiert werden, wenn diese zum ersten mal aufgerufen oder die Refresh() Methode aufgerufen wird, kann dies bei einer Datei über das Netzwerk langsam sein.

Dies bremst bei jeder einzelnen Prüfung die Verarbeitung ganz schön aus.
Hier lohnt sich dann die Verarbeitung mit dem Threadpool.

Durch Parameter an die Anwendung, kann man dann auch nicht die Anzahl der Aufgaben und auch den Ablauf steuern.
Wenn man z.B. Dateien Archivieren möchte, kann man den Löschvorgang überspringen.

Ich nutze sync bereits daheim um meine Dateien auf meinem Homeserver per Samba zu speichern.
Dies funktioniert wirklich wunderbar.

Das Projekt werden ich später noch zur Verfügung stellen.

Java 7 ist fertig

Eine Nachricht die man fast schon als running gag bezeichnen könnte.
Aber nach 4 Jahren Entwicklungszeit hat Oracle es durch die Aufteilung der Planung für das JDK geschafft die Version 7 fertig zu stellen.

Insgesamt gibt es durch das Project Coin kleine Sprachänderungen.
So ist es endlich möglich String anstelle einer Verkettung von if/else if/else durch ein switch zu schicken.
Diese Funktion ist eine erhebliche Erleichterung für die Arbeit mit Strings.

Auch weitere Funktionen und Sprachänderungen kamen hinzu.
So besitzt Java 7 mit NIO 2 endliche eine Klasse mit statischen Methoden zur Verarbeitung von Dateien.
Sowas hätte ich in Java 6 bereits gebrauchen können.
Auch ist es endlich möglich, über diese neue File Klasse, mit symbolischen Links zu arbeiten.
Diese Funktion kann ich in jsync endlich gebrauchen.
Dort folgt Java dem symbolischen Link und kopiert entsprechend die Dateien in das Zielverzeichnis, was ja eigentlich nicht gewünscht ist.

Ich werden in nächster Zeit, wenn ich dazu komme, eine Java 7 Version von jsync anlegen.

Vorher wird aber noch kräftig aufgeräumt, da einiges an Altlasten endlich verschwinden muss.
Auch ein paar Optimierungen am Code dürften nicht schaden.

Montag, 4. Juli 2011

jsync optimiert

Da ich in letzter Zeit wieder etwas in jsync aufräumen wollte, habe ich in den letzten Tagen mal mit dem Haus putz angefangen.
Als erstes hab ich mal die interne Verwaltung der Pfade optimiert.

Dies hat den Speicherverbrauch zwar leicht nach oben gedrückt, hilft aber für sauberen Code als vorher.
Im Gegensatz zum alten Code wird der Speicherverbrauch aber nicht über ein gewisses Limit gepuscht.
Grund dafür ist, dass intern nur noch die Ordner gespeichert werden.
Die Verarbeitung der Dateien erfolgt dann erst wenn eine bestimmte Ordner Ebene erreicht wird.

Auch ein paar Optionen wie die SleepTime der Threads werde ich wohl rauswerfen.
Hier wird im Code eine default Zeit von 1 Millisekunde eingetragen.
Auch andere Optionen werden wohl rausfliegen um die Konfiguration wieder sinnvoll zu gestalten.