CSV-Datei-Filterkomponente - Umstellung des Formates

Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von Sheldon2012 »

Hallo,

mit der Version 1.1.5.0 der CSV-Datei-Filterkomponente wird ein erweitertes Format für die CSV-Datei eingeführt. Das einfache Format wird zwar weiterhin unterstützt, aber langfristig ist geplant, das einfache Format vollständig durch das erweiterte zu ersetzen. Um den geeigneten Zeitpunkt für die Einstellung der Unterstützung des einfachen Formates zu finden, wäre es hilfreich, zu wissen, wieviele Nutzer bereits auf das neue Format umgestellt haben. Hier können alle, die das Format bereits umgestellt haben, eine kurze Nachricht hinterlassen. Die Anzahl dieser Nachrichten kann dann leicht mit der aktuellen Anzahl der Downloads abgeglichen werden.

Natürlich wird die Einstellung des einfachen Formates rechtzeitig kommuniziert.

Vorab vielen Dank für Eure Nachrichten!

Gruß

Sheldon
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von ds10 »

Da kannst du wohl lange drauf warten, die wenigsten Nutzer sehen sich im Forum um. Deshalb (und allgemein) ist es besser das Format immer abwärtskompatibel zu lassen, ist doch auch nicht wirklich schwer, eine kleine if-else-Abfrage zu machen, welches nun benutzt wird. Zumal auch die Eingabe einfacher ist, wenn man nicht x Semikolons schreiben muss, wenn man sie gar nicht braucht.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von Sheldon2012 »

Das hatte ich mir schon gedacht! Darum habe ich dieses Thema im Wiki verlinkt. Da muß man ja schon mal nachschauen, um zu verstehen, wie das so funktionieren soll.

Prinzipiell könnte man das einfache Format natürlich beibehalten. Aber eigentlich ist es nicht sinnvoll, 2 Formate zu unterstützen. Falls das natürlich gewünscht wird, kann man nochmal darüber nachdenken.

Darüber hinaus ist das einfache Format vollständig in das erweiterte integriert. Die Umstellung dauert ca. 1 Minute.
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von ds10 »

Auch ins Handbuch wird man nicht mehr sehen, wenn es bereits funktioniert. Wenn du das alte Format entfernst, funktioniert es dann plötzlich nicht mehr und dann fragt man sich warum.

Du hast bei deinen Überlegungen das Ganze nur aus Programmiersicht betrachtet, du möchtest möglichst einfachen Quellcode, dafür machst du dir massiv Arbeit mit einer langen Beschreibung im Handbuch, welche Formate es gibt und wie man vom alten, am Besten, auf das neue umstellt.

Das neue Format hat für den Nutzer aber gar keinen Vorteil, wenn er nur Sendungs- und Episodentitel verwenden möchte. In dem Fall ist dann die Eingabe sogar viel komplizierter als vorher, denn sechs Semikolons abzuzählen ist, im Verhältnis zum Schreiben eines einzelnen Semikolons, viel aufwändiger und anfälliger für Fehleingaben (nicht alle kommen überhaupt auf die Idee, die Semikolons von einem vorhandenen Eintrag zu kopieren).

Du könntest es im Gegensatz dazu dem Nutzer sogar einfacher machen, kein Semikolon=nur Sendungstitel, ein Semikolon=Sendungs- und Episodentitel, usw. Die Unterscheidung im Quellcode ist geradezu lächerlich einfach, ein line.split(";"); liefert dir ein Array, mit genau der Länge der Anzahl der Semikolons plus 1 und allen Einträgen einer Zeile. Die Länge des Arrays lässt sich dann auch sehr simpel mit array.length auslesen und damit kann dann die Fallunterscheidung gemacht werden.

Es ist einfach kein guter Stil, das bisherige Datenformat einfach nicht mehr zu unterstützen. Dafür bräuchte es schon gewichtigere Gründe als einfachere Programmierung.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von Sheldon2012 »

Genau so sind die beiden Formate ja implementiert. Die Länge des Arrays ist entweder 2 oder 7.

