Projektplanung

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Projektplanung

Beitrag von Bebu » So Feb 20, 2011 10:56 pm

So, ich belebe das Projekt Dedupe mal wieder ein bisschen, wie ihr vielleicht an den Mails gesehen habt, war ich wieder mal ein bisschen tätig. Ich habe mich jetzt entschlossen an drei Baustellen gleichzeitig zu Arbeiten, nämlich an der Datenhaltung, am Programmkern, der die Module zusammenarbeiten lässt und einem Comandline-Interface. Das ist schon mal eine ganze Menge und wird wohl auch nicht in ein paar Tagen fertig.

Ich hätte zwei Sonderaufgaben, die ich gerne an andere weiterreichen würde:
1. Hashs ( *auf cloidnerux schiel* ). Muss ein Hash immer komplett neu berechnet werden, oder lässt sich eine veränderte Datei einfacher nachberechen, genaugenommen, wozu dient die AddToHash Funktion?

Ich könnte eine Kapselklasse gebrauchen, der ich nur einen Vector mit FileInfo Objekten übergebe, das selbstständig alle enthaltenen Dateien hasht und die Werte in die FileInfos einträgt und mir per Infofeld im FileInfo Objekt mitteilt, das alles geklappt hat, oder mir auch sagt, was nicht geklappt hat und warum. Anschließend soll einfach der FileStream mit den aktualisierten FileInfos zurückgegeben werden, das alles am besten Call by Reference. Bei Interesse bitte folgende Dateien näher ansehen (Alles in FileSearch zu finden):
- fileinfo.h (FileInfo Klasse; Du bekommst nur die fertige Objekte in einem FileStream Objekt geliefert, um die Konstrukion brauchst du dich nicht zu kümmern)
- searchbase.h ( Enthält das Typedef für Filestream, der Datentyp, den du geliefert bekommst )
- state.h ( Das Enum "InfoHash" ist dazu gedacht Meldungen des Hash-Moduls an den Programmkern weiterzuleiten und kann beliebig erweitert werden )

2. Ein kleines Programm zu schreiben, das per Zufallsgenerator eine kleine Testumgebung für Tests anlegt. Es soll verschiedene Ordner anlegen, innerhalb der Ordner Dateien anlegen, sie mit zufälligen Werten füllen. Zusätzlich sollen die Dateien unterschiedliche Rechte bekommen, vor allem Leserechte sind wichtig. Nötig sind einige Hundert bis tausend Dateien. Jede erzeugte Datei soll in eine Textdatei eingetragen werden, mit Pfad, Dateigröße in Byte, Dateirechten, damit ich eine Kontrolle habe, mit der ich überprüfen kann, ob Dedupe alles richtig einliest. Dazwischen sollen auch viele Dateien nur Kopien von anderen sein, schließlich schreiben wir hier ein Programm, das Dateiduplikate aufspürt. Abschließend muss auch eine Funktion enthalten sein, die alle Dateien auch wieder sauber löscht, ohne andere Dateien auf der Festplatte zu zerstören( WICHTIG!!! Ich habs schon mal geschaft, geht schneller als man denkt.) Geschrieben in C++, Dateiausgabe, jede Dateizeile eine Datei, die Infos je durch ein Leerzeichen getrennt, plattformunabhängig. Ist für einen Anfänger bestimmt eine Herausforderung, aber man lernt eine Menge dabei, also wer auch immer eine Herausforderung sucht, immer ran ;)

Anliegen an den Projektleiter:
1. Bugtracker :P
2. Ich würde gerne noch mal das Thema BOOST Library ansprechen. Die Entwicklung geht ziemlich schleppend vorwärts und ich würde Dedupe gerne irgendwann mal produktiv verwenden, genau wie ein Freund von mir. Nur ich arbeite auf Debian/Ubuntu, er arbeitet auch mit Windows 7. Ich würde gerne den Aufwand für die Portierung reduzieren und BOOST Thread, sowie BOOST Path verwenden. Ich weiß das ist ein Lernprojekt, aber es ist jetzt lange nichts vorwärts gegangen und dann auch noch Code zu portieren, ist ziemlich zäh. Außerdem lässt sich der Code leichter pflegen, wenn nicht viele Teile doppelt implementiert sind. Ich weiß man war hier dagegen, aber ich habe keine Zeit für doppelte Arbeit :?
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: Projektplanung

