was war euer schönstes Projekt?



  • Was war euer schönstes Projekt, das ihr jemals mit C++ gemacht habt?
    Notfalls auch irgendetwas Hobbymäßiges, da ich nicht weiß, ob ihr über manche Dinge aus der Arbeit bekannt geben dürft😃



  • Was meinst du mit schön?



  • @Mechanics Also mit schön meine ich, was euch am besten gefallen hat oder was ihr von der Idee am besten fandet



  • Das ist nicht so leicht zu beantworten... Fängt schon mit dem Begriff "Projekt" an 😉 Was wir in der Arbeit machen, könnte man z.B. als ein Projekt bezeichnen, da wird schon seit Jahrzehnten dran gearbeitet. Man könnte aber auch sagen, so 1-5 Tage Teilaufgaben, die man so macht, sind auch Projekte.
    Und wenn ich mir überlege, was mir am meisten Spass gemacht hat, dann hat es weniger mit den Projekten/Aufgaben an sich zu tun (wobei ich die Aufgaben bei uns schon sehr interessant finde), sondern meist mit einer eleganten (komplizierten) Lösung, die unabhängig von der konkreten Aufgabe ist. Also, z.B. statt relativ viel stupidem Boilerplate Code zu schreiben, eine kompliziertere, aber viel elegantere/kürzere/schnellere TMP Lösung.



  • @Mechanics das stimmt schon Projekte können alles sein😉



  • @Mechanics sagte in was war euer schönstes Projekt?:

    sondern meist mit einer eleganten (komplizierten) Lösung

    Genau. Das sind eigentlich auch so die Dinge, die mir im Kopf bleiben. Irgendwelche Lösungen, an denen man getüftelt hat und bei denen am Ende ein richtig geiler Quellcode rauskam ( subjektiv ). Ich habe auch ein paar Module, die ich mir immer wieder gern ansehe.
    Meist sind Template Parameter Packs dabei, bzw. Funktionstemplates im allgemeinen. Diese Features können Quellcode für mich "sexy" machen, aber andere auch. Aber bei den "geilen Lösungen" gibt es bei mir schon eine statistische Häufung bei den genannten Features 😎



  • Es gab bei mir ein paar Sachen. Aber was ich in letzter Zeit ziemlich geil fand, war ein recht einfaches Refactoring in, nicht von mir stammenden, Altcode. Ich konnte Datenbank Zugriffe aus einer der Hauptberechnungsschleifen eleminieren und damit eine Laufzeitreduzierung von über 90% erziehlen.
    Btw auch ein gutes Beispiel für das, was der Optimizer alles leisten kann, wenn man ihm die Chance dazu gibt.



  • @Schlangenmensch sagte in was war euer schönstes Projekt?:

    Refactoring in, nicht von mir stammenden, Altcode

    Ok, wenn es mega erfolgreich war, dann verstehe ich deine Freude daran. Normalerweise finde ich, zählt das zu den schlimmsten Aufgaben überhaupt.



  • @Jockelx Gehört eigentlich auch nicht zu meinen Lieblingsaufgaben. Aber wenn sich eine Stelle vom Flaschenhals zu in der GUI nicht mehr wahrnehmbar verschiebt, stellt sich doch ein gewisses Erfolgsgefühl ein 😉



  • Das hatte ich auch mal bei einem Projekt: da wurde beim Aufruf eines Fensters eine Datenbankabfrage gemacht, welche nur testen sollte, ob überhaupt Daten vorhanden sind (SELECT count(*) WHERE ...) - bei einer Tabellengröße von einer Million Daten dauerte die Abfrage dann jedesmal über eine Minute, bevor ich diese Abfrage dann optimiert hatte ;-).



  • Mein schönstes Projekt war eine Video-Jukebox. Alter Code zu dem ich erstmal eine neue GUI entwickelt habe (auf DX9 Basis), und dann im Backend einiges neu gemacht/refactored/erweitert. Was mir daran am besten gefallen hat war dass man etwas "greifbares" hatte -- ich konnte jedes neue Feature auf die Box spielen und dort direkt ausprobieren. Und natürlich dass es irrsinnig vielseitig war, da ich an vielen verschiedenen Teilen des Systems gearbeitet habe. Vom System das die HDD/SSD partitioniert und die Software aufspielt über die GUI, die lokale Song-Datenbank bis zu (sehr einfachem) Audio-Processing bzw. Troubleshooting diverser Hardwarekomponenten. Und noch zig andere Dinge.

    Dass Musik für mich einen grossen Stellenwert hat und ich Jukeboxen cool finde hat dabei sicher auch geholfen 🙂



  • Mein schönstes Projekt war meine Diplomarbeit, da habe ich eine alte Heimorgel mit 2 Manualen (Tastaturen) midifiziert und dann zu einer "Midiworkstation" ausgebaut.
    Die Zentraleinhait war ein 486 PC, ursprünglich war das mal ein selbstentwickeltes 68000er System, der Prof wollte aber Intel und ausserdem war das zu dem Zeitpunkt auch schon viel günstiger und schneller geworden, als das 68000er System, das nur mit 10Mhz lief.

    Dafür habe ich dann eine Schnittstellenkarte mit 7 Midischnittstellen für entwickelt. Für die ganzen Bedienelemente und die Displayansteuerung war noch selbstentwickeltes 6502 System verbaut, welche dann mit dem 486er auch über diese Schnittstellenkarte kommuniziert hat.

    Die Software konnte 6 x16 Midi Eingangskänale beliebig auf 6 x16 Midi Ausgangskanäle verteilen und auch versechsfachen, d.h. jede Midimessage an einen Eingang konnte man parallel auf bis zu 6 Ausgangskanäle versenden lassen. Weiterhin konnte man diese auch Filtern und die Midi- Tastaturen mehrfach splitten.

    Man konnte komplette Instrumentierungen abspeichern, heisst, du hast mehrere MidiExpander daran angeschlossen und mit einen Knopfdruck wurden alles so programmiert, dass das gewünschte Instrumentset wiedergegeben wird.

    Es gab auch eine Akkorderkennung, eine Begleitautomatik mit bis zu 8 Intros/Endings, 7 Fill Ins und die Möglichkeit, für die "Akkordabwandlungen" zu Moll, Vermindert und Septime jeweils eine eigene BegleitSpur zu definieren, die Anzahl der Spuren war beliebig. Die Ausgabe erfolgte auch über Midi.

    Weiterhin konnte auch beim Spielen der Melodie der gegriffene Akkord automatisch unterlegt werden, d.h. du hast nur eine Taste gedrückt und es erklang automatisch ein ganzer Akkord, man konnte sogar für jeden einzelnen Ton des Akkord den Midikanal festlegen.

    Das ganze habe ich seinerzeit (1995-1996) in Borland C++ 3.1 unter DOS programmiert. Und das läuft sogar heute noch.

    Das letzte Kundenprojekt war auch sehr schön, eine auf svg Grafiken basierte Visualisierung, musste mir dafür einen eigenen svg Interpreter programmieren, weil der ein paar spezielle Features benötigte. Der Kunde kann seine Bilder mit Inkscape entwerfen und dann einfach den entsprechenden Element spezielle Attribute geben, um diese als Anzeige für Zustände nutzbar zu machen. Als Grafikbibliothek benutze ich dafür GDI+. Das ganze habe ich mit dem Rad Studio 10.2.3 Tokyo in 64 Bit entwickelt.



  • Gut, meine Diplomarbeit war vom Thema und vom Ergebnis her auch interessant und erfolgreich, aber damals war ich noch nicht so ein versierter Programmierer, daher würde ich den Quellcode vermutlich heute nur noch als Brechmittel benutzen 😉 Aber er hat seinen Zweck erfüllt 😉



  • @Burkhi
    Warum nutzt du Rad Studio, aus Gewohnheit, da du schon früher mit Borland was gemacht hast, oder gibt es andere Vorteile gegenüber z.B. Visual Studio und Qt?



  • Neben der Video- und Audiokompression durch ein vorgegebenes Musteralphabet, Fuzzy-Logic-Matching und der Ziv-Lempel-Kompression der Indexangaben dort rein... was ja auch der Hammer ist, weil es genauso gut funktioniert wie MPEG... bin ich besonders glücklich darüber, daß ich endlich in der Lage wäre, ein Lucas-Arts-Adventure und eine GUI zu programmieren. Leider paßt der Quelltext hier nicht ganz rein, deswegen gebe ich hier einfach den Pastebin-Link zu meiner Ausarbeitung:
    Link Text



  • Die schönsten Projekte sind immer die, die man selbst gemacht hat. Nichts ist schlimmer als Code von anderen Programmierern anfassen zu müssen oder Aufträge runter zu coden.



  • @VincentG sagte in was war euer schönstes Projekt?:

    Nichts ist schlimmer als Code von anderen Programmierern anfassen zu müssen

    Weiß nicht... Ich hab z.B. öfter schon fremden Code optimiert, teilweise ohne den zu verstehen. Und es war durchaus auch "schön", fremden Code mal um mehrere Größenordnungen optimiert zu haben.
    Oder mal zur Abwechslung in third party Komponenten rumdebuggen, und evtl. mal was fixen oder anpassen. Finde ich teilweise durchaus auch interessant.



  • @VincentG sagte in was war euer schönstes Projekt?:

    Nichts ist schlimmer als Code von anderen Programmierern anfassen zu müssen oder (snip)

    Naja kommt drauf an wie dieser Code anderer Programmierer aussieht. Auf jeden Fall hasse ich es auch unwartbare Katastrophen von anderen zu warten/erweitern. Wenns der eigene Code ist hat man es wenigstens selbst verbrochen, aber so denk ich mir immer ich muss den Scheiss da jetzt ausbaden nur weil "die" zu blöd/feige/faul/whatever waren es ordentlich zu machen.


Anmelden zum Antworten