seeseekey.net - Invictus Deus Ex Machina

Da der Google Reader ja bald eingestellt wird, sollte man sich langsam darüber Gedanken machen, wie es weitergeht. Natürlich kann man auf fremde Dienste wie Feedly wechseln. Allerdings behagt dieser Gedanke nicht jedem, da man wieder an einen bestimmten Anbieter gebunden ist. Eine Abhilfe schafft hier die Software „Tiny Tiny RSS“ welcher auf PHP und MySQL (wahlweise auch PostgreSQL aufsetzt). Die Software selbst steht dabei unter der GPLv2.

Probleme bei der Installation

Nachdem man die Software heruntergeladen hat und auf seinen Webspace kopiert hat, kann es auf einigen Systemen beim Test der Konfiguration zu Problemen mit der Einstellung „open_basedir“ kommen. Hat man hier keine Möglichkeit dies umzustellen oder möchte dies nicht, so muss man einige kleinere Anpassungen am Quelltext von „Tiny Tiny RSS“ vornehmen. Dazu wird in den Dateien „include/sanity_check.php“ und „install/index.php“ der Absatz:

if (ini_get("open_basedir")) {
  array_push($errors, "PHP configuration option open_basedir is not supported. Please disable this in PHP settings file (php.ini).");
}

auskommentiert. Danach sollte die Installation gelingen. Nach der Installation kann man sich mit den Standardnutzerdaten „admin“ und „password“ anmelden. Das Passwort sollte man anschließend sofort ändern. In den Einstellungen wird unter Benutzer ein neuer Nutzer angelegt, damit man nicht mit einem administrativen Account arbeiten muss.

Wenn man seine Daten mittels Google Takeout exportiert hat, kann man die „subscriptions.xml“ aus dem Export in „Tiny Tiny RSS“ importieren. Dazu geht man in den Einstellungen auf den Tab „Feed“ und dort auf „OPML“. Dann kann man die entsprechende Datei importieren.

Tiny Tiny RSS in Aktion

Danach kann man seine Feeds in der Oberfläche bewundern. Die erste (manuelle) Aktualisierung kann dabei durchaus einige Zeit in Anspruch nehmen. Nun gilt es die automatische Aktualisierung der Feeds mittels eines Cronjobs in Angriff zu nehmen. Dazu wird ein Cronjob erstellt welcher alle 15 Minuten die URL:

http://example.org/ttrss/backend.php?op=globalUpdateFeeds&daemon=1

aufruft, wobei der Teil „http://example.org/tsrss/“ natürlich durch die eigene URL ersetzt werden muss. Die Webapplikation stellt auf Wunsch (in den Einstellungen konfigurierbar), eine API zur Verfügung, so das man auch Apps mit ihr betreiben kann. So gibt es für Android einen Client mit dem selben Namen.

Für iOS scheint es da noch keine adäquate Lösung zu geben wobei ich mir wünschen würde, das Mr.Reader das ganze in eine neue Version integrieren würde.

Die Mobilansicht von Tiny Tiny RSS

Die Mobilansicht auf entsprechenden Geräten ist leider etwas fummelig, wobei es sich nicht um die richtige Mobilansicht handelt, sondern um die normale Ansicht. Die mobile Ansicht kann über das System Plugin „mobile“ aktiviert werden. Allerdings wird sie nicht mehr gewartet und ist wohl auch nicht der Weisheit letzter Schluss.

Abhilfe schafft hier ttrss-mobile welches über die API mit dem Hauptsystem kommuniziert. Nachdem man die Software auf seinen Webspace hochgeladen hat, muss man noch die Pfade in der „conf.js“ anpassen. Anschließend kann man sich mit seinen Zugangsdaten einloggen.

In den Einstellungen gibt es auch einige interessante Nutzerplugins wie z.B. „mail“ mit welchem man Artikel per Mail versenden kann. Alles in allem ist „Tiny Tiny RSS“ ein robustes Stück Software, welches nach der Installation genau das macht was es soll. Die offizielle Seite der Software ist dabei unter http://tt-rss.org zu finden.

Weitere Informationen gibt es unter:
http://michaelsonntag.net/tiny-tiny-rss-tutorial-1-installation-konfiguration/
http://michaelsonntag.net/tiny-tiny-rss-tutorial-2-optische-anpassungen-und-plugins/
http://michaelsonntag.net/tiny-tiny-rss-tutorial-3-artikel-feiner-strukturieren/
http://michaelsonntag.net/tiny-tiny-rss-tutorial-4-noch-ein-paar-kleinigkeiten/
http://www.linux.com/learn/tutorials/322446-weekend-project-replacing-google-reader-with-tiny-tiny-rss

Unter Umständen kann es passieren das man das Passwort für seine PostgreSQL Datenbank vergisst. Wenn man allerdings Kontrolle über den Server hat, ist dies kein Problem. Um das Passwort neu zu setzen muss man im ersten Schritt die pg_hba.conf Datei bearbeiten:

