You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(37) |
Jul
(26) |
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
|---|
|
From: Erik M. <mo...@sc...> - 2002-07-04 22:52:01
|
LgSettings hat nun neue Methoden zum Zugriff auf die Listen und Maps, getIntOption, getBoolOption usw., siehe javadoc. Diese sind synchronisiert. Man kann nun au=DFerdem mit primitiven booleans und ints arbeiten, diese werden vor dem Einf=FCgen in die Maps automatisch konvertiert. Steffen, kannst Du mal in settings/LgSettingsImpl.java gucken, ob ich das mit der Synchronisierung richtig gemacht habe? Ich habe in allen Methoden, die an den Listen/Maps etwas =E4ndern, die entsprechenden Objekte mit synchronized() markiert. Mein Test verwendet immer noch die Listen und Maps, den muss ich dann bei n=E4chster Gelegenheit mal umschreiben. MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Steffen S. <ste...@gm...> - 2002-07-04 16:49:58
|
Ich kann in der UI zwar Ordner und Server hinzufügen und löschen und diese Struktur wird dann auch gespeichert, nur ist jede änderung der Server-Details für die katz und verschwindet sobald ein anderer Server angewählt wird. Ich nehme mal an, daß die GUI einfach noch nicht fertig ist, ansonsten wäre das ein recht schwerwiegender bug der morgen besser nicht auftreten sollte. Weitere Anmerkungen: Der default-server port ist 21, nicht 23 hier bei mir (windows 2000 / jdk 1.4) ist ein dreifachklich auf die elemente im Tree notwendig um diese umzubenennen. Ist das so gedacht? Einen weiteren Knopf dafür fände ich echt praktisch, muß aber nicht bis morgen sein |
|
From: Erik M. <mo...@sc...> - 2002-07-04 16:39:59
|
So, die TransferQueue sollte jetzt laden und speichern k=F6nnen, einen Test habe ich aber noch nicht geschrieben. Als n=E4chstes mache ich die LgSettings fertig, kann aber leider erst um ca. 22:00 damit anfangen. MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Alex J. <lx...@tf...> - 2002-07-02 03:33:46
|
Holla! Wollt' nur kurz Bescheid geben, da=DF es bei mir morgen evtl. etwas = sp=E4ter werden k=F6nnte wg. Job... aLeX ---------- Alex Jasse mailto:lx...@tf... |
|
From: Alex J. <lx...@tf...> - 2002-06-28 01:33:54
|
ist soweit fertig, es gibt noch die eine oder andere Macke bei der Gr=F6=DFenberechnug beim Resume, aber das wird... Gut' Nacht aLeX ---------- Alex Jasse mailto:lx...@tf... |
|
From: Erik M. <mo...@sc...> - 2002-06-25 11:17:56
|
Sind alle mit Donnerstag 16:00 als Termin einverstanden? MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Erik M. <mo...@sc...> - 2002-06-25 11:17:09
|
LgSettings sollte nun funktionieren, also die XML-Daten lesen und committen. Momentan noch ohne DTD, die werde ich heute noch zusammenbasteln. Au=DFerdem gibt der Test im Moment nur die Daten aus, der wird nat=FCrlich noch vervollst=E4ndigt. Als n=E4chstes ist dann endlich Lesen und Schreiben der TransferQueue an der Reihe, das m=F6chte ich bis morgen fertigstellen. Um die BookmarkLibrary k=FCmmert sich Andreas. MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Erik M. <mo...@sc...> - 2002-06-24 23:54:04
|
Am Mon, 2002-06-24 um 18.06 schrieb Steffen Sauder: > Soll nun die vom Benutzer w=E4hlbare Bezeichnung in der Queue gespeichert= =20 > werden, oder der generierte > System-Id-String? Letzteres h=E4tte den Vorteil, das der Benutzer die=20 > Bezeichner jederzeit =E4ndern kann, ohne > das das Programm durcheinander kommt. Ist denke ich am sinnvollsten so. Man wird aber die Strings wohl auch l=F6schen k=F6nnen, so dass eine Verwirrung des Programms nicht v=F6llig ausgeschlossen werden kann ;-) Die BookmarkLibrary + DTD werden entsprechend aktualisiert. MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Andreas D. <dri...@gm...> - 2002-06-24 19:20:05
|
Ich hab ab 16 Uhr VL.... Andreas Martin Wehner wrote: > At 03:17 24.06.2002 +0200, you wrote: > >> OK, kann ich verstehen. An alle: Wie wäre es mit Donnerstag ca. 14:00? >> Dann würden wir am Donnerstag auch direkt testen, ob für die Demo alles >> läuft. > > > Da schreiben Alex & Ich leider Klausur. > Wie wärs mit 16:00 ?? > > Martin > |
|
From: Martin W. <mw...@tf...> - 2002-06-24 17:08:38
|
At 03:17 24.06.2002 +0200, you wrote: >OK, kann ich verstehen. An alle: Wie w=E4re es mit Donnerstag ca. 14:00? >Dann w=FCrden wir am Donnerstag auch direkt testen, ob f=FCr die Demo alles >l=E4uft. Da schreiben Alex & Ich leider Klausur. Wie w=E4rs mit 16:00 ?? Martin [martin.wehner] [berlin.germany] [mw...@tf...] |
|
From: Steffen S. <ste...@gm...> - 2002-06-24 16:07:20
|
Hallo zusammen, wir haben ja gesagt, daß in der Queue zu jeder lokalen URL auch die Info gespeichert werden muß, auf welches OS sich die Pfadangabe bezieht, also von dem OS auf dem der Transfer gestartet wurde. Soll nun die vom Benutzer wählbare Bezeichnung in der Queue gespeichert werden, oder der generierte System-Id-String? Letzteres hätte den Vorteil, das der Benutzer die Bezeichner jederzeit ändern kann, ohne das das Programm durcheinander kommt. Wenn nun eine solche lokale URL mit Systemkennung von der TransferQueue aufgelöst werden soll, wird dazu eine neue Methode in LgApplication bereitstehen: LgDirectoryEntry createLocalDirectoryEntry(String i_URL, String i_systemIdString). Diese versucht dann die URL die sich auf das übergebene System bezieht, für das aktuelle laufende System aufzulösen. irgendwelche Einwände? Bei der BookmarkLibrary sollte ebenfalls für das lokale Verzeichnis die Info mitgespeichert werden, auf welches System sich der Pfadname bezieht, sonst könnte man dort diese Art der Auflösung nicht benutzen. Gruß, Steffen |
|
From: Erik M. <mo...@sc...> - 2002-06-24 01:15:17
|
Am Son, 2002-06-23 um 23.45 schrieb Steffen Sauder: > so wenig ich mich eigentlich f=FCr Fu=DFball begeistere, am Dienstag w=FC= rde=20 > ich halt doch gern zuschauen > und da=DF ist ja leider genau zu unserem Termin. Da ich mir daf=FCr gerne= =20 > einen sch=F6neren Ort als > die TFH aussuchen w=FCrde, w=FCrde ich ein Verschieben vorschlagen.=20 > Jeglicher Termin au=DFer Mittwochs > um die selbe Zeit w=E4re mir recht. OK, kann ich verstehen. An alle: Wie w=E4re es mit Donnerstag ca. 14:00? Dann w=FCrden wir am Donnerstag auch direkt testen, ob f=FCr die Demo alles l=E4uft. > Zur Fertigstellung des FileSystems (Dircectory Mapping) br=E4uchte ich nu= n=20 > die LgSettings. > Erik, wenn du die Interfaces schon ge=E4ndert hast dann comitte sie bitte= =20 > schnell, wenn nicht > dann sag bescheid wie weit du bist, und welche Teile wir als endg=FCltig=20 > ansehen und verwenden > k=F6nnen. Du kannst die getter f=FCr die Maps und Listen in LgSettings auf jeden Fall als endg=FCltig ansehen. Zus=E4tzlich baue ich noch logische Methoden ein, wenn Du mir sagst, welche Du gerne h=E4ttest. Ich habe gerade den Namen der getAliasList Methode in getSystemStringList ge=E4ndert, aber ansonsten wird das so bleiben. Ich bin dabei, die Aufrufrichtung zu =E4ndern, die betrifft Dich ja aber nicht, da es alles bei open() der LgSettings gemacht wird. > Wenn du zu viel mit dem XML-Kram zu tun hast, dann w=FCrde ich=20 > morgen die LgSettings > zusammenbasteln Nicht n=F6tig, das mache ich schon fertig. Sag mir einfach, welche Methoden Du noch haben willst. MfG EM=D6=20 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Erik M. <mo...@sc...> - 2002-06-23 23:54:50
|
Am Son, 2002-06-23 um 19.38 schrieb Steffen Sauder: > so ich wollte gerade mit dem Verzeichnismapping anfangen und habe ein=20 > paar fragen zu LgSystemID. >=20 > Als Identifizierungs-String habe ich erstmal=20 > "rechnername/cpu-typ/os-name/os-version" genommen, > irgendeiner irgendwelche Erg=E4nzungs-/Verbesserungsw=FCnsche? >=20 > In der Klasse LgSystemID befindet sich ein getName() und setName(),=20 > bezieht sich das auf oben > genannten Identifizierungs-String oder ist damit ein vom Benutzer=20 > w=E4hlbarer Text gemeint? >=20 > F=E4nde ich eigentlich sinnvoll, dann k=F6nnte man in der Liste die man m= it=20 > getAliasList() erh=E4lt dann > den/die wie oben erkl=E4rt konstruierten Identifizierungs-Strings=20 > speichern. Dann w=E4re > allerdings getIdStringsList() ein besserer Name. Hallo Steffen, der Name ist wie Du richtig schreibst ein vom Benutzer gew=E4hlter, die "Aliases" sind die zusammengesetzten System-Bezeichnungen, soll hei=DFen: Das System tritt unter diesen Bezeichnungen auf. Wie w=E4re es als Name f=FCr die Liste statt dessen mit getSystemStringsList()? MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Steffen S. <ste...@gm...> - 2002-06-23 21:45:56
|
Hallo zusammen, so wenig ich mich eigentlich für Fußball begeistere, am Dienstag würde ich halt doch gern zuschauen und daß ist ja leider genau zu unserem Termin. Da ich mir dafür gerne einen schöneren Ort als die TFH aussuchen würde, würde ich ein Verschieben vorschlagen. Jeglicher Termin außer Mittwochs um die selbe Zeit wäre mir recht. Zur Fertigstellung des FileSystems (Dircectory Mapping) bräuchte ich nun die LgSettings. Erik, wenn du die Interfaces schon geändert hast dann comitte sie bitte schnell, wenn nicht dann sag bescheid wie weit du bist, und welche Teile wir als endgültig ansehen und verwenden können. Wenn du zu viel mit dem XML-Kram zu tun hast, dann würde ich morgen die LgSettings zusammenbasteln (du müßtest dann nur die getter für die Listen und Maps in die DbSettings packen und dort genau das machen was du in den LgSettings geplant hattest, nämlich die aus dem xml-file generierten maps und listen mit gettern bereit stellen) ich würde dann in LgSettings die setter und getter für die Optionen reinstecken wie am Freitag besprochen und außerdem die Operationen die ich für die Text-Extensions und das Directory Mapping gerne haben würde. gruß Steffen |
|
From: Steffen S. <ste...@gm...> - 2002-06-23 17:39:06
|
so ich wollte gerade mit dem Verzeichnismapping anfangen und habe ein paar fragen zu LgSystemID. Als Identifizierungs-String habe ich erstmal "rechnername/cpu-typ/os-name/os-version" genommen, irgendeiner irgendwelche Ergänzungs-/Verbesserungswünsche? In der Klasse LgSystemID befindet sich ein getName() und setName(), bezieht sich das auf oben genannten Identifizierungs-String oder ist damit ein vom Benutzer wählbarer Text gemeint? Fände ich eigentlich sinnvoll, dann könnte man in der Liste die man mit getAliasList() erhält dann den/die wie oben erklärt konstruierten Identifizierungs-Strings speichern. Dann wäre allerdings getIdStringsList() ein besserer Name. gruß, Steffen |
|
From: Steffen S. <ste...@gm...> - 2002-06-21 10:24:29
|
Erik Moeller wrote:
>Am Fre, 2002-06-21 um 01.21 schrieb Steffen Sauder:
>
>
>
>>Die unteren Schichten sollten die darüber nicht kennen
>>(->3-Schichten-Modell). Wenn sie
>>es doch tun müssen, dann aber bitte heimlich und nicht noch in den
>>Kommentaren mit
>>den Fingern draufzeigen ;). Besser wäre auch hier wenn sich die
>>LgSchicht die Werte aus
>>der DbSchicht mit gettern holt, und wenn nötig mit Observer Pattern dazu
>>aufgerufen wird.
>>
>>
>
>Die Db-Schicht muss zwar auf das Lg-Objekt zugreifen, aber sie braucht
>eigentlich die setter zum Zuweisen der Listen nicht, wenn die Lg-Schicht
>leere Standardlisten verwendet.
>
Statt leere Standardlisten zu verwenden müsste das Lg-Settings objekt
beim Initiliaisieren
einfach das Db-Settings-Objekt erzeugen und sich von ihm genau jene
Listen holen, die du
mit den settern übergeben wolltest
> Ich meine, es ist aber wenig logisch,
>elementare Datenhaltungsobjekte wie Maps und Listen unbedingt in die
>Db-Schicht zu stecken.
>
richtig, ich meinte auch nicht daß alle Werte aus der Db-Schicht
gehalten werden holen sollen,
nur sollte die Entnahme der Listen und Maps aus der Db-Schicht(zu Beginn
oder beim Rollback) von
den LgSettings ausgehen mit (z.B. dbSettings.getStringOptionMap()) und
nicht andersherum
>Der urpsrüngliche Aufruf, der dazu führt, dass die Db-Schicht die
>Lg-Schicht bedient, geht aber von der Lg-Schicht an die Db-Schicht
>(open).
>
wenn dieser open Befehl sich die aktuellen Einstellungen aus den
Db-Settings holt,
wozu denn dann noch die Setter?
>>2. Die typsicheren Maps und Listen sind zwar eine feine Sache, aber
>>irgendwie schöner
>>wäre es doch, die Implementierung als Listen und Maps nicht nach außen
>>preiszugeben,
>>sondern stattdessen nur Methoden zum logischen Zugriff ohne Hinweis auf die
>>verwendete Implementierung bereitzustellen
>>
>>
>>
>Hm, komplett verpacken werde ich die Listen wohl nicht, da man dann
>wieder viele Methoden verbergen müsste (keys(), values() usw.).
>
Wer braucht außerhalb der Klasse diese Methoden? Und sind die Listen
threadsicher, oder muß sich
der Benutzer selber um die Synchronization kümmern? wenn ich zum Beispiel
alle TextFileExtensions durchlaufen will (z.B. um sie in der Gui
anzuzeigen)., müsste ich jetzt so vorgehen):
String_List fileExtensionList =
ftraq.Main.getLgApplication().getSettings().getTextExtensionList();
// um zu verhindern, daß bei gleichzeitiger Änderung der Liste durch
// einen anderen Thread eine ConcurrentModificationException
ausgelöst wird
synchronized(fileExtensionList) {
String_List.Iterator it = fileExtensionList.listIterator();
while (it.hasNext()) {
String fileExtension = it.next();
doSomethingWith(fileExtension);
}
}
Übersichtlicher wäre doch etwas wie hier:
String[] textExtensions =
ftraq.Main.getLgApplication().getSettings().getAllTextExtensions[];
for (int i=0; i<textExtensions.length; i++) {
doSomethingWith(textExtensions[i]);
}
Genauso fände ich es praktischer anstatt an vielen Stellen immer die
gleiche Zeile
if
(fileExtensionList.contains(fileNameToTest.substring(fileNameToTest.lastIndexOf('.')+1).toLowerCase())
{ doKram() }
zu schreiben, stattdessen eine ausgelagerte Funktion zu haben:
if (lgSettings().hasFileNameTextFileExtension(fileNameToTest)) {doKram() }
Neben diesen Funktionen bräuchte ich nur noch add- und
removeTextFileExtension(String i_extension).
Auf alle anderen Funktionen der Liste kann ich verzichten.
> Gerade
>das mit dem Null-Pointer kann man ja auch in der Liste als Exc
>realisieren.
>
richtig.
>Da wo es Sinn macht, kann man aber noch abgeprüfte Methoden
>hinzufügen. Der Nutzer kann dan halt immer auch die unsicheren
>verwenden.
>
wie gesagt, da wo es nicht benötigt wird, fände ich es sinnvoller die
Listen und Maps
in LgSettings zu verstecken, unteranderem wegen des Problems des
gleichzeitigen
Zugriffs von mehreren Threads. Wie würde zum Beispiel die Db-Schicht
reagieren
wenn während eines commits von zweit Threads gleichzeitig neue Elemente in
die Listen und Maps der Logikschicht eingetragen werden? Eine Sperrung der
Daten während des commits ist meiner Meinung nach am einfachsten möglich,
wenn jeder Veränderung der Daten nur über eigens dafür gedachte Methoden
in LgSettings passiert, die die Kontrolle über die Synchronization des
Zugriffs auf
die Maps und Listen haben.
gruß
Steffen
|
|
From: Erik M. <mo...@sc...> - 2002-06-21 08:21:12
|
Am Fre, 2002-06-21 um 01.21 schrieb Steffen Sauder: > Die unteren Schichten sollten die dar=FCber nicht kennen=20 > (->3-Schichten-Modell). Wenn sie > es doch tun m=FCssen, dann aber bitte heimlich und nicht noch in den=20 > Kommentaren mit > den Fingern draufzeigen ;). Besser w=E4re auch hier wenn sich die=20 > LgSchicht die Werte aus > der DbSchicht mit gettern holt, und wenn n=F6tig mit Observer Pattern daz= u=20 > aufgerufen wird. Die Db-Schicht muss zwar auf das Lg-Objekt zugreifen, aber sie braucht eigentlich die setter zum Zuweisen der Listen nicht, wenn die Lg-Schicht leere Standardlisten verwendet. Ich meine, es ist aber wenig logisch, elementare Datenhaltungsobjekte wie Maps und Listen unbedingt in die Db-Schicht zu stecken. Dann m=FCsste auch das FileSystem eine Db-Schicht haben nur f=FCr den Fall, dass man es u.U. mal serialisieren wollte ..=20 Der urpsr=FCngliche Aufruf, der dazu f=FChrt, dass die Db-Schicht die Lg-Schicht bedient, geht aber von der Lg-Schicht an die Db-Schicht (open). > 2. Die typsicheren Maps und Listen sind zwar eine feine Sache, aber=20 > irgendwie sch=F6ner > w=E4re es doch, die Implementierung als Listen und Maps nicht nach au=DFe= n=20 > preiszugeben, > sondern stattdessen nur Methoden zum logischen Zugriff ohne Hinweis auf d= ie > verwendete Implementierung bereitzustellen >=20 > z.B. > void setIntegerOption(String i_name, int i_value); > int getIntegerOption(String i_name); >=20 > boolean doesFileNameHaveTextFileExtension(String i_fileName); > void addTextFileExtension(String i_extension); > void removeTextFileExtension(String i_extension); >=20 > String getMappedDirectoryName(LgSystemID i_theSystemOfThePathName,=20 > String i_thePathName, LgSystemID i_theCurrentlyRunningSystem); > void addNewMapping(LgSystemID i_firstSystem, String=20 > i_pathNameOnFirstSystem, LgSystemID i_secondSystem, String=20 > i_pathNameOnSecondSystem); Hm, komplett verpacken werde ich die Listen wohl nicht, da man dann wieder viele Methoden verbergen m=FCsste (keys(), values() usw.). Gerade das mit dem Null-Pointer kann man ja auch in der Liste als Exc realisieren. Da wo es Sinn macht, kann man aber noch abgepr=FCfte Methoden hinzuf=FCgen. Der Nutzer kann dan halt immer auch die unsicheren verwenden. MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Alex J. <lx...@tf...> - 2002-06-21 02:06:16
|
n'abend.. Hmm, also (leider)wie angek=FCndigt: TransferQueue sollte prinzipiell (ohne Db-Schicht) laufen, is' aber noch kein St=FCck getestet, von daher w=FCrd' ich mich ger aus dem Voerzeigen raushalten und das auf n=E4chste Woche verschieben.. aLeX ---------- Alex Jasse mailto:lx...@tf... |
|
From: Andreas D. <dri...@gm...> - 2002-06-21 00:11:32
|
> > > morgen um 2 treffen und abmachen wer was vorzeigen will? Oh backe, ich dachte wenigstens die erste Halbzeit sehen zu können. Reicht nicht auch 2:15 Uhr?? Gruß, Andreas PS: Also ohne vernünftiges Composite-Pattern in der Db-Schicht der Library wird die Lg-Schicht nix bis morgen.. |
|
From: Steffen S. <ste...@gm...> - 2002-06-20 23:22:35
|
Erik Moeller wrote:
>So,
>
>ich habe jetzt mal die Settnigs-Interfaces eingecheckt. Wer immer
>irgendwelche Konfig.-Parameter abfragen will, sollte sich über
>LgApplication mit getSettings das Objekt holen und kann dann mit den
>Methoden aus dem Interface die einzelnen Parameter abfragen (siehe
>Javadoc).
>
Ein bischen spät, ich weiß aber ich habe heute genug mit dem Streams und
Sockets rumgekrampft
um das abbrechen und resumen sauber hinzukriegen daß ich mir die
Settings erst jetzt richtig
angeschaut habe. Zwei Sachen gefallen mir mittlerweile aber nicht so
1. hier (und woanders nochmal)
/**
* assign the directory map list we want to use - this method is
* used by the database layer.
*
* @param i_list the list that we want to use.
*
*/
void setDirectoryMapList(ftraq.util.LgDirectoryMap_List i_list);
Die unteren Schichten sollten die darüber nicht kennen
(->3-Schichten-Modell). Wenn sie
es doch tun müssen, dann aber bitte heimlich und nicht noch in den
Kommentaren mit
den Fingern draufzeigen ;). Besser wäre auch hier wenn sich die
LgSchicht die Werte aus
der DbSchicht mit gettern holt, und wenn nötig mit Observer Pattern dazu
aufgerufen wird.
2. Die typsicheren Maps und Listen sind zwar eine feine Sache, aber
irgendwie schöner
wäre es doch, die Implementierung als Listen und Maps nicht nach außen
preiszugeben,
sondern stattdessen nur Methoden zum logischen Zugriff ohne Hinweis auf die
verwendete Implementierung bereitzustellen
z.B.
void setIntegerOption(String i_name, int i_value);
int getIntegerOption(String i_name);
boolean doesFileNameHaveTextFileExtension(String i_fileName);
void addTextFileExtension(String i_extension);
void removeTextFileExtension(String i_extension);
String getMappedDirectoryName(LgSystemID i_theSystemOfThePathName,
String i_thePathName, LgSystemID i_theCurrentlyRunningSystem);
void addNewMapping(LgSystemID i_firstSystem, String
i_pathNameOnFirstSystem, LgSystemID i_secondSystem, String
i_pathNameOnSecondSystem);
dann könnte man auch außerdem Gültigkeitsprüfungen in der Klasse
LgSettings durchführen
denn da gehören sie meiner Meinung nach hin, so finde ich es z.B. bei
der Verwendung von Maps
sehr häßlich daß sie bei nicht vorhandenen Elementen null pointer
herausgeben.
>
>Wenn Ihr Änderungen wollt, meldet Euch bitte möglichst bald, damit ich
>bei der Implementierung weniger Arbeit habe.
>
>
Ich hoffe das war nicht zu spät, aber ich hatte schon ohne das Laufwerks
Mapping genug Probleme mit dem FileSystem, und hatte
deswegen zuerst nur einen kurzen Blick auf die eingecheckten Dateien
geworfen und mir dabei nur das util und db paket angesehen.
gruß,
Steffen
morgen um 2 treffen und abmachen wer was vorzeigen will?
|
|
From: Andreas D. <dri...@gm...> - 2002-06-20 20:57:18
|
Hi Erik, wie fügt man einem Bookmark-Folder ein bereits existierendes Objekt (Item oder Folder) hinzu? mfG Andreas Erik Moeller wrote: >Ursprünglich war das Ganze ja mit Konstruktoren gelöst. Das geht aber >nicht, weil ein Folder beim Hinzufügen eines Bookmark-Entries dessen >_element seinem eigenen _element hinzufügen muss. In der alten Impl. hat >er das in der add()-Methode mit getElement() auch getan, da wir aber die >JDOM-Sachen komplett aus dem Interface verbannt haben, kann er das nun >nicht mehr. Deshalb gibt es in der Impl einen Konstruktor, der ein >Element als Parameter schluckt und dieses zuweist. Der Folder erzeugt >deshalb zuerst ein Element, dann eine Impl mit dem Element als >Parameter, dann fügt er das erzeugte Element seinem eigenen hinzu. Die >add()-Methode kann man sich folglich sparen. In gewissem Sinne ist es >auch logischer, da Du nie einen Entry ohne Folder anlegst. > >Hier zeigt sich ganz gut, wie kompliziert die Lösung mit dem ständigen >Zugriff auf das DOM ist. Deshalb werde ich das bei den anderen >Implementierungen auch nicht mehr so machen. Da kann man dann neue Items >einfach mit new anlegen. > >MfG >EMÖ > > |
|
From: Steffen S. <ste...@gm...> - 2002-06-20 13:10:51
|
Erik Moeller wrote: >Am Don, 2002-06-20 um 11.33 schrieb Steffen Sauder: > > >>Nach langen Überlegungen und nochmaligem Überschlafen bin ich zu dem >>Schluß gekommen, >>daß sich ASCII-Transfers nicht vernünftig vernünftig resumen lassen. >> >> >> > >Wollten wir es nicht so machen, dass wir in der Queue statt der >transferredBytes die readBytes vom Server speichern, also die Zahl der >übertragenen Bytes *vor* der Konvertierung? Dann könnte man doch einfach >an dieser Position weitermachen. > ich habs wohl blöd erklärt. das problem ist nicht die konvertierung die wir durchführen, sondern die, die der server macht. wenn eine Datei auf einem UNIX server z.B. 100 bytes groß ist, dann liefert der server z.B. 110 bytes, weil zehn LFs von ihm hinzugefügt worden. Brechen wir nun nach 50 gelesenen bytes ab(die wiederum 50 oder weniger bytes auf der lokalen platte beanspruchen, aber wir nehmen ja wie du richtig gesagt hastdie info der übertragenenen bytes), und nehmen den transfer bei Byte 50 wieder auf, so erhalten wir das 50.te Byte, auf der Server-Platte, da die 50 übertragenen Bytes beispielsweise aber nur die Information der ersten 45 Bytes auf der Server-Platte enthalten (da er vorher 5 LFS hinzugefügt hat) fehlen uns damit die bytes 45-49. Leider können wir vorher nicht feststellen, ob der Server die Bytes auf siner Platte im UNIX-Format speichert oder nicht, so daß wir nicht einfach generell die Anzahl der vorher eingefügten Linefeeds von der gewünschten Resume-Position abziehen können >Damit man dann bei unterschiedlicher >Größe noch feststellen kann, ob ein Resume möglich ist, würde man dann >0-100 Bytes zurückgehen und einfach nur auf Identität prüfen, wobei die >Bytes vom Server bei dem Vergleich einmal durch die >LF-Konvertierungs-Funktion gejagt werden müssten -- wenn kein LF drin >ist, ist es auch kein Problem, wir gehen davon aus, dass die >übertragenen Bytes korrekt konvertiert wurden. > > Naürlich geht das, allerdings wäre es bei sich Texten mit vielen wiederholenden Zeilen (ich denke da z.B. an lange logfiles) eine sehr unsiche Entscheidung zu sagen, daß nur weil 100 Zeichen gleich waren, man wirklich die richtige Stelle im Dokumente gefunden hat. Auch bei steigender Zahl der zu vergleichenden Zeichen geht die Wahrscheinlichkeit, das man die richtige Stelle gefunden hat zwar gegen 1- aber sicher sein kann man trotzdem nur wenn man alles liest. >In der Ebook-Szene wäre ein solcher Resume sicher nett, da werden oft >600K-Textfiles übertragen. Wenn es zuviel Aufwand ist, würde ich es aber >erstmal unter "nice to have" abhaken. > Jo ich verschiebe es erstmal nach hinten, kämpfe gerade mit einigen Problemen beim Abbrechen von Transfers. Steffen |
|
From: Erik M. <mo...@sc...> - 2002-06-20 12:47:20
|
Am Don, 2002-06-20 um 11.33 schrieb Steffen Sauder: > Nach langen =DCberlegungen und nochmaligem =DCberschlafen bin ich zu dem=20 > Schlu=DF gekommen, > da=DF sich ASCII-Transfers nicht vern=FCnftig vern=FCnftig resumen lasse= n. >=20 Wollten wir es nicht so machen, dass wir in der Queue statt der transferredBytes die readBytes vom Server speichern, also die Zahl der =FCbertragenen Bytes *vor* der Konvertierung? Dann k=F6nnte man doch einfac= h an dieser Position weitermachen. Damit man dann bei unterschiedlicher Gr=F6=DFe noch feststellen kann, ob ein Resume m=F6glich ist, w=FCrde man d= ann 0-100 Bytes zur=FCckgehen und einfach nur auf Identit=E4t pr=FCfen, wobei d= ie Bytes vom Server bei dem Vergleich einmal durch die LF-Konvertierungs-Funktion gejagt werden m=FCssten -- wenn kein LF drin ist, ist es auch kein Problem, wir gehen davon aus, dass die =FCbertragenen Bytes korrekt konvertiert wurden. In der Ebook-Szene w=E4re ein solcher Resume sicher nett, da werden oft 600K-Textfiles =FCbertragen. Wenn es zuviel Aufwand ist, w=FCrde ich es abe= r erstmal unter "nice to have" abhaken. MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |
|
From: Steffen S. <ste...@gm...> - 2002-06-20 09:33:46
|
Nach langen Überlegungen und nochmaligem Überschlafen bin ich zu dem Schluß gekommen, daß sich ASCII-Transfers nicht vernünftig vernünftig resumen lassen. Da die Anzahl der bereits übertragenen Bytes im ASCII-Modus größer sein kann als die vom FTP-Server berichtete größe, steht man vor dem Problem, daß wenn man z.B. 5000 bytes vorher übertragen hatte, nun nicht einfach bei byte 5000 weiter machen kann, sondern x bytes davor, wobei x die Anzahl der zuvor vom Server mitgesendeten LFs sind. Wenn man nun diese Zahl nicht extra irgendwo abspeichern will, bleibt einem nichts anderes als auf Verfacht ein paar hundert/tausend bytes vorher anzufangen und die empfangenen Zeilen mit den bereits existierenden zu vergleichen bis man eine gewisse Anzahl von Übereinstimmungen gefunden hat. Da dies bei Text-Dateien mit vielen wiederholenden Zeilen natürlich ein reines Glücksspiel wäre, müßte man die Zahl der überlappenden Zeilen sehr hoch einstellen, und auch dann keine hundertprozentige Richtigkeitsgarantie erhalten, sondern nur dann wenn man alle Zeilen vergleicht und dann kan man auch gleich komplett neu laden. Allerdings glaube ich, daß ein Verzeicht auf das Resumen bei ASCII-Transfers nicht so tragisch wäre, da Text-Dateien größeren Umfangs ja normalerweise nicht ungepackt auf dem Server herumliegen. Wenn ihr ne Idee habt wie man es doch machen könnte, dann sagt bescheid, aber erstmal lasse ich das Resumen der ASCII-Transfers weg. gruß Steffen |
|
From: Erik M. <mo...@sc...> - 2002-06-20 09:15:28
|
Urspr=FCnglich war das Ganze ja mit Konstruktoren gel=F6st. Das geht aber nicht, weil ein Folder beim Hinzuf=FCgen eines Bookmark-Entries dessen _element seinem eigenen _element hinzuf=FCgen muss. In der alten Impl. hat er das in der add()-Methode mit getElement() auch getan, da wir aber die JDOM-Sachen komplett aus dem Interface verbannt haben, kann er das nun nicht mehr. Deshalb gibt es in der Impl einen Konstruktor, der ein Element als Parameter schluckt und dieses zuweist. Der Folder erzeugt deshalb zuerst ein Element, dann eine Impl mit dem Element als Parameter, dann f=FCgt er das erzeugte Element seinem eigenen hinzu. Die add()-Methode kann man sich folglich sparen. In gewissem Sinne ist es auch logischer, da Du nie einen Entry ohne Folder anlegst. Hier zeigt sich ganz gut, wie kompliziert die L=F6sung mit dem st=E4ndigen Zugriff auf das DOM ist. Deshalb werde ich das bei den anderen Implementierungen auch nicht mehr so machen. Da kann man dann neue Items einfach mit new anlegen. MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |