Grundsätzlich kann die Methode nur am Request Header zweifelsfrei bestimmt werden (oder natürlich einer Dokumentation/Client-Code/der API-Implementation). Wenn lediglich URLs gegeben sind, kann man höchstens versuchen, ein naheliegendes Urteil zu fällen. Bei einer erkennbaren Konvention / aussagekräftigen URLs kann das sogar klappen, doch das ist in deinem Fall meiner Meinung nicht so wirklich gegeben.

Ich würde es bei der Beantwortung der Aufgaben erst einmal nicht bei einem Haken belassen, sondern in jedem Fall einen kurzen Satz als Begründung dazuschreiben, um für den Fall einen Diskussionsraum zu öffnen. Auch wenn das dem Aufgabensteller vielleicht nicht gefallen mag, kann er dich im Nachgang nicht allzu einfach abwiegeln und muss sich gegebenenfalls nochmal selbst mit seiner Aufgabenstellung auseinandersetzen.

Anschließend kann man sich wohl nur daran orientieren, ob eine der URLs einen Querystring hat oder nicht und das als logische Grundlage nehmen, um GET-Requests herauszufiltern. Das wären die Antwort 2 und 4.

Nummer 1 ist nicht eindeutig zuordbar, daher sind es entweder POST/GET/DELETE (bei multiple-choice) oder nichts von alledem. Das Gleiche gilt für Nummer 3. Hierbei sollte beachtet werden, dass nr=211002&unr=011 ein Ordnername ist, kein Querystring. Dazu fehlt ein führendes Fragezeichen.

...zur Antwort
Informatik (Schule) erstes Java Projekt 3d Grafik + Pixelart zu schwer oder machbar?

Wer nicht lesen möchte guckt sich das beigefügte Video (Gameplay) an, inwiefern das machbar ist mit wenig Zeit.

Wir werden voraussichtlich in meinem Informatik Kurs ein Spiel programmieren. Jede einzelne Person ein eigenes. Ich hab nun aber noch nie mit Java gearbeitet und wollte fragen wie schwer es ist sich dort reinzufuchsen. Haben in der Schule mit java tutle und kara bisher gearbeitet und habe in Scratch so 30h an ein kleines Pixeladventure gearbeit (selber alles gezeichnet und animiert). Aber das war alles letztes Jahr, im Prinzip fange ich also wieder bei 0an.

Da ich auch die Grafik selber machen will (Charakterdesign, Animationen, Welt) wollte ich fragen wie schwer es ist. Ich wollte einen nach hinten gehenden Raum machen bei dem die Kamera dem Charakter nach hinten oder nach vorne folgt. Das selbe für einen weg von rechts nach links. Alles frei bewegbar.

ich füge mal gameplay von ANNO: Mutationem hier ein, so ähnlich möchte ich es haben, nur nicht so eine Crazy große Welt. (short story adventure eben)

https://www.youtube.com/watch?v=O0bkJArvYIE

wie sehr ist das zu hoch ambitioniert für ein Schulprojekt. Plane höchstens 30 Stunden Zuhause daran zu arbeiten (+30h für die künstlerischen Aspekte) und sonst haben wir ca 15h im Unterricht dafür.
Sollte ich lieber meine Ansprüche runterschrauben und was einfacheres machen, ein Spiel ohne 3d Perspektive? Habt ihr vielleicht Tipps von Tutorial Kanälen auf YouTube? Weiß noch nicht wie das Programm aussieht welches unser Lehrer geben wird, aber grundsätzlich erstmal java.

...zum Beitrag

Ich halte dein Ziel für zu hoch gegriffen. Das Erstellen der Assets dürfte dich bereits einiges an Zeit kosten und dann käme eben ein hoher Aufwand in die Einarbeitung sowie Recherche in Java (komplexer als Scratch/Kara) und zusätzlich einer Engine/Bibliothek hinzu, bei der du erst einmal schauen müsstest, wie du deinen geplanten Stil überhaupt einarbeiten kannst.

Ich würde dir empfehlen, stattdessen einen einfachen 2D-Platformer zu gestalten, bei dem deine Spielfigur nach links/rechts laufen und evt. auch springen kann.

Überlege dir eine kurze, einfache Story (vielleicht muss die Figur Objekte sammeln, um nach und nach verschiedene Wege/Aktionen freizuschalten, die zum Endziel führen) und welche Funktionen, Objekte, Assets (bei animierten Sprites sind die unterschiedlichen Zustände zu berücksichtigen) du dafür benötigst. Wenn du weißt, wie viel du für die Gestaltung von einer Grafik benötigst, kannst du ungefähr hochrechnen (evt. mit einem zusätzlichen Komplexitätsfaktor), wie viel du für weitere Grafiken brauchst. Mehr als 15-20h würde ich dafür erst einmal nicht einplanen. Sollte später doch noch Zeit sein, lassen sich immer Verbesserungsmöglichkeiten/Ansätze für Erweiterungen finden.

Konzentriere dich nach der Planung auf die Implementation der Basisfunktionen (laufen, springen, sammeln, Zeichnen von Grafikelementen/Sprites und Hintergrund, etc.), aber nutze dabei entweder Platzhalterbilder oder erstelle vorerst nur 1-2 Sprites, mit denen du ausreichend testen kannst. Grafiken u.ä. kannst du später immer noch erstellen/austauschen. Es ist daher nicht tragisch, wenn am Anfang des Projekts noch Rechtecke durch die Welt springen.

Für die Umsetzung wäre Processing geeignet. Es handelt sich dabei um eine eigene Programmiersprache, die auf Java basiert und für Einsteiger gestaltet wurde. Der wesentlichste Unterschied zu Java liegt darin, dass sie an sinnvoller Stelle Setup-/Boilerplate-Code reduziert, der für einen Anfänger eh nicht relevant ist bzw. erst vollends verständlich wird, sobald er sich über die Grundlagen hinaus mit objektorientierter Programmierung beschäftigt hat. Nichtsdestotrotz können Sketches bei Bedarf um Java-Klassen erweitert werden und andersherum kann man die Kernbibliothek von Processing ebenso in ein Java-Projekt einbinden, um ihre Funktionen mit reinem Java zu nutzen. Ersteres ist allerdings meist nicht nötig und auch Zweiteres würde ich vermeiden, wenn möglich. Generell gibt es in Processing ebenso Klassen und Objekte.

