Dienstag, 7. Dezember 2010

jsync Überarbeitung

Nachdem ich mit den letzten Optimierungen noch nicht ganz zu frieden bin, werde ich noch ein paar Tests und Anpassungen machen.
Aktuell verbrennt immer noch zu viel Speicher bei der Auflistung der Dateinamen.
Bei einer Synchronisation von mehren Dateien kann dies schnell zu Speicherfressern werden.

Deshalb werde ich in den nächsten Tagen mal wieder ein paar Kernprobleme angehen.
Anbei werde ich auch die Verarbeitung der Konfigurationsdateien noch überarbeiten.
Aktuell ist dies nur Case Sensitive was bei einem Tippfehler zu Defaultwerten führt.
Dies werde ich in der nächsten Version anpassen.

Dienstag, 30. November 2010

Erste Gehversuche mit PostgreSQL

Ich habe mir vor ein paar Tagen mal PostgreSQL in der Version 8.4 unter Debian eingerichtet.
Grund dafür war, dass ich für die Arbeit einen kleinen versuch mit .Net machen wollte.
Leider reichte eine Express Version vom Microsoft SQL Server wegen der 4 GB Limitierung pro Datenbank nicht aus.
Deshalb habe ich unter PostgreSQL einen Benutzer, eine Datenbank und entsprechende Tabellen angelegt.

Insgesamt konnte ich auch endlich mal live erleben um welchen Faktor man einige Select Abfragen mit einem guten Index beschleunigen kann.
Leider war hier der Knackpunkt.

Unsere Datenbank für ein Projekt benötigte zwar einen einfachen Index auf zwei Spalten, dieser konnte aber wegen einer hohen Verfügbarkeit nicht erstellt werden.

Nun planen wir aber diese Daten auszulesen um diese im Dateisystem abzubilden.
Dafür habe ich auch die Datenbank verwenden können um somit ein gutes Programm mit Mono, und somit auch in .Net, implementieren zu können.

Insgesamt habe ich aus dem ehemaligen Speicherfresser ein kleines Programm mit ThreadPool für Parallele Anfragen gebastelt.
Dies belastet zwar die Datenbank bewirkt aber keine totale Blockierung wie zuvor.

Erste Gehversuche mit Mono

Ich mache gerade einige Gehversuche mit Mono.
Insgesamt ist der Umstieg von Microsofts .Net Framework zu Mono keine große Hürde.
Mono enthält alle wichtigen Basisklassen des .Net Frameworks.

Mit Monodevelop kann man auch sehr gut Software entwickeln.
Ein Intellisense wie bei Visual Studio gibt es ebenfalls.
Eine Verbindung mit allen gängigen Datenbanken, auch zu Microsoft's SQL Server, ist möglich.

Macht eine Menge Spaß unter Linux auch .Net Entwickeln zu können.
Im Gegensatz zu Java habe ich als Entwickler auch eine Klasse GC mit der man den Garbage Collector etwas steuern kann, wenn man es den muss.

Der Speicherverbrauch ist nur ein Bruchteil von Java was auch nochmal ein großer Pluspunkt ist.
Auch lange Optimierungsoptionen an den Befehl "mono", Gegenstück zu "java", kann man sich auch sparen da dort alles rund läuft.
Somit entfallen lange Optimierungen über die VM Parameter.

Insgesamt ist mono für mich das bessere Java.

jsync wird schneller

Nachdem ich mit dem Speicherverbrauch und der Geschwindigkeit von jsync nicht sehr zufrieden bin, bastle ich in letzter Zeit mal wieder am Fundament.
Akutell habe ich durch eine Umstellung der Verarbeitung von String auf StringBuilder schon den Speicherverbrauch und die Geschwindigkeit verbessert.

Aktuell ist aber noch ein Manko beim Thema Threadsicherheit.
Dort werden ich auch noch basteln damit es zu keinen Kollisionen kommt.

Donnerstag, 18. November 2010

jsync beherrscht nun Excludes

Nachdem es seit einigen Wochen eine Sicherung mit jsync mache habe ich immer wieder folgende Situation.
Ich sichere mein Benutzerverzeichnis mit allen Dateien und Ordnern.

Dabei werden aber immer große Ordner für Musik, Videos und Downloads gesichert.
Diese habe ich sonst per Skript nach der Sicherung löschen lassen.
Da dies aber immer wieder zu langen Wartezeiten führte, habe ich mich entschlossen Excludes einzubauen.
Diese können in den jeweiligen Verbindungsdatei unter der Sektion excludes eingefügt werden.
Die Ordner oder Dateien werden dann beim synchronisieren ausgelassen.

Dienstag, 9. November 2010

Lebenszeichen

Seit längerem ist es etwas still um mich, den Blog und jsync geworden.
Dies liegt daran, dass ich aktuell eher wenig Zeit für Java und co. verwende.
Aktuell nutze ich mal die Zeit um nach der Arbeit etwas zu entspannen, Musik hören, Filme schauen und mal etwas von allem abzuschalten.

