Dienstag, 30. Juni 2009

Nützliche GNU/Linux Tools(Emacs vs. GEdit)

Ich habe in der letzten Zeit mit einigen guten Tools während der Entwicklung von jsync gearbeitet.
So habe ich auch mal einen Vergleich von 2 Editoren gemacht.
Einmal der Editor GEdit aus dem GNOME Projekt und den alten GNU Emacs mit X11 Oberfläche.
Dabei merkte ich, dass Emacs seinem Status gerecht wird.
So sollten beide Editoren eine 15 MB Datei öffnen.
Dabei handelte es sich um eine erweiterte Logdatei von jsync die bei einem einfachen Suchlauf alle Dateien aufgelistet hatte.

Das Ergebnis war, dass GEdit einige Zeit gebraucht hatte, bis man an das Ende der Datei scrollen konnte.
Emacs hingegen hat die Datei geöffnet und man konnte sofort an das Ende der Datei.
Wer also mit großen Dateien arbeiten muss, dem sei emacs empfohlen.
Ansonsten kann man auch mit GEdit arbeiten aber dann sollte man nur einige kleine Dateien wie Quelltexte oder Notizen damit bearbeiten.

Sonntag, 28. Juni 2009

jsync bekommt neue Option bufferSize

Ich habe Gestern bei einem größeren Test gemerkt wie ineffizient, dass kopieren von einer größeren Datei ist wenn man diese Byte für Byte liest und dann schreibt.

Nachdem ich mich aber auch nicht direkt auf eine Größe festlegen konnte, habe ich die neue Option bufferSize eingefügt.
Diese legt fest wie viele Bytes pro Lese-/Schreibaktion im RAM belegt werden sollen.

Somit kann man die Lese-/Schreibgeschwindigkeit und den Arbeitsspeicher Verbrauch gut regulieren.
Dies bietet sowohl älteren als auch neueren Rechner ihr Vorteile.
So kann ich auf einem älteren System mit wenig RAM den Arbeitsspeicher runter drehen.
Dies heißt zwar längeres Warten aber selbst bei 1 MB RAM für die Lese-/Schreiboperation geht es recht flink.

Bei mehr RAM kann man es auch entsprechend höher stellen was die Geschwindigkeit auch in die Höhe treibt.

Die Nachteile sind leider noch, dass noch keine Exception gefangen wird, falls mal der RAM ausgehen sollte.
Hier werde ich noch einige Tests und Verbesserungen machen müssen.

Java und Strings vergleichen :/

Ich hatte Gestern den Spaß bei einem einfachen String Vergleich als Ergebnis immer ein false bekommen.
Leider ist mir das Problem erst durch googlen bekannt geworden.
Anders als in .Net wird in Java mit dem == Operator nicht der Wert des Strings sondern die Referenz verglichen.
Das bedeutet, dass er prüft ob die Adresse im RAM bei beiden Strings gleich ist.
Dies ist natürlich in Java sehr ungeschickt gelöst worden.
Für einen richtigen Vergleich muss man in Java immer die Methode equals des Objekts aufrufen.

Dies ist natürlich sehr lästig, da ein einfacher Vergleich mit dem == Operator doch eleganter gelöst wäre.
Mal schauen ob man das Problem beheben wird oder man sich mit equals bis zum jüngsten Tag arbeiten muss.

Mittwoch, 24. Juni 2009

jsync und die Java Falle :/

Ich hatte Heute mal wieder einige Tests mir jsync angestellt.
Leider musste ich dabei feststellen, dass die überarbeitete Version des eigentlichen Kopiercodes noch nicht funktioniert.
Zwar wurden dabei die Dateien an sich kopiert aber leider nicht korrekt.

So konnten einfache Dateien unter 1.024 Byte nicht korrekt angezeigt/verarbeitet werden.
Das Problem war, dass ich anstelle der write(buffer, index, length) Methode nur die write(buffer) Methode verwendet habe.
Bei ersterer Methode wird die Datei korrekt Kopiert.
Auch nutze ich zwar BufferedInput/Output Streams doch die eigentliche Verwaltung des Buffers übernehme immer noch ich.
Und dies ist ziemlich unklug da eigentlich die Klassen dies amchen können.
Ich werde mal schauen wie ich das am besten hinbiegen kann.

Ansonsten klappt bei jsync im aktuellem Stadium schon fast alles perfekt.
Ein paar Zeilen Code in der Main Klasse muss ich noch anpassen, damit auch alles logisch und korrekt abläuft :)

Urlaub mit viel Humor :)

Da meine Wenigkeit mal wieder Urlaub genommen hat und diesen auch seit knapp 3 Tagen genießt hab ich mal wieder einiges geplant.
Heute werde ich mal nach Göttingen fahren und mal schauen was es so alles im Saturn zum abstauben gibt :)

In den letzten 2 Tagen habe ich die Spielreihe Overlord gezockt und auch für mich entdeckt.
Dort schlüpft man mal wieder in die Rolle eines Bösewicht der mit seinen kleinen Schergen seinen alten Turm aufbauen und die Menschheit versklaven muss.
Die Schergen bringen dabei sehr viel Humor mit und mache das Spiel teils auch zu einem sehr lustigen Ablauf.
Auch wenn ich selten solche Games zocke so muss ich doch sagen, dass es mit mir um Overlord geschehen ist.
Für gerade mal 19,99€ kann man das Spiel via Steam bestellen und anspielen.
Der zweite Teil wird übrigens Morgen erst erscheinen aber dann auch bei Steam kaufbar sein.

Wer mal wieder etwas Humor braucht dem ist mit Overlord gedient.

Sonntag, 21. Juni 2009

jsync Libs überarbeitet :)

Wie geplant habe ich eben jINI und jLog überarbeitet und auch gleich die neuen Versionen eingespielt.
Ich werde Heute erst einmal die Helper Klassen überarbeiten und auch diverse Kopierprobleme anpassen.
So wird bei einer Zuweisung zu einem nicht vorhandenen Ziel einfach geschrieben, dass keine Synchronisation stattgefunden hat und die Daten auch nicht kopiert werden konnten.
Dies werde ich noch anpassen.

Ich habe Gestern auch bereits mit dem Übersetzungen angefangen.
Dank Java und meiner jConfigLib ist es recht simpel einfache Übersetzungsdateien anzulegen und auszulesen.

Dank Java und der Klasse Locale kann ich mir die aktuelle Sprache der JVM auslesen lassen und dann die Sprachdateien auslesen lassen.
Dies läuft im Moment aber noch ohne Fehlerrückmeldung was ich noch anpassen werde.
Den eine fehlende Übersetzungsdatei kann schon schweren Ärger machen.

Samstag, 20. Juni 2009

jsync und wie man stunden lang Spaß hat :)

Ich habe mal wieder eine sinnvolle Änderung an jsync vorgenommen.
Bisher wurden immer alle Daten bei der Option sync = true nur geprüft ob diese Synchron waren.
Selbst wenn dies zu traf wurde immer die copy Methode aufgerufen die dann nochmals alle Dateien abgleicht.
Dies ist natürlich sehr ineffizient, da diese ja bereits überprüft wurden und nicht im Quellordner vorhandene Daten gelöscht wurden.

Nach kurzem überlegen habe ich dann dies angepasst und man merkt dann sofort, dass alles bestens läuft.
Leider hat dies nach einer 2 Stunden Suchaktion dann einen erheblichen Fehler zu Tage gebracht.
So wurden die Daten nicht korrekt abgeglichen.
Es wurde nicht korrekt überprüft ob die Daten im Zielordner auch vollständig sind.
Nachdem ich den Fehler gefunden hatte, habe ich diesen nun mit einem einfachen Kniff behoben und nun werden auch immer alle Daten synchron gehalten.

Da leider einige unsichtbare Dateien sich permanent ändern, werde ich die neue Option copyHiddenFiles noch einführen, damit diese bei false ignoriert werden.

Freitag, 19. Juni 2009

jINI und jLog werden umbenannt.

Ich habe mir Heute mal Gedanken um jINI und jLog gemacht.
Da es sich nicht um Programme sondern um Librarys handelt, werde ich diesen neue Namen geben.
So verliert jINI nun sein INI und wird zu jConfigLib und jLog wird einfach zu jLogLib.

Somit ist schon ersichtlicher was diese beiden eigentlich sind und bieten.

Mittwoch, 17. Juni 2009

jFileLib, jINI und jLog aufgeräumt

Ich habe Heute mal die Klassen für die 3 Librarys etwas umgestellt im Namespace und auch gleich überflüssiges entfernt.

Die Klasse File wird sich noch nicht verabschieden, da ich diese als Container für einen Reader/Writer für spätere Zwecke noch aufheben möchte.

Bei jFileLib habe ich das Paket um den Zusatz PlainText erweitert, da aktuell nur reine Textdateien damit verarbeitet werden.
Ich werde in der nächsten Zeit mal einige wichtige Teile der Java XML API zusammenfassen und dann das Paket Xml dazu schnüren.

Somit will ich auch einen einfachen Weg zum lesen/schreiben von Xml Dateien vorbauen für spätere Tools :)

Dienstag, 16. Juni 2009

jsync wird verbessert

Ich habe mich mal dran gemacht und jsync etwas verbessert.
Die Option clean heißt jetzt fachgerecht sync.
Auch eine neue Idee wird in jsync mit einfließen.

So ist es ziemlich nervig wenn man für mehrere Datensicherungen die config x mal umändern muss um alles so zu sichern wie es benötigt wird.
Hier will ich einen besseren Weg gehen.
Und zwar plane ich eine einfach Datei in der man die Pfade zu allen lokalen Config Dateien eintragen kann.

Diese muss man nur in eine Reihe schreiben und diese werden dann ausgelesen, validiert und bei Korrektheit abgearbeitet.
Somit ist jsync etwas flexibler als andere Tools :)

