Was treiben die Hobby Programmierer denn so ?

Meistens versuche ich mir irgendwelche kleine Tools mit diversen Frameworks / Sprachen zu basteln um einfach möglichst viele Dinge einfach mal gemacht oder gesehen zu haben. Alles was irgendwie dazu beiträgt, den eigenen Horizont zu erweitern. Sei es ein kleiner Client zur Verwaltung der Musiksammlung in Elektron, die tausendse Variante von Snake in Python oder einfach irgendwas in C++ um nicht einzurosten wenn man sonst auf der Arbeit nur in Java unterwegs ist 8).
 
JP-M schrieb:
oder einfach irgendwas in C++ um nicht einzurosten wenn man sonst auf der Arbeit nur in Java unterwegs ist 8).
Ansonsten mal auf Kotlin stürzen. :p

Ich entwickle derzeit auch immer wieder an eigenen Android Apps und bin komplett auf Kotlin, neusten Pre-Release Tools etc. unterwegs, damit ich weiß worauf ich beruflich einstellen kann.
Mindestens eine der Apps soll auch ein bisschen als Portfolio dienen wenn ich mich beruflich nochmal neu umsehe. Dadurch wird diese aber gefühlt auch nie fertig weil ich die erste Version schon möglichst perfekt haben möchte.:D
 
  • Gefällt mir
Reaktionen: JP-M
Einstmals RBE, heute überwiegend grafische Spielereien, teils in VB, teils in C.

Ein multi-threaded Mandelbrot-Renderer:
Mandelbrot.png


Voronoi-Diagramme mit Delaunay-Triangulation:
Voronoi.png


Die Voxelspace-Engine des alten DOS-Spieles "Comanche", multi-threaded:
Voxelspace.png


Physiksimulation mit Verlet-Integration (wer sich traut, ne random binary ausm Internet auszuführen, dieses Programm habe ich mal angehängt, den Vorhang "verwirbeln" mittels linker Maustaste):
Verlet.png


Eine Käsekästchen-Implementierung, die man gegen einen (inzwischen ziemlich stark spielenden) Computergegner spielt:
Dots.png


Für mich selbst ein kleines Programm, das im Hintergrund läuft, in regelmäßigen Zeitabständen die Kurse einer Liste von Aktien abruft und mir Bescheid sagt, falls es starke Bewegungen gibt. Im Grunde nix Dolles, aber ich arbeite jeden Tag damit. Mittlerweile habe ich etliche Funktionen hinzugefügt, z.B. zur schnellen Chartanalyse sowie das Melden anstehender Börsentermine für alle hinterlegten Werte oder zum Abgleich der Watchlist mit meinem Depot bei der Consors-Bank. Hier mal ein paar Impressionen:
Kursalarm 3.png

Kursalarm 2.png

Kursalarm 1.png
 

Anhänge

  • Verlet.7z
    7,2 KB · Aufrufe: 355
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: kuddlmuddl, 7LZ, umask007 und 4 andere
Hi,
ich mach immer mal wieder an meinem "ProjektBoerse" Programm herum. Es ist ein Programm zur technischen Marktanalyse von Aktienkursen. Anfangs in VB.Net/WinForms/MSSQL/T-SQL, dann in C#/WPF/SQLite mit C# Scripting. Mittlerweile arbeite ich mich in RNN's/Reinforcement Learning in Python (pytorch) ein. Mal sehen was da noch draus wird...
 
@BAGZZlash finde deine Sachen bis jetzt am besten sollte ev auch mal anfangen Guis ein zu bauen aber da fehlt mir zum Schluss immer die Muße zu.
 
  • Gefällt mir
Reaktionen: BAGZZlash
G00fY schrieb:
Ansonsten mal auf Kotlin stürzen. :p

Als Kotlin "neu" war hatte ich noch ein Windows Phone. Das sollte ich mir in der Tat noch mal anschauen.. alleine weil ich so viele Ideen für kleine Apps für den Eigengebrauch hab.
 
Hier mal noch ein kleiner Nachschlag.

Aus der Kategorie Grafik: Ein bis zur letzten Berechnung komplett selbstimplementierter und konfigurierbarer Software-Renderer, der 3D-Objekte im .obj-Format einliest und dreht.
01 OBJ.png


Rudimentäres Raytracing, work in progress.
02 Raytracing.png


Eher im Bereich theoretische Informatik/Algorithmik angesiedelt: Ein Programm, das "perfekte" Irrgärten generiert (iterativ, stackbasiert).
03 Maze.png


