Qt-Tutorial 029: QSpinBox und QDoubleSpinBox

Eingabefelder für Integer– und Double-Zahlenwerte – wie man diese benutzt, zeigt dieses Video. Die SpinBoxen haben zusätzlich noch die Möglichkeit, dass der Benutzer die Einträge via Buttons bestimmt.

QSpingBox und QDoubleSpinBox
QSpingBox und QDoubleSpinBox

Bei den beiden SpinBoxen kann der Programmierer bestimmen, wie Zahlenwerte inkrementiert und dekrementiert werden, wie hoch und niedrig die Werte gehen dürfen und die Eingaben werden zusätzlich noch automatisch geprüft.

Beispielbild unseres Programms
Beispielbild unseres Programms

Hier geht es zum Video.

Qt-Tutorial 027: QLineEdit, QTextEdit und QPlainTextEdit

Schauen wir uns in diesem Video einmal die einfachsten Möglichkeiten an, mit denen ein Benutzer Text ins System eingeben kann:

QLineEdit, QTextEdit und QPlainTextEdit
QLineEdit, QTextEdit und QPlainTextEdit

Während QLineEdit nur dazu da ist, einzeiligen Text aufzunehmen, können QTextEdit und QPlainTextEdit viele Zeilen Text aufnehmen. Bei QTextEdit ist es weiterhin auch möglich, mit Formatierungen (RTF und HTML) zu arbeiten.

Beispielbild unseres Programms
Beispielbild unseres Programms

Hier geht es zum Video.

Umstellung eines ganzen Netzwerks von Windows 2000 auf Ubuntu 6.04

Es muss 2005 gewesen sein, als wir überlegten, gut 60 Arbeitsplätze auf ein neues Betriebssystem zu heben. Im Einsatz war noch Windows 2000 inklusive Domäneninfrastruktur. Das System machte immer wieder Probleme, sei es bei Updates oder sogar beim Drucken. Hier und da nervte vieles und Windows 2000 war mit seinen fünf Jahren auch nicht mehr das Jüngste. Mittlerweile ging auch der Supportzeitraum zu Ende, zumindest der Mainstream-Support, und was keiner von uns wusste war, dass es noch den Extended Support gab. Aber abgesehen davon: Es musste was Moderneres her.

Natürlich diskutierten wir über Windows XP, was aber auch schon ein wenig in die Jahre gekommen war und mir so absolut überhaupt nicht gefiel und natürlich dachten wir bereits an den Nachfolger, Windows Vista, der aber noch auf sich warten lies. Zuerst dachten wir, dass wir zwei Möglichkeiten hätten: Wir bleiben bei dem, was wir haben, also Windows 2000 und wechseln dann auf den Nachfolger von XP, wann auch immer dieser erscheinen würde oder wir wechseln auf XP und dann später auf den Nachfolger.

Die Entscheidung

Da wir bereits, neben FreeBSD, Linux auf einigen unserer Server nutzten, fragte die Geschäftsleitung, ob das auch im Clientbereich eine Idee wäre, denn es liefe ja gut. Ich sagte, dass das durchaus eine Option sein könnte, dachte aber eher daran, dass große Probleme kommen könnten. Ich sagte, wir evaluieren das mal. Ich hatte schon einige Jahre Erfahrung mit Linux, war dem Projekt also alles andere als abgeneigt und dachte mir auch, dass die Plattform stabil genug sei, um produktiv damit zu arbeiten.

Linux ist ja nicht gleich Linux und nur ein Kernel, aber selbst wenn wir von GNU/Linux sprechen: eine Distribution musste her. Ich hatte ewig lange Gentoo genutzt, aber nur privat und war sehr überzeugt davon. Wenn ich bedenke, wie viel Zeit ich in Kompilationen vergeudet habe … aber das ist ein anderes Thema. Mir war klar: wir können Gentoo keinesfalls für unser Netzwerk einsetzen. SuSE mochte ich nicht wirklich, RedHat auch nicht, Mandrake … naja … und ich weiß gar nicht mehr, was es um 2005/2006 so alles gab. Aber eine kleine Distribution begann, groß zu werden: Ubuntu. Debian war mir von jeher ein Begriff, und da Ubuntu darauf basierte, schauten wir uns das an und ich begann, längere Zeit damit zu arbeiten. Es war ok, lief stabil und ich konnte das Meiste damit erledigen. Allerdings war ich auch kein Kaufmann, Designer oder Redakteur. Mir war direkt klar: für unsere Produktion ist es nichts, darüber müssen wir nicht weiter nachdenken. Aber Texte damit verfassen: Das ging. Und so beschäftigten wir uns tiefer mit der Materie.

Die Automatisierung

Mein Vorgänger war der absolute Turnschuhadmin. Nichts war automatisiert, er bevorzugte das sinnlose Herumlaufen. Das wollten wir mit der Umstellung ebenfalls erschlagen. Wir wollten aber auch eine Art Domäne haben, zumindest mal globale Homeverzeichnisse und zentrale Anmeldungen. Die Installation sollte von selbst gehen, oder wenigstens, halbwegs von selbst.

