settings-overwrite.prop = einfach Programmlisten tauschen

Ideen, wie TV-Browser verbessert werden kann
Antworten
ak
Full Member
Beiträge: 79
Registriert: 15 Jul 2011, 18:29

settings-overwrite.prop = einfach Programmlisten tauschen

Beitrag von ak »

Verbesserungsvorschlag:

User-eigene "settings-overwrite.prop"
wird bei Programmstart
- wenn vorhanden & korrekt -
in die "settings.prop" Einträge übernommen.



Warum?
Was ich gern möchte, ist meine persönliche Programmauswahl
(subscribedchannels=...) auf einfachstmögliche Weise an
andere User weiterzugeben. Ich weiß, dass es geht, und ein
komplizierter Weg ist auch schon beschrieben (siehe hier:
http://hilfe.tvbrowser.org/viewtopic.ph ... 83#p111892 )



Nach einigem Nachdenken bin ich aber auch auf eine Lösung gekommen,
die für Dich / Sie sehr einfach zu implementieren sein müsste.

Inspiriert von der persönliche-conf-file Lösung von NXT (siehe Zeile 17 dort).



Ganz einfach:

Bei Programmstart wird gesucht
* im Programmfolder von tv-browser
* im %APPDATA%\TV-Browser
* evtl. auch im %APPDATA%\TV-Browser\3.4.1

ob es dort eine Datei namens "settings-overwrite.prop" gibt,
und (wenn mehrere dann die mit neuesten "last modified" Datum) genommen.


Wenn ja, wird sie geladen, und geparset. Falls das Parsing schief geht,
stimmt also die Syntax nicht, dann wird sie einfach ignoriert
(vielleicht mit Log-file-Eintrag oder Fehlermeldungs-Dialog?)

Falls aber sinniges Zeugs drin steht,
werden die betroffenen Originalfiles ge-backup-ed,
und mit den Werten aus "settings-overwrite.prop" aktualisiert.

Dann könnte der User noch erfahren, dass es geklappt hat, und gefragt
werden, (ob es ok ist) alle "settings-overwrite.prop" nun zu löschen.
(bzw. besser in "settings-overwrite_DONE.prop" umbenannt) -
damit sich das Spiel nun nicht immer wiederholt.

Nun Programm-Neustart (wegen der Logos, ebda.).

Kurz: Ein einfacher & sicherer(?) Weg, das existierende komplexe
Settings-File-Schema ... mit Änderungs-Instruktionen zu füttern.



Die Riesenvorteile:

* "settings-overwrite.prop" kann sehr sehr simpel aussehen,
(weil es ja nur das enthält, was überschreiben soll),
was zur Folge hat, dass den Inhalt mehr User verstehen werden.

* Es braucht keine langen Anleitungen wie in diesen 5 postings:
http://hilfe.tvbrowser.org/viewtopic.ph ... 83#p111889
... mit Stelle finden, vorsichtig sein, eine config editieren, etc.

* Ein einfaches
'Wirf "settings-overwrite.prop" in tvbrowser Ordner & Neustart'
kriegen mittlerweile auch viele Newbies gebacken.

* Falls irgendein Syntaxfehler drin wäre,
geht nicht gleich alles kaputt.

* Für Dich / Sie ist es so wenig Arbeit wie möglich, das zu realiseren,
in einer kommenden Version dieses fantastischen Programmes. Danke!


Und der Haupteffekt:

Ohne viel Export/Import Gedaddel-Dialogen ... können wir beginnen,
unsere Programmlisten untereinander zu tauschen. Klingt das gut?



Herzlichen Dank für die Aufmerksamkeit

:-) Schönes Wochenende !
ds10
Site Admin
Beiträge: 19101
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von ds10 »

Eine solche Lösung ist viel zu chaotisch um umgesetzt zu werden. Es gäbe dann x-Möglichkeiten warum etwas plötzlich nicht so funktioniert wie man es eingestellt hat, weil man irgendwo die Einstellungen überschrieben hat. Die Einstellungen befinden sich in der settings.prop und genau dort werden sie auch bleiben.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
ak
Full Member
Beiträge: 79
Registriert: 15 Jul 2011, 18:29

Re: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von ak »

