Dienstag, 30. Juni 2009

Offener Brief an 21 Regierungen dieser Welt

In der in Deutschland in den letzten Monaten geführten Diskussion um das Sperren oder Löschen von Kinderpornographie wurde behauptet, dass in vielen Ländern dieser Welt keine Gesetze gegen Kinderpornographie existieren würden und daher ein Vorgehen gegen die Verbreitung derart widerwärtigen Materials international nicht möglich wäre. In diesen Zusammenhang wurde eine Liste von 95 Staaten genannt, in denen es angeblich keine entsprechende Gesetzgebung geben soll. Nach einer weiteren Überprüfung der Angaben verkürzt sich diese Liste jedoch auf lediglich 21 Staaten. Diese fordere ich hiermit dazu auf, entsprechende Gesetze gegen die Verbreitung eines in sämtlichen Kulturen dieser Welt geächteten Materials zu erlassen, so dass derartiges Material weltweit bekämpft werden kann.

Die vollständige Liste der betroffenen Staaten (in alphabetischer Reihenfolge der englischen Bezeichnungen):
  • Zentralafrikanische Republik
  • Republik Tschad
  • Republik Congo
  • Elfenbeinküste
  • Demokratische Republik Kongo
  • Republik Äquatorialguinea
  • Republik Guinea
  • Republik Guinea-Bissau
  • Republik Haiti
  • Republik Irak
  • Jamaika
  • Republik der Marshallinseln
  • Republik Moldau
  • Republik Mozambique
  • Republik Nicaragua
  • Demokratische Republik São Tomé und Príncipe
  • Republik Sierra Leone
  • Saint Lucia
  • St. Vincent und die Grenadinen
  • Demokratische Republik Timor-Leste
  • Republik Togo
Eine kleine Anmerkung an alle, die diese Liste als Rechtfertigung für Sperren sehen wollen: Aus keinem der 21 Staaten sind Server mit Kinderpornos aus irgendwelchen Sperrlisten bekannt. Alle genannten Staaten haben die UN-Kinderrechtskonvention unterzeichnet (ich verweise hierbei auf Artikel 19 eben dieser). Also diese bitte auch anwenden!

Mittwoch, 24. Juni 2009

Eilmeldung!

Das Sommerloch ist hiermit offiziell eröffnet. Oder sollte das irgendwer ernst meinen?

CDU-Wahlprogramm

...oder auch: Ja ist denn schon Sommerloch?

Derzeit geht es ja durch alle Gazetten, die CDU will nach der Wahl einige Themen angehen, die mit dem Internet zu tun haben. Dass dabei absolut gar nichts zur Stärkung der Bürgerrechte ist, verwundert ebenso wenig, wie dass umso mehr davon arg sinnbefreit ist, aber was da so kommt, ist schon eindrucksvoll:

Da wäre zunächst exakt jene vom französischen Verfassungsgericht kassierte Regelung, dass Internet-Provider Selbstjustiz gegen "Raumkopierer" unternehmen sollen. Das Gericht stellte dabei fest, dass schon die Idee als solche ein Verfassungsverstoß ist, wie er kaum klarer sein könnte - aber was kümmert das die CDU?

Zum Thema "Online-Medien" (was für die CDU meint "Online-Ausgaben untoter Tageszeitungen"), will man jetzt irgendein ominöses Förderungsmodell, das arg nach "Internet-GEZ zur Förderung privatwirtschaftlicher Unternehmen" riecht. Muss man, denke ich wenig zu sagen - außer vielleicht, dass es die "Kulturflatrate" inzwischen in das Programm aller anderen Parteien geschafft hat. Für die CDU aber natürlich undenkbar.

Beim Datenschutz isses ganz einfach: Man fordert genau das, was man selbst vor wenigen Tagen dadurch verhindert hat. Logisch, nicht?

