Programmieren – die neusten Beiträge

Mensch gegen KI!

Hey, Ich teste gerade wer besser ist in Programiren. Dazu gebe ich den gleichen Text einer KI, und euch. Nun möchte ich wissen wer in diesen Thema besser ist.

Hir ist der Text, bitte entäuscht mich nicht:

SmartPrint ist eine vollständig integrierte, hochmoderne Lösung zur Steuerung, Überwachung und Verwaltung von 3D-Druckern. Die App wurde so konzipiert, dass sie den gesamten Druckprozess automatisiert und optimiert – von der Verwaltung und dem Upload von G‑Code-Dateien über den Druckstart und die Live-Überwachung bis hin zur detaillierten Auswertung von Verbrauchsdaten, Zeitrafferaufnahmen, Bewertungen und Favoriten. Dabei steht nicht nur der Funktionsumfang im Vordergrund, sondern auch ein ansprechendes, professionelles Design, das sowohl auf dem PC als auch in einer späteren mobilen Version im Hochformat für ein optimales Benutzererlebnis sorgt.

Hinter den Kulissen nutzt SmartPrint moderne und bewährte Technologien. Für die Desktop-Version der App kommt Electron in Kombination mit React zum Einsatz. Electron ermöglicht es, eine plattformübergreifende Desktop-Anwendung zu erstellen, während React für die Entwicklung einer dynamischen und responsiven Benutzeroberfläche verantwortlich ist. Mit abgerundeten, hochwertigen Buttons, klar strukturierten Tabs und ansprechenden Icons entsteht so ein Look, der dem Anspruch eines professionellen, teuren Produkts entspricht.

Die Steuerung des 3D-Druckers selbst erfolgt über die OctoPrint-API, die auf einem Raspberry Pi läuft. Auf diesem Pi wird ein leichtgewichtiges Betriebssystem (Raspberry Pi OS) eingesetzt, und OctoPrint übernimmt die direkte Ansteuerung des Druckers. Die Kommunikation zwischen der App und OctoPrint erfolgt über HTTP-Anfragen, bei denen Bibliotheken wie axios (im JavaScript-Teil) und requests (im Python-Backend) verwendet werden. Für die Server-Seite kommen Python 3 und Frameworks wie Flask zum Einsatz, um eine robuste API bereitzustellen, die den Druckstatus abruft, Druckaufträge startet oder abbricht und weitere notwendige Befehle ausführt.

Zusätzlich ist die App in verschiedene Tabs unterteilt, die jeweils spezifische Funktionen bieten. Im Home-Tab erhält der Nutzer sofort einen Überblick über den aktuellen Druckstatus, Fehleranzeigen, zuletzt genutzte Dateien und die Top 5 Drucke des Monats – basierend auf den abgegebenen Bewertungen. Im Tab für Dateiverwaltung und Drucksteuerung kann der Nutzer G‑Code-Dateien hochladen, organisieren, umbenennen und direkt oder zeitgesteuert einen Druck starten. Der Tab „Überwachung“ zeigt einen Live-Kamerastream, Verbrauchsdaten des Filaments (über eine angeschlossene USB-Waage) und den Stromverbrauch in Echtzeit an, während zudem die durchschnittliche Druckzeit aus vergangenen Aufträgen berechnet wird. Der Zeitraffer-Tab ermöglicht es, während des Drucks automatisch Zeitraffer-Videos aufzunehmen, deren Gesamtdauer vom Nutzer vorgegeben wird – die App berechnet automatisch das ideale Aufnahmeintervall, und die Videos werden nach drei Tagen automatisch gelöscht, sofern sie nicht manuell gesichert wurden. Der Online-Speicher-Tab bietet den direkten Zugriff auf Plattformen wie Thingiverse und ermöglicht das Speichern von 3D-Modellen sowie die Verwaltung von hochwertigen Filamenten. Darüber hinaus sind Bewertungs- und Favoritenfunktionen integriert: Nach Abschluss eines Drucks wird automatisch eine Benachrichtigung zur Bewertung angezeigt, bei der der Nutzer mittels eines Sternebewertungssystems und optionaler Kommentare den Druck bewerten kann – Bewertungen sind dauerhaft gespeichert und können nicht nachträglich geändert werden. Besonders gelungene Drucke können zudem mit einem Herz-Symbol markiert und in einem separaten Favoriten-Ordner abgelegt werden.

Ein weiterer wichtiger Aspekt ist die Netzwerkanbindung. Die gesamte Steuerung erfolgt lokal über den Raspberry Pi, der über die OctoPrint-API kommuniziert. Für den Fernzugriff wird zusätzlich ein VPN unterstützt, sodass der Drucker auch aus der Ferne sicher gesteuert werden kann. Alle Einstellungen, wie die IP-Adresse des Raspberry Pi, VPN-Optionen und automatische Steckdosensteuerung (über eine Smart-Steckdose, z. B. von Nooie), können im umfangreichen Einstellungsbereich der App individuell angepasst werden.

Zusammengefasst bietet SmartPrint eine vollständige, professionelle und moderne Lösung, die alle Aspekte des 3D-Drucks abdeckt – von der Steuerung und Überwachung über die Automatisierung bis hin zur detaillierten Auswertung und Bewertung. Dabei werden neueste Technologien wie Electron, React und Flask eingesetzt, um sowohl auf der Desktop- als auch auf der mobilen Plattform eine optimale Benutzererfahrung zu gewährleisten. Alle Funktionen sind so integriert, dass der Nutzer den gesamten Druckprozess zentral steuern kann, während alle Daten lokal bleiben und über sichere Verbindungen abgerufen werden.

Das ist das Logo der App

Bei Fragen gerne Melden, das habe ich auch der KI erlaubt, dass sie Nachfragen darf.

Bild zum Beitrag
App, programmieren, künstliche Intelligenz, Raspberry Pi

JavaScript: Wie kann ich eine große Tabelle schneller sortieren?

Hallo zusammen,

ich habe eine große Tabelle in meiner ASP.NET Core Razor Pages Anwendung, die ich clientseitig mit JavaScript sortieren möchte.

Allerdings dauert die Sortierung bei einer großen Datenmenge zu lange, und ich suche nach einer performanten Lösung.

Meine aktuelle Implementierung:

Ich nutze Array.sort() und vergleiche Strings und Zahlen entsprechend, das funktioniert aber das ist nicht effizient genug.

Besonders wenn die Tabelle viele Zeilen (z. B. >10.000) hat, wird die Sortierung langsam.

Meine Anforderungen:

✅ Die Sortierung muss komplett in JavaScript (clientseitig) erfolgen

✅ Sie muss sowohl Texte (Strings mit Umlaute, Sonderzeichen, etc.) als auch Zahlen (inkl. Währungen mit €) schnell sortieren

✅ Die Tabelle wird nachträglich dynamisch mit Daten befüllt (also keine initiale Sortierung im Backend möglich)

✅ Die Lösung soll sehr schnell auch bei großen Datenmengen sein

Ich habe bereits probiert:

❌ Array.sort() (wird langsam bei vielen Zeilen)

❌ localeCompare() (korrekt für Strings, aber langsam)

❌ TypedArrays für Zahlenwerte (bringt nicht genug Speed)

Gibt es eine bessere Möglichkeit, eine HTML-Tabelle performant zu sortieren?

Vielleicht mit Web Worker, einer anderen Datenstruktur oder anderen Algorithmen?

oder gibt es andere Funktionen/Möglichkeiten, die ich noch probieren kann?

hier mein aktueller Ansatz:

Tabelle:

    <div class="col-lg-9 col-md-7 col-12">
      <div class="table-container">
        <table class="table-modern table-hover w-100" id="statistikTable">
          <thead>
            <tr>
              <th onclick="sortTable(0, this)">Datum <img class="sort-icon" src="/img/dgvsort.png" style="display: none;"></th>
              <th onclick="sortTable(1, this)">PID <img class="sort-icon" src="/img/dgvsort.png" style="display: none;"></th>
              <th onclick="sortTable(2, this)">Nachname <img class="sort-icon" src="/img/dgvsort.png" style="display: none;"></th>
              <th onclick="sortTable(3, this)">Vorname <img class="sort-icon" src="/img/dgvsort.png" style="display: none;"></th>
              <th onclick="sortTable(4, this)">Rechnungsnetto <img class="sort-icon" src="/img/dgvsort.png" style="display: none;"></th>
              <th onclick="sortTable(5, this)">Belegnummer <img class="sort-icon" src="/img/dgvsort.png" style="display: none;"></th>
            </tr>
          </thead>
          <tbody>
            @if (Model.StatistikData != null && Model.StatistikData.Rows.Count > 0)
            {
              foreach (DataRow row in Model.StatistikData.Rows)
              {
                <tr>
                  <td>@(((DateTime)row["Datum"]).ToString("dd.MM.yyyy"))</td>
                  <td>@row["PID"]</td>
                  <td>@row["KundeNachname"]</td>
                  <td>@row["KundeVorname"]</td>
                  <td>@Convert.ToDecimal(row["Rechnungsnetto"]).ToString("N2")</td>
                  <td>@row["Belegnummer"]</td>
                </tr>
              }
            }
            else
            {
              <tr>
                <td colspan="6" class="text-center">Keine Daten gefunden</td>
              </tr>
            }
          </tbody>
        </table>
      </div>
    </div>

meine sort Funktion:

  function sortTable(columnIndex, header) {
    const table = document.getElementById("statistikTable");
    const tbody = table.tBodies[0];
    const rows = Array.from(tbody.rows);
    const ascending = table.dataset.sortOrder !== "asc";

    const isNumericColumn = !isNaN(parseFloat(rows[0].cells[columnIndex].textContent.replace("€", "").replace(",", ".").trim()));

    let sortedRows;
    if (isNumericColumn) {
      sortedRows = rows
        .map(row => ({
          element: row,
          value: parseFloat(row.cells[columnIndex].textContent.replace("€", "").replace(",", ".").trim()) || 0
        }))
        .sort((a, b) => ascending ? a.value - b.value : b.value - a.value);
    } else {
      const collator = new Intl.Collator("de", { numeric: true, sensitivity: "base" });
      sortedRows = rows
        .map(row => ({
          element: row,
          value: row.cells[columnIndex].textContent.trim()
        }))
        .sort((a, b) => ascending ? collator.compare(a.value, b.value) : collator.compare(b.value, a.value));
    }

    const fragment = document.createDocumentFragment();
    sortedRows.forEach(({ element }) => fragment.appendChild(element));
    tbody.appendChild(fragment);

    table.dataset.sortOrder = ascending ? "asc" : "desc";

    updateSortIcons(header, ascending);
  }

  function updateSortIcons(header, ascending) {
    document.querySelectorAll(".sort-icon").forEach(icon => {
      icon.src = "/img/dgvsort.png";
      icon.style.display = "inline";
    });

    const icon = header.querySelector(".sort-icon");
    if (icon) {
      icon.src = ascending ? "/img/dgvsortup.png" : "/img/dgvsortdown.png";
      icon.style.display = "inline";
    }
  }

Freue mich über jede Hilfe! 😊

HTML, Webseite, programmieren, CSS, JavaScript, HTML5, Programmiersprache, Webdesign, Webentwicklung, Frontend

Wie programmieren wir den Bundestag?

Die Bürokratie

