Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Projekt Forum (https://boardunity.de/projekt-forum-f21.html)
-   -   Idee: Foren vernetzen über ähnl. Themen (https://boardunity.de/idee-foren-vernetzen-ber-hnl-themen-t5005.html)

Jendrik 07.01.2009 14:20

kukuk!

codethief 07.01.2009 15:01

Das Problem ist: Ich hatte nicht vor, selber so stark mitzuwirken (wie gesagt aus Zeitgründen). Ich denke, wir sind jetzt an einem Punkt angelangt, an dem wir uns weitere Leute suchen sollten. Und zwar möglichst welche, die schon mal über den Tellerrand von PHP hinaus geguckt haben.

Jendrik 07.01.2009 16:33

Wir müssen ja so oder so noch solche Sachen wie Protokoll festlegen.

Aber wenn sich welche melden würden, die sich mit den entsprechenden Forensystemem (Vb, BB, phpBB, usw) auskennen und dafür einen Mod schreiben wollen/können, wäre das vorteilhaft.

codethief 08.01.2009 16:39

Die Forensysteme sind erst einmal das geringste Problem. Schließlich könnten wir ein Forum auch einfach simulieren, indem wir Texte manuell einspeisen und schauen, welche ähnlichen Themen / Texte ausgespuckt werden.

Das Protokoll geht außerdem schon stark auf die Details ein. Mal abgesehen davon, dass wir meiner Meinung nach zunächst einmal auf einen Prototypen setzen sollten, den wir so schnell wie möglich zusammenschustern. Einfach nur, um unsere Ansätze auszuprobieren. :)

Jendrik 08.01.2009 17:30

Dann also erstmal mit php, oder?
Wie viele Beiträge werden schon in der Stunde/Tag/Monat geschrieben? Da uns dort die Erfahrung fehlt, würde ich erst ein Plattform nehmen, wo wirklich jeder mitarbeiten kann.

codethief 08.01.2009 19:58

Zitat:

Zitat von Jendrik (Beitrag 47168)
Dann also erstmal mit php, oder?
Wie viele Beiträge werden schon in der Stunde/Tag/Monat geschrieben? Da uns dort die Erfahrung fehlt, würde ich erst ein Plattform nehmen, wo wirklich jeder mitarbeiten kann.

Ich bin nach wie vor für Java. Aber die reine Funktionalität könnten wir der Einfachheit halber mit PHP (oder besser noch Python - ich find die Syntax einfach schöner) testen. Sonderlich große Erfahrung habe ich in Python jetzt auch nicht, aber Objektorientierung (was wir hier ja extensiv nutzen werden) ist eh überall ähnlich (und spezielle Sprachfeatures sind jetzt nicht unbedingt nötig). Könnten wir uns auf Python einigen? :)

Ich habe übrigens mal ein Repository bei bitbucket.org eingerichtet. Am besten du richtest dir auch eins ein, denn in Mercurial arbeitet man verteilt, d.h. jeder mit einem oder mehreren Repositories, die sich gegenseitig synchronisieren (manuell). Mehr dazu hier.

Jendrik 11.01.2009 16:17

tut mir Leid das ich mich nicht gemeldet hab, musste meine Oma besuchen, 6 Stunden Autofahrt hin, 6 zurück, um Mercurial kümmere ich mich morgen, hab jetzt nicht mehr genug Energie mich dort einzulesen.

codethief 26.01.2009 18:47

Auch wenn ich selbst wenig Zeit habe, wollte ich mal fragen, wie's bei dir aussieht? Nicht, dass das hier wieder komplett einschläft... :)

Jendrik 26.01.2009 19:26

ja, ist irgendwie eingeschlafen.
Ich hab mir nochmal den Wirkipediaeintrag zu Python angesehen:
Zitat:

Python gehört zu den langsameren Programmiersprachen.[16] In den aktuell vorherrschenden Implementationen ist die Geschwindigkeit ähnlich wie bei Perl[17], PHP[18] oder Smalltalk[18] und höher als bei Ruby[19].
Python (Programmiersprache) ? Wikipedia
(letzter Punkt)

