Lua

Für mein Invertika Projekt nutzen wir als Backend zum Skripten die Skriptsprache Lua. Unter der offiziellen Seite http://www.lua.org/ findet sich leider nicht all zu viel einsteigerfreundliche Dokumentation.

Doch Robert Schmitz bringt mit seiner Seite http://lua.gts-stolberg.de/ Abhilfe. In seinem Lua: für Anfänger bringt er einem Lua leicht und verständlich näher. Jeder der sich mit Lua auseinandersetzen möchte sollte der Seite einen Besuch abstatten.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Lua
http://www.lua.org/manual/5.1/manual.html

SSH unter C#

Da das .NET Framework keine SSH Unterstützung von Haus aus mitliefert, muss man sich hier nach einer geeigneten Bibliothek umsehen. Dabei bin ich auf die Bibliothek SharpSSH gestoßen, welche mittlerweile zwar etwas älter ist aber klaglos ihren Dienst verrichtet. Auch die Featureliste ist ansehnlich. So wird das SSH2 Protokoll, das SFTP Protokoll und das SCP Protokoll unterstützt.

Weitere Features sind das Port- und Stream Forwarding, sowie das generieren von DSA und RSA Schlüsselpaaren. Bezogen werden kann SharpSSH unter http://www.tamirgal.com/home/dev.aspx?Item=SharpSsh.

Daneben gibt es noch eine CodeProject Seite unter http://www.codeproject.com/KB/IP/sharpssh.aspx welche aber noch ein wenig älter ist.

C# und MySQL Datenbanken

Möchte man in C# eine Verbindung zu einer MySQL Datenbank herstellen so stellt man fest das dies nicht ohne weiteres möglich ist. Um mit einer MySQL zu reden benötigen wir den passenden ADO.NET Provider. Bei MySQL heißt das ganze MySQL Connector/NET und kann unter http://dev.mysql.com/downloads/connector/net/ bezogen werden.

Wer jetzt noch einen passenden Einstieg in die Thematik sucht dem seinen folgende Tutorien empfohlen:
http://www.seven-c.de/files/datenbankenhowto.htm
http://www.codeplanet.eu/tutorials/csharp/6-csharp/5-verbindung-zum-mysql-server-mit-csharp.html

UDP Portscanning unter PHP

Vor einigen Tagen wollte ich ein PHP Skript schreiben welches nachschaut ob auf einer bestimmten IP Adresse auf einem bestimmten Port ein Dienst läuft. Dazu wollte ich folgendes Skript benutzen:

function check_server($ip, $port) {
  $fp = fsockopen ($ip, $port, $errno, $errstr, 10);
  $result = "";

  if($fp == false)
  {
   $result = "offline";
  }
  else
  {
   $result = "online";
  }

  fclose($fp);

  return $result;
}

$gameserver= check_server("udp://192.168.0.13", 9604);
$accountserver= check_server("udp://192.168.0.13", 9601);

echo "Gameserver: ",$gameserver,"
"; echo "Accountserver: ",$accountserver,"
";

Das Problem an der Sache ist das bei UDP immer true zurückkommt da das ganze ja ein verbindungsloses Protokoll ist. Bei TCP funktioniert diese Herangehensweise prima, bei UDP kann man es vergessen… Ganz interessant zu diesem Thema ist die Seite http://www.sitepoint.com/article/udp-portscanning-php/. Mal schauen ob sich das Problem lösen läßt.

Git

Da die Entwickler von The Mana World (http://www.themanaworld.org) zur Zeit auf Git umsteigen, war ich dazu „gezwungen“ mir das ganze auch mal anzuschauen. Bei Git handelt es sich um ein Versionskontrollsystem wie z.B. auch CVS und SVN.

Ein Vorteil bzw. eine Eigenschaft von Git soll das einfache Erstellen neuer Entwicklungszweige und das entsprechende Mergen verschiedener Entwicklungszweige sein. Weitere Eigenschaften von Git sind unter anderem der flexible Datentransfer der auf unterschiedlichsten Protokollen aufbauen kann (Git eigene Protokoll, SSH, HTTP, HTTPS, FTP, rsync) sowie die kryptographische Sicherung der Projektgeschichte.

Ein Nachteil wie ich finde ist es das es noch keine Windowsoberfläche ähnlich TortoiseSVN gibt. Zwar ist hier mit Git Cheetah (http://repo.or.cz/w/git-cheetah.git/) etwas in Entwicklung aber noch nicht gebrauchsfertig.

Weitere Informationen zu Git sowie Git für Windows gibt es unter:
http://de.wikipedia.org/wiki/Git
http://git.or.cz/course/svn.html
http://uk.youtube.com/watch?v=4XpnKHJAok8
http://code.google.com/p/msysgit/downloads/list