ds10 hat geschrieben:Eine solche Lösung ist viel zu chaotisch
Nein.

Meine Beschreibung mag zu ausführlich, und deshalb lang sein, und
kommt Ihnen daher chaotisch vor. Die Idee selbst ... ist sehr einfach,
aufgeräumt, und gar nicht chaotisch.
ds10 hat geschrieben:Die Einstellungen befinden sich in der settings.prop und genau dort werden sie auch bleiben.
Sollen sie doch auch. Missverständnis.

Ich denke, ich habe den Grund für mein ganzes Trara da oben wohl nicht gut genug erklärt.

Wenn ich meine ganze settings.prop and jemanden weitergäbe,
würden ALLE seine persönlichen Einstellungen überschrieben.
Will ich nicht, will er nicht.

Es geht doch erstmal nur darum, eine einzige Property("subscribedchannels") weiterzugeben.
Und die einfachste Möglichkeit, die mir einfiel, habe ich beschrieben.

Daher die Idee mit einer Import/Export-Funktion per reduzierter whatever.prop Datei.

Nebenbei wäre es auch toll, wenn ich raffinierte Filter einzeln exportieren kann,
und anderen Usern zur Verfügung stellen. Siehe "IMDb ..."


Vielleicht implementiere ich meine obige Idee irgendwann einfach mal selbst,
schwer ist das ja nicht. "public static void loadSettings() " habe ich grad schon
gefunden. (Kudos für die Idee mit dem zweifach-Backup.).

Oder vielleicht wird es eh irgendwann mal eine selektive Sync-Funktion geben,
bei der ich auswähle was exportiert/importiert wird?
Ist aber bestimmt zigfach komplexer als mein simpler Vorschlag oben.


Nun gut ...

Ich werde mir und Euch aber wohl besser weitere Vorschläge ersparen, was?


Vielen Dank für den TV-Browser, großartiges Programm.

Guten Wochenstart.
ds10
Site Admin
Beiträge: 19101
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von ds10 »

Ich habe genau verstanden, was du damit bezweckst und ich habe extra länger drüber nachgedacht, bevor ich darauf geantwortet habe, aber je länger ich darüber nachgedacht habe, desto schlechter kam mir der Vorschlag vor. Es ist in Wirklichkeit nur ein Hack, damit du eine Lösung zum Import der Sender bekommst, aber ein Hack wird keinen Weg in den offiziellen Quellcode von TV-Browser finden, selbst wenn du es programmieren solltest.

Den Ex-/Import über die Sendereinstellungen zu ermöglichen wäre hingegen möglich und auch gar nicht mehr so aufwändig, denn das geht ja bereits mit AndroidSync, da wäre es auch keine große Sache dort noch einen Ex-/Import in/aus eine(r) Datei zu ermöglichen. Denkbar wäre darüber hinaus, dass jemand ein Plugin schreibt, was das Ex-/Importieren von unterschiedlichen Quellen ermöglicht, dieses Plugin müsste nur die gleiche Schnittstelle wie AndroidSync anbieten um auf diese Funktion zugreifen zu können, dann könnte auch dieses Plugin in den Sendereinstellungen eingebunden werden.

Ein Ex-/Import der Filter hingegen wäre sehr aufwändig, da an der Stelle noch gar keine Schnittstelle existiert.
"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: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von Sheldon2012 »

Hi,

vielleicht zuerst einmal etwas Allgemeines zu dem Thema.

Settings zwischen Systemen austauschen zu können, ist grundsätzlich eine charmante Idee.
Hierbei Settings zu überschreiben, ist grundsätzlich keine gute Idee. Da solche Vorgänge immer Fehlerpotential in sich tragen, sollten sie reversibel konzepiert werden. Das ist erfahrungsgemäß aufwendig.

@ak:
Du hast also schon bei der Benennung des Themas einen Fehler gemacht, als Du es "overwrite" genannt hast. Da gehen bei jedem Entwickler die Alarmsirenen los. Das ist ein ganz natürlicher Reflex! :)

Aber eigentlich ist das auch gar nicht notwendig. Ich kann das leider nur am Beispiel der portablen Version unter Windows erkären. Das liegt schlicht daran, dass ich keine andere verwende und somit auch da keine Erfahrungswerte habe..

