Unix-bezogene Ideen für Abiturarbeit

Hallo.
Bald muss ich mit meiner Abiturarbeit beginnen und ich weiss noch nicht genau, was ich machen möchte. Dies war meine ursprüngliche Idee:
Programmierung eines Workgroup-Management-Systems (WMS) in Form eines Products für das CMS Plone
-Was ist der Zweck eines WMS?
In Plone registrierte Benutzer können sich zu Gruppen zusammen tun und einen Shared-Folder eröffnen. Die Rechte an diesem Shared-Folder (S-F) können genau eingestellt werden.
Somit hat jedes Gruppenmitglied permanent Zugriff auf die aktuellen Dateien und kann so sicher sein, immer mit den aktuellsten Datei-Versionen zu arbeiten.
Zudem soll die Kommunikation in einer Arbeitsgruppe vereinfacht werden. Dies wird mit einer Messaging-Lösung erreicht.
Eine Todo-Liste lässt alle Gruppenmitglieder sehen, was noch zu tun ist. Jedes berechtigte Mitglied hat die Möglichkeit, sich ein "Todo" zuzuordnen oder ein neues Todo zu erstellen.
Ein Projekt und die dyazugehörige Arbeitsgruppe soll im WMS wiederspiegelt werden und als zentraler "Knoten", wo alle Informationen zusammenlaufen, dienen.

Ursprünglich wollte ich ein WMS basierend auf einem Linux-Server (Debian) und mit PHP/SQL realisieren. Was mich davon abhält ist, dass ich viele Dinge programmieren müsste (zB Authentifizierung über LDAP-Server, Kalender, Messaging-Lösung) die es schon in bestehenden CMS wie eben Plone oder Joomla oder was auch immer gibt.

Ich habe mich deshalb nun mal mit der Plone-Produkt-Programmierung auseinandergesetzt. Diese Art von Programmieren gefällt mir aber gar nicht, weil man (zumindest in meinen Beispielen) 95% der Zeit dafür verwendet, im Internet und Dokumentationen herauszufinden was für eine bestehende Klasse oder Funktion zur Lösung des Problems führen könnte. Ich habe eigentlich gar nicht selber programmiert, sondern bestehende Dinge verknüpft.
Das möchte ich nicht als Abiturarbeit machen.

Vielleicht hab' ich einen falschen Eindruck von der Plone-Programmierung erhalten, kennt sich da jemand besser aus?

Ich habe vor, mein aus der Abiarbeit entstandenes Produkt unter der GPL kostenlos & open source zu veröffentlichen. Dies, auch wenn meine Arbeit nicht auf dem unter der GPL-stehenden Plone CMS basiert.

Habt ihr vielleicht ganz andere Ideen ? Was findet ihr zu "meiner" Idee (egal ob auf Plone basiert oder nicht).
Falls ihr andere Ideen habt:
Die Idee sollte ohne jeglichen Gebrauch von Windows realisiert werden können, bevorzugte Programmier/Skriptsprachen:
Linux-Shell (bash) :p :p :p
Php/SQL
Perl
C++ / Java

Vielen Dank !!!
Michi
 
Also erstmal ne feine Sache das zu GPLen. Und gut dass du erst überlegst und dann codest, Daumen hoch :D

Nun wäre es gut uns mal zu sagen, welches Niveau so eine "Arbiturarbeit" haben muss, bist du an einem Technik-Gymnasium oder machst du "normalen" Informatik-Unterricht?

Was sind denn deine Interessen sowohl an genutzten Apps als auch bei der Programmierung? Muss es was mit Web zu tun haben? Arbeitest du gerne mit DBs? ....

Sry mit Plone und PHP habe ich leider nix am Hut :rolleyes:
 
Hey!
Danke für deine Antwort!
Ich bin auf einem gewähnlichen Gymnasium mit Schwerpunkt Sprachen, also gar nix mit Informatik. Wir haben auch keinen offiziellen Info-Unterricht, doch bin ich ziemlich im Info-Team integriert und werde vom Administrator der Universität bei der Arbeit betreut.

Das Projekt muss nichts mit Webprogrammierung zu tun haben, doch bevorzuge ich das, weil ich gerne mit DBen arbeite und PHP und SQL beherrsche.

Wie gesagt würde es mich sehr reizen, ein System zu programmieren, das die "reele Arbeit" an einem Projekt, also Meetings, Dateiaustausch mit Memorysticks, Terminplanung mit Agenden usw. auf eine virtuelle Plattform bringt, eben auf eine Art WMS das all diese Dinge verwaltet. Verstehst du wie ich meine?
An rein mathematischen Programmen bin ich nicht sonderlich interessiert. Auf Linux-Ebene interessieren mich auch Firewall, Proxy usw., also sicherheitsspezifische Programme.

