Der maechtige Bayesian Filter

Ich gehe bei diesen Tipps davon aus, dass Sie Ihren Spamassassin erfolgreich konfiguriert und in den MTA integriert haben. Anleitungen zur Installation werden Sie in diesem Artikel leider nicht finden!

Ich benutze Exim als MTA auf einem Debian Server, mit Courier als Pop bzw. Imap Server. Ich nehme aber an, das die Lernbefehle auf allen Systemen gleich sein werden.

Wichtige Sachen

Zuallererst einmal fuer alle die sich fragen, wieso dieses Ding einfach nicht arbeiten will bzw. der Bayes nichts tut. Der Bayes benoetigt mindestens 200 Spam Mail Informationen und 200 Ham Mail (kein Spam) Informationen, damit er sinnvoll loslegen kann. Hat man die Spams Mails der letzten Zeit aufgehoben, duerfte es nicht schwer sein Ihn damit zu fuettern.

Wichtig zu beachten ist, dass es nicht reicht nur Spam zu filtern. Bayes benoetigt auch laufend neue Ham Mails um sicher arbeiten zu koennen. Also zwischendurch auch Ordner als Ham scannen die sicher Spam frei sind. Mehr dazu weiter unten.

Was man auch vermeiden sollte, ist benutzte Ordner des Mailsystems automatisch zu scannen. Es sollten immer nur Ordner gescannt werden, die sicher NUR Ham oder NUR Spam beinhalten, ansonsten koennte es zu verwechslungen beim Filtern kommen.

Aufrufen des Lernprogramms

Man kann die erhaltenen Spam Mails sammeln und wenn man Zeit hat das Lernprogramm drueber laufen lassen, bzw. mit einem Cronjob zu bestimmten Zeiten automatisch.

Die Befehle zum Lernen sind:

# Fuer Spam:

sa-learn –spam –showdots /folder/to/spam/

# Fuer Ham:

sa-learn –ham –showdots /folder/to/ham/

Um auf eine Uebersicht ueber die Bayes Datenbank zu kommen gibt es folgenden Befehl:

# Status:

sa-learn –dump magic

Fuer die Konfiguration von Bayes in Spamassassin sind ein paar Variablen zu setzen.

vim /etc/spamassassin/local.cf

# Bayes aktivieren
use_bayes 1

# Automatisches Lernen bei einem ueberschrittenen Grenzwert
bayes_auto_learn 1
# Grenzwert
required_score 5.0

# Beim Lernen den Header ’X-Bogosity’ ignorieren
bayes_ignore_header X-Bogosity

Zusaetzlich empfiehlt es sich im ACL Recipient Check des MTA noch ein paar Blacklisten einzufuegen. Bei Exim schau das folgendermassen aus:

# Beispiel:

deny    message  = Rejected because $sender_host_address is in a blacklist at $dnslist_domain
dnslists = smtp.dnsbl.sorbs.net

HDR-Fotos erstellen – Teil 2

Nach Teil 1 dieses Blogs haben Sie das Ausgangsmaterial für ein HDR-Foto auf der Kamera. Diese werden nun, zur weiteren Bearbeitung, auf die Festplatte gespielt.

Das Programm Qtpfsgui

Da ich gerne im Linux arbeite, habe ich mich für die Open-Source-Software Qtpfsgui entschieden. Sie bietet alle Bearbeitungsmöglichkeiten, die für ein gutes HDR-Foto nötig sind.

Das Programm ist für Linux, MaxOS(nur Intel) und Windows erhältlich.

Wenn man das Programm gestartet hat, kommt man mit einem Klick in den HDR-Erstellungs Wizard. Dort klickt man auf Bilder laden und wählt eine Belichtungsreihe von Bildern aus. Mit einem Klick auf Weiter geht es in den nächsten Schritt.

Dort kann man eventuelle Bildverschiebungen ausbessern, die Bilder zuschneiden und dann abspeichern. Wenn alles passt gehts mit Weiter in den nächsten Schritt.

Man kann aus Verschiedenen Vorgaben wählen, die eigentlich gute Ergebnisse liefern sollten. Man kann natürlich auch alles manuell Einstellen, was aber nur für professionelle Anwender geeignet ist. Mit Klick auf Beenden wird das HDR-Foto berechnet.

