Samstag, 28. Januar 2012

Spacer XNA Port

Nachdem ich wieder Lust auf Spieleentwicklung bekommen habe, werde ich mein altes Spiel Spacer auf XNA und C# portieren.

Spacer ist bereits 2-3 Jahre alt und wurde nicht mehr weiterentwickelt.
Damals hatte ich mit C++ und SDL ein kleines Framework für die Spieleentwicklung gebaut.
Zusätzlich noch einen einfachen INI Dateiparser, damit man sämtlichen Content einfach austauschen konnte.

Da XNA fast alles liefert, was ich mit SDL nochmal kapseln musste, kann ich mich wirklich auf die Programmierung konzentrieren.
Dieses mal wird es aber festen Content geben.
Es wird also nicht möglich sein per Skriptänderungen den Content auszutauschen.

Ansonsten freue ich mich schon auf die erste Version.
Vielleicht komme ich mit XNA irgendwann mal dazu sogar eine 3D Version von Spacer zu bauen.
Das wäre wirklich spaßig.

Freitag, 20. Januar 2012

Arch Linux und Gentoo angetestet

Ich habe mir vor 2 Wochen mal die Zeit genommen die beiden Distributionen zu installieren und mal etwas zu testen.

Arch Linux ist an sich ganz nett.
Da es ein Rolling Release Zyklus hat, hat man auch immer die aktuelle version nach einem Update.
Das Basissystem läuft ohne Probleme.
Gnome 3.2 konnte ich leider nicht nutzen, da ide Einrichtung doch etwas aufwändiger wäre und ich keine Lust auf großes gefummelt hatte.

Ansonsten ist die weitere Einrichtung auch recht einfach.
Pacman, der Paketmanager von Arch Linux, kümmert sich auch um alle Abhängigkeiten etc.
Somit laufen Updates und Installationen von zusätzlichen Programmen locker von der Hand.

An sich kann ich Arch Linux empfehlen.
Leider muss man hier auch ab und an etwas Aufwand bei der Konfiguration betreiber.
Dieser ist aber geringer als bei Gentoo.

Gentoo war da doch ein zäher Brocken.
Die Einrichtung des Systems hat schon locker 2-3 Stunden gedauert.
Zwar weiß ich jetzt wie ich ein Gentoo Grundsystem einrichten muss, aber wirklich Spaß macht es nicht.

Da ich den DHCP Server installiert habe, muss dieser noch beim booten gestartet werden.
Es macht keinen großen Spaß solche Basis Tasks einzurichten.

Zwar liefen die ersten Updates dann durch, aber außer 2 Stunden kompilieren konnte ich dann mit dem Rechner nichts anfangen.
Gentoo ist wirklich kein System für mich.

Netbeans ab Debian Wheezy wieder im Repository

Noch vor dem Release von Debian Squeeze wurde Netbeans aus dem Repository entfernt.
Dies war leider eine sehr schlechte Entscheidung.
Seitdem wurde das Paket netbeans-ide und netbeans-platform auch nicht mehr aktualisiert.

In Debian Wheezy ist nun bei meiner Suche nach netbeans das Paket "netbeans" aufgetaucht.
Dies stellt die Version 7.0.1 von Netbeans bereit.
Somit kann man mit Debian Wheezy, aktuell noch im Testing Statdium, wieder Netbeans verwenden.
Vor wenigen Tagen ist auch die Version 7.1 von Netbeans erschienen, weshalb man ggf. noch auf Netbeans 7.1 in Wheezy rechnen kann.

Auch das OpenJDK7 ist bereits in Debian enthalten und lief vor einer Woche bereits bei kleinen Tests ganz gut.
Der neue Garbage collector G1, der per Default aktiv ist, lief auch sehr verlässlich.

Ich werde die Tage mal etwas mit Netbeans arbeiten und mal schauen ob sich ggf. ein Umstieg von Eclipse lohnen würde.

Debian Wheezy mit Hurd als Kernel

Wie ich mitbekommen habe, wird es in Debian Wheezy möglich sein den GNU Hurd Kernel zu nutzen.
Der Kernel ist fast genauso lange wie Linux in Entwicklung.
Da aber Linux mehr Aufmerksamkeit bekam und auch mehr Interesse bestand, ist Hurd mehr oder weniger in der Versenkung verschwunden.
Natürlich wurde es auch weiterentwickelt, aber eben nur sehr langsam.

