bla

Du surfst ja immer noch mit dem Internet Explorer :(


Das ist nicht nur hochgradig gefährlich für deinen Computer, sondern macht mir auch das Leben extrem schwer.

Deshalb bekommst du hier leider gar nichts zu sehen.

Besorge dir bitte einen ordentlichen Browser wie Firefox, Brave, Opera, Chrome, Safari, Vivaldi oder von mir aus auch Edge.

Für den IE ist hier Ende Gelände.
Diese Website verwendet Cookies, um so geil zu sein wie sie ist.
Cool, her damit!
Oh Gott oh Gott! NEIN! Das will ich nicht!

‘Coding’
to daMax

Von 0 auf Snake in 270 Sekunden

Juni 1st, 2017, 10:58

Chris DeLeon codet hier mal locker-flockig ein JavaScript-Snake in viereinhalb Minuten, während er darüber plaudert, was er da so tut. Zoinks!

Er kann das, weil er schon 219 Spiele zusammengeklöppelt hat, jedes an nur einem Tag. Wie das zustande kam, erzählt er hier.

PS: ich habe mir erlaubt, das Spiel noch mit einem Punkte- und Highscorezähler zu versehen, sowie eine mit jedem gefressenen Apfel schneller werdende Schlange zu implementieren:


(Click to play)

Mein bisheriger Rekord ist 31 33.

PPS: bei Gelegenheit wird Wurli mal was von diesem Snake lernen müssen, die gesamte Array.Push() und .Shift() Technik in Verbindung mit Trail ist schon recht elegant.

PPPS: nein, das funktioniert nicht aufm Handy. Auch nicht aufm Tablet. Sorry, kids.

(danke, dion!)

 

How to catch a programmer

Mai 27th, 2017, 00:42

So, what's your idea of a perfect date? YYYY-MM-DD, I find other formats a bit confusing | X-D | coder humor

:-D


coderhumor

 

Mal 'ne Frage

Mai 12th, 2017, 09:25

Sind hier .NET-Entwickler anwesend? Ich habe ein relativ lustiges Problem mit einer WinForm mit mehreren hundert Checkboxes, die in einem For-Loop automatisch alle gecheckt werden sollen, was endlos dauert, aber wenn hier eh niemand da ist, der das Problem versteht, werde ich nicht ins Detail gehen, denn die Problembeschreibung dauert etwas länger...

 

Ein kleines Wunder in 4 kB: 2nd stage BOSS (update)

April 28th, 2017, 20:52

Erster Platz beim TokyoDemoFest 2016: 2nd stage BOSS by 0x4015 & YET11.

Die YouTube-Version wird wie immer dem Original nicht wirklich gerecht, weil das ganze Würfelgebilde zu einzelnen Pixeln zerfällt, womit Videocodecs einfach nicht klar kommen. Wer kann, lädt sich das Ding runter und führt es lokal aus.

Fun fact am Rande: Der Screenshot zu dieser Demo ist exakt 75,7624755 mal so groß wie die Demo selbst O.o

Update: ich sehe gerade, dazu gibt es auch einen Teil 1 (von 2015) und einen Teil 3 (der gerade eben wieder den 1. Platz auf der Revision abgeräumt hat).

(via curio)
 

Coder, die Ziegen opfern

April 19th, 2017, 23:16

Ich komme leider viel zu selten dazu, The Daily WTF zu lesen. Wenn ich dann doch mal die Muße finde, gibt es je-des-mal Stories darin, die mir aber sowas von aus dem Herzen sprechen, dass mir ganz anders wird. Na, und hin und wieder gibt es dann den Moment, wo dieses Mit-Leid von einem sehr dicken Grinsen begleitet wird. Einen solchen Moment möchte ich mal mit euch teilen, wobei mich im Voraus bei TDWTF für die dreiste Raubmordkopie und bei Smartphonebesuchern und Nichtcoder*Xen für das voraussichtliche Nichtfunktionieren des Gags entschuldigen möchte. Here comes:

Folks, you need to choose a different sacrificial animal for your multithreading issues. Thanks to this comment Edward found in a stubborn bit of Java code, we now know the programming gods won't take our goats.

public static boolean doSomeOSStuff() {
// Forgive me father for I have sinned - with the bag of crap written in the lines below.
// When running multiple threads (~500) concurrently, the damn OS commands fail
// at a 1% rate for no apparent reason.
// There is no error message, or any indication of failure, they just don't happen
// and come bite you in the ass.
// After much frustration, I decided to try 3 things:
// 1. sacrifice a goat. - did not go as planned.
// 2. semaphoring this shit. did not change anything...
// 3. after each failed command, I will try and verify if it succeeded or not.
// If not I'll try it 4 more times.
// I am now going home to take a hot shower, and cry laying on the shower floor. and /or sacrifice
// a few more goats.
//
// ...
// s, . .s
// ss, . .. .ss
// 'SsSs, .. . .sSsS'
// sSs'sSs, . . .sSs'sSs
// sSs 'sSs, ... .sSs' sSs
// sS, 'sSs, .sSs' .Ss
// 'Ss 'sSs, .sSs' sS'
// ... sSs ' .sSs' sSs ...
// . sSs .sSs' .., sSs .
// . .. sS, .sSs' . 'sSs, .Ss . ..
// .. . 'Ss .Ss' . 'sSs. '' .. .
// . . sSs ' . 'sSs, . .
// ... .sS.'sSs . .. 'sSs, ...
// .sSs' sS, ..... .Ss 'sSs,
// .sSs' 'Ss . sS' 'sSs,
// .sSs' sSs . sSs 'sSs,
// .sSs'____________________________ sSs ______________'sSs,
// .sSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS'.Ss SSSSSSSSSSSSSSSSSSSSSs,
// ... sS'
// sSs sSs
// sSs sSs
// sS, .Ss
// 'Ss sS'
// sSs sSs
// sSsSs
// sSs
// s

// snipped OS manipulation code with several cases of aforementioned ritual
}

:lol: :lol: :lol:

Der Arme. :(

 

Visual Studio Unit Tests und modale Dialoge

April 6th, 2017, 14:50

Ja, ich weiß: ordentliche Model-Klassen öffnen nicht zur Laufzeit modale Dialoge. Aber das Leben ist nunmal kein Ponyhof bzw. der Job ist nicht die Uni und so kommt es durchaus vor, dass es schon tausende Zeilen Code gibt, bevor die erste Testmethode dazu geschrieben wird. Gefällt mir auch nicht, ist aber eben so. Seit heute früh verzweifele ich an einer Unit-Testklasse, die das Visual Studio Unit-Test-Framework hängen bleiben ließ, und da ich jetzt endlich eine Lösung gefunden haben, klebe ich sie mir mal ins Blog, um sie das nächste mal schneller finden zu können.

lass hören...

 

EPPLUS – Excel Library für C# / .NET

März 16th, 2017, 14:12

Ein Gastbeitrag von Tobi:

Falls ihr einmal in die Verlegenheit kommt und ein Excelsheet über .NET erstellen müsst, könnt ihr natürlich ganz einfach das COM-Objekt einbinden und damit auf alle möglichen Objekte zugreifen. Doch spätestens nach dem Entladen des COM-Objektes werdet ihr euch irgendwann wieder die Haare raufen. Da ich sowieso nicht mehr soviele auf dem Kopf habe, ist es ja nicht so schlimm. Lieber eine Glatze als gar keine Haare mehr. B-)

Doch nach ein bisschen Googlen nach Lösungen bin ich bei Codeplex auf diese Library gefunden. Und was soll ich sagen: Sie funktioniert. Erstens sehr schnell, zweitens sehr elegant, durch wenige Aufrufe und kompakte Schreibweisen und drittens werden keinerlei Excel Objekte erzeugt, die nach dem Beenden des Programms für Probleme sorgen könnten.

EPPLUS ist eine sehr schöne Library, wenn man per C# / .NET auf Excel zugreifen muss, obendrein ist sie auch noch Open Source. Und für die ganz Faulen wie mich gibt es das Ganze sogar als Nuget Paket. Bei soviel Service habe ich dem Projekt auch mal eine kleine Spende zukommen lassen. Schließlich leben Programmierer ja nicht nur Luft und Code, sondern auch von Kaffee, Tee, Mate oder auch mal ein Bier. :hehe:

 

Wieder was gelernt: Malbolge

Januar 13th, 2017, 08:55

Was es nicht alles gibt:

Malbolge ist eine gemeinfreie esoterische Programmiersprache, die 1998 von Ben Olmstead entwickelt wurde. Sie wurde nach dem achten Kreis der Hölle aus Dantes Divina Commedia benannt.

Die Besonderheit von Malbolge besteht darin, dass sie als schlimmstmögliche Programmiersprache entwickelt wurde, die am schwierigsten zu beherrschen ist.
[...]
Als Beweis für die schwierige Entwicklung von Programmen steht, dass das erste Malbolge-Programm erst zwei Jahre nach dem Entstehen der Programmiersprache entstanden ist. Dieses Programm wurde nicht von einem Menschen programmiert, sondern von einem in Lisp geschriebenen Programm unter Anwendung eines Such-Algorithmus gefunden.

 

Du weißt, das Jahr könnte anstrengend werden, wenn...

Januar 12th, 2017, 11:38

...du an deinem 4. Arbeitstag über solchen Code stolperst:

Sehr beliebt sind immer auch Getter, die gar nichts zurück geben, dafür aber munter Werte setzen:

Geht dann noch 100 Zeilen so weiter. Oder wie wäre es damit:

Ein Property, das Buttons enabled/disabled? Yeah.

Das kann ja heiter werden.

codecrap

 

WordPress: Mehr Dateitypen zum Upload erlauben

Juni 19th, 2016, 12:41

WordPress reagiert standardmäßig auf den Versuch, diverse Filetypen hochzuladen, mit der Meldung:

Sorry, this file type is not permitted for security reasons

Leider blockiert es eben auch so gängige Dateitypen wie *.svg, *.webm und *.html.

Dieses Verhalten lässt sich mit ein bisschen Code auflockern. Wer ein eigenes Theme hat, fummelt sich diesen Code in die functions.php um beispielsweise Uploads der 3 oben genannten Dateitypen zu erlauben:

/* Mehr Filetypen zum Upload erlauben ----------------------------------------*/
function my_myme_types($mime_types){
$mime_types['svg'] = 'image/svg+xml';
$mime_types['html'] = 'text/html';
$mime_types['webm'] = 'video/webm';
return $mime_types
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Wie ihr seht, muss man dazu den MIME-Type der Dateien kennen. Eine vollständige Liste aller MIME-Types findet sich hier (eine nicht so ganz vollständige lokale Kopie der Liste gibt es hier).

PS: bevor ihr anfangt, HTML-Dateien per Fileupload hochzuladen, informiert euch bitte erst, was ihr da tut, ja? In einer HTML-Seite kann eine Menge schlimmer Scheiß eingebettet sein, ich übernehme keine Haftung für gehackte Server, malwareverseuchte Rechner und ähnliches.

(via wpbeginner)

wordpress | filetypes | upload

 

Mein Pro-Adblock-Overlay und uMatrix (update)

Juni 18th, 2016, 10:41

kalo meinte gestern:

Seit Monaten geht mir die Begrüßung auf Deiner Seite auf die Nerven - ich gehe immer mit Mozilla+uMatrix rein und werde angenölt, daß ich mir doch mal ... z. B. uMatrix anschaffen sollte. Nicht sehr smart. Sorry

Heute früh hatte ich gerade nichts Besseres zu tun, also habe ich meine Linux-VM angeworfen, sie erstmal stundenlang aktualisiert, einen Snapshot angelegt und anschließend uMatrix installiert. Und ja, uMatrix filtert das Overlay nicht weg :(

todamax pro adblock oops overlay

Nun muss ich kurz ausholen, um die Diskussion auf ein sinnvoles Niveau zu heben. Mein Pro-Adblock-Plugin erzeugt per JavaScript ein DIV-Element mit id="ad-space" in der Annahme, dass ein vernünftiger AdBlocker ein solches Element wegfiltert. Die meisten AdBlocker verwenden dazu die EasyList, auf der zigtausende solche Elemente hinterlegt sind, und das funktioniert problemlos.

Das Problem mit uMatrix ist, dass es eben KEINE Filterliste wie EasyList verwendet, sondern Werbung nur anhand von Hosts rauswirft. Das heißt, uMatrix filtert komplette Webserver weg, nicht aber einzelne Werbeelemente. Nun kommt das "OOPS"-Overlay ja nicht von einem anderen Webserver, sondern direkt aus meinem Blog. uMatrix erlaubt leider auch nicht, ein bestimmtes CSS-Element zu filtern, sondern arbeitet nach dem Prinzip "ganz oder gar nicht": man kann CSS komplett verbieten oder komplett erlauben, einzelne Elemente kann man nicht filtern. Oder habe ich da was falsch verstanden?

Nun stehe ich echt vor einem Problem: wie kriege ich jetzt uMatrix dazu, das "OOPS" zu filtern? Oder wie kriegt der|die Anwender|in uMatrix dazu, das OOPS wegzuwerfen?

Ich bin da im Moment mit meinem Latein echt am Ende. Ich kann mir nicht vorstellen, dass ich per JavaScript herausfinde, ob z.B. uMatrix installiert ist und dann einfach das Overlay gar nicht erst erzeuge.

Als Friedensangebot habe ich einen neuen Link "Ich will das hier nie wieder sehen" ans Ende des "OOPS" gepackt, der einen 10 Jahre gültigen Cookie setzt. Wer allerdings seinen Firefox auf "Keep Cookies Until I Close Firefox" gestellt hat oder Cookies auch mal manuell löscht, dem wird auch das nicht helfen.

PS: abgesehen davon zerstört uMatrix meinen Radioplayer, weil es ganz dreist sämtliche Verbindungen zu laut.fm unterbindet. Ich bin von uMatrix ehrlich gesagt nicht so richtig überzeugt...

Update: ich habe ein (ziemlich hässliches) Workaround gefunden: ich binde jetzt ein Javascript von einem anderen URL ein (http://www.themadguys.de/ads/adsbygoogle.js), das nur eine einzige Zeile enthält, in der eine Variable namens isAdsDisplayed auf true gesetzt wird. uMatrix verhindert das Laden dieses Scripts, somit ist isAdsDisplayed immer undefined und deshalb wird dann in showadspace() das Overlay nicht mehr angezeigt. Aber wie gesagt: das finde ich eher hässlich, weil es eben bedeutet, dass das Plugin eine Datei auf einem anderen Server benötigt. Das muss irgendwie besser gehen...

 

Programmiersprachen als Fragestellung

Juni 9th, 2016, 12:43

Eine großartige Übersicht über so ziemlich alle derzeit vertretenen Programmiersrachen in der Form von Fragestellungen.

what-if-a-programming-language-was-a-question

von @nixcraft

(via brightbyte)

what if everything was a pointer | object | dict | array | java | vb | vb.net | javascript | c#

 

The Return of Evil Bot

Juni 3rd, 2016, 16:28

Die REVISION 2016 in Saarbrücken ist zwar schon rum, trotzdem hatte ich die Einladung noch nicht gesehen. Schandeschandeschande über mich, die ist nämlich lustig (wenn man die Geduld hat, bis zum Plottwist zu warten):

PS: auch "live" erhältlich.

(via tobi)

demoscene | bad robot | party | event

 

OOPS!

Es sieht so aus, als hättest du keinen Werbeblocker installiert. Das ist schlecht für dein Gehirn und manchmal auch für deinen Computer.

Bitte besuche eine der folgenden Seiten und installiere dir einen AdBlocker deiner Wahl, danach kannst du todamax wieder ohne Einschränkungen genießen.


uBlock Origin: für Chrome | Firefox | Safari

AdGuard: für Chrome | Firefox | Safari | Opera | Yandex

AdBlock Plus: für Chrome | Firefox | Safari | Opera | Internet Explorer

uMatrix: für Firefox | Chrome | Opera

Ey, lass mich einfach rein, okay?
(Setzt per Javascript einen Cookie. Wenn Du das alles deaktiviert hast, weiß ich auch nicht, wie ich dir helfen soll)

Ich will das hier nie wieder sehen.
(Setzt per Javascript einen sehr langlebigen Cookie. Wenn Du das alles deaktiviert hast oder Cookies automatisch oder auch von Hand löschst, weiß ich auch nicht, wie ich dir helfen soll)

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.