Deusu.de Blog

2.1.2015

Feature-Diskussion: URL-Anmeldeformular / URLs speichern

Update 26.1.2015: Es gibt jetzt wieder eine URL-Anmeldefunktion.

Ich möchte hier gerne eine Diskussion starten um ein oder möglicherweise zwei Funktionen, die für DeuSu vorgeschlagen wurden. Beide Vorschläge könnten eventuell als eine zusammenhängende Funktion angesehen werden. Es wäre aber auch möglich, dass es zwei getrennte Funktionen sind. Das würde ich gerne hier herausfinden.

Ein Vorschlag kam vor ein paar Wochen:

"Bitte Möglichkeit zum Verbessern der Seite geben, indem man eigene, oft aufgerufene Seiten speichern kann."

Der andere bezieht sich auf ein URL-Anmeldeformular, welches es früher einmal bei Acoon, dem Vorgänger von DeuSu, gab:

"Ich fand die Funktion eigentlich sehr praktisch, um nicht zu sagen, es ist eins der wichtigsten Features an Acoon/DeuSu gewesen. Ich trage da häufiger URLs ein. Entweder von Seiten, die ich wichtig/zensurgefährdet oder in den Medien unterrepräsentiert sehe oder einfach hilfreiche Seiten, nach denen ich lange suchen musste.

Wenn ich mich dann ein Jahr später nicht mehr an die URL erinnere und sie auch nicht mehr in meiner Browserchronik ist, finde ich sie mit DeuSu erfahrungsgemäß sehr schnell wieder."

Ich sehe hier durchaus den Nutzen, den ein URL-Anmeldeformular bringt. Ich habe aber ein Problem damit, dass über eine solche Funktion eine Menge Spam angemeldet wird. Ich kann anhand der Server-Logfiles sehen, dass mehr als 95% der Anmeldungen offenbar nicht per Hand, sondern durch automatische Tools ausgeführt werden.

Die Menge der Anmeldungen insgesamt ist jedoch nicht das Problem. Es ging hier in der Vergangenheit um 2000-3000 Anmeldungen pro Tag. Selbst auf ein ganzes Jahr bezogen reden wir hier über knapp unter einer Million Anmeldungen. Das ist vom technischen Aufwand her kein Problem.

Ich sehe einzig und allein den überwiegenden Spam-Anteil als Problem.

Ich frage mich wie das zu verbessern wäre. Eine Möglichkeit wäre einfach ins Anmeldeformular ein Captcha zu integrieren. Das würde den Spam-Anteil sicherlich reduzieren.

Es bleibt aber die Frage, ob damit der Wunsch nach dem Speichern von Seiten entsprochen werden kann. Wobei ich mir auch nicht sicher bin, was genau mit diesem Wunsch gemeint war.

Bitte diskutieren... :)

Kommentare:
Von: (Unbekannt)
3.1.2015, 09:42
 

Ich finde die Idee mit der Seitenanmeldung gut, aber ein Captcha könnte eventuell die Privatsphäre einschränkt, aber wenn DeuSu ein eigen entwickeltes Captcha bekommen würde, dann wäre die Privatsphäre weiterhin geschützt!

Von: Michael Schöbel
3.1.2015, 10:48
 

Eines kann ich versichern: Wenn Captcha, dann wird es ein selber gehostetes sein. Defintiv NICHTS Externes!

Von: (Unbekannt)
3.1.2015, 17:36
 

Vielleicht kann man das auch über E-Mails machen. Genau beschreiben, wie die E-Mail auszusehen hat und an wen sie gehen muss. Das noch kombiniert mit dem Captcha... Aber auf jeden Fall angeben, dass es vorher ein großes Problem mit Spam gab.

Von: Michael Schöbel
3.1.2015, 17:59
 

Bei Anmeldungen via E-Mail wäre der Arbeitsaufwand für mich sehr hoch. Es wäre mit circa 50 URL-Anmeldungen pro Tag zu rechnen.

Und die Privatsphäre des Anmelders wäre auch dahin.

Ich tendiere dazu es zunächst einfach mit Captcha zu machen. Falls sich das als unzureichend herausstellen sollte, kann ich den Anmeldeprozess immer noch irgendwie verschärfen.