Ich musste mal für ein Projekt große Mengen an nächsten Nachbarn von Punkten finden. Mit paarweise euklidischen Distanzen (Pythagoras) wurde das irgendwann zu langsam, so dass mir jemand den Tipp gegeben hat, stattdessen mit einem Quadtree zu arbeiten (lernen Informatikstudenten wohl im ersten Semester). Ist echt deutlich schneller und skaliert viel besser.
04 Quadtree.png


Ein simplifiziertes Pokerspiel gegen den Computer auf Basis von von-Neumann/Morgenstern-Nutzenfunktionen.
05 Poker.png


Die tausendste Snake-Variante, hier mit einem selbst ausgedachten, interessanten Zweispielermodus.
06 Snake.png


Kleines Background-Tool: Ich nutze dynDNS. Eigentlich soll mein Router es wohl selbst können, die eigene IP regelmäßig an den dynDNS-Server zu melden, aber ich hab's nicht hinbekommen. Stattdessen habe ich mir dieses kleine Tool geschrieben, das auch noch die öffentliche IP ausliest und mit der vergleicht, die der dynDNS-Server zurückgibt, um stets abschätzen zu können, ob der Rechner von außen erreichbar ist. Ich weiß, dass es da tausende fertige Tools dafür gibt, aber keins davon hat diesen IP-Abgleich eingebaut.
07 dynDNS.png
 
  • Gefällt mir
Reaktionen: 7LZ, T_55, areiland und eine weitere Person
Als Familienvater frage ich mich unwillkürlich (und etwas neidisch): Woher nimmst du die Zeit für die ganzen Projekte? :D

Gruß Jens
 
Hehe. Naja, so viel Zeit fressen die gar nicht, und das sind ja auch gesammelte Werke über viel Zeit hinweg. Beispielsweise das 3D-Programm ist ursprünglich von 2012, seitdem mache ich nur hin und wieder was, wenn mir was Schönes einfällt. Käsekästchen genauso, ist eigentlich von 2010.
 
Beruhigend. ;)

Da ich noch nicht so lange dabei bin, ist die Anzahl meiner Projekte sehr überschaubar. Zudem neige ich dazu, mich eher an einem Projekt festzubeißen als etwas Neues anzufangen. An dem Lexer für meinen Editor oben tüftele ich beispielsweise schon seit fast zwei Monaten, und erst jetzt nähert er sich langsam dem Ergebnis, das ich mir wünsche...

Gruß Jens
 
  • Gefällt mir
Reaktionen: BAGZZlash
uburoi schrieb:
Beruhigend. ;)
Zudem neige ich dazu, mich eher an einem Projekt festzubeißen als etwas Neues anzufangen.
Gruß Jens
Besser so als Dutzende unfertige Sachen.

Hier mal noch paar Bilder von einem Raymarching Shader Mengerschwamm und 3d Mandelbrot wobei das Mandelbrot unter die Kategorie copy and past fällt was die Volumenberechnung angeht :p
basic_1.jpg
spone_1.jpgspone_2.jpgmandelbulb_1.jpgmandelbulb_2.jpg

Werde mir als nächstes die Verlet Integration anschauen das sieht schon toll aus.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: T_55 und BAGZZlash
Da fallen mir noch zwei Sachen ein:
Um 1992 dürfte es gewesen sein, da habe ich dreidimensionale Gitternetze von mathematischen Formeln berechnen und darstellen lassen. Das waren irgendwelche Formeln mit x y und z. Ich glaube, dass ich es in Basic oder Pascal programmiert hatte. Die Grafikausgabe erfolgte über eine 2D-Bibliothek. Die 3D-Darstellung musste ich also selbst umrechnen auf 2D-Punkte. Man konnte für x y und z den min und max Wert angeben und auch die Gitterbreite. Sah echt cool aus, dauerte aber mit meinem 8088er damals mehrere Minuten für einen Durchlauf. Ein Freund hatte es damals auf seinem Atari ST ebenfalls programmiert und dort war es um ein Vielfaches schneller.

Später (ca. 1997?) hatte ich mal eine Pyramide so dargestellt, die ich bewegen und drehen konnte. Man konnte sie fliegen, wie ein Flugzeug Die Schattierungen habe ich dabei selbst berechnet und auch die Bewegungen wurden über mathematische Skalare berechnet.

Screenshots habe ich leider keine mehr.
 
  • Gefällt mir
Reaktionen: 7LZ und BAGZZlash
wahli schrieb:
Da fallen mir noch zwei Sachen ein:
Um 1992 dürfte es gewesen sein, da habe ich dreidimensionale Gitternetze von mathematischen Formeln berechnen und darstellen lassen.

