Technik

The Witcher 2 nervt: How to beat the Kayran

26. November 2016 · Spiele · andreas · Kein Kommentar

Auf der einfachsten Schwierigkeitsstufe lässt sich The Witcher 2 fast wie ein Adventure spielen - auf die Story konzentrieren, sich hauptsächlich mit Dialogen und Rätseln beschäftigen und ab und an ein paar Kämpfe durchklicken.

So weit so gut, wenn die Entwickler nicht ein paar nervige Show-Stopper in Form von Zwischengegnern eingebaut haben. Der erste, an dem viele Spieler hängenbleiben ist der Kayran, ein Monster, das in der Theorie mit ein bißchen Geschick einfach zu besiegen ist, bei dem in der Praxis aber viele Spieler frustriert einen zwangsweisen Zwischenstop der Marke “Live, Die, Repeat” einlegen müssen.

Als Ausweg gibt es verschiedene Möglichkeiten: entweder das Herunterladen von Trainer-Programmen aus fragwürdigen Quellen, das Verwenden von fremden Spielständen oder als Anpassen einer XML-Datei, was aus technischer Sicht wenig bedenklich ist und gleichzeitig das eigene Durchspielen des Kampfes ermöglicht.

Benötigt wird hierzu die Datei “tentadrake.xml”, die entweder aus den bereits installierten “The Witcher 2”-Dateien extrahiert (die “REDkit modding tools” gibt es z.B. bei GOG als zusätzlichen Download gleich zum Spiel dazu) oder von einem der vorhandenen Mod-Projekte übernommen werden kann.

Diese Datei wird in das Unterverzeichnis “abilities” (ggf. vorher erzeugen) im “CookedPC”-Verzeichnis abgelegt und anschließend mit einem Texteditor (Notepad, UltraEdit, …) geöffnet.

Entscheidend sind die beiden Zeilen

CookedPC/abilities/tentadrake.xml
... <damage_min mult="false" always_random="false" min="40" max="40"/> <damage_max mult="false" always_random="false" min="70" max="70"/> ...

welche den Schaden definieren, der von den Kayran-Tentakeln erzeugt wird. Löscht man hier z.B. sowohl bei “40” und “70” jeweils die “0” am Ende, so machen Tentakel-Treffer nur noch 10% des ursprünglichen Schadens und der Kampf sollte für jedermann problemlos durchführbar sein.


Benutzerdefinierte Auflösung im AMD Catalyst Control Center hinzufügen

10. November 2016 · Hardware · andreas · Kein Kommentar

Etwas versteckt ist im AMD Catalyst Control Center die Möglichkeit, benutzerdefinierte Auflösungen hinzuzufügen.

ccc_benutzerdefiniert

Hierzu ist nach dem Öffnen des Catalyst Control Centers in der linken Menüleiste der Punkt “Meine digitalen Flachbilrschirme” aufzuklappen und der Unterpunkt “Unterstützung für HDTV (digitaler Flachbildschirm)” zu wählen.

In der unten Hälfte dann bei “Vordefinierte und benutzerdefinierte HDTV-Formate” auf “Hinzufügen” klicken und die gewünschte Auflösung einstellen.


"Rufen Sie Updates für weitere Microsoft-Produkte ab" funktioniert nicht

23. Oktober 2016 · Betriebssysteme · andreas · 6 Kommentare

Einstellungen der KompatibilitätsansichtSofern der Link innerhalb von Windows Update statt zu der erwarteten Einstellungsseite nur zum Hinweis “Verwenden Sie das Startmenü, um nach Updates zu suchen.” und somit zu einer manuellen Endlosschleife führt, ist das Problem im Browser bzw. in dessen Einstellungen zu suchen.

Dass von Microsoft zum Aktivieren der Updates keine Browser von Drittherstellern unterstützt werden, ist vorhersehbar, aber leider erscheint die Fehlermeldung je nach System auch bei Verwendung des Internet Explorers.

Während mit dem Internet Explorer in der Version 10 die Aktivierung in der Regel problemlos klappt, scheitert der Link bei Verwendung der Version 11. Statt einer möglichen Deinstallation des Browsers hilft aber ein einfacher Trick: in den “Einstellungen der Kompatibilitätsansicht” die Domain “microsoft.com” hinzufügen. Interessanterweise ist diese Einstellung - obwohl zwingend notwendig - in den “Kompatibilitätslisten von Mircosoft” nicht automatisch aktiviert.