Sollte seitens deines Lehrers eine Vorgabe bestehen, dass ihr explizit mit Java arbeiten müsst, dann sprich es im Vorfeld mit ihm ab.

Neben der offiziellen Dokumentation kann ich diese Seiten als Lernquellen empfehlen:

  • Learning Processing
  • Einführungskurs von Prof. Dr. Kipp

Andere Optionen wären Greenfoot (sehr einfach, daher oft in Schulen genutzt) oder (schwerer) libGDX.

Bevor du überhaupt mit dem Projekt starten kannst, halte ich es für unausweichlich, dass du zumindest ein kurzes Tutorial zu den Sprachgrundlagen (Variablen, Operatoren, Kontrollstrukturen, Funktionen, Arrays) durcharbeitest. Ob nun zu Java oder Processing.

...zur Antwort

Was wirklich notwendig ist, würde ich von den Anforderungen an das Projekt abhängig machen.

Bei einer recht einfachen (statischen) Seite, die lediglich ein paar Graphen präsentieren soll, könnte die Kombination aus HTML und CSS bereits genügen. Einige vorgefertigte, anpassbare Komponenten liefern beispielsweise daisyUI oder Versoly UI.

Für die Datenvisualisierung könntest du chart.js oder d3 verwenden.

Die erstgenannte Bibliothek eignet sich, wenn dir die klassischen Diagrammtypen (Balken/Kreis/Linie/...) genügen, du nicht mit riesigen Datenmengen operieren musst und es ok ist, wenn die Daten auf einem Canvas gezeichnet werden. Dementsprechend ist es auch recht einfach, mit chart.js etwas fix auf die Beine zu stellen.

d3 wäre die bessere Wahl, wenn du mehr Anpassungsmöglichkeiten/Flexibilität benötigst, mit größeren Datenmengen umgehen musst oder die Diagramme im SVG-Format vorliegen müssen. Der Einarbeitungsaufwand ist daher natürlich auch höher.

Solltest du eine sehr dynamische, komplexere Webanwendung planen, die ihren Inhalt in Form einer SPA präsentiert, würde ich React empfehlen (oder direkt NextJS, sollte SEO eine wichtige Rolle spielen). Für das Rendern von Graphen gibt es an React-angepasste Bibliotheken wie Recharts, React D3 Library (d3-Basis) oder Victory.

...zur Antwort

Ein Honeypot ist ein System (oder eine zur Verfügung gestellte Funktion), welche/s potenzielle Angreifer anziehen soll, ohne aber, dass dabei Schaden für das Produktivsystem entsteht. Es kann der Filterung von Angriffen sowie der Verhaltensanalyse dienen.

Insofern ist deine Frage zu ungenau. Honeypots können in vielerlei Art für verschiedene Schnittstellen implementiert werden. Es könnte ein vollwertig eingerichteter Server sein, auf den Nutzer zugreifen können (z.B. ein SQL-Server hinter einem Webformular, welches SQL-Injections zulässt) oder ein Endpunkt, der einen anderen Endpunkt (der üblicherweise nicht öffentlich zugänglich sein sollte, z.B. die Login-Seite eines CMS, die Schnittstelle eines SSH-Servers) emuliert.

Praxis-Beispiel: Eine PHP-Webanwendung, die Nutzereingaben beobachtet

Suche dir einen Webhoster, der Webspace mit PHP-Unterstützung bietet. Auf den lädst du dein Formular hoch:

<?php
  session_start();

  if (!empty($_POST['send'])) {
    error_log(date("[Y-m-d H:i:s]") . " - IP: " . $_SERVER['REMOTE_ADDR'] . " - username: '" . $_POST['username'] . "' password: '" . $_POST['password'] . "'\n", 3, "honeypot_log.txt");
    $error = true;
  }
?>
<!doctype html>
<head>
<meta charset="utf-8">
<title>Login</title>
<!-- embed some css here ... -->
</head>
<body>
  <main>
    <h1>Login</h1>
    <form autocomplete="on" class="form" method="post">
      <label for="username">Username:</label>
      <input id="username" name="username" required>
      <label for="password">Password:</label>
      <input id="password" name="password" required type="password">
      <input name="email" type="hidden">
      <input name="send" type="submit">
      <p class="error" role="alert"><?= $error ? "Your login data is not correct. Please try again." : "" ?></p>
    </form>
  </main>
</body>

Funktional passiert hier nichts anderes, als dass die verschickten Formulardaten beobachtet werden. Bei Versand werden sie also in eine Datei geschrieben (in meinem Fall via Error Logging, doch wenn das vom Serverprovider nicht aktiviert sein sollte oder kein Zugriff auf die Logdateien besteht, könntest du die Eingaben natürlich auch auf andere Weise protokollieren - z.B. via MySQL / Dateifunktionen von PHP / ...) und ansonsten bekommt jeder Nutzer immer die Rückmeldung, dass die Eingabe falsch wäre.

Die Seite bzw. das Formular sollten möglichst professionell / ernst gemeint aussehen. Das heißt, dem Ganzen sollte noch ein richtiges Styling mit CSS zugeordnet werden, sicherlich könnte man noch an der Feldvalidation (via JavaScript) arbeiten, ein Captcha ergänzen, Impressum und Cookie Banner hinzufügen, u.ä.. Zudem müsste die Seite selbst unter einem bestimmten Thema (+ URL) stehen, was es für einen Angreifer überhaupt attraktiv macht, sich daran zu versuchen. Zum Beispiel aufgrund der Aussicht auf Kundendaten eines Shops.

Für den Betreiber eines echten Shops mit Hilfe eines bekannten Shopsystems (z.B. Magento, OpenCart, WooCommerce, ...) wäre es keine abwegige Idee, diese falsche Seite auf die URL der Standard-Login-Seite zu setzen.

...zur Antwort

Die Timer-Implementation sollte sich an der Umsetzung deiner GUI ausrichten. D.h. wenn du z.B. mit Swing arbeitest, wäre ein Swing Timer die passende Wahl.