Achja, und die Netzsperren will zumindest ein CDUler auch auf die gar so bösen "Killerspiele" ausdehnen - was da genau gesperrt werden soll (PC-Spiele finden eher selten auf Websites statt) und wie man das verfassungsrechtlich degitimieren will (bei KiPo half hier ja noch das Besitzverbot), sind noch offene Rätsel. Ebenso rätselhaft ist allerdings, was man eigentlich mit einem "Killerspiel" meint - es gäbe da Spiele, die wegen Gewaltverherrluchung wirklich nicht verbreitet werden dürfen (Manhunt), welche die wegen realistischer Gewaltdarstellung indiziert sind (Quake), normale "ab 18"-Spiele, die eben Gewalt darstellen (CoD) oder eben "ab 16"-Spiele wie Counter Strike, welches gerne als Beispiel herhalten darf...

Alles in allem kann man wohl sagen, dass die CDU hiermit sicherstellen will, von der Generation der Internet-Nutzer und PC-Spieler garantiert nicht gewählt zu werden. Ob es aber soo schlau ist, sich als "Partei der Internetverweigerer" aufzustellen?

Donnerstag, 18. Juni 2009

ein schwarzer Tag für die Demokratie

http://www.heise.de/newsticker/Bundestag-verabschiedet-Gesetz-fuer-Web-Sperren--/meldung/140746/

Dienstag, 16. Juni 2009

Online-Petitionen auf dem Vormarsch

Die Online-Petition gegen Internet-Zensur, die heute ihren letzten Tag hat, ist ohne jeden Zweifel ein absoluter Erfolg. Es dürften heute noch 130.000 Unterzeichner werden, was die höchste Zahl aller Zeiten ist. Doch dieser Erfolg ist noch größer, denn es handelt sich um die erfolgreichste Petition des neuen Systems, welches eine Registrierung erfordert. Bisher war in diesem System einzig die Petition gegen die "Generation Praktikum" über 50.000 Mitzeichner gekommen und ganze 3 weitere Petitionen (eine aus dem Bereich Internet, zwei aus der Medizin) über 5000 (genauer: alle über 7500, die nächste dann unter 4000). Mit Stand heute sieht die Sache anders aus: Nicht weniger als vier weitere Petitionen neben der Internet-Zensur sind bei annähernd oder über 5000 Mitzeichnern angekommen (genauer hier: 1x knapp 9000, 1x 5500, 2x 4500). Die Themen sind zweimal die GEMA sowie das (absurde) Verbot der Umgehung wirksamer Kopierschutzmaßnahmen (ein Widerspruch in sich) und das hirnrissige Paintball-Verbot. Insofern ist das ganze schon jetzt ein großer Erfolg für die Demokratie.

Trotzdem, auch wenn es etwas spät ist, noch einmal der Link: http://zeichnemit.de/

Samstag, 13. Juni 2009

Warum "Zukunftssicherheit" bei Hardware kein Kaufgrund sein darf

Wann immer man in irgendeinem Internetforum fragt, was für einen PC man sich kaufen sollte, kommt die Aussage, dass der neue PC doch bitte "Zukunftssicher" sein soll - zu praktisch 100% ein Synonym für "überdimensioniert".