Von: (Unbekannt)
3.1.2015, 20:17
 

Das mit der E-Mail wäre auf jeden Fall zu aufwändig. Schon ein Captcha nervt den Anwender. Es ist aber einzusehen, dass ein Spamschutz notwendig ist. Dennoch muss ich sagen, dass ich in der Vergangenheit öfters URLs bei Acoon eingetragen habe, bei Domengo jedoch eher selten - weil die ein Captcha haben.

https://www.domengo.de/newurl.asp

Wie wäre es, wenn man beim lösen eines Captchas ein Cookie bekommt, das einen als Mensch markiert. Natürlich nur, wenn der Anwender dafür einen Haken setzt. Nach 10 URLs gibt's dann wieder ein Captcha.

Von: Michael Schöbel
3.1.2015, 20:20
 

Das mit dem optionalen Cookie ist eine gute Idee.

Könnte ich auch so machen, dass das Cookie eine beschränkte Lebensdauer hat. Es also entweder nach Session-Ende (schließen des Browser-Fensters) oder nach einer relativ kurzen Zeit, sagen wir mal zwei Stunden, automatisch verfällt.

Von: (Unbekannt)
4.1.2015, 17:48
 

Warum kommt diese Fehlermeldung beim compilieren?

./build-linux.sh: 17: ./build-linux.sh: function: not found

Von: Michael Schöbel
4.1.2015, 18:19
 

Ich nehme an, das bezieht sich auf die OpenAcoon-Software...

Wird Bash als Shell benutzt, oder eine andere Shell? Ich habe das nur mit Bash getestet. Habe es auch gerade eben noch mal ausprobiert und es lief bei mir durch. Ist FreePascal installiert?

Von: (Unbekannt)
4.1.2015, 18:50
 

Ubuntu wird benutzt. Die Indy10 Lib habe ich runtergeladen und ins Src verschoben und den Befehl angepasst. Mit dem Aufruf bash ./SCRIPT.sh geht es nun!

So wären die Lösch-Befehle besser:

#!/bin/bash if [ -f q1.txt] ; then rm q1.txt fi

Es kommt leider immer noch folgende Meldung:

