m.fuchs hat geschrieben: Do 16. Apr 2026, 20:23
thosch hat geschrieben: Do 16. Apr 2026, 18:35
m.fuchs hat geschrieben: So 15. Mär 2026, 13:28
Nö, das Geschäftsmodell dieser Konzerne rund um die Chatbots beruht genau darauf: Illegal Informationen die anderen Menschen erstellt haben zusammensammeln und gegen Geld wieder zur Verfügung stellen. Keine Entlohnung für die Urheber, völliges Ignorieren des Urheberrechts. Die zahlen eben keine 80, 100 oder mehr Euro.
Wer das unterstützt, sorgt dafür dass es eben irgendwann weniger oder gar nichts freies mehr gibt.
Was ist denn das für ne Diskussion?
Eine Diskussion, was stört dich denn daran?
thosch hat geschrieben: Do 16. Apr 2026, 18:35
Und was ist, wenn sich der KI User nur Programmiertipps aus der OpenSource Welt holt? Ist das auch verwerflich? Chatgpt gibt gar keine lizenzrechtlich gescützten Codes heraus!
1.) Wie holst du dir aus einem Chatbot (bitte nicht KI schreiben, das ist nämlich keine) nur Programmiertipps aus der Opensourcewelt? Also wie schränkst du die Datenquelle ein?
Gar nich, ich stelle einfach meine Frage:
Zum Beispiel:
Wie sieht der Original Windows Quellcode der API Funktion Arc() aus?
dann lautet die Chatgpt Antwort:
Der Originalquellcode der Windows-API-Funktion Arc()
ist nicht öffentlich zugänglich, da der Windows-Betriebssystemcode und die APIs proprietär sind und von Microsoft entwickelt und lizenziert werden. Microsoft stellt den Quellcode des Windows-Betriebssystems (einschließlich der API-Funktionen) nicht frei zur Verfügung.
Ich habe KEINE Idee, wie ich da irgendwelche Lizenzbetimmungen umgehen können sollte!
Jedoch können Sie eine Dokumentation zur Funktion Arc() in den offiziellen Microsoft-Dokumentationen finden. Die Funktion wird verwendet, um einen Bogen zu zeichnen, der durch einen bestimmten Bereich von Grad definiert ist. Die Signatur der Funktion sieht folgendermaßen aus:
BOOL Arc(
HDC hdc,
int left,
int top,
int right,
int bottom,
int xStartArc,
int yStartArc,
int xEndArc,
int yEndArc
);
Erklärung der Parameter:
hdc: Handle zu einem Gerätekontext (z. B. für ein Fenster oder eine Zeichnung).
left, top, right, bottom: Koordinaten des Rechtecks, das den Bereich des Kreises oder Ellipsen definiert.
xStartArc, yStartArc: Startpunkt des Bogens (relativ zum Rechteck).
xEndArc, yEndArc: Endpunkt des Bogens (relativ zum Rechteck).
eispiel in C:
#include <windows.h>
void DrawArc(HDC hdc) {
// Zeichnet einen Bogen von (50, 50) bis (200, 200)
Arc(hdc, 10, 10, 300, 300, 50, 50, 200, 200);
}
Quellen und Dokumentation:
Die Funktion Arc() wird in der Microsoft-Dokumentation
beschrieben.
Die eigentliche Implementierung des Windows-Betriebssystems ist nicht einsehbar, aber sie basiert auf den Systembibliotheken und Grafikroutinen, die Microsoft für das Betriebssystem entwickelt hat.
Wenn Sie eine detailliertere Implementierung oder einen Blick auf den Windows-Code selbst wünschen, können Sie die Windows Insider Preview-Quellen
für bestimmte Open-Source-Komponenten durchsehen. Aber der Quellcode der grundlegenden Windows-APIs, insbesondere der Grafikfunktionen, bleibt unter Verschluss.
Hoffentlich hilft das! Wenn du noch mehr Fragen zu Windows-APIs oder spezifischen Grafikfunktionen hast, lass es mich wissen.
Hier noch ein Beispiel wie ich mir Programmiertips holen könnte:
gib mir ein Prgramm zur Ausgabe einer Ellipse in Freepascal
Um eine Ellipse in FreePascal zu zeichnen, kannst du die Graphikbibliothek verwenden, die das Zeichnen von grundlegenden Formen wie Linien, Kreisen und Ellipsen ermöglicht. In FreePascal ist dies über die Unit Graph möglich.
Hier ist ein einfaches Beispielprogramm, das eine Ellipse in einem Fenster zeichnet:
Schritt-für-Schritt Anleitung:
Stelle sicher, dass du FreePascal (z.B. über Lazarus) auf deinem System installiert hast.
Erstelle ein neues Konsolenprojekt und stelle sicher, dass du die Unit Graph in deinem Projekt verwendest.
Beispielcode:
program EllipseExample;
uses
Graph;
var
gd, gm: Integer;
begin
{ Initialisiere den Grafikmodus }
gd := Detect; { Ermittelt den Grafikmodus }
InitGraph(gd, gm, '');
{ Überprüfe, ob der Grafikmodus korrekt gestartet wurde }
if GraphResult <> grOk then
begin
WriteLn('Grafikmodus konnte nicht initialisiert werden.');
Halt(1); { Beende das Programm, wenn die Initialisierung fehlschlägt }
end;
{ Zeichne eine Ellipse: }
{ Die Syntax für Ellipse ist: Ellipse(x, y, rx, ry); }
{ x, y: Mittelpunkt der Ellipse, rx, ry: Halbachsen (horizontal und vertikal) }
Ellipse(320, 240, 0, 360, 100, 50); { Ellipse mit Mittelpunkt (320, 240) und Halbachsen 100 und 50 }
{ Warte auf eine Taste, bevor das Fenster geschlossen wird }
ReadLn;
{ Beende den Grafikmodus und schließe das Fenster }
CloseGraph;
end.
Erklärung des Programms:
Graph-Unit: Diese Unit stellt die Funktionen bereit, um Grafiken zu erstellen.
InitGraph: Diese Funktion startet den Grafikmodus. Die Variablen gd und gm werden verwendet, um den Grafikmodus und Treiber zu definieren. Detect lässt den besten verfügbaren Grafikmodus automatisch erkennen.
Ellipse(x, y, startAngle, endAngle, rx, ry): Diese Funktion zeichnet eine Ellipse mit Mittelpunkt (x, y) und den Halbachsen rx und ry. Die Parameter startAngle und endAngle definieren den Bogen (in Grad), den du zeichnen möchtest – im Fall von 0 bis 360 wird eine komplette Ellipse gezeichnet.
CloseGraph: Beendet den Grafikmodus und schließt das Fenster.
Weitere Anpassungen:
Du kannst die Größe der Ellipse ändern, indem du die Werte von rx (horizontaler Radius) und ry (vertikaler Radius) anpasst.
Der Mittelpunkt (320, 240) kann ebenfalls geändert werden, um die Ellipse an einer anderen Position im Fenster zu zeichnen.
Hinweise:
Dieses Beispiel geht davon aus, dass du einen PC mit einer passenden Grafikbibliothek hast, die von FreePascal unterstützt wird (z.B. DOSBox, Windows, oder X11).
Falls du mit einem grafischen Benutzerinterface wie Lazarus arbeitest, könnte die Implementierung ein bisschen anders sein, da Lazarus auch eigene grafische Widgets bietet.
Viel Spaß beim Programmieren! Wenn du Fragen hast oder weitere Anpassungen benötigst, lass es mich wissen!
Wie könnte das mit Windows Grafik aussehen?
Wenn du in FreePascal unter Windows eine Ellipse zeichnen möchtest, kannst du dafür die Windows API direkt verwenden, um mit der GDI (Graphics Device Interface) zu arbeiten. Die Windows GDI bietet Funktionen zum Zeichnen von Formen, Text und Bildern auf Fenstern und in Grafikkontexten.
Um eine Ellipse unter Windows zu zeichnen, kannst du die Funktionen der Windows-API wie CreateWindow (um ein Fenster zu erstellen), GetDC (um den Grafikbereich zu erhalten) und Ellipse (um die Ellipse zu zeichnen) verwenden.
Hier ist ein einfaches Beispiel in FreePascal, das ein Fenster öffnet und eine Ellipse darin zeichnet:
Beispielprogramm in FreePascal für Windows:
program DrawEllipseWindows;
uses
Windows, Messages;
var
wc: WNDCLASS;
hwnd: HWND;
msg: MSG;
hdc: HDC;
ps: PAINTSTRUCT;
{ Die Fenster-Prozedur, um die Nachricht zu verarbeiten und die Ellipse zu zeichnen }
procedure WndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM); stdcall;
begin
case Msg of
WM_PAINT:
begin
hdc := BeginPaint(hWnd, ps);
{ Zeichne eine Ellipse: Ellipse(hdc, left, top, right, bottom) }
Ellipse(hdc, 50, 50, 400, 300); { Beispiel Ellipse mit diesen Koordinaten }
EndPaint(hWnd, ps);
end;
WM_DESTROY:
PostQuitMessage(0);
else
DefWindowProc(hWnd, Msg, wParam, lParam);
end;
end;
begin
{ Registrierung der Fensterklasse }
FillChar(wc, SizeOf(WNDCLASS), 0);
wc.lpfnWndProc := @WndProc; { Setze die Fenster-Prozedur }
wc.hInstance := GetModuleHandle(nil);
wc.lpszClassName := 'EllipseClass';
wc.style := CS_HREDRAW or CS_VREDRAW;
if RegisterClass(wc) = 0 then
begin
MessageBox(0, 'Fensterklasse konnte nicht registriert werden!', 'Fehler', MB_ICONERROR);
Halt(1);
end;
{ Fenster erstellen }
hwnd := CreateWindow('EllipseClass', 'Ellipse Zeichnen', WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 500, 400,
0, 0, wc.hInstance, nil);
if hwnd = 0 then
begin
MessageBox(0, 'Fenster konnte nicht erstellt werden!', 'Fehler', MB_ICONERROR);
Halt(1);
end;
{ Fenster anzeigen }
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
{ Nachrichten-Schleife }
while GetMessage(msg, 0, 0, 0) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end.
Erklärung des Programms:
Fensterklasse registrieren:
Zuerst wird eine Fensterklasse mit der Funktion RegisterClass registriert, die das Verhalten des Fensters definiert. Die WndProc-Prozedur wird als Fenster-Prozedur angegeben, die alle Nachrichten verarbeitet.
Fenster erstellen:
Mit der Funktion CreateWindow wird ein Fenster basierend auf der registrierten Fensterklasse erstellt. Wir definieren das Fenster als WS_OVERLAPPEDWINDOW, was ein einfaches, standardmäßiges Fenster ist.
Ellipse zeichnen:
In der WndProc-Prozedur, die auf das WM_PAINT-Ereignis reagiert, verwenden wir die Funktion Ellipse, um eine Ellipse zu zeichnen. Die Funktion erwartet die folgenden Parameter:
hdc: Der Grafikgerät-Kontext (HDC), der zum Zeichnen auf das Fenster verwendet wird.
left, top, right, bottom: Die Koordinaten des Rechtecks, das die Ellipse umgibt.
Nachrichtenschleife:
Die GetMessage-Schleife verarbeitet Windows-Nachrichten und sorgt dafür, dass das Fenster auf Benutzeraktionen reagiert und gleichzeitig die Ellipse angezeigt wird.
Details:
WM_PAINT: Wenn das Fenster neu gezeichnet werden muss (z. B. nach Minimieren und Wiederherstellen), wird diese Nachricht gesendet. Daraufhin wird die WndProc-Prozedur aufgerufen, um die Ellipse zu zeichnen.
BeginPaint und EndPaint: Diese Funktionen sind notwendig, um sicherzustellen, dass der Bereich zum Malen korrekt behandelt wird und alle Malvorgänge ordnungsgemäß abgeschlossen sind.
Ellipse(hdc, 50, 50, 400, 300): Dies ist der eigentliche Malbefehl. Hier wird eine Ellipse gezeichnet, deren Bounding-Box durch die Koordinaten (50, 50) (oben links) und (400, 300) (unten rechts) definiert wird.
Weitere Anpassungen:
Du kannst die Koordinaten der Ellipse anpassen, um sie an einer anderen Stelle oder in einer anderen Größe zu zeichnen.
Du könntest auch andere Formen oder zusätzliche Elemente hinzufügen, um dein Fenster zu erweitern.
Voraussetzung:
Dieses Programm benötigt FreePascal mit Windows-Support. Wenn du in einer IDE wie Lazarus arbeitest, sollte dieses Programm auf Windows gut funktionieren.
Ich hoffe, das hilft dir weiter! Wenn du weitere Fragen hast oder Anpassungen benötigst, lass es mich wissen!
Welcher Code ist davon lizenzrechtlich fragwürdig?
m.Fuchs hat geschrieben:
2.) Die Informationen werden kaum aus OpenSource-Quellcodes generiert, was man ja vielleicht noch unter der Lizenz als erlaubt ansehen könnten, sondern aus ganz vielen anderen Quellen, die dem nie zugestimmt haben.
3.) Woher weißt du dass keine lizenzrechtlich geschützten Codes verwendet wurden? Es wurden schon soviele illegale Datenquellen für die Trainingsdaten der LLM gefunden, da würde ich das nicht ausschließen.
Siehe oben. Bei der Frage nach Widows Quellcode verweigert Chatgpt die Antwort konkret und gibt nur das dokumentierte Windows API preis.