Das Ergebnis kann dann in verschiedenen hdr-Formaten abgespeichert und mit der Farbabbilden-Funktion mit unzähligen Einstellungen versehen als normales Bild abgespeichert werden.

Sobald ich mehr Zeit habe werde ich das Programm genauer erläutern und Testbilder einfügen.

HDR-Fotos erstellen – Teil 1

Ich schreibe hier ein kurzes Tutorial über das erstellen von HDR-Fotos. In erster Linie um mich mit dem Thema auseinanderzusetzen. Ich stelle keine Ansprüche auf Vollständigkeit! Wenn jemand ergänzungen hat bitte einen Kommentar schreiben.

Basics

Das menschliche Auge hat einen Kontrastumfang von 1:1.000.000, eine Digitalkamera gerade mal 1:4.000. Das heißt das der Fotograf einen Kompromiss eingehen muss. Entweder er nimmt die Details in hellen Bildbereichen auf, dann verschwinden die dunklen oder er nimmt die Details in den dunklen Bildpartien auf.

Um das zu umgehen nimmt man dasselbe Motiv in verschiedenen Belichtungen auf und kombiniert die Bilder dann miteinander. Daraus ergibt sich dann ein Bild das in allen Bildpartien dieselbe Detailtreue aufweist. Das ganze nennt sich dann High Dynamic Range Image, kurz HDR.

Auswahl des Motivs

Geeignete Motive sind zum Beispiel Maschinen, Bauwerke mit vielen feinen Details, Kirchen oder Kathedralen, Autos, Statuen, Möbel und mein Favourite sind Landschaftsaufnahmen. Natürlich hat es keinen Sinn sich mit Motiven zu Beschäftigen die einen nicht interressieren. Je mehr unterschiedliche Helligkeiten desto Effektvoller wird das Resultat.

Vor der Aufnahme

Vorausetzung ist ein festes Motiv ohne bewegende Teile sowie ein Stativ wegen der Umstellungen und langen Belichtungszeiten.

Zuerst wird der Kontrastumfang der Aufnahme eruiert. Dazu stellt man die Kamera auf eine mittlere Blende zum Beispiel 8 oder 11. Fixe Einstellung der ISO-Empfindlichkeit damit die Automatik keine Fehler produziert und Belichtungsmessung als Spotmessung wird aktiviert um bestimmte Teile des anmessen zu können.

Danach zielt man auf die hellste und dunkelste Stelle in der Aufnahme und drückt den Auslöser halb um die Belichtungsmessung zu aktivieren. Diese Werte merkt man sich und vergleicht dann mit folgender Tabelle wieviele Belichtungsstufen das Bild umfasst.

4 – 2 – 1 – ½ – ¼ – 1/8 – 1/15 – 1/30 – 1/60 – 1/125 – 1/250 – 1/500 – 1/1000

Ein Beispiel:
Die Messung im dunkelsten Bereich ergibt ¼ Sekunde, im hellsten Bereich 1/250 Sekunde. Das entsprich dann 6 Belichtungsstufen.

Grundsätzlich wird geraten eine Belichtungsreihe mit zwei Blendenstufen Abstand pro Bild anzufertigen. Davon ausgehend würde unsere Beispielaufnahme 4 Bilder, in den Belichtungzeiten ¼, 1/15, 1/60 und 1/250 Sekunden, benötigen um optimal abgelichtet zu sein.

Die Aufnahme der Bilderreihe

Nach der Messung wird die Kamera von A auf M gestellt. Wichtig dabei ist, das die Blende und ISO-Empfindlichkeit der Messung übernommen werden, ansonsten die gleichen Werte einstellen. Dann fokusiert man und schaltet wenn möglich den Autofokus aus. Auch wird geraten den Weißabgleich auf einen festen Wert zu stellen.

Jetzt fotografiert man das Motiv mit den eruierten Verschlusszeiten nacheinander durch. Wichtig ist, dass nur die Verschlusszeit verändert werden darf, ansonsten müssen die Einstellungen gleichbleiben.

