Samstag, 15. November 2014

[.NET] Microsoft geht mit .NET in Open Source Offensive

In der letzten Woche ist etwas passiert was ich nie erwartet hätte.
Microsoft will das .NET Framework komplett Open Source legen.
Dies heißt also, dass es möglich wird bei entsprechender Lizenz das Framework auf allmögliche Systeme zu portieren.

Bisher gab es nur zwei Möglichkeiten.
Entweder unter Windows direkt auf das .NET Framework setzen.
Oder unter anderen Systemen wie Linux oder MacOS auf Mono als .NET Implementierung für Linux zu setzen.
Da es bei Mono bisher nur eine Zusage von Microsoft gab, dass man Mono nicht juristisch belangen wollte, haben die meisten Linux Entwickler/Nutzer von Mono abstand gehalten.
Meine Erfahrungen mit Mono liegen zwar schon einige Jahre zurück, aber damals konnte ich ohne Probleme einfache C# Konsolen Anwendungen programmieren, kompilieren und auch ausführen.

Da .NET bei Windows Bestandteil des Systems ist, muss man bei Linux eben das Programm mono wie bei Java Anwendungen aufrufen um die Laufzeitumgebung zu starten.
Bei Windows wird dies natürlich vom System direkt erkannt.
Dies wäre noch ein tolles Mittel um die Linux Puristen zu verwirren. :)

Ansonsten freut mich der Schritt schon sehr.
Bisher habe ich Projekte, die eben Platformübergreifend sollten, in Java entwicklet.
Dies ist aber manchmal doch umständlicher als nötig.
Wer einmal mit C# entwickelt hat, wird nie wieder ohne auto Properties arbeiten wollen.
Auch einige semantischen Lösungen wie using für Disposable Implementierungen sind in Java nur mit dem seit Java 7 bekannten Try Block umsetzenbar.

Bei Java muss man immer noch die Properties einer Klasse umständlich ausschreiben.
Hier hat C# mit get/set den saubereren Weg.

Entsprechend werde ich meine zukünftigen Projekte mit Mono auch für Linux umsetzen.
Meine bestehenden Projekte, sind auch schon einige Jahre alt, werde ich aber nicht mehr rüber portieren.

Ansonsten freue ich mich riesig.
Mal schauen wie der geplante Merge zwischen Mono und .NET ablaufen wird.
Vielleicht werden einige Lösungen von Mono bei .NET eingepflegt.
Lassen wir uns mal überraschen.

[Datenbanken] Neuigkeiten und Aussichten

Da wir bei uns im Büro mal wieder Nominatim von OpenStreetMaps aufsetzen müssen, Update des Server ist wegen fehlendem Speicherplatz nicht möglich, hatte ich mich mal wieder etwas näher mit Nominatim sowie der verwendeten Datenbank PostgreSQL beschäftigt.

PostgreSQL ist für mich aktuell das bessere MySQL.
Seit der Übernahme von MySQL hat Oracle angefangen MySQLs Entwicklungsprozess intransparenter zu gestalten.
Das Problem hier ist, dass einige wichtige Tests von Oracle nicht mehr in den Entwicklungszweig von MySQL eingepflegt werden was die QS natürlich erschwert.
Aussicht von Oracle ist natürlich klar warum man das macht.
Gerade Oracle hat mit seiner eigenen kommerzielle DB einen großen Konkurrenten mit MySQL nun im Haus.
Und gerade hier versucht man natürlich auch die kostenlose Alternative nur noch teuer gegen Geld anzubieten.
Deshalb sollte man sich gut überlegen ob man noch auf MySQL setzen möchte.
Früher oder später dürfte auch MySQL verschwinden.

Einen Fork mit dem Namen "MariaDB" gibt es schon seit einige Jahren, der dieses Problem lösen möchte.
Ebenfalls bietet er Features die die freie MySQL Variante nicht besitzt.
Es wurden auch viele Optimierungen und Verbesserungen sowie neue Tabellen Engines hinzugefügt.
Dies spricht also sehr für MariaDB und gegen MySQL.
Lediglich die Popularität von MySQL dürfte noch einige Jahre dafür sorgen, dass MySQL bevorzugt wird.

