Archive for the ‘KolonialKampf’ Category

Es gibt Tage, da hätte ich große Lust den Fricklern mal so richtig die Meinung zu geigen.

Grund:

Fatal error: Call to undefined function mysql_connect()…

Eigentlich nicht tragisch, aber… Die Leute von PHP sagen, es ist ein Fehler in MySQL. Und die von MySQL sagen, es ist ein Fehler in PHP. Und keiner bringt brauchbare Lösungen.

Beim Versuch der Lösung dieses Problems, bin ich dann dahinter gekommen, dass die php.ini welche bei PHP 5.2.5 dabei ist, total Grütze ist und schon beim Start über 20 Fehler bringt. Da werden einfach mal Module eingebunden, welche es nicht gibt.

Nach vielen vielen Tutorials, HowTo und FAQs bin ich dann dahinter gekommen, dass…

Frickler Award

  • …PHP es MySQL in die Schuhe schiebt und umgekehrt.
  • …der MSI-Installer der Versionen 5.2.5 und 5.3.0 Dev nicht nur Bockmist baut, sondern auch noch eine unbrauchbare php.ini mitbringt.
  • …in der Windows Version von PHP C:\Windows als Pfad für die php.ini HARDCODED eingetragen wurde.
  • …in der aktuellen Version von PHP Unmengen von Sachen eincompiliert wurden, welche schon bei einem Aufruf mittels “php -m” mehr Fehlermeldungen ausspucken, als die Hilfe selbst groß ist.
  • …dieser Fehler NUR unter Windows vorhanden ist.

DING DING DING Und da war er der 5. Fricklerpunkt!

Und somit bekommt PHP den Frickler-Award der Woche!

Sourcecode Statistik

Die Portierung vom KKDaemon für die Aufträge geht gut vorran. Ich habe die Zeit genutzt, in welcher ich mit meinem Vater am Flughafen gewartet habe. So 30% vom KKDaemon sind schon fertig.

Der Entwicklungsserver installiert sich eben fertig. Ich habe Windows 2003 Standard Server gewählt. Habe nach dem Desaster mit den Sourcen die Nase jetzt erstmal wieder voll von Linux.

Und es gibt heute mal eine “kleine” Sourcestatistik von mir. Für die große Version davon auf welcher man mehr erkennen kann, einfach wie üblich auf das Bild selbst klicken.

Vor ein paar Tagen brachte mich ein Freund auf die Idee doch mal die alten Sourcen von KK1 anzusehen.

Tja… irgendwie hat es mich in den Fingern gejuckt und ich habe mir KK1 lauffähig dann zuhause eingerichtet.

Und verflixt… es hat Spaß gemacht!

Haben noch andere Interesse an einer kleinen und schnellen Speedrunde KK1 mit dem letzten Entwicklungsstand (der ohne Kampfsystem) ?

Meldet euch mal bei mir. Wenn es genügend sind, dann schau ich mal was ich machen kann.

Ich habe die letzten Tage ohne Notebook dazu genutzt an den Konzepten weiter zu arbeiten.

Eine grobe Sammlung von Ideen zum Thema Karte habe ich heute mal abgetippert und online gestellt.

Über ein Feedback bzw. weiterer Vorschläge würde ich mich freuen!

[Ideensammlung] Karte

Es ist geschafft! Version 0.1 vom DynamicDataCache ist fertig!

Dynamic Data Cache v0.1

Aber was ist das? Der DynamicDataCache (kurz DDC) ist nichts anderes als ein Ersatz für eine Datenbank.

Man “wirft” ein Objekt rein und holt es später wieder raus. Zusätzlich gibt es einen GarbageCollector, welcher regelmässig oder auf Anforderung diesen Cache scannt und wenig genutzte Objekte rauswirft. Das hört sich einfacher an, als es ist. Dadurch das die Daten alle im Hauptspeicher liegen, kann man extrem schnell drauf zugreifen.

Das ganze Konstrukt wird in den nächsten Wochen noch gewaltig erweitert. Sobald es einen bestimmten Punkt erreicht hat, werde ich es freigeben. Als Lizenz schwebt mir die BSD Lizenz vor. Sie ist nicht ganz so virulent wie z.B. die GPL.