Trotzdem wird es wohl mit Debian Wheezy möglich sein eine erste Version von Hurd nutzen zu können.
Dabei handelt es sich aber erst einmal um eine Preview Version.
Wahrscheinlich wird erst in der Version darauf Hurd vollständig und auch stabil laufen.
Mit Wheezy wird dann auch der FreeBSD Kernel vollständig vorhanden sein.

Samstag, 12. November 2011

News nach langer Zeit

Da ich seit einiger Zeit viel Arbeit habe, da uns im laufe der letzten Monate leider einige gute und nette Arbeitskollegen verlassen haben, hatte ich kaum Zeit was zu bloggen.

Aktuell gibt es ein paar kleine News am Rande.

So gibt es von Fedora nun der Version 16.
Da ich bereits mit Fedora 15 gute Erfahrungen gemacht hatte, eigentlich nur wegen Gnome 3, wollte ich mir mal ein Update mit Fedora 15 zu Version 16 erlauben.
Mit dem Tool preupgrade, was man sich direkt aus dem Fedora Repository laden kann, ging dies zwar langsam aber doch sauber über die Bühne.

Fedora 16 Codename Verne, angelehnt an Jule Verne ist übrigens Denis McAllister Richie gewidmet.
Dies ist leider vor einigen Tagen verstorben.

Denis Richie war bei AT&A mit Ken Thompson an der Entwicklung vom Ur Unix, Unics, beteiligt.
Deshalb wurde leider wenig darüber informiert.
Dies liet aber auch am Tod von Steve Jobs der mit Mac OS und iOS aus Unix noch ein sehr beliebtes System gemacht hat.

Ansonsten habe ich mir das neue Buch "Java 7 Mehr als eine Insel" zugelegt.
Es ist eine tolle Ergänzung zum Buch "Java ist auch eine Insel".
Für Java Einsteiger eine super Mischung und auch für Java Entwickler auch eine gute Beispielsammlung.

Freitag, 26. August 2011

Neuigkeiten von der Entwicklerfront

Aktuell arbeite ich an einem Server für UDP/TCP für ein Projekt an dem ich beruflich arbeite.
Leider scheiterte ich anfangs an der asynchronen Verabrietung mit den Async Methoden der Socket Klasse ab .Net 4.0

Damit dies trotzdem sauber läuft, habe ich erst einmal alles in den ThreadPool verlagert, was wirklich sehr einfach und hilfreich ist.
Der Server soll dabei bestimmte Datenformate empfangen und verarbeiten.
Die Entwicklung macht Spaß und kann dann der Erfahrungen, die ich wirklich zufällig vor dem Projekt privat gemacht hattem auch besser damit arbeiten.

Heute steht ein Testlauf an um zu schauen ob die Verarbeitung von zwei noch ungetesten Formaten klappt.
Wäre super wenn dies ohne Probleme laufen würde.

Da wir die UDP/TCP Server Komponente noch auslagern wollen, damit diese mit dynamischen Mitteln später auch in anderen Projekten eingebunden werden kann, nutze ich auch delegates um die Verarbeitung zu ermöglichen.

Donnerstag, 4. August 2011

C# - Pfad zur Anwendung ermitteln

Ich habe immer wieder das Problem, dass ich in dem Ordner in der meine Anwendung liegt weiter Ordner/Dateien verarbeiten oder ablegen muss.

Zum ermitteln des Pfad reicht eine Zeile.

Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
Somit erhält man den Vollständigen Pfad zum Anwendungsordner

C# - PID für aktuellen Prozess ermitteln

Aktuell baue ich einen kleine UDP Server.
Da ein laufender Server per PID Datei angezeigt werden soll, muss ich diese per C# ermitteln.

Die Lösung ist gerade mal eine Zeile lang.

System.Diagnostics.Process.GetCurrentProcess().Id;
Somit bekommt man die Id als int Wert.
Diese kann man dann entsprechend in einer .pid Datei speichern um einen aktiven Server zu markieren.

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.