seeseekey.net - Invictus Deus Ex Machina

Da der Google Rea­der ja bald ein­ge­stellt wird, sollte man sich lang­sam dar­über Gedan­ken machen, wie es wei­ter­geht. Natür­lich kann man auf fremde Dienste wie Feedly wech­seln. Aller­dings behagt die­ser Gedanke nicht jedem, da man wie­der an einen bestimm­ten Anbie­ter gebun­den ist. Eine Abhilfe schafft hier die Soft­ware „Tiny Tiny RSS“ wel­cher auf PHP und MySQL (wahl­weise auch Post­greSQL auf­setzt). Die Soft­ware selbst steht dabei unter der GPLv2.

Pro­bleme bei der Installation

Nach­dem man die Soft­ware her­un­ter­ge­la­den hat und auf sei­nen Webs­pace kopiert hat, kann es auf eini­gen Sys­te­men beim Test der Kon­fi­gu­ra­tion zu Pro­ble­men mit der Ein­stel­lung „open_basedir“ kom­men. Hat man hier keine Mög­lich­keit dies umzu­stel­len oder möchte dies nicht, so muss man einige klei­nere Anpas­sun­gen am Quell­text von „Tiny Tiny RSS“ vor­neh­men. 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).");
}

aus­kom­men­tiert. Danach sollte die Instal­la­tion gelin­gen. Nach der Instal­la­tion kann man sich mit den Stan­dard­nut­zer­da­ten „admin“ und „pass­word“ anmel­den. Das Pass­wort sollte man anschlie­ßend sofort ändern. In den Ein­stel­lun­gen wird unter Benut­zer ein neuer Nut­zer ange­legt, damit man nicht mit einem admi­nis­tra­ti­ven Account arbei­ten muss.

Wenn man seine Daten mit­tels Google Takeout expor­tiert hat, kann man die „subscriptions.xml“ aus dem Export in „Tiny Tiny RSS“ impor­tie­ren. Dazu geht man in den Ein­stel­lun­gen auf den Tab „Feed“ und dort auf „OPML“. Dann kann man die ent­spre­chende Datei importieren.

Tiny Tiny RSS in Aktion

Danach kann man seine Feeds in der Ober­flä­che bewun­dern. Die erste (manu­elle) Aktua­li­sie­rung kann dabei durch­aus einige Zeit in Anspruch neh­men. Nun gilt es die auto­ma­ti­sche Aktua­li­sie­rung der Feeds mit­tels eines Cron­jobs in Angriff zu neh­men. Dazu wird ein Cron­job erstellt wel­cher alle 15 Minu­ten die URL:

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

auf­ruft, wobei der Teil „http://example.org/tsrss/“ natür­lich durch die eigene URL ersetzt wer­den muss. Die Webap­pli­ka­tion stellt auf Wunsch (in den Ein­stel­lun­gen kon­fi­gu­rier­bar), eine API zur Ver­fü­gung, so das man auch Apps mit ihr betrei­ben kann. So gibt es für Android einen Cli­ent mit dem sel­ben Namen.

Für iOS scheint es da noch keine adäquate Lösung zu geben wobei ich mir wün­schen würde, das Mr.Reader das ganze in eine neue Ver­sion inte­grie­ren würde.

Die Mobilan­sicht von Tiny Tiny RSS

Die Mobilan­sicht auf ent­spre­chen­den Gerä­ten ist lei­der etwas fum­me­lig, wobei es sich nicht um die rich­tige Mobilan­sicht han­delt, son­dern um die nor­male Ansicht. Die mobile Ansicht kann über das Sys­tem Plu­gin „mobile“ akti­viert wer­den. Aller­dings wird sie nicht mehr gewar­tet und ist wohl auch nicht der Weis­heit letz­ter Schluss.

Abhilfe schafft hier ttrss-mobile wel­ches über die API mit dem Haupt­sys­tem kom­mu­ni­ziert. Nach­dem man die Soft­ware auf sei­nen Webs­pace hoch­ge­la­den hat, muss man noch die Pfade in der „conf.js“ anpas­sen. Anschlie­ßend kann man sich mit sei­nen Zugangs­da­ten einloggen.