Sonntag, 14. Juni 2009

jsync ist nun auch synchron

Ich habe Heutemorgen, trotz des Lärms den die Feuerwehr mit ihrer Festlichkeit vor unserer Tür macht, etwas Ruhe und Zeit gehabt um die clean Option auszubauen.
Diese soll diese eigentliche Synchronisation übernehmen.
Nach einiges Fehlschlägen und seltsamen Fehlern habe ich es nun alles ausgebessert und nun kann jsync endliche seine Synchronisation ausspielen.
Das ganze läuft im Moment recht gut.

Leider fehlt es noch an einigen Punkten an Geschwindigkeit.
Hier muss ich mal schauen ob ich das Thema Threads sowie Multicore Unterstützung einbringen kann.

Dies würde auf vielen Rechnern einen erheblichen Anstieg der Verarbeitung bringen.
Ansonsten steht die aktuelle jsync Version auf meinem FTP bereit :)
Den Download findet man hier.

Freitag, 12. Juni 2009

Microsoft, der IE und ODF :)

Es ist mal wieder ein heißer Kampf im Gange der Microsoft mal wieder von allen Seiten zu setzt.
Ich habe Heute auf heise und anderen Seiten lesen dürfen, dass Microsoft im aktuellen EU Kartellverfahren nun einlenkt und Windows 7 hier ohne Internet Explorer anbieten wird.
Nun werden sich einige Fragen wie man nun surfen soll.
Die Lösung von Seitens Microsoft ist es hier, dass man den Computer Herstellern überlässt welchen Browser man installiert.
Dies missfällt natürlich nicht nur mir sondern auch der EU, der man nun mal nichts gerecht machen kann :)

Es ist schon doof, den so muss man sich wiederum den Browser aufdrängen lassen, den der Hersteller installieren will.
Dies stört dann wieder die Opera, IE und Firefox Leute.
Ich möchte als Firefox Fan auch keinen Opera installiert haben.

Hier möchte die EU wieder eine bessere Lösung, die aber genauso wenig sinnvoll ist.
Hier soll Microsoft schon möglichst viele Browser anbieten.
Dies wird aber spätestens nach dem Kauf eine Menge Nutzer stören.
Ich möchte auf einem neuen Rechner nichts anderes als einen Browser und keine Kollektion mit allen noch so unbedeutenden Browsern.

Insgesamt betrachtet ist dieses Vorgehen genauso sinnlos.
Über die aktuelle Situation mit einem vorinstallierten IE haben sich nur Firmen am meisten beschwert.
Ich persönlich kann mit dem IE gut leben.
Ich nutze diesen zwar auch nur zum downloaden von Firefox aber sonst stört er mich als Anwender nicht.
Aber leider ist das Geschrei von Firmen wichtiger als die Kundenwünsche.

Aber nicht nur dies dürfte Microsoft mal wieder ein ein unpassendes Licht rücken.
Laut eines Blog Eintrags des IBM Mitarbeiters Rob Weir sollen angeblich Microsoft Mitarbeiter mal wieder das ODF Format mit FUD Kampagnen angreifen.
Dabei sollen auch angeblich bei Wikipedia extra Einträge über ODF von Microsoft Mitarbeitern editiert worden sein um diese als Fakten zu verkaufen.
Dabei will Microsoft nur sein eigenen Format, Office Open XML(OOXML) besser verkaufen.
Der Nachteil von OOXML ist der komplexe Umfang der Spezifikation von über 6.000 und mehr.
Dies kann kein natürlich mittleres Unternehmen ohne die Abhängigkeit von Microsoft umsetzen.

Hier muss ich mich leider etwas zurückhalten.
Ich bin zwar selbst Freund von freier Software und offenen Standards aber ich hege große Zweifel, dass ein Konzern wie Microsoft wegen ODF FUD Kampagnen betreibt.
Es muss zwar erwähnt werden, dass laut Rob Weir's der Grund für diese Aktion auch eine Ablenkung von der schlechten Implementierung von Microsoft Office 2007 SP 2 ODF sei.
Ich habe zwar auf meinen Vistarechner eine Home and Student Office Version, kann diese aber aufgrund eines fehlenden Keys nicht testen.
Ich persönlich muss auch sagen, dass ich für Arbeiten mit ODF Dateien kein Microsoft Office nehmen würde.
Ich würde auch ungern für das .doc Format und andere Microsoft Formate OpenOffice einsetzen.

An dieser Stelle ist einfach folgendes Problem.
Auf der einen Seite muss Microsoft ODF unterstützen.
Dies sollte aber kein großes Problem sein, dass es sich dabei um einen offenen Standard handelt und die Spezifikation auch von kleineren Unternehmen umgesetzt werden kann.
Desweiteren müsste Microsoft auch diverse Spezifikationen freigeben, damit man das Microsoft Office Format umsetzen kann.