Aktuell liebäugle ich ja mit PostgreSQL.
Dabei handelt es sich ähnlich wie bei MySQL und MariaDB um eine recht freie Datenbank.
Diese befindest sich aktuell noch in der Version 9.3
Version 9.4 ist bereits im Betastadium und dürfte in den nächen 1-2 Monaten auch soweit sein.

Zwar fehlen noch die ein oder anderen Möglichkeiten bei PostgreSQL aber insgesamt ist die aktuelle Version schon von Features her genauso gut wie MySQL, MariaDB oder sogar kommerzielle Datenbanken.

PostgreSQL zeichnet sich durch gute erweiterbarkeit aus.
Man kann in eigene Funktionen sowie Datentypen in PostgreSQL einpflegen.
Projekte wie Nominatim wäre mit MySQL oder anderen Datenbanken nicht so einfach und eben frei umsetzbar.
Durch die Extensions kann PostgreSQL mit PostGIS ebend auch mit Geopositionen(Latitude/Longitude) arbeiten und rechnen.

Diese Features machen PostgreSQL für mich interessant.
Aktuell habe ich mir auch einige Bücher zu PostgreSQL besorgt.
Ebenfalls habe ich mir auch mal das Buch "SQL Performance Explained" gekauft.

In den PostgreSQL Bücher geht es um alle möglichen Themenbereiche.
Von der Installation, Kompilation sowie der Konfiguration der Instanzen bis hier zur Absicherund und auch Datensicherung.

Das letzte Buch behandelt im groben die Verwendung von Indizies.
Auch geht sie, ausgehend von Oracle Datenbanken aber auch gültig für andere Datenbanken, in die internen Verarbeitungen der Datenbanken Indizies ein.
Somit kann man auch besser verstehen wie und warum einige Abfragen mit Indizies mal gut und mal schlecht laufen.
Das Buch fängt aber schon sehr technisch an.
Man sollte sich mit Binären Bäumen und auch den Baum Strukturen auskennen.
Dies macht sich schon im ersten Kapitel bezahlt.

Insgesamt haben sich die Bücher schon gut bezahlt gemacht, da ich nun auch weiß wie ich aus der Default Config, die Debian verwendet, noch mehr Performance rausholen kann.
Ich bin nur verwundert warum gerade für Datenbankserver wie PostgreSQL so geringe Datenbank Einstellungen verwendet werden.
Hier kann die DB nicht mal im Ansatz ihre Stärken ausspielen.
Auf der anderen Seite muss sich dann aber der Administrator auch mal mit dem System auseinander setzen.
Dies ist gerade in der heutigen Zeit doch zu begrüßen.

Mal wieder was neues


Nach nun mehr als einem Jahr, möchte ich mal wieder den aktuellen Stand bekannt geben.

Seit dem letzten Eintrag vom Mai 2013 ist einiges passiert.
Seit letztem Jahr wohne ich nun in der Stadt Northeim.
Ich bin also bei meinen Eltern ausgezogen um nun das Leben auf eigenen Beinen zu bestehen.

Natürlich war es am Anfang noch recht ungewohnt und es dauerte auch eine gewisse Zeit bis man sich an die neuen Umstände gewöhnt hat.
Der Umzug sowie die Neuanschaffungen waren auch sehr kosten intensiv.
Dadurch konnte ich aber eine gute 69m² Wohnung einrichten.

Beruflich machte mich dies auch unabhängig von einem Fahrzeug, da ich jeden Tag nur 10-12 Min. Arbeitsweg zu Fuß habe.
Dies spart mir auch unnötige Kosten für Fahrzeug Wartung und Sprit.

Beruflich hat sich auch einiges getan.
Einige alte Kollegen haben uns verlassen, kurzeitig neue Kollegen kamen und gingen auch schon wieder.
Unsere letzten Auszubildenen haben alle ihre Prüfungen erfolgreich abgeschlossen und wurde fast alle übernommen.

