KooKooK 0006: E-Mail-Adresse einrichten

Abgesehen von der Website für dieses Projekt, die wir später einrichten, müssen wir noch den E-Mail-Server einrichten (Domain, virtusertable, usw.) und das Postfach im E-Mail-Programm einrichten (Thunderbird).

KooKooK 0006: E-Mail-Adresse einrichten
KooKooK 0006: E-Mail-Adresse einrichten

Hier geht es zum Video.

Hier geht es zur Playlist.

Hier geht es zur Website.

Hier geht es zum GitHub-Repository.

Hier geht es zum Redmine-Projekt.

KooKooK 0003: Redmine-Projekt einrichten

Als Projektmanagementtool setze ich seit einiger Zeit bereits Redmine ein und ich bin immer noch begeistert davon, weswegen wir es auch in diesem Projekt benutzen werden. In diesem Video zeige ich, wie ich das KooKooK-Projekt in Redmine anlege.

KooKooK 0003: Redmine-Projekt einrichten
KooKooK 0003: Redmine-Projekt einrichten

Hier geht es zum Video.

Hier geht es zur Playlist.

Hier geht es zur Website.

Hier geht es zum GitHub-Repository.

Hier geht es zum Redmine-Projekt.

Mein neues (und erstes) Live-Projekt: KooKooK

Da ich jetzt ja mit YouTube begonnen und aufgrund meiner jetzigen Situation ein wenig Zeit habe, habe ich mir überlegt, an einem neuen privaten Projekt zu arbeiten, um nicht aus der Übung zu kommen. Und genau deswegen dachte ich: warum nicht aufzeichnen und auf YouTube veröffentlichen?

KooKooK.org
KooKooK.org

Genau das möchte ich jetzt mit KooKooK versuchen. Es hat mehrere Hintergründe. Ein Ziel ist es auf jeden Fall, mein Portfolio weiter auszubauen, denn ich bin ja auf Jobsuche. Dann dachte ich mir, ich kann sicher noch einiges dazulernen und du vielleicht auch.

Dabei gibt es aber folgende Vorstellung meinerseits. Ich werde die Videos nicht scripten. Ich werde einfach loslegen, Fehler bleiben drin, damit wir was daraus lernen, Versprecher ebenso und alles, was so schief geht. Weiterhin möchte ich mich bei den Videos aber auch nicht nur auf das Coding konzentrieren. Ich möchte euch bei allen Dingen mitnehmen. Natürlich wird ein großer Teil die Programmierung sein, aber ich zeige euch auch, was ich als Projektverwaltung benutze, wir richten die Website ein, scribbeln, malen/zeichnen und machen all das, was man ebenso macht, um eine kleine Software zu entwickeln.

Worum soll es gehen? Ich habe lange überlegt. Soll ich was mit Datenbanken machen? Soll ich was mit Netzwerkprogrammierung machen? Soll ich Websitekram machen? Soll ich ein Spiel programmieren? Die Antwort war einfach: Ja. Mein Ziel ist es, einen grafischen Chat zu entwickeln, der mit Avataren in einer künstlichen Welt funktioniert. Da haben wir Spieleentwicklung, Netzwerkentwicklung, Datenbankentwicklung, Protokollentwicklung, eine Website soll es auch geben, es wird spannend. Und da ich mir vor vielen Jahren bereits die Domain KooKooK.org gesichert habe, wird das Projekt jetzt einfach mal so heißen.

Welche Tools eingesetzt werden, kann ich jetzt noch nicht sagen. Es wird auf jeden Fall C++-lastig, wahrscheinlich Qt, weil ich auch mobile Plattformen wie iPhoneOS, iOS und Android unterstützen möchte. Den Code werde ich auf GitHub lagern, so dass ihr mit daran entwickeln könnt.

Und jetzt geht es los. Ich wünsche euch und auch mir viel Spaß dabei.

Hier geht es zur Playlist.

Und hier zum ersten Video.

Hier geht es zur Website.

Hier geht es zum GitHub-Repository.

Hier geht es zum Redmine-Projekt.

Warum ich für neue Projekte eher Qt als wxWidgets nutze