Wollen wir also noch bei Python bleiben? Ich müsste das erst lernen, hab bisher halt nur Erfahrungen mit PHP und Autoit gemacht. Kannst du es? Bzw. kennts du Leute die Python können und hier begeistert mitarbeiten würden?

codethief 26.01.2009 19:57

Nein, ich müsste mich auch erst einmal einarbeiten. Aber wie gesagt: Ich würde es zunächst auch nur für einen Prototypen verwenden und das richtige System nachher in einer kompilierten Sprache, wie C++, Java oder C#, umsetzen.
Und dass Python langsam ist, ist dort eher auf ebendiese kompilierte Programmiersprachen bezogen.

Programmierer, die Python beherrschen, kenne ich, nur dürften die alle keine Zeit haben... ;)

Jendrik 26.01.2009 20:33

Na, wenn wir beide es nicht können und das ganze sowieso nochmal portiert werden soll, bringt es doch nichts sich erst noch in eine Programmiersprache einzuarbeiten, die nur für den Prototypen verwendet wird.

codethief 26.01.2009 22:46

Also dann Java? :)

Jendrik 27.01.2009 14:04

hmgpf!
Zitat:

... hab bisher halt nur Erfahrungen mit PHP und Autoit gemacht.
Magst du mich nicht mehr?

Neben Schule, Hausaufgaben, Vokabeln lernen und im Haushalt helfen, bleibt halt leider nicht mehr genug Zeit eine weitere Programmiersprache zu lernen, jedenfalls nicht in Kürze.

codethief 27.01.2009 14:45

Ok, dann eben PHP. Auch wenn es mir in der Seele wehtut. :(

Jendrik 27.01.2009 16:30

so schlimm ist es doch nicht, oder?

codethief 27.01.2009 17:36

Darauf möchte ich mal lieber nicht eingehen, sonst endet unsere Diskussion noch sonstwo. :)

Jendrik 27.01.2009 17:56

Womit wollen wir dann arbeiten? Eclipse für Php? Texteditor?
Wer programmiert was? Was wird überhaupt gebraucht?

codethief 27.01.2009 18:04

Eclipse hört gut an, zumal die Integration mit Mercurial dann sehr, sehr einfach wäre. :)
Wir brauchen also:
- Eine IDE (Eclipse)
- Eine Versionsverwaltungssoftware (Mercurial)
- Eine Datenbanksoftware (MySQL scheint mir für den Anfang am geeignetsten zu sein)
Habe ich etwas vergessen?

Jendrik 27.01.2009 18:21

Hast alles erwähnt, ich dachte aber eigentlich eher an die benötigten Funktionen:
  • Text zu Stichworte
  • Stichworte in Db
  • Link in Db
  • Plugins für Foren
  • Caching auf dem Server
  • Caching im Forum

codethief 27.01.2009 20:16

Wie ich bereits sagte: Sich gleich von Anfang an Sorgen um Caching und Plugins zu machen, ist nicht sinnvoll, denn im Zentrum unserer Entwicklungsarbeit steht am Anfang die Engine, die die Ergebnisse überhaupt generiert.

So oder so kommen wir spätestens jetzt nicht mehr weiter, ohne ausreichend Zeit in dieses Projekt zu investieren. Sprich, die Diskussion hier im Forum alleine führt uns jetzt nicht weiter. Wir müssen unseren Worten auch Taten folgen lassen.
Das Problem ist nur, dass ich kurz vor dem Abitur stehe und ich daher überhaupt keine Zeit mehr habe, so gerne ich jetzt auch sofort mit der Programmierarbeit anfangen würde. Wir könnten allerdings versuchen, die Funktionsweise unserer beiden Ansätze (d.h. zum Einen über die Anzahl der übereinstimmenden Stichworte, zum Anderen über das Netz) gemeinsam bis ins Detail zu modellieren (vielleicht über ein UML-ähnliches Schema), um später nur noch herunterzuschreiben. Dann bestünde vielleicht eher die Möglichkeit trotz Zeit- und Personalmangels Stück für Stück gemeinsam vorzugehen. Eine entsprechende Testumgebung kann dann ja noch im Nachhinein eingerichtet werden.
Es wäre nur lieb, wenn wir erst einmal mit der Modellierung des Netzkonzepts anfangen könnten (weil sich da bereits während der Modellierung herausstellen dürfte, ob es machbar ist oder nicht).