RSS-Feed für öffentliche Facebook-Seiten

05. Oktober 2016 · Programmierung · andreas · 2 Kommentare

Facebook hat den RSS-Feed für öffentliche Seiten am 28. Januar 2015 wie angekündigt eingestellt und ähnelt damit einer modernen, auf Sicherheitsgefühl getrimmten Siedlung: man baut einen großen Zaun ums komplette Areal und achtet peinlich genau darauf, daß man unter sich bleibt.

Das alles wäre kein Problem, wenn nicht - wie vor Jahren schonmal bei Myspace - einige Bands dazu übergehen würden, ihre Neuigkeiten nur noch im “sozialen Netzwerk” zu veröffentlichen und die Pflege einer eigenen Internetpräsenz weitestgehend einzustellen.

Möchte man weiter mitlesen, so ist als Nicht-Facebook-Nutzer Bastelarbeit angesagt:

Zum einen benötigt man einen Facebook-Account, der über die Facebook-Entwicker-Seite als Entwickler registriert werden muss - zwingende Voraussetzung für diese kostenlose Registrierung ist entweder die Angabe einer gültigen Mobiltelefon-Nummer oder einer gültigen Kreditkarte.

Als Entwickler legt man dann eine App an - Name, Sinn und Zweck sind beliebig, letztendlich benötigt man nur die App-ID sowie den App-Geheimcode, mit deren Hilfe man sich später automatisiert bei Facebook anmelden kann. Solange eine Seite öffentlich ist, reicht ein x-beliebiger Benutzer, um auf die öffentlichen Daten zugreifen zu können.

Das Zauberwort für den Zugriff lautet dann “Graph API”, für die Facebook neben dem kompletten SDK auch eine Online-Hilfe zur Verfügung stellt.

Glücklicherweise muss man das Rad allerdings nicht neu erfinden:

Nachdem die Lieblingssuchmaschine mit den richtigen Begriffen gefüttert wurde, landet man z.B. auf GitHub bei “facebook-json-to-rss”, einem kleinen Skript, das Login sowie die mühevolle Aufgabe der Konvertierung von JSON nach RSS bereits erledigt.

Nach dem Eintragen der App-Daten in die entsprechenden Stellen im Skript kann der Aufruf über das Anhängen des gewünschten Seitennamens

/index.php?page=PageNameHere

erfolgen und liefert die XML-Daten für den RSS-Feed zurück.

In der ursprünglichen Variante benötigt das nur 3.72 KB Skript noch das SDK, das zwar ebenfalls nicht allzu groß ist, aber lediglich zur Anmeldung verwendet wird.

Im Zugriffsschlüssel-Hilfsprogramm kann man sich das App Token der zuvor angelegten App anzeigen lassen und dieses direkt als “$access_token” im Skript verwenden. Nach Auskommentieren (oder löschen) des SDK-Includes sowie des Token-Abrufs funktioniert “facebook-json-to-rss” dann auch ohne SDK.


Icinga2 startet nicht mehr nach Debian-Systemupdate

23. September 2016 · Anwendungen · andreas · Kein Kommentar

Nach einem Systemupdate wird Icinga2 nicht mehr ausgeführt und apt-get meldet eine Reihe von Fehlern:

