Sonntag, 8. Juli 2007Wenn die Arbeit zugleich Hobby ist...... lässt sich manchmal nur noch schwer abgrenzen, was jetzt Arbeit und was Privatvergnügen ist. Da heute Sonntag ist war es vielleicht mehr Privatvergnügen, was ich da heute verbrochen habe: Eine DNS-Server-Implementation in PHP... Mir ist mal aufgefallen, das es sowas noch überhaupt nicht zu geben scheint und ganz nebenbei wollte ich schon immer mal irgendwo einen DNS-Server implementieren... Je nachdem was draus wird, könnte man das Teil wohl sogar intern gebrauchen Sonntag, 1. Juli 2007Radio mitgenommenMein Helferlein meinte gerade eben zu mir:
Ich hab aus Spass einfach mal direkt die URL zu meinem mod_dvb eingetippt und hörte prompt "Sputnik", den Radio-Sender, den ich als Standard-Kanal für mod_dvb eingestellt habe. Das geht aber nur, weil der Apache Zugriff auf die entsprechende URL auch für meine VPN-Gateway-IP erlaubt, alle anderen müssen leider draußen bleiben - wer es nicht weiß: Ich mache mich andernfalls strafbar, wie z.B. der Selfnet e.V. bereits herausgefunden hat. So habe zumindest ich ein Radio, das ich überall hin mitnehmen kann Dienstag, 26. Juni 2007Neues Postfix-DictionaryDa sich das alte Dictionary was wir momentan für unseren Mailserver zum Auflösen der E-Mail-Adressen unter Last als wahrer Flaschenhals erwiesen hat, habe ich gestern endlich mal angefangen ein eigenes, auf unsere Bedürfnisse zugeschnittenes Dictionary zu schreiben. Die alte Version war im Prinzip nur das (wenn man so will) Umbiegen von Bordmitteln eines jeden Postfixes auf unser System. Zugegeben: Das war mit unter recht schmerzhaft anzusehen, aber es hat jetzt einige Jahre sehr gut funktioniert... Das neue Dictionary ist hingegen komplett anders: Es ist nur bei uns lauffähig, weil es auch nur mit unserer Datenbank spricht. Weiterhin ist es eine komplett eigene Implementation in C, die neben dem Standard-Lookup auch noch so Spielereien wie das Caching (unserer) Domains übernimmt. Im ersten Test war die neue Lösung ca. 10 mal schneller als die alte :eek: ... wobei sich das im Regelbetrieb (dank des Cachings) nochmal verbessern dürfte... Ich hoffe mal, dass ich heute Nacht die ersten Produktiv-Tests starten kann Sonntag, 24. Juni 2007mod_dvb IIIIch habe eigentlich schon richtig lange nichts mehr daran verändert... Die großen Änderungen kamen direkt nach dem "Release" hier: mod_dvb kann jetzt aus seiner channels.conf eine Playlist generieren, die in Verbindung mit mplayer (etc.) richtig Spass macht - Stichwort: Zapping. In Verbindung mit der Playlist eigentlich schon ein Muss: mod_dvb kann jetzt auch die PID's von Audio- und Video-Stream umschreiben, sodass diese auch im Player statisch eingestellt werden können (gab da paar Probleme mit älteren Versionen von mplayer) Ansonsten wartet mod_dvb jetzt auch gerne ein wenig, bis das DVB-Device freigegeben wurde - zumal vorangegangene Prozesse erstmal realisieren müssen, dass ihre Verbindung geschlossen wurde Zum Download gibts das ganze hier... Samstag, 23. Juni 2007Ausfälle setzen sich fort...Nach dem plötzlichen Festplatten-Tod von gestern habe ich einen weiteren Ausfall zu beklagen: Den Boot-Manager von meinem iPod nano hats verrissen nachdem ich ihm im RZ an meinem Laptop aufgeladen habe... Seitdem laufe ich ohne Musik auf den Ohren durch die Welt, aber das ist nicht schlimm, denn ich habe ganz viel Musik im Herzen. Freitag, 22. Juni 2007Erster Hardware-DefektHeute Nacht ist es passiert: Das erste Mal ist wirklich Hardware ausgefallen. :eek: Zu meinem Leidwesen auf einer relativ wichtigen Maschine, die in den letzten Tagen schon etwas gekränkelt hat... Komischerweise ist es gleichsam auch die neuste Maschine, die wir im produktiven Einsatz haben. Das Schicksal hat es wahrlich nicht gut gemeint: Gleich beide Festplatten im RAID für das Betriebssystem haben sich verabschiedet, sodass dort nun ein wahrliches Zombie-System herumlungert, denn die Maschine läuft noch, nur halt ohne Festplatten und irgendeine Möglichkeit da von Remote aus was dran zu ändern... Ich werde mich gleich aufmachen und zu der kleinen Maschine hinfahren. Ich bin ja mal gespannt, wie schnell sich da was retten lässt. Immerhin - und für den Notfall - ist das letzte Backup von gestern Abend. Ich habe schon überlegt die Präsenzen schnell auf eine andere Maschine zu spielen. Da die Maschine allerdings noch als Zombie rumläuft ist das alles ein wenig schwerer, da wir hier und dort auf die IP-Adresse angewiesen sind... Einziger Trost: Die Daten der Kunden scheinen von dem Ausfall nicht betroffen zu sein, denn die waren gar nicht auf den Platten... Donnerstag, 21. Juni 2007Warum man PHP_FCGI_CHILDREN statt auf "1" lieber gar nicht setzen sollteSeit einer halben Ewigkeit setzen wir nun schon auf FastCGI wenn es darum geht PHP-Skripte auszuführen. Zum einen haben wir dadurch mehr Kontrolle über das, was jeder Kunde macht bzw. machen darf, zum anderen ist das natürlich ein großer Vorteil in Sachen Sicherheit, da jeder Skript unter der Benutzer-ID des Kunden direkt ausgeführt wird. An und für sich hat PHP eine sehr schöne FastCGI-Implementierung, was ein (weiterer) großer Vorteil gegenüber Perl, Python oder Ruby ist. Auf der anderen Seite hat es auch ein paar Macken. Ganz gefährlich ist z.B. die Einstellung "PHP_FCGI_MAX_REQUESTS", die sich recht wenig mit mod_fcgid versteht - so fährt PHP nach n Anfragen den Interpreter runter, beendet sich selbst aber nicht, sodass neue Anfragen in den ersten Tagen schon mal ins Leere liefen. So eine andere Einstellung, die der PHP im FastCGI-Modus bietet ist "PHP_FCGI_CHILDREN", die PHP veranlasst bis zu n Unterprozesse zu starten, sodass der FastCGI-Server im Prinzip zu einem vollständigen preforked Server wird. Wenn man überlegt, dass PHP gerne Arbeitsspeicher isst, ohne ihn danach wieder freizugeben, eigentlich eine gute Möglichkeit um das ein wenig einzugrenzen. Da bei uns das allerdings vom Webserver an sich reguliert wird, haben wir die Einstellung auf "1" gesetzt, d.h. PHP durfte maximal einen Kindprozess erstellen - was es auch brav getan hat, nur klingt es ein wenig unlogisch, den Interpreter zu starten, einen Kindprozess zu forken und dann die Anfrage mit zwei Prozessen zu verarbeiten... Von schlauer Software würde ich so etwas wie "ich habe nur einen Kindprozess, da kann ich mir den fork sparen" erwarten, sodass ich mich eben endlich mal an den PHP-Source-Code gewagt habe um diese Funktion einzupflegen. Doch siehe da: PHP ist bereits fast so schlau, denn wird "PHP_FCGI_CHILDREN" nicht angegeben, führt PHP gar keinen fork aus... Leider ist dieses Verhalten (bzw. die FastCGI-Schnittstelle) ganz schlecht dokumentiert und auch die FastCGI-Readme lässt anders vermuten:
Schön, dass ich es nun besser weiß Eine letzte Anmerkung zur Überschrift: Will man also nur einen Kindprozess haben, ist es sinnvoller den Fork ganz zu unterbinden, d.h. die Einstellung gar nicht zu setzen. Das spart letzten endes noch das eine oder andere Byte wertvollen Arbeitsspeicher Machs doch automatisch!Rechnungen über Webhosting gelten bei uns immer ab dem Tag, wo die Domain für den Kunden wirklich verfügbar wird. Bei Neuregistrierungen ist das natürlich immer sofort, im Falle eines KK-Antrages kann sich das schon mal mit dem Datum, an dem der Kunde eingerichtet wurde arg unterscheiden - man bedenke nur mal diese zum Teil desaströsen Transfer-Versuche, die zig. tausend mal schief gehen, obwohl alles zwischen den drei beteiligten Parteien kommuniziert wurde... Nicht nur aus diesem Grund (gibt natürlich noch tausend andere Gründe es so zu machen) muss ich in der Buchhaltung immer einen relativ genauen Startzeitpunkt vermerken, wenn ich die neuen Leistungen für einen Kunden verbuche. In der Vergangenheit war das immer ein recht manueller Prozess, wo ich immer zwischen Leistungs- und Domain-Datenbank hin und her springen musste. Wie ich gestern dann wieder damit beschäftigt war neue Leistungen einzupflegen, dachte ich mir "Verdammt! Das muss sich endlich mal ändern!" und hab ab diesem Zeitpunkt nur noch NULL als Startdatum eingetragen - wohlwissend (oder vielleicht gerade deswegen) dass ich dann so lange keinen Rechnungslauf mehr machen kann bzw. darf bis ich eine entsprechende Veränderung im System vorgenommen habe... Da ich gestern Nacht allerdings noch ein paar sehr gern gesehene Kunden aus Hannover mit Geld-Forderungen beglücken wollte (;-)) hab ich mich gegen 1 Uhr nochmal dran gesetzt und entsprechende Funktionalität in 10 Codezeilen nachgereicht.... Moah... Irgendwie fällt mir ein Stein vom Herzen - sicherlich zur "Last" der Kunden, denn gerade was das verrechnen von Webhosting und Domains angeht, hab ich jetzt viel weniger zu tun, folglich werde ich es auch öfter tun Montag, 11. Juni 2007mod_dvb IINachdem ich nun auch schon ein paar Mails zu dem Thema bekommen habe und die letzte Stunde wieder zu ein paar Veränderungen am Code genutzt habe, war ich so frei, den Code einfach mal auf einen Webserver zu legen (also als Sourcecode, nicht als laufendes Modul ). Wer ihn haben will, kann ihn sich hier besorgen. So wie es jetzt läuft ist es sicherlich nur die Spitze des Eisbergs. Gelegentlich macht es Spass daran zu arbeiten, oder mal durchzuspinnen, was man alles machen könnte - dafür hab ich aber leider nicht so die Zeit Was mir noch aufgefallen ist:
Samstag, 9. Juni 2007Aus Alt mach NeuSchon faszinierend: Ich habe eben mal ganz kurz (so ca. 30 Minuten) richtig alten Code im System überarbeitet. Ganz spontan und aus einem kurzen Gedanken heraus. Die konkreten Zeilen waren ca. 4 Jahre alt (ich habe sie aus einem anderen Projekt von mir übernommen) und sind für eine nicht gerade unwesentliche Funktion im System zuständig. Durch die Überarbeitung ist der Code nicht nur kleiner und verständlicher geworden, sondern auch gleich ca. 8 Mal so schnell :eek: So macht das Arbeiten gleich noch ein Stückchen mehr Spass! Dienstag, 5. Juni 2007mod_dvbIch komme ja ursprünglich aus Nordrhein-Westfalen, wo nach Berlin (u.a.) recht früh großräumig DVB-T eingeführt wurde. Als Technik-Begeisterter war ich da natürlich auch sofort dabei und hatte mir div. DVB-T-Adapter zugelegt. Der Vorteil an DVB-[S|C|T] war ja schon immer, das man direkt einen MPEG2-Datenstrom geliefert bekommt mit dem man eigentlich nach belieben verfahren kann. Sei es per cat Videos aufzunehmen oder den Datenstrom gleich via Netzwerk zu verteilen. Letzteres fällt natürlich direkt in den Bereich in dem ich mich beruflich wie auch privat als Hobby sehr gerne herumtreibe, so habe ich auch schon recht früh damit herum experimentiert. Die vorhandenen Lösungen basieren alle mehr oder weniger auf RTP und verstreuen den Datenstrom via Broadcast im gesamten Netzwerk - das hat mir darmals schon irgendwie nicht geschmeckt und tut es heute auch noch nicht. Da ich in einem Single-Haushalt lebe reicht mir eigentlich voll und ganz eine Unicast-Lösung. Seit dem Wochenende bin ich nun wieder in der DVB-Gemeinde angekommen (nachdem es zunächst kein und nun nur dürftig DVB-T in Stuttgart gibt, kam diesmal nur DVB-C in Frage) und experimentiere aufs neue los. Vor fast 3 Jahren habe ich angefangen einen PHP-Skript zu schreiben, der den MPEG-Datenstrom via Apache im Netzwerk verteilt. Darmals noch mit mod_php(5) führte das regelmäßig dazu, dass Apache mehr und mehr Arbeitsspeicher aß und die Maschine irgendwann das zeitliche segnete. Drum folgte eine eigene HTTP (samt Telnet) Implementierung in PHP... Die habe ich heute noch, ist aber dementsprechend alt und auch nicht das gelbe vom Ei. Gestern Nacht hatte ich dann eine skurile Idee wie ich finde: Ich habe mod_dvb geschrieben - ein kleines Apache-Modul, das auf mein DVB-C-Adapter zugreift und einen MPEG2-Datenstrom ausliefert, direkt über Apache und ohne diesen Arbeitsspeicherhunger. Momentan ist das noch wirklich eine Spielerei, kann auch nur eine Verbindung verarbeiten und liefert nur ARD aus... Ich bin mal gespannt, wieivel meiner Freizeit das noch frisst und was daraus wird Mittwoch, 30. Mai 2007Jabber-Komponente?Angetrieben durch die geplanten Veränderungen am Jabber-Server habe ich gestern Nacht mal wieder meine kleine PHP-Jabber-Klasse rausgekramt und rumprogrammiert. Neben ganz kleinen Veränderungen am ursprünglichen Code habe ich auch ein paar XEP's eingebaut, die da wären:
Als nächstes steht eigentlich das XEP 0030 (Service Discovery) auf dem Programm, allerdings baue ich vorher noch ein wenig die ganze Klasse um, sodass die besser mit XML-Namespaces umgehen und einfacher um das eine oder andere XEP erweitert werden kann... Bleibt eigentlich nur noch die Frage, wann die mal endlich produktiv zum Einsatz kommt und ich z.B. das Projekt hier mal wieder aufgreife. Für Interessierte: Die Klasse gibts hier! Donnerstag, 24. Mai 2007Tabelle gecrashed...Einem Kunden ist eine 8 GB große MySQL-Tabelle vergangene Nacht gecrashed. Da die Datenbank allerdings auf einem Produktivsystem von ihm liegt und die Tabelle nicht mal eben so parallel zum normalen Betrieb recovert werden kann bzw. sollte, haben wir die defekte Tabelle kurzerhand auf ein benachbartes System übertragen, dort reparieren lassen und wieder zurückkopiert... Im Nachhinein betrachtet war es wohl sowieso die schnellste Variante mit dem Problem umzugehen... Nichts desto trotz habe ich dem Kunden empfohlen seine Tabellen in Zukunft zu "mergen", d.h. keine einzelne 8 GB große Tabelle zu betreiben, sondern mehrere kleine in einem MERGE zusammenzufassen. Ich trau aus Erfahrung keiner MySQL-Tabelle größer als 5 GB und da MySQL 5.1 noch nicht wirklich Partitionierung kann ist das wohl die beste Lösung für den Moment... ... wobei man natürlich auch über einen wechsel des DBMS nachdenken könnte Domain-MissbrauchOkay, das ist im Prinzip nichts neues, dass Spamer gerne Domains anderer Internetnutzer stehlen und quasi unter deren Namen versenden. Ebenfalls nix neues ist, dass viel zu wenig Mailserver da draußen auf Techniken wie SPF oder ähnliches setzen. Was mir allerdings neu war ist die Herkunft des Spams. So bekam ich eben eine besorgte Mail eines Kunden, dessen Domain gerade für Spam missbraucht wird, wo er mir ganz viele dieser Mails anhängte (bevor jemand fragt: Die hat er als Bounce zurück bekommen ). Ich habe mir richtig viel Zeit genommen dem Kunden die Problematik darzustellen und habe auch ein paar Header dieser Mails analysiert. Kurz angemerkt: Wichtig hierbei ist mittlerweile auch immer jeden Received-Eintrag mit seinem vorgänger zu vergleichen, denn Spamer fälschen die Mittlerweile auch gerne Was mich dabei stutzig machte: Alle diese Spams (und noch ein paar) mehr wurden ohne Zweifel aus verschiedenen IP-Netzen der US Army verschickt... Eigentlich hätte ich bei denen erwartet, dass die relativ "save" sind - oder gar eine neue Angriffstaktik? :hmm: Dienstag, 22. Mai 2007UMTS für unterwgsNachdem ich nun schon zum Zweiten mal von einem Blogleser wegen der T-Mobile wnw Card compact II und Linux angesprochen worden bin und es schon wieder nur ca. 20 Minuten hacken brauchte, bis sie auch bei besagtem Menschen funktionierte, scheint es mir ein wenig logisch hier mal ein paar meiner halt schon in Mails geschriebenen Worte hier zu veröffentlichen... Nun also: Wie bringe ich meinem (geilen) Linux-Computer bei mit der wnw Card compact II von T-Mobile zu quatschen. (sollte für das gleiche Model, aber anders gebrandet natürlich auch funktionieren) "UMTS für unterwgs" vollständig lesen
« vorherige Seite
(Seite 14 von 30, insgesamt 443 Einträge)
» nächste Seite
|
SucheRead this blog!KategorienBlog abonnierenNotice this! |
Kommentare