Ich werde Luki mal bitten im BUN-Forum ein neues Unterforum einzurichten, damit ich die alten Diskussionen dorthin verschieben kann.


PS: Wurstbrot, wie kommt's, dass du dich in deiner Doktorarbeit mit dem Thema beschäftigst?

Jendrik 28.01.2009 14:39

Wenn du im Augenblick solche Zeitprobleme hast, würde ich einfach mal mit der Verarbeitung des Beitrages zu Stichpunkten anfangen.
Es ist natürlich selbstverständlich das Abitur vorgeht.

Edit: Darf man hier Texte zum testen kopieren? Oder muss das vom Admin abgesegnet werden?

codethief 28.01.2009 16:44

Zitat:

Zitat von Jendrik (Beitrag 47284)
Edit: Darf man hier Texte zum testen kopieren? Oder muss das vom Admin abgesegnet werden?

Welche Texte meinst du? Und wohin kopieren? :)

Jendrik 28.01.2009 17:10

Die Beiträge von anderen Usern um zu schauen ob der Algo, der aus den Beiträgen, die ans BUN gesendet werden, die passenden Stichworte hinaussucht.

codethief 28.01.2009 17:16

Naja, du veröffentlichst die Texte ja nicht. Ich sehe da jetzt keine Urheberrechtsverletzung, zumal es ja auch nicht nachgewiesen werden könnte. (Ohne Gewähr :))

Jendrik 29.01.2009 18:39

Ich hab mal was zusamengebastelt:

PHP-Code:

function text_zu_stichpunkte($input$blacklist = array( 'der''die''das' ), $delimeter " :;,()/\n?![]*."$min_length )
{
    
$min_count floorbcsqrtbcsqrtbcdivstr_word_count$input ) - 502) , ), ) );
// Minimale Anzahl der Wörter um zurückgegeben zu werden. Ist nur eine Schätzung was sinnvoll ist!
    
    
$token strtok$input$delimeter );
    while( 
$token !== false )
    {
        
$t strtolower$token );
        if( !empty( 
$t ) && !in_array$t $blacklist ) && !(strlen($t) < $min_length) && ( $token{0} === strtoupper($token{0}) ) ) 
        { 
// Überprüfen ob: String nicht leer ist, in der Blacklist vorkommt, zu kurz ist und großgeschrieben ist
            
$input_array[] = strtr$t, array( '-' => '' ) );
        }
        
$token strtok$delimeter );
    }
    
    foreach(
$input_array as $value// Einträge zählen, unter $min_count wird er nicht weitergegeben
    
{
        foreach (
$input_array as $v)
        {
            if(
$v == $value)
            {
                
$values += 1;
            }
        }
        if( 
$values >= $min_count )
        {
            
$array[] = $value;
        }
        
$values 0;
    }
    
$array array_unique($array); // Doppelte Einträge entfernen
    
return $array;


Aufruf:
PHP-Code:

$text 'blablabla';
// Keine HTML-Tags!

$array text_zu_stichpunkte$text );

echo 
implode"<br>\n"$array ); 

Getestet mit Link und Link

Jendrik 31.01.2009 23:03

Ich dachte mir noch:
Kann man die User dazu bringen, dass sie selbst Stichworte angeben?
Das wäre natürlich die beste Option, der Mensch ist in sowas noch besser.

Desweiteren gibt es ja auch hier in der Boardunity unterhalb eines Themas ein Feld mit dazu passenden Stichworten. Wie ist das hier gelöst?

codethief 01.02.2009 16:58

