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
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Alexander Kornrumpf hat geschrieben: 23.11.2022, 08:47Ich besuche die Seite (wie jede Seite) mit NoScript und sehe die "normalen" Youtube-Vorschau-Frames. Laut NoScript versucht die Seite einen ganzen Rattenschwanz von Scripten zu laden, die nicht von deiner Seite kommen
This.

Ich weiß auch nicht, wie es „richtig“ geht, aber was ich auf meinem Blog mache (bspw. hier):
  1. Iframe mit dem Video-Thumbnail (von meinem eigenen Server) und einem Anchor <a>, der die ganze Fläche abdeckt.
  2. Klick auf den Anchor leitet zum eigentlichen Video weiter. Da alles in einem Iframe liegt, ändert sich lediglich der Ausschnitt, in dem vorher das Thumbnail angezeigt wurde.
  3. Bei mir ist der Iframe inline, aber man kann ihn zwecks Lesbarkeit/Wartbarkeit als separate Datei ablegen. Ich bündle einfach gern.
Das lädt definitiv nichts Fremdes, so lange man nicht klickt.

YMMV, vllt möchtest du einen Warntext anzeigen oder den Anchor nur auf einen Akzeptiere-Knopf legen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Also, ich habe kein NoScript sondern nur uBlock Origin. Bei mir sieht es in Firefox so aus:

Vorher dem Klicken:
firefox_grMloPLH3y.png
Nach dem Klicken:
firefox_lejeChWzNV.png
(Wobei nach dem Klicken oben noch 3 andere Server von Google kontaktiert werden).

Ich denke, das Problem liegt NoScript. Denn es wird auch https://jonathank.de/games/js/dsgvo-video-embed.js lokal eingebunden, was eben dafür sorgt, dass beim Seitenaufruf das Laden vom Youtube Server verhindert wird.

Das lustige scheint mir zu sein, dass wenn man sich den Seitenquelltext anschaut dort wirklich nur diese zwei YoutubeßDomains aus meinem ersten Screenshot drinstehen. All die anderen Aufrufe die bei euch von NoScript blockiert werden können also nur von den Youtube-Servern kommen. D.h. mit aktiviertem NoScript hat man hier weniger Privacy und mehr JS also ohne...

(Ich mache eigentlich nie etwas mit JS, aber wenn ich mich recht erinnere habe ich diese Lösung damals gewählt, weil ich damit sehr bequem YT-Videos einbinden kann. Ich kopiere einfach den HTML Code von der YT Seite (den kann man sich da ja anzeigen lassen) und beim Seitenaufruf wird es durch das JS Snippet datenschutzfreundlich gemacht - ich muss also nicht für jedes Video das ich zeigen will selber Code anpassen).
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Huh?

Der Punkt ist, dass man kein Skript brauchen darf um "sicher" zu sein, wenn du es "richtig" machen willst. Der default, ohne alle Skripte, muss sein, dass nichts geladen wird.

"Mir ist Datenschutz wichtig, aber nur wenn du JS an hast" ist eine paradoxe Position.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Thunderbird ist die größte Shitshow überhaupt. Jetzt kann ich keine Mails mehr löschen, so lange ich mal in einer Mail nach einem Wort gesucht habe:
  • Ich markiere eine Mail zum Löschen in der Mail-Liste
  • Das löst die Mail-Vorschau aus
  • Die Mail-Vorschau hat jetzt ein Suchfeld, weil ich letztes Mal was gesucht habe
  • Fokus geht von der Mail-Liste zum Suchfeld
  • Wenn ich die Entf-Taste drücke, geht das ans Suchfeld statt an die Mail, die ich 0.001 Sekunden zuvor angeklickt habe.
Ich muss entweder das Kontextmenü öffnen oder das Suchfeld schließen. Beides natürlich mit Maus.

ABER TASTATUREN NUTZT JA HEUTE EH NIEMAND MEHR

RIGHT?