@ds10:
Für die anderen Varianten des TV-Browsers wird es ein Pendant geben. Da müßtest Du kurz einspringen.

Beim portablen TV-Browser gibt es im Ordner "settings" einen Ordner mit der Versionsnummer. Akuell ist dies also

---\tvbrowser\settings\3.4.1.0
.
Dieser Ordner enthält alle Settings. Wenn ich diesen unter einen frischen T-Browser kopiere, habe ich sofort alle Settings.
Da es bei der Entwicklung respektive beim Testen schon mal vorkommt, dass ich die Settings "zerstöre", nutze ich dies recht häufig.

Wenn Du also diesen Ordner in eine ZIP-Datei packst, kannst Du die Settings bequem von TV-Browser A zu TV-Browser B transportieren. Wenn Du zuvor noch eine Sicherung Deiner ursprünglichen Settings machst, ist der Prozess auch stets reversibel.

Alternastiv könnte man sich auch eine Variante über die CSV-Datei-Filterkomponente vorstellen. Hierfür wäre eine kleine aber triviale Anpassung erforderlich.
Wenn man z. B. alle Sendungen im aktuellen Datenbestand des Ausgangssystems über eine Bean-Shell (nur Programm ID) in eine CSV-Datei schreibt, könnte man diese im Zielsystem über einen Filter einlesen. Dies hat keinen Einfluß auf den Datenbestand im Zielsystem. Man müßte jedoch parallel noch eine Liste der Sender mitgeben, da die CSV-Datei-Filterkomponente Sendungen nur für vorhandene Sender finden wird. Die fehlenden Sender müßten im Zielsystem anhand der Liste nachgepflegt werden. Aber das kann ja dann der Nutzer des Zielsystems individuell entscheiden. Er hat also weiterhin voille Kontrolle über sein System.

Die zweite Variante berücksichtigt natürlich keine Filter- bzw Plugin-Einstellungen.

Gruß

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

Re: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von Sheldon2012 »

@ds10:
Mit dem heutigen Update können ja Sender importiert werden. Planst Du das auch für andere Settings?
ds10
Site Admin
Beiträge: 19101
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von ds10 »

Nein, nur für die Sender, denn das war ja schon halb fertig durch Übernahme der Sender von Android und jetzt kann man sie halt auch noch aus einer Datei importieren.
"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: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von Sheldon2012 »

Das dachte ich mir schon. Aber jetzt macht mein Gedanke von gestern Sinn, da man nun Sender transportieren kann.

Man könnte mit Hilfe der CSV-Datei-Filterkomponnenet Filter austauschen, ohne das Zielsystem zu modifizieren.
Die CSV-Datei muß nur die entsprechnden Programm-IDs enthalten. Dafür würde man einen Export benötigen.
Die IDs können dann im Zielsystem eingelesen werden.
ak
Full Member
Beiträge: 79
Registriert: 15 Jul 2011, 18:29

Re: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von ak »

Ach wie schön. Freut mich sehr.
Da habe ich dann ja doch was losgetreten :D
ds10 hat geschrieben:damit du eine Lösung zum Import der Sender bekommst
Genau. Und da war ich vorgeprescht, und hatte selbst nachgedacht, wie ein Weg mit
kürzestmöglicher Code-Ergänzung aussehen würde. Der dann auf einen Schlag auch
gleich mehr kann, ausser nur Sender austauschen. Modulartig Setting-Gruppen ändern.

Und asymmetrisch: Derjenige, der bereitstellt, muss ein bisserl mehr begreifen,
was er tut. Derjenige, der importiert, d.g. die settings-overwrite.prop nur benutzt,
muss nicht viel verstehen, ausser: wohin dad Ding kopieren.

Aber wenn es bald komfortablere Möglichkeiten als diesen Hack gibt,
bin ich natürlich noch froher!