In den Ein­stel­lun­gen gibt es auch einige inter­es­sante Nut­zer­plugins wie z.B. „mail“ mit wel­chem man Arti­kel per Mail ver­sen­den kann. Alles in allem ist „Tiny Tiny RSS“ ein robus­tes Stück Soft­ware, wel­ches nach der Instal­la­tion genau das macht was es soll. Die offi­zi­elle Seite der Soft­ware ist dabei unter http://tt-rss.org zu finden.

Wei­tere Infor­ma­tio­nen 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än­den kann es pas­sie­ren das man das Pass­wort für seine Post­greSQL Daten­bank ver­gisst. Wenn man aller­dings Kon­trolle über den Ser­ver hat, ist dies kein Pro­blem. Um das Pass­wort neu zu set­zen muss man im ers­ten 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än­dert. Nach­dem die Kon­fi­gu­ra­tion neu gela­den wurde, kann man sich mit einem x-beliebigen Pass­wort anmel­den und ein neues Pass­wort set­zen. Anschlie­ßend setzt man die pg_hba.conf wie­der zurück und lädt die Kon­fi­gu­ra­tion aber­mals neu.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://de.wikipedia.org/wiki/Postgresql

Bei einer Daten­bank­ab­frage mit­tels PHP auf eine Post­greSQL Daten­bank kam es zu fol­gen­der Fehlermeldung:

Ungül­tige Byte-Sequenz für Kodie­rung »UTF8«

Gelöst wurde das ganze in dem die Abfrage rich­tig kodiert wurde:

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

Damit konn­ten die Abfra­gen ohne Pro­bleme an die Daten­bank über­ge­ben werden.

Bei Map­ben­der (zu fin­den unter http://www.mapbender.org) han­delt es sich um ein Web-Framework für GIS Belange. Das ganze Frame­work kann man auch unter Ubuntu instal­lie­ren. Im ers­ten Schritt müs­sen dazu einige Pakete instal­liert wer­den. Dies geschieht mittels:

sudo apt-get install apache2 php5 post­gresql php5-pgsql 

Nach­dem alle Pakete instal­liert sind, sollte die aktu­elle Ver­sion von Map­ben­der her­un­ter­ge­la­den und ent­packt wer­den. Anschlie­ßend sollte für Map­ben­der ein eige­ner Nut­zer (mit­tels addu­ser map­ben­der) namens map­ben­der ange­legt wer­den. Bevor wir dann mit­tels su map­ben­der uns in den Kon­text des Nut­zers bege­ben, kopie­ren wir die ent­pack­ten Dateien in sein Homeverzeichnis.

Dem Nut­zer postgre muss nun noch ein Pass­wort zuge­wie­sen wer­den. Dies geschieht mittels:

sudo sudo –u post­gres psql 

Dar­auf­hin öff­net sich die Post­gres Kon­sole in wel­cher man mit­tels \pass­word post­gres das Pass­wort set­zen kann. Nun sollte die Daten im Home­ord­ner des Map­ben­der Ord­ners die pas­se­nen Rechte bekommen:

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

Nun wird die Daten­bank instal­liert. Dazu wird das Skript install2.6.sh wel­ches unter /home/mapbender/resources/db/ zu fin­den ist aus­ge­führt. Das Skript stellt dabei einige Fra­gen wie zum Bei­spiel nach dem Namen der Daten­bank, Web­ser­ver­nenut­zer (www-data) etc.

Im nächs­ten Schritt wird die Datei /etc/apache2/httpd.conf mit einem Edi­tor geöff­net. Dort kommt dann fol­gen­des in die Datei:

Alias /mapbender /home/mapbender/http

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

Nach­dem das geschafft ist muss die Kon­fi­gu­ra­ti­ons­da­tei von Map­ben­der ange­passt wer­den. Diese befin­det sich im Ord­ner /home/mapbender/conf und trägt den Namen mapbender.conf. Dort trägt man die Daten­bank­kon­fi­gu­ra­tion sowie die Login URL ein. Nun star­tet man noch den Apa­che mit­tels /etc/init.d/apache2 restart neu. Danach sollte Map­ben­der funk­tio­nie­ren. Wenn nicht hilft es das Error Log­ging in der php.ini zu akti­vie­ren um so den Feh­lern auf die Spur zu kommen.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://de.wikipedia.org/wiki/Mapbender
http://www.mapbender.org/Installation

Auf der Suche nach der Ant­wort auf die Frage wie man die Struk­tur eine Tabelle unter Sqlite ermit­teln kann, bin ich über die Seite http://sqlzoo.net/ gestol­pert. Dabei han­delt es sich um eine Seite wel­che erklärt wie SQL sowie bestimmte andere Sachen (z.B. die Abfrage von Meta­da­ten) funk­tio­nie­ren. Und das nicht nur für ein Daten­bank­sys­tem son­dern für SQL Ser­ver, Ora­cle, MySQL, DB2, Mimer, Post­greSQL, SQLite und Access. Ein Fall für die Lese­zei­chen :)

Posz­GIS ist eine Erwei­te­rung für Post­greSQL wel­che neue geo­me­tri­schen Daten­ty­pen hin­zu­fügt und zum Bei­spiel spa­tiale Abfra­gen bie­tet. Bei so einem Sys­tem muss man sich natür­lich erst­mal eini­ges anle­sen und hat auch sicher­lich einige Fra­gen. Bei der Beant­wor­tung sol­cher Fra­gen hel­fen die Sei­ten http://postgis.refractions.net/documentation/manual-1.3/ und http://wiki.cismet.de/index.php/Postgres-Postgis-FAQ. Bei ers­te­rem han­delt es sich um das Hand­buch und bei let­ze­rem um eine sehr inter­es­sante FAQ zum Thema Post­GIS. Da sollte für jeden etwas dabei sein.

Möchte man Post­greSQL unter Win­dows instal­lie­ren so muss man erst ein­mal den Instal­ler unter http://www.postgresql.org/download/windows (den One Click Instal­ler) herunterladen.

Sollte es bei der Instal­la­tion zu einem Feh­ler kom­men und im Feh­ler­log irgend­et­was mit VBS erwähnt wer­den, so sollte der Win­dows Script­ing Host (siehe http://de.wikipedia.org/wiki/Windows_Script_Host) nach­in­stal­liert werden.

Ein ande­res Pro­blem kann sein das der ange­legte Nut­zer Postgre nicht genü­gend Rechte auf dem Rech­ter hat. So sollte man ihn ein­fach zum Admi­nis­tra­tor beför­dern und die Instal­la­tion ein wei­te­res Mal lau­fen lassen.

Sollte der Dienst nach der Instal­la­tion nicht star­ten so kann das auf ein Rech­te­pro­blem hin­wei­sen. Dazu sollte man unter Sys­tem­steue­rung -> Ver­wal­tung -> Dienste in die Eigen­schaf­ten des Diens­tes Post­greSQL Ser­ver schauen und unter dem Tab Anmel­den Loka­les Sys­tem­konto anwäh­len und den Rech­ner neu starten.

Läuft der Dienst dann so kann man sich daran machen Post­GIS zu instal­lie­ren. Das ganze macht man über den App­li­ca­tion Stack Buil­der. Dort wählt man Post­GIS aus und lässt sich durch das Setup gelei­ten. Nach der Instal­la­tion sollte man den Rech­ner neustarten.

Ver­sucht man sich nun mit sei­nem Post­greSQL Ser­ver von einer ande­ren Rech­ner zu ver­bin­den (z.B. mit pgAd­min III) so bekommt man fol­gende Feh­ler­mel­dung zu sehen:

Ser­ver doesn’t listen 

The ser­ver doesn’t accept con­nec­tions: the con­nec­tion library reports

could not con­nect to ser­ver: Con­nec­tion refu­sed (0x0000274D/10061) Is the ser­ver run­ning on host „105.106.114.128″ and accep­ting TCP/IP con­nec­tions on port 5433?

If you encoun­ter this mes­sage, please check if the ser­ver you’re try­ing to con­tact is actually run­ning Post­greSQL on the given port. Test if you have net­work con­nec­tivity from your cli­ent to the ser­ver host using ping or equi­va­lent tools. Is your net­work / VPN / SSH tun­nel / fire­wall con­fi­gu­red correctly?

For secu­rity rea­sons, Post­greSQL does not lis­ten on all avail­able IP addres­ses on the ser­ver machine initi­ally. In order to access the ser­ver over the net­work, you need to enable lis­ten­ing on the address first.

For Post­greSQL ser­vers star­ting with ver­sion 8.0, this is con­trol­led using the „listen_addresses“ para­me­ter in the postgresql.conf file. Here, you can enter a list of IP addres­ses the ser­ver should lis­ten on, or sim­ply use ‚*‘ to lis­ten on all avail­able IP addres­ses. For ear­lier ser­vers (Ver­sion 7.3 or 7.4), you’ll need to set the „tcpip_socket“ para­me­ter to ‚true‘.

You can use the postgresql.conf edi­tor that is built into pgAd­min III to edit the postgresql.conf con­fi­gu­ra­tion file. After chan­ging this file, you need to restart the ser­ver pro­cess to make the set­ting effective.

If you double-checked your con­fi­gu­ra­tion but still get this error mes­sage, it’s still unli­kely that you encoun­ter a fatal Post­greSQL mis­be­ha­viour. You pro­bably have some low level net­work con­nec­tivity pro­blems (e.g. fire­wall con­fi­gu­ra­tion). Please check this tho­roughly before reporting a bug to the Post­greSQL 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ür­lich muss man das ganze mit sei­ner IP Adresse machen (z.B. 192.168.0.0/16 für 192.168.0.0 bis 192.168.255.255) :)

Wei­tere Infor­ma­tio­nen gibt es unter:
http://de.wikipedia.org/wiki/PostgreSQL
http://de.wikipedia.org/wiki/PostGIS

Wer auf der Suche nach einem Tool zum Desi­gnen von Post­greSQL Daten­ban­ken ist der sollte sich PGDe­si­gner anschauen. Dabei han­delt sich um ein Tool zur Daten­mo­del­lie­rung für Post­greSQL wel­ches unter einer Open Source Lizenz steht. Mit PGDe­si­gner kann man auch beste­hende Post­greSQL Daten­ban­ken in das Pro­gramm laden. Zu fin­den ist die Soft­ware unter http://www.hardgeus.com/projects/pgdesigner/.

Wer auf der Suche nach einem ADO.NET Pro­vi­der für Post­greSQL ist der sollte sich den Open Source Pro­vi­der Npgsql anschauen wel­cher zur Zeit in Ver­sion 2.0.5 vor­liegt. Der Pro­vi­der wirkt sta­bil und fällt auch nicht durch nicht­de­ter­mi­nis­ti­sches Ver­hal­ten auf. Für alle die sich mit .NET und Post­greSQL aus­ein­an­der­set­zen wol­len (oder müs­sen) ist Npgsql sicher einen Blick Wert. Zu fin­den ist der Pro­vi­der unter http://npgsql.projects.postgresql.org/.

Wei­tere Infor­ma­tio­nen 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 Ent­wi­ckeln und möchte sich mal schnell mit einer Daten­bank ver­bin­den und weiß nicht mehr wie der Con­nec­tion String lau­tet oder wel­che Para­me­ter erlaubt waren. Bei die­sem Pro­blem hilft die Seite http://www.connectionstrings.com/. Auf der Seite wer­den Con­nec­tion Strings für alle mög­li­chen Daten­ban­ken vor­ge­hal­ten, von Post­greSQL über MySQL bis DB2. Dabei wird auch auf ver­schie­dene Daten­bank API’s ein­ge­gan­gen. Sehr emp­feh­lens­wert :)