Vom Niveau her möcht ich mir das ziemlich hoch stecken. Wie hoch es von der Schule aus sein muss weiss ich auch gar nicht genau, aber es soll nicht sehr schwer sein eine gute Note zu erhalten.

liebe grüsse,
cw
 
Hallo,
bevor wieder einige verwirrt fragen:
In Deutschland heißt das ganze Facharbeit


Also stellt sich die Frage, ob es sich überhaupt lohnt, solch ein System komplett zu schreiben und wie die anderen davon Profitieren.
Ist natürlich eine Frage des Zeitaufwandes, bis alles fertig ist, kann es recht lange dauern, und es kann angehen, dass man genau diese Zeit nicht hat.

Was ich dir Vorschlagen könnte, ist nicht das System als Facharbeits/Abiturthema zu verwenden, sondern den systematischen Weg dahin.
Sprich, du beschreibst in deiner Arbeit, wie man systematisch Software entwickelt, anhand des Beispieles dieses Systems.
Dies fängt ganz einfach bei der Anforderungsanalyse an, geht über Use-Case-Diagramme sowie eventuelles Design (Klassendesign) des Systems.
Wozu benötigt man die Anforderungsanalyse, wie sehen die Anforderungen für dein System aus, was muss das System können/leisten?
Wie helfen Use-Case-Diagramme, entsprechende Klassen zu design? Wie sieht so ein Klassendiagramm aus, wenn es fertig ist? Was sind die Vorteile von Klassendiagrammen?

Diesen Prozess finde ich deutlich intressanter als eine Arbeit über 'Dies ist das System X. Man kann mit System X die Aufgabe Y erfüllen. Dazu klickt man auf den Link Z'.

Und normalerweise wird kein 100% funktionstüchtiges System erwartet, zumindest nicht bei uns, sondern wenn man den Ansatz erkennt und schon ein paar Beispiele zeigen kann, ist das super.
Alles was man dann nicht mehr geschafft hat, führt man unter 'Aussichten' auf ;)
 
ich will nur mal meine Meinung sagen:

ich finde das, was du erläutert hast, hat für eine Abiturarbeit viel zu viel Umfang.
 
Danke, Elderan, für deine Antwort!
Das habe ich mir auch schon überlegt, doch möchte ich nicht nur eine theoretische Arbeit machen. Zudem muss die Arbeit mindestens aus ungefähr einem Drittel Praxis bestehen.
Und eigentlich möchte ich auch am Schluss "etwas haben" und nicht nur "etwas haben, mit dem man etwas herstellen kann". Weiss du wie ich meine? Klar ist eine Gefahr, dass das Ganze ausartet und ich viel zu wenig Zeit habe. Doch werde ich natürlich vor dem Beginn einen genauen Plan machen (einfach nicht soo detailliert wie du oben gesagt hast), so dass dann etwa vielleicht 1/3 theorie und 2/3 praxis ist.

Was denkt ihr zur Frage "auf Plone basiert" oder nicht?
 
Also ich denke auch, dass du da ein wenig hcoh greifst allerdings kennen wir dein Zeitkontigent auch noch nicht. Wenn du PHP magst, dann machst du auch PHP.

Tja Plone ist wie du gesehen hast ein gigantisches Projekt, da muss man erstmal durchsehen...
Es ist aber nicht ungewöhnlich, dass ein Hauptanteil an der Arbeit das suchen/planen ist und das programmieren viel weniger ist. Es ist sicher sehr praxistypisch sich was "fertiges" zu suchenn und das zu erweitern, dass kommt wirklich sehr häufig vor! Ob das Plone doer Joomla oder XYZ ist ist doch erstmal zweitrangig oder?
 