Somit könnte man einen guten Kompromiss zwischen diesem Problem finden.
Leider muss hier Microsoft einlenken und daran scheint es wohl zu happern.
Ich würde eine bessere Unterstützung beider Formate auf den unterschiedlichsten Office Produkten nur begrüßen.

Ich hoffe, dass es Microsoft doch schaffen wird hier für alle eine Lösung zu finden.
Es wäre sehr Schade wenn solch ein riesen Konzern aus welchen Gründen sich gegen solche Maßnahmen streuben würde.

Donnerstag, 11. Juni 2009

jsync mal aufgeräumter

Ich habe mich gerade mal hingesetzt und die FileHelper Klasse aufgeräumt.
Diese soll eher für allgemeine Dateibearbeitungen sein.
Der größte Teil dieser Klasse hat sich bis jetzt eher um Dinge wie die Config Validierung und das einlesen sowie cachen der selbigen gekümmert.
Damit dies aber wieder alles logisch korrekt aufgebaut ist habe ich den ConfigHelper eingeführt.

Dieser kümmert sich nun um alle Probleme rund um die config Datei von jsync.
Auch das logging wird noch ausgearbeitet, da es im Moment keine komplette Auflistung der kopierten Dateien gibt.
Dies ist aber ein Problem, da man so keine direkte Rückmeldung bekommt welche Dateien beim kopieren Probleme gemacht hat.

Auch der Projektordner brauch eine Überarbeitung.
Ein Kollege aus dem Debian Forum hat sich jsync mal angeschaut, da er wohl auch eine Java Narr ist.
Dabei hatte er aber einige Probleme mit jsync.
Leider habe ich den Aufbau nicht so wie er letztendlich auch als .jar Datei vorhanden sein muss.
Dies macht sich natürlich bei anderen Entwicklern bemerkbar.

Deshalb heißt es auch dort aufräumen.

Mittwoch, 10. Juni 2009

Neuer Linux Kernel ist da :)

Heute gibt es den aktuellen Kernel 2.6.30.
Diese Version ist mehr in Richtung Dateisysteme und Datenspeicherung geplant wurden.
So gibt einige Anpassung am neuen Dateisystem Ext4 und auch an dem stabilen und altbewährten Ext3.
Diese Anpassungen sollen der Geschwindigkeit von Ext4 helfen können sich aber bei falscher Konfiguration negativ auf das Dateisystem auswirken.
Vor einigen Tagen wurde auch die USB 3.0 Unterstützung offiziell freigegeben.
Somit ist Linux das erste Betriebssystem was bereits USB 3.0 unterstützt.
Leider ist dies nur ein kleiner Sieg da es noch an der Hardware dafür mangelt.
Ohne USB 3.0 Hardware bringt dieser Support im ersten Moment nur wenig.
Es ist aber nur eine Frage der Zeit bis USB 3.0 verbreiteter sein wird.

Ansonsten gibt es auch in anderen Bereichen des Kernels gute Neuigkeiten.
So sind die Kernel Mode Settings sowie die Einbindung der Grafiktreiber et cetera voran geschritten.

In Zukunft soll der gesamte Part der Grafikkarte nicht mehr vom X Server sondern direkt vom Kernel verwaltet werden.
Somit kommen einige Verbesserungen im Grafikbereich in Linux auf dem Desktop.
Leider ist bis jetzt nur Intel mit einigen Grafikchips in dieser Kategorie zu finden.
Wann man mit den ersten angepassten Open Source Treibern oder den proprietären Treibern mit diesen Features nutzen kann, ist noch unklar.

Es heißt hier also warten.
Jeder der aktuellere Hardware nutzt, sollte wegen den aktuelleren Treibern den neuen Kernel mal ausprobieren.
Diverse Anleitungen zum selber backen gibt es dafür im Web mehr als genug.

Ansonsten viel Spaß mit dem neuen Kernel :)

jsync mit Shell Skript :)

Ich habe mal ein kleines Shellskript geschrieben was jsync aufruft.
Damit muss man nicht immer den langen weg über den Befehl java gehen sondern kann locker mit einem einfachen jsync seinen Homeordner oder alles anderen Synchronisieren.

Dies ist auf Dauer eine erhebliche Erleichterung.
Mein größtes Ziel bei jsync wird noch sein, mit Multicore Unterstützung beim Kopieren auf zuwarten.
Mein Plan wäre es hier, dass sich ein Kern dann jeweils um ein Ziel kümmern kann.
Hier muss ich zu geben, dass es mir dabei leider an den Kenntnissen Mangelt weshalb ich leider die Umsetzung für ein solches Ziel nicht kenne.
Ob dies überhaupt so möglich ist, ist auch fraglich.
Vielleicht kann ich mein Buch "Java ist auch eine Insel" mal durchwühlen um das Problem zu lösen.

Dienstag, 9. Juni 2009

jsync und bin :)