Der Grund für die Umstellung ist weniger programmtechnischer Natur. Da ergibt sich logischerweise eher eine größere Komplexität. Es handelt sich schlicht um eine Normaisierung. Nachdem die wesentlichen Kenngrößen (Sendungstitel, Episodentitel, Staffel-Nr, Episoden-Nr, Sprache, Produktionsjahr) ermittelt werden können, ist es eigentlich in der Datenverarbeitung standard, ein Format zu normalisieren.

Eine Normalisierung ist natürlich für den Nutzer ein großer Vorteil, da Kombinationen von Feldern wesentlich leichter dargestellt werden können. Statt z.B. eine Staffel-Episoden-Nr zu bauen und zu hinterlegen, können schlicht die Rohdaten hinterlegt werden. Mit mehr als 2 Kenngroßen wird die Hinterlegung in einem Feld für den Nutzer erst recht schwierig.

Der von Dir vorgeschlagene Ansatz ist ja auf den ersten blicxk ganz nett, aber inhaltlich natürlich sinnlos, weil halt das Matching situativ unterschiedliche Anforderungen an die Daten stellt. Das würde den Nutzer eher verwirren.
Da braucht man schon ein wohldefiniertes Format. Das sollte zumindest das Ziel sein.
Ein flexibles Format ist aber nicht wohldefiniert.
Aber ich schau trotzdem mal, ob ich Deinen Vorschlag verwerten kann. Danke für den Hinweis.

Ich babe ja sogar auch im Property-File einen Hinweis eingebaut. Eigentlich müßte man das ja bemerken.
Die Umstellung soll ja auch nciht sofort geschehen. Das hat ja noch Zeit und ist wirklich nicht aufwendig.
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von ds10 »

Normalisieren? Es handelt sich doch hierbei nicht um eine Datenbank oder ein Format das unbedingt wohlgeformt sein muss.

Was ist, wenn dir in einem halben Jahr einfällt, dass noch mehr Informationen eingegeben werden müssen? Folgt dann v3 des Datenformats? (An sich wäre das kein Problem, wenn denn die alten Formate dauerhaft weiter unterstützt werden.)

Es gibt keinen Grund nicht beide Formate dauerhaft zu unterstützen. Kann Word 2013 keine doc-Dateien mehr lesen, weil es jetzt docx gibt, was auf XML basiert und damit wohlgeformt ist, was doc ja nicht war?

Du hast doch ein Plugin geschrieben, was normale Nutzer verwenden sollen und nicht irgendwelche Experten, die Wert auf Einhaltung von Formalien legen. Ich als Nutzer (irgendeiner Software) möchte, dass sich eine Software einfach und sinnvoll bedienen lässt, ob dabei irgendwelche unwichtigen Formalien eingehalten werden interessiert mich überhaupt nicht.

Natürlich kannst du als Entwickler machen was du möchtest. Im Normalfall ist eine Software, was Datenformate angeht, aber immer abwärtskompatibel. Im Fall deines Plugins mag die Entfernung des alten Datenformats vielleicht sogar noch unproblematisch sein, da es sehr wenige Nutzer hat, aber einfacher ist das neue Datenformat für den Nutzer eben nicht.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von Sheldon2012 »

Natürlich ist eine CSV-Datei eine simple Form einer Datenbank, aber das ist ja auch nicht entscheidend.
Die Definition von Datenbanken ist recht weit gefaßt.

Die Kompatibilität habe ich ja über das Feld INFO gewährleistet. Darum heißen die beiden Felder ja auch gleich.

Aber ich habe noch einmal über Deinen Vorschlag nachgedacht. Man könnte das flexible Format als Korrektur verkaufen.
Wenn nicht alle Felder angegeben werden, ergänzt das Plugin intern entsprechend. Das macht es ja jetzt schon für das alte Format. Das geht natürlich nur begrenzt, wie von Dir vorgeschlagen, durch Vervollständigung der Felder. Das wäre dann eine Art automatischer Eingabekorrektur bzw. Eingabeunterstützung. Das wäre doch ein schönes Feature für eine der nächsten Versionen. Das wäre auch hilfreich in Hinsicht auf spätere Erweiterungen und das alte Format könnte erhalten bleiben.

