UI-Dichte-Experiment mit Svelte
(cybernetic.dev)- Grid ist ein Experiment, bei dem Nutzer die UI-Dichte anpassen können; derzeit wird eine neue Version entwickelt
- Matrix als Nachfolgeprojekt zielt auf eine noch höhere UI-Dichte und zeigt eine Korrelationsmatrix für den S&P 500 und den NASDAQ-100
- Wenn S&P-500-Bestandteile ausgewählt werden, werden Korrelationen über mehr als 250.000 Zellen und mehr als 30 Millionen Datenpunkte verarbeitet
- Einige Funktionen fehlen in der Vorschau unten; zur Beurteilung muss die Vollbild-UI von Matrix geöffnet werden
- Die Materialien auf der Website dienen Informationszwecken und sind nicht als Anlageberatung oder Empfehlung zum Kauf oder Verkauf von Wertpapieren zu verstehen
UI-Dichte-Experiment von Grid zu Matrix
- Grid war ein Projekt zum Experimentieren mit anpassbarer UI-Dichte; eine neue Version befindet sich in Entwicklung
- Matrix ist ein Experiment, das die UI-Dichte noch weiter ausreizt, und bietet eine groß angelegte Korrelationsmatrix für den S&P 500 und den NASDAQ-100
- In der Vorschau unten ist ein Teil von Matrix zu sehen, einige Funktionen sind jedoch nur in der Vollbild-UI von Matrix verfügbar
Umfang der von Matrix verarbeiteten Daten
- Wenn die Bestandteile des S&P 500 als Datensatz ausgewählt werden, umfasst dies mehr als 250.000 Zellen
- Es werden Korrelationen über mehr als 30.000.000 Datenpunkte berechnet
- Weitere Informationen finden sich auf der About-Seite des Matrix-Experiments
- Die home-Seite bietet einen Überblick über alle derzeit verfügbaren Datenvisualisierungs-Experimente
In der Vorschau verfügbare Bedienelemente
- Zur Auswahl bei Dataset stehen S&P500 und NASDAQ100
- Bei Horizon können 1M und 1Y gewählt werden
- Als Option zur Datenvorverarbeitung gibt es das Kontrollkästchen Detrend Data
- Die Sortieroptionen sind wie folgt
- Sort By: Cluster, AvgCorr, MedCorr, Name
- Cluster Method: Avg, Complete, Ward
- Sort Direction: Asc, Desc
- Die Vorschau-UI enthält Minimap, Search, Rolling Correlation Chart sowie Hinweise zu Zellen bei Hover und Klick
- Im angezeigten Zustand werden Symbols 101, Correlations 5,050 und Cells 10,201 angezeigt
Hinweise zur Nutzung
- Die Materialien auf der Website dienen Informationszwecken und stellen weder Anlageberatung noch eine Empfehlung zum Kauf oder Verkauf von Wertpapieren dar
1 Kommentare
Hacker-News-Kommentare
Derzeit experimentiere ich mit Sortierung und Darstellung. Wenn aus Jira importierte Issues blockiert sind, frage ich mich, ob ich dafür eine separate boolesche Spalte zum Sortieren/Filtern brauche oder ob es reicht, eine andere Spalte zu stylen, zum Beispiel die verstrichene Zeit. Ich prüfe gerade, ob man in einer Tabelle mit mehr als 100 Zeilen allein anhand orangefarbener, roter und fett roter Werte in einer Zelle erkennen kann, welche Einträge jetzt bearbeitet werden müssen
Was mir an der Tabellenansicht dieses Experiments gefällt, sind die Live-Aktualisierung, stabile Sortierung über mehrere Spalten, Zeilenhervorhebung bei Mouseover, ausgegraute nachgestellte Nullen, unaufdringliche Farben (im Grunde etwa drei Paare) und sparklineartige Grafiken in den Spalten 24H Low/High. Weniger gut finde ich die fast unsichtbare horizontale Scrollbar, die breite vertikale Scrollbar mit angehefteten Grafiken, dass unklar ist, wie 24H Low/High tatsächlich sortiert wird, und das fehlende Filtern. Im Vergleich zu meinen Reports fällt außerdem auf, dass die Schwankung der Wertbreiten nicht besonders groß ist. Sobald statt überwiegend Zahlen auch Text gemischt vorkommt, wird das Management der Spaltenbreiten schwieriger
Helix wirkt auf mich schwer lesbar und wenig nützlich. Solche Grafiken passen besser zu periodischen Daten, deren Zyklus deutlich kürzer ist als der gesamte Datenbereich
Der Würfel hat meine Neugier geweckt, aber ich sehe seinen Vorteil nicht wirklich. 3D-Visualisierungen sind normalerweise weniger effektiv als drei 2D-Grafiken mit demselben Inhalt, hier also drei Streudiagramme. Das liegt an Verzerrungen bei der Projektion von 3D auf 2D und daran, dass auch unser grundlegendes Gefühl für Positionsvergleiche dadurch unschärfer wird. Ich frage mich, welcher Effekt hier beabsichtigt war
Die Art, wie man in die Vergangenheit möglichst natürlich hineinsehen kann und zugleich neuere Daten größer erscheinen, ist wirklich genial. Kaum zu glauben, dass ich selbst nicht auf diese Idee gekommen bin
Seit „Material Design“, das Google faktisch begraben hat, gibt es viel zu viel Aufblähung, weiße Fläche, übermäßige Abstände und Verschwendung in Form von „Luftigkeit“
Träumen darf man ja
Unternehmen möchten nicht zwei sehr unterschiedliche UIs für verschiedene Plattformen entwerfen, und im Allgemeinen möchten Nutzer, dass sich die auf einer Plattform erlernte Bedienung auf andere Plattformen übertragen lässt
Auch Barrierefreiheit ist einfacher, wenn ein Design Raum für große Schrift bietet und keine präzise motorische Kontrolle verlangt. Während ich sehe, wie mein Vater sichtbar altert, merke ich, dass selbst Apps, die mir großzügig wirken, aus dieser Perspektive noch nicht großzügig genug sind
Solange sich die Kräfte nicht ändern, die uns von Anfang an in diese Richtung gedrängt haben, sehe ich nicht wirklich, wie wir zu informationsdichten Designs zurückkehren können
Diese Bildschirme verwenden eine einheitliche Größe in einer Monospace-Schrift. Das hat einen Retro-Charakter wie Textmodus-UIs aus den 1980ern, und wenn das eine beabsichtigte Einschränkung war, ist das in Ordnung
Aber wenn man bei Schriftart und Größe eine saubere Hierarchie einführen könnte, ließen sich viel mehr Informationen auf dem Bildschirm unterbringen
Als einfaches Beispiel: Die „About“-Box nimmt derzeit fast ein Viertel eines Smartphone-Bildschirms ein. Mit einer kleineren Proportionalschrift könnte man dieselben Informationen auf halb so viel Platz unterbringen und sie trotzdem auf dem Handy lesbar halten
Wenn man die Arbeiten hervorragender Informationsdesigner wie Edward Tufte betrachtet, sieht man oft, wie sehr sie darauf fixiert sind, die Typografie richtig hinzubekommen. Seine Bücher verwenden auch im Fließtext außerhalb von Visualisierungen mehrere typografische Elemente und Größenstufen
Ich frage mich, ob sich die Dichte hier auf Performance, Visualisierung oder etwas anderes bezieht
Der Einfluss ist auf jeden Fall deutlich spürbar
Der Versuch, mit React eine ähnliche UI zu bauen, ist leistungstechnisch nicht gut gelaufen und im Großen und Ganzen gescheitert. Um eine akzeptable Rendering-Performance zu erreichen, wurde React für die Datentabelle komplett umgangen. Trotzdem muss man die Anzahl der DOM-Elemente pro Zeile minimieren, damit schon das Browser-Rendering selbst nicht unerträglich langsam wird
WinForms ist wahrscheinlich immer noch mein Lieblings-UI-Framework. Es ist definitiv ein grobschlächtiges Werkzeug, aber man kann es nach Belieben schwingen. Es ist enorm flexibel, ziemlich leicht zu benutzen, ziemlich schnell und brutal hässlich
Man kann einfach beliebige Objekte hineinwerfen, und es funktioniert. Man kann ein PropertyGrid in einem PropertyGrid verschachteln, es auf Objekt-Sammlungen erweitern und Controls beliebig tief verschachteln. Man muss die innere Struktur der Objekte, an die die UI gebunden ist, weder anfassen noch sich darum kümmern (mit gewissen Grenzen)
WinForms ist für mich das platonische Ideal eines UI-Frameworks. Wenn ich es selbst entwerfen würde, sähe es vermutlich genau so aus
Ich mag Informationsdichte wirklich sehr
Ich sammle alte Zeitungen, und damals war die Informationsdichte viel höher. Wenn ihr ein großartiges Coffee-Table-Book sucht, sucht nach "nytimes complete front pages". Im oberen Bereich der gefalteten Seite steckte wirklich sehr viel Kerninformation
Ich halte hohe Informationsdichte für gleichbedeutend mit hoher Intelligenz. Die Sortierprioritäten richtig zu setzen, ist sehr wertvoll und wichtig
In den letzten Jahren schien sich das Web in die entgegengesetzte Richtung zu bewegen, deshalb ist es schön zu sehen, dass es immer noch Leute gibt, die in die andere Richtung rudern
Als weiteres Beispiel ist mein Blog so gestaltet, dass man per Zoom ungefähr 20 Jahre an Beiträgen auf einmal sehen kann (https://breckyunits.com/)
Außerdem werde ich bald etwas veröffentlichen, das Cheatsheets mit hoher Informationsdichte bewirbt und leichter erstellbar macht. Ich denke, der Name Leet Sheet steht fest (https://pldb.io/blog/leetSheets.html)
Das ist interessant, weil es mir etwas über mein Sehvermögen und mein visuelles Verständnis zeigt
Die Ansicht "Grid" ist völlig okay. Die Ansicht "Table" ist unbenutzbar
Ich habe oft das Problem, bei langen Zeilen wie diesen den Überblick zu verlieren, in welcher Zeile ich mich gerade befinde. Mir ist klar geworden, dass das daran liegt, dass meine Blickdominanz beim Bewegen der Augen leicht nach rechts wandert. Meine Augen sind minimal fehljustiert, sodass ich Prismenkorrekturen bekomme, und eine kürzliche Änderung dieser Prismenkorrektur hat die Situation verbessert
In dieser Darstellung verschlimmert die Position der Markierungslinien in den Spalten low/high das versehentliche Verrutschen um eine Zeile (es passiert immer nach oben) noch weiter
Für mich wäre es besser, wenn das Liniendiagramm entweder der Hintergrund der Zelle wäre oder unterhalb der Zelle läge. Die Zeilen brauchen außerdem ein dezentes Streifenmuster
Die Lehre für mich als schnellen und geübten Leser ohne Seh- oder kognitive Beeinträchtigung ist, dass man bei solchen Tabellen nicht einfach annehmen sollte, es sei okay, Informationen über breite Zeilen hinweg zu verteilen. Man muss Nutzerinnen und Nutzern Hinweise zum Festhalten der Zeile geben, während sie horizontal scannen. Dünne Trennlinien allein reichen nicht aus, und ein geänderter Hintergrund bei Mouseover funktioniert auf Touch-Geräten nicht
Im jetzigen Zustand mache ich es so, dass ich bei solchen Dingen das Fenster aus dem maximierten Zustand hole und die Fensterhöhe reduziere, dann scrolle ich und benutze die Unterkante des Fensters oder die Titelleiste eines anderen Fensters als konstante "Kante", um die Daten zu verfolgen. Auf dem iPad habe ich dafür auch schon Papier oder eine Karte benutzt
Erstens ist, wie schon erwähnt, der Kontrast zwischen einer Zeile mit Mouseover bzw. Hervorhebung und einer normalen Zeile viel zu gering. Selbst für mich mit guter Sehkraft ist das schwer zu erkennen
Zweitens sollten Tabellenzeilen oder -spalten für bessere Lesbarkeit mit mindestens zwei kontrastreichen Farben gestreift sein. Zum Beispiel weiß, schwarz, weiß, schwarz. Diese Tabelle ist von Anfang bis Ende komplett schwarz
Drittens ist der Kontrast der Tabellenränder so niedrig, dass sie fast unsichtbar sind. In Kombination mit der einheitlichen Farbgebung von Zeilen/Spalten verschlechtert das die Lesbarkeit weiter
Kurz gesagt: Die Tabelle selbst ist okay, die Farben sind furchtbar
Die UI-Elemente hier sehen sehr cool aus, aber ich frage mich auch, worin das Experiment bestand und zu welchen Schlussfolgerungen es gekommen ist
Wenn man nur die Zahl rein interaktiver Elemente betrachtet, ist in meiner Erfahrung (Svelte 4) oft eher das Rendering als die Interaktivität das erste Problem. Das heißt, Performance-Probleme treten bei derselben Anzahl von Elementen auf, unabhängig davon, ob sie interaktiv sind. Wie du es auf einigen dieser Seiten umgesetzt hast, ist die Lösung dann, auf Canvas zu gehen
Svelte kann auch auf Canvas zeichnen. Es gibt auch Threlte: https://threlte.xyz/
Was die interne Performance von Svelte angeht, glaube ich nicht, dass man so etwas wie Jotai in demselben Maß braucht wie bei React, um unnötige Re-Renders zu verhindern
Wenn man Svelte mit einem hervorragenden WebGL-Framework wie Phaser kombiniert, ist sehr schnelles Grafik-Rendering möglich: https://phaser.io/news/2024/03/official-phaser-3-and-svelte-...
Dieses Helix-Diagramm ist wirklich faszinierend. Ob es sich tatsächlich praktisch einsetzen lässt, weiß ich nicht, aber es sieht unglaublich cool aus.
Wenn das ein Experiment war, was war dann das Fazit?