Linkdump
- Krishty
- Establishment
- Beiträge: 8244
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linkdump
Seine Fabergé-Fraktale sind ja nochmal besser. Schade, dass die Seite so auf mobile Nutzung fixiert ist, dass ich sie am PC kaum ansehen kann.
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
Da auch hier einige undefined behaviour Puristen unterwegs sind wollte ich den Link mal reposten (via fefe):
http://www.complang.tuwien.ac.at/kps201 ... ion_29.pdf
http://www.complang.tuwien.ac.at/kps201 ... ion_29.pdf
- Krishty
- Establishment
- Beiträge: 8244
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linkdump
Fefes Kritik (und die der ganzen „so schlimm kann undefined behaviour nicht gemeint sein, dass man nicht einmal memmove() implementieren kann“-Fraktion) geht IMHO am Problem vorbei. Das Problem ist nicht, dass Programme nach Compiler-Upgrades total kaputtgehen, weil sie irgendwo ein Stückchen Undefined Behaviour nutzen. Das Problem ist, dass C ein totaler Fuckup ist, der viel zu viele Löcher hat und kaum als konsistente Entwicklungsbasis brauchbar ist.
Diese Signed-Right-Shift-Problematik zum Beispiel (kein UB, sondern IB, aber fürs Beispiel ausreichend): C lässt das undefiniert, „damit es auf allen möglichen Architekturen läuft“. Oh, wirklich? Es gibt da draußen Turing-vollständige Architekturen, die unmöglich in der Lage sind, ein Sign Bit zu shiften?! Ins Hirn geschissen?!
Was diese Leute meinen, ist: „damit es auf allen möglichen Architekturen in einen einzigen Maschinenbefehl übersetzbar ist, weil das uns bekannte Universum kollabieren würde, wenn x << 1 ein Funktionsaufruf wäre“. Es geht um Performance, um nichts anderes; und zwar auf feige verdeckte Art und Weise.
Und da sollte man halt lieber eine konsistente Plattform mit recht wenig UB (und stattdessen mehr IB?) zur Verfügung stellen. Die „aber dann muss mein Cray bei x << 1 eine Funktion aufrufen! EMPÖRUNG!!!!“-Idioten können dann auf ihrer Lieblingsplattform genau das tun, was alle Entwickler auf allen Plattformen sowieso schon machen – für native Befehle Intrinsics mit #ifdef drum aufrufen.
Warum nullptr-Defeferenzierungen (hihi) UB sind und nicht IB, für das jede Plattform halt eigenes Verhalten zur Verfügung stellt (GCC löscht den Ausführungspfad; Win32 löst eine SEH aus; die 0,001 % Gerätetreiber, bei denen 0 tatsächlich als Adresse gemappt ist, verhalten sich dementsprechend), werde ich wohl nie kapieren.
Diese Signed-Right-Shift-Problematik zum Beispiel (kein UB, sondern IB, aber fürs Beispiel ausreichend): C lässt das undefiniert, „damit es auf allen möglichen Architekturen läuft“. Oh, wirklich? Es gibt da draußen Turing-vollständige Architekturen, die unmöglich in der Lage sind, ein Sign Bit zu shiften?! Ins Hirn geschissen?!
Was diese Leute meinen, ist: „damit es auf allen möglichen Architekturen in einen einzigen Maschinenbefehl übersetzbar ist, weil das uns bekannte Universum kollabieren würde, wenn x << 1 ein Funktionsaufruf wäre“. Es geht um Performance, um nichts anderes; und zwar auf feige verdeckte Art und Weise.
Und da sollte man halt lieber eine konsistente Plattform mit recht wenig UB (und stattdessen mehr IB?) zur Verfügung stellen. Die „aber dann muss mein Cray bei x << 1 eine Funktion aufrufen! EMPÖRUNG!!!!“-Idioten können dann auf ihrer Lieblingsplattform genau das tun, was alle Entwickler auf allen Plattformen sowieso schon machen – für native Befehle Intrinsics mit #ifdef drum aufrufen.
Warum nullptr-Defeferenzierungen (hihi) UB sind und nicht IB, für das jede Plattform halt eigenes Verhalten zur Verfügung stellt (GCC löscht den Ausführungspfad; Win32 löst eine SEH aus; die 0,001 % Gerätetreiber, bei denen 0 tatsächlich als Adresse gemappt ist, verhalten sich dementsprechend), werde ich wohl nie kapieren.
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
Man kann es "am Problem vorbei" nennen, man kann es aber auch Schadensbegrenzung ob der Tatsache, dass das uns bekannte Universum nunmal in C geschrieben ist nennen.
- Krishty
- Establishment
- Beiträge: 8244
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linkdump
C ist nicht unabänderlich. In der letzten C-Revision haben sie die Signed Division-Problematik gelindert (nachdem das eh jede Architektur so gemacht hat). Sie könnten Signed Shifts definieren, nachdem sich eh jede Architektur für Arithmetic Shift entschieden hat.
Wäre viel effektivere Schadensbegrenzung, dafür fehlt aber einfach das Bewusstsein und so wird der Bote erschossen (der optimierende Compiler).
Wäre viel effektivere Schadensbegrenzung, dafür fehlt aber einfach das Bewusstsein und so wird der Bote erschossen (der optimierende Compiler).
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
Verstehe ich das Problem falsch? Es gibt einen Konflikt zwischen Leuten, die Compilercode schreiben, und Leuten, die existierendem Code warten. Der Standard ist bezüglich dieses Konfliktes agnostisch in dem Sinne das er weder verbietet was die eine Partei lieber hätte noch was die andere Partei lieber hätte. Jetzt sagst du das eigentliche Problem ist dass der Standard es nicht regelt obwohl sich eh alle einig sind?Krishty hat geschrieben:C ist nicht unabänderlich. In der letzten C-Revision haben sie die Signed Division-Problematik gelindert (nachdem das eh jede Architektur so gemacht hat). Sie könnten Signed Shifts definieren, nachdem sich eh jede Architektur für Arithmetic Shift entschieden hat.
Wäre viel effektivere Schadensbegrenzung, dafür fehlt aber einfach das Bewusstsein und so wird der Bote erschossen (der optimierende Compiler).
- Krishty
- Establishment
- Beiträge: 8244
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linkdump
„Einig“ sicher nicht, aber der Konflikt – „Wie gehen wir mit Undefiniertem Verhalten um?“ – wäre nicht so groß, wenn der C-Standard Undefiniertes Verhalten minimieren würde.
Das passiert nicht; mit der Argumentation, UB würde C kompatibel zu allen möglichen Architekturen halten. Tatsächlich ist aber keine Zeile mehr portabel oder überaupt noch kompatbiel (siehe memove()).
Ich denke, dass C da nicht agnostisch ist, sondern den Compiler-Leuten (die ja in den 70ern gern jeden Ausdruck direkt in einen Assembler-Befehl übersetzen wollten, und für die UB Arbeitsersparnis bedeutet) viel zu sehr entgegenkam. Das ist aber nicht Verfehlung der Compiler-Leute, sondern des Standardisierungskomitees.
Das passiert nicht; mit der Argumentation, UB würde C kompatibel zu allen möglichen Architekturen halten. Tatsächlich ist aber keine Zeile mehr portabel oder überaupt noch kompatbiel (siehe memove()).
Ich denke, dass C da nicht agnostisch ist, sondern den Compiler-Leuten (die ja in den 70ern gern jeden Ausdruck direkt in einen Assembler-Befehl übersetzen wollten, und für die UB Arbeitsersparnis bedeutet) viel zu sehr entgegenkam. Das ist aber nicht Verfehlung der Compiler-Leute, sondern des Standardisierungskomitees.
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
Ich kann nicht beurteilen wer hier einen Fehler macht. Ich habe die Einstellung, die durch diesen infantilen "Festplatte formatieren"-Witz (ich hoffe es ist ein Witz?) symboliert wird ein paarmal in freier Wildbahn getroffen (ohne selbst C-Entwickler zu sein) und ich finde diese Einstellung extrem unpragmatisch. Von daher wollte ich einfach mal die Gegenmeinung weiter vebreiten. Um über Ursachen und Lösungen zu spekulieren kenne ich das C-Ökosystem zu wenig.Krishty hat geschrieben:Das ist aber nicht Verfehlung der Compiler-Leute, sondern des Standardisierungskomitees.
Insbesondere, ich weiß nicht wie einig wir uns da sind, verdient hypothetischer ein Compilerentwickler, der wirklich (mehr oder weniger mit Absicht, und nicht durch einen Zufall von Douglas Adamschen ausmaßen) die Festplatte formatiert, weil er es laut Standard "darf", meiner Meinung nach beliebig schlechtes Karma. No way wäre das in meinem Weltbild eine Verfehlung von jemand anderem als diesem Entwickler selbst.
Was mich erschreckt, ist dass einige offenbar intelligente Menschen näherungsweise der Meinung sind, das mit dem Formatieren wäre wirklich ok. Womit ich meine erste Frage selbst beantwortet habe.
- Krishty
- Establishment
- Beiträge: 8244
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linkdump
Wow, sowas wird wirklich gemacht? Das Schlimmste, das ich bisher getroffen habe, war einfach ein Absturz oder eine Endlosschleife.
Wer hat das denn gemacht?
Wer hat das denn gemacht?
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
Nicht gemacht (soviel ich weiß). Leuten als "Argument" um die Ohren gehauen, wenn sie es wagen boundschecks zu machen. In der Sprache unserer Zeit: eine Verrohnung des Diskurses.
Was ist das für eine Art einen Dialog zu führen?
- "Ich will Boundschecks machen können"
- "Sei froh dass ich deine Festplatte nicht formatiere, du Wicht"
Was ist das für eine Art einen Dialog zu führen?
- "Ich will Boundschecks machen können"
- "Sei froh dass ich deine Festplatte nicht formatiere, du Wicht"
- Krishty
- Establishment
- Beiträge: 8244
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linkdump
Hehe. Microsoft sind da die pragmatischsten. Die sagen: Der Adressraum ist unter Win32 flach und alles ist adressierbar. Da sind Boundchecks dann kein UB mehr (auch wenn man sich trotzdem anstrengen muss, dass sie nicht wegoptimiert werden). Dafür ist ihr Compiler dann nicht standardkonform (sie haben unser heiliges UB zu IB gemacht) und alle spucken drauf.
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: Linkdump
@Krishty
Der Compiler ist deswegen nicht standardkonform?
Undefined Behaviour heißt doch, dass vom Standard her undefiniert ist, was passiert. Das schließt aber doch nicht aus, dass auf einer bestimmten Plattform in einer Situation immer das selbe Verhalten eintritt.
@Alexander Kornrumpf
Der Kern des Problems mit Undefined Behavour ist nicht, dass irgendein Compiler dann Code einsetzt, der anfängt die Festplatte zu formatieren oder sowas. Die Aussage steht nur stellvertretend dafür, dass tatsächlich undefiniert ist was dann passiert und mit entsprechender Wahrscheinlichkeit wirklich alles passieren kann. Die Sache mit der Formatierung ist normalerweise natürlich ausreichend unwahrscheinlich. Man denke doch aber mal an den Quellcode von dem Programm "format", das dafür geschrieben wurde die Festplatte zu formatieren. Mit Undefined Behaviour wäre es realistisch denkbar, dass die Ausführung vom Programmierer unbeabsichtigt von irgendeiner Stelle irgendwie in die Formatierungsroutine springen kann.
Im Prinzip ist auftretender Undefined Behaviour einfach ein Bug. Genau wie bei einem Bug wird Verhalten ausgelöst das vom Programmierer mehr oder weniger nicht erwünscht ist. Auftretender Undefined Behaviour ist also per Definition "böse". Bounds Checks sind an sich kein Problem. Ein Problem wäre aber, wenn der Bounds Check zu Undefined Behaviour führt, der zum Beispiel dafür sorgt, dass der Compiler (oder ein anderer) den Bounds Check komplett wegoptimiert so das gar nicht mehr gecheckt wird. (das hat schon ganz konkret in der Praxis für Probleme gesorgt)
Um dem Problem vorzubeugen eignet, bietet zum Beispiel Clang Sanitizer an, um das Problem aufspühren zu können (Undefined Behavior, Address, etc.). Sehr lesenswert ist auch noch das: What Every C Programmer Should Know About Undefined Behavior
Ich bin prinzipiell aber auch dafür, dass man die Menge an Undefined Behaviour drastisch einschränkt. Kristhy hat schon einige Stellen von leicht zu behebenden Fällen genannt. Andere Fälle wie zum Beispiel Integer Overflow könnt man von Undefined Behaviour zu Unspecified Value umwandeln. Ich glaube nicht, dass dadurch viele nützliche Optimierungen betroffen wären.
Der Compiler ist deswegen nicht standardkonform?
Undefined Behaviour heißt doch, dass vom Standard her undefiniert ist, was passiert. Das schließt aber doch nicht aus, dass auf einer bestimmten Plattform in einer Situation immer das selbe Verhalten eintritt.
@Alexander Kornrumpf
Der Kern des Problems mit Undefined Behavour ist nicht, dass irgendein Compiler dann Code einsetzt, der anfängt die Festplatte zu formatieren oder sowas. Die Aussage steht nur stellvertretend dafür, dass tatsächlich undefiniert ist was dann passiert und mit entsprechender Wahrscheinlichkeit wirklich alles passieren kann. Die Sache mit der Formatierung ist normalerweise natürlich ausreichend unwahrscheinlich. Man denke doch aber mal an den Quellcode von dem Programm "format", das dafür geschrieben wurde die Festplatte zu formatieren. Mit Undefined Behaviour wäre es realistisch denkbar, dass die Ausführung vom Programmierer unbeabsichtigt von irgendeiner Stelle irgendwie in die Formatierungsroutine springen kann.
Im Prinzip ist auftretender Undefined Behaviour einfach ein Bug. Genau wie bei einem Bug wird Verhalten ausgelöst das vom Programmierer mehr oder weniger nicht erwünscht ist. Auftretender Undefined Behaviour ist also per Definition "böse". Bounds Checks sind an sich kein Problem. Ein Problem wäre aber, wenn der Bounds Check zu Undefined Behaviour führt, der zum Beispiel dafür sorgt, dass der Compiler (oder ein anderer) den Bounds Check komplett wegoptimiert so das gar nicht mehr gecheckt wird. (das hat schon ganz konkret in der Praxis für Probleme gesorgt)
Um dem Problem vorzubeugen eignet, bietet zum Beispiel Clang Sanitizer an, um das Problem aufspühren zu können (Undefined Behavior, Address, etc.). Sehr lesenswert ist auch noch das: What Every C Programmer Should Know About Undefined Behavior
Ich bin prinzipiell aber auch dafür, dass man die Menge an Undefined Behaviour drastisch einschränkt. Kristhy hat schon einige Stellen von leicht zu behebenden Fällen genannt. Andere Fälle wie zum Beispiel Integer Overflow könnt man von Undefined Behaviour zu Unspecified Value umwandeln. Ich glaube nicht, dass dadurch viele nützliche Optimierungen betroffen wären.
Zuletzt geändert von Spiele Programmierer am 04.03.2016, 17:57, insgesamt 1-mal geändert.
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
Ich weiß was undefined behaviour ist, danke.Spiele Programmierer hat geschrieben: @Alexander Kornrumpf
Der Kern des Problems mit Undefined Behavour ist nicht,
Mein Punkt war, dass es entlarvend ist, wie das mit dem Formatieren als Totschlagargument gebraucht wird.dass irgendein Compiler dann Code einsetzt, der anfängt die Festplatte zu formatieren oder sowas. Die Aussage steht nur stellvertretend dafür, dass tatsächlich undefiniert ist was dann passiert und mit entsprechender Wahrscheinlichkeit wirklich alles passieren kann. Die Sache mit der Formatierung ist normalerweise natürlich ausreichend unwahrscheinlich. Man denke doch aber mal an den Quellcode von dem Programm "format", das dafür geschrieben wurde die Festplatte zu formatieren. Mit Undefined Behaviour wäre es realistisch denkbar, dass die Ausführung vom Programmierer unbeabsichtigt von irgendeiner Stelle irgendwie in die Formatierungsroutine springen kann.
Dass Compiler z. B. Boundchecks als undefined behaviour wegoptimieren ist weder ein Naturgesetz noch eine Vorgabe des Standards sondern schlicht eine Entscheidung der Compilerentwickler. Es ist diese Entscheidung, die kritisiert wird.Im Prinzip ist auftretender Undefined Behaviour einfach ein Bug. Genau wie bei einem Bug wird Verhalten ausgelöst das vom Programmierer mehr oder weniger nicht erwünscht ist. Auftretender Undefined Behaviour ist also per Definition "böse". Bounds Checks sind an sich kein Problem. Ein Problem wäre aber, wenn der Bounds Check zu Undefined Behaviour führt, der zum Beispiel dafür sorgt, dass der Compiler (oder ein anderer) den Bounds Check komplett wegoptimiert so das gar nicht mehr gecheckt wird. (das hat schon ganz konkret in der Praxis für Probleme gesorgt)
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
Noch eine Ergänzung: Ich habe den Eindruck, dass es wirklich Leute gibt, die glauben, dass es ihnen der Standard erlaubt, und zwar nicht im Sinne von Standardkonformität, sondern moralisch wie rechtlich wirklich _erlaubt_, für ub beliebigen Code einzusetzen, und dass es ein reiner Akt der Nächstenliebe ist, dass sie nur nop einsetzen und nicht irgendwas wirklich schädliches. Und vielleicht ist das etwas übertrieben, und vielleicht glaubt niemand das komplett, sondern, wie ich oben sagte, nur näherungsweise, in mehr oder weniger hitzigen Diskussionen, aber ich halte das für ein extrem gefährliches Weltbild.
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: Linkdump
Ich denke, da geht es viel mehr ums Prinzip. Und in heftigen Diskussionen bei besonders kritikressistenten Programmier ("Ich will die Bounds Checks aber mit UB! Und bei mir funktioniert es ja!") kann ich mir schon vorstellen, dass der Eindruck erweckt wird, man würde sich wünschen, die Compiler würden es demjenigen "heimzahlen".
Sicherlich fände keiner gut, wenn Compiler die Festplatte aus Jux formatieren. Aber es ist halt Tatsache, dass viele gänige Compiler die Möglichkeit zur Optimierung nutzen bzw. nutzen möchten und werden. Auch wenn man das doof findet, ist es schlicht und ergreifend trotzdem eine sehr schlechte Idee die Bounds Checks so zu schreiben, dass sie bei einigen Compilern wegoptimiert werden. Oder vielleicht beim nächsten Update. Und dann muss man die Programmierer darauf hinweisen und ihm muss klar werden, dass er die Bounds Checks so nicht schreiben darf. Auch nicht wenn sie gerade auf den Compiler zu funktionieren zu scheinen. Es sind eben durchaus auch sehr viel unglücklichere Situationen denkbar! Die Sache mit der Formatierung der Festplatte ist zwar nicht sehr realistisch und etwas überspitzt, soll das aber eigentlich auf den Punkt bringen.
Sicherlich fände keiner gut, wenn Compiler die Festplatte aus Jux formatieren. Aber es ist halt Tatsache, dass viele gänige Compiler die Möglichkeit zur Optimierung nutzen bzw. nutzen möchten und werden. Auch wenn man das doof findet, ist es schlicht und ergreifend trotzdem eine sehr schlechte Idee die Bounds Checks so zu schreiben, dass sie bei einigen Compilern wegoptimiert werden. Oder vielleicht beim nächsten Update. Und dann muss man die Programmierer darauf hinweisen und ihm muss klar werden, dass er die Bounds Checks so nicht schreiben darf. Auch nicht wenn sie gerade auf den Compiler zu funktionieren zu scheinen. Es sind eben durchaus auch sehr viel unglücklichere Situationen denkbar! Die Sache mit der Formatierung der Festplatte ist zwar nicht sehr realistisch und etwas überspitzt, soll das aber eigentlich auf den Punkt bringen.
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
Das ist eben wie gesagt keine bloße "Tatsache" sondern eine Entscheidung an der Menschen beteiligt waren und die man kritisieren kann oder anders treffen könnte. Wie du selbst oben sagst, verbietet der Standard es insbesondere nicht, sich bei bestimmten UBs konsistent zu verhalten und es gibt Fälle, wo es ein sinnvolles konsistentes Verhalten gibt, auch wenn der Standard dieses nicht vorsieht.Spiele Programmierer hat geschrieben: Aber es ist halt Tatsache, dass viele gänige Compiler die Möglichkeit zur Optimierung nutzen bzw. nutzen möchten und werden. Auch wenn man das doof findet, ist es schlicht und ergreifend trotzdem eine sehr schlechte Idee die Bounds Checks so zu schreiben, dass sie bei einigen Compilern wegoptimiert werden. Oder vielleicht beim nächsten Update.
Wir sind hier tief im Reich von Meinungen und während ich nicht genug mit C zu tun habe um sagen zu können das ich selbst der einen oder der anderen Meinung besonders nahestehe, fällt es mir von außen auf, dass die Vertreter einer der beiden Meinungen fälschlicherweise so tun, als sei ihre Meinung naturgegeben. Und das ist immer ein sehr schlechtes Zeichen.
- Krishty
- Establishment
- Beiträge: 8244
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linkdump
Stimmt, das war Quark. Viel mehr provoziert er, dass Programme UB enthalten.Spiele Programmierer hat geschrieben:@Krishty
Der Compiler ist deswegen nicht standardkonform?
Undefined Behaviour heißt doch, dass vom Standard her undefiniert ist, was passiert. Das schließt aber doch nicht aus, dass auf einer bestimmten Plattform in einer Situation immer das selbe Verhalten eintritt.
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Linkdump
http://www.firstmenonthemoon.com/ Mondlandung mit Funksprüchen und Aufnahme aus dem Landemodul.
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Linkdump
Fifty psychological and psychiatric terms to avoid: a list of inaccurate, misleading, misused, ambiguous, and logically confused words and phrases http://journal.frontiersin.org/article/ ... 01100/full
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Linkdump
Irgendwie witzige aber auch ziemlich gruselige Story: http://fusion.net/story/287592/internet ... nsas-farm/
Eine Farm nahe des geographischen Zentrums der Vereinigten Staaten wird von dem Geo-IP-Dienst MaxMind als Ort für alle IPs verwendet, die nicht genauer zugeordnet werden können. Die Folgen sind für die Anwohner ziemlich übel, Besuche vom FBI, Doxxing usw.
Die freie Datenbank von MaxMind benutzen wir übrigens als Captcha...
Eine Farm nahe des geographischen Zentrums der Vereinigten Staaten wird von dem Geo-IP-Dienst MaxMind als Ort für alle IPs verwendet, die nicht genauer zugeordnet werden können. Die Folgen sind für die Anwohner ziemlich übel, Besuche vom FBI, Doxxing usw.
Die freie Datenbank von MaxMind benutzen wir übrigens als Captcha...
- Krishty
- Establishment
- Beiträge: 8244
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linkdump
Raymond Chen erzählt jeden Montag aus dem Krieg der Zeit, als er DOS-Spiele Windows 95-kompatibel machen musste:Interessanter Lesestoff für alle, die wissen wollen, warum Windows 95 so wackelig war (schließlich waren die Programmierer nicht gerade blöd). Mehr Artikel, nicht notwendigerweise Spiele betreffend, gibt’s da auch noch zu Hauf.
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Linkdump
Irrsinnnige Notiz am Rande: Supercell macht mit Clash Royale und Clash of Clans 250 Millionen Dollar Umsatz pro Monat 0_o (ich frage mich ob das anhält)
http://www.gamesbrief.com/2016/05/clash ... in-a-month
http://www.gamesbrief.com/2016/05/clash ... in-a-month
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Linkdump
Menschengemachter Meteoritenschauer zur Olympiade 2020? http://www.trendsderzukunft.de/skycanva ... 016/05/20/
War mir unsicher ob das zum Jammern, zum Anti-Jammern oder lustig ist. Daher hier...
War mir unsicher ob das zum Jammern, zum Anti-Jammern oder lustig ist. Daher hier...
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Linkdump
Ein ziemlich toller deutschsprachiger Blog zum Thema Spieledesign: https://nachtfischer.wordpress.com/blog/
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Linkdump
Neulich gab es auf Spieleprogrammierer.de eine kleine Diskussion zum Thema Garbage Collection. Ich als Fan von automatischem Speichermanagement freue mich über diesen Artikel Language Features and Culture, der das ausdrückt, das mir bei der Diskussion auch als ein großer Unterschied zwischen GC- und "Nicht-GC"-Sprachen und ihren Ökosystemen vorkam.
Re: Linkdump
Ich weiß nicht wo ich das hier hinlegen soll, deswegen hier im Linkdump:
https://www.it-talents.de/foerderung/co ... on-10-2016
Sowas könnt ihr doch ;)
Schnappt euch das Preisgeld^^
https://www.it-talents.de/foerderung/co ... on-10-2016
Sowas könnt ihr doch ;)
Schnappt euch das Preisgeld^^
-
- Moderator
- Beiträge: 2113
- Registriert: 25.02.2009, 13:37
Re: Linkdump
500€ "vielleicht" erscheint mir ein bisschen wenig dafür.joggel hat geschrieben:Ich weiß nicht wo ich das hier hinlegen soll, deswegen hier im Linkdump:
https://www.it-talents.de/foerderung/co ... on-10-2016
Sowas könnt ihr doch ;)
Schnappt euch das Preisgeld^^
Re: Linkdump
Mh...jemand hat doch hier vor kurzem so etwas vorgestellt. Da wäre ja der Aufwand nicht so groß für den jenigen..