Smalltalk mit Kindern
Februar 4th, 2016, 17:48von: verwechslungsgefahr (achtung facebook!)
(via drlima)
von: verwechslungsgefahr (achtung facebook!)
(via drlima)
Ich kann mich noch genau daran erinnern, wie ich mit etwa 11 Jahren auf Korsika in irgendeiner Bar stand, wo es diesen Automaten gab. Die Farben! Der Sound! Das Gameplay! Ich war sofort gefangen. Zwar bin ich damals über den ersten Level nicht hinaus gekommen, aber das war mir egal. Heute komme ich nicht über den 10. Level hinaus Der Typ hier schafft es allerdings bis zum Kill-Screen.
Wie der eine oder die andere sicher schon mitbekommen hat, verdiene ich meine Brötchen am Computer. Genauer gesagt mit Softwareentwicklung, mal in Java, mal in Objective-C, meistens aber im Windows-Umfeld mit VB.net oder C# (und wenn es unbedingt sein muss, zähneknirschend manchmal auch noch mit VB6 oder *seufz* VBS), mein Blog mit dem ganzen HTML/JS/CSS-Gefrickel nicht zu vergessen. Das beherrsche ich inzwischen leidlich gut, obwohl ich ehrlich gestehen muss, dass mich die ganze Chose mittlerweile doch wieder mehr langweilt als begeistert. Aber ich schweife ab.
Was ich sagen wollte: gestern Nacht hatte ich eine Idee für ein Easteregg und dazu wollte ich mal sehen, wie man einen Plasmaeffekt codet. Sowas hier. Na, und beim Suchen bin ich über diese Diskussion auf Pouët.net gestoßen, die mir mal wieder deutlich vor Augen führt, warum ich es nie zum Demoscenecoder bringen werde. Die Frage selbst verstehe ich noch, aber schon bei Punkt 3_minus in der Antwort von bdk erscheinen bei mir die ersten Fragezeichen über dem Kopf:
Some quick random hints looking at the code:
1) Always try to use look-up tables when it comes to computationally heavy stuff like sin,cos,tan,sqrt and friends (this should give you a good speed-up...)
2) Using integer math / fixed point math still can improve speed a lot expecially when math precision isn't a must
3_minus)
- multiply for (1/x) instead of dividing for x (if x is constant)
- when doing modulus operations where the divisor is a power of two (x % 2^n) (in your code "... % 256" should be) you can replace it with a faster bitwise AND where "(x & (2^n)) - 1", i.e. x % 256 <-equals-> x & (256 - 1).
- when dividing/multiplying for powers of two (integers) you can use bit shifting (i.e.: x * 32 <--> x << 5). Probably compilers already do these last two kinds of optimizations. (bitwise operations)
Found also this site, maybe you'll find it useful: http://student.kuleuven.be/~m0216922/CG/index.html.
und bei der Antwort von duffman steige ich endgültig aus:
IF the surface width is a power of 2 and the total pixel count is a multiple of 16
IF your buffers are in user memory
then try this
change your loops from this
buf = new int[x, y]
for(int x = 0; x < w; x++)
{
for(int y = 0; y < h; y++)
{
buf[x, y] = code here
...
to something like this
int Log2(int val)
{
ASSERT(val > 0)
int res = -1;
while((1 << ++res) <= val);
return(res - 1);
}
mask = w - 1 //w must be a power of 2 remember
bitshift = Log2(w)
pixelcount = w * h
//initialize buffer like this
buf = new int[pixelcount]
for(int j = 0; j < pixelcount; j += 48)
{
for(int i = 0; i < 16; ++i, ++j)
{
// i is never used
//if you need x and y, here is how to compute them
x = j & mask
y = j >> bitshift
buf[j] = palette[(cls[x,y] + paletteShift)%255];
x = (j+16) & mask
y = (j+16) >> bitshift
buf[j+16] = palette[(cls[x,y] + paletteShift)%255];
x = (j+32) & mask
y = (j+32) >> bitshift
buf[j+32] = palette[(cls[x,y] + paletteShift)%255];
x = (j+48) & mask
y = (j+48) >> bitshift
buf[j+48] = palette[(cls[x,y] + paletteShift)%255];
This memory access method gave me a better speed increase than anything else(in C)
The moral here is, dont access big buffers in user memory sequentially
while((1 << ++res) <= val); Nee ey, das wird in diesem Leben nix mehr.
Hm... vollgestopft schreibt man jetzt also "voll gestopft"?
Aber vollgepfropft bleibt gleich? Dann also vollgepfropft. I raff det ned
Nächstes Jahr geht's weiter, ein Aufgewacht! erscheint noch automatisch kommenden Montag früh. Der Konituität wegen, severstehn.
(Bild: Allie Caulfield [CC BY])
Der lang ersehnte Winterurlaub steht vor der Tür und damit die Gelegenheit, mal wieder komplette Tage zu verdaddeln. Folgende Spiele habe ich mir auf meine GOG-Wunschliste gepackt. Wer mir eine Freude machen will, kauft mir ein Spiel und schickt mir den Geschenkcode. Viele der Games gibt es für Windows, Mac und Linux, manche sind leider reine Windows-Angelegenheiten.
else Heart.Break()
Die restlichen Spiele kommen aus ladezeittechnischen Gründen erst nach dem Klick...
Du kannst mich mal. Du bist mir zu anstrengend. Vor allem die Leute, die auf dir rumlaufen. Die sind mir zu großen Teilen ein nicht lösbares Rätsel. Immer wieder überraschend und dabei gleichzeitig extrem langweilig. Ich erkläre diesen Tag für beendet. Leck mich.
Auf meinem Dachboden tummeln sich seit geraumer Zeit immer wieder Mäuse. Kann man nix machen, das Dach hat 100 Ritzen wo die rein kommen können und so kommen sie eben immer wieder. Ich stelle dann immer ein paar Wochen lang Lebendfallen auf, bringe morgens den Fang in den Wald und freue mich, wenn irgendwann keine mehr da sind.
Heute früh gestaltete sich die Sache jedoch etwas anders und ich bin immer noch total fertig, deshalb muss ich mir das mal von der Seele schreiben. Als ich heute Morgen auf den Dachboden kam, waren 3 der 4 aufgestellten Fallen zugeklappt. So weit, so gut. Allerdings hatte sich eine Falle offensichtlich erst geschlossen, als die Maus schon wieder auf dem Rausweg war. Dabei wurde dieser armen Maus das Rückgrat gebrochen und so lag sie heute früh da und guckte mich leidend an. In meiner Not dachte ich mir, die schnellste Art, sie von dem Leid zu befreien, wäre ein scharfes Messer und eine gezielte Hinrichtung durch Köpfen. Au weia. Wenn ich geahnt hätte, wie zäh Mäusehaut ist. Irgendwann war die Maus dann (hoffentlich) tot und ich völlig fertig mit den Nerven.
Die Maus geistert mir seitdem den ganzen Tag im Kopf herum.
Tut mir Leid, kleine Maus
(Bild: Steve Hall [CC BY-NC-ND])
(Bild: Global Panorama [CC BY-SA])
uiii, das war jetzt aber viel Politik hintereinander. Schnell noch ein Katzenbild und ab ins Bett.
(Bild: elycefeliz [CC BY-NC-ND])
Fuck yeah. Erst war ich Globalisierungskritiker, dann Gutmensch, später Wutbürger und jetzt schon SJW. Habt ihr Faschos noch ein paar andere Schimpfwörter parat? Ich nehme von euch Nazis auch gerne auch noch Ausländerfreund, Flüchtlingsversteher und Sozialträumer entgegen. Oder habt ihr Vollpfosten vielleicht noch was anderes für mich auf Lager? Was ganz Neues vielleicht mal von euch Jodelpennern? Zecke, Linker Spinner und Kommunistensau sind leider schon genauso so abgelutscht wie ihr Dösbaddel. Gebt mir mehr, ihr schlappschwänzigen, hirnlosen, legasthenischen, bürgerlich-besorgten Luschen mit Mamakomplex.
Ey, lass mich einfach rein, okay? |
Ich will das hier nie wieder sehen. |
Ihr Browser versucht gerade eine Seite aus dem sogenannten Internet auszudrucken. Das Internet ist ein weltweites Netzwerk von Computern, das den Menschen ganz neue Möglichkeiten der Kommunikation bietet.
Da Politiker im Regelfall von neuen Dingen nichts verstehen, halten wir es für notwendig, sie davor zu schützen. Dies ist im beidseitigen Interesse, da unnötige Angstzustände bei ihnen verhindert werden, ebenso wie es uns vor profilierungs- und machtsüchtigen Politikern schützt.
Sollten Sie der Meinung sein, dass Sie diese Internetseite dennoch sehen sollten, so können Sie jederzeit durch normalen Gebrauch eines Internetbrowsers darauf zugreifen. Dazu sind aber minimale Computerkenntnisse erforderlich. Sollten Sie diese nicht haben, vergessen Sie einfach dieses Internet und lassen uns in Ruhe.
Die Umgehung dieser Ausdrucksperre ist nach §95a UrhG verboten.
Mehr Informationen unter www.politiker-stopp.de.