Wir schreiben das Jahr 2005. Mein Arbeitgeber möchte eine neue Software erstellen und wir sind dafür auf der Suche, nach einer nahezu plattformunabhängigen GUI-Bibliothek.

Wir beginnen, mit Qt herumzuspielen und sind begeistert. Bis wir Lizenz und Preise sehen. Schweren Herzenz begaben wir uns auf die weitere Suche und stießen irgendwann, eigentlich recht schnell und ich weiß gar nicht mehr, warum, auf wxWidgets.

Ich spielte einige Stunden, nein Tage und dann auch Wochen, damit herum und war doch sehr angetan, schon alleine, da wxWidgets die GUI-Elemente (in der Regel) nicht selbst zeichnete, so wie es Qt wohl tat (und nicht mehr tut, wenn es nicht sein muss), sondern eine Abstraktion der nativen GUI-Bibliotheken war, die auf den Zielplattformen ohnehin zur Verfügung standen. Auf Windows also MFC, auf Linux/FreeBSD/ähnliche GTK, auf macOS zu der Zeit Carbon, mittlerweile Cocoa, und so weiter und so fort.

Die Programmierung verlangte aber eine höhere Einarbeitung ab, als Qt dies tat und viele Dinge mussten selbst implementiert werden, bsplw. Datenbankabstraktionsschichten mit Persistenzbibliotheken und vieles mehr. All das machte aber Spaß und wenn man es einmal hat – und natürlich auch richtig gemacht hat -, dann kann man es ja wieder verwenden.

So lief es und wir schrieben eine Software nach der anderen. GUI-Software, Systemsoftware, sogar etliche Websites und Backends schrieb ich mit wxWidgets und meinen eigenen Bibliotheken. Ich war schnell, effizient, glücklich.

Doch ich empfand es immer als anstrengend, wxWidgets auf anderen Plattformen als FreeBSD (oder manchmal auch Linux) zu benutzen. Auf FreeBSD reichte sowas wie “c++ *.cpp -o MeinProgramm `wx-config --libs --cppflags`”. Auf anderen Plattformen wie Windows und macOS war es halt kompliziert. Auf Windows mussste (und muss) man noch selbst gegen etliche Bibliotheken linken, auf macOS muss man das Bundling selbst schreiben und Bibliotheken bei der Auslieferung umbiegen. Nervig, ätzend.

Nachdem ich aber für kurze Zeit bei CGM anheuerte und die mit Qt einiges machten, setze ich mich, im Wissen darüber, dass die Lizenz nun liberaler geworden war, noch einmal ausgiebig damit auseinander. Mein Herz ging auf. Ich begann nicht nur, mich mit der Materie mehr zu beschäftigen, ich entwickelte die ersten Projekte darin.

Qt bringt für eltiche Systeme einen Installer mit und Programme und Scripts, die einem das Leben immens vereinfachen.

QtCreator

Es kommt eine komplette IDE, der QtCreator, mit, mit der man seine Programme entwickeln kann. Es wird ein GUI-Designer und vieles mehr mitgeliefert und auch das Deployment auf anderen Plattformen ist integriert und ein Kinderspiel.

Doch das ist nicht alles. Qt ist groß. Es deckt eine Menge ab. Von Netzwerkkommunikation über Datenbankhandling und GUI bis hin zur Entwicklung von Software für Android und iOS. Der (oftmals) selbe Code kompiliert unter allen Plattformen, so dass eine Crossplattformentwicklung relativ einfach (naja, nicht immer) möglich ist.

Aber was sagt die Lizenz? Bei wxWidgets ist es letztlich so: nimm und mach, erwähne uns. Bei Qt muss ich, wenn ich Änderungen am Qt-Code mache, diese auch freigeben. Eigene Software allerdings darf ich ohne Code herausgeben. Klingt das fair? Ja.

Noch eine Sache: Mit QML bringt Qt ein (weiteres) unglaublich mächtiges Werkzeug. Damit lassen sich die grafischen Oberflächen bis ins kleinste designen und anpassen, Abläufe definieren und Layouts für unterschiedliche Dinge entwerfen.

Die große Community hilft bei Problemen und es gibt einige Anwendungssoftware, die mit Qt umgesetzt ist.

Schaut es euch einmal an.