Ansonsten läuft es beruflich aktuell ganz gut.
Unsere Projekte laufen aktuell ganz gut und fast ohne Stress.
Entsprechend kann man sich also schon langsam auf das Jahresende freuen.
Dieses Jahr werde ich mal 3,5 Wochen Urlaub machen.
Da es im April wegen einigen Problemen mit dem Urlaub nicht ganz geklappt hat und ich noch einige Tage über habe, mache ich dann mal richtigen Urlaub.

Weihnachten wird dann wieder im familiären Kreis gefeiert :)
Also Eltern und Bruder besuchen und mal wieder plauschen.

Aktuell schaue ich mal wieder dem nächsten Debian Release entgegen.
Debian Jessie ist aktuell wieder im Freeze und es wird erwartet, dass im Frühjar schon der Release ist.
  
Mich besorgt dabei aber die ganze Aufregung um systemd bei Debian.
Auch wenn ich diese gut nachvollziehen kann, so kann ich aus technischer Sicht nicht groß gegen systemd sprechen.
Gerade wenn es einige Baustellen, die Linux schon seit Jahren sorgen und alle durch Einzellösungen nur umgangen haben, dann sollte man systemd nicht ganz verteufeln oder verachten.

Einige Debianer gehen sogar soweit, dass sie wegen systemd Debian den Rücken kehren.
Dies kann ich gut nachvollziehen.
Gerade Debian möchte als universelles Betriebssystem auch alle möglichen Konstellationen versorgen.
Durch systemd, dass nun mal eine reine Linux Lösung ist, kann dies aber nicht mehr gewährleistet werden.
Ich hoffe ja, dass man Jessie deswegen nicht verschiebt aber dafür entweder als ein Point Release einen portablen Init Dienst nachschiebt oder eben erst im Jessie Nachfolger eine bessere Lösung anstrebt.

Desweiteren habe ich mir einige Skripte gebastelt um mit Default Configs, ja ich weiß das dies keine Kunst ist, Kernel von Kernel.org zu kompilieren.
Diese ziehen quasi die Kernel, entpacken diese, kompilieren und installieren diese.
Das zweite Skript entfernt diese auch wieder sauber.
Ich muss mir mal die Zeit nehmen um die Skripte zusammen zu legen und per Parameter entweder die Installation oder eben die Entfernung der Kernel zu übernehmen.
Seit Debian Wheezy kümmert sich auch Grub um das updaten der initrd, was das Skript auch etwas verkürzt hat.


So das war erst einmal die Zusammenfassung der letzten Zeit.
Ich werde in den nächsten Wochen mal wieder etwas mehr bloggen.
Genug Themen habe ich aktuell auf Lager.

Bis dahin viel Spaß und viel Erfolg.

Samstag, 4. Mai 2013

[Debian] Wheezy Release

Nach gut zwei Jahren ist es nun soweit.
Die neue Debian Version mit dem Codenamen Wheezy steht an.
Aktuell werden bereits die Installationsmedien erstellt und in den kommenden Stunden fleißig verteilt.

Ich beteilige mich beim verteilen über meine Root Server.
Diese haben eine 100 MBit/s Anbindung mit Flat, was das Verteilen sehr effektiv macht.

Ansonsten ist Wheezy bei mir auch schon in einigen VMs sowie auf einem Testrechner am laufen.
Wheezy läuft dort mit aktuellen Paketen stabil und zuverlässig.

In den kommenden 2-3 Monanten kommt dann auch schon der erste Point Release.
Mit diesem werde ich meinen Homeserver und sobald verfügbar auch meine Root Server umstellen.

Debian wird zukünftig bei mir auf meinem zweiten Desktop Rechner laufen und dort für allesmögliche herhalten.
Da ich auch mit mdadm über USB 3 oder eSata testen möchte, würde sich Wheezy sehr gut anbieten.

Montag, 11. Februar 2013

[ARM] Pandaboard ES