Sowas hatte ich in anderer Form für später vorgesehen. Dann jedoch direkt auf Datenebene. Und spätestens dann ist das normalisierte Format sehr hilfreich.
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von ds10 »

Du könntest auch einen Editor zur Verfügung stellen, in dem man dann explizite Felder für jeden Wert hat, manche sind verpflichtend, manche sind optional. Viele bevorzugen sowieso eine grafische Oberfläche zur Eingabe. Da wäre es dann auch egal, wie du das auf Dateiebene speicherst, du könntest das Datenformat dann immer den Notwendigkeiten anpassen. Nur beim Lesen sollte eben, der Einfachheit halber, immer auch das alte Format gelesen werden können.

Solche Editoren enthalten ja auch andere Plugins, wie z.B. "Will ich nicht sehen!" oder das Markierungsplugin, in Form einer Tabelle. Außerdem könnte man dann die Werte auch zur Laufzeit ändern (falls das jetzt noch nicht so sein sollte).
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von Sheldon2012 »

Ein Editor ist auch eine nette Idee. Das müßte ich mir mal näher anschauen. Hast Du da mal ein Beispiel? Bislang habe ich die Schnittstelle halt nur vom Backend aus betrachtet. Man muß ja erst mal die wesentlichen Daten beisammen haben.

Die CSV-Datei kann man natürlich zur Laufzeit ändern. Der entsprechnde Filter musß nur aktualisiert werden. Derzeit geht das am besten durch einen Neustart des TV-Browsers.

Ich denke da mehr an eine automatische Ergänzung der Daten durch Anbindung an eine offene Datenbank wie TheTvDb.
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von ds10 »

http://sourceforge.net/p/tvbrowser/code ... Panel.java
http://sourceforge.net/p/tvbrowser/code ... Model.java
Am Besten geeignet ist wie im Beispiel eine JTable und da nur Textdaten eingegeben werden, braucht man auch keinen speziellen Renderer und CellEditor, außerdem sollte ein DefaultTableModel reichen, so dass du kein spezielles programmieren musst.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von Sheldon2012 »

Danke! Das werde ich mir mal anschauen.
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von Sheldon2012 »

Das DefaultTableModel scheint keine Methoden für Update, Edit, Delete und Save zu kennen. Das wäre dann etwas wenig.
Oder habe ich da was übersehen?

Kann ich die JTable einfach so in unseren Frame einbauen?

Generell finde ich die Idee eines Editors nicht schlecht. Der könnte z. B. auch eine Konvertierung des Formates vornehmen.
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von ds10 »

Doch dafür gibt es Methoden, addRow für anfügen einer Zeile, removeRow zum Löschen und setValueAt für das Ändern der Werte. Natürlich kannst du auch ein eigenes Model programmieren, was dann einfacher Änderungen zulässt, das kann unter Umständen einfacher sein, als das Default-Model zu benutzen, was ja so gemacht ist, dass es für möglichst viele Datentypen funktioniert.

Ich weiß nicht, wo du im Plugin einen Frame hast. Eine Filterkomponente hat in der Regel ein Panel für die Einstellungen.
Wenn du den Editor unabhängig von der Filterkomponente anbieten möchtest, dann wäre eine neue Button-Action günstig, die dann einen JDialog mit dem Editor öffnet, in dem man dann die gewünschte CSV-Datei zum Editieren öffnen kann. Die Tabelle muss aber auf jeden Fall in ein JScrollPane eingefügt werden, sonst könnte man nur die obersten Zeilen editieren.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von Sheldon2012 »

Sorry! Ich meinte natürlich das Panel.
Aber dann habe ich das wohl richtig verstanden. Die JTable muß ins Panel und im Panel verwende ich dann ein Model.
Das Model erstellt man dann in einer eigenen Klasse, die zusätzlich ins Package csvFileFilterComponent eingefügt wird. Richtig?
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CSV-Datei-Filterkomponente - Umstellung des Formates

Beitrag von ds10 »

Ja, wenn du ein eigenes Model programmieren möchtest, dann kommt das in eine eigene Klasse.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Antworten