ds10 hat geschrieben: Den Ex-/Import über die Sendereinstellungen zu ermöglichen wäre hingegen möglich
und auch gar nicht mehr so aufwändig, denn das geht ja bereits mit AndroidSync, da wäre
es auch keine große Sache dort noch einen Ex-/Import in/aus eine(r) Datei zu ermöglichen.
Super. *freu*
ds10 hat geschrieben: Ein Ex-/Import der Filter hingegen wäre sehr aufwändig,
da an der Stelle noch gar keine Schnittstelle existiert.
Naja, das kommt schon. Ich habe die Erfahrung gemacht, dass
neuer Code damit beginnt, dass jemand denkt, es ist möglich.
Das war ja auch nur ein Nebenschauplatz meiner Inspiration.
Sheldon2012 hat geschrieben: Settings zwischen Systemen austauschen zu können,
ist grundsätzlich eine charmante Idee.
Genau. Danke. Dachte ich auch.

Und für mich sehr nützlich, weil ich grad unglaublich viel Arbeit
in eine sinnige Sortierung von Astra19.2Sendern gesteckt habe, und
diese Sortierung gern mehr Menschen zur Verfügung stellen möchte.
Sheldon2012 hat geschrieben: Hierbei Settings zu überschreiben, ist grundsätzlich keine gute Idee.
Naja, wenn das System anschliessend mit anderen Einstellungen startet,
sind alte Settings doch immer überschrieben.
Sheldon2012 hat geschrieben:Da solche Vorgänge immer Fehlerpotential in sich tragen, sollten sie reversibel konzepiert werden.
Unbedingt. Guter Punkt.
Die alten Settings müssen gesichert werden - und auf eine Weise, dass der Enduser auch versteht, wie er sie wiederherholen kann:
ak hat geschrieben:Verbesserungsvorschlag:
User-eigene "settings-overwrite.prop" ...
...
Wenn ja, wird sie geladen, und geparset. Falls das Parsing schief geht,
stimmt also die Syntax nicht, dann wird sie einfach ignoriert
...
Falls aber sinniges Zeugs drin steht,
werden die betroffenen Originalfiles ge-backup-ed,
und mit den Werten aus "settings-overwrite.prop" aktualisiert.
...
Das hatte ich also in meinem Vorschlag schon mitbedacht.
Sheldon2012 hat geschrieben:reversibel
*abschweif* Es ist ein weitaus aufwendigeres System, aber eine der besten Lösungen, die ich bisher gesehen habe ist die googledocs Revision history (GoogleSheet ... Menu ... File ... See revision history ...). Da werden für alle Ewigkeiten alle früheren Versionen mit Datum zugreifbar gelassen. Also nicht nur die letzten zwei, sondern alle. Wäre doch toll, wenn man so ein System einfach als Library in eigene Entwicklungen einbinden kann, um jegliche Änderungen aller Zeiten immer weiter zur Verfügung zu stellen. Nicht dass ich denke, TV-Browser muss sowas enthalten, sondern nur mal als Ausblick darauf, was ich denke wie Software in Zukunft gebaut sein könnte ... aber ich schweife ab.
Sheldon2012 hat geschrieben:
@ak: Du hast also schon bei der Benennung des Themas einen Fehler gemacht, als Du es "overwrite" genannt hast. Da gehen bei jedem Entwickler die Alarmsirenen los. Das ist ein ganz natürlicher Reflex! :)
*Hahaha* da hast Du wohl recht.

Meine Absicht dieser Benennung war die Ausdrücklichkeit für den Enduser: Was Du hier reinschreibst, wird die Settings Deines Programmes überschreiben. Einerseits als eindeutige Beschreibung, was es tut; andererseits natürlich auch als implizite Warnung.

Aber wenn nun bessere Methoden als mein Hack entwickelt werden, umso besser!
Sheldon2012 hat geschrieben:
Aber eigentlich ist das auch gar nicht notwendig. Ich kann das leider nur am Beispiel der portablen Version unter Windows erkären. Das liegt schlicht daran, dass ich keine andere verwende und somit auch da keine Erfahrungswerte habe.... Beim portablen TV-Browser gibt es im Ordner "settings" einen Ordner mit der Versionsnummer. Akuell ist dies also ---\tvbrowser\settings\3.4.1.0 Dieser Ordner enthält alle Settings. Wenn ich diesen unter einen frischen T-Browser kopiere, habe ich sofort alle Settings.
Exakt. Was Du dort also (manuell) machst ist ein OVERWRITE. Und sogar von allen Settings.