Beitrag von nouseforname » Mo Feb 21, 2011 6:25 am

Bebu hat geschrieben: 2. Ein kleines Programm zu schreiben, das per Zufallsgenerator eine kleine Testumgebung für Tests anlegt. Es soll verschiedene Ordner anlegen, innerhalb der Ordner Dateien anlegen, sie mit zufälligen Werten füllen. Zusätzlich sollen die Dateien unterschiedliche Rechte bekommen, vor allem Leserechte sind wichtig. Nötig sind einige Hundert bis tausend Dateien. Jede erzeugte Datei soll in eine Textdatei eingetragen werden, mit Pfad, Dateigröße in Byte, Dateirechten, damit ich eine Kontrolle habe, mit der ich überprüfen kann, ob Dedupe alles richtig einliest. Dazwischen sollen auch viele Dateien nur Kopien von anderen sein, schließlich schreiben wir hier ein Programm, das Dateiduplikate aufspürt. Abschließend muss auch eine Funktion enthalten sein, die alle Dateien auch wieder sauber löscht, ohne andere Dateien auf der Festplatte zu zerstören( WICHTIG!!! Ich habs schon mal geschaft, geht schneller als man denkt.) Geschrieben in C++, Dateiausgabe, jede Dateizeile eine Datei, die Infos je durch ein Leerzeichen getrennt, plattformunabhängig. Ist für einen Anfänger bestimmt eine Herausforderung, aber man lernt eine Menge dabei, also wer auch immer eine Herausforderung sucht, immer ran ;)
Klingt interessant, würde ich mich glatt dran versuchen. Wobei ich noch keine Idee im Kopf hätte wie genau das alles geht. Schon garnicht Plattformunabhängig^^. Wenn das ganze mal so 2-4 Wochen Zeit hat probier ich es gerne mal. Ihr wisst ja, Zeit ist Luxus, und Luxus können wir uns nicht leisten. :)

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Projektplanung

Beitrag von Bebu » Mo Feb 21, 2011 1:19 pm

Du bist eingestellt ;) Wenn du Hilfestellung brauchst, dann melde dich ruhig, ich helfe dann im Rahmen meiner Möglichkeiten, genau wie alle anderen hier. Kann nur immer etwas dauern, bin gerade am Umziehen und habe noch kein Internet in der neuen Wohnung. Unser Projektleiter (Xin) wird dir bestimmt auch einen Zugang zum SVN Repository spendieren und dann kannst du deinen Code hochladen und wir können dann ganz leicht einen Blick darauf werfen. Es wird sich für dich lohnen, du wirst eine Menge lernen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Projektplanung

Beitrag von Bebu » Do Feb 24, 2011 7:16 pm

Bebu hat geschrieben: Ich könnte eine Kapselklasse gebrauchen, der ich nur einen Vector mit FileInfo Objekten übergebe, das selbstständig alle enthaltenen Dateien hasht und die Werte in die FileInfos einträgt und mir per Infofeld im FileInfo Objekt mitteilt, das alles geklappt hat, oder mir auch sagt, was nicht geklappt hat und warum. Anschließend soll einfach der FileStream mit den aktualisierten FileInfos zurückgegeben werden, das alles am besten Call by Reference. Bei Interesse bitte folgende Dateien näher ansehen (Alles in FileSearch zu finden):
- fileinfo.h (FileInfo Klasse; Du bekommst nur die fertige Objekte in einem FileStream Objekt geliefert, um die Konstrukion brauchst du dich nicht zu kümmern)
- searchbase.h ( Enthält das Typedef für Filestream, der Datentyp, den du geliefert bekommst )
- state.h ( Das Enum "InfoHash" ist dazu gedacht Meldungen des Hash-Moduls an den Programmkern weiterzuleiten und kann beliebig erweitert werden )
Bebu hat geschrieben: 2. Ich würde gerne noch mal das Thema BOOST Library ansprechen. Die Entwicklung geht ziemlich schleppend vorwärts und ich würde Dedupe gerne irgendwann mal produktiv verwenden, genau wie ein Freund von mir. Nur ich arbeite auf Debian/Ubuntu, er arbeitet auch mit Windows 7. Ich würde gerne den Aufwand für die Portierung reduzieren und BOOST Thread, sowie BOOST Path verwenden. Ich weiß das ist ein Lernprojekt, aber es ist jetzt lange nichts vorwärts gegangen und dann auch noch Code zu portieren, ist ziemlich zäh. Außerdem lässt sich der Code leichter pflegen, wenn nicht viele Teile doppelt implementiert sind. Ich weiß man war hier dagegen, aber ich habe keine Zeit für doppelte Arbeit :?
Putsch ääh Push :P Ein bisschen Feedback wäre nett
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Projektplanung