Starting Linux build of OpenAcoon... ------------------------------------ rm: das Entfernen von »src/cgi/*.o“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden rm: das Entfernen von »src/cgi/*.ppu“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mkdir: das Verzeichnis »bin“ kann nicht angelegt werden: Die Datei existiert bereits rm: das Entfernen von »bin/*“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden Free Pascal Compiler version 2.6.2-8 [2014/01/22] for x86_64 Copyright (c) 1993-2012 by Florian Klaempfl and others (1002) Target OS: Linux for x86-64 (3104) Compiling RobotNew.dpr RobotNew.dpr(17,2) Note: (2073) APPTYPE is not supported by the target OS (3104) Compiling httpget.pas (3104) Compiling robotglobal.pas httpget.pas(26,5) Fatal: (10022) Can't find unit IdGlobal used by httpget Fatal: (1018) Compilation aborted Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)

Von: Michael Schöbel
4.1.2015, 19:01
 

Ja, die Fehler mit "rm" kenne ich. Einfach ignorieren. :) Beim ersten Kompilieren sind die Dateien einfach noch nicht da. Später soll das Löschen sicherstellen, dass wirklich komplett neu kompiliert wird.

Zum letzten Fehler: Ich erinnere mich, dass ich auch Probleme hatte dem Compiler beizubringen IdGlobal zu finden. Da muss glaube ich ein zusätzlicher Pfad mit -Fu dem Compiler übergeben werden, der ihm sagt wo der Sourcecode dafür ist. IdGlobal ist wohl in einem Unterverzeichnis von Indy, und das findet der Compiler nicht von alleine.

Von: (Unbekannt)
4.1.2015, 19:29
 

compiler="fpc -Mdelphi -Tlinux -O3 -vew -Sew -vq -Fu~/indy10/ -Fu/usr/lib64/lazarus/lcl/units/x86_64-linux/ -Fu/usr/lib64/lazarus/components/lazutils/lib/x86_64-linux/"

Die beiden Pfade sind auch nicht richtig.

Unter welchem Linux OS haben Sie getestet?

Von: (Unbekannt)
4.1.2015, 19:42
 

Starting Linux build of OpenAcoon... ------------------------------------ rm: das Entfernen von »src/cgi/*.o“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden rm: das Entfernen von »src/cgi/*.ppu“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mkdir: das Verzeichnis »bin“ kann nicht angelegt werden: Die Datei existiert bereits rm: das Entfernen von »bin/*“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden Free Pascal Compiler version 2.6.2-8 [2014/01/22] for x86_64 Copyright (c) 1993-2012 by Florian Klaempfl and others (1002) Target OS: Linux for x86-64 (3104) Compiling RobotNew.dpr RobotNew.dpr(17,2) Note: (2073) APPTYPE is not supported by the target OS (3104) Compiling httpget.pas (3104) Compiling robotglobal.pas (3104) Compiling /home/tim/OpenAcoon/indy10/System/IdGlobal.pas IdCompilerDefines.inc(160,1) Warning: (2031) compiler switches aren't supported in // styled comments (3104) Compiling /home/tim/OpenAcoon/indy10/System/IdTStrings.pas IdCompilerDefines.inc(160,1) Warning: (2031) compiler switches aren't supported in // styled comments IdTStrings.pas(112,1) Fatal: (10026) There were 2 errors compiling module, stopping Fatal: (1018) Compilation aborted Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)

Von: Michael Schöbel
4.1.2015, 19:43
 

Ursprünglich OpenSuse 13.1 und aktuell 13.2.

FreePascal und Lazarus stammen aber nicht aus den OpenSuse Repositories, sondern von: http://download.opensuse.org/repositories/home:/Reki/openSUSE_13.2/

Von: Michael Schöbel
4.1.2015, 19:55
 

Hmm.. Merkwürdige Fehlermeldungen... "Warning: (2031) compiler switches aren't supported in // styled comments". Und das ist irgendwo in Indy...

Ist FPC so konfiguriert, dass er bereits bei Warnungen abbricht? Das wird nicht funktionieren. Es gibt viel zu viele Stellen mit Warnungen in der Software. :)

Von: (Unbekannt)
4.1.2015, 21:25
 

Funktioniert mit Suse+Respositiries auch nicht..... Können Sie das mal selber in einer VM testen?

Von: Michael Schöbel
4.1.2015, 22:07
 

Habe ich mir für morgen mal auf meine ToDo-Liste gesetzt...

Von: Michael Schöbel
5.1.2015, 01:15
 

Ich habe build-linux.sh angepasst. Hol Dir bitte die neueste Version von:

https://github.com/MichaelSchoebel/OpenAcoon

Und Du musst die FreePascal Sourcen instalieren. Ein paar der Units die benötigt werden sind in der Installation des reinen Compilers merkwürdigerweise nicht enthalten.

Ich habe es jetzt unter einem vorher nackten Ubuntu zum Laufen bekommen.

Von: (Unbekannt)
5.1.2015, 21:15
 

Die Sourcen von FPC waren irgendwie bei den Packages schon mit installiert von Ubuntu.

Trotzdem gibt es einen Fehler:

# You will probably need to change directory names to match your setup fpc_src="/usr/share/fpcsrc/2.6.2/packages/" compiler="fpc -Mdelphi -Tlinux -O3 -vew -vq" compiler=$compiler" -Fu/home/tim/Downloads/OpenAcoon-master/indy10/*" compiler=$compiler" -Fu${fpc_src}fcl-base/src" compiler=$compiler" -Fu${fpc_src}fcl-net/src" compiler=$compiler" -Fu${fpc_src}iconvenc/src" compiler=$compiler" -FE."

-------------------

Starting Linux build of OpenAcoon... ------------------------------------ rm: das Entfernen von »src/cgi/*.o“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden rm: das Entfernen von »src/cgi/*.ppu“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mkdir: das Verzeichnis »bin“ kann nicht angelegt werden: Die Datei existiert bereits rm: das Entfernen von »bin/*“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden Free Pascal Compiler version 2.6.2-8 [2014/01/22] for x86_64 Copyright (c) 1993-2012 by Florian Klaempfl and others (1002) Target OS: Linux for x86-64 (3104) Compiling RobotNew.dpr RobotNew.dpr(17,2) Note: (2073) APPTYPE is not supported by the target OS (3104) Compiling httpget.pas (3104) Compiling robotglobal.pas (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdGlobal.pas IdCompilerDefines.inc(160,1) Warning: (2031) compiler switches aren't supported in // styled comments (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdTStrings.pas IdCompilerDefines.inc(160,1) Warning: (2031) compiler switches aren't supported in // styled comments (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdException.pas (3104) Compiling /usr/share/fpcsrc/2.6.2/packages/fcl-base/src/syncobjs.pp IdGlobal.pas(1002,18) Fatal: (10022) Can't find unit Libc used by IdGlobal Fatal: (1018) Compilation aborted Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)

Von: Michael Schöbel
5.1.2015, 21:23
 

Dann müsste der Pfad

/usr/share/fpcsrc/2.6.2/packages/libc/src/

auch noch mit aufgenommen werden.

Von: (Unbekannt)
5.1.2015, 21:51
 

Ok, gemacht..... leider immer noch Probleme.

Starting Linux build of OpenAcoon... ------------------------------------ rm: das Entfernen von »src/cgi/*.o“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden rm: das Entfernen von »src/cgi/*.ppu“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mkdir: das Verzeichnis »bin“ kann nicht angelegt werden: Die Datei existiert bereits rm: das Entfernen von »bin/*“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden Free Pascal Compiler version 2.6.2-8 [2014/01/22] for x86_64 Copyright (c) 1993-2012 by Florian Klaempfl and others (1002) Target OS: Linux for x86-64 (3104) Compiling RobotNew.dpr RobotNew.dpr(17,2) Note: (2073) APPTYPE is not supported by the target OS (3104) Compiling httpget.pas (3104) Compiling robotglobal.pas (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdGlobal.pas IdCompilerDefines.inc(160,1) Warning: (2031) compiler switches aren't supported in // styled comments (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdTStrings.pas IdCompilerDefines.inc(160,1) Warning: (2031) compiler switches aren't supported in // styled comments (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdException.pas (3104) Compiling /usr/share/fpcsrc/2.6.2/packages/fcl-base/src/syncobjs.pp (3104) Compiling /usr/share/fpcsrc/2.6.2/packages/libc/src/libc.pp libc.pp(6,4) Error: (2023) User defined: The KernelDefs unit is a legacy Kylix-compatibility unit that is only supported on Linux/i386. It is known not to work in various ways on other OSes and architectures (including Linux/x86_64). (3104) Compiling /usr/share/fpcsrc/2.6.2/packages/libc/src/kerneldefs.pp kerneldefs.pp(5,4) Error: (2023) User defined: The KernelDefs unit is a legacy Kylix-compatibility unit that is only supported on Linux/i386. It is known not to work in various ways on other OSes and architectures (including Linux/x86_64). kerneldefs.pp(715,1) Fatal: (10026) There were 2 errors compiling module, stopping Fatal: (1018) Compilation aborted Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)

Von: Michael Schöbel
5.1.2015, 22:00
 

Ok, für die libc versuch mal als alternativen Pfad

/usr/share/fpcsrc/rtl/netwlibc/

Es scheint zwei davon zu geben...

Von: Michael Schöbel
5.1.2015, 22:01
 

Und bei weiteren fehlenden Dateien einfach mit

find /usr -name <filename>

danach suchen und den Pfad in build-linux.sh aufnehmen.

Von: (Unbekannt)
5.1.2015, 23:04
 

Geht immer noch nicht....echt komisch....

find /usr/ -name netwlibc find: "/usr/share/doc/google-chrome-stable": Keine Berechtigung /usr/share/doc/fp-compiler/2.6.2/netwlibc /usr/share/fpcsrc/2.6.2/packages/fcl-net/src/netwlibc /usr/share/fpcsrc/2.6.2/packages/fcl-base/src/netwlibc /usr/share/fpcsrc/2.6.2/rtl/netwlibc find: "/usr/lib/AntiVir/guard/gui": Keine Berechtigung

--------------

Starting Linux build of OpenAcoon... ------------------------------------ rm: das Entfernen von »src/cgi/*.o“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden rm: das Entfernen von »src/cgi/*.ppu“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mkdir: das Verzeichnis »bin“ kann nicht angelegt werden: Die Datei existiert bereits rm: das Entfernen von »bin/*“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden Free Pascal Compiler version 2.6.2-8 [2014/01/22] for x86_64 Copyright (c) 1993-2012 by Florian Klaempfl and others (1002) Target OS: Linux for x86-64 (3104) Compiling RobotNew.dpr RobotNew.dpr(17,2) Note: (2073) APPTYPE is not supported by the target OS (3104) Compiling httpget.pas (3104) Compiling robotglobal.pas (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdGlobal.pas IdCompilerDefines.inc(160,1) Warning: (2031) compiler switches aren't supported in // styled comments (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdTStrings.pas IdCompilerDefines.inc(160,1) Warning: (2031) compiler switches aren't supported in // styled comments (3104) Compiling /home/tim/Downloads/OpenAcoon-master/indy10/System/IdException.pas (3104) Compiling /usr/share/fpcsrc/2.6.2/packages/fcl-base/src/syncobjs.pp IdGlobal.pas(1002,18) Fatal: (10022) Can't find unit Libc used by IdGlobal Fatal: (1018) Compilation aborted Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)

Von: Michael Schöbel
5.1.2015, 23:15
 

Der Befehl

find /usr -name <filename>

sollte separat in der Kommandozeile eingegeben werden. Er gibt dann die Pfade aus, wo die jeweilige Datei gefunden wurde. Beispiel:

find /usr -name libc.p*

Gibt alle Stellen aus wo "libc.p*" gefunden wird. Es kann entweder .pas oder .pp rauskommen. Geht beides. Manchmal gibt es mehrere Pfade. Hier einfach ausprobieren welcher funktioniert.

Im Beispiel oben, bekomme ich auf meiner OpenSuse-Installation folgenden Ausgabe:

/usr/share/fpcsrc/rtl/netwlibc/libc.pp
/usr/share/fpcsrc/packages/libc/src/libc.pp
find: ‘/usr/share/polkit-1/rules.d’: Permission denied

Die letzte Zeile kann man einfach ignorieren. Da darf der aktuelle User einfach nicht das Verzeichnis lesen.

Die beiden darüber geben zwei Pfade an. "/usr/share/fpcsrc/rtl/netwlibc/" ist hier der interessante. Für die Zeile dann in build-linux.sh unter den existierenden "compiler=$compiler" Zeilen eine weitere hinzufügen, wo der eben gefundene Pfad drinsteht.

Hier also:

compiler=$compiler" -Fu/usr/share/fpcsrc/rtl/netwlibc"

Und dann build-linux.sh erneut versuchen. Eventuell gibt es dann weitere Fehler mit Dateien, die der Compiler nicht findet. Dann die mit "find" auch suchen. Irgendwann sollten dann hoffentlich alle Pfade drin sein, die zum kompilieren gebraucht werden.

Von: (Unbekannt)
10.1.2015, 12:15
 

Welche indy Version verwenden Sie? URL? Warum benötigen Sie jetzt diese Lib und vorher bei Win nicht?

Von: Michael Schöbel
10.1.2015, 12:27
 

Die Download-Datei, die ich benutzt habe, war Indy10_5234.zip. Aktuell scheint 5236 zu sein:

http://indy.fulgan.com/ZIP/

Unter Windows habe ich früher nicht mit FreePascal compiliert, sondern mit Delphi. Und bei Delphi ist Indy direkt mit dabei. Brauchte also nicht separat downgeloadet und compiliert zu werden.

Von: (Unbekannt)
12.1.2015, 13:12
 

Jetzt funktioniert es! Danke!

Sie möchten einen Kommentar zu diesem Blog-Posting abgeben? Falls ja, tragen Sie Ihren Kommentar bitte einfach in dem unten stehenden Feld ein, und klicken dann auf "Absenden".

Kommentare erscheinen erst nach manueller Kontrolle. Leider gab es sonst zu viel Spam.


Zurück zur Blog-Übersicht