Das Problem, welches ich sehe, ist nur, dass du bei diesem Verfahren die Blacklist immer weiter anpassen musst.
Im Übrigen: Wieso lässt du zum Schluss noch mal array_unique über das Array drüberlaufen? Wenn ein Stichwort besonders oft vorkommt, ist das doch ein Zeichen dafür, dass es in diesem Thema besonders um dieses Wort geht.

Zitat:

Kann man die User dazu bringen, dass sie selbst Stichworte angeben?
Das wäre natürlich die beste Option, der Mensch ist in sowas noch besser.
Dann müsste man ja die Communities der teilnehmenden Foren dazu zwingen, für jedes Thema Stichwörter festzulegen. Glaub mir, das geht schief.

Jendrik 01.02.2009 19:44

Das es schwierig ist die User dazu zu bringen Stichworte anzugeben ist logisch.
Weißt du hierzu was?
Zitat:

Desweiteren gibt es ja auch hier in der Boardunity unterhalb eines Themas ein Feld mit dazu passenden Stichworten. Wie ist das hier gelöst?

codethief 02.02.2009 15:20

Welches Feld meinst du?

Jendrik 02.02.2009 17:29

hier, unter dem letzten Beitrag und über "Direkt antworten"

codethief 02.02.2009 18:22

Ah richtig, das hab ich ganz übersehen. :)
Ich glaube, das wir uns aber in die falsche Richtung bewegen. Die Foren dazu zu bringen, Stichwörter für die Themen festzulegen, ist unmöglich, also sollten wir uns nicht weiter damit aufhalten?

Jendrik 02.02.2009 18:53

kein Problem, wollte nur wissen, ob das möglich gewesen wäre, würde uns ja viel arbeit ersparen.

Jendrik 19.11.2009 14:57

Hi,
nachdem hier noch schon länger nichts passiert ist versuche ich es noch mal mit einem Konzept.
Alle Zahlen, Werte und Ähnliches sind natürlich absolut variabel.

Jedes Forum bekommt einen 32stelligen Code, der das Forum eindeutig kennzeichnet. Wird nun in diesem Forum ein neuer Beitrag geschrieben, wird das dem BUN Server gemeldet.
Dabei wird der Thementitel, eine eindeutige ID (für das Forum, nicht für das gesamte BUN) und der Code übergeben. Der BUN Server speichert diese in einer Datenbank.

Des Weiteren gibt es auf dem Server für jedes Forum einen Ordner mit dessen Code als Namen. Darin befindet sich für jedes Thema eine XML Datei die 10 ähnliche Themen, nach Relevanz geordnet, enthält.
z.B.:
  • Forum: fhauiehr732hr78seh7th7w8thw47ht78hwtuih4w78
    • Thema: id_25953
    • Thema: id_542
    • Thema: id_532
  • Forum: fh478hfwhf74hf4wf98hz4w89fh894hwfiosh84fhz4
    • Thema: id_542
    • Thema: id_3247
    • Thema: id_357
Das Forum ruft jedes mal (oder höchstens jede Stunde oder …) wenn sich ein Benutzer das Thema ansieht, die dazu passende Datei auf:
z.B.: http://bun.boardunity.de/fh478hfwhf7...h84fhz4/id_542

Damit erreichen wir meiner Meinung nach eine geringere Last auf dem Server, als wenn für jede Anfrage eine wie auch immer geartete Scriptsprache benutzt wird. Allerdings sind wir natürlich auch nicht so aktuell wie es möglich wäre.

Diese Dateien müssen natürlich auch erstellt und aktualisiert werden. Dazu wird in einem weiteren Script match() benutzt. Dieses Script muss nicht auf dem eigentlichen BUN Server laufen, sondern kann sonst wo arbeiten, muss halt nur eine lokale Kopie der Datenbank zur Verfügung haben. Des Weiteren müssen die Dateien auch noch aktuell gehalten werden. Es bietet sich natürlich an auf einem Privaten PC immer alles neu zu erstellen und anschließend hochzuladen. Einen Teil der Arbeit kann man sich aber meiner Meinung nach sparen. Zum Beispiel erstellt Apache ein Zugriffslog. Darin steht auch welche Dateien von dem Forum öfters angefordert werden und somit indirekt auch das Interesse an dem Thema (Besucht keiner das Thema, fordert das Forum nicht die passende Datei an und die Datei taucht nicht im Log auf)
Somit lässt sich festzustellen welche Themen noch gelesen werden und somit für diese eine aktuelle Datei wünschenswert wäre. Alte Themen, die schon seit Jahren niemand mehr angesehen hat brauchen schließlich keine tagesaktuellen Dateien.

