Javabasiertes Forum

Bei der Diskussion zum Wechsel der Forensoftware weg von vB4 kam auch die Idee auf, selbst eine Forensoftware zu schreiben, oder bestehende (wie jforum - Powering Communities ) wiederzubeleben.

Da es sich herauskristallisiert hat, dass ein eventuelles Projekt in dieser Richtung relativ unabhängig vom genannten Wechsel unserer Forensoftware wäre, denke ich, dass ein entsprechender Thread besser hier aufgehoben ist.

Ich selbst schaue mir gerade an, was an Frameworks in Frage käme. Auf meiner Liste stehen momentan Play, Sparks, Stripes und Ninja. Wenn das alles nicht passt, wäre für mich Spring MVC der Plan B. Meine Idee ist, sehr minimalistisch an die Sache heranzugehen (z.B. die GUI erst einmal völlig ungestylt zu lassen), mich auf die Kernfunktionalität zu konzentrieren, diese aber solide umzusetzten. Wenn ich sowas wie einen Prototypen habe, will ich daraus kein Geheimnis machen (also hin und wieder hier berichten und den Code auf GitHub stellen), würde aber vorziehen, erst mal allein daran zu werkeln - wahrscheinlich merke ich bald, dass die Idee leicht größenwahnsinnig ist…

Wenn ich denke, dass ein Gemeinschaftsprojekt Aussicht auf Erfolg haben könnte, würde ich gern mitmachen und mein Privatkrams sein lassen.

Es wäre schön zu hören, was ihr so für Vorstellungen habt oder welche Erfahrungen beim Experimentieren herausgekommen sind, oder über Technologien, Implementierung und Features zu diskutieren.

Trotzdem ist klar, dass jemand mit Projekterfahrung den Hut aufsetzen muss, wenn das etwas werden soll - Diskussionen reichen nicht.

„Ask not what your forum can do for you, ask what you can do for your forum“

[spoiler][/spoiler]

(ach nee, sorry, das war ja die Microsoft-Werbung…)

########################
edit SlaterB: Link auf Quellcode: https://github.com/fjorum/fjorum

Normalsterbliche haben zu dem Forum keinen Zugang :wink:

Sorry, habe ich in dem Moment nicht dran gedacht.

Die Kurzfassung: Es wird ein Nachfolger für vB4 gebraucht, aber da es keine “fertige”, aktiv entwickelte Java-Alternative gibt, wird es wohl eine andere Plattform geben. Da es trotzdem ein gewisses Interesse gab, sich mit dem Thema zu beschäftigen, stellte sich die Frage nach einem separaten Projekt (wofür meiner Meinung nach in diesem Subforum der bessere Platz ist). Natürlich ist allen klar, dass das eine Riesen-Aufgabe ist, aber ich denke, man wird nicht dümmer, wenn man es probiert. Das Problem ist, dass sich bisher niemand mit Projekterfahrung gefunden hat, der das leiten möchte.

Ich würde voll auf das material design und Angular.js setzten - hätte den Vorteil schick zu sein und wäre in gewisser Weise ein Alleinstellungsmerkmal

Spring MVC, Seam, JSF und der ganze Bims, den würde ich am Anfang mal weglassen: völlig irrelevant. Erzeugt nur eine frühe Festlegung auf Dinge, die man am Anfang noch offen lassen kann.

So macht das Arbeiten keinen Spaß: die GUI muss schnellstmöglich schönstmöglich sein - damit die Entwickler bei der Stange bleiben…

Und du brauchst einen Sicherheitsexperten - allein der Task ist ja ganz schön hart.

(Hab’ mal den Verweis zum “bösen Forum” entfernt, und durch einen Link zu dem Forum ersetzt, um das es eigentlich ging - einfach rückgängig machen, wenn das nicht gedacht war … aber die Frage, unter welcher URL die Java-Forum.OrgAnisationsfragen zusammengefasst würden, drängt sich natürlich auf :D)

Ich würde gerne “kleine” Teile beitragen, wenn ich das kann. Da ich aber weder vom “ganz Serverseitigen” noch vom “ganz Clientseitigen” viel Ahnung habe, könnten das wirklich nur kleine Building-Blocks (oder abstrakt-konzeptionelles Gelaber :rolleyes: ) sein - inwieweit tatsächlich (zeitlich) die Möglichkeit besteht, sich da in etwas einzuarbeiten, muss man sehen.