So viel heute, die Tage gibt es mehr ;)

Nach einigen Mühen konnte ich das Templatesystem endlich mit dem Webserver verbinden.

Das Ergebnis sieht zwar nach nicht viel aus, stellt aber einen wichtigen Meilenstein für mich dar.

KK Gameserver incl. Templatesystem

In den nächsten Tagen folgt dann die neue Cache-Engine für den Webserver/das Templatesystem und der eigene “Memory-Handler”.

Bevor man mich falsch versteht, nein ich schreibe keinen echten Memory-Handler.

Es geht hierbei viel mehr um einen recht komplexen Code, welcher die Haltezeit und den Nutzungsgrad von Datenobjekten später speichern soll. Anhand dieser Informationen wird dann entschieden, ob ein Datenobjekt im Speicher gehalten werden muß, oder ob man es rauswerfen kann.

Ich bin immer mehr angetan von .Net.

Nicht nur das die Jungs von Microsoft die Entwicklungsumgebung für Lau rausrücken, nicht nur das sie die Sourcen jetzt nach und nach offen legen, nein, dank dem Team hinter Mono funktioniert das Zeug auch unter Linux!

Der Webserver unter Linux (Gentoo)

Was waren nochmal die Vorteile von OpenSource unter Linux?

* Jeder kann den Source einsehen… Wird im Moment nach und nach erfüllt.
* Es ist kostenlos… Ist bereits erfüllt.
* Jeder darf es verwenden der sich an die Lizenz hält… Sogar übererfüllt. Keine Virulente GPL und Co. Lizenz.
* Es ist gut dokumentiert… Ich würde mal sagen, daß sich hier die OpenSourcler mal ein dickes Stück von abschneiden können.

Hei… ich bin begeistert. Und das, obwohl ich bei .Net anfangs sehr skeptisch war.

Btw.. Danke an TheUndeadable für seine Hilfreichen Ideen und Tips!

Heute habe ich einen Logcache eingebaut und einen simplen Cache der für statische Seiten da ist.

Das Ergebnis war spitze :D

Concurrency Level: 10
Time taken for tests: 0.844204 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3370000 bytes
HTML transferred: 2310000 bytes
Requests per second: 11845.48 [#/sec] (mean)
Time per request: 0.844 [ms] (mean)
Time per request: 0.084 [ms] (mean, across all concurrent requests)
Transfer rate: 3898.35 [Kbytes/sec] received

Mir macht im Moment noch ein seltsames Verhalten vom HttpListener Sorgen. Nach genau 28232 Requests macht er für 30 Sekunden dicht. Scheinbar hat Microsoft hier einen Schutzmechanismus eingebaut. Es wird nur die “spamende” IP geblockt für diesen Zeitraum. Von daher grinse ich und genieße das mal als Feature :D

Hier mal ein paar Performancewerte vom eigenen Webserver:

dana ~ # ab -c 100 -n 10000 http://192.168.10.9/test/index.htm
This is ApacheBench, Version 2.0.40-dev < $Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.10.9 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests

Server Software: Microsoft-HTTPAPI/1.0
Server Hostname: 192.168.10.9
Server Port: 80

Document Path: /test/index.htm
Document Length: 231 bytes

Concurrency Level: 100
Time taken for tests: 7.453964 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3370000 bytes
HTML transferred: 2310000 bytes
Requests per second: 1341.57 [#/sec] (mean)
Time per request: 74.540 [ms] (mean)
Time per request: 0.745 [ms] (mean, across all concurrent requests)
Transfer rate: 441.51 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 4
Processing: 9 73 7.8 73 90
Waiting: 7 73 7.8 73 90
Total: 13 73 7.7 73 90

Percentage of the requests served within a certain time (ms)
50% 73
66% 77
75% 80
80% 81
90% 83
95% 85
98% 86
99% 87
100% 90 (longest request)

Tja… es ist passiert… Abuzeus hat mich erwischt!

Und das habe ich erlitten…

Boots of butt-kicking

*G*

Ok, ist ein Insider, aber ein verdienter ;)