Für die Installation entschieden wir uns, da ja Debian-basiert, für Kickstart und ein selbstentwickeltes Script. Mit Kickstart war es problemfrei möglich, eine generische Betriebssysteminstallation durchzuführen. Wir hatten zu dem Zeitpunkt die IP-Adressen noch manuell vergeben und keinen DHCP-Server mit MAC-Matching genutzt, so dass wir am Bootprompt die IP-Adresse für den jeweiligen Rechner mit angeben mussten. Anhand der IP-Adresse wurde entschieden, welche Software und Konfigurationen der Rechner bekam. Alles haben wir selbst gescriptet und entwickelt. Es lief recht reibungslos. Ich erinnere mich noch an den Tag der Umstellung. Wir liefen mit mehreren Personen durch die Abteilungen und starteten die Installationen an. CD rein, davon booten, IP eingeben, der Rest passierte letztlich automatisch. So ganz wahr ist das nicht. Der Installationsprozess war in zwei Bereiche aufgesplittet: den mit Kickstart zur Betriebssysteminstallation und dann der eigentliche Konfigurationsvorgang, der nach der Installation einmal händisch gestartet werden musste. Ich weiß nicht mehr, warum wir das nicht auch automatisierten, aber es hatte irgendeinen Grund. Ein Problem, das wir allerdings bis zum Schluss nicht wegbekamen, waren ein oder zwei Dialoge, die man tatsächlich selbst mit OK bestätigen musste. Sie ließen sich nicht wegoptimieren. Damit war eine unbeaufsichtigte Installation zwar nicht möglich, aber zu der Zeit konnten wir ein komplett installiertes und konfiguriertes System in gut dreißig Minuten mit wenig Aufwand bereitstellen. Das Optimum war damit noch nicht erreicht, aber der Komfort im Gegenzug zu früher war für uns weltbewegend.

Globalitäten

Zusätzlich wollten wir noch zwei weitere Dinge: eine zentrale Anmeldung und globale Home-Verzeichnisse.

Bei der zentralen Anmeldung entschieden wir uns gegen LDAP und Kerberos, da es einfach für uns in dem Zeitraum zu komplex war und wir ja auch noch das Tagesgeschäft zu betreuen hatten. Es gab eine sehr viel einfachere Lösung, die natürlich auch wesentlich limitierter war und letztlich kaum Sicherheit bot: NIS. Doch wir fuhren damit gut. Neben den Linux-Clients hatten wir daran auch die Macs und die FreeBSD-Maschinen angebunden und es lief. Wir arbeiteten später noch an LDAP, aber erstmal war das so in Ordnung.

Die Konstellation lief fast zehn Jahre und es gab unglaublich wenige Probleme. Aus Kompatibilitätsgründen (Kombination Word und InDesign) haben wir uns dann aber entschlossen, die Redaktion aus Linux herauszunehmen und Macs zu geben, damit der Austausch mit der Produktion besser lief.

Würde ich es wieder tun?

Technisch war das Projekt, meiner Meinung nach, ein voller Erfolg. Die Administration machte, zumeist, Spaß und lief, bis auf wenige Probleme, super. Aber würde ich es wieder tun? Nein. Denn was Computer vereinfachen, verkomplizieren die Menschen. Einige waren begeistert, aber viele eben nicht und es gab hier und da guten Gegenwind. Ich empfand es als sehr anstrengend. Was ich bei der Administration sparte, musste ich in sinnlosen Diskussionen ausbaden.

Das Interessante aber war, dass eine solche Umstellung möglich war. Es waren dann zwar keine sechzig Computer, aber immerhin um die fünfundreißig, die mit Linux liefen und das sehr gut. Aber die Leute müssen sich darauf einlassen.

FreeBSD-Grundkurs 017: Hilfe finden – Von Manpages über Foren und Bücher zu Mailinglisten und Chats (IRC/Matrix)

Bevor wir weiter in die Systemadministration einsteigen, schauen wir uns in diesem Video einmal an, wo man überall Hilfe finden kann, wenn man mit seinem FreeBSD-System nicht mehr weiterkommt.

Hilfe finden - Von Manpages über Foren und Bücher zu Mailinglisten und Chats
Hilfe finden – Von Manpages über Foren und Bücher zu Mailinglisten und Chats

Hierbei schauen wir uns einiges an:

Hier geht es zum Video.

Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite Teil 8

Der Benutzer soll die Datensätze exportieren können, und zwar als CSV, JSON und XML. Dazu treffen wir in diesem Video die Vorbereitungen, indem wir die Daten des CompanyTypes in einer Hashmap (QHash) speichern, um sie später einfach auszulesen.

Eine Desktopanwendung für compow mit C++, Qt und SQLite - Teil 8
Eine Desktopanwendung für compow mit C++, Qt und SQLite – Teil 8

Und so sieht es aus:

QtCreator mit CSV-Export in der Debug-Übersicht
QtCreator mit CSV-Export in der Debug-Übersicht

Hier geht es zum Video.