… right?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4831
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, klingt wenig durchdacht. Aber evtl. kannst Du das Suchfeld mit Escape schließen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Die haben doch vor einiger Zeit extra ihr Entwicklerteam aufgestockt um Thunderbird endlich großartig zu machen. Ist seit dem irgendetwas sinnvolles passiert? Oder haben sie einfach nur eine Menge Bugs und hässliche monochrome Icons eingebaut und die Downloadgröße verdoppelt? Wieso braucht man dafür ein so viel größeres Entwicklerteam?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Gemäß mehrere Empfehlungen probiere ich jetzt mal VSCode statt VS, aber ich komme noch gar nicht zum Editieren, weil ich keinen Build hinkriege.
  • Das Internet sagt, ich müsste in tasks.json Umgebungsvariablen ansprechen können, und mein Build-Task müsste die Standard-Variablen aus der Benutzerumgebung erben. Aber weder $env.ComSpec, $env:ComSpec, noch ${env:ComSpec} werden aufgelöst.
     
  • Tasks vom Typ shell starten standardmäßig in PowerShell. Ich hasse PowerShell aus mindestens zwei schwerwiegenden Gründen. Zumindest funktioniert

    Code: Alles auswählen

    "options": {
    	"shell": {
    		"executable": "cmd",
    		"args": ["/C"]
    	}
    },
     
  • Nun habe ich den Build mit Ach und Krach am Laufen, aber ich finde keinen ProblemMatcher, der die Zeilen der Ausgabe auf Warnungen und Fehler parsen kann. Visual Studio öffnet zumindest via Doppelklick die Datei & Zeile, aber VSCode stellt sich total quer …
Edit: Doch, VS Code kann sehr wohl Dateinamen erkennen und öffnen! Das hier geht:

  X:\foo\bar.c(123,45): error blah

Das hier nicht:

  X:\foo ooh\bar.c(123,45): error blah

… also sind Leerzeichen das Problem? Nagut; kann man dem armen VSCode nicht verübeln, dass es nicht ohne Anführungszeichen geht …

  "X:\foo ooh\bar.c"(123,45): error blah

… geht nicht. NEEEEEEEIN

Mal im Ernst an die, die damit geübt sind: Habe ich was versemmelt, oder geht sowas Fundamentales wirklich nicht?!

Edit 2: Defining a multiline problem matcher
Geil! Das ist genau, womit ich den Abend verbringen wollte!

Edit 3: Holy fucking shit … jetzt kriege ich meine Fehler beim Kompilieren angezeigt, aber sie verschwinden nie wieder?!

Dieses Bug-Ticket mit extrem desillusionierten Teilnehmern behauptet, dass VSCode halt eine sehr besondere Vorstellung von Code-Fehlern hat. Die werden durch Extensions angelegt, und Extensions müssen sie auch wieder löschen. Wenn mein Build-Skript nun beim Kompilieren Fehler meldet, muss mein Build-Skript sie auch wieder löschen, sobald ich sie korrigiert habe. WTF

Also geht so etwas wie ein Skript ausführen, um Code zu kompilieren überhaupt nicht mit VSCode, sondern man muss ein Hintergrund-Task einrichten, das als ständiger Linter dient, und VSCode nutzt das dann, um eine Liste von Problemen aufzubauen und automatisch zu bereinigen?! Verstehe ich das richtig?! Wie geht man dann da Linker-Probleme an, die keiner Datei gehören, die in der IDE geöffnet sein kann?!

An dieser Stelle sollte ich mir wohl die C++ Extension ziehen und ein Projekt nach Microsofts Vorstellungen aufsetzen nur um zu verstehen, wie Microsoft sich vorstellt, wie ein C++-Build-Vorgang in VSCode funktionieren sollte und was für Ausgaben der macht und wie er mit Build-Problemen umgeht.

„you can’t just … compile code“

