The childhood of a coder: Can’t. Stop. Watching.
Februar 9th, 2016, 18:33Und wieder ein Volltreffer von CommitStrip:
windows | defragmentierung | defragmentation | scandisk
Und wieder ein Volltreffer von CommitStrip:
windows | defragmentierung | defragmentation | scandisk
*.ico-Dateien haben im Laufe der Zeit einigen Fortschritt durchgemacht und sind dabei von 16x16 Pixel großen Bitmaps zu Dateien mutiert, die diverse Größen des gleichen Bildes (oder auch verschiedener Bilder) in sich vereinigen. Heute wollte ich mal herausfinden, wie man ein solches *.ico in GIMP erstellt und wie sich herausstellte, ist das eigentlich ganz einfach. Voraussetzung dafür ist ein aktueller GIMP (hier kam Version 2.8.16 zum Einsatz).
Windows-Icons beinhalten 9 Bilder in unterschiedlicher Auflösung mit unterschiedlicher Farbtiefe (Bits per Pixel; bpp) und Transparenztiefe (Alpha). Um ein korrektes *.ico zu erstellen, nutzt ihr GIMPs Fähigkeit, Ebenen mit verschiedenen Größen verwalten zu können. Wenn ihr Ebenen in der richtigen Größe anlegt, könnt ihr all diese Ebenen in einem einzigen Schritt in ein *.ico File exportieren.
archive.org hat jetzt ein Museum für alte Computerviren. In einem DOS-Emulator kann man dort das Wirken verschiedener Viren der 1980er und 90er bewundern. Sweet!
Oh WordPress, was machst du nur für einen Mist? Mit dem letzten Update auf 4.4 kamen wieder zwei so "Features" daher, die ich per Hack deaktivieren musste, weil sie kompletter Mist sind. Zum einen wurde mein Thumbnailviewer-Plugin ausgehebelt. Okay, das ist wahrscheinlich ein Orchideenproblem.
Aber zum anderen liefert WP4.4 an Smartphones völlig unscharfe, verpixelte Bilder und das sieht dann so aus: zeig her...
Wie Professor Savage nun der britischen IT-Webseite The Register gegenüber berichtete, gelang es seinem Team 2010, über ein manipuliertes, als WMA-Datei kodiertes Lied eine Sicherheitslücke im Media-Player eines Autoradios auszunutzen. Von da aus hatten sie Zugriff auf den CAN-Bus des Wagens und konnten über das eingebaute GSM-Modem weitere Befehle nachladen. Da auf dem CAN-Bus selbst keine weiteren Sicherheitsvorkehrungen existierten, hätten sie etwa über die Crash-Erkennung den Motor abstellen und alle Wagentüren öffnen können. "Gib mir 18 Sekunden Spielzeit und unser Angriffscode ist drin", so Savage.
Coderhumor:
click -> full size
license: CC sa-nc-nd
Plankalkül is the first high-level programming language, designed by Konrad Zuse in 1945.
Powree und Oliver Knörzer aka. Sandra and Woo sollten jetzt eigentlich in meinen Feedreader gewandert sein. Leider finden sich in ihrem Feed nur die Texte, nicht aber die Bilder, was bei einem Webcomic irgendwie unvorteilhaft ist. Schade
PS: kann mir mal jemand diese Antwort auf den PHP-Bugreport erläutern? Bis "00-00-00 means 2000-00-00" komm' ich noch mit, aber dann wird er mir schleierhaft... und Ruby raffigarned, das macht aber auch nix.
(via dingens)Kybernetiq, what the fuck?
Sergej findet's uninteressant, ich habe jetzt eine nette Lektüre für die sonntägliche Zugfahrt, denn
Benutze das Betriebssystem Tails, wenn du den Verdacht hast, dass deine Arbeitsumgebung kompromittiert wurde. Um deine Spuren im Internet zu verwischen, greife auf den Tor Browser Bundle zurück.
sind jetzt keine völlig verkehrten Tipps, ne?
PS: wusstet ihr, dass IS jetzt einen eigenen verschlüsselten Instant Messenger entwickelt, weil fast die gesamte Krypto des Westens inzwischen mit Geheimdiensthintertürchen verseucht ist?
Update: also ich habe dieses 15-seitige (!) Machwerk jetzt überflogen. Erstaunlich, dass so wenig Content so viele Überschriften ergibt was will uns der Autor sagen? GnuPG ist okay aber schwer zu kapieren, OTR ist gut, Asrar2 ist doof, die krude "Erste Muslimische Sci-Fi Story" war mir zu doof. Hey ex-Agent: wenn das das Beste ist, was keine ex-Kollegen zustande bringen, um unsere Geliebte Bundesregierung von der Gefährlichkeit von Verschlüsselung zu überzeugen, dann müssen in unserer Geliebten Bundesregierung ja lauter paranoide alte Männer sitzen, sonst wird das nix mit der Verunsicherung. Wobei... Moment... ähm... okay, I get the picture.
Gerade habe ich zu meinem Entsetzen festgestellt, dass RealSpec sich nicht mehr mit meinem aktuellen Rechner verträgt und so war guter Rat teuer nach kurzer Websuche gefunden: QAOP! Das Ding wirkt per HTML5 (!!) wahre Wunder: die derbsten Demos laufen größtenteils tadellos. Beim Herumspielen ist mir dieser hübsche Absturz gelungen, den ich euch nicht vorenthalten wollte:
Ja Kinners, so hübsch konnten Computer früher abstürzen Schade nur, dass in QAOP keine Pentagon/Scorpion/TR-DOS Emulation dabei ist, sonst hätte ich eine echte RealSpec-Alternative gefunden. Der Entwickler dieses Wunderwerks heißt Jan Bobrowski und hat es auch sonst faustdick hinter den Ohren.
Auf seiner Site findet sich auch diese fette Liste voller HTML5-Emulatoren. Da ist wirklich alles vertreten was 8-16 Bit hat. Un-fass-bar!
Hier noch ein paar Links, die ich nicht mehr lange suchen müssen möchte:
Dieser Knaller aus dem Jahre 2009 ist mir gerade vor die Linse gekommen und gefällt mir besser als alles, was ich bisher an 2015er Demos gesehen habe.
Dieses Video fasziniert mich besonders, weil eine Hälfte meines Gehirns dem Inhalt noch so grob folgen kann, die andere Hälfte dagegen schon nach kürzester Zeit zu Boden geht.
Wer nicht weiß, was Conway's Game of Life ist, klickt mal schnell hier, anstatt sich durch die dröge Theorie auf Wikipedia zu wühlen, und
(via gruetze)APL, abgekürzt für A Programming Language, ist eine üblicherweise interpretierte Programmiersprache, deren Syntax überwiegend aus Symbolen besteht.
- Wikipedia
Vom "Internet of Things" habt ihr vielleicht schon mal gehört. Verkürzt ausgedrückt will uns dieser Kampfbegriff sagen, dass inzwischen immer mehr "Dinge" ans Internet angeschlossen werden (Webcams, Pulsmesser, Hausthermostate, Kühlschränke). Das führt natürlich zu paradiesischen Zuständen für Viren und Malware, da viele dieser Plastegeräte absolut unzureichend vor Angriffen geschützt sind.
Wie derbe sich das inzwischen in der Praxis auswirkt, ist neulich im Heise-Labor aufgefallen, als sich deren Lego-Mindstorms-Roboter mit einem Telnet-Wurm infizierten.
Ende September warnte uns unser Provider, dass aus dem Netz unserer Forschungseinrichtung ein Portscan durchgeführt wurde. Auf der Suche nach dem Verursacher stellte sich zu unserer Verwunderung heraus, dass die angegebenen IP-Adressen nicht zu einem Arbeitsplatzrechner gehörten, sondern zu den Steuereinheiten des Robotik-Baukastens Lego Mindstorms EV3 [..] Um der Sache auf den Grund zu gehen, richteten wir ein MacBook über die Internetfreigabe als Accesspoint ein und verbanden die EV3-Steuerungen damit. [...] Die Geräte scannten tatsächlich große IP-Adressbereiche auf Port 23, dem Standardport für Telnet. Da wir ausschließen konnten, dass diese Scans von unserem Code verursacht wurden, mussten wir ab diesem Zeitpunkt davon ausgehen, dass die Steuercomputer des dänischen Spielzeugherstellers mit einem Schädling befallen sind. [...] Es zeigte sich, dass auf den Geräten ein Telnet-Server läuft, an dem man sich als "root" anmelden kann – ganz ohne Passwort
Das wird noch lustig in nächster Zeit.
(Bild: RK Bentley [CC BY-NC-ND])
(via rzkoepke)
Ostern ist zwar noch ein bisschen hin, eine kleine Wiederauferstehungsgeschichte hat sich hier jedoch gestern Abend schon ereignet. Bis zum letzten WordPress-Update (oder so) war es hier im Blog immer so, dass verlinkte Bilder in so einem lightbox-ähnlichen Dingens aufgepoppt sind, wenn sie mit einer größeren Version desselben Bildes verlinkt waren. Wenn ich ein solches Verhalten erzwingen wollte (weil ich z.B. nur ein Wort auf die gleiche Weise verlinken wollte), musste ich einfach
rel="thumbnail"
in den Link schreiben und gut war's.
Seit dem letzten WP-Update (oder so) schien dieses Plugin nicht mehr zu funktionieren. Der JS-Code war mir allerdings mal wieder viel zu lang um nach der Fehlerquelle zu suchen, statt dessen fiel mir auf, dass WordPress seit Neuem(?) in jeden Bildlink ein rel="attachment wp-att-XXXX"
schreibt. Das kollidiert natürlich mit einem rel="thumbnail"
. Nun kann man wahlweise dieses rel="attachment..."
manuell aus dem Link entfernen, aber ich kenne mich, das werde ich ständig vergessen. Also habe ich mir flugs eine Methode gesucht, die das rel="attachment"
entfernt. Diese habe ich dann so erweitert, dass sie statt dessen rel="thumbnail"
daraus macht. Der Code lautet folgendermaßen und ist in die functions.php
des aktuellen Themes zu integrieren:
/*-- das rel="attachment xxx" gegen ein rel="thumbnail" austauschen --*/
function my_remove_rel_attr($content) {
return preg_replace('/\s+rel="attachment wp-att-[0-9]+"/i', 'rel="thumbnail"', $content);
}
add_filter('the_content', 'my_remove_rel_attr');
Das Plugin gibt es übrigens hier zum Runterladen und das Bild da oben rechts zeigt auf, was ich meine.
(Bild: Kerri Lee Smith [CC BY-NC-SA]
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.
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.