Ich bin nun seit einigen Tagen stolzer Besitzer des Pandaboard ES.
Dies habe ich mir bei Tigal.com gekauft.
Dabei handelt es sich um ein Multimedia Kit.

Dies beinhaltet die SD Karte, Antenne für WiFi, Gehäuse für die Platine und ein HDMI Kabel.
Die SD Karte muss nur per Karten Leser befüllt werden.
Glüpcklicherweise hat mein Homeserver einen Karten Leser gehabt.

Dort habe ich über diese Anleitung Debian Wheezy installiert.
Wenn alles klappt und man auch die SD Karte samt uEnv.txt entsprechend angepasst hat sollte Debian Wheezy starten sobald Strom auf dem Kasten ist.

Tipp:
Die Platine hat kleine Gummi Noppen als Standfüße.
Diese kann man mit etwas vorsicht und Kraft auch entfernen.
Da diese lediglich angeklebt sind klappt es auch recht einfach.

Anbei sollten folgende Pakete installiert und per dpkg-reconfigure neu konfiguriert werden.

Pakete installieren:
locales
console-data
keyboard-configuration

Zusätzlich sollte in der Datei /etc/default/locale (nach dpkg-reconfigure locales erst vorhanden) die Variable LANG mit der bevorzugten System Sprache gefüllt werden.
Dann einmal ab- und wieder anmelden und schon habt ihr die richtige System Sprache.

Anbei sollte man die Passwörter für root und ggf. für deb Benutzer debian anpassen.
Letzten kann man auch löschen falls dieser nicht erwünscht ist.

Damit man die USB Anschlüsse für externe Speicher verwenden kann, kann man sich auch per SSH an dem Pandaboard anmelden.
Dieses sollte vorinstalliert sein.
Falls nicht, kann man das Paket openssh-server installieren.

Donnerstag, 3. Januar 2013

[Tools]7-zip

Ich nutze schon seit einiger Zeit das Packprogramm 7-zip.
Damit lassen sich im 7z Format extreme Kompressionen erreichnen.
Hier kann man mithilfe der LZMA2 Kompression und den Ultra Einstellungen wirklich starke Kompressionen erreichnen.

Ich habe dafür 2 Beispiele.

Beispiel 1:
Für ein Projekt hatte ich längere Zeit einige Textdateien, rund 200GB, mit Daten unkomprimiert auf einer Festplatte.
Da dieser über einen Zeitraum von rund 12 Monaten aber doch angewachsen waren, hatte ich diese per 7zip gepackt.
Das Ergebnis war weniger als 30GB.
Bei Textdateien ist dies auch möglich, da die Daten unkomprimiert vorliegen.

Beispiel 2:
Ich habe eine VM samt Installtions CD im ISO Format gepackt.
Unkomprimiert rund 30,1 GB.
Nun mit 7zip ist das ganze auf rund 5 GB gepackt worden.

Es empfiehlt sich hier einen ordentlichen Prozessor, Quad Core sollte Minimum sein, und auch RAM sollte ordentlich vorhanden sein.
Hier empfiehlt sich 4 GB zum packen als Minimum.

Wer große Daten packen muss kann 7zip kostenlos laden.

Link:
http://www.7-zip.org/

[Linux] CPU Anzahl ermitteln

Ich plane meine Skripte zum bauen des Linux Kernels von kernel.org etwas zu optimieren.
Aktuell habe ich meine Skripte so gebaut, dass diese unbegrenzte Mengen an Archiven Downloaden, entpacken und somit endlos viele Resourcen schlucken.

Deshalb wollte ich wissen wie ich die Skripte anpassen kann um nur eine Anzahl an Vorgängen zu starten, die auch der Anzahl der Prozessoren entspricht.
Somit kann man pro Kern 1-2 Aufgaben abarbeiten lassen.

Die Lösung ist folgende Zeilen:
CPU_COUNT=$(grep processor /proc/cpuinfo | wc -l)