Von der Diskussion zum Wechsel hab ich leider nichts mitbekommen.
Warum soll denn gewechselt werden? Und kommt keine andere (fertige) Forensoftware in Frage?

https://www.invisionpower.com/ ist vom Design her zumindest schonmal ansprechend. Ob es was taugt weiß ich nicht, könnte man sich aber ja mal angucken.

fürs aktuelle Bytewelt-Forum ist vBulletin anscheinend zu alt, braucht alte PHP-Version, wenn ich das richtig verstanden habe,
aber keine Angst, weder dieses Hobby-Projekt hier noch sonst irgendwas ganz exotisches wird (vorerst :wink: ) kommen,

sondern sicher ein allgemein übliches in PHP oder anderes professionelles,

das hier in diesem Thread hat sich nur aus den Überlegungen nebenher ergeben,
langfristig wird es natürlich die Welt erobern, soviel steht schon fest

*** Edit ***

habe ein Nebenthema abgespalten: http://forum.byte-welt.net/byte-welt-projekte-projects/allgemeines-zu-projekten-generals/15216-javabasiertes-forum-schichtenarchitektur.html

aus Postings von dort ein wenig hierher zurück:

SlaterB:
bin interessiert,
deine Framework-Liste klingt für mich abgesehen von Spring aber ziemlich exotisch,

wollte erst noch Seam vorschlagen, auch nur eins von vielen, aber als ich das mal gelesen hatte gefielen mir die Eigenlobe über besonders zurückhaltend neutrale Eigenschaften,
legt nicht so aggressiv alles in Actions, Lifecycle-Beans usw. fest so dass für Wechsel auf andere Frameworks nur schwer Chance besteht,
vielleicht aber auch nur verklärt in der Erinnerung, paar Jahre her, und anscheinend auch keine Updates die letzten Jahre, also wohl schon wieder vorbei…

die Exoten aber ebenso bedenklich, weder ‘Sparks’ für sich noch gar ‘Sparks J2EE’ findet bei google etwas, letzteres bestimmt weil unabhängig von J2EE?
na immerhin: ohne das s am Ende, nur ‘Spark’, wird es schon eher was…

bestimmt für sich eine durchdachte Sache, aber kann man von vielen erwarten genau dieses unter hunderten anderer Ideen zu kennen/ zu lernen/ zu verwenden?
passend zu Kernfunktionalität fände ich auch entweder eines der ganz bekannten Frameworks oder gar J2EE pur, HttpServlet & Co.,
dann wäre es auch als Lernprojekt ganz gut, zumindest die frühen Versionen, man kann es später umstellen

Antwort Landei:

OK, hätte ja auch gleich die Links posten können:

[QUOTE=Landei]Wenn ich denke, dass ein Gemeinschaftsprojekt Aussicht auf Erfolg haben könnte, würde ich gern mitmachen und mein Privatkrams sein lassen.

Es wäre schön zu hören, was ihr so für Vorstellungen habt oder welche Erfahrungen beim Experimentieren herausgekommen sind, oder über Technologien, Implementierung und Features zu diskutieren.

Trotzdem ist klar, dass jemand mit Projekterfahrung den Hut aufsetzen muss, wenn das etwas werden soll - Diskussionen reichen nicht.[/QUOTE]

Hallo, ich hab ja schon mal geschrieben, Forensoftware hat tausende Zeilen Code, zunächst auf Server, dann, was auf Client laufen soll. Ich hab bei mir mal gemessen, für 500 Zeilen sinnvollen Krams - also BL - jetzt unabhängig von der Oberfläche - brauche ich mind. eine Woche. Ich könnte sonst wenn ähnlich wie Marco abstrakt-konzeptionellen Krams beisteuern - also zu langsam. Sry - Interesse besteht aber. Bin neugierig, lese hier weiter.

Ich bin auch ein Fan vom Play und Ninja Framework, aber bisher wenig selbst gecodet. Ich bin hauptberuflich mittlerweile als Sicherheits-Berater tätig und könnte mit verschiedenen Tools Schwachstellen testen wie die OWASP Top 10. Brauche hatl nur die schriftliche Bestätigung des Hosters, dass ich einen Test starten darf. Wird aber eh erst zum Endstadium der Software wichtig.