Ja zweitrangig ist es eben "nicht" mehr, weil ich mich bald einmal entscheiden sollte. Also einfach so schnell wie möglich, ich ahbe mich wie gesagt jetzt ziemlich intensiv mit Plone auseinandergesetzt also mit dem gesamtem Aufbau dieses CMS und wie es mit Zope zusammenarbeitet. Vorgestern hab' ich mich dann eben mal die Produkt-Programmierung angeschaut und da hat's mir schnell gereicht. Zum Beispiel verwendet Plone ka eine "eigene Datenbank", also nichts mit SQL oder so, das heisst ich müsste diese Syntax lernen. Genau so wie die Python-Syntax, welche aber kein grosses Problem darstellen sollte. Ich habe einfach ein bisschen Angst, dass ich für dieses Projekt total viele Dinge lerne, die ich später nicht mehr gebrauchen kann (es sei dann ich würde in einer Firma arbeiten die das Plone-CMS vertreibt ;) ). Wenn ich das Projekt mit Sql, php und dahinterliegenden Shell-Skripts mache dann bin ich mir sicherer, dass mir diese Kentnisse auch später noch etwas bringen.
Vielleicht lieg ich total falsch mit dieser Ansicht und übermorgen basieren alle Webseiten auf Plone, aber das glaub' ich ehrlichgesagt nicht.
 
Also eigentlich kann man immer alles gebrauchen was man lernt. Aber ich denke eher dran, dass du dir etwas zu viel aufhalst als das du das Wissen später nicht mehr brauchst...
 
Hm, meinst du...
hättest du (oder jemand anderes) vielleicht völlig andere Ideen als dieses WMS? Wie gesagt interessieren mich auch sicherheitsbezogene Themen (auf unix Basis).
 
Ich finde auch, dass Elderans Lösung die Beste ist. So ist man viel flexibler und hat nicht den Druck, dass am Ende ein "funktionierendes Projekt" auf den Tisch liegen muss. Erlich gesagt ist deswegen meine Facharbeit im Physik Lk in die Hose gegangen. Es fing mit der Idee an so.. und dann kommt eins nach dem anderen:
- neue Formeln lernen
- neues mathematisches Wissen (keine Schulmathematik, weiss immer noch net wie es geht)
-uni liefert die teile nicht usw...
Hätte ich denn Werdegang protukiliert wäre sie gut gewesen aber das finale Produkt war Müll. Überleg dir das gut.
mfg
 
Mir wurde im Rahmen des LK Sport angeboten eine Software zu entwickeln *lol*
Dabei ging es um eine über Beamer in der Sporthalle angezeigte Anzeigetafel. Also natürlich nicht nur der Punktestand etc sonders sollte alles angezeigt werden können was das momentane Spiel betrifft: Spieler, Punktestand, Fouls der Spieler und verschiedene spielspezifische Infos. Das ganze für Basketball, Volleyball, Handball, Fussball.
Ist an sich n interessantes Projekt, nur haben die damals ganz klar den Aufwand überschätzt, da der Sportlehrer einfach keine Ahnung von Programmieren hat :D Hab also dankend abgeleht und meine Facharbeit in Mathe geschrieben ;)
Aber evtl hast du ja Lust sowas in der Art zu schreiben.
 
hej
also jetztes jahr hat bei uns jemand, also 2 leute, genau das selbe entwickelt. die frage ist nur ob das auch wirklich so sinnvoll wäre. das selbe könnte ich mich auch fragen, denn CM-systeme gibt es wie sand am meer und ich hab auch eines entwickelt als abiturarbeit ... ich würde mich, wenn ich noch mal vor der entscheidung stehen würde, für was weitaus ausgefallerened entscheiden. die standard cm systeme bestehen aus dem klassischen LAMP (linux,apache,mysql,php) ... dafür gibt es so viele möglichkeiten. andererseits hätte mich sehr stark etwas im access bereich interessiert, das mit ein lehrer ein jahr davor schon angeboten hatte in zusammenarbeit mit einer firma.

ich gebe dir mal einige vorschläge die bereits bei uns verwirklicht wurden:

o) java webserver unter linux: bedeutet so viel wie den gesamten server auf java aufbauen, mit virtuellen servern, php funktion usw.

o) linux systemverwaltungsprogramm

o) weboberfläche über die mit cgi ein linux system komplett verwaltet werden kann: ist ganz witzig mit root rechten über den webserver und so =), viel spielerei

o) CM-System für eine Firma angepasst mit Joomla! und eigenen Komponenten

ich würde aber sagen dass du dir das projekt nicht zu groß vornimmst, denn ich kann nur aus eigener erfahrung sagen dass ich von anfang an viel mehr realisieren wollte als was dann schlussendlich dabei herauskam.
So ein WMS ist eine geile angelegenheit, aber ich weis dass ich bei meinem projekt alleine mit den kommentaren schon nicht klargekommen bin, denn wenn der lehrer, bei dem du die arbeit schreibst, keine ahnung von einer bibliothek oder sonstigem hat dann muss dass auch sehr gut dokumentiert werden, und schlussendlich musst du über die arbeit wahrscheinlich auch noch eine arbeit schreiben und da wäre ein etwas kleineres projekt vielleicht besser =)
lg
 