Von Vorteil ist ein Fernauslöser, ansonsten verwendet man den Selbstauslöser um ein verwackeln der Kamera auf jeden Fall zu vermeiden. Zügiges Abfotografieren der Belichtungsreihe wird empfohlen da jede veränderung der Motivs einfluss auf das fertige Bild nehmen kann.

Wenn alles gelungen ist haben sie jetzt das Ausgangsmaterial für ein HDR-Foto auf der Kamera.

True Type Fonts unter Linux

Folgende Kommandos sind fuer die Installation von Apple Schriftarten im Linux, funktioniert aber mit allen ttf Dateien. Die Kommandos muessen als Super User ausgefuehrt werden.

Man kann auch einfach Schriften von Windows in /usr/share/fonts/X11/myfonts kopieren. Wobei man “myfonts” gegen einen eigenen Namen ausgetauschen kann.

# laedt ein Paket von Schriften herunter
wget http://ubuntu-debs.googlecode.com/files/macfonts.tar.gz

# entpackt die Datei
tar xvfz macfonts.tar.gz

# verschiebt die Datei in den Ubuntu Fonts Ordner
# (kann je nach System variieren)
mv macfonts /usr/share/fonts/X11/

# Updated die Fonts des Systems
fc-cache -f -v

# loescht die gepackte Fontdatei
rm macfonts.tar.gz

Wireless X-Box 360 Controller Problem unter Windows

Logitech Maus || XBox Controller, you have to choose

Nach dem anstecken des “Microsoft XBox 360 Wireless Receivers for Windows” blieb immer meine Logitech G50 Maus stecken und bewegte sich kein bisschen mehr bis man den gesamten Rechner ohne Receiver neu gestartet hatte.

Was genau das Problem ist, kann ich auch noch nicht sagen. Es scheint auf jeden Fall einen Konflikt mit der Maus zu geben, nach Stunden an herumprobieren, testete ich das ganze mit einer Standart Microsoft Maus. Und siehe da der Controller wurde ohne Probleme erkannt und die Maus ging noch. Wenn ich es nicht besser wüsste würde ich vermuten, dass der Controller etwas gegen M$ Konkurenten hat.

Die Support Tortur

Danach setzte ich mich mit dem Microsoft Xbox Support in Verbindung. Die konnten nur sagen, dass das Problem bekannt sei, aber noch keine Loesung gefunden wurde, ich solle es beim Windows Support versuchen, vielleicht ist es eine Systemeinstellung. Leider war der Microsoft Windows Support gar nicht hilfreich, im Gegenteil. Die einzige Aussage die ich dort erhielt war: “Mit einer Microsoft Maus geht es ja, also funktioniert unser Produkt.”

Die letzte Möglichkeit war dann der Logitech Support. Die Mitarbeiter dort waren sehr bemüht eine Lösung zu finden, doch leider brachte keine der Lösungsvorschläge die Maus wie erhofft zum laufen.

Keine Chance

Scheinbar gibt es in meinem Fall keine Möglichkeit, die G5 Maus in Kombination mit dem Microsoft XBox Wireless Receiver zu betreiben, ohne Maus oder Xbox Controller zu tauschen.

Update: Unter Windows 7 gibt es scheinbar kein Problem mehr, dass heisst das Problem lag einzig und allein im Windows Vista, XP

Debian Server Distribution Update von 4.0 (Etch) auf 5.0 (Lenny)

Schritt 1: Sicherung

Eine komplette Sicherung von Daten und Konfigurationen anlegen.

Schritt2: Etch auf aktuellen Stand bringen

# apt-get update
# apt-get upgrade

Wenn ein neuer Kernel installiert wurde neu starten.

# shutdown -r now

Schritt 3: Neue Repositories eintragen

Sicherung der alten /etc/apt/sources.list anlegen

# cp /etc/apt/sources.list /etc/apt/sources.list.etch

Datei oeffnen und auf folgende Eintraege aktualiesieren:

# Main
deb http://http.us.debian.org/debian/ stable main non-free contrib
# Source
deb-src http://http.us.debian.org/debian/ stable main non-free contrib
# Security
deb http://security.debian.org/ stable/updates main contrib non-free