Somit wird über grep aus /proc/cpuinfo und durch das zählen der Zeilen durch wc -l ermittelt wie wieviele Kerne vorhanden sind.

Sonntag, 16. Dezember 2012

Windows 8 aufgeräumt + Eindruck

Nachdem ich vor 5 Tagen meinen Rechner auf Windws 8 umgestellt habe, habe ich heute mal etwas aufgeräumt.
Dabei konnte ich mit dem alten Windows Ordner "windows.old" schon rund 40GB löschen.
Die alten Spiele und Programme, die auch nicht mehr lauffähig sind haben auch rund 40GB gebracht.

Somit ist die Platte wieder etwas leerer geworden :)


Nach dem ich mich soweit in Windows 8 eingearbeitet habe, ist der Umstieg auch kein großes Problem gewesen.
Man muss sich zwar umstellen wegen dem Verhalten der Oberfläche aber wenn man dies hinter sich hat ist Windiws 8 ganz nett.

Die neuen Tools zum optimieren der Festplatte tun auch ihren Dienst und sind auch für SSDs zu gebrauchen.
Die Backup Funktion gibt es als neue File History, die aber lediglich die Benutzer Ordner sichert oder verstekct als "Windows 7 Recovery".
Dies kann man über die Suche im neuen Startmenü mit Recovery unter Settings finden.
Den Weg über ein einfaches Menü gibt es so nicht mehr.

Eine Sicherung läuft hier gerade schon seit einigen Stunden und wir wohl noch den ganzen Tag dauern.

Ansonsten läuft der Rest problemlos.
Die Frist zum Upgraden läuft nur noch bis zum 31. Januar.
Danach wird es richtig teuer.

Meine Empfehlung wäre den Umstieg lieber gleich zu machen.
Unsere Firma steigt zum Jahreswechsel um.
Somit kann ich im Januar auch auf Arbeit mit Windows 8 arbeiten.

Dienstag, 11. Dezember 2012

Windows 8 Umsteig - Das Happy End

Der Umzug ist beendet.
Nachdem ich die Benutzerkonten umgezogen hatte konnte ich die wichtigste Software nach der Neuinstallation direkt nutzen.

Einige Software wie Firefox, Thunderbird und sogar Steam hatten keine Probleme zu starten ohne neu installiert werden zu müssen.

Steam hat für solche Fälle eine eigene Reperatur und konnte gleich danach die Spiele prüfen und updaten.

Somit kann ich trotz des unglücklich verlaufenen Upgrades mich nun über Windows 8 freuen.
Auch wenn meine Skepsis noch nicht ganz verflogen ist, ist diese doch nicht mehr so schlimm wenn das System einmal läuft.

Nun heißt es noch aufräumen und die restliche Software neu zu installieren.

Windows 8 Umstieg Teil 3

Nachdem ich nun krampfhaft versuche seit über einer Woche auf Windows 8 Pro von meinem Windows 7 Ultimate Rechner umzusteigen muss ich wohl oder übel meinen Umstieg ohne meine Anwendungen machen.

Dies funktioniert nun seit Tagen nicht.
Die Fehlermeldungen der grafischen Oberfläche sind noch Nutzloser als die verstecken Upgrade Logdateiene deren Inhalt wenig über den Fehler sagt.

Ich habe mich deshalb entschieden nur die Benutzerkonten umzuziehen.
Sollte selbst dies scheitern wird der Rechner komplett neu aufgesetzt.

Ich bin insgesamt über das Upgrade enttäuscht.
Zwar ist der Preis mit 30€ sehr gut aber der Umstieg per InPlace Upgrade ist doch sehr unzufrieden verlaufen.

Dies liegt aber wahrscheinlich nicht nur an meiner Hardware Konstellation sondern auch an der Software selbst.

Leider kann ich wenig gegen diese Probleme tun.
Einen neuen Rechner werde ich mir erst im Frühjahr anschaffen.
Dann aber eher als Selbstau Kasten mit Intel CPU.

Nun heißt es warten ob wenigsten die Benutzerkonten umgezogen werden können...