Hallo ERit!
Danke für deine Antwort. Vor allem folgende Punkte interessieren mich:
o) linux systemverwaltungsprogramm

o) weboberfläche über die mit cgi ein linux system komplett verwaltet werden kann: ist ganz witzig mit root rechten über den webserver und so fröhlich , viel spielerei

Hättest du mir noch mehr Informationen über diese zwei Projekte? Ist eines von denen auch mal veröffentlicht worden?
Ist der Unterschied zwischen den zwei Punkten nur, dass das zweite Projekt übers Internet läuft und das erste lokal? Was ist genau mit "Systemverwaltungsprogramm" gemeint?
Ich würde mich sehr freuen, wenn du mir etwas mehr Informationen über diese Ideen geben könntest, vielleicht sogar Kontaktmöglichkeiten mit den Programmierern dieser Projekte. (Email-Adressen natürlich per PM)
 
klar dass es diverse programme eigentlich eh schon alle gibt und diese systeme schon alle mal entwickelt wurden, aber man braucht halt ein thema für dieses projekt, und da gibt es viele möglichkeiten.

das systemverwaltungsprogramm war als ram disk gemeint, das heißt ein programm, das in c geschrieben wurde, qt oberfläche und im hintergrund dann mit shellscripten weiterarbeitet. du kannst beliebige systemdateien auswählen, die werden gebackuped und dann per klick wieder hergestellt. so auch mit ganzen ordnern des systems, dass im prinzip nix falsch gemacht werden kann, bei aufwendigen konfigurationen oder so, also passender wäre "linux backupsystem".
ich schick dir mal per pm die 2 addys der entwickler, viell helfen die dir weiter, bzw schicken dir doku und projektmanagement usw.

lg
 
Auf Plone/Zope würde ich an deiner Stelle nicht mehr setzen. Es ist in der Performance recht schlecht und bei weitem nicht so einfach und praktisch wie Django z.B das auch auf Python basiert.

Was genau du mach könntest, hängt von deinem Können auf den von dir genannten Gebieten ab und natürlich deinem Zeitrahmen eventuell solltest du hier nochmal Angaben machen.

Jeder Linux Admin der sich für Sicherheit interessiert wird dir von webmin und co abraten.. und da du dich für Sicherheit interessierst sollte ein derartiges Projekt nicht weiter in Frage kommen.

Um auch noch was produktives zu schreiben hier paar Ideen:

- distributed computing
- IDS/IPS in Zusammenhang mit dynamischen Regeln durch Datamining, KI, SOM usw
- Programm um einen oder mehrere Server inklusive laufender Dienste zu beobachten, dazu Versionsnummern, Updateintervalle usw in Datenbank speichern
- Fuzzing Libary
- Loganalyzer
- kannst ja BluePill für Linux implementieren *g*


Falls du Interesse in Dinge dieser Richtung bzw. diesen Niveaus hast kannst du dich per PM bei mir melden um nähere Details bzw weitere Ideen zu besprechen. Auch wenn du dann Hilfe bei der Umsetzung brauchst. Vorraussetzung wäre dann C/C++.
 
Nun Sag doch mal CenrtalWay, wieviel Zeit hast du denn dafür? Mach lieber ne Nummer kleiner, ansonsten ist man hinterher total fertig. Mir ging es auch schon so, weil man ja totaler Perfektionist ist und dann doch noch neue Sachen kommen wird und wird etwas nciht fertig...
 
Vielen Dank cr für deine Vorschläge!
Ich schreib dir noch ne PM.

Also ich hab von jetzt bis anfang Dezember Zeit. Neben der Schule (30 Lektionen ungefähr) hab ich noch zwei jobs die mich zusammen 14 Stunden kosten.
Die werde ich auf 10 Stunden kürzen und will somit ungefähr 8 - 10 Stunden pro Woche dafür einsetzen. Das gibt *4 etwa 36 Stunden im Monat. Wobei ich an Wochenende mehr Zeit habe und noch ungefähr 3 Wochen Ferien dazu kommen. Im Schnitt werde ich etwa 40 Stunden pro Monat dafür investieren können.
4 * 40 = 160 Stunden bis ende November, am Schluss werdens aber bestimmt noch mehr sein ;)
 
Wue gesagt, mach lieber was kleineres... Du verzettelst dich sonst mit Bugfixes, Erweiterungen, Doku... Da wärst du nicht der erste ;)
 
Zurück
Oben