# IPv4 local connections:
 host    all             all             127.0.0.1/32            md5
 # IPv6 local connections:
 #host    all             all             ::1/128                 md5

wird dabei zu:

# IPv4 local connections:
 host    all             all             127.0.0.1/32            trust
 # IPv6 local connections:
 #host    all             all             ::1/128                 trust

geändert. Nachdem die Konfiguration neu geladen wurde, kann man sich mit einem x-beliebigen Passwort anmelden und ein neues Passwort setzen. Anschließend setzt man die pg_hba.conf wieder zurück und lädt die Konfiguration abermals neu.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Postgresql

Bei einer Datenbankabfrage mittels PHP auf eine PostgreSQL Datenbank kam es zu folgender Fehlermeldung:

Ungültige Byte-Sequenz für Kodierung »UTF8«

Gelöst wurde das ganze in dem die Abfrage richtig kodiert wurde:

$query=mb_convert_encoding($query, 'UTF-8', mb_detect_encoding($query, "UTF-8, ISO-8859-1, ISO-8859-15", true));

Damit konnten die Abfragen ohne Probleme an die Datenbank übergeben werden.

Bei Mapbender (zu finden unter http://www.mapbender.org) handelt es sich um ein Web-Framework für GIS Belange. Das ganze Framework kann man auch unter Ubuntu installieren. Im ersten Schritt müssen dazu einige Pakete installiert werden. Dies geschieht mittels:

sudo apt-get install apache2 php5 postgresql php5-pgsql 

Nachdem alle Pakete installiert sind, sollte die aktuelle Version von Mapbender heruntergeladen und entpackt werden. Anschließend sollte für Mapbender ein eigener Nutzer (mittels adduser mapbender) namens mapbender angelegt werden. Bevor wir dann mittels su mapbender uns in den Kontext des Nutzers begeben, kopieren wir die entpackten Dateien in sein Homeverzeichnis.

Dem Nutzer postgre muss nun noch ein Passwort zugewiesen werden. Dies geschieht mittels:

sudo sudo –u postgres psql 

Daraufhin öffnet sich die Postgres Konsole in welcher man mittels \password postgres das Passwort setzen kann. Nun sollte die Daten im Homeordner des Mapbender Ordners die passenen Rechte bekommen:

find /home/mapbender/ –type d –exec chmod 777 {} +
find /home/mapbender/ –type f –exec chmod 777 {} + 

Nun wird die Datenbank installiert. Dazu wird das Skript install2.6.sh welches unter /home/mapbender/resources/db/ zu finden ist ausgeführt. Das Skript stellt dabei einige Fragen wie zum Beispiel nach dem Namen der Datenbank, Webservernenutzer (www-data) etc.

Im nächsten Schritt wird die Datei /etc/apache2/httpd.conf mit einem Editor geöffnet. Dort kommt dann folgendes in die Datei:

Alias /mapbender /home/mapbender/http

 <Directory /home/mapbender/http>
 Options MultiViews
 DirectoryIndex index.php
 Order allow,deny
 Allow from all
 </Directory>

Nachdem das geschafft ist muss die Konfigurationsdatei von Mapbender angepasst werden. Diese befindet sich im Ordner /home/mapbender/conf und trägt den Namen mapbender.conf. Dort trägt man die Datenbankkonfiguration sowie die Login URL ein. Nun startet man noch den Apache mittels /etc/init.d/apache2 restart neu. Danach sollte Mapbender funktionieren. Wenn nicht hilft es das Error Logging in der php.ini zu aktivieren um so den Fehlern auf die Spur zu kommen.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Mapbender
http://www.mapbender.org/Installation

Auf der Suche nach der Antwort auf die Frage wie man die Struktur eine Tabelle unter Sqlite ermitteln kann, bin ich über die Seite http://sqlzoo.net/ gestolpert. Dabei handelt es sich um eine Seite welche erklärt wie SQL sowie bestimmte andere Sachen (z.B. die Abfrage von Metadaten) funktionieren. Und das nicht nur für ein Datenbanksystem sondern für SQL Server, Oracle, MySQL, DB2, Mimer, PostgreSQL, SQLite und Access. Ein Fall für die Lesezeichen :)

PoszGIS ist eine Erweiterung für PostgreSQL welche neue geometrischen Datentypen hinzufügt und zum Beispiel spatiale Abfragen bietet. Bei so einem System muss man sich natürlich erstmal einiges anlesen und hat auch sicherlich einige Fragen. Bei der Beantwortung solcher Fragen helfen die Seiten http://postgis.refractions.net/documentation/manual-1.3/ und http://wiki.cismet.de/index.php/Postgres-Postgis-FAQ. Bei ersterem handelt es sich um das Handbuch und bei letzerem um eine sehr interessante FAQ zum Thema PostGIS. Da sollte für jeden etwas dabei sein.

Möchte man PostgreSQL unter Windows installieren so muss man erst einmal den Installer unter http://www.postgresql.org/download/windows (den One Click Installer) herunterladen.

Sollte es bei der Installation zu einem Fehler kommen und im Fehlerlog irgendetwas mit VBS erwähnt werden, so sollte der Windows Scripting Host (siehe http://de.wikipedia.org/wiki/Windows_Script_Host) nachinstalliert werden.

Ein anderes Problem kann sein das der angelegte Nutzer Postgre nicht genügend Rechte auf dem Rechter hat. So sollte man ihn einfach zum Administrator befördern und die Installation ein weiteres Mal laufen lassen.

Sollte der Dienst nach der Installation nicht starten so kann das auf ein Rechteproblem hinweisen. Dazu sollte man unter Systemsteuerung -> Verwaltung -> Dienste in die Eigenschaften des Dienstes PostgreSQL Server schauen und unter dem Tab Anmelden Lokales Systemkonto anwählen und den Rechner neu starten.

Läuft der Dienst dann so kann man sich daran machen PostGIS zu installieren. Das ganze macht man über den Application Stack Builder. Dort wählt man PostGIS aus und lässt sich durch das Setup geleiten. Nach der Installation sollte man den Rechner neustarten.

Versucht man sich nun mit seinem PostgreSQL Server von einer anderen Rechner zu verbinden (z.B. mit pgAdmin III) so bekommt man folgende Fehlermeldung zu sehen:

Server doesn’t listen 

The server doesn’t accept connections: the connection library reports

could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host „105.106.114.128″ and accepting TCP/IP connections on port 5433?

If you encounter this message, please check if the server you’re trying to contact is actually running PostgreSQL on the given port. Test if you have network connectivity from your client to the server host using ping or equivalent tools. Is your network / VPN / SSH tunnel / firewall configured correctly?

For security reasons, PostgreSQL does not listen on all available IP addresses on the server machine initially. In order to access the server over the network, you need to enable listening on the address first.

For PostgreSQL servers starting with version 8.0, this is controlled using the „listen_addresses“ parameter in the postgresql.conf file. Here, you can enter a list of IP addresses the server should listen on, or simply use ‚*‘ to listen on all available IP addresses. For earlier servers (Version 7.3 or 7.4), you’ll need to set the „tcpip_socket“ parameter to ‚true‘.

You can use the postgresql.conf editor that is built into pgAdmin III to edit the postgresql.conf configuration file. After changing this file, you need to restart the server process to make the setting effective.

If you double-checked your configuration but still get this error message, it’s still unlikely that you encounter a fatal PostgreSQL misbehaviour. You probably have some low level network connectivity problems (e.g. firewall configuration). Please check this thoroughly before reporting a bug to the PostgreSQL community.

Dazu trägt man sich dann in der pg_hba.conf die Zeile

host all all 101.102.103.104/32 md5 

dazu. Natürlich muss man das ganze mit seiner IP Adresse machen (z.B. 192.168.0.0/16 für 192.168.0.0 bis 192.168.255.255) :)

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/PostgreSQL
http://de.wikipedia.org/wiki/PostGIS

Wer auf der Suche nach einem Tool zum Designen von PostgreSQL Datenbanken ist der sollte sich PGDesigner anschauen. Dabei handelt sich um ein Tool zur Datenmodellierung für PostgreSQL welches unter einer Open Source Lizenz steht. Mit PGDesigner kann man auch bestehende PostgreSQL Datenbanken in das Programm laden. Zu finden ist die Software unter http://www.hardgeus.com/projects/pgdesigner/.

Wer auf der Suche nach einem ADO.NET Provider für PostgreSQL ist der sollte sich den Open Source Provider Npgsql anschauen welcher zur Zeit in Version 2.0.5 vorliegt. Der Provider wirkt stabil und fällt auch nicht durch nichtdeterministisches Verhalten auf. Für alle die sich mit .NET und PostgreSQL auseinandersetzen wollen (oder müssen) ist Npgsql sicher einen Blick Wert. Zu finden ist der Provider unter http://npgsql.projects.postgresql.org/.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Postgre
http://npgsql.projects.postgresql.org/docs/manual/UserManual.html

Da ist man grade fleißig beim Entwickeln und möchte sich mal schnell mit einer Datenbank verbinden und weiß nicht mehr wie der Connection String lautet oder welche Parameter erlaubt waren. Bei diesem Problem hilft die Seite http://www.connectionstrings.com/. Auf der Seite werden Connection Strings für alle möglichen Datenbanken vorgehalten, von PostgreSQL über MySQL bis DB2. Dabei wird auch auf verschiedene Datenbank API’s eingegangen. Sehr empfehlenswert :)