Also so um 1986 rum hat das noch jeder gemacht. Spectrum abends gestartet und morgends....lief das dumme Ding immer noch. Also Mittags nach der Schule nochmal geschaut und wenn er nicht abgestürzt und fertig war den ZX-Drucker angeschmissen und ein wenig Ozon produziert. Mist, ich glaube ich habe die Ausdrucke weg geschmissen.
A pro pos: Mein zweites Programmierprojekt (das erste war gar zu peinlich, bleibt unerwähnt) war ein virtuelles Z80-Entwicklerboard inklusive Register und IO in ZX-Basic. Ich könnte heute vermutlich den Spectrum emulieren mit dem ich das Board emuliere und dabei in der emulierten Emulation auf ein paar Kiloherz kommen. Yeah.
 
  • Gefällt mir
Reaktionen: 7LZ und BAGZZlash
1989 - ich versuche zunächst enthusiastisch (später verzweifelt) auf dem CGA-Display des Schneider-PC in Turbo Basic 1.0 Kreise zu malen, die nicht oval aussehen ;)
 
  • Gefällt mir
Reaktionen: BAGZZlash, wahli und areiland
michi.o schrieb:
Ich versuche gerade die Exe Datei von "Commands - Behind Enemy Lines" in C# neu zu schreiben (ich weiss, bald kommt der Remaster)...

Kannst du das ein wenig näher beschreiben? Finde ich persönlich ganz interessant :)
 
belafarinrod91 schrieb:
Kannst du das ein wenig näher beschreiben? Finde ich persönlich ganz interessant
Die Beschreibung samt Screenshots ist hier:
https://github.com/michi84o/WargameLib

Im Moment geht da noch nicht viel. Man kann nur die Texturen anschauen und die Polygone der Karte werden gezeichnet. Da sind einige interessante Sachen in den Dateien wie z.B. 2 nie verwendete Waffen:
cmdTexturen.png
Ich versuche erst mal die Dateiformate anhand einiger Wikis zu verstehen und entsprechende Parser zu schreiben. Aktuell ist der Level Viewer dran, der setzt aber noch die Texturen falsch:
cmdlib.png
Hab momentan keine Ahnung ob das je fertig wird. Ich arbeite nur ab und zu daran.
 
  • Gefällt mir
Reaktionen: Zespire, belafarinrod91 und blöderidiot
Danke dir :)

Ich schau mir das bei Gelegenheit mal an, habe da auch einen Klassiker (Stronghold), den ich für so ein Projekt nutzen könnte. Einfach nur, um sowas mal nachvollziehen zu können - wirklich spielbar würde es vermutlich niemals bei mir werden ;)
 
michi.o schrieb:
Ich versuche erst mal die Dateiformate anhand einiger Wikis zu verstehen und entsprechende Parser zu schreiben.
Da möchte ich mich direkt nochmal einklinken: Ich hatte vor einiger Zeit mal angefangen, mich dafür zu interessieren, wie man eine eigene (sehr simple) Programmiersprache implementiert. Einen Lexer zu schreiben, der den Quelltext in Tokens umwandelt, habe ich hinbekommen, aber an einem Parser bin ich schon im Ansatz gescheitert. (Leider kenne ich mich auch mit formalen Sprachen so gut wie nicht aus, was die Sache erheblich erschwert hat.)
Hast du vielleicht einen Tipp, wo ich mich einmal – sehr kleinschrittig erklärt – in das Funktionieren und Implementieren eines Parsers einarbeiten könnte? Was ich bislang im Netz gefunden habe, war sehr technisch und für mich als Nicht-Informatiker kaum verständlich, aber das Thema reizt mich nach wie vor …

Gruß Jens
 
  • Gefällt mir
Reaktionen: areiland
uburoi schrieb:
Hast du vielleicht einen Tipp, wo ich mich einmal – sehr kleinschrittig erklärt – in das Funktionieren und Implementieren eines Parsers einarbeiten könnte?
Das hängt von der Grammatik Deiner Sprache ab.

Ich hab auch noch nicht so ganz verstanden, was Dein Ziel ist. Primär zu lernen wie man Lexer und Parser schreibt, oder primär eine eigene Sprache zu implementieren.
Für letzteres gibt es ein recht ausgereiftes Ökosystem namens Racket. Dem zugrunde liegt ein Lisp (genauer gesagt Scheme-Dialekt). Der Vorteil bei Lisp ist, dass die Darstellung von Lisp-Ausdrücken schon sehr nahe an dem ist, was man als Syntaxbaum beim Parsen von Quelltext erzeugt.
Wobei dann Deine eigene Sprache jede beliebige Syntax haben kann und nicht zwangsläufig der ne lisp-artige Syntax haben muss.
 
Zurück
Oben