Beitrag von Xin » Do Feb 24, 2011 8:19 pm

Bebu hat geschrieben:
Bebu hat geschrieben: 2. Ich würde gerne noch mal das Thema BOOST Library ansprechen. Die Entwicklung geht ziemlich schleppend vorwärts und ich würde Dedupe gerne irgendwann mal produktiv verwenden, genau wie ein Freund von mir. Nur ich arbeite auf Debian/Ubuntu, er arbeitet auch mit Windows 7. Ich würde gerne den Aufwand für die Portierung reduzieren und BOOST Thread, sowie BOOST Path verwenden. Ich weiß das ist ein Lernprojekt, aber es ist jetzt lange nichts vorwärts gegangen und dann auch noch Code zu portieren, ist ziemlich zäh. Außerdem lässt sich der Code leichter pflegen, wenn nicht viele Teile doppelt implementiert sind. Ich weiß man war hier dagegen, aber ich habe keine Zeit für doppelte Arbeit :?
Putsch ääh Push :P Ein bisschen Feedback wäre nett
Zu erstens, was an mich ging (Bugtracker), ich versuche Bugzilla bisher leider nicht erfolgreich Bugzilla aufzusetzen.
Eigentlich wollte ich es fertig installieren und das als Antwort liefern.

Zu Boost: Die Argumentation ist nachvollziehbar: Go!
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Projektplanung

Beitrag von Bebu » Mi Mär 16, 2011 12:06 pm

Klopf klopf, bin wieder da, habe jetzt wieder Internet, wenn auch nu per UMTS, aber immerhin.

@nouseforname: Besteht noch Interesse an dem Testmodul?

@Xin: Ich hätte eine Änderung am GUI Inteface, du deklarierst eine Klasse File, die aber im bisherigen Kontext nur teilweise brauchbar ist. Ich würde einfach einen String mit dem Pfad übergeben, bzw. Boost::Path benutzen, den Rest erledigt ja das Fileseach Modul. Kann ich das anpassen, oder hattest du dir dabei was besonderes gedacht?
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Projektplanung

Beitrag von Xin » Mi Mär 16, 2011 12:09 pm

Bebu hat geschrieben:@Xin: Ich hätte eine Änderung am GUI Inteface, du deklarierst eine Klasse File, die aber im bisherigen Kontext nur teilweise brauchbar ist. Ich würde einfach einen String mit dem Pfad übergeben, bzw. Boost::Path benutzen, den Rest erledigt ja das Fileseach Modul. Kann ich das anpassen, oder hattest du dir dabei was besonderes gedacht?
Lass uns heute abend mal skypen (im Idealfall per Sprache).
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Projektplanung

Beitrag von Bebu » Mi Mär 16, 2011 10:04 pm

Ups gerade erst gesehen, ist heute schlecht, bin grade unterwegs und skypen wird bis Montag warten müssen, ich hbe nur zwischendurch immer ein paar Minuten und wollte mit dem Programmkern vornehmen, weil ich zuhause am PC die CLI angefangen habe, aber das schlauerweise nicht ins Repo geladen habe. Jetzt muss ich eine andere Baustelle nehmen :?
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Projektplanung

Beitrag von Bebu » Fr Jul 22, 2011 6:37 am

Abwesenheitsnotiz: Vom 23.07 - 31.07 bin ich nur sehr sporadisch erreichbar.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Projektplanung

Beitrag von Xin » Di Jul 26, 2011 11:35 am

Bebu hat geschrieben:Abwesenheitsnotiz: Vom 23.07 - 31.07 bin ich nur sehr sporadisch erreichbar.
Danach bitte nochmal anskypen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten