Python3 urllib Wrapper: HTTP-Request mit Python

Dieser Beitrag ist Teil meiner Sourcecode a Day-Aktion.

Heute gibt’s eine simple Wrapper-Klasse für urllib aus Python3:

Verwendung:

Das ganze codiert automatisch Post-Parameter und verwaltet Cookies 🙂

 

Sehr simpler Captcha in PHP – Captcha.class.php

Dieser Beitrag ist Teil meiner Sourecode a Day-Aktion.

Heute möchte ich eine Klasse vorstellen, mit der man sehr einfache Captchas generieren und prüfen kann. Man sollte diese Klasse so jedoch nicht direkt verwenden, sondern zumindest statt imagestring imagettftext mit einer eigenen Schriftart verwenden.

 

CURL Wrapper-Klasse in PHP – WebBrowser.class.php

Dieser Beitrag ist Teil meiner Sourecode a Day-Aktion.

Eine simple nützliche Wrapper-Klasse, die den einfachen Umgang mit CURL ermöglicht. Cookies und Referer werden automatisch gespeichert.

Die Verwendung:

 

Galgenmännchen KI – Hangman.class.php

Dieser Beitrag ist Teil meiner Sourcecode a Day Aktion.

Vor langer Zeit habe ich mir mal eine kleine Klasse zur Lösung von Galgenmännchen-Spielen geschrieben. Man benötigt zur Verwendung der Klasse eine Datei wordlist.txt, in der möglichst viele deutsche Wörter gespeichert sind!

Ein Beispiel zur Verwendung:

 

Einfache Datenbank-Klasse für PHP

Dieser Beitrag ist Teil meiner Sourecode a Day-Aktion.

Ich möchte eine Klasse vorstellen, die ich mir mal geschrieben habe um einfach auf mySQL-Datenbanken zuzugreifen. Ich verwende sie selbst allerdings nicht mehr, da CodeIgniter eine eigene Datenbank-Abstraktion liefert und die meisten PHP-Hosts jetzt auch mysqli unterstützen!

Die Verwendung:

Die aller erste Manager’s Life Version verwendete diese Klasse.

 

Mehrsprachigkeit für PHP-Projekte: aLang.class.php

Dieser Beitrag ist Teil meiner Sourecode a Day-Aktion.

Heute möchte ich eine Klasse vorstellen, mit der man sehr einfach Mehrsprachigkeit in sein PHP-Projekt bringen kann:

In dieser Konfiguration müssten die Sprachdateien nun in den Ornder lang/. Beispiel für eine de.ini:

Verwendung:

Die Klasse wird übrigens in abgewandelter Form in der aktuellen TWLan-Version verwendet 😉

 

Sourcecode a Day: Jeden Tag ein Sourcecode

Hallo,

ich habe vor eine kleine Aktion auf meinem Blog zu starten: Ich werde ab heute jeden Tag einen Sourcecode posten. Mit Sourcecode sind alle möglichen Klassen, Code-Schnipsel und kleinere Scripts gemeint – alles was sich so auf meiner Festplatte gesammelt hat und veröffentlich werden soll. Teilweise sind die Sourcecodes schon etwas älter, weshalb der Code nicht unbedingt schön ist, allerdings kann man mit jedem noch etwas anfangen und ggf. sogar noch etwas daraus lernen! Da die Sourecodes nicht immer unbedingt kommentiert sind könnten Fragen aufkommen – diese dann einfach als Kommentar posten und ich werde versuchen sie zu Beantworten! 🙂

Alle Sourecodes stehen unter der WTFPL-Lizenz, das heißt jeder kann damit machen was er will:

This program is free software. It comes without any warranty, to
the extent permitted by applicable law. You can redistribute it
and/or modify it under the terms of the Do What The Fuck You Want
To Public License, Version 2, as published by Sam Hocevar. See
http://sam.zoy.org/wtfpl/COPYING for more details.

Wie lange ich diese Aktion machen werde ist noch nicht ganz klar – ich lege mich jetzt erstmal auf 7 Sourecodes (= 7 Tage) fest.

 

Jint – JavaScripting für .NET

Viele Spiele bieten die Möglichkeit diese per Scripting zu erweitern. Dabei kann man etwa eine Map oder eine KI mit Scriptsprachen realisieren. Sehr beliebt ist hier LUA. Leider ist jedoch LUA unter den Leuten deutlich weniger bekannt und verbreitet als JavaScript, weshalb ich neulich nach einer Möglichkeit gesucht habe Scripting per JavaScript zu ermöglichen. Da ich derzeit an einem .NET Projekt arbeite, habe ich natürlich nach entsprechenden .NET Lösungen gesucht. Hierbei bin ich auf Jint – JavaScript Interpreter for .NET gestoßen. Das ganze bietet einen vollen JavaScript Interpreter, der so ziemlich die meisten JavaScript Features unterstützt (für mehr Info’s siehe Webseite). Das Coole daran ist, dass sich auch sehr einfach .NET Objekte und Funktionen in JavaScript aufrufen lassen und umgekehrt. Hier mal ein einfaches Beispiel:

Würde man script jetzt aus einer Datei lesen, könnte man dem Benutzer ermöglichen eine eigene Funktion zur Berrechnung einer Distanz zu definieren. Das gute hierbei ist auch, dass man genau Kontrollieren kann auf welche Objekte aus .NET der Benutzer Zugriff hat. (JEngine.AddPermission(), JEngine.AllowClr, JEngine.DisableSecurity())
Dadurch entstehen auch keine Sicherheitsprobleme. Man kann sogar die maximale Anzahl von Rekursionen begrenzen (JEngine.SetMaxRecursions).

Ein .NET Objekt an ein Script zu übergeben geht auch sehr einfach:

Das ganze ist also wirklich einfach zu verwenden und bietet sehr viele Möglichkeiten. Man könnte ein Poker-Spiel programmieren und dann KIs per JavaScript ermöglichen, oder aber zum Beispiel Quests und NPCs in Rollenspielen per JavaScript programmieren. Ein weiterer Vorteil ist, dass die JavaScripts zur Laufzeit geladen werden können, und jeder Zeit neugeladen werden können. Das heißt auch das Testen geht wesentlich einfacher! 🙂