Ich denke, ich werde erstmal auf Ninja setzen (selbst wenn ich später wechsle, sind DB, POJOs und wahrscheinlich Freemarker-Templates inklusive Bootstrap wiederverwendbar). Ist nicht ganz so spartanisch wie Spark, insbesondere scheint es Unterstützung für Authentifizierung zu geben. Play sieht auch interessant aus, aber das würde ich dann auch in Scala schreiben wollen (was wohl deutlich bequemer ist), und damit potentielle Mitstreiter vergraulen.

Laut Scott Adams (“Dilbert”-Zeichner) gibt es zwei entscheidende Faktoren für den Erfolg eines Projekts:

  • ein toller Projektname
  • Glück

Damit bin ich schon bei 50%, ich habe meinen Prototypen “jAgora” getauft: “Agora” als griechisches Äquivalent (?) zum römischen “Forum”, aber “Jagora” ist auch eine Familie der Meeresschnecken, was wahrscheinlich eine gute Metapher für die Entwicklungsgeschwindigkeit (und hoffentlich nicht für die Performance) sein dürfte. Sobald ich darin - egal wie primitiv - ein Thema anlegen und Beiträge schrieben kann, stelle ich den Code auf GitHub, damit jeder dran rumnörgeln kann.

Darauf hinweis:

JAgora gibt es schon auf Github. Sozialer Feedreader

Oh, vielen Dank, dann suche ich weiter. Nicht dass es mir eines Tages wie Galileo Press ergeht…

Ich glaube wir sollten auch nicht nur javabasierte Foren evaluieren bzw. ein neues entwickeln, wenn es schon Forensoftware gibt wie Discourse. Es würde uns viel Arbeit ersparen.

Ich denke “Arbeit ersparen” ist gar nicht das Ziel, denn Foren SW gibt es wie Sand am Meer.
Denke es ging gerade darum, ein Forum selber zu implementieren, in Java.

um den Betrieb des Forums hier geht es aktuell nicht, separates Hobby-Projekt,
langfristige Aussichten natürlich offen, allerdings gibt es ja auch Wahrscheinlichkeiten :wink:

eine freie beherrschbare Open Source-Variante, zu denen Erweiterungen nicht wegen Rechtefragen versteckt werden müssen, als Vorlage hat natürlich auch für Hobby seinen Reiz,
im klassischen PHP gibt es das ja sicher auch, phpBB? nur eben PHP und vielleicht tausende Dateien Kuddelmuddel

Discourse ist in Ruby? ein Jammer manchmal, dass es so viele Sprachen gibt,
wäre das hier ein Rubyforum/ großer Ruby-Bereich mit Thementitel ‘rubybasiertes Forum [statt PHP]’, dann wohl Volltreffer,

so auch nicht außer acht zu lassen, Ruby-Code mindestens lesbar, vielleicht viel (an Ideen) zu klauen :wink:

obwohl, mit Code wie
[spoiler]

class ListController < ApplicationController
include TopicListResponder
skip_before_filter :check_xhr
@@categories = [
# filtered topics lists
Discourse.filters.map { |f| "category_#{f}".to_sym },
Discourse.filters.map { |f| "category_none_#{f}".to_sym },
Discourse.filters.map { |f| "parent_category_category_#{f}".to_sym },
Discourse.filters.map { |f| "parent_category_category_none_#{f}".to_sym },
# top summaries
:category_top,
:category_none_top,
:parent_category_category_top,
# top pages (ie. with a period)
TopTopic.periods.map { |p| "category_top_#{p}".to_sym },
TopTopic.periods.map { |p| "category_none_top_#{p}".to_sym },
TopTopic.periods.map { |p| "parent_category_category_top_#{p}".to_sym },
# category feeds
:category_feed,
].flatten

[/spoiler]
wird man ohne große Anleitungen, ohne Verfolgen des Gesamtkonzepts sicher nichts anfangen können,
und ob die Einzel-Klasse zum Filtern von Spam mal eben auffindbar ist?..

zum Inhalt einer Klasse, die anscheinend ein Posting darstellt, ist immerhin schon etwas vorstellbar:
[spoiler]