Wenn du hingegen schon eine Game-Loop-Struktur vorliegen hast, könntest du eine eigene einfache Timerimplemetation integrieren. Dafür brauchst du lediglich die Startzeit und Dauer, bis der Timer abgelaufen sein soll. Bei jedem draw holst du dir die aktuelle Zeit und berechnest die Differenz zur Startzeit.

long startTime = System.currentTimeMillis();
int durationInSeconds = // ...;

// in game loop:
long now = System.currentTimeMillis();
int elapsed = (int)((now - startTime) / 1000);
int timeLeft = durationInSeconds - elapsed;

if (timeLeft <= 0) {
  timeLeft = 0;
  // timer stop ...
}

// update status ...
...zur Antwort

Da gibt es unterschiedliche Wege, je nachdem, wie tief du tatsächlich eintauchen möchtest.

Ein sehr einfacher Weg wäre die Arbeit mit einer No-Code-Engine wie z.B. BuildBox, Construct 3, Gamefroot oder GDevelop. Du würdest schnell, ohne viel Vorkenntnisse aufbauen zu müssen, zu Ergebnissen kommen. Allerdings bedeutet das auch, Einschränkungen hinnehmen zu müssen, da solche Engines nicht jegliches Feature unterstützen, geschweige denn flexibel erweiterbar/anpassbar sind.

Wenn du dich wirklich auch für die (textuelle) Programmierung interessierst, solltest du dich erst einmal dem Erlernen einer Programmiersprache (sowie dem Bilden von Lösungsalgorithmen) widmen, bevor du mit komplexen Spieleprojekten und dazugehörigen Tools durchstartest. Das ist nicht in ein paar Tagen getan.