Schritt 4: Upgrade von Etch auf Lenny

Es wird geraten fuer ein dist-upgrade aptitude zu verwenden da es sicherere Paketentscheidungen trifft. Zuerst Packet Cache updaten, danach apt und aptitude aktualisieren und die aktuell installierten Pakete upgraden.

# aptitude update

# apt-get install apt aptitude

# aptitude upgrade
# aptitude install

Jetzt wird die eigentliche Aktualiesierung der aenderung der Distributionsabhaengigkeiten vorgenommen.

# aptitude dist-upgrade

Schritt 5: Ueberpruefen des Systems

Kernelversion pruefen

# uname -a

Debianversion pruefen

# cat /etc/debian_version

Laufende Services und offene Ports

# netstat -tulpn
# rcconf

Firewalleinstellungen

# iptables -L -n
# ip6tables -L -n

Oracle Installation

Oracle Installation über Citrix und SSH

Citrix Desktop

Der Webserver auf dem Oracle laufen sollte war nur über das interne Netz der Firma per SSH erreichbar. Also musste man zuerst eine Verbindung mit Citrix aufbauen und dann per Putty auf den Server verbinden. Auch war es ein Problem für mich, dass auf dem Server Suse läuft, aber ich kann mitlerweilen damit leben.

Oracle Installation nur per X Server

Die nächste Schwierigkeit war, dass die Oracle Installation nicht über die Konsole durchführbar war, sondern nur über eine X Oberfläche verfügt. Was an sich kein Problem wäre, war nun aber nicht mehr so einfach, da der Server von aussen per SSH nicht erreichbar war. Im normalfall würde da eine xhost Verbindung nicht schwerfallen.

SSH Portweiterleitung

Also musste eine Portweiterleitung eingerichtet werden. Damit das überhaupt Sinn macht, musste ich meinem Rechner eine statische IP Adresse vergeben und alle benötigten Ports durchrouten.

Die weiterleitung selbst war nicht das Problem. Auf dem Server einfach sowas wie

ssh -R meineIP:10022:ServerIP:22 -l username meineIP

und der SSH Tunnel steht.

SSH X Weiterleitung

Danach konnte ich mich lokal auf den Server verbinden, nur zusätzlich mit der X Weiterleitung.

ssh -p 10022 -X username@localhost

Nun stand der Installation nichts mehr im Weg, dachte ich.

Achtung Vorbereitung

Wer denkt er könne jetzt einfach die Installation starten hat noch weit gefehlt. Zunächst muss man ein paar Pakete Installieren, die zwingend notwendig sind. Je nach OS Version und Oracle Version.

In meinem Fall bei einem Suse 11.1 64bit wie folgt:

- Das Paket libstdc++33 istallieren. zB: zypper install libstdc++33

- Bei einem 64 bit System muss das 32 bit gcc paket installiert werden.

- Das Paket orarun legt den benötigten Benutzer, die benötigten Gruppen an, die für die Installation nötig sind.

- Danach muss man ein paar Systemvariablen setzen, die beim login des Users Oracle gesetzt werden. Welche wären ORACLE_HOME, ORACLE_SID, TNS_ADMIN in dem Shellscript /etc/profile.d/oracle.sh .

- Durch Ausführen von /etc/init.d/oracle start werden Kernel Parameter aktualisiert.

- Nun kann man die Installation starten.

Installation

Um die X Oberfläche lokal zu starten, muss man auf dem Server die DISPLAY Variable setzen.

Das macht man mit

export DISPLAY=meineIP:0.0

Auf dem lokalen Rechner führt man

xhost +

aus, was jede X Verbindung erlaubt, also mit Vorsicht zu geniesen ist.

Danach kann man am Server jede beliebige X Anwendung starten und man bekommt die Anzeige am lokalen System.

Wenn man auf einer Windows Maschine arbeitet benötigt man dazu den X Client Xming oder ähnliches.

Also loggt man sich jetz am Server mit dem User Oracle ein:

su – oracle

geht in das Installationsverzeichnis und startet den Installer:

./runInstaller