Ich hoffe mal ich habe keinen verwirrt und bitte um Meinungen.
Ist so ein Aufbau sinnvoll und logisch?

Viele Grüße,
jendrik

codethief 19.11.2009 19:30

Ich finde, Caching wäre hier eher angebracht. So würden die ähnlichen Themen für wenig frequentierte Themen auf Anfrage aktualisiert werden, die für beliebte in festgelegten Abständen (sodass es zu keiner Überlastung kommt).
Denn: Gerade wenn ein Thema uralt ist und sich dann doch mal ein Besucher darauf verirrt, ist es doch interessant, ob sich die Diskussion nicht vielleicht woanders weiterentwickelt hat, ob es neue Erkenntnisse gibt o.ä.

Von der Idee, die Daten in Ordnern mit endlos vielen Dateien zu speichern, halte ich auch wenig. Bei Dateisystemen gibt es in der Regel ein Maximum in Bezug auf die Dateien pro Ordner, oberhalb dessen ein Dateizugriff zunehmend langsamer wird. Datenbanken können mit solchen Datenmengen inzwischen um einiges besser umgehen.

Jendrik 19.11.2009 20:39

Gegen Caching habe ich prinzipiell auch nichts, das ganze aber nicht über ein Programm laufen zu lassen ist mein Anliegen.

Es müssen natürlich nicht alle Dateien in einen Ordner vorhanden sein. Eine Unterteilung nach Forum, erste ID-Stelle, zweite ID-Stelle, dritte ID-Stelle, vierte ID-Stelle, ... ist natürlich möglich.
Aber ich möchte nur mal auf heise.de verweisen, bei denen sieht es zumindest so aus als würden alle Einträge in einem Ordner liegen.

Und desweiteren habe ich mich vieleicht missverständlich ausgedrückt: Auch ältere Themen sollten regelmäßig aktualisiert werden, aber nur in größeren Abständen, wöchentlich zum Beispiel.

codethief 19.11.2009 22:09

Zitat:

Zitat von Jendrik (Beitrag 49816)
Aber ich möchte nur mal auf heise.de verweisen, bei denen sieht es zumindest so aus als würden alle Einträge in einem Ordner liegen.

Ja, und es sieht auch wirklich nur so aus. Die Technik dahinter nennt sich mod_rewrite.

Jendrik 20.11.2009 11:23

Ok, mag ja so sein, dennoch möchte ich noch auf den Rest meines letzten Beitrages verweisen.
Zitat:

Zitat von Jendrik (Beitrag 49816)
Gegen Caching habe ich prinzipiell auch nichts, das ganze aber nicht über ein Programm laufen zu lassen ist mein Anliegen.

Es müssen natürlich nicht alle Dateien in einen Ordner vorhanden sein. Eine Unterteilung nach Forum, erste ID-Stelle, zweite ID-Stelle, dritte ID-Stelle, vierte ID-Stelle, ... ist natürlich möglich.
...

Und desweiteren habe ich mich vieleicht missverständlich ausgedrückt: Auch ältere Themen sollten regelmäßig aktualisiert werden, aber nur in größeren Abständen, wöchentlich zum Beispiel.


codethief 20.11.2009 21:18

Zitat:

Zitat von Jendrik (Beitrag 49816)
Gegen Caching habe ich prinzipiell auch nichts, das ganze aber nicht über ein Programm laufen zu lassen ist mein Anliegen.

Habe ich das richtig verstanden? Die Foren holen sich ihre ähnlichen Themen einfach über die Ordnerstruktur? Was ist allerdings, wenn der BUN-Server umstrukturiert werden muss und sich die Ordnerstruktur ändert? Müssen dann auch alle Plugins für die Foren aktualisiert werden? Und reicht bloße Security through obscurity ? Wikipedia aus?