Wer sich etwas mit dem netten Betriebssystem auf Unix-/Linux Basis beschäftigt kennt bestimmt den kniff, dass ein bin Ordner im persönlichen Ordner wie eine Sammelkiste für eigene Programme und Skripts genutzt wird.
Ich habe schon überlegt ob ich bei meinem Home Ordner nicht mal jsync reinwerfe.
An sich ist es eine tolle Idee, da ich sonst immer extra in das Verzeichnis devel/java wechseln müsste.
Doch das kleine Problem daran wäre dann wohl, dass ich hier nach einiger Zeit dann bei mehren solcher jTools dann einen überfüllten Ordner habe.
Ich werde es aber so lösen, dass ich mal einige Unterordner für die Tools anlege und mit einem Shellskript dann das jeweilige Programm ausführen lasse.

Somit kann man seinen bin Ordner etwas sauber halten und auch etwas Übersicht wahren.

Mono und Fedora

Ich habe vor einigen Tagen eine interessante Nachricht auf heise.de lesen können.
Scheinbar geht das lizenzrechtliche Denken bei Fedora noch einen entscheidene Schritt weiter als bei Debian.
Fedora hat sich dazu entschlossen Mono aus seinem Repository zu entfernen.
Grund dafür ist wohl immer noch das Problem, dass Microsoft später aufgrund der geschützten Technologie von .Net, die bei Mono versucht wird nach zu bauen, Lizenzgebühren einzutreiben.
Ob dies jemals geschehen wird ist fraglich aber die Möglichkeit besteht noch.
Auch einige Novell Mitarbeiter halten deshalb zu Mono Abstand.
Und dabei ist Novell selbst der Wind in den Segeln von Mono.

Ich persönlich finde diese Entscheidung auf der einen Seite gut, da somit kein größerer Konzern dann auf diverse Linux Distributionen als Geldquelle zurückgreifen kann aber andererseits ist die Idee hinter Mono auch keine Schlechte.
Aber insgesamt betrachtet ist dieser Schritt seitens Fedora doch der bessere um zukünftigen Problemen aus dem Weg zu gehen.
Ich hege leider etwas Zweifel daran, dass Debian diesen Weg auch gehen wird.
In der aktuellen stable Ausgabe wird Mono wohl noch vorhanden bleiben.
Ich denke aber mal, dass das Debian Projekt wohl erst bei dem ersten Anzeichen von rechtlichen Problemen reagieren wird.

Trotzdem wäre der Verlust von Mono doch ein recht großer da Mono sehr viel Potenzial hat, dass nicht wegen rechtlichen Problemen verstauben sollte.

Sonntag, 7. Juni 2009

Neue Idee für jsync und Überlegungen über Optionen

Ich habe eine kleine und feine Idee für jsync bekommen.
Durch meinen letzten Blogeintrag für jsync in dem ich die neue Optionen zum Filtern von temporären sowie unsichtbaren Dateien hatte, will ich jetzt noch ein Stück weiter gehen.
Filtern ist hier sogar das Stichwort.
Ich plane im Moment eine neue Sektion namens filters.
Dort kann man dann diverse Einträge für Reguläre Ausdrücke einbauen.
So soll man z.b. die Dateien mit bestimmten Mustern filtern können.
Dies ist z.B. gut wenn man nun bestimmte Dateien wie Bilder, Musik oder Videos nicht mit kopieren will.
Ob falls man einige Dateien ausmustern möchte in denen bestimmte Texte enthalten sind.

Aber das ganze werde ich noch ruhig durchdenken.

Samstag, 6. Juni 2009

Neuer MP3 Player mit .ogg Support :)

Ich war Heute mal wieder, trotz dem miesen Wetter, in Göttingen.
Dort habe ich den Samsung YP-U3J gefunden.
Leider gab es einige Startprobleme mit dem kleinen Gerät.
Insgesamt wird es wohl nicht für Linux direkt unterstützt.
Doch dank Rythmbox und dem MTP Plugin kann man doch noch Musik auf das Gerät spielen :)

Ich werde gleich mal meine alte Musik auf das Gerät kopieren und dann mal einen "Testlauf" Heuteabend machen.
Hoffentlich hört der Regen dann auch auf.

Nimmst du die rote Pille...

....dann hast du die SPD gewählt :)

Es ist mal wieder soweit.
Die Europawahlen stehen wieder einmal an und schon wimmelt es bei uns im Dorf nur so von SPD, CDU und FDP Ständen die einen "beeinflussen" wollen.
Ich persönlich werde keine dieser Parteien wählen.
Welche ich wählen werde, ist mir noch nicht genau klar.
Wähle ich die CDU dann kann ich meine Grundrechte gleich streichen lassen.
Nehme ich die SPD dann gibts nur wieder eine neues Hartz und bei der FDP gibts nur die alten liberalen Ideen die zur Wirtschaftskrise geführt haben und nun der Staat wieder alle retten muss.