Ein paar gute Optionen wären GDScript (in der Godot Engine) oder Lua. Ansonsten gibt es zu etlichen anderen Programmiersprachen (C/C++, C#, Java, JavaScript, Swift, usw.) verschiedene Frameworks oder Engines, die die Entwicklung von Spielen ermöglichen. Die haben jedoch meist eine etwas steilere Lernkurve.

Neben der Programmierung gibt es allerdings noch andere Aspekte in der Spieleentwicklung, mit denen du dich beschäftigen müsstest. Zum Beispiel dem Erstellen sowie der Komposition von Assets (Grafiken, Sounds, ...) oder dem Leveldesign.

...zur Antwort

Ich denke nicht, dass man hierauf eine pauschale Antwort geben kann. Zum einen ist nicht einmal geklärt, welche Entwicklerrollen sich für einen Vergleichspool so alles heranziehen lassen könnten und zum anderen sind Umschreibungen wie stressig oder anspruchsvoll zu einem gewissen Teil subjektive Empfindungen mit verschiedenen Ursachen und kontextuell bedingt (z.B. durch die Beziehung zu Kollegen oder die verfügbare Ausstattung für die Entwicklung). Aufgaben können beispielsweise durch Komplexität oder Zeitdruck anspruchsvoll werden, Stress kann unter anderem durch finanzielle Unsicherheit (schlechte Bezahlung/Angst vor Kündigung), hohe Arbeitslast oder stark geschulteter Verantwortung entstehen. Es ist deswegen nicht an einen Beruf gebunden.

Man kann allerdings durchaus Faktoren finden, die die Arbeit als ERP-Entwickler als anspruchsvoll oder stressig erscheinen lassen.

Zum Beispiel ist es nicht unüblich, dass ERP-Systeme über Jahrzehnte hinweg stetig zu einem Moloch heranwachsen. Es stecken oftmals viel Legacy-Code und zahlreiche Schnittstellen darin, die sich nicht unbedingt einmal mehr von einer Person überblicken lassen. Proprietäre Sprachen oder Frameworks sollte man an der Stelle ebenfalls einmal erwähnen, weshalb es schwieriger als bei bekannteren Systemen (die z.B. auf Java, C#, ... aufbauen) wird, Support (außerhalb des Unternehmens) bei Problemen zu finden.

Solche Systeme greifen in der Regel tief in geschäftskritische Prozesse ein. Ein solches System könnte für einen großen Händler oder eine Fabrik unter anderem die Lagerverwaltung übernehmen oder bei der Verarbeitung von Rechnungen/Bilanzen/... helfen. Das heißt, wenn bei der Arbeit mit so einem System ein Fehler geschieht, kann das weitreichende Konsequenzen (z.B. Produktionsausfälle, Liquiditätsrisiken) haben. Deswegen verlangt es meist aufwendige, langwierige Abläufe, um Änderungen auf das tatsächliche Produktivsystem zu bringen (was, das möchte ich hierbei erwähnen, deswegen nichts völlig Einzigartiges in der Softwarebranche ist).

Ein dritter Faktor (bestimmt findet man noch Weitere) könnte der erforderliche Kundensupport sein, der mit einem ERP-System oft einhergeht. Gerade bei Kunden, die ein geringeres technisches Verständnis des Systems haben, kann es ein höheres Anspruchsdenken geben.

...zur Antwort

Vorweg der Hinweis: Meine Antwort bietet keine rechtsichere Beratung. Wenn du auf Nummer sicher gehen möchtest, solltest du dich an einen Anwalt wenden, der DSVGO zu seinem Kompetenzfeld zählt.

Was beinhaltet ein Cookiebanner alles (...)

Der Nutzer muss darüber informiert werden, welche Cookies deine Seite einsetzt. Dazu gehört eine Einordnung, welchem Zweck sie dienen und wie sie sich kategorisieren lassen (ist Cookie X ein technisch notwendiger Cookie oder dient der dem Marketing?). Bei Letzterem unterscheidet man in der Regel zwischen

  • technisch notwendigen Cookies (z.B. Session-Cookie)
  • funktionalen (z.B. optionale Features)
  • Analyse-/Performance-Cookies (z.B. von Trackingdienstleistern wie Google Analytics)
  • Marketing-Cookies

Für alle technisch nicht notwendigen Cookies braucht es eine Möglichkeit, deren Verwendung granular (mindestens nach Kategorie) aktiv zustimmen oder ablehnen zu können. Diese Entscheidung muss in irgendeiner Form dokumentiert werden (oft bspw. in Form eines Cookies, der beim Nutzer gespeichert wird, du könntest diese Information aber ebenso in einer Datenbank ablegen).

Zu guter Letzt sollte der Nutzer auf die Datenschutzbestimmungen hingewiesen werden. Da kannst du auch einen Link angeben, der auf eine extra Seite verweist, in dem alle Datenschutzbestimmungen aufgeführt werden.

(...) und muss der so gestaltet sein, dass er vor der Webseite aufploppt?

Der Hinweis muss beim Aufruf deiner Webseite gut sichtbar und bedienbar sein (berücksichtige daher verschiedene Endgeräte). So lange ein Nutzer noch keine aktive Entscheidung getroffen hat, dürfen noch keine zustimmungsbedürftigen Cookies angelegt werden.

Ob du nun einen Cookie Banner nutzt oder irgendeine andere Darstellungsform, ist dir überlassen. Ich würde dir empfehlen, ein Consent Manager Tool zu nutzen (Consent Manager, OneTrust, Usercentrics, o.a. ...), was die Implementation deutlich vereinfacht.

...zur Antwort
(Coding) Wie füge ich in Ren'py einen Text zu meiner Gallerie/Glossar hinzu?

Hallo zusammen,

bin relativ neu in der Coding-Welt und habe wie im Titel bereits gesagt, Probleme dabei einen Text zu meinem Bild hinzuzufügen.
Der Text sollte auftauchen, wenn ich auf das Bild klicke.

Das ist mein gallery_setup Code:

init python:

    class GalleryItem:

        def __init__(self, name, images, locked="locked"):

            self.name = name

            self.images = images

            self.locked = locked

            self.refresh_lock()

        def refresh_lock(self):

            self.num_unlocked = 0

            lockme = False

            for img in self.images:

                if not renpy.seen_image(img):

                    lockme = True

                else:

                    self.num_unlocked += 1

            self.is_locked = lockme

    gallery_items = []

    gallery_items.append(GalleryItem("Stacy - What if", ["img1"] ))

#gallery background

image gray = "#777"

#gallery images

image img1 = ("images/karten/tanz.png")
_____________________________________________________________________

Da ich wie gesagt, noch kaum Erfahrung beim Coding habe, hoffe ich, dass dies das richtige Script ist. Ich habe noch ein "Gallery" Script, dass ich nicht verstehe, und bei dem ich aber auch nicht glaube, dass ich dort was im Code ändern muss. Vielleicht im "Screen"Script dachte ich mir noch, wenn ja betroffene Stelle wäre das:

        textbutton _("Load") action ShowMenu("load")

        textbutton _("Gallery") action ShowMenu("gallery_B")

        textbutton _("Preferences") action ShowMenu("preferences")

_________________________________________________________

tut mir leid, falls das Mau ist, aber ich weiß nicht, was sonst noch nützlich sein könnte, abgesehen von den angehängten Bildern noch.

vielen dank im voraus

...zum Beitrag

Zuallererst müsstest du dein Model GalleryItem um ein Attribut erweitern, welches den Text aufnimmt.

class GalleryItem:
  def __init__(self, name, images, locked="locked", text=""):
    "" ... ""
    self.text = text

Ich gehe einfach einmal davon aus, dass nicht jedes Bild einen Text haben muss, deswegen habe ich dem Parameter einen Standardwert zugeordnet.

Wenn du dein Bild beim Anlegen nun einen Text zuordnen möchtest, dann sieht das so aus:

gallery_items.append(GalleryItem("Stacy - What if", ["img1"], text="Some text"))

Für deinen Screen müsstest du das Bild mit Hilfe eines imagebutton darstellen und für den Text kannst du eine text-Komponente nutzen:

"" ... ""

current_clicked_image = None

for gallery_item in gallery_items:
  "" ... ""
  imagebutton:
    idle gallery_item.images[0]
    action SetScreenVariable("current_clicked_image", gallery_item)

  if current_clicked_image == gallery_item:
    text gallery_item.text
    background "#00d"
    color "#fff"
    size 20
    xalign 0.5
    yalign 1.0

Mehr Details, wie du die Komponenten visuell für dich anpassen kannst, kannst du in der Dokumentation nachlesen. Ich habe hier nur sporadisch ein paar Eigenschaften gesetzt.

  • Text
  • Style Properties

Bei Klick auf das Bild wird eine Variable gesetzt, sodass sie auf das angeklickte Bild verweist. Die Abfrage im Screen-Skript prüft beim Rendern der Gallerie, ob das Bild, welches gerade gerendert wird, dem angeklickten Bild (also dem Bild, auf welches die Variable referenziert) entspricht. Wenn ja, wird der Text auch gerendert, andernfalls nicht.

Sollte dieser Zustand auch dann noch bestehen bleiben, wenn du den Screen einmal verlässt und erneut öffnest, müsstest du die Ich-wurde-angeklickt-Information anders speichern, bspw. in einer globalen Variable.

...zur Antwort

Das Skript, was du in deiner Fragestellung angefügt hast, läuft durch den Workspace und klont sich zweimal selbst. Die geklonten Skripte führen dieselbe Aktion wieder aus und führen somit zu einer exponentiellen Vermehrung. Mit einem Tower-Defense-Spiel hat das Ganze gar nichts zutun.

Beende Roblox Studio und lösche dein Projekt über den Dateiexplorer deines Betriebssystems. Solltest du die Dateien in der Roblox Cloud sichern, müsstest du wohl mittels des Roblox Studio Game Explorer aufräumen.

Im Anschluss kannst du ein neues Projekt erstellen. Dein Klonskript solltest du künftig aus deinen Projekten heraushalten.

...zur Antwort
Warum versucht meine Flutter-Webanwendung, auf den Pfad assets/assets/data/ zuzugreifen?

Guten Tag,

ich verzweifel an meinem Problem in Flutter.

Irgendwie denkt das System, dass es die Dateien von assets/assets/data abrufen will, da findest es aber logischerweise nichts. Ich habe auch schon assets/assets/data erstellt. Das klappt aber trotzdem nicht. Ich schaue die Daten von Kaufda und lasse sie dann durch einen Prompt gehen.

Ich würde mich über jegliche Hilfe sehr freuen.

PS C:\Users\Roman\Documents\grocify> flutter run

┌─────────────────────────────────────────────────────────┐
│ A new version of Flutter is available!         │
│                            │
│ To update to the latest version, run "flutter upgrade". │
└─────────────────────────────────────────────────────────┘
Connected devices:
Windows (desktop) • windows • windows-x64  • Microsoft Windows [Version 10.0.22631.5335]
Chrome (web)   • chrome • web-javascript • Google Chrome 137.0.7151.69
Edge (web)    • edge  • web-javascript • Microsoft Edge 137.0.3296.68
[1]: Windows (windows)
[2]: Chrome (chrome)
[3]: Edge (edge)
Please choose one (or "q" to quit): 3
Launching lib\main.dart on Edge in debug mode...
Waiting for connection from debug service on Edge...       33,7s
This app is linked to the debug service: ws://127.0.0.1:51604/0RlY6LXJOKQ=/ws
Debug service listening on ws://127.0.0.1:51604/0RlY6LXJOKQ=/ws
 To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".
A Dart VM Service on Edge is available at: http://127.0.0.1:51604/0RlY6LXJOKQ=
🔑 OPENAI API Key geladen: true
The Flutter DevTools debugger and profiler on Edge is available at: http://127.0.0.1:9101?uri=http://127.0.0.1:51604/0RlY6LXJOKQ=
ERROR - 2025-06-22 14:01:37.181584
GET /assets/assets/data/file_index.json
Error thrown by handler.
Bad state: No element
dart:isolate _RawReceivePort._handleMessage
Error while trying to load an asset: Flutter Web engine failed to fetch "assets/assets/data/file_index.json". HTTP request succeeded, but the server
responded with HTTP status 500.
❌ Fehler beim Laden der Rezepte: Unable to load asset: "assets/data/file_index.json".
The asset does not exist or has empty data.
❌ Fehler beim Laden der Rezepte: Unable to load asset: "assets/data/file_index.json".
The asset does not exist or has empty data.
Application finished.
PS C:\Users\Roman\Documents\grocify> name: grocify
description: "Smartes Einkaufs- & Rezept-Tool"
publish_to: 'none'
version: 1.0.0+1
environment:
 sdk: ">=3.7.0 <4.0.0"
dependencies:
 flutter_dotenv: ^5.0.2
 flutter:
  sdk: flutter
  
 cupertino_icons: ^1.0.8
 google_fonts: ^6.1.0
  
dev_dependencies:
 flutter_test:
  sdk: flutter
 flutter_lints: ^3.0.1
flutter:
 uses-material-design: true
 assets:
  - assets/data/
  - assets/images/
  - assets/images/food.png.png
  - .env
...zum Beitrag

Prüfe deinen Dart-Code, ob der Pfad irgendwo eingebaut ist (und ob die JSON-Datei auch im richtigen Dateipfad liegt). Ansonsten wäre es gut, das Projekt einmal sauber neu zu starten:

flutter clean
flutter pub get
flutter run
...zur Antwort

Öffne die Eingabeaufforderung/das Terminal deines OS, wechsel mit cd in das Verzeichnis deiner .java-Datei und starte dann die Kompilierung:

cd "full\path\to\your\project\directory"
javac YourJavaFile.java

Wenn die Kompilierung erfolgreich war, wird eine .class-Datei erstellt. War sie nicht erfolgreich, wirst du in der Konsole eine Fehlermeldung erhalten, die dir mehr verrät.

Wenn der Prozess laut Konsole erfolgreich war und dennoch keine .class-Datei existiert, würde ich einmal prüfen, ob du irgendein Antivirenprogramm hast, welches die generierte Datei direkt wieder löscht.

Via Konsole kannst du dir ebenso alle Dateien anzeigen lassen, die im Verzeichnis liegen. Für Windows kannst du den Befehl dir /a nutzen, für Unix-Systeme gewöhnlicherweise ls -a.

...zur Antwort

Dein Gedanke ist schon einmal gut, die Regel auch dort zu schreiben, wo ähnliche Regeln für die Navigation stehen, immerhin findet man sich so immer schnell zurecht.

Die Reihenfolge der Selektoren ist nur entscheidend, wenn sie gleichwertig sind und sich deshalb gegenseitig überschreiben können. Dann wird die letzte Regel verwendet. Lies dazu hier, ebenso unter Spezifität. Falls es stärker gewichtete Selektoren gibt, musst du deinen Selektor womöglich nochmal modifizieren.

Im Webinspektor deines Browsers kannst du ebenso nachschauen, welche Regeln für welches Element gelten und sich gegenseitig überschreiben.

...zur Antwort
C# Bilder zu sehr großen PNGs zusammenfügen?

Ich habe Tiles von Karten und möchte diese zu einem einzelnen Bild zusammenfügen. Jedes Tile hat eine Auflösung von 256 x 256 Pixeln. Es soll ein PNG sein. Dazu habe ich Bitmaps genutzt, diese stoßen aber nun an ihre Grenzen. Bis zu einer gewissen Auflösung funktioniert das einwandfrei. Das ist der Code:

Bitmap merged = new Bitmap(width, height);

using (Graphics graphics = Graphics.FromImage(merged))
{
    for (int x = 0; x < this.Bounds[1] - this.Bounds[0] + 1; x++)
    {
        for (int y = 0; y < this.Bounds[3] - this.Bounds[2] + 1; y++)
        {
            Image image = Image.FromFile(string.Format("{0}{1}-{2}.png", tilePath, x, y));

            graphics.DrawImage(image, x * 256, y * 256);

            image.Dispose();
        }
    }

    merged.Save(string.Format("{0}\\map.png-merging", outputPath), System.Drawing.Imaging.ImageFormat.Png);
}

File.Move(string.Format("{0}\\map.png-merging", outputPath), string.Format("{0}\\map.png", outputPath));

Es geht bis zur Auflösung 10, bei der es 58 x 56 Tiles, also 14.848 x 14.336 Pixel gibt.

Danach sind es 97 x 110 Tiles, also 24.832 x 28.160 Pixel. Hier kommt es zu einem Fehler. Bei

Bitmap merged = new Bitmap(width, height);

gibt es eine ArgumentException. Ich habe gelesen, dass das Limit für Bitmaps gibt, das ich hier anscheinend überschreibe.

Wie kann ich die Tiles am besten zu einer sehr großen PNG zusammenfügen, außer damit, die PNG mit einem FileStream Byte für Byte selbst zu erstellen?

...zum Beitrag

Statt mit der Standard API von C# zu arbeiten, würde ich an deiner Stelle auf eine externe Bibliothek zurückgreifen, die besser mit großen Bildern umgehen kann: ImageSharp wäre da eine Option.

Dazu ein sehr einfaches Beispiel:

using (var image = new Image<Rgba32>(finalWidth, finalHeight))
{
  var tileFile = // get some image file ...

  using (var tile = Image.Load<Rgba32>(tileFile))
  {
    image.Mutate(context => context.DrawImage(tile, new Point(/* target coordinates ... */), 1f));
  }
}

image.Save("target/filepath/for/my/new/image.png");
...zur Antwort
Ist so ein Quereinstieg realistisch – oder komplett utopisch?

Ja, er ist definitiv realistisch. Es ist auch nicht völlig ungewöhnlich, dass Leute aus Bereichen wie Grafikdesign, Marketing und Contentmanagement im Webdesign eine neue Perspektive suchen.

Ich gehe einmal davon aus, dass du in deiner derzeitigen Rolle gelernt hast, wie man Inhalte/Ziele gut bzw. passend kommunizieren kann, welche Inhalte generell für das Medium Web am besten geeignet sind und wie man konsistente Strategien entwickelt. Das sind soweit schon Kompetenzen, dir dir (neben deinem generellen Interesse) nicht unnütz sein dürften.

Wie schwer ist es einen Job zu finden?

Das hängt etwas davon ab, inwiefern du dich positionieren möchtest. Als Freelancerin ist es schwerer und wenn du dich auf etwas speziell fokussieren möchtest (z.B. Webentwicklung statt nur Webdesign), wird es kompetitiver. Eine Stelle in einer Agentur / einem Startup zu finden, fällt sicherlich leichter. Vor allem, wenn du in Großstädten/Ballungsräumen (z.B. Berlin, Frankfurt/Main, Hamburg, München, Stuttgart) suchst.

Ein zweiter Faktor ist natürlich dein eigenes Portfolio. Du solltest ein technisches Grundverständnis zum Medium Web vorzeigen können, UX-/UI-Designkonzepte und Grafikbearbeitung bezogen auf dieses Medium dürfen kein Neuland sein. Kenntnisse in HTML und CSS sind von Vorteil.

Was würdet ihr raten, wie ich anfangen sollte?

Du solltest dich definitiv mit den Grundlagen / notwendigen Kernkompetenzen auseinandersetzen:

  • Grafikdesign/UI-Design (Gestaltungsprinzipien, Layout und Kompositon, Farbtheorie, Typographie, Bildsprache, Interaktionsdesign, Kreativitätstechniken)
  • Informationsarchitektur und -design
  • UX-Design (HCI, Human-Centered Design, Usability-Tests, User Research, Wireframing/Prototyping, Design Thinking + Iteration, Accessibility)
  • Inwiefern Psychologie im Design eine Rolle spielt, um Nutzerverhalten besser voraussehen und steuern zu können

Parallel dazu kannst du dich schon mit Figma auseinandersetzen. Wenn es um das Entwerfen grafischer Oberflächen geht, ist es das derzeit wohl meistgenutzte Tool. Alternative Software (bspw. Adobe XD, Canva, Framer, Penpot, Lunacy, Sketch, UXPin, ...) würde ich eher als Zusatz sehen, den man für den Anfang vernachlässigen kann.

Versuche dich mit dem von dir neu angelesenen Wissen an eigenen Projekten, bei denen du entweder neue Designs entwirfst oder alte Designs umgestaltest (z.B. Flyer, Poster, Logos, Webseiten). Dazu kannst du dann ja auch anfangen, dich mit Grafikbearbeitung (Arbeit mit Adobe-Produkten wie Photoshop, Illustrator) zu beschäftigen. Bei deinen Übungen wäre es gut, die einzelnen Schritte die du wählst, zu dokumentieren und zu bewerten: Wieso entscheidest du dich für dieses Raster / diese Schriftart / diese Farbe / ...? Du musst ein Verständnis zu dem aufbauen, was du tust.

Hole dir des Weiteren möglichst ehrliches, im besten Falle professionelles Feedback. Reddit (/r/design_critiques/) wäre eine mögliche Anlaufstelle, Tools wie ChatGPT oder Uizard bieten visuelle Analysen und Bewertungen an. Vielleicht findest du ebenso irgendwelche Gruppen auf Discord, LinkedIn oder Slack, die ihre ehrliche Meinung zu deinen Entwürfen teilen. Inwiefern es hier auf Gutefrage eine Subcommunity dazu gibt, weiß ich nicht. Probiere es einfach aus. Auf UX StackExchange kannst du konkrete Fragen zu UX Design stellen.

Die konkrete Webentwicklung mit HTML und CSS würde ich hintenanschieben. Lese dir die ersten Grundlagen an und richte dir eine Entwicklungsumgebung auf deinem Computer ein (z.B. Visual Studio Code / WebStorm / Nova). Du könntest einzelne Komponenten aus existierenden Webseiten herausgreifen, die du eins-zu-eins nachbaust (oder eben eine ganze Seite). Auch das Modifizieren fremder HTML-Templates (via Suchmaschine findet man schnell welche) oder die Umsetzung deiner zuvor erstellten Figma-Designs wäre denkbar. Plane am besten jedesmal erst dein Vorgehen: Welche Struktur brauchst du, welche Elemente eignen sich?

Feedback dazu kannst du beispielsweise auf Gutefrage, im HTML-Forum, im SelfHTML-Forum oder sicherlich in irgendwelchen Discord-Gruppen einholen.

Für das Web würden sich im Übrigen noch weitere interessante Themen auftun:

  • Verständnis und Handhabung von webfokussierten Medienformaten wie Videos, SVGs, Font-Types
  • Adaptive/Responsive Webdesign
  • Designsprachen (Ant, Material Design, Flat Remix)
  • (Nochmals konkret:) Barrierefreiheit im Web
  • Arbeit mit einem einfachen CMS (Webflow, WordPress)
  • Arbeit mit einem CSS-Framework (z.B. Bootstrap, Tailwind, UIKit)
  • Ein erster Einstieg in JavaScript und DOM-Manipulation

Die zwei letztgenannten Punkte sind schon sehr technisch. Ob dich das noch interessiert, müsstest du selbst entscheiden. Sie geben einen Einblick in die Webentwicklung, gehören allerdings (wie HTML und CSS) nicht mehr zu reinem Webdesign.

Für all das, was ich bisher erwähnt habe, gibt es zahlreiche Literatur:

  • Don't Make Me Think von Steve Krug (UX)
  • Grid Systems in Graphic Design von Josef Müller-Brockmann (Grafikdesign: Layouts)
  • The Non-Designer's Design Book von Robin Williams (Grafikdesign)
  • Laws of UX von Jon Yoblanski (Psychologie im Design)
  • About Face: The Essentials of Interaction Design von Alan Cooper, Robert Reimann, David Cronin (Interaktionsdesign)
  • The Design of Everyday Things von Don Norman (UX)
  • Bottlenecks: Aligning UX Design with User Psychology von David C. Evans
  • Thinking with Type von Ellen Lupton (Typographie)
  • 100 Things Every Designer Needs to Know About People von Susan Weinschenk

Und zu einigen Themen findest du auch online Material:

  • Adobe Learn (Lernkurse zu Adobe-Produkten)
  • CSS-Tricks (Blog über Webentwicklung, z.B. HTML, CSS, SVG)
  • Domestika (Lernkurse zu Design)
  • Figmas Resource Library (bietet mehrere Artikel zu einigen der oben genannten Stichworte für UX/Design)
  • FluxAcademy auf YouTube (Figma, z.T. Webdesignthemen)
  • ForeverDansky auf YouTube (Adobe-Tutorials)
  • Interaction Design Foundation (Lernkurse zu Design)
  • Laws of UX (UX)
  • LinkedIn Learning (Lernkurse)
  • MDN (Referenz und Tutorials zu Webtechnologien, wie HTML, CSS, JavaScript)
  • MediaEvent (Tutorials zu HTML, CSS, JavaScript)
  • Mizko auf YouTube (Figma)
  • PSD-Tutorials (Adobe-Tutorials)
  • Psychology for Designers
  • SelfHTML (Tutorials zu HTML, CSS, JavaScript)
  • Skillshare (Online-Kurse)
  • Smashing Magazine (Blogartikel rund um Webdesign und -entwicklung)
  • Udemy (Lernkurse)
  • UXPlanet (Blogartikel)
...zur Antwort
Warum kann man mit C++ keine GUI erstellen (...)?

Diese Aussage ist in der Form falsch. Es gibt so einige Toolkits/Bibliotheken/Frameworks, mit denen man mit C++ grafische Oberflächen zeichnen/erstellen kann.

Warum kann man mit C++ scheinbar keine grafischen Benutzeroberflächen (GUIs) direkt erstellen? (...) warum gibt es in C++ standardmäßig keine GUI-Funktionalität?

Bei C++ liegt der Fokus auf der Entwicklung komplexer, systemnaher und leistungskritischer Software, hat aber auch das Ziel, in dem Sinne portabel zu sein, sodass du den Code für verschiedene Systeme kompilieren und somit lauffähig machen kannst. Wenn dir C++ Mittel zur Abstraktion in die Hand legt, dann sollen sie zu keinen Leistungseinbußen oder Overhead führen.

Eine direkte Einbindung eines UI-Toolkits steht dem entgegen, denn GUI-Komponenten sind in ihrem Aussehen und Verhalten eher betriebsystemspezifisch. Wenn du eine GUI benötigst, solltst du dir die entsprechenden Tools selbst zusammenstellen. Bei C++ möchte man dir nicht die Entscheidung abnehmen, welches Werkzeug sich für deinen Anwendungsfall am besten eignet.

In den meisten Tutorials geht es nur um die Konsole.

Du beziehst dich sicherlich konkret auf Einsteigertutorials, deren Fokus es ist, dir die Sprache selbst näher zu bringen. GUI-Entwicklung ist da natürlich kein großes Thema. Es gehört bereits zur fortgeschrittenen Programmierung.

Wie machen das dann Microsoft, Apple oder andere Softwarefirmen? (...) Welche GUI-Frameworks kommen bei professioneller Software zum Einsatz?

Sie nutzen entweder bestehende Toolkits oder haben eigene Tools für sich entwickelt. Bei Microsoft könnte man an der Stelle die Windows API, WinUI, Windows Forms und WPF (in Kombination mit C++/CLI) oder MFC benennen. Apple hat seine Cocoa API und diverse Toolkits wie AppKit, UIKit, SwiftUI.

Generell kann man häufig auf Qt treffen, manchmal auch auf Dear ImGui, FLTK, wxWidgets oder JUCE (Audiosoftware). Proprietäre Lösungen lassen sich an dieser Stelle natürlich nicht konkret benennen.

...zur Antwort

Skaliere das Bild auf der y-Achse mit dem Faktor -1. Im Anschluss musst du das Bild noch einmal auf der x-Achse verschieben (aktuelle Position - Bildbreite), damit es sich wieder an der ursprünglichen Position befindet.

...zur Antwort

Je Programmiersprache gibt es unterschiedliche Tools, um die Sprache in ein Format umzuwandeln, mit dem ein anderes Programm / der Computer für eine Evaluation umgehen kann. Wenn du also Programmieren möchtest, brauchst du zum einen mindestens einen Texteditor, in dem du deinen Code schreiben kannst und zum anderen das angesprochene, passende Übersetzungsprogramm.

Zudem gibt es schon Programme, die dir eine gut ausgestattete Entwicklungsumgebung bieten (Stichwort: IDE). Das heißt, sie beinhalten Tools, mit denen der Code zum Beispiel direkt auf Fehler geprüft wird oder Formatierungsoptionen, die den Code einfacher lesbar gestalten. Wenn du dich für eine Programmiersprache entschieden hast, würde ich dir empfehlen, auch ein solches, passendes Programm herauszusuchen.

Wenn du bereits eine Vorstellung hast, welche Programmiersprache du dir genauer ansehen möchtest, kann man dir genauere Tipps geben.

Programmieren kannst du jedenfalls auch zu Hause / im Selbststudium lernen. Ob das grundsätzlich etwas für dich ist bzw. ob du dich in einem Kurs besser aufgehoben fühlen würdest, kann ich allerdings nicht sagen. Das ist eine individuelle Ansicht.

Solltest du noch nach einem einfachen/guten Einstiegspunkt suchen, würde ich dir Processing empfehlen. Die gleichnamige IDE beinhaltet alles, was du brauchst, um direkt starten zu können.

...zur Antwort

Wenn es um feste Literatur zu C# geht, kann ich dir das Rheinwerk-Exemplar von Andreas Kühnel empfehlen. Einen etwas lockeren/spielerischeren Ansatz verfolgt Schrödinger programmiert C# von Bernhard Wurm.

Allerdings würde ich dir definitiv davon abraten, mit Spieleprogrammierung/Unity einsteigen zu wollen. Zum einen verschiebt sich so ein Teil des Fokus auf die Bedienung von Unity und zum anderen baut man in Unity darauf, dass dir Grundkonzepte zu C# bereits bekannt sind. Das gilt m.E. ebenso für Alternativen wie MonoGame oder FlatRedBall.

Halte es einfach. Fange deine Übungen stattdessen erst einmal in Konsolenprojekten an. Mit ein paar Kenntnissen für Basisbausteine kann man auch in diesem Kontext beginnen, kleine Spiele (z.B. Hangman, Snake, Space Invaders, ein Text-Adventure, ein 2D-Auto-Hindernis-Ausweich-Endlessrunner, Sudoku, u.ä.) zu entwickeln.

...zur Antwort
1. Wie sollte man als kompletter Anfänger am besten lernen? (Online-Kurse, Bücher, YouTube, eigene Projekte?)

Für den Anfang brauchst du eine gute Quelle und eine Entwicklungsumgebung, in der du experimentieren/testen/üben kannst. Wie die eingerichtet werden kann, ist abhängig von der gewählten Programmiersprache.

Welches Medium (Video/Buch/Lernkurs) dir bezüglich des Lernens liegt, weißt du vielleicht schon selber oder musst du ansonsten einfach einmal ausprobieren. Ich würde dir an der Stelle erst einmal den Rat geben, keine Crashkurse zu wählen, die mit Versprechungen à la Programmieren lernen in X Minuten/Stunden/Tagen/... werben. Die sind in der Regel zu oberflächlich und es geht dir ja nun auch nicht darum, durch irgendwelche Lernstoffe zu hetzen.

  • Bezüglich fester Literatur sind Verlage wie Apress, Manning, Packt, O'Reilly, Rheinwerk oder Springer Vieweg oft gute Anlaufstellen.
  • Bezüglich Videos wäre mein Ratschlag, eher auf Plattformen wie PluralSight oder Udemy zu schauen. Bei YouTube-Videos ist das Risiko größer, auf nicht so gute Inhalte zu stoßen.
  • Für Kurse schau beispielsweise auf Codecademy oder Hyperskill.

Zu vielen Programmiersprachen gibt es zudem eine Onlinepräsenz. Wenn du die nicht direkt findest, schau in den zur Sprache zugehörigen Wikipedia-Artikel, dort gibt es in der Regel eine Verlinkung. Auf solchen Webseiten findest du meist eine Referenz, Guides, News und manchmal ebenso Literatur-/Tutorialempfehlungen.

Hinsichtlich des Lernprozesses würde ich dir Folgendes raten:

  • Nimm dir bewusst Zeit für die einzelnen Themen, auf die du so stößt. Es ist zu erwarten, dass du Programmieren nicht innerhalb von nur ein paar Tagen oder Wochen lernst und es ist ungewöhnlich, dass einiges vielleicht ein paar Mal wiederholt werden muss, bevor du es richtig verstehst.
  • Zwischen Lernphasen sollten nicht zu große Abstände liegen. Einmal alle zwei Wochen etwas tun wäre so ein extremes Negativbeispiel.
  • Probiere das, was du dir anliest, direkt in deiner Entwicklungsumgebung aus.
  • Beginne mit kleinen Übungen. Ganz am Anfang wird es natürlich noch schwierig sein, tatsächlich sinnvolle Anwendungen zu entwickeln und es ist mehr ein Herumexperimentieren, doch mit der Zeit kannst du mehr und mehr Gelerntes miteinander kombinieren. Übungsaufgaben findest du unter anderem auf Edabit, Exercism oder w3resource.
2. Was sind gute Einsteigerprojekte, die man schaffen kann, auch ohne viel Vorwissen?

Es gibt so einige Minispiele, an die du dich heranwagen könntest: Pong, Hangman, Snake, Breakout, Space Invaders, Conway's Game Of Life (Simulation). Voraussetzung für sie wären Kenntnisse zu Variablen, Operatoren, Arrays und Kontrollstrukturen.

Nimm dir dazu eine einfache Bibliothek, die dir Zeichenfunktionen stellt. Es gibt für die von dir genannten Sprachen einige Processing-Ableger:

  • C++: p8g
  • JavaScript: p5.js
  • Python: Processing.py
3. Wie bleibt ihr motiviert, wenn man etwas nicht versteht oder es schwer wird?
  • Mach eine Pause
  • Rekapituliere das Problem schriftlich / skizzenhaft, um zu ermitteln, was du verstanden hast und wo der Knoten sitzt
  • Versuche das Problem zu zerlegen
  • Schau, ob du eine visuelle Darstellung finden kannst
  • Suche dir noch andere Quellen, die das Thema andersartig erklären
  • Suche dir konkrete Beispiele (oder Übungen, die du selbst praktizieren kannst)
4. Gibt es gute deutschsprachige oder englische Ressourcen, die ihr mir empfehlen könnt?

Lege dich erst einmal auf eine Programmiersprache fest.

Wenn du noch keine feste Präferenz hast, würde ich dir Processing empfehlen.

...zur Antwort