Zitat:

Zitat von Jendrik (Beitrag 49816)
Auch ältere Themen sollten regelmäßig aktualisiert werden, aber nur in größeren Abständen, wöchentlich zum Beispiel.

Aber wo siehst du da den Vorteil gegenüber meiner Idee? Bei mir wird nur dann aktualisiert, wenn es auch wirklich nötig ist. Aber wenn es nötig ist (= ein einsamer Besucher verirrt sich auf ein uraltes Thema), wird auch wirklich aktualisiert und nicht gewartet, bis das wöchentliche Update dran ist.

Jendrik 21.11.2009 11:19

Zitat:

Zitat von codethief (Beitrag 49825)
Habe ich das richtig verstanden? Die Foren holen sich ihre ähnlichen Themen einfach über die Ordnerstruktur? Was ist allerdings, wenn der BUN-Server umstrukturiert werden muss und sich die Ordnerstruktur ändert? Müssen dann auch alle Plugins für die Foren aktualisiert werden?

Das ist allerdings eine Schwachstelle. Idealerweise lässt sich so eine kleine Änderung einfach übertragen, jeder Admin sollte in der Lage sein, ein oder zwei Zeilen in einer config-Datei zu ändern. Allerdings gibt es bei dir das selbe Problem, falls das Script verschoben werden muss.
Zitat:

Zitat von codethief (Beitrag 49825)

Wozu Security? Was bringt es mir als Forum A, die für Forum B maßgeschneiderten Dateien auszulesen? Indexiere ich alle Themen von Forum B und vergleiche deren Titel mit meinen? Eher unwahrscheinlich.
Zitat:

Zitat von codethief (Beitrag 49825)
Aber wo siehst du da den Vorteil gegenüber meiner Idee? Bei mir wird nur dann aktualisiert, wenn es auch wirklich nötig ist. Aber wenn es nötig ist (= ein einsamer Besucher verirrt sich auf ein uraltes Thema), wird auch wirklich aktualisiert und nicht gewartet, bis das wöchentliche Update dran ist.

Der größte Vorteil ist m.E. die geringe Serverlast. Es muss nicht bei jeder Anfrage ein Php- oder sonstiges Interpreter gestartet werden.
Und wie warscheinlich ist es das sich für ein 3 Jahre altes Thema innerhalb einer Woche eine Masse an neuen Informationen ansammelt und dabei nur ein oder zwei mal das alte Thema geöffnet wird? Denn bei mehr zugriffen wird die Datei ja auch früher als in dem Wochenrhythmus aktualisiert.

codethief 21.11.2009 16:59

Zitat:

Zitat von Jendrik (Beitrag 49829)
Wozu Security? Was bringt es mir als Forum A, die für Forum B maßgeschneiderten Dateien auszulesen? Indexiere ich alle Themen von Forum B und vergleiche deren Titel mit meinen? Eher unwahrscheinlich.

Wie sieht's mit passwortgeschützten Foren, die ihre Daten (Thementitel) zwar dem BUN, aber doch nicht jedem mitteilen wollen? Unwahrscheinlich vielleicht*, aber wieso sollten wir die ausschließen?

* Spontan fällt mir allerdings ein interessanter Anwendungsfall ein, den ich gerne auch mal selber in Angriff nehmen würde. Ist aber psst! geheim. ;)

Zitat:

Zitat von Jendrik (Beitrag 49829)
Der größte Vorteil ist m.E. die geringe Serverlast. Es muss nicht bei jeder Anfrage ein Php- oder sonstiges Interpreter gestartet werden.

Das ist inzwischen nicht mehr erforderlich. Der Interpreter kann inzwischen auch dauerhaft im Hintergrund laufen und auf Anfragen warten, ohne dass jedes mal ein neuer Prozess erstellt und wieder geschlossen werden müsste. Die Bearbeitungsdauer für eine winzige Anfrage ist dann fast gleich Null.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25