Wenn man alles richtig gemacht hat, erscheint jetzt die Installationsoberfläche vom Server am eigenen Rechner, die man Schritt für Schritt durchgeht bis schlussendlich Oracle installiert wird.

Dedicated Steam Server Installation

Steam Dedicated Server auf Debian Lenny

1. Schritt: Steam Linux Client Installieren

Aus Sicherheitsgruenden sollte man einen eigenen Benutzer fuer die Spiele installieren. In meinem Fall heisst dieser “gameserver”. Im Homeverzeichnis dieses Benutzers legt man einen Ordner namens “srcds” an, in dem man dann die Installation ausfuehrt. Für alle HL1-Engine-Spiele sollte der Ordner hlds heißen.

cd /home/gameserver

mkdir srcds

cd srcds

ODER mkdir hlds

Danach laedt man in diesem Ordner das Installationsprogramm “hldsupdatetool ” von Steam herunter, macht es ausfuehrbar und fuehrt es aus. Durch Eingabe von “yes” stimmen Sie dem Lizenzvertrag zu.

wget http://www.steampowered.com/download/hldsupdatetool.bin

chmod +x hldsupdatetool.bin

./hldsupdatetool.bin

./steam

Ein Wiederholen des letzten Befehls zeigt nun die weiteren Installationsmöglichkeiten.

Kleine Einfuehrung in die Befehle

Use: steam -command [parameters] [flags]

Commands:

update: Install or update HLDS

parameters:
-game – Game name: use “list” to see available games
-dir – HLDS Install dir
(if dir not specified, will use value from last run of tool)

flags:
-verify_all – Verify all HLDS files are up to date
-retry – Automatically retry every 30 seconds if the Steam Network is busy
-remember_password – Remember password (if a username is supplied)

For example: steam -command update -game cstrike -dir /hlds

version: View installed versions

list: View available games

Optional parameters for all commands:

-username – Steam account username (only needed to access limited content)
-password – Steam account password (only needed to access limited content)

Aktualisierung

Um den Steam Linux Client zu installieren, gibt man folgendes ein.

./steam -command update -verify_all

Die aktuelle Version wird mit folgendem Befehl angezeigt:

./steam -command version

2. Schritt Spiele

Spiele installieren

Eine Liste der erhaeltlichen Spiele erhaelt man hiermit:

./steam -command list

Je nach Engine im jeweiligen Ordner folgendes ausfuehren, wobei durch die Spieleabkuerzung incl. Hochkomma ersetzt wird.

ZB:

Counter-Strike: Source “Counter-Strike Source”
Day of Defeat: Source “dods”

./steam -command update -game <game> -dir .

Spiele updaten

./steam -command update -game <game>

Start eines Servers

Fuer Source Spiele

./srcds_run <Parameter>

Fuer HL1 Spiele

./hlds_run <Parameter>

Beispielstartsequenz fuer Day Of Defeat

./srcds_run -console -game dod +map dod_jagd +maxplayers 16 +hostname ”Mein-Erster-DOD-Server” -autoupdate -port 27015 -ip <IPdesServers>

Um zu vermeiden, dass der Server nach dem schliessen der Konsole wieder weg ist, muss mittels dem Programm “screen” eine Konsole im Hintergrund erstellt werden, die weiterlaueft. Damit sieht die Startsequenz dann folgendermassen aus:

screen -A -m -d -S dots ./srcds_run -console -game dod +map dod_jagd +maxplayers 16 +hostname ”Mein-Erster-DOD-Server” -autoupdate -port 27015 -ip <IPdesServers>

Quellen

http://wiki.ubuntuusers.de/Dedizierter_Steam-Server

Weiterfuehrende Links

http://wiki.ubuntuusers.de/Dedizierter_Steam-Server

Damit hat man mal einen funktionierenden Gameserver mit Standartkonfiguration, der im Client auswaehlbar ist. Bei lokalen Netzwerken muss man zusaetlich ein paar Ports weiterleiten, um im Internet praesent zu sein. Man kann dann noch diverse Configfiles einbinden, wie die server.cfg in der zB. alle moeglichen Einstellungen des Spiels configuriert werden koennen.

Hello world!

Thats the first Post on my new Tutorial Weblog. We’ll see how that works. Hello everyone.