class Post < ActiveRecord::Base
include RateLimiter::OnCreateRecord
include Trashable
include HasCustomFields
# increase this number to force a system wide post rebake
BAKED_VERSION = 1
rate_limit
rate_limit :limit_posts_per_day
belongs_to :user
belongs_to :topic, counter_cache: :posts_count
belongs_to :reply_to_user, class_name: "User"
has_many :post_replies
has_many :replies, through: :post_replies
has_many :post_actions
has_many :topic_links

[/spoiler]


ein kleiner überschauberer Kern mit klaren Ablauf, dazu klare Pluginstrutur, als Lernprojekt nebenher noch geeignet,
das ist auch ein interessanter Punkt für Eigenentwicklung, gute Doku,

wahrscheinlich würde es aber genauso enden wie andere, falls es je genauso umfangreich werden sollte :wink:
nur die die dabei sind behalten Überblick

Ich finde die Idee gut. Ein Perlforum, in dem ich lange aktiv war, hat letztlich auch beschlossen gehabt, dass ein Perlthemen auf einem PHP-Forum nicht wirklich schön zu besprechen sind. Heute läuft das Forum auf der selbstgeschriebenen Perl-Forensoftware.

Das klingt schonmal nach einem interessante Projekt. Eventuell wäre es auch interessant das ganze auf eine NOSQL-DB aufzubauen. Ich würde da am ehesten zu MongoDB tendieren. Damit hab ich schon mehrere Projekte umgesetzt bei denen auch eines dabei ist das der Datenstruktur eines Forums relative ähnlich ist.

auch auf die Gefahr hin, mich hinsichtlich
http://forum.byte-welt.net/byte-welt-projekte-projects/javabased-forum/15216-javabasiertes-forum-schichtenarchitektur.html
zu wiederholen:
wie zur Präsentationsschicht nach oben ist auch zur DB nach unten auf Unabhängigkeit zu achten,
ganz egal ob in DB 1, 2 oder 3 gespeichert oder in TXT/ CSV oder über Netzwerkkommandos an eine niedere sonstige Komponente,
Hauptsache die mittlere Schicht ist davon nicht betroffen :wink:

User, Thread, Posting in simplen Objekten mit simplen Änderungen, nach unten mit save() weitergeleitet, nach oben mit present() weitergeleitet,
ohne weiter darüber nachzudenken, ohne Nebenwirkungen wie Lifecylce, offene Sessions, LazyLoading usw.,

lohnt sich vielleicht nicht komplett durchzuhalten, aber im Auge zu behalten,
welche Art von DB ist dann fast so egal wie welche Art von neuen Style in der Anzeige,
sollte nicht ‘zum Aufbau’ dienen, was immer das so dahingesagt bedeutete, nur allgemeine Anmerkung :wink:

Meinem Projekt habe ich jetzt vorläufig den Projektnamen “fjorum” verpasst. Ist vielleicht nicht der tollste Name, ist aber auf GitHub frei, und fjorum.org gibt es auch nicht.

Ansonsten mache ich Fortschritte. Komme langsam in Freemarker und Bootstrap rein. Das Ninja-Framework ist cool. Hibernate läuft, vorläufig auf hsqldb, mittelfristig denke ich an postgresql. Werde wahrscheinlich das Projekt nochmal neu aufsetzen, um überall das “jagora” rauszubekommen und die Package-Struktur zu ändern (der Ninja-Standard ist völlig “flach”, aber ich will mindestens ein Level haben). Vielleicht sollte ich da gleich zu postgresql wechseln, was meint ihr?

Ansonsten gilt wie angekündigt: Sobald man einen Beitrag schreiben kann, stelle ich das Ding auf GitHub. Die Schätzung Ende März könnte hinkommen. Danach sehe ich folgende Möglichkeiten:

  • allgemeines Desinteresse
  • einige Leute hätten Lust, Patches zu liefern oder zu forken, es bleibt aber mein Privatvergnügen
  • wir machen ein “offizielles” Gemeinschaftsprojekt draus und jemand setzt den Bleihut auf

Warum .org? .de währe besser.
Geht ja nicht um das Forum hier, sondern um ein Projekt. .de is besser, denke ich.