nimmt ihren Lauf. Davon sind unterschiedliche Einrichtungen betroffen. So auch der universitäre Bereich. Für Studenten eine Hürde mehr. Man kennt das Problem: Aufräumen. Ganze Wäscheberge bei Frauen. Männer oft nur mit sieben Shirts und passender Jeans samt Socken und Unterhosen wie einem Paar Schuhe für die Woche ausgestattet wollen auch nicht mehr einen solchen Aufwand haben. Die Sinnlosigkeit eines zivilen Stubenschrankes kommt dann zum Tragen, wenn man das erste Mal eine Kaserne von innen sieht. Spätestens dann weiß man, was Ordnung, Sauberkeit und das Tragen von Kleidung wirklich ist. Ein unglaublich großer Aufwand steckt in der Kleidung. Dem Material was wir bei uns tragen.

Was hat nun der Bundestag mit Kleidung, der Armee und anderer materieller Kultur zu tun?

Denn das ist die eigentliche Frage: Wie kann man einen digitalen Raum für sein Lernen und geplante Taten samt Routen im Alltag vor der Tür (Präsentation äußerer Erscheinung) schaffen? Suche hier auch ein Programmierteam. Habe sehr viel Zeit dafür. Discord kann man austauschen.

Die Debatten und RSS-Feeds sollen ins Spiel integriert sein und was einem noch so einfällt, was einen, nachdem man "Das Spiel der Politik" zu einem ganzen Studium der Politikwissenschaft und Volkskunde befähigen durch und verinnerlicht hat. Hoffe, man versteht die Idee dahinter. Mit dem Programm Unity lässt sich ja einiges machen.

Slander Man: The eight pages

Um es genauer auszudrücken, und ich hoffe die richtige Kategorie dafür gefunden zu haben, will ich unter anderem eine Lerntechnik digitalisieren. Die Technik Vokabelschnipsel in der Stadt zu verteilen (Schwedisch), um sie so beim Ablaufen als Avatar diese immer wieder abzurufen und ins Gedächtnis, vielleicht auch in Form eines Exitgames mit Hürden/kniffligen Herausforderungen, zu rufen. Ein Exitgame, dass Gegenstände des Ensembles zum Beispiel Büro eines Anwalts ist und du mit dem Anwalt redest, und somit die Vokabel herausfinden musst wie <arvode>=Honorar, was ja nur in der Anwaltswelt Anklang findet.

programmieren, Politik

Wie mache ich diese Mod für GTA zu einer DLL datei mit Visual Studio?

using System;
using LSPD_First_Response.Mod.API;
using Rage;
using System.Drawing;
namespace LSPDfr bombcallout
{
  /// <summary>
  /// Represents a callout for defusing a bomb in the game.
  /// </summary>
  public class BombDefuseCallout : Callout
  {
    /// <summary>
    /// The suspect involved in the callout.
    /// </summary>
    private Ped suspect;
    /// <summary>
    /// The location of the bomb represented by a blip on the map.
    /// </summary>
    private Blip bombLocation;
    /// <summary>
    /// Indicates whether the bomb has been defused.
    /// </summary>
    private bool bombDefused;
    /// <summary>
    /// Initializes a new instance of the <see cref="BombDefuseCallout"/> class.
    /// </summary>
    public BombDefuseCallout()
    {
      // Constructor implementation
    }
    /// <summary>
    /// Called before the callout is displayed to the player.
    /// </summary>
    /// <returns>True if the callout should be displayed; otherwise, false.</returns>
    public override bool OnBeforeCalloutDisplayed()
    {
      // Method implementation
      return true;
    }
    /// <summary>
    /// Called when the callout is accepted by the player.
    /// </summary>
    public override void OnCalloutAccepted()
    {
      // Method implementation
    }
    /// <summary>
    /// Starts the bomb defuse mission.
    /// </summary>
    private void StartBombDefuseMission()
    {
      // Method implementation
    }
    /// <summary>
    /// Ends the mission, marking it as completed or failed based on the bomb defusal status.
    /// </summary>
    private void EndMission()
    {
      // Method implementation
    }
  }
Mods, programmieren, Gaming

Meistgelesene Beiträge zum Thema Programmieren