Firefox hat eine Option in about:config die mindestens sowas ähnliches tut. Kann mich nicht erinnern wann zuletzt ein Video gespielt hätte ohne dass ich es wollte. Chrome soll das nicht können? Merkwürdig.Krishty hat geschrieben:Geil: Chrome schafft endlich Autoplay für Videos ab!
… außer „auf den 1000 meistbesuchten Webseiten“. Denn es ist wirklich extrem wichtig, dass YouTube weiter ungefragt seine Werbeparade startet, während die Nischenwebsites stumm bleiben. Extrem!
Jammer-Thread
-
- Moderator
- Beiträge: 2138
- Registriert: 25.02.2009, 13:37
Re: Jammer-Thread
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Chrome hat chrome://flags/#autoplay-policy , aber das funktioniert seit einigen Monaten nicht mehr. Haben wohl zu viele User benutzt.
Re: Jammer-Thread
Hm, es gibt ja zwei Arten von Autplay. Eins plärrt los sobald man die Seite betritt. Das andere plärrt los sobald zum Beispiel auf Youtube ein Video zu Ende ist. Vielleicht meinen die Jungs von Chrome die zweite Methode :)
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
;)
Übrigens funktioniert es seitdem auch auf Twitter nicht mehr. Deshalb gehe ich davon aus, dass es eine Chrome-Änderung war, und kein YouTube-Hack.
————
Das heutige Update-Paket stopft eine kritische Sicherheitslücke in DirectX. Ob da jemand ZFX gelesen hat?
Und das andere „wichtige“ Update klingt mit jedem Satz grauenhafter:
Übrigens funktioniert es seitdem auch auf Twitter nicht mehr. Deshalb gehe ich davon aus, dass es eine Chrome-Änderung war, und kein YouTube-Hack.
————
Das heutige Update-Paket stopft eine kritische Sicherheitslücke in DirectX. Ob da jemand ZFX gelesen hat?
Und das andere „wichtige“ Update klingt mit jedem Satz grauenhafter:
Ich kann kein Windows 10 installieren, weil ich kein UEFI in meiner Hardware haben will. Ist das so schwer zu verstehen?This update enables support for additional upgrade scenarios from Windows 7 to Windows 10, and provides a smoother experience when you have to retry an operating system upgrade because of certain failure conditions. This update also improves the ability of Microsoft to monitor the quality of the upgrade experience.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Die Mail hier klang erstmal nicht verkehrt:
shapeways.com/legal/privacy-statement?etId=���������&utm_source=sw-email-&utm_medium=email&utm_campaign=20180518-privacy-policy-3
Ja GEIL! Eure neue Privacy Policy kriege ich zusammen mit einem Tracker! Wie wär’s mit FUCK YOU?!
… aber ich öffne meine Mail grundsätzlich im Textmodus (schon vor den PGP-Problemen). Und da sieht man, dass der Link tatsächlich so aussieht:Update to the Shapeways Privacy Policy hat geschrieben:Like many of the online services you use, we are preparing for some of the new data protection laws scheduled to go into effect later on this month. As part of that process we are updating our Privacy Policy. We urge you to review the new policy here:
https://www.shapeways.com/legal/privacy-statement
shapeways.com/legal/privacy-statement?etId=���������&utm_source=sw-email-&utm_medium=email&utm_campaign=20180518-privacy-policy-3
Ja GEIL! Eure neue Privacy Policy kriege ich zusammen mit einem Tracker! Wie wär’s mit FUCK YOU?!
Re: Jammer-Thread
Ich beschäftige mich auch schon seit einiger Zeit mit der DSGVO und könnte einfach nur kotzen. Momentan stehe ich vor der Frage, was ich mit einigen Projekten machen soll, die sich einfach nicht mehr aktualisieren lassen (Inkompatibilitäten, etc.)? Löschen? Nicht mehr in der EU anbieten? Weiterlaufen lassen und gucken was passiert? Die Projekte bringen nicht mehr viel Geld, aber sie bringen Geld und letztendlich zählt am Ende des Monats doch jeder Cent... Insofern fällt es mir umso schwerer sie einfach zu killen. Außerdem ist das für die User ja genau so blöd.
Abgesehen davon begrüße ich diese Gesetzgebung, aber diese ganzen Unsicherheiten machen das einfach nur zu einem großen Ärgernis. Echt zum Kotzen.
Ansonsten kanns natürlich sein, dass die das nutzen, um deine Kentnissnahme zu protokollieren, denn laut DSGVO muss man ja auch über das Akzeptieren der Konditionen (und vorallem welche) ein Protokoll führen. Wobei man da ja eigentlich aktiv eine Checkbox o.ä. ankreuzen müsste, aber was weiß ich schon... Mich kotzt das alles nur noch an :roll:
Abgesehen davon begrüße ich diese Gesetzgebung, aber diese ganzen Unsicherheiten machen das einfach nur zu einem großen Ärgernis. Echt zum Kotzen.
Ansonsten kanns natürlich sein, dass die das nutzen, um deine Kentnissnahme zu protokollieren, denn laut DSGVO muss man ja auch über das Akzeptieren der Konditionen (und vorallem welche) ein Protokoll führen. Wobei man da ja eigentlich aktiv eine Checkbox o.ä. ankreuzen müsste, aber was weiß ich schon... Mich kotzt das alles nur noch an :roll:
Re: Jammer-Thread
DSGVO ist bei uns auch Kotz-Thema Nummer 1 - letzendlich gibt es schon einige Hinweise aus dem Netz, die darauf hindeuten, dass kaum so heiß gegessen wie gekocht wird. Datenschutzbeschwerden mit dem BDSG führen ja erst einmal nur zu Briefwechsel (zahnloser Papiertiger) - mit der DSGVO kommen dann Strafen von bis zu 20 Millionen auf die Klein-Unternehmen zu. Allerdings wohl in der alten Datenschutz-Beschwerde-Manier: Das erste mal passiert nix und nur bei systematischen Verstößen und Wiederholungen werden dann stufenweise Strafen angehoben.Dummie hat geschrieben:Ich beschäftige mich auch schon seit einiger Zeit mit der DSGVO und könnte einfach nur kotzen.
Und dann gibt's ja noch die Klausel in der DSGVO, dass eine Verarbeitung und Speicherung, die aufgrund eines anderen Gesetzes vorgeschrieben ist, immer legitim ist. Danke an das Geldwäschegesetz, das mich dazu auffordert, möglichst Vorfälle wie Geschäftsanbahnungen und Geschäftsverkehr zu archivieren. Und damit dürfte normaler Geschäftsverkehr (wie es von manchen Panikmachern ausgeschlachtet wird) kaum im Fokus der DSGVO stehen.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Ich hatte es mit Bezug zur DSGVO verstanden …
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Boah ist das Manifest mit Clang/VC++ ein Haufen Scheiße.
1) Visual Studio will das Manifest UNBEDINGT GANZ GANZ DOLLE selber erzeugen. Sogar, wenn man eine fertige Manifest-Datei vorgibt. UAC und der andere Scheiß sind standardmäßig an. Also fügt Visual C++ eurem selbstgeschriebenen Manifest standardmäßig UAC hinzu. Man muss jede scheiß Einstellung einzeln abschalten, damit das Manifest am Ende so rauskommt, wie man es reingedrückt hat.
2) Trotzdem wird das Manifest noch durch einen Interpreter gejagt und umformatiert, bevor es in der EXE landet. Eine Optimierung kann es nicht sein, denn <foo x=y/> wird zu <foo x=y></foo>. Das lässt sich nicht abschalten. Überhaupt nicht.
3) Unter Clang ist alles besser … NICHT. Clang hat nämlich gar keinen Manifest-Support im Linker und erfordert ein installiertes Visual Studio, dessen MT.exe (Manifest Tool) es sich dann borgt.
4) Überhaupt ist Clang unter Windows nicht selbständig und saugt für alles an der Titte bestehender Visual Studio-Installationen: Hat keine CRT, also nimmt es die von MS. Keinen Assembler, also den von MS. Kein Manifest-Tool, also das von MS. JA TOLL! Wofür ist Clang dann überhaupt noch zu gebrauchen?! Ich glaube, ich steige lieber auf MinGW um.
1) Visual Studio will das Manifest UNBEDINGT GANZ GANZ DOLLE selber erzeugen. Sogar, wenn man eine fertige Manifest-Datei vorgibt. UAC und der andere Scheiß sind standardmäßig an. Also fügt Visual C++ eurem selbstgeschriebenen Manifest standardmäßig UAC hinzu. Man muss jede scheiß Einstellung einzeln abschalten, damit das Manifest am Ende so rauskommt, wie man es reingedrückt hat.
2) Trotzdem wird das Manifest noch durch einen Interpreter gejagt und umformatiert, bevor es in der EXE landet. Eine Optimierung kann es nicht sein, denn <foo x=y/> wird zu <foo x=y></foo>. Das lässt sich nicht abschalten. Überhaupt nicht.
3) Unter Clang ist alles besser … NICHT. Clang hat nämlich gar keinen Manifest-Support im Linker und erfordert ein installiertes Visual Studio, dessen MT.exe (Manifest Tool) es sich dann borgt.
4) Überhaupt ist Clang unter Windows nicht selbständig und saugt für alles an der Titte bestehender Visual Studio-Installationen: Hat keine CRT, also nimmt es die von MS. Keinen Assembler, also den von MS. Kein Manifest-Tool, also das von MS. JA TOLL! Wofür ist Clang dann überhaupt noch zu gebrauchen?! Ich glaube, ich steige lieber auf MinGW um.
Re: Jammer-Thread
Windows-Zwangsupdate zerschießt den VeraCrypt Bootloader. Sprich, dein PC geht vollautomatisiert kaputt und du kannst nichts dagegen tun. Meine Fresse.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
Re: Jammer-Thread
Hab keinen Link, habe nur eine Meldung bekommen, dass ein Update zur Installation bereit sei und nachdem dem Neustart kam nur der Windows-Reparaturbildschirm. Letztendlich konnte ich den alten Bootloader im Bios wieder aktivieren und benutzen, aber es hat trotzdem eine Stunde meiner Arbeitszeit gekostet. Und nach dem Windows endlich wieder startete, kam als erstes die Fehlermeldung, dass das Update nicht korrekt installiert wurde...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Übel – hast du 7 oder 10? BIOS oder UEFI? Haben Defender oder Programm zum Entfernen bösartiger Software was ausgespuckt? Welche KB-Nummer hat das Update, das nicht installiert werden konnte (und ggf. die anderen, die installiert wurden)? Und warum heute (Patchday ist erst übernächste Woche; hattest du den Update-Hinweis schon länger)?
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Jammer-Thread
Der Boost.Context-Typ hat schon wieder seine API ruiniert. Ne simple C-API mit genau zwei Funktionen war wohl zu effektiv. Stattdessen ist es jetzt ein
Na wenn das kein Fortschritt ist!
Code: Alles auswählen
fiber = std::move(fiber).resume();
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: Jammer-Thread
10 und UEFI. KB Nummer habe ich nicht nachgeschaut, und bezüglich Patchday muss ich sagen, dass ich Updates (falls möglich) gerne mal aufschiebe wenn sie gerade nerven und der PC auch nicht im Dauereinsatz ist - kann also durchaus auch etwas älteres sein. Wie wichtig ist die Info denn?Krishty hat geschrieben:Übel – hast du 7 oder 10? BIOS oder UEFI? Haben Defender oder Programm zum Entfernen bösartiger Software was ausgespuckt? Welche KB-Nummer hat das Update, das nicht installiert werden konnte (und ggf. die anderen, die installiert wurden)? Und warum heute (Patchday ist erst übernächste Woche; hattest du den Update-Hinweis schon länger)?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Äh, keine Ahnung – es war dir wichtig genug, dich aufzuregen und drei Beiträge drüber zu schreiben. Da würde ich als erstes die KB-Nummer des Updates mit „VeraCrypt“ zusammen suchen und schauen, was rauskommt.
Jedenfalls könnte dieses VeraCrypt-Update interessant sein:
Jedenfalls könnte dieses VeraCrypt-Update interessant sein:
https://www.veracrypt.fr/en/Release%20Notes.html hat geschrieben:• Fix EFI system encryption issues on some machines (e.g. HP, Acer).
• First implementation of compatibility of system encryption with Windows 10 upgrade using ReflectDrivers mechanism (Working in MBR case, issues in EFI case)
Re: Jammer-Thread
Ja, richtig. Ich hatte es dann aber als Problem angesehen, bei dem es mir zu nervig ist, es vernünftig zu beheben. Ich Notfall würde ich halt einmal die Festplatte entschlüsseln, updaten und wieder verschlüsseln. Ich hatte davon auch schon von einem Bekannten gehört, der mit einem Update mal ein ganz ähnliches Problem hatte. Das Update schau ich mir aber auch mal an, danke dafür.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
Re: Jammer-Thread
Qt Deployment. Ich hab was programmiert, per Dependency-Walker alle Qt Dlls rausgesucht und verschickt. Prompt bekomme ich die Nachricht, dass es nicht startet. Qt ist nämlich neuerdings (d.h. seit weniger als 5 Jahren)) so nett, beim Initialisieren dynamisch ein paar Plugins nachzuladen. Bei mir gings natürlich trotzdem, weil ich das ganze SDK installiert habe. Also durfte ich erstmal recherchieren und ein paar extra dlls verschicken. Die erste hat nicht geholfen, bei der zweiten tats dann aber. Mittlerweile weiß ich, dass es für Qt auch ein Deployment-Tool gibt, dass dir alles automatisch raussucht. Aber nervig war das schon, insbesondere da ich dachte, mit dem Dependency-Walker eigentlich meine Hausaufgaben erledigt zu haben. Naja, 20 Minuten verschwendet, aber zumindest lies es sich leicht beheben. Aber es bestätigt mich mal wieder in meiner Meinung, dass dll's die Pest sind.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
Re: Jammer-Thread
Nur so als Hinweis, im Process Explorer (von SysInternals) kann man einfach "Show DLLs" machen und hat den Vorteil das man sieht welche geladen wurden.Jonathan hat geschrieben:Qt Deployment. Ich hab was programmiert, per Dependency-Walker alle Qt Dlls rausgesucht und verschickt. Prompt bekomme ich die Nachricht, dass es nicht startet. Qt ist nämlich neuerdings (d.h. seit weniger als 5 Jahren)) so nett, beim Initialisieren dynamisch ein paar Plugins nachzuladen. Bei mir gings natürlich trotzdem, weil ich das ganze SDK installiert habe. Also durfte ich erstmal recherchieren und ein paar extra dlls verschicken. Die erste hat nicht geholfen, bei der zweiten tats dann aber. Mittlerweile weiß ich, dass es für Qt auch ein Deployment-Tool gibt, dass dir alles automatisch raussucht. Aber nervig war das schon, insbesondere da ich dachte, mit dem Dependency-Walker eigentlich meine Hausaufgaben erledigt zu haben. Naja, 20 Minuten verschwendet, aber zumindest lies es sich leicht beheben. Aber es bestätigt mich mal wieder in meiner Meinung, dass dll's die Pest sind.
Wiederhole mich hier, da ich es vor kurzem schonmal erwähnt habe:
Zum Testen ob man wirklich alles drin hat gibts von Microsoft fertige VMs zum Download:
https://developer.microsoft.com/en-us/m ... tools/vms/
Finde ich effektiver als einer anderen Person was zu senden und dann hin und her und bla.
Re: Jammer-Thread
Wenn ich ein Bookmark in Chrome anlege muss ich jedesmal aufpassen wie Schiesshund dass mir das Bookmark nicht in einem meiner vielen Ordner angelegt wird. Ich weiss jetzt noch nicht nach welchem Muster Chrome da wild zwischen den Ablagemöglichkeiten hin und herspringt. Das neue Bookmark einfach erst mal unter Lesezeichen abzulegen war wohl zu einfach -.-
Re: Jammer-Thread
Sehr gut, das schau ich mir mal an. Vielen Dank :)mrz hat geschrieben:Nur so als Hinweis, im Process Explorer (von SysInternals) kann man einfach "Show DLLs" machen und hat den Vorteil das man sieht welche geladen wurden.Jonathan hat geschrieben:Qt Deployment. Ich hab was programmiert, per Dependency-Walker alle Qt Dlls rausgesucht und verschickt. Prompt bekomme ich die Nachricht, dass es nicht startet. Qt ist nämlich neuerdings (d.h. seit weniger als 5 Jahren)) so nett, beim Initialisieren dynamisch ein paar Plugins nachzuladen. Bei mir gings natürlich trotzdem, weil ich das ganze SDK installiert habe. Also durfte ich erstmal recherchieren und ein paar extra dlls verschicken. Die erste hat nicht geholfen, bei der zweiten tats dann aber. Mittlerweile weiß ich, dass es für Qt auch ein Deployment-Tool gibt, dass dir alles automatisch raussucht. Aber nervig war das schon, insbesondere da ich dachte, mit dem Dependency-Walker eigentlich meine Hausaufgaben erledigt zu haben. Naja, 20 Minuten verschwendet, aber zumindest lies es sich leicht beheben. Aber es bestätigt mich mal wieder in meiner Meinung, dass dll's die Pest sind.
Wiederhole mich hier, da ich es vor kurzem schonmal erwähnt habe:
Zum Testen ob man wirklich alles drin hat gibts von Microsoft fertige VMs zum Download:
https://developer.microsoft.com/en-us/m ... tools/vms/
Finde ich effektiver als einer anderen Person was zu senden und dann hin und her und bla.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Ich habe die ersten drei Monate Linux-Entwicklung hinter mir.
- Die Philosophie, kleine Programme zu verketten, ist ganz nett. Aber WTF, warum mit Text?! Das ist die bescheuertste Möglichkeit von allen. Anstelle ordentlicher austauschbarer binärer Schnittstellen hat man einen Wulst von Regex- und Whitespace-Problemen und einen unwartbaren Berg von Write-Only-Code mit unüberschaubaren Implementierungsdetails. Wenn mal ein String nicht escapet wurde und sich eine Tilde oder ein vertikaler Strich oder wasauchimmer einschleicht, bricht eine Lawine los und am besten schmeißt man alles weg und schreibt alles neu. Wenn ich nochmal irgendwo grep in awk und zurück pipen muss und ein Ergebnis zu wenig ankommt, kotze ich.
- bash ist besser als batch, aber beide sind im Vergleich mit ordentlichen Skriptsprachen völlig unbrauchbar – sie sollen einfache Aufgaben automatisieren, aber die Lernkurve ist höher als bei den meisten komplexen Python-Programmen. Man sollte den 80er-Müll wegschmeißen und nur noch Python erlauben. Aber ohne Bash würde wohl alles in Linux aufhören zu funktionieren. Windows ist wesentlich schwächer abhängig von Batch und PowerShell, zum Glück.
- Apropos Programmiersprachen, auf denen alles fußt – der ständige Kontakt mit make-Systemen, C und gcc wird dafür sorgen, dass sich Linux niemals über Smartphone-Gefängnis-OSe hinaus verbreiten wird.
- Das I/O-Modell von Linux ist eine Katastrophe. Eine reine, pure, Katastrophe. Wenn man einen Webserver betreiben will, war bis 2012 synchrones, nicht-blockierendes I/O mit O(n²)-Laufzeit über Anzahl der Verbindungen der bevorzugte Weg. Bei uns glühten die CPUs und es kam trotzdem kaum was raus. Man kann kaum in Worte fassen, wie sehr das alles verkackt wurde, aber wer sich dafür interessiert: dieser Vortrag versucht es trotzdem. Irgendwann in den letzten Jahren haben sie eine vernünftige epoll()-Implementierung etabliert, aber der Scheiß ist immernoch readiness-based und nicht thread-agnostisch und noch nicht in POSIX. Eine Umstellung der ganzen Architektur auf die 25 Jahre verspäteten I/O Completion Ports kriege ich beim Chef nicht mehr durch. WTF.
- QtCreator ist eine richtig geile IDE. Und am meisten nervt mich an ihr der selbe blöde Bug, der mich auch an Visual C++ nervt: Wenn ich Parameter nur in Definitionen const deklariere, kann ich nicht mehr ordentlich browsen, weil es für den Parser wie eine separate Funktion aussieht.
- Apropos „ganz genau die gleiche Scheiße wie unter Windows“: Die Dateisuche vom Dolphin auf unserem SUSE. Das ist der ultimative Beweis, dass mich das Universum hasst; egal, auf welchem Betriebssystem ich mich verstecke.
- Eclipse ist auf Linux ein noch traurigerer Haufen einer Karikatur einer IDE als auf Windows. Aber ich bin teils drauf angewiesen weil Qt Creator keine Befehlszeilenparameter an mein Programm übergeben kann (kein Scherz und nur bei mir).
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
MINPS und MAXPS geben bei NaN immer den zweiten Operand zurück. Dadurch sind sie nah am Verhalten von l < r ? l : r, aber IMHO sollten sie sich an alle anderen arithmetischen Operationen halten, die bei NaN-Operanden NaN zurückliefern.
Re: Jammer-Thread
[edit: Es folgt teilweise unsachliches Gemeckere, aber aus Gründen der Nicht-Zensur lasse ich das mal so stehen - siehe unten.]
Weil Python halt scheiße ist...:
Python ist ein Haufen Affenscheiße. Einfach total kaputt. Gerade wurde zum tausendstenmal eine halbe Stunde meiner Zeit verschwendet, weil es irgendjemand nicht für nötig hielt, aus Python eine vernünftige Sprache zu machen.
Folgendes passierte: Ich habe eine kleine Funktion geschrieben, mit der ein Framework dann Daten abfragt. Die Funktion ist gerade lang genug um sie nicht als lambda implementieren zu wollen, aber weil ich sie nur einmal benutze wollte ich sie nicht im globalen Scope haben, also wurde sie funktionslokal. Soweit, sogut. Nun sind leider die Daten die ich weiterreichen wollte lokale Variablen dieser Funktion. Und hier trat jetzt ein beispielloser Synergieeffekt zweier dummer Entscheidungen auf: Da man in Python keine Variablen deklariert, sondern einfach benutzt können nicht explizit Werte aus äußeren Scopen verwendet werden (dass das implizit in C++ funktioniert mag man auch durchaus schlecht finden, was mich stört, ist dass Variablen nicht deklariert werden. Das ist vernachlässigbarer Mehraufwand (ein auto, letoder vargenügt, man muss sich ja nichtmal über den Typen Gedanken machen), aber macht Programme leichter zu lesen und vor allen Dingen viel viel robuster!). Also binde ich die Variable explizit per global Keyword ein (oh, plötzlich müssen wir sie ja doch 'deklarieren'!), was natürlich falsch ist, an dieser Stelle hätte man natürlich (!) das nonlocal Keyword verwenden müssen. Wusst ich aber nicht, und wurde mir auch nicht gesagt, denn statt einer Exception bekam ich nur die Meldung 'Kernel died'. Wohl, weil meine Funktion von dem Framework aufgerufen wurde, und die Exception nie an meiner Konsole ankam. Jetzt hatte ich also eine Situation, in der weder die statische Code-Analyse (die in Python ja nicht existiert, und das ist das zweite riesengroße Problem) noch die 'dynamische Code-Analyse' (weil die Exception nicht ankam) funktionierte. Ich war also in der Situation, dass ein trivialer Fehler (Variable die nicht existiert wird benutzt) unauffindbar war und per trial-and-error behoben werden musste. Ein Fehler, den mir eine vernünftige IDE in einer vernünftigen Programmiersprache direkt unterkringelt hätte, weil er so offensichtlich ist. Der mich so aber eine halbe Stunde gekostet hat, weil Python ja unbedingt grundlos scheiße sein muss.
Es gibt natürlich einen Grund, warum ich das ganze in Python mache. Weil halt viele Sachen an der Sprache auch echt toll sind. Aber meine Güte, wieso muss ich mich immer zwischen Sprachen entscheiden, die alle schlecht sind? Wieso können wir nicht wenigstens mal eine Programmiersprache haben, die benutzbar ist? Wir leben in einer schäbigen Welt...
Weil Python halt scheiße ist...:
Python ist ein Haufen Affenscheiße. Einfach total kaputt. Gerade wurde zum tausendstenmal eine halbe Stunde meiner Zeit verschwendet, weil es irgendjemand nicht für nötig hielt, aus Python eine vernünftige Sprache zu machen.
Folgendes passierte: Ich habe eine kleine Funktion geschrieben, mit der ein Framework dann Daten abfragt. Die Funktion ist gerade lang genug um sie nicht als lambda implementieren zu wollen, aber weil ich sie nur einmal benutze wollte ich sie nicht im globalen Scope haben, also wurde sie funktionslokal. Soweit, sogut. Nun sind leider die Daten die ich weiterreichen wollte lokale Variablen dieser Funktion. Und hier trat jetzt ein beispielloser Synergieeffekt zweier dummer Entscheidungen auf: Da man in Python keine Variablen deklariert, sondern einfach benutzt können nicht explizit Werte aus äußeren Scopen verwendet werden (dass das implizit in C++ funktioniert mag man auch durchaus schlecht finden, was mich stört, ist dass Variablen nicht deklariert werden. Das ist vernachlässigbarer Mehraufwand (ein auto, letoder vargenügt, man muss sich ja nichtmal über den Typen Gedanken machen), aber macht Programme leichter zu lesen und vor allen Dingen viel viel robuster!). Also binde ich die Variable explizit per global Keyword ein (oh, plötzlich müssen wir sie ja doch 'deklarieren'!), was natürlich falsch ist, an dieser Stelle hätte man natürlich (!) das nonlocal Keyword verwenden müssen. Wusst ich aber nicht, und wurde mir auch nicht gesagt, denn statt einer Exception bekam ich nur die Meldung 'Kernel died'. Wohl, weil meine Funktion von dem Framework aufgerufen wurde, und die Exception nie an meiner Konsole ankam. Jetzt hatte ich also eine Situation, in der weder die statische Code-Analyse (die in Python ja nicht existiert, und das ist das zweite riesengroße Problem) noch die 'dynamische Code-Analyse' (weil die Exception nicht ankam) funktionierte. Ich war also in der Situation, dass ein trivialer Fehler (Variable die nicht existiert wird benutzt) unauffindbar war und per trial-and-error behoben werden musste. Ein Fehler, den mir eine vernünftige IDE in einer vernünftigen Programmiersprache direkt unterkringelt hätte, weil er so offensichtlich ist. Der mich so aber eine halbe Stunde gekostet hat, weil Python ja unbedingt grundlos scheiße sein muss.
Es gibt natürlich einen Grund, warum ich das ganze in Python mache. Weil halt viele Sachen an der Sprache auch echt toll sind. Aber meine Güte, wieso muss ich mich immer zwischen Sprachen entscheiden, die alle schlecht sind? Wieso können wir nicht wenigstens mal eine Programmiersprache haben, die benutzbar ist? Wir leben in einer schäbigen Welt...
Zuletzt geändert von Jonathan am 19.06.2018, 13:35, insgesamt 2-mal geändert.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
-
- Moderator
- Beiträge: 2138
- Registriert: 25.02.2009, 13:37
Re: Jammer-Thread
Ich bin nicht 100% sicher ob ich zwischen den Flüchen richtig herauslesen kann, was du eigentlich gemacht hast, aber diese Version der Geschichte scheint denselben Sachverhalt zu beschreiben:
Auf "beispielloser Synergieeffekt zweier dummer Entscheidungen" können wir uns sofort einigen :)Weil ich unbedingt besonders clever sein wollte (globalen scope nicht mit einer Funktion "zumüllen", was in der realen Welt niemals zu einem Problem geworden wäre), habe ich ein Sprachfeature benutzt, das ich nicht 100% verstehe. Obwohl ich meine Funktion aus Gründen nicht als lambda implementiert habe, wollte ich gerne, dass sie sich wie ein lambda verhält (den äußeren Scope bindet). Leider hat das Framework, das ich verwende, die Fehlermeldung geschluckt und durch eine nichtssagende ersetzt. Ich habe dann daraus geschlossen, dass die Sprache ein "Haufen Affenscheiße" sein muss.
Re: Jammer-Thread
meh, ja. Ich war alleine im Büro und tierisch genervt, da passiert sowas halt.
Natürlich habe ich Fehler gemacht, aber so ist das nunmal, wenn man programmiert - ich mach das ja nicht zum Selbstzweck sondern um Probleme zu lösen, und da hat man einfach nicht die Zeit alle Tools bis ins letzte Detail zu lernen, bevor man sie benutzt. Es geht also eigentlich nicht darum, auf welche Art Python welche Variablen bindet, sondern dass die Sprache in dieser Hinsicht einfach nicht robust ist. Wegen dem dynamischen Typsystem (siehe neulich) und der Fehlerhaften Exception-Implementierung von dem Framework / der IDE / oder vielleicht auch Python - ich bin mir nicht ganz sicher wo sie geschluckt wurde, aber wenn nützliche Fehlermeldungen nicht beim Benutzer ankommen, nenne ich das einen Implementierungsfehler.
Natürlich mache ich dumme Fehler und realistisch gesehen wird das auch immer so bleiben (es werden nur halt andere Fehler sein). Deswegen bin ich ein großer Freund von Robustheit (wo ich Fehler schnell finden und beheben kann) und wenn ich sehe, dass sie an der einen Stelle existiert (statische Typsysteme :D), ich sie an der anderen aber nicht haben kann (Python^^), macht mich das traurig. Ich sollte wirklich aufhören, deswegen Leute zu beleidigen, aber meine Güte, daran arbeite ich halt auch noch :D
Natürlich habe ich Fehler gemacht, aber so ist das nunmal, wenn man programmiert - ich mach das ja nicht zum Selbstzweck sondern um Probleme zu lösen, und da hat man einfach nicht die Zeit alle Tools bis ins letzte Detail zu lernen, bevor man sie benutzt. Es geht also eigentlich nicht darum, auf welche Art Python welche Variablen bindet, sondern dass die Sprache in dieser Hinsicht einfach nicht robust ist. Wegen dem dynamischen Typsystem (siehe neulich) und der Fehlerhaften Exception-Implementierung von dem Framework / der IDE / oder vielleicht auch Python - ich bin mir nicht ganz sicher wo sie geschluckt wurde, aber wenn nützliche Fehlermeldungen nicht beim Benutzer ankommen, nenne ich das einen Implementierungsfehler.
Natürlich mache ich dumme Fehler und realistisch gesehen wird das auch immer so bleiben (es werden nur halt andere Fehler sein). Deswegen bin ich ein großer Freund von Robustheit (wo ich Fehler schnell finden und beheben kann) und wenn ich sehe, dass sie an der einen Stelle existiert (statische Typsysteme :D), ich sie an der anderen aber nicht haben kann (Python^^), macht mich das traurig. Ich sollte wirklich aufhören, deswegen Leute zu beleidigen, aber meine Güte, daran arbeite ich halt auch noch :D
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/