Tatsächlich sollte man aber genau das Gegenteil tun: Die Hardware so auslegen, dass sie für das, was man heute machen will gerade eben ausreicht. Selbst wenn man in 6 Monaten deswegen wieder aufrüsten muss ist diese Methode preisgünstiger. Warum?
  1. In den meisten Hardwarebereichen haben die preisgünstigsten Produkte sehr sehr deutlich das beste Preis-Leistungs-Verhältnis. EIn schönes Beispiel sehen wir in diesem Test. Die beiden langsamsten Prozessoren im dem Test (der X2 4850e und der X2 6000+) führen das P/L-Rating mit riesigem Vorsprung an. Kein Wunder: Der 4850e kostet um die 50€ und die schnellsten CPUs, die es derzeit gibt, leisten "gerade einmal" das doppelte, kosten aber rund das ZWANZIGfache. Bei Grafikkarten ist es nicht ganz so extrem, aber auch hier kostet eine GeForce GTX285 das vierfache der Sieger im P/L-Rating, leistet aber nur das doppelte.
  2. PC-Preise sinken. Eigentlich eine Binsenweisheit, aber oftmals vergessen. 2006 kostete ein Core 2 Duo zwischen 183 und 530 US-$, bei Taktraten zwischen 1,86 und 2,66GHz. Und heute? Recht gut mit dem Spitzenmodell (C2D E6600) von damals ist der Pentium Dual-Core E6300 für um die 80€. Man hätte also damals einen E6600 für 500€ kaufen können oder einfach einen - für jede Aufgabe ausreichenden - C2D E6300 (jetzt wird's kompliziert; da wurde nämlich eine Bezeichnung wiederverwendet) für 180€ und heute einen Pentium E6300 für 80€ und hätte für in Summe 240€ ein sogar noch leicht schnelleres System.
  3. Netzteile und Mainboards sind Komponenten, die gerne überdimensioniert gekauft werden. Beim Netzteil "bedankt" sich dieses durch einen erhöhten Anschaffungspreis (jenseits der 500W steigen die Preise *richtig* an) oder durch einen lausigen Wirkungsgrad bei Office-Arbeit. Bei Mainboards werden gerne Modelle mit zwei PCIe-Slots empfohlen - aber mal ehrlich, wer will denn wirklich ein SLI- oder Crossfire-System aufbauen? Doch eigentlich nur eien Verschwindende Minderheit.
  4. Auch sollte man sich fragen, wie lange diese Zukunft wirklich ist. Mein letzter Rechner war von 2005, damals habe ich nicht auf Zukunftssicherheit geachtet, also hatte die Kiste Sockel 754, DDR1-RAM, eine AGP-Grafikkarte und eine IDE-Festplatte. Hätte ich auf "Zukunftssicherheit" geachtet, wäre es wohl Sockel 939 geworden, vielleicht auch mit PCI-Express und SATA-Platte. Und heute dann? Sockel 939 ist genauso tot wie der 754, CPUs dafür gibt es schon lange nicht mehr und auch mit dem letzten kann man keinen Blumentopf mehr gewinnen. Die damaligen PCI-Express-Boards hatten dafür eine aktive Kühlung (mit kleinen Schreilüfter) und DDR2-RAM gab es eh noch nicht.
    Heute ist es akut die Frage AM2+ oder AM3 für AMD-Prozessoren. AM3 hat den Vorteil, dass man vielleicht (!) auch nach 2011 noch Prozessoren dafür bekommt; bei AM2+ wird allgemein davon ausgegangen, dass das dann nicht mehr geht. Erkauft wird diese erhoffte Zukunftssicherheit mit höheren Preisen für Board und Speicher - und 2011 schmeißt man das AM3-Board dann doch weg, weil man vielleicht eien intel-CPU will, oder einem SATA/600, USB 3.0 oder irgendein anderer neuer Standard fehlen - oder weil AMD mal wieder aus irgendeinem grund die Pinbelegung geändert hat; etwa weil (wie derzeit bei intel) der PCIe-Controller in dem Prozessor wandert.
  5. Auch beim Stromverbrauch ist (zumeist) "langsamer = besser". Zwar unterscheiden sich heutige Rechner im Idle-Verbrauch kaum noch, unter Last sind die Unterschiede allerdings riesig. Und wieso bis zu 100W mehr verbrauchen, wenn man davon nichts hat?

Donnerstag, 4. Juni 2009

Warum Quadcores nichts bringen

Eine oft gestellte Frage ist die, warum ein Quadcore-Prozessor gegenüber einen Dualcore kaum bis gar keinen Mehrwert hat, wogegen dieser doch gegenüber einem Singlecore so einen riesigen Vorteil hat. Der Grund ist so einfach wie erschreckend: Der Quadcore bremst sich selbst!

Hierfür muss man zunächst einmal verstehen, dass ein Programm, um auf mehreren Prozessorkernen laufen zu können, aufgeteilt werden muss. Und genau hier liegt das Problem, denn einer dieser Teile, genannt Threads, ist immer das Hauptprogramm, welches einen vollen Prozessorkern braucht. Der Einfachheit halber werde ich die "benötigte Rechenzeit eines Threads" einmal in MHz angeben; in der Praxis ist dieser Wert aber bestenfalls für identische Prozessoren so schön proportional.

Betrachten wir also einmal den Fall, eines Programmes, dass genau einen Kern nutzt. Hinzu kommt grundsätzlich das Betriebssystem selbst, dass wir einmal mit einem Gegenwert von 300MHz ansetzen, bestehend aus vielen kleinen Threads. Verwenden wir hierfür nun einen 2GHz-Singlecore, bleiben also nach Abzug des Betriebssystems nur noch 1,7GHz für das Programm übrig. Tauschen wir den Singlecore gegen einen gleich schnell getakteten Dualcore aus, hat das Programm hingegen 2GHz zur Verfügung und läuft daher schneller. Kern 2: 300MHz Bedarf.

Lagern wir aus diesem Programm jetzt einen Teil, der unabhängig von der Ablaufgeschwindigkeit sein soll, aus - im Falle eines Spiels etwa die KI. Diese braucht beispielsweise weitere 500MHz. In der Summe werden also 800MHz fest verbraucht. Ergebnis: Auf dem Singlecore hat das Programm noch 1,2; auf dem Dualcore aber immer noch 2 GHz zur Verfügung. Kern 2: 800MHz Bedarf.

Noch komplizierter wird die Sache, wenn wir einen dritten Thread für die Grafik nehmen. Dieser hat einen Rechenbedarf, der von dem Haupt-Thread abhängt und 1:3 beträgt. Nehmen wir den 2GHz-Singlecore, bekommt das Hauptprogramm nur noch 900MHz und der Grafik-Thread 300MHz ab. Auf dem Dualcore dagegen sind es immer noch 2GHz für das Hauptprogramm und 333MHz für den Grafik-Thread. Kern 2: 1,033GHz Bedarf.

Nun machen wir also die Grafik komplexer und das Verhältnis wird auf 1:2 geändert. Auf dem Singlecore wird die Sache mit nur noch langsam dünn, denn nur noch 800MHz bleiben dem Hauptprogramm (und 400MHz der Grafik). Auf dem Dualcore aber sidn es 2GHz für den Haupt- und 1GHz für den Grafik-Thread. Mit insgesamt 1,8GHz ist Kern 2 fast ausgelastet.

Nun mal eine bessere KI her. Die neue will statt 500 jetzt 1000MHz. Was macht der Singlecore? 466MHz für das Hauptprogramm... Gut, das können wir knicken. Der Dualcore hat aber auch ein Problem: Das Hauptprogramm könnte zwar 2GHz nutzen, doch dann müsste die Grafik 1GHz haben. Auf Kern 2 sind aber nur noch 700MHz! Also gibt's nur 1,4GHz für den Haupt-Thread. Oder umsortieren: Hauptprogramm+viel System auf 1 (1800+200), KI+Grafik+bissl System auf 2(1000+900+100). Macht 1,8GHz für's Hauptprogramm. Was machen, um wieder auf 2GHz zu kommen? Nochn Kern! Kern 1: 2GHz Hauptprogramm, Kern 2: KI (1GHz), System (300MHz), Kern 3: Grafik (1GHz).

Doll, aber da langweilen sich doch jetzt die Kerne 2 und 3. Geht das auch anders? Was passiert denn, wenn wir doch nur 2 Kerne nehmen; die aber mit 2,5GHz? Gute Idee: Auf Kern 2 sind jetzt für die Grafik 1,2GHz. Hurra, das Hauptprogramm läuft sogar schneller! Viel schneller! 2,4GHz für dieses. Bereits mit 2x 2,3GHz wären wir wieder bei den 2GHz für's Hauptprogramm.

Kann man den Effekt jetzt auch umdrehen? Also ganz viele langsame? 4x 1,5GHz und man muss nicht mehr zwischen Grafik und KI/System rechnen. 1,5GHz Grafik also.... eh, ne... wasn das? 750MHz Grafik und 1,5GHz Hauptprogramm :( War nix - wir sind langsamer, als der Dualcore mit 2GHz. Mitm 1,8GHz-Quadcore passt's dann gegenüber dem 2GHz-Dual.

Und is dann auch der 1,5GHz-Dualcore auch langsamer als der 2GHz-Singlecore? Der Singlecore hätte 466MHz für das Hauptprogramm über. Aber der Dualcore? Der muss umsortieren. 500MHz Platz für die Grafik auf Kern 2, denn das System ist jetzt mit auf der 1, wo sich 1GHz für das Hauptprogramm ergeben. Tatsächlich wäre erst ein Dualcore mit 1GHz so langsam wie der 2GHz-Dualcore: Kern 1 mit der KI, Kern 2 mit Hauptprogramm, Grafik und System, welches hier im Summe zufällig ebenfalls genau 1GHz ergeben - das das so sauber aufgeht, ist allerdings Zufall!


Das ganze ist jetzt zugegeben etwas flappsig formuliert, zeigt aber das Problem auf: Es dauert ewig, bis mehr Neben- als Hauptaktivität erzeugt ist. Danach wird erstmal der Hauptthread minimal eingebremst: keinere Nebenthreads verschieben sich auf den Kern des Hauptthreads, wo sie nur Halb so viel "Schaden anrichten". Erst, wenn in diesem Falle der KI-Thread mehr als einen halben Kern braucht, wird's übel, da nun auch das Wegschieben von allem anderen der Grafik nicht mehr genug Raum lässt und dadurch in unsem Beispiel der Haupt-Thread gleich doppelt so stark gebremst wird. In der Praxis sind die Abhängigkeiten der Threads voneinander weitaus komplexer als in diesem Beispiel genannt. Umso schwächer die Dominanz des Haupt-Threads ist, umso stärker ist der Nutzen eines Prozessors mit mehr als zwei Kernen; in Rendering-Programmen ist beispielsweise meist der Haupt-Thread winzig, verteilt aber die Arbeit an eine vorzugsweise der Zahl der Prozessorkerne entsprechende Anzahl an identischen Threads.

Im Gegensatz dazu bringt ein Dualcore _immer_ zumindest einen kleinen Leistungszuwachs, da das aktive Programm einen Kern komplett - ohne das System - für sich selbst hat. Auch dieser Effekt ist naturgemäß umso größer, umso mehr der Singlecore durch das System selbst ausgelastet wird.

Nochmal abschließend die wichtigsten Zahlen aus dem Beispiel:
  • 1 GHz Dualcore: 266 MHz für den Haupt-Thread
  • 1,5 GHz Singlecore: 133 MHz dafür
  • 2 GHz Singlecore: 466 MHz dafür
  • 1,5 GHz Dualcore: 1 GHz dafür
  • 1,5 GHz Quadcore: 1,5 GHz dafür
  • 2 GHz Dualcore: 1,8 GHz dafür
  • 1,8 GHz Quadcore: 1,8 GHz dafür
  • 2,3GHz Dualcore: 2 GHz dafür
  • 2 GHz Quadcore: 2GHz dafür
  • 2,5 GHz Dualcore: 2,4 GHz dafür
Kleines Gimmik am Rande: Jetzt takten wir die Sache mal asymetrisch (!). Also Kern 1 2GHz; alle weiteren 1,5GHz...

Dualcore: System+KI+Grafik auf 1, Haupt auf 2. Damit 1,4GHz für den letzteren.
Quadcore: Haupt auf 1, System+KI auf 2, Grafik auf 3. Damit 2GHz für den Haupt-Thread.


...Sprich: beide CPUs sind _exakt_ so schnell, als wenn alle Kerne auf 2GHz wären. Genau diese Technik beherrscht übrigens der Core i7 von intel: Dort kann ein Kern automatisch auf Kosten eines anderen übertaktet werden. Zumindest einen Teil dieses Effekts bieten AMDs Phenom-CPUs: Hier wird ebenfalls automatisch die Taktfrequenz aller 4 Kerne unabhängig geregelt werden. Im Gegensatz zum i7 müsste man hier aber wirklich einen "2GHz-Phenom" kaufen, um den oben genannten Effekt zu bekommen - auf der Stromrechnung aber immer noch besser als 4x 2GHz...

Ganz am Ende noch ein ganz wichtiger Punkt: Zu der Verwaltung der Prozessorkerne gehört auf *jedem* Kern ein Thread pro "Nachbarkern"! Aus diesem Grunde ist ein unbenutzter Kern sogar kontraproduktiv.

Dienstag, 2. Juni 2009

Generation Internet

Diesen Spiegel-Artikel, der wohl vielen vielen im Netz "aus dem Herzen spricht", sollte man gelesen haben: http://www.spiegel.de/netzwelt/web/0,1518,628017,00.html - endlich hat einmal eine Zeitungsredaktion den Konflikt verstanden! Danke, liebe Spiegel-Redaktion!