Ich werde die Zeit auch mal wieder nutzen um Abends wieder etwas unterwegs zu sein.
Die nächsten Tage wird dann auch mal wieder eine Runde um den Block gedreht.

Samstag, 23. Oktober 2010

Neue Ideen für jsync gesucht

Seit einigen Wochen geht es bei jsync nicht mehr wirklich weiter.
Grund dafür ist einfach, dass ich nicht weiß wie man jsync noch erweitern könnte damit der Nutzen für den Anwender verbessert werden kann.
Ein paar Sachen wären natürlich schon möglich aber nicht umbedingt nützlich.

So könnte ich jsync um eine Optimierung der maximalen Threads erweitern.
Pro CPU Kern würde dann ein Thread arbeiten, was optimal für eine schnelle Ausführung wäre.
Auch eine automatische Buffer Vorgabe wäre bestimmt anhand des vorhandenen Speichers erstellbar.

Trotzdem wären dies eher kleine Erweiterungen die nicht umbedigt von großem Nutzen wären.
Ansonsten bin ich für Ideen offen.

Donnerstag, 26. August 2010

Neue C# Bücher

In den letzten Wochen lese ich meine neuen C# Bücher.
Einmal C# 2008 - Profihandbuch und Referenz von Terry Nash aus der Franzis Professional Series und Mono - .NET goes Linux von Kaan Candar ebenfalls von Franzis Professional Series.

Das erste Buch basiert mehr auf dem Microsoft .NET Framework und geht etwas sehr auf das Laufzeitverhalten sowie die CLR ein.
Dabei kann man viel über das Verhalten von .NET Programmen erfahren.

Das zweite Buch basiert natürlich auf Mono und geht teilweise auch auf das .NET Framework ein.
Dort geht es mehr um die Mono Version von C# und den dazugehörigen Entwicklungsumgebungen.

Beide Bücher ergänzen sich sehr gut, wenn man auf beiden Plattformen arbeitet.

Sie sind auch sehr gut geschrieben und sind deshalb auch sehr gut zu lesen.
An Know-How und Fachwissen mangelt es definitv nicht.

C# 2008 ist zwar schon, wie der Titel sagt, ein Buch bis .NET 3.0 dies macht dankt der Architektur von .NET keine großen Probleme.

Insgesamt lese ich C# 2008 gerade intensiv um finde es als gutes Handbuch sehr nützlich.

Zusätzlich dazu kommt nächste Woche nach das Visual C# 2010 Buch von Galileo Computing als Gesamtpaket.
Mal schauen ob es genauso gut wie "Java ist auch eine Insel" ist.
Wenn ja habe ich eine neue C# Bibel :)

Mittwoch, 7. Juli 2010

jsync reift wieder

Nachdem ich in letzter Zeit durch den Abschluss meiner Ausbildung wenig Zeit für jsync hatte, habe ich in den letzten Tagen mehr Zeit in das Projekt gesteckt.
Dabei habe ich mir einige Gedanken zum Speicherverbrauch gemacht und wie ich diesen etwas optimieren kann.

Durch einen Thread in einem Forum, in dem ich das Problem angesprochen hatte, bekam ich auch einen interessanten Anfangspunkt.

So wäre eine Möglichkeit statt rekursiv durch alle Verzeichnisse zu gehen einfach alle Pfade von Ordner rekursiv einzuladen um diese dann iterativ durchzulaufen.
Dies klingt im ersten Augenblick nach einer guten Lösung hat aber auch einen Speichernachteil.
Bei vielen Ordnern und Unterordnern kann dies viel mehr Speicher kosten als die rekursive Methode.

Da dies aber eine Lösung sein kann um den Speicherverbrauch unter bestimmten Umständen zu verringern, werde ich dafür eine Option in jsync einbauen.
Ansonsten muss ich noch schauen ob es eine Möglichkeit gibt einige Methoden zu optimieren um den Garbage Collector dazu zu bewegen nicht benötigte Objekte zu löschen.
Leider gibt es nicht viele Möglichkeiten den GC per Programmierung zu optimieren.

Hier muss das Programm java mit entsprechenden Parametern aufgerufen werden.
Ich werde am Wochenende mal ein paar Durchläufe an einigen Testdaten machen umd einen möglichst optimalen Aufruf zu finden.

Sobald ich was passendes habe werde ich die Dokumentation von jsync um einen Eintrag erweitern.

Ausbildung beendet

Nach 2 Jahren habe ich nun erfolgreich meine Ausbildung am 16.06 mit meiner Präsentation und dem Fachgespräch bestanden.
Mit 75% und somit einer 3 habe ich erfolgreich den Abschluss geschafft.

Anbei habe ich mal das Design des Blogs etwas angepasst, was man wohl seit geraumer Zeit machen kann.
Ich hoffe das neue Design gefällt.