Du bist erfahrener Nutzer, und kannst was Du tust. Das trifft auf viele Newbies nicht zu. Meine Hack-Idee stammte genau daher:
() Einfacher für unbedarfte Nutzer. Und
() nicht ALLE settings überschreiben, sondern nur selektive.
Sheldon2012 hat geschrieben:Man könnte mit Hilfe der CSV-Datei-Filterkomponnenet Filter austauschen ...
Da mische ich mich jetzt mal nicht mehr ein.
Sieht ja so aus, als ob Ihr das nun auch andenkt. Toll! Wäre auch wirklich nützlich.

Schwer vorherzusagen, was passiert, wenn man Nutzern erlaubt, ihre besten Filter
als kleine Module zu tauschen. Ich vermute unser aller TVBrowser wird dadurch noch
viel besser.
*träum:* Irgendwer schreibt dann ein Plugin mit den Top100 Filtern, die je nach Beliebtheit gerankt
werden können. Jemand baut dann sogar Buttons "Spielfilme", "Dokus", "Englisch", "IMDb-ranked", etc ...
Future music :-)
Sheldon2012 hat geschrieben:@ds10: Mit dem heutigen Update können ja Sender importiert werden.
ds10 hat geschrieben:... nur für die Sender, denn das war ja schon halb fertig durch Übernahme der Sender von Android und jetzt kann man sie halt auch noch aus einer Datei importieren.
FANTASTISCH. Wo bekomme ich das?

Und für Enduser: Wie läuft das hier, wie & wann werden solche "experimental"-updates in die "production"-Version übernommen?

Sonnige Grüsse! Schönen Rest-Sonntag.
ak
ak
Full Member
Beiträge: 79
Registriert: 15 Jul 2011, 18:29

Re: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von ak »

Dies ist NICHT mehr ein Vorschlag für TV-Browser, da Ihr ja nun äquivalente Lösungen entwickelt. Aber ... Wissenstransfer ... lohnt sich doch oft ...
ak hat geschrieben: Inspiriert von der persönliche-conf-file Lösung von NXT (siehe Zeile 17 dort).
Weil ich glaube, dass dort eine wirklich gute Idee benutzt wird, noch einige Erklärungen dazu.
(NXT ist ein Kryptowährungs-System, eine Komplettneuentwicklung der Blockchain-Innovation in Java (kein Bitcoin Klon) - in dem man nicht nur Geld hin und her sendet, sondern ganz einfach Aktien, oder eigene Währungen emittieren kann, Produkte wie in eBay anbieten, Abstimmungen durchführen, Nachrichten verschlüsselt senden, etc.)

Weil so hyperaktiv ständig neue NXT-Versionen rauskommen die schon wieder irgendwas Neues können, ändern sich auch die settings-Dateien - die werden immer grösser.

Was nun wenn ich meine eigene persönliche Konfiguration von einer alten Programmversion übernehmen will?
Wenn es nur eine Settings-Datei gäbe, müsste ich ja dann meine persönlichen Settings mergen, was immer fehlerträchtig ist. Und vor allem Zeit kostet.

NXT ist nun diesen simplen Weg gegangen mit allen settings:
nxt-default.properties
nxt.properties
logging-default.properties
logging.properties

d.h. alle Settings gibt es immer zweimal, geupdatet beim Download neuer Programmversionen werden aber immer nur diese:
nxt-default.properties
logging-default.properties

Ich kann also einfach meine (sehr kurzen) Dateien rüberkopieren:
nxt.properties
logging.properties

und die neue Version ist personalisiert.

das entspräche hier also einem
settings-override.prop
# Do not modify this file. Instead, create a nxt.properties file with only the
# properties you need to change, and set them there. The values in
# nxt.properties override those in nxt-default.properties.
Gute Idee, oder?

:D
ak
Full Member
Beiträge: 79
Registriert: 15 Jul 2011, 18:29

Re: settings-overwrite.prop = einfach Programmlisten tausche

Beitrag von ak »

Ich habe die Ideen von oben nun in einem kleinen Liebhaber-Projekt benutzt:

http://hilfe.tvbrowser.org/viewtopic.php?f=6&t=17337

Bild

... mehr Infos beim Klicken aufs Bild.
Antworten