Heutemorgen war ich auch wieder bei meiner Schneiderin mit meinem Vater und Bruder.
Diese hat es sogar auf einen recht bösen Standpunkt gebracht.
Ihr ist es egal wenn sie wählen würde.
Jeder würde nur mehr Geld haben wollen und ihr das Leben noch schwerer machen.
Deshalb hat sie sich dafür entschieden nicht zu wählen.
Ich finde diese Einstellung nur zum Teil okay.
Ich denke auch, dass es insgesamt nur Bergab geht.
Die Gelder für die Rettungsaktionen aller Länder müssen die kleinen Leute tragen.
Es spielt dabei nicht mal mehr eine Rolle wer als nächstes für Deutschland im Europarat in Brüssel spricht.

Doch auf der anderen Seite ist eine nicht abgegeben Stimme noch viel schlimmer.
Diese verlorenen Stimmen könnten vielleicht die richtige Partei stärken und die anderen schwächen.
Aber ohne diese Stimmen können nur die großen Parteien weiter ihr unwesen treiben.

Deshalb geht wählen und stärkt die Parteien die nicht irgendwelche Scheinversprechen machen.
Sucht euch Parteien die nicht aus Volksvertrettern bestehen, die nicht im Sinne des Volkes handeln.
Sucht euch eine Partei die genau euren Zielen entspricht und diese auch definitiv umsetzen wird.

Freitag, 5. Juni 2009

jsync bekommt wieder neue Optionen :)

Ich habe mir in meinem Bollwerk des Bösen wieder einmal einige kleine Optionen für jsync ausgedacht und überdenke im Moment auch die Option clean nochmals.

Die neuen Optionen sollen folgendes machen.
Die erste soll temporäre Dateien löschen.
Dabei beachte ich im Moment eher die temporären Dateien unter Unix und Unixartigen Systemen.
Dort werden temporäre Dateien mit einer Tilde(~) am Ende markiert.
Somit ist es einfach diese Dateien zu finden.
Ich werde mal schauen ob die File Klasse aus Java vielleicht eine passende Option hat.
Ich werde es aber aus guten Gründen so handhaben, dass immer alle Dateien vor dem kopieren dann entsprechend geprüft werden und dann bei einem Treffer übersprungen werden wenn die Option dafür aktiv ist.

Die zweite Option wird sich dann für unsichtbare Dateien genauso auswirken.
Mit einem true/false der Option werden diese dann vor dem kopieren aussortiert.

Dazu werde ich auch noch einige weitere Pläne schmieden.
Aktuell habe ich auch so das Problem, dass ich auf meinem Desktop viele von den temporären Dateien habe.
Mal schauen ob ich dies ohne große Probleme hin bekommen.
Geplant ist es aber auch unter anderen Systemen diese Dateien zu entdecken und zu filtern.
Aber erst einmal heißt es Heute die Beine hoch machen und noch etwas feiern gehen.

Somit kann ich dann Morgen den wohl hektischen Tag überstehen :)

Donnerstag, 4. Juni 2009

jsync's jINI kennt nun "Arrays" :)

Ich habe mich mal ran gemacht und das Array System, so wie es mir eigentlich schon von Anfang an vorschwebte, umgesetzt.
Das ganze waren keine 10 Zeilen und hat mich keine 2 Minuten gedauert :)
Ich lasse lediglich den die Form von "{eintrag, noch_ein_eintrag,und_noch_einer}" zu.
Es ist dort nicht angedacht, dass man seinen Keys Leerstellen gibt.
Dies werde ich aber wohl wieder einbauen müssen :)
Macht zwar wenig Sinn, aber somit kann jeder es nutzen wie er es für richtig hält.

Ansonsten klappt das ganze super.
Ich werde mich nur mal am Wochenende ran machen und die gesamten Libs etwas verkleinern.
Aktuell muss ich auch jFileLib überdenken.
Ich habe dort zwar eine File Klasse, aber diese ist weder von der Java File Klasse abgeleitet noch ist diese wirklich brauchbar.
Ich werde diese wohl entfernen und nur noch den FileReader und FileWriter anbieten.
Auch wenn die Kapselung von FileReader/FileWriter in der File Klasse ganz gut ist, so ist die File Klasse aber für nichts anderes als dem speichern des Dateipfades sowie zum anbieten des Reader/Writer da.

Mal schauen ob ich die Klasse doch noch nutzen kann.
Aber aktuell wird dies in keiner Lib von mir verwendet.

Ansonsten werde ich auf jeden Fall mal ordentlich aufräumen.
Es werden einige Zeilen Code entfernt oder in Methoden ausgelagert.
In jsync gibt es in der Main Klasse und der main Methode mehr Code zum auslagern als nötig sein müsste.
Aber dies werde ich dann Morgen und am Wochenende angehen :)

jsync und seine Optionen :)

Wie ich es geplant habe, habe ich Heute die Optionen overwrite sowie clean fertig gestellt.
Das ganze rennt auch relativ schnell davon.
So dauert es keine 5 Minuten rund 3 GB weg zu putzen.

Java bot mir auch gerade eine klasse Methode an um die Option onchange durch zu bringen.
So kann ich einfach das Datum der Zieldatei auf das Datum der Quelldatei einstellen.
Somit kann nur eine geänderte Datei durchs Netz hüpfen was wieder viel Zeit spart.

