Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 455
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

NytroX hat geschrieben: 31.08.2022, 16:49 Ist halt ein Linux-Problem.
Nope. Das Problem ist Versionierung und die korrekte Abbildung von Abhängigkeiten. Das funktioniert nicht, weil sich Leute nicht die erforderliche Mühe geben, Versionsnummern falsch rausgeben oder Abhängigkeiten einfach gar nicht deklarieren, obwohl sie sie haben. Das hat nichts mit Linux zu tun, nichts mit DLLs, nichts mit Paketmanagern und nichts mit OOP. Wenn ich Code kapseln und recyceln will, dann muss ich mir statt der Implementierung genau diese Gedanken machen und das ist auch nicht immer günstiger.

Ich meine es ist ja wohl offensichtlich, dass ich, wenn ich Softwarekomponenten aus zwei unterschiedlichen Paketmanagern beziehen will, in beiden unter denselben Versionen dieselben Inhalte und Abhängigkeiten gepflegt sein müssen. Passt jetzt nicht zu meiner Lebenserfahrung. Auch nicht unter Windows oder sonst irgendwo.
NytroX hat geschrieben: 31.08.2022, 16:49 Oder lösch' doch mal glibc, oder den Loader (ld).
WTF? Was bitte erwartest soll da passieren?
Zumal ld nicht der Loader ist; man ld ;)
Bin jetzt nicht so wahnsinnig tief in Linux drin, aber ich würde erwarten, dass der Loader da auch irgendwo versteckt als Kernelkomponente ausgeführt ist.
XML/JSON in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
NytroX
Establishment
Beiträge: 265
Registriert: 03.10.2003, 12:47

Re: Jammer-Thread

Beitrag von NytroX »

Ja das ist wohl richtig, es hat nichts direkt mit Linux selbst zu tun, sondern wie du beschreibst eher mit der Mentalität einiger Entwickler.
Leider trifft man es dort oft an, dass die Entwickler gewisse Voraussetzungen erwarten, und leider sind die halt je nach Distro dann nicht da.
Kann man ja auch verstehen, keiner hat Lust sich mit 900 Möglichkeiten rumzuschlagen - aber das macht die Usablilty halt schwierig.
War jetzt auch eher wertfrei gemeint - nicht "pro" oder "kontra".

Die Linux-Welt ist cool, weil jeder einfach sein eigenes Ding machen kann.
Aber gleichzeitig ist es halt blöd, weil jeder sein eigenes Ding macht. ;-)
Als Basics kann man eigentlich nur die Syscalls voraussetzen (und nicht mal einen Loader) - einfach weil Linux ein Kernel ist, und kein OS.
Das muss einem halt klar sein und es macht manche Dinge halt kompliziert (wie z.B. die Installation von Docker, die dann auf jedem System anders ist).

Und im Zweifelsfall installiert ein "yum install docker" dann halt auch einfach... podman. (WTF?) Und KEIN docker. https://stackoverflow.com/questions/593 ... got-podman
Ich war heute morgen einkaufen und in meiner Wurstpackung war Käse drin. Ist auch für aufs Brot, also ist das Gleiche (?).

(Alpine binaries sind normalerweise statisch compiled gegen musl, darum laufen sie auch ohne glibc und ld - aber war vielleicht nicht das beste Beispiel)

man ld: https://www.systutorials.com/docs/linux/man/8-ld/ (ld.so, ld-linux.so* - dynamic linker/loader)
:-P

Den Loader im Kernel gab es tatsächlich mal, wurde aber ewig nicht geupdated und (ich glaube) mittlerweile entfernt. Solange man also seine Datei als ausführbaren Code ins Memory bekommt, ist dem Kernel quasi egal wie man das geschafft hat.
Hat aber auch hier wieder Vor- und Nachteile: für Wine ist es super, dass er einfach auch dlls mehr oder weniger nativ laden kann :-)

PS: Ich finds super, auch gegensätzliche Meinungen dazu zu hören, also +1 für deinen Beitrag :-)
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 455
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

NytroX hat geschrieben: 31.08.2022, 19:35 War jetzt auch eher wertfrei gemeint - nicht "pro" oder "kontra".
Ja von mir auch; ich erlebe dein Problem öfter mit Java/Maven/Apache/irgendwelchen selbtsgebauten fatjars. Ist eigentlich genau dasselbe, wenn man einen Schritt zurück tritt. Was ich bei Kollegen sehe, die mit npm zu tun haben müssen lässt einen auch nicht gerade glauben, dass da irgendwas irgendwie besser wäre. Die Leute verstehen es nur weniger.
NytroX hat geschrieben: 31.08.2022, 19:35 Die Linux-Welt ist cool, weil jeder einfach sein eigenes Ding machen kann.
Aber gleichzeitig ist es halt blöd, weil jeder sein eigenes Ding macht. ;-)
Das empfinden sicher viele so. Letztlich gibt es aber Regeln, die einfach gelten, egal ob sie jemand aufschreibt oder ob man sich daran halten will. Wie eben das mit den Abhängigkeiten richtig zu machen.