Dafür hatte ich sehr gute Unterhaltung:
every project has that one thing that makes sense to everyone except the developers. this is vscode's.
How come this is still an issue after 2 and a half years?
This piece of software carries the "Microsoft" trademarked brand. Surely there must be someone who can make an executive decision.
It is frankly absurd this hasn't been resolved yet
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Also meine Erfahrung mit VS Code ist, dass es hält was es verspricht. Es ist ein Werkzeug, mit dem man relativ schnell sowas wie eine IDE bauen kann. So gesehen ergibt es auch Sinn das auf JavaScript aufzusetzen. Genauer hinsehen darf man bei den Ergebnissen dann aber nicht. Und mit dem was du da als Sprache verwendest darfst du auch nicht zu weit von gängigen Konventionen abweichen. Ich meine mit meiner lausigen Tyr IDE war ich jetzt in Summe vielleicht einen Nachmittag beschäftigt. Du hast Syntaxhighlighting, eine VS6.0-grade Autocompletion (aka es werden dir zufällige Worte vorgeschlagen, die irgendwann mal in der Prozesslebensdauer getippt oder sonst wie gesehen wurden) es gibt sowas wie toggle comment, was ich ziemlich praktisch finde. Jedem Entwickler mit etwas Erfahrung muss aber klar sein, dass das zu einem vollkommen nichttrivialen Preis kommen muss.
Die Scala-IDE-Entwickler hatten, wenn ich das richtig im Kopf habe, mal beschlossen, dass ihnen jetzt Eclipse zu kompliziert und doof ist und sie jetzt nochmal mit LanguageServer aka VSCode anfangen. War nicht besser solange ich noch Scala verwendet habe und für Wartung verwende ich jetzt das IntelliJ-plugin was auch nicht gerade toll ist. Den Compiler habe ich letztlich genau wegen dieser Entscheidung nicht nochmal in Scala angefangen sondern in Java auch wenn Scala bei funktionierender IDE bestimmt 5-50% produktiver gewesen wäre. Ohne halt nicht.
Auf der Arbeit verwende ich jetzt Go; ist schwer zu sagen, was die Schuld der Sprache und was die Schuld der IDE ist. Wirklich produktiv finde ich beides nicht. Allerdings habe ich mir in dem Zuge nochmal Vim angeschaut und muss sagen das schlagen sie halt dann doch. Letztlich ist man von C++ und vor allem Java IDEs halt gewohnt, dass das Werkzeug funktioniert, Sinn ergibt und die Produktivität deutlich steigert. Gerade letzteres ist halt Aufwand und erfordert in der Implementierung viel Qualität und Disziplin. Das ist konzeptionell mit etwas das man in 5min an eine neue Sprache anbinden kann nicht wirklich gut vereinbar. Es ist einfach, was man bei den Zielen rausbekommt. Für die Tyr IDE hatte ich mir auch nochmal xtext angeschaut und das dann ultimativ verworfen, weil ich nahezu jede Komponente hätte rauswerfen müssen, weil sie nicht zu meiner Parsertechnologie bzw. der Tyr-Grammatik gepasst hätte. Wenn du dir die Diskussion zu was bedeutet Parsen in Tyr bzw. C++ im Tyr-Thread anschaust ist vermutlich schnell einzusehen, dass eine libIDE nicht wirklich gut zu designen ist und man unfassbar viel Erfahrung braucht um da sinnvolle Schnittstellen zu definieren. Wenn mich das JetBrains UI nicht so unfassbar nerven würde, würde ich vermutlich das als Basis nehmen.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Nur, dass ich keine neue Sprache einbauen möchte – sondern schlicht mein Build-System (Ninja) aufrufen können will.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Krishty hat geschrieben: 27.11.2022, 01:30 Gemäß mehrere Empfehlungen probiere ich jetzt mal VSCode statt VS, aber ich komme noch gar nicht zum Editieren, weil ich keinen Build hinkriege.
Die Frage nach der Zielsetzung finde ich schon relevant. In welcher Dimension - bezogen auf C++ - ist VSCode angeblich besser als das erwachsene Visual Studio?

Semi related: https://zfx.info/viewtopic.php?p=69847#p69847
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Krishty hat geschrieben: 27.11.2022, 10:01 Nur, dass ich keine neue Sprache einbauen möchte – sondern schlicht mein Build-System (Ninja) aufrufen können will.
Ich wäre mir nicht sicher, ob das aus deren Sicht ein Unterschied ist.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Alexander Kornrumpf hat geschrieben: 27.11.2022, 10:25Die Frage nach der Zielsetzung finde ich schon relevant. In welcher Dimension - bezogen auf C++ - ist VSCode angeblich besser als das erwachsene Visual Studio?
Das ging an dir vorbei, weil’s am 10.04. auf dem ZFX-Discord war, aber: Ich habe mich über die Performance von Visual Studio beschwert. Konkret braucht VS eine Sekunde (!), um einen Build-Vorgang anzustoßen – also vom Klick des Knopfes / Betätigen der Tastenkombination bis zum Start des eigentlichen Build-Prozesses – was meinen durchschnittlichen Build drei Mal so lange macht wie in einem cmd. Daraufhin sagten mir zwei oder drei Mitglieder, dass sie längst auf VSCode umgestiegen wären und dass das trotz JS/Electron mittlerweile super optimiert und sehr flüssig bedienbar wäre; weit besser als VS.