Wenn ich es noch schaffen könnte, dass ich mehre Ziele/Quellen gleichzeitig verarbeiten könnte, dann wäre ich noch ein Stück weiter.
Aber erst einmal muss sich die aktuelle Version von jsync bewähren :)

Die neue Version bekommt nur eine kleine Änderung.
Dort werde ich dann die Array Erweiterung für jINI einbinden.
Aber alles zu gegebener Zeit.

Verkaufsaktion für neue Musik :)

Ich habe mir gerade mal überlegt mein Zimmer um einige CD's/DVD's zu erleichtern.
Ich habe locker 5-10 solcher kleinen Scheiben hier ungenutzt herumliegen.
Und damit das auch noch was bringt, werde ich mir von den Erlösen mal ein paar Subway to Sally Alben kaufen.
Hab schon ein paar Lieder davon gehört und finde die Band als Rock und Metalfan sehr gut :)
Der Kauf wird sich lohnen ;)

Mittwoch, 3. Juni 2009

jsync bis in die Nacht :)

Ich habe bis vor wenigen Minuten noch an jsync gebastelt.
Ich habe die geplanten Optionen clean und overwrite fast fertig.
clean scheint schon klasse zu laufen.
Nur bei der Option overwrite = onchange gibt es böse Probleme.
So ändert sich das Datum der Zieldatei bei der letzten Modifizierung aus unbekannten Gründen.
Und dies bevor die Datei überhaupt angefasst wird :/

Ich werde dieses Problem Morgen mal genauer anschauen und hoffentlich beheben.
Ich habe Heute schon gemerkt, dass die Einstellung "onchange" wirklich brauchbar ist.
So habe ich in meinen Notizen ein paar Änderungen gemacht.
Und bevor ich rund 5 GB auf 2 Platten nochmal verteile wegen einer Änderung von wenigen Byte lasse ich doch lieber eine kleine Erweiterung bauen und schon passt alles.

Mal schauen was ich noch so daraus machen kann.

Dienstag, 2. Juni 2009

Neuer Anime Claymore :D

Als Anime Fan hab ich mal wieder eine neue Anime Serie gefunden.
Dieses mal habe ich den Anime Claymore entdeckt.
Die Version die ich bis jetzt gesehen habe, FSK 18 Version, hat auch zu recht diese Altersfreigabe bekommen.

An sich sollte man nicht gerade eine sanftmütige Natur sein wenn man diese Serie schauen möchte.
Dabei fließt nicht gerade wenig der bekannten roten Substanz.
Auch Emotional ist das Ganze wieder sehr geladen.

So sind die ersten 3-4 Folgen in der Gegenwart und danach folgen genauso viele Folgen aus der Vergangenheit der Protagonistin.
Und diese verliebt alles andere als rosig.

Wer am Wochenende mal nichts vor hat oder in der Woche mal etwas abschalten möchte aber sich doch mal wieder einen guten Anime anschauen will, dem kann ich Claymore nur empfehlen.
Natürlich sollte man bei der FSK 18 Version auch mindestens 18 sein :)

jINI Erweiterung für jsync :)

Nachdem ich Gestern wieder einmal einen kleinen Denkfehler in jsync gefunden habe, musste ich natürlich umdenken.
Mein Plan war es, dass man entweder eine Quelle mehren Zielen zuweisen kann oder eben umgekehrt.
Das Problem war hier, dass ich es einfach so machen wollte, dass man einfach in mehren Zeilen immer wieder die Quelle und dann die Ziele schreibt.
Leider habe ich nicht mehr daran gedacht, dass eine HashMap immer nur einen Schlüssel haben kann.

Damit ich dieses "Problem" lösen kann werde ich für jsync eine Erweiterung beim parsen der .ini Dateien bauen.
Dabei plane ich sowas wie ein einfaches Array.
Dies würde dann ungefähr so aussehen:

[connections]
home={lacie,digital}

Somit weiß ich, dass die Quelle home(z.B. mein Homeverzeichniss unter Linux) zu den Quellen lacie und digital kopiert werden sollen.
die jeweiligen Pfade sind dann unter sources und targets angegeben.

Ich werde diese Erweiterung Heuteabend mal durchplanen und auch schon ein wenig mit den ersten Versuchen für die Optionen rumspielen :)

Montag, 1. Juni 2009

jsync vs. ext3 :)

Ich habe gerade mal einen kleinen Geschwindigkeitstest gemacht.
ext3 hat insgesamt 3 Minuten für die 2,5 GB große .iso Datei des aktuellen Windows 7 RC gebraucht.
Mit jsync hat es 4 Minuten gedauert.
Also etwas langsamer aber doch recht flott.

Mit der Option overwrite(true o. false) kann ich auch angeben ob vorhandene Dateien überschrieben werden sollen.
Dies hat sich sehr beim kopieren meines gesamten Home Verzeichnisses bemerkbar gemacht.
Mit rund 1,5 GB würde es rund 2 Minuten dauern.
Insgesamt hat es eine halbe Minute gedauert, dies zu kopieren.
Nach dem kopieren hat es nur wenige Sekunden gedauert, bis die Daten verglichen waren.

Ich werde diese Option aber noch erweitern, da ein schlichtes true/false nicht effizient genug ist.
Den was ist wenn ich eine Datei bearbeitet habe.
Dann wird folglich die Änderung nicht gesichert.

Deshalb wird es dort noch eine Optionsliste für never, always und onchange geben.
Auch die Option clean mit true/false plane ich gerade.
Aktuell sind noch alte Verzeichnisse auf meinen Platten die ich entfernt hatte.
Mit clean soll dann alles im Backup Verzeichniss gelöscht werden und die neuen Daten sollen dann eingespielt werden.
Aber dies wird in den kommenden Tagen geplant und umgesetzt.

Back to the Mod!

Ich habe Gestern mal wieder mit meinem alten Modleader Avater gesprochen.
Leider ist es um die Resident Evil Twilight Mod sehr still geworden.
Grund dafür sind leider Mangel an C++ Entwicklern.

Ich habe durch diese Mod erst meinen Einstieg in die Programmierung gefunden und konnte davor einige Erfahrungen in der 3D Modellierung machen.
Da ich sehr froh darüber war, dass ich mich durch diese Mod zu einem kleinen Entwickler gemausert habe, werde ich dort meine Kenntnisse wieder zurück fließen lassen.

Eigentlich fehlen nur ein paar simple Sachen wie Ableitungen von Gegner- und Waffenklassen.
Das muss dann wieder per Programmierung an die .fgd Datei gebunden werden damit die Leveldesigner wieder ihre neuen Spielzeuge nutzen können.
Ich werde dies dann unter Vista mit Visual Studio c++ 200 Express entwickeln können.

Ich hoffe, dass noch nichts verloren ist und wir dem ganzen wieder etwas mehr Aufwind verpassen können.
Wenn alles gut geht kann ich bereits am Samstag mit einer Übersicht beginnen und mir dann erst einmal einen Kopf machen wie alles laufen soll :)

Die glorreichen 300

Es ist wieder einmal soweit.
Ich habe wieder einmal eine 100. Marke bei meinen Blogeinträgen .
Der 300ste Eintrag ging auf die Rechnung von jsync.
Dieses habe ich nun auch von der einfachen Funktionalität fertig.
Jetzt muss das ganze noch mit Ausgaben um Informationen für den Anwender erweitert werden.
Dies werde ich aber erst in den kommenden Tagen machen.
Erst einmal werde ich noch einiges Tests machen und natürlich jLog schon einmal einbinden.
Somit kann ich diverse Fehler wie vorhandene Dateien oder Probleme beim anlegen von Verzeichnissen protokollieren.

Dies kann mir und dem späteren Anwender eine Menge Probleme und Zeit sparen :)

Auch plane ich schon ein kleines Sprachensystem mit dem ich später die Meldungen ersetzen kann.
Dafür muss ich aber erst einmal schauen, wie ich die Systemsprache passend auslesen kann.
Anhand des Sprachcode, bsp. de-DE, kann ich dann die Übersetzungen suche lassen.
Vielleicht kann mir hier sogar jINI wieder behilflich sein.

Mit dem einfachen Schlüssel/Werte System kann ich dann einfach einmalige Schlüssel im Code festlegen und mit den Werten die Texte einfließen lassen.
Aber dies werde ich noch mal überdenken damit es nicht schon beim ersten Versuch zu größeren Problemen kommt :)

Eclipse und die Sachem mit dem .jar Archiv :/

Ich habe gerade 2 Stunden daran gesessen, damit ich die ganzen geschaffenen Abhängigkeiten von jINI, jLog und jsync beheben kann.
Leider hat Eclipse in Debian stable noch die Schwäche, dass es mit zusätzlichen Libraries beim Export Probleme hat.

Dies zu lösen erfordert etwas eigene Handarbeit.
Ich habe es so gelöst, dass ich eine eigene Vorlage für die Manifest Datei erstellt habe.


Ich habe bei jsync folgende Abhängigkeitsprobleme.

1.jINI nutzt jFileLib
2.jLog nutzt jFileLib
3.jsync nutzt jINI und jLog was wieder die jFileLib nutzt.

Das Problem kann aber "einfach" behoben werden.
Dazu muss man in einem eigenen Manifest die Zeile Class-Path; . einfügen.
Somit sucht jINI und jLog dann im aktuellen Verzeichnis nach der jFileLib.

Damit ich dann in jsync die 3 Libs nutzen kann, habe ich einfach mal die Zeile "Class-Path: . libs/jFileLib.jar libs/jINI.jar libs/jLog.jar" eingefügt.
Somit findet jsync im Ordner libs die 3 .jar Archive.

Und diese finden sich, da diese im selben Verzeichnis liegen.
Wer also öfters so etwas macht, sollte sich diesen Kniff merken.