NytroX hat geschrieben: 31.08.2022, 19:35 Ich war heute morgen einkaufen und in meiner Wurstpackung war Käse drin. Ist auch für aufs Brot, also ist das Gleiche (?).
Vegane Wurst, ja? Es gibt keinen Käse. Sonst schicke ich dir die Wokenazis und dann wirrst du gecancelt ;)

NytroX hat geschrieben: 31.08.2022, 19:35 man ld: https://www.systutorials.com/docs/linux/man/8-ld/ (ld.so, ld-linux.so* - dynamic linker/loader)
:-P

Den Loader im Kernel gab es tatsächlich mal, wurde aber ewig nicht geupdated und (ich glaube) mittlerweile entfernt. Solange man also seine Datei als ausführbaren Code ins Memory bekommt, ist dem Kernel quasi egal wie man das geschafft hat.
Hat aber auch hier wieder Vor- und Nachteile: für Wine ist es super, dass er einfach auch dlls mehr oder weniger nativ laden kann :-)
Bei mir gibt's via man die beiden:
ld - The GNU linker
gold - The GNU ELF linker

Ich kenne den Loader als die Komponente, die aus sowas wie ELF oder PE die tatsächlich ausführbare Repräsentation macht und hätte deswegen auch nicht erwartet, dass jemand sowas im Linker implementiert, da das eigentlich eine komplett andere Aufgabe ist. Spielt keine Rolle, vermutlich hast du von der praktischen Umsetzung mehr Ahnung als ich. Meine Welt hört eigentlich bei LLVM auf :)

NytroX hat geschrieben: 31.08.2022, 19:35 PS: Ich finds super, auch gegensätzliche Meinungen dazu zu hören, also +1 für deinen Beitrag :-)
Ich glaube gar nicht, dass wir so gegensätzliche Meinungen haben; war mehr als Ergänzung gemeint. Ich meine ich habe bei mir die Bibliotheken auch so gebaut, dass sie statisch gelinkt werden und geprüft wird, dass alle zusammenfließenden Abhängigkeiten auch gegen dieselbe Version gebaut wurden. Wirklich dieselbe. Weil ich in meinem Leben mit ODR-Violationartigen Problemen eigentlich immer die meiste Zeit versenkt habe und es halt einfach unfassbar nervt, wenn man einen Tag durch irgendwelchen Code debuggt, irgendwann feststellt, dass da einfach nicht das ausgeführt wird, was man sieht und dann feststellt, dass mal wieder irgendwer irgendwohin eine Klasse kopiert hat, weil das halt gerade einfacher war als die Architektur richtig zu machen oder das Buildskript anzupassen oder eine nicht mehr gewartete Abhängigkeit zu ersetzen. Eigentlich auch so eine Sache, die Paketverwaltungssysteme für einen machen müssten, aber dann müssten sie ja in die Pakete reinschauen und verstehen was sie bedeuten :)
XML/JSON in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 7855
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Fun Fact: Jeder Win32-Prozess sollte beim Start eine Funktion aufrufen, die diese nervigen Dialoge (und weitere) deaktiviert.
Best practice is that all applications call the process-wide SetErrorMode function with a parameter of SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application.
Das konnten sie natürlich nicht als Manifest-Eintrag realisieren. Das eine Ding, das man gern direkt bei Prozessstart machen würde, bevor jedweder Code läuft oder jedwede Abhängigkeit geladen wurde. Das geht nur via Funktionsaufruf. Aber für sowas wie DPI-Awareness ist im Manifest Platz …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 455
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Eine halbe Stunde versucht, in Outlook 365 verbleibende Termine einer Serie abzusagen, die mir nicht gehört. Ein verrücktes Feature. Wäre bestimmt teuer zu implementieren :-(
XML/JSON in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 7855
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

  1. IntelliSense stürzt ab
  2. Visual Studio sammelt Informationen und bittet mich, einen Bug Report zu senden
  3. ich sende einen Bug Report
  4. Visual Studio hat eine Datei IntelliSenseRepro.zip angehängt mit Kopien meines Quelltexts, Befehlszeilen, usw.
  5. Erste Antwort des Support-Chinesen: Können Sie uns Quelltext schicken, der das Problem reproduziert?
Es ist wie die Parodie eines Support-Portals.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 7855
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Krishty hat geschrieben: 08.09.2022, 09:16Es ist wie die Parodie eines Support-Portals.
Mal trollen: Weil die Support-Chinesen eindeutig keine Fachkenntnisse besitzen, ihre Jobs zu erfüllen, habe ich ein Ticket eröffnet, dass die Data Collection von Visual Studio fehlerhaft ist, denn sonst würden sie sich nicht beschweren, dass sie nicht genug Daten haben.

https://developercommunity.visualstudio ... ry=problem

Das ist natürlich bloß ein unterschwelliges „euer Prozess ist scheiße, ändert ihn“, aber ich hab’s eh aufgegeben und bin an dieser Stelle nur noch auf die Reaktion gespannt!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4153
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

Krishty hat geschrieben: 08.09.2022, 16:17
Krishty hat geschrieben: 08.09.2022, 09:16Es ist wie die Parodie eines Support-Portals.
Mal trollen: Weil die Support-Chinesen eindeutig keine Fachkenntnisse besitzen, ihre Jobs zu erfüllen, habe ich ein Ticket eröffnet, dass die Data Collection von Visual Studio fehlerhaft ist, denn sonst würden sie sich nicht beschweren, dass sie nicht genug Daten haben.

https://developercommunity.visualstudio ... ry=problem

Das ist natürlich bloß ein unterschwelliges „euer Prozess ist scheiße, ändert ihn“, aber ich hab’s eh aufgegeben und bin an dieser Stelle nur noch auf die Reaktion gespannt!
Der Titel ist nur geil. Um es mal polemisch zu formulieren: da weiß man gleich, dass man es nicht mit einem "Open Source" Entwickler zu tun hat. Die würden unintuitiver Weise wohl eher das Gegenteil verlangen ^^

EDIT: LOL
Thanks for your feedback. Could you please follow the documentation to create a dump file so that we can investigate further? Thanks. We look forward to hearing from you!
Benutzeravatar
Krishty
Establishment
Beiträge: 7855
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Support Dark and Light themes in Win32 apps klingt vielversprechend – mit Windows 11 endlich auch Dark Theme in komplett klassischen Anwendungen?!

Dann entpuppt es sich aber als ein Sammelsurium von allem, was bei MS seit einem Jahrzehnt falsch läuft.
  • Letztlich geht es nur um die Farbe der Titelleiste, sonst nichts.
  • Das Titelleisten-Feature entbehrt jeder Planung oder Struktur. Inkohärente API-Aufrufe mit nichtssagenden Namen und Speicher-Casting, wo ein Bit im Executable-Header oder ein Eintrag im Manifest gereicht hätte.
  • Viel blabla über C-Grundlagen („die Funktion erwartet die Größe des Parameters, also übergeben wir sizeof(param)) und kein Wort über die wirklich harten Probleme: Dass man eine zusätzliche Lib linken muss und welche das ist; ob der Aufruf auf älteren Windows-Versionen überhaupt möglich ist und falls ja, ob er dann fehlschlägt.
  • Unklares bis widersprüchliches Wording der Funktionalität: Bei der Titelleiste weiß ich noch immer nicht, ob ich den Code jetzt bei jedem Theme Change aufrufen muss oder nur einmal am Anfang. Pro beider Möglichkeiten finde ich je mehrere Sätze.
  • Der Beispiel-Code wurde offenbar nie wirklich getestet oder produktiv eingesetzt. Sonst würde man nicht ein bool mit static_cast casten zu … bool. Oder man würde die Farbe in den Helligkeits-Check zumindest mit const reingeben.
  • Die „Lösung“ zur Feststellung, ob wir ein Dark Theme haben, ist von einem Praktikaten hingeklatschter Boilerplate-Code. Statt einfach eine eindeutige fucking API zur Verfügung zu stellen. Meine Fresse
Es liest sich, als wäre das alles geplant, implementiert, und dokumentiert worden von jemand, der keine Ahnung von irgendwas hat. Wie eigentlich alles, was das Windows-Team seit 2006 oder so verbrochen hat.

Das hier ist exemplarisch:
If you switch to Light mode, you will have to change DWMA_USE_IMMERSIVE_DARK_MODE from 20 to 0 for the title bar to be drawn in light mode colors.
DWMWA_USE_IMMERSIVE_DARK_MODE (sie haben oben zwei Mal ein W im Namen vergessen, der eh viel zu lang ist) ist eine #define-Konstante. Deren Wert soll ich ändern, wenn der Benutzer zum Light Theme wechselt. Aha.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 455
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Krishty hat geschrieben: 10.09.2022, 23:54 DWMWA_USE_IMMERSIVE_DARK_MODE (sie haben oben zwei Mal ein W im Namen vergessen, der eh viel zu lang ist) ist eine #define-Konstante. Deren Wert soll ich ändern, wenn der Benutzer zum Light Theme wechselt. Aha.
Hast du's ausprobiert? Vielleicht geht's ja wirklich nur, wenn du den Quellcode hast und da eine 20 in eine 0 änderst und dann alles neu baust ;)
XML/JSON in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 7855
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Zwei Versionen bauen – eine für Light Theme und eine für Dark Theme – ist tatsächlich die eleganteste Lösung. JETZT habe ich den Artikel endlich verstanden! Danke :D
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4517
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Ich habe gerade mehr oder weniger aus Versehen dem Upgrade-Auf-Ubuntu22-Dialog nachgegeben :-(
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 455
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Schrompf hat geschrieben: 12.09.2022, 10:04 Ich habe gerade mehr oder weniger aus Versehen dem Upgrade-Auf-Ubuntu22-Dialog nachgegeben :-(
Ist es so schlimm wie ich diesmal denke? Früher hab' ich mal noch jedes Release mitgemacht. Bevor die Welt aufgehört hat Gnome 2 zu entwickeln und in tausend Teile zu zerfasern die alle nicht funktionieren weil irgendein anderer Aspekt komplett verbuggt ist :-(
XML/JSON in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Schrompf
Moderator
Beiträge: 4517
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Ja, ist es. Das Startmenü ist fort, irgendein Dings ist beim ersten Booten nach dem Update gecrasht und wurde entfernt - wahrscheinlich war's das. Slack öffnet nicht mehr. Alle Programme hatten kein Internet mehr, obwohl Ping, DNS und alles von der Kommandozeile aus funktionieren. Das Ding hat mir alle Compiler deinstalliert! Warum auch immer. Aber nur die Compiler. Es ist echt nur das clang-Executable aus /usr/lib/llvm-10/bin verschwunden, alles rundrum war noch da. Firefox musste deinstalliert werden, weil es jetzt über snap kommt. Läuft trotzdem noch. Die Task-Leiste ist immer noch unbenutzbar. Und wenn man an der falschen Stelle klick anfängt und dann ein paar Millimeter weiter moved, auf den Zweitscreen oder von der Taskleiste runter, lockt die Maustaste, bis man mal wüst rumgeklickt hat.

Ich überlege ernsthaft, Windows zu verlassen - Win11 ist ein übergriffiges Monster und die Prachtdarstellung der modernen Software-Welt. Aber ich muss wohl erneut nach ner Distribution suchen. Irgendeine, die mein Wohl über das der zwanzig Coder stellt, die an dem Ding arbeiten.
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4517
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Bonus-Schmerz: irgendeine Security-Erwägung hat die __malloc_hook-Symbole aus den Systemheadern entfernt. Ich habe noch keine Ahnung, wie ich in unserem Callstack-Dumper jetzt malloc ersetzen soll, denn ich kann ja schlecht in nem SignalHandler eine .so hinzuladen, wie die offizielle Doku es empfiehlt.
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 455
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Schrompf hat geschrieben: 13.09.2022, 20:24 ... denn ich kann ja schlecht in nem SignalHandler eine .so hinzuladen, wie die offizielle Doku es empfiehlt.
Ich glaube das Problem ist einfach, dass die Komplexität mittlerweile an einem Punkt ist, an dem zu viele Leute solche Zusammenhänge oder ähnlich gelagerte noch überschauen können. Ich meine früher hat man einfach in ein Log geschrieben und dann war es da drin. Ich will gar nicht davon anfangen was da heute alles passiert. Das ist bestimmt günstiger heute...bestimmt.
XML/JSON in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 7855
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Falls ihr zu gute Laune habt: https://nitter.pussthecat.org/danluu/st ... ]Microsoft built a competitor to Google Docs in 1997. MS Office used its political clout to kill the project.[/quote]
See also, NetMeeting.

Video calls with whiteboard, app sharing, etc. in 96, embeddable in HTML, VB apps, Office, etc.

Superseded by LiveMeeting after the PlaceWare acquisition, but LM never added some of the key NM features; LM was superseded by worse products (Lync, Teams).
Das entspricht ungefähr meinem täglichen Empfinden im Umgang mit Teams: „Das hat in meiner Jugend funktioniert. Sowas konnte die Menschheit mal. Irgendwas ist in den letzten 15 Jahren gravierend schiefgelaufen“.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Matthias Gubisch
Establishment
Beiträge: 383
Registriert: 01.03.2009, 19:09

Re: Jammer-Thread

Beitrag von Matthias Gubisch »

Bloom ist ja vom Prinzip her echt einfach, aber irgendwas hab ich verhauen, das flickert und flackert alles vor sich hin, gruselig....
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Antworten