Die Sekunde Pause vorm Build nervt mich. Darum der Trubel.

Außerdem hatte ich gehofft, dann endlich mal Fuß auf Mac/Linux fassen zu können, weil ich überall die selbe IDE mit selber Build Chain verwenden könnte.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
NytroX
Establishment
Beiträge: 358
Registriert: 03.10.2003, 12:47

Re: Jammer-Thread

Beitrag von NytroX »

Vielleicht ist diese eine Sekunde Verzögerung der Virenscanner?
Ich compile mit VSCode go code und habe ein build, was unter Windows läuft und eines, was unter WSL läuft.
Der Build unter WSL ist quasi sofort da (ca. 120 Millisekunden), auch wenn ich eine exe für Windows baue.
Der Build unter Windows dauert auf meinem privaten Rechner ca. 2-4 Sekunden und auf meinem Firmen-Laptop ca. 11-16 Sekunden. Dabei ist der Windows-Defender der Prozess, der die CPU belegt.
Auf dem privaten Rechner habe ich Ausnahmen eingestellt auf alle Verzeichnisse (Projekt-Verzeichnis, VSCode-Verzeichnis, Output-Verzeichnis). Trotzdem ultra-langsam verglichen mit Linux. Daher baue ich alles was geht immer unter WSL, da wird man den Kack-Defender los.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Nein, ich habe keinen Viren-Scanner.

Ich müsste das mal mit Performance-Tools analysieren. Oder auch nicht, denn VS ist ja Closed Source. Also sollte ich wohl ein Bug-Ticket erstellen, das dann sofort wieder geschlossen wird.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Touch-Bedienelemente sind immer scheiße.

Ich habe Bluetooth Kopfhörer an denen fast alles gut ist. Aber irgendjemand kam auf die Idee, man könnte ja an die Ohrmuscheln Touch-Bedienelemente anbringen. Ich weiß gar nicht wie oft ich schon beim Arbeiten z.B. Musik pausiert und die Kopfhörer abgesetzt habe nur um eine halbe Stunde später festzustellen, dass ich beim Abnehmen aus Versehen wieder ein Play-Signal gesendet habe und die Musik im Hintergrund weiter dudelt. Oder das YouTube Video wieder weiter spielt.
Die Bedienung am Kopfhörer ist dumm und unpräzise und ich will sie nicht benutzen, kann sie aber auch nicht deaktivieren. Meine Rate von ungewollten zu gewollten Eingaben liegt bei etwas 10 zu 1 und das ist ziemlich albern. Obendrein gibt es einige Spezialfunktionen die man selten braucht und die über Gesten gesteuert werden (etwa: Die rechte Seite mit zwei Fingern gleichzeitig antippen) die ich dann dementsprechend nachgucken muss, weil man von alleine nie auf die Idee kommen würde, wie man dieses Feature umschaltet. Ganz im Gegensatz zu normalen Knöpfen oder anderer mechanischer Bedienelemente die intuitiv zu bedienen sind...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Mirror
Establishment
Beiträge: 245
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Mirror »

Ich habe einen neuen Teppich und eine neue Bodenschutzmatte bestellt und laut GLS wurde sie zugestellt. Aber bei mir hat niemand etwas abgegeben oder gar geklingelt. Der Verkäufer hat mir eine Fanatasy-Unterschrift von GLS zugesandt.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

https://www.verbraucherzentrale.nrw/wis ... ommt-28083

Bin gerade in einer ähnlichen Situation, in dem sich der Google Store stur stellt. Das Paket wurde höchstwahrscheinlich im Flur abgestellt und geklaut. Angeblich wurde es einer Nachbarin übergeben, die hat aber nichts gesehen (und ich vertraue ihr) und mir konnte auch niemand eine Unterschrift vorlegen, mit der die Übergabe quittiert wurde.

Ich werde das jetzt knall hart durchziehen und notfalls auch klagen (hab ich noch nie gemacht, aber irgendwann ist ja mal das erste mal). Sorry, aber es kann ja nicht angehen, dass Lieferdienste schlechte Arbeit leisten und damit durchkommen. Das, was man da als Unterschrift aufs Gerät kratzelt ist in vielen Fällen ja so schlecht, das ich mir relativ sicher bin, dass sie vor Gericht nichts wert ist, jeder Paketbote hätte das ja nachmachen können.