icinga2-common (2.5.4-1~debmon70+3) wird eingerichtet ... Neue Version der Konfigurationsdatei /etc/icinga2/icinga2.conf wird installiert ... Neue Version der Konfigurationsdatei /etc/icinga2/features-available/gelf.conf wird installiert ... Job for icinga2.service failed. See 'systemctl status icinga2.service' and 'journalctl -xn' for details. invoke-rc.d: initscript icinga2, action "start" failed. dpkg: Fehler beim Bearbeiten des Paketes icinga2-common (--configure): Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück libicinga2 (2.5.4-1~debmon70+3) wird eingerichtet ... dpkg: Abhängigkeitsprobleme verhindern Konfiguration von icinga2-bin: icinga2-bin hängt ab von icinga2-common (= 2.5.4-1~debmon70+3); aber: Paket icinga2-common ist noch nicht konfiguriert. dpkg: Fehler beim Bearbeiten des Paketes icinga2-bin (--configure): Abhängigkeitsprobleme - verbleibt unkonfiguriert dpkg: Abhängigkeitsprobleme verhindern Konfiguration von icinga2-ido-mysql: icinga2-ido-mysql hängt ab von icinga2-bin (= 2.5.4-1~debmon70+3); aber: Paket icinga2-bin ist noch nicht konfiguriert. icinga2-ido-mysql hängt ab von icinga2-common (= 2.5.4-1~debmon70+3); aber: Paket icinga2-common ist noch nicht konfiguriert. dpkg: Fehler beim Bearbeiten des Paketes icinga2-ido-mysql (--configure): Abhängigkeitsprobleme - verbleibt unkonfiguriert dpkg: Abhängigkeitsprobleme verhindern Konfiguration von icinga2: icinga2 hängt ab von icinga2-bin (= 2.5.4-1~debmon70+3); aber: Paket icinga2-bin ist noch nicht konfiguriert. icinga2 hängt ab von icinga2-common (= 2.5.4-1~debmon70+3); aber: Paket icinga2-common ist noch nicht konfiguriert. dpkg: Fehler beim Bearbeiten des Paketes icinga2 (--configure): Abhängigkeitsprobleme - verbleibt unkonfiguriert .......... Fehler traten auf beim Bearbeiten von: icinga2-common icinga2-bin icinga2-ido-mysql icinga2 E: Sub-process /usr/bin/dpkg returned an error code (1)

Ausschlaggebend ist der Fehler in dem Paket “icinga2-common”, die Fehler in den restlichen Pakten sind Folgefehler.

Freundlicherweise gibt dpkg auch gleich einige Tips zur Fehlersuche aus

root@monitoring:~# systemctl status icinga2.service ● icinga2.service - LSB: icinga2 host/service/network monitoring and management system Loaded: loaded (/etc/init.d/icinga2) Active: failed (Result: exit-code) since Do 2016-09-22 09:17:37 CEST; 8min ago Process: 6270 ExecStart=/etc/init.d/icinga2 start (code=exited, status=1/FAILURE) Sep 22 09:17:37 vm-00017 icinga2[6270]: checking Icinga2 configuration Sep 22 09:17:37 vm-00017 icinga2[6270]: checking Icinga2 configuration. Check '/var/log/icinga2/startup.log' for details. ... failed! Sep 22 09:17:37 vm-00017 systemd[1]: icinga2.service: control process exited, code=exited status=1 Sep 22 09:17:37 vm-00017 systemd[1]: Failed to start LSB: icinga2 host/service/network monitoring and management system. Sep 22 09:17:37 vm-00017 systemd[1]: Unit icinga2.service entered failed state.

Systemctl liefert den Hinweis, daß beim Check der Konfiguration wohl etwas nicht passt, und verweist auf die Logdatei “/var/log/icinga2/startup.log”

root@monitoring:~# cat /var/log/icinga2/startup.log information/cli: Icinga application loader (version: r2.5.4-1) information/cli: Loading configuration file(s). information/ConfigItem: Committing config item(s). critical/config: Error: Error while evaluating expression: Tried to access undefined script variable 'PluginContribDir'

die dann auch mehrfach den kitischen Fehler “Tried to access undefined script variable ‘PluginContribDir’” anmerkt.

Ein Blick in die Datei “/etc/icinga2/constants.conf” zeigt dann auch, daß die Variable tatsächlich weder gesetzt noch vorhanden ist. Im Verzeichnis “/etc/icinga2/” liegt aber noch eine “constants.conf.dpkg-dist” mit neuerem Datum als die “constants.conf”, in der die Zeile

/* The directory which you use to store additional plugins which ITL provides user contributed command definitions for. * Check the documentation, chapter "Plugins Contribution", for details. */ const PluginContribDir = "/usr/lib/nagios/plugins"

vorhanden ist. Nach Hinzufügen der Definition in die “constants.conf” kann dpkg das Paket “icinga2-common” erfolgreich konfigurieren:

root@monitoring:~# dpkg --configure icinga2-common icinga2-common (2.5.4-1~debmon70+3) wird eingerichtet ...

Ein “apt-get update” läuft anschließend für die abhängigen Pakete problemlos durch.