Ich hoffe, dass das richtig teuer für GLS wird (und in meinem Falle, DHL). Es müsste jeder immer direkt klagen, wenn was schief geht, denn dann haben die ja zwei Optionen: Paketlieferungen zuverlässig machen (ggf. wird damit das Porto leicht teurer, aber mir kommt es halt auf Zuverlässigkeit an, wenn es dafür 10% teurer ist und ich mir den Ärger spare, tue ich das gerne), oder im Schadenfalls wird unbürokratisch Ersatz geleistet. Aber aktuell ist es so, dass sich ein Privatmann ja fast nie traut, wirklich zu klagen, also können die sich einfach stur stellen, weil das unterm Strich die für sie günstigste Option ist. Und ich will nicht, dass die damit durchkommen. Wenn man es sich leisten kann, für seine Rechte einzustehen, hat man zum Wohle der Allgemeinheit eine moralische Obligation, das auch zu tun.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Mirror
Establishment
Beiträge: 245
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Mirror »

Das, was man da als Unterschrift aufs Gerät kratzelt ist in vielen Fällen ja so schlecht, das ich mir relativ sicher bin, dass sie vor Gericht nichts wert ist, jeder Paketbote hätte das ja nachmachen können.
Ich habe von der Teppichfirma einen Beleg mit Unterschrift bekommen. Das war eine Fantasy-Unterschrift. Ich habe die genaue Uhrzeit bekommen und habe dann, da wir eine Kamera haben, nachgesehen und tatsächlich der Teppich wurde angeliefert. Aber leider in die falsche Etage und natürlich wurde er in die hinterste Ecke gestellt, so dass ich ihn vom Fahrstuhl nicht sehen konnte. Nach langem Suchen habe ich ihn dann entdeckt. Der Lieferservice der Firmen hat echt stark nachgelassen.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

5min durch meinen Compiler debuggt um zu verstehen, warum "val c : int = zero" dazu führt, dass eine Verwendung von c kein int ist sondern dasselbe wie eine Verwendung von zero. Bis mir dann aufgefallen ist, dass ich irgendwann mal eingebaut habe, dass Zugriffe auf lokale Werte generell komprimiert werden. Mein Hobby ist zu komplex :-/
Auf der Habenseite geht alles wie vorgesehen, wenn man aus dem val ein var macht.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
udok
Beiträge: 40
Registriert: 01.02.2022, 17:34

Re: Jammer-Thread

Beitrag von udok »

15 Minuten verschwendet, um festzustellen, dass MS Programmierer überbezahlt sind...
Das Programm liefert 2x denselben String mit cl.exe -O1 x.c übersetzt:

Code: Alles auswählen

#include <stdio.h>
int main() {
  puts("A banner with the strange device 'Migicative'!");
  puts("A banner with the strange device 'Borabigate'!");
}
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

udok hat geschrieben: 03.01.2023, 13:2115 Minuten verschwendet
Den Fehler dann hoffentlich auch gemeldet?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Jammer-Thread

Beitrag von Matthias Gubisch »

Neue Grafikkarte... (eigenltich ja was gutes)

ABER: zum ersten mal seit gefühlt immer mal eine AMD Karte. Und meine über Jahre auf Nvidia gewachsene Vulkan Engine crasht schon bei der device Erstellung...
Man kann das als Einzelkämpfer halt doch nur für einen Hersteller schreiben...
Jetz geht es erstmal ans debugging...
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
udok
Beiträge: 40
Registriert: 01.02.2022, 17:34

Re: Jammer-Thread

Beitrag von udok »

Krishty hat geschrieben: 03.01.2023, 15:49 Den Fehler dann hoffentlich auch gemeldet?
Hast du einen Link, wo man das melden kann?
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

udok hat geschrieben: 03.01.2023, 19:56Hast du einen Link, wo man das melden kann?
Entweder die Sprechblase rechts oben in Visual Studio oder https://developercommunity.visualstudio ... pe=problem (Login mit dem Account, den du auch für VS nutzt)

Mach dich drauf gefasst, dass die Support-Chinesen nicht verstehen, wovon du redest. Also am besten den Quelltext und Compiler-Command-Line für Repro hinklatschen, EXPECTED OUTPUT: … ACTUAL OUTPUT: … und den Unterschied markieren, damit auch der letzte Depp sieht, dass es ein Compiler-Bug ist, den sich ein Techniker ansehen sollte.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Jammer-Thread

Beitrag von xq »

Matthias Gubisch hat geschrieben: 03.01.2023, 18:52 Neue Grafikkarte... (eigenltich ja was gutes)

ABER: zum ersten mal seit gefühlt immer mal eine AMD Karte. Und meine über Jahre auf Nvidia gewachsene Vulkan Engine crasht schon bei der device Erstellung...
Man kann das als Einzelkämpfer halt doch nur für einen Hersteller schreiben...
Jetz geht es erstmal ans debugging...
Ich lehne mich mal mit meiner Erfahrung aus dem Fenster und sage: Mit AMD oder Intel wäre das nicht passiert. NVIDIA pfuscht in ihren Treibern so derb rum, dass du keine Garantie hast, dass Code, der auf NVIDIA tut, überhaupt irgendwo anders tut.

Intel-GPUs sind nen relativ geiler Benchmark. Die sind lahm wie sau, aber sehr sehr clean. Wenns auf ner Intel tut, tuts üblicherweise überall auf Anhieb. AMD ist auch strikter in der Auslegung der Regeln. NVIDIA behandelt Standards eher wie grobe Richtlinien, aber nicht wie ein Regelwerk.

Ich hatte einmal ne NVIDIA-GPU. Nie wieder.
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Jammer-Thread

Beitrag von Matthias Gubisch »

Wie gesagt hatte schon seid Jahren keine AMD Karte mehr, aber wenn das stimmt dann sollte ich in Zukunft mit portieren ja weniger Probleme haben :)

Nvidia war halt technisch lange Zeit vorne (Raytracing, MeshShader) das hat schon sehr für die grüne Fraktion gesprochen.
Preislich haben die allerdings mittlerweile den A... offen weshalb es diesmal was anderes wurde :)
Beim zocken finde ich die neue Karte bisher top.
Und meine Engine startet auch wieder, war ziemlich banal aber AMD hat es nicht geschafft eine ordentliche Fehlermeldung zu liefern wen man ein Feature aktiviert das die Karte nicht unterstützt, sondern die Device Erstellung crasht einfach tief im Teiber. Das war nei Nvidia etwas besser...

Mal sehen wie ich weiter damit zurecht komme. MeshShader fliegen zumindest auch auf der AMD Karte :)
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Ich will in der Standardbibliothek den Typ der Typen und den der Klassen so umstellen, dass sie einen Typparemeter haben, der einem sagt, was man da gerade in der Hand hat. So wie Class in Java. Das erfordert drei Schritte.
1. Variante Templates, weil

Code: Alles auswählen

Type[A] <: Type[B]
wenn A <: B; sonst bringt das alles nicht so viel; besonders bei Klassen, da die eigene Felder haben dürfen. Hat grob 4h gebraucht. Beispiel: https://github.com/tyr-lang/test.confor ... Co/mar.tyr
2. Generische Templates, d.h. Templates deren Instanzen alle dieselbe Repräsentation haben. Das braucht man letztlich, damit x.type.type == y.type.type für alle x,y gilt bzw. dasselbe mit class. Da war mir zumindest klar, wie man das macht; hat überraschenderweise auch nur ein paar Stunden gebraucht. Spielt da auch keine große Rolle, dass ich keine Sprache kenne, die das so weitreichend erlaubt; das Prinzip ist immer dasselbe. Beispiel: https://github.com/tyr-lang/test.confor ... dd/mar.tyr
3. Rekursive Templateparametertypen. ?????. Wenn man Literatur dazu liest, dann wirkt es so, als würde meine Version davon einfach per Knaster-Tarski gehen. Und mit gehen meine ich hier, dass es vermutlich einen Algorithmus gibt, der eine Lösung produziert. Das Problem ist jetzt nur, dass ich nicht eine winzige Spielsprache habe, die auf λ-Kalkül aufbaut und das typt und man die Typisierungsregeln auf einer Seite aufschreiben kann. Tatsächlich hat man mit ganz unerwarteten Komponenten plötzlich Konflikte, weil Type eben so zentral ist. Ich kann nicht mal mehr any verarbeiten, weil die Overloadresolution erfordert, dass man bei der Auflösung von "abstract" das als Typ interpretiert, was aber nicht geht, weil Type jetzt eben Type[+T : Type[any] := Type[any]] ist und einem die elaboration order sagt, dass an erstmal any vor Type bearbeiten muss.... ich will hier nichtmal darauf hinaus, dass es kompliziert ist. Das ist letztlich der Zweck. Mein Problem mit der Situation ist ehrlich gesagt, dass es groß und kompliziert ist und ich das Problem nicht soweit reduzieren kann, dass ich ein Paper in einer entsprechenden Community einreichen könnte, weil es einfach zu lang wäre, es keiner lesen würde und ich ehrlich gesagt auch keine entsprechende Community finden konnte. Und eigentlich schreibe ich das auch nur auf, weil ich irgendwo bei der Berechnung des kleinsten Fixpunkts eines Algorithmus zur Berechnung des kleinsten Fixpunkts des Problems stecken geblieben bin und mir nicht klar ist, wo ich die Berechnungen hinverschieben muss. Bin gespannt, ob es wieder ist wie bei den Arrays, wo ich auch ne Weile gezweifelt habe ob es geht oder ob es diesmal wirklich nicht mehr weiter geht. Ich meine momentan stecke ich im Debugger in einer der Substitutionstheorien; das würde in einem Researchpaper nichtmal vorkommen. Wie würde mir das dann helfen? Keine Ahnung. Vielleicht sollte ich irgendwo einen Blog über Programmiersprachen anfangen. Müsste halt jemand lesen, verstehen und kommentieren :-/

Edit: Vor allem schön daran ist, dass man sich millimeterweise durch den Nebel kämpft und im Kern allen möglichen Komponenten beibringen muss, weniger in ihre Operanden reinzusehen. Die Konstantenauswertung hat gelernt, dass ein paar Dinge nicht reduzierbar sind; die implizite Typkonvertierung, dass man Konvertierungen ausschließen kann ohne dafür gleich den ganzen Typ auszuwerten. D.h. ein positiver Seiteneffekt wird sein, da ich ja dadurch die globalen Elaborationorderregeln anpasse, dass die Sprache echt ausdrucksmächtiger wird durch die Aktion. Also auch unabhängig von den eigentlichen rekursiven Parametern.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Raymond Chen hat mal wieder was über einen Installer, der sich unbedingt an die Startleiste pinnen will: https://devblogs.microsoft.com/oldnewth ... /?p=107706

Viel geiler finde ich aber:
What made it more frustrating to debug is that the secondary installer in turn runs a tertiary installer, and it was the tertiary installer that was crashing. (At least it stopped at the tertiary installer. Otherwise it’s installers all the way down.)
Erinnert an meine Geschichte vom AMD-Treiber, der keine zwei MiB groß ist, aber als MSI im MSI im MSI im InstallShield in EXE in ZIP auf 50 MiB kommt!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Man würde meinen, dass es helfen würde, wenn es unter Windows irgendeinen Weg gäbe, Software zu installieren und zu aktualisieren. Verrückte Idee, schon klar.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ein toller Fehler, den viele Bibliotheken machen: Lesen und Schreiben in eine und dieselbe C++-Schnittstelle stecken.

Naja, warum auch nicht? Der Code ist schließlich zu 70 % deckungsgleich! Also schreiben wir für das .foo-Format eine Schnittstelle

  class FooFormat {
    virtual void writeFoo(Stream &);
    virtual void loadFoo(Stream &);
  };


FOR FUCK’S SAKE NO YOU FUCKING IDIOT!

Ich will .foo-Dateien nur laden. Mein Programm muss die nicht schreiben können. Aber es gibt auch keinen Compiler auf der Welt, der erkennen kann, dass writeFoo() niemals gebraucht wird! Und irgendwie muss der ja den vtable-Eintrag für die virtuelle Funktion füllen!

… also muss ich das komplette Schreiben mit reinkompilieren. Einschließlich aller Hilfsfunktionen, der zugehören cpp-Dateien und Header; muss alle Compiler-Warnungen ertragen und habe am Ende 50 % mehr Code im Executable – der niemals benutzt wird.

Assimp macht den Fehler (nicht allgemein, sondern vor allem im gigantischen glTF-Bereich und ein, zwei anderen Formaten, wenn ich mich recht irre) und OpenCASCADE auch. Bei letzterem sprechen wir dann wirklich von hunderten cpp-Dateien und Megabytes an Code, nur, weil das jemand in die selbe Klasse gepackt hat.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten