Entwicklerblog

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Hallo ihr Lieben!

      Nach langer langer Zeit, bin ich wieder da. Ich habe ein paar Neuigkeiten und natürlich einiges zu schreiben.

      Die letzten Monate waren ein ziemlicher Ritt. Das war auch der Grund, warum ich hier nicht online sein konnte. Alex hat mich aber sehr lieb vertreten und ich möchte mich dafür bei ihm sehr bedanken.

      Ich werde wie häufiger einen persönlich bis privaten Teil hier in den Thread schreiben und danach einen der nur batch betrifft.

      Was war los?

      Traditionell ist die Winterzeit in meinem Gewerbe die stressigste. Deswegen hatte ich über den Herbst versucht batch "winterfest" zumachen. Das ist mir eigentlich auch gelungen. Dazu aber später mehr. In den letzten Monaten habe ich en suit 2 bis 3 Vorstellungen am Tag gespielt. Das geht ziemlich an die Kräfte. Da können die heimischen Treppenstufen schon sehr zu einem Hindernis werden. Außerdem entleert diese Zeit den Kopf komplett. Mir war es leider nicht mehr möglich mich hier im Forum zu kümmern. Alex hatte mir angeboten, so gut es geht für euch da zu sein. Das hat mich sehr dankbar gemacht. Hinzu kamen noch mehr Dinge :D Ihr kennt das wahrscheinlich: Wenn es dick kommt, dann aber richtig. Ich bin seit zweieinhalb Jahren krank gewesen, ohne zu wissen was es war. Bis Dezember war es dann so weit, dass ich meinen Job nur noch durch viele Tricksereien ausüben konnte. Dann kam endlich die Erkenntnis, dass es mit dem Essen zu tun hat. Jetzt geht es mir wieder sehr prächtig, nur leider habe ich durch die ganze Umstellung plus der Anstrengung am Theater auch noch recht viel Gewicht verloren (ein Wonneproppen war ich ja nie - da fällt das etwas mehr ins - ha ha - Gewicht). Aber es gab auch ein paar schöne private Veränderungen...

      Den Januar habe ich mir nun frei geschaufelt und kann mich wieder viel besser um batch kümmern, was mich zu meinen nächsten Thema führt.

      Was ist mit batch los?

      Ich habe viel recherchiert und vorsorglich einige Dinge im Dezember vorbereitet. Das Ergebnis meiner Recherche ist ernüchternd und unglaublich zugleich. Es handelt sich hier um einen Bug in den Zugriffsberechtigungen in der YouTube-API. Das eigentlich schlimme daran: Man kann es so nicht beheben, außer: Man erstellt ein neues API-Projekt bei Google.
      Das habe ich Anfang Dezember kurz nach dem bekannt wurde, dass es Probleme gibt, bereits getan. Die Zugriffsschlüssel liegen alle schon bei euch auf den Rechnern. Das ist auch der Grund, warum es bei dem einen oder anderen geht. Die Beschränkungen sind gerade noch sehr hoch. Das ändert sich erst, wenn Google das Projekt frei gibt. Das sollte in diesem Monat geschehen. Aktuell dürfen sich maximal 100 Benutzer über die Software anmelden. Ich hoffe jetzt einfach, dass Google sich beeilt. Mehr kann ich gerade nicht tun. Ich werde aber diesen Monat daran arbeiten die Zugriffe auf die API noch mal deutlich zu reduzieren und weniger Informationen zu buffern. Das sollte den Start von batch noch einmal deutlich beschleunigen.

      So viel erstmal von meiner Seite. Bei Fragen gerne her damit. :)

      Liebe Grüße
      Vincent aka Benni
      Du findest mich auf YouTube! Beim Hochladen deiner Video hilft die Uploading Software batch. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • Achtung - Technikeintrag - vielleicht langweilig.

      Es ist mal wieder Zeit fürs Entwickeln da. Da Google sich noch nicht regt, kann ich mich um andere Dinge kümmern.

      Ich habe angefangen an einem neuen Major-Update zu arbeiten. Dabei habe ich die angeregten PlugIns im Blick.

      Here we go.
      Ich hatte im letzten Eintrag geschrieben, dass ich batch so weit stabilisiert habe, dass da eigentlich nichts unerwartetes mehr auftauchen sollte - so Google will.

      Also habe ich mich hin gesetzt und gefragt, was die eigentlich Baustelle im Code ist.

      Unter der Haube arbeitet batch mit dem Framework VueJS. Damit lassen sich herrlich einfach und fix (quick and dirty) Komponenten für die Oberfläche erstellen. Das habe ich mit Wonne getan ohne aber die Vorteile die dieses Frameworks aus zuspielen. Der Vorteil ist: Man kann eine Menge Code zusammenfassen und wiederverwendbar machen. Hier harkt es bei batch. Ich habe also angefangen die gesamte Oberfläche in kleinste Komponenten zu zerlegen.

      Welchen Vorteil hat das?

      Nun. Wie gesagt. Am Ende spart man sehr viel Zeit, weil nicht alles immer wieder von neuem geschrieben werden muss. Wir bekommen kleine Codeblöcke, die sich mit einer kleinen Sache beschäftigen, dafür aber überall auftauchen. Für mich bedeutet das, dass ich nur immer diesen einen Codeblock pflegen muss, wenn es in batch ein Problem gibt, und ich dabei alle Stellen in denen dieser Block zum Einsatz kommt mit korrigiere. So weit so klar. Nun kommt aber der weitere Schritt: wenn wir wollen, dass Menschen PlugIns schreiben, wollen sie das auf eine einfache Art tun. Diese Menschen sind dann in der Lage auf all diese Komponenten zu zugreifen und zu nutzen. Damit erhalten wir vor allem auch ein konsistentes Erscheinungsbild und wir können steuern, was eine Plugin darf und was nicht.

      Um PlugIns sicher zu machen, habe ich Vorkehrungen getroffen, dass Daten nicht einfach abfließen können. Hierfür habe ich einen Mechanismus eingebaut, der genau regelt, an welche Server Daten geschickt werden können oder von welchen sie empfangen werden dürfen. Das macht das Entwickeln für mich ein bisschen komplizierter, schafft aber zusätzliche Sicherheit.

      Der Zugriff auf Daten durch Plugins wird innerhalb von batch auch beschränkt werden. Hierfür habe ich den "Main Prozess" (dieser hat hohe Berechtigungen) stark vom "Render Prozess" (hat geringe Berechtigungen) entkoppelt. Aktuell haben diese Prozesse in batch etwa gleichwertige Berechtigungen. Dies wird potenzielle Szenarien gegenüber denen batch aktuell noch anfällig sein könnte, ausschließen. Vor allem die Gefahr durch präparierte Eingaben wird dann ins Leere laufen.

      Der Rendererprozess muss nun aber alle Änderungen im Main Prozess quasi anfragen. Da ist aber noch ein wenig zu tun.

      Auch darf der Render-Prozess nicht mehr so einfach auf das Dateisystem zugreifen. Hier gibt es aber noch ein bisschen Arbeit, weil es sich nicht hundert prozentig verhindern lässt, potentiell unsichere Dinge zu zulassen. Das liegt jedoch an dem Tool "Webpack" um das ich so einfach nicht drumherum komme. Da gab es aber heute einen großen Fortschritt. Das bekomme ich noch einigermaßen dicht oder kann es einfach einem Angreifer sehr schwer machen.

      Aktuell bin ich gerade also dabei all die Komponenten zu schreiben. Optisch verändert sich wenig. Eher Detailkram. Aber die Komponenten funktionieren viel besser und vor allem zuverlässiger. Ich muss viel weniger hacking betreiben, damit sich alles so verhält, wie es soll. Zudem lasse ich alle Komponenten automatisch durch dokumentieren, damit eventuelle Plugin-Schreiber eine Chance haben.

      Ich werde zu gegebener Zeit neue Screenshots veröffentlichen. Das dauert gerade einfach, weil ich batch quasi neu schreibe. Funktionieren tut da noch nichts, aber es ist jeden Tag ein kleiner Fortschritt sichtbar und ich kann alte Designfehler im Code korrigieren.

      batch ist mir eine Herzensangelegenheit und wird es wohl auch noch lange bleiben.

      The evolution of batch ;)

      Liebe Grüße
      Benni
      Du findest mich auf YouTube! Beim Hochladen deiner Video hilft die Uploading Software batch. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • Es gibt neues aus dem Forschungslabor.

      Ich habe die letzten Tage mit der Implementierung von Plugins verbracht und habe dazu auch eine Frage an euch.

      Die größte Sorge, die ich hatte, war, dass ich Plugins entsprechend sicher bekomme. Dieses Problem ist gelöst. Jedes Plugin läuft komplett von batch abgetrennt. Ein Plugin hat keinen Zugriff auf die internen Daten oder Programmcode von batch. Außerdem kann es keine Bibliotheken nachladen oder gefährlichen Code ausführen. Es kann über eine noch zu implementierende Schnittstelle Daten anfordern oder auf Ereignisse warten (Z.B. das aktuelle Template wurde geändert)

      Das Erstellen von Plugins ist dazu extrem einfach. Wer schon mal mit VueJS gearbeitet hat, findet sich sehr schnell zurecht.

      HTML-Quellcode: index.js

      1. <template>
      2. <control-button icon='fas fa-plus' @click='doSomething'/>
      3. </template>
      4. <script>
      5. let controlButton = requireComponent("cControlButton");
      6. export default Vue.component("myplugin", {
      7. components: {controlButton},
      8. methods: {
      9. doSomething () {
      10. console.log("Button clicked")
      11. }
      12. }
      13. })
      14. </script>
      Alles anzeigen
      Dieses kleine Beispiel bindet einen Button mit einem Pluszeichen in batch ein. (Wo und wie wird in einer kleinen Datei gesteuert) Wenn jemand drauf klickt wird "Button clicked" in die Konsole geschrieben. Nach einem kurzen kompilieren seitens Vue ist das Plugin einsatzbereit.

      Ein detaillierteres Beispiel stelle ich morgen rein (programmieren auf dem Handy macht keinen Spaß) . Plugins können als commonJS Modul oder als Coffeescript vorliegen. All das wird möglich durch ein JavaScript Modul, dass auf den Namen "vm2" hört.

      Mit den Plugins wird es möglich sein komplett neue Programmabschnitte zu programmieren.


      Hier die Frage(n):
      Wo würdet ihr Plugins gern einsetzen? Was sollten sie können dürfen (und was nicht). Wo gäbe es einen Mehrwert von Plugins?

      Liebe Grüße
      Benni aka Vincent
      Du findest mich auf YouTube! Beim Hochladen deiner Video hilft die Uploading Software batch. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • Halli hallo.

      Ich wollte ja eigentlich die letzten Tage wieder was gepostet haben... Ich wollte mir ja eigentlich auch den Januar frei halten - hat super geklappt. Ab morgen bin ich in Nürnberg. Aber sei es drum.

      Ich habe weiter an den verschiedenen Komponenten und am Plugin-System gearbeitet. Da war einiges an Aufräumarbeiten zu tun, um den Code sauber zu bekommen.

      Ich habe allen Code durch dokumentiert und bin gerade dabei Plugins auch in den Hauptprozess zu implementieren.

      Wie es gerade aussieht wird die kommende Version von batch eher eine Art (Achtung! Ich benutze ein kluges Wort) Service-Provider, den ich nach belieben erweitern kann. Mein Plan ist, dass man durch Plugins auch einen Hauptteil des Programms überschreiben kann und durch eigene Sachen ersetzen.

      Für den normalen Nutzer ändert sich nichts, außer, dass die Stabilität besser wird (beta phase ausgeschlossen :D)

      Du willst deine Templates anders organisieren, als es aktuell der Fall ist? Dann kannst du dir das selbst basteln. So ist aktuell der Plan. Das heißt auch für mich, das ich wohl alle Programmteile als eigenständige Module ausliefern werde. Das wird die Pflege des Programms auch für mich vereinfachen.

      Ich habe durch meine Arbeit ein Problem lösen können, das seit der ersten Version besteht. Kleine Bildschirme werden endlich voll unterstützt und der angezeigte Inhalt verschwindet nicht einfach. Außerdem kann jede Komponente, die ich programmiert habe ab jetzt nach belieben erweitert werden.

      So. Ich bin also dran. Jetzt bin ich erstmal ein paar Tage wieder raus. Ab nächster Woche geht es weiter.

      Liebe Grüße
      Benni
      Du findest mich auf YouTube! Beim Hochladen deiner Video hilft die Uploading Software batch. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • Hi Benni,

      wie sieht es denn allgemein aus? Wäre einfach schön, wenn man das Programm mal wieder nutzen könnte :/ Ich verstehe nicht wieso es so lange dauert, die API von Google freigeschaltet zu bekommen. Die Update-News sind alle toll und nett, aber das hilft irgendwie auch nicht, wenn das Programm einfach nicht funktioniert.
    • Foxhunter schrieb:

      Hi Benni,

      wie sieht es denn allgemein aus? Wäre einfach schön, wenn man das Programm mal wieder nutzen könnte :/ Ich verstehe nicht wieso es so lange dauert, die API von Google freigeschaltet zu bekommen. Die Update-News sind alle toll und nett, aber das hilft irgendwie auch nicht, wenn das Programm einfach nicht funktioniert.
      Ich verstehe den Ärger. Auch ich bin nicht glücklich (ich bin alles andere - aber nicht glücklich - gleich dazu einen Nachtrag) über die Situation. Der Status aktuell steht bei "wird überprüft". Und das seit dem 7.12.2019. Es hat sich seitens Google an dieser Stelle nichts getan. Offenbar geht Google mit Nutzern außerhalb Deutschlands freundlicher um, denn die können die Software nutzen. Einen Versuch, den du unternehmen kannst ist, Accounts.db zu löschen und deinen Account erneut zu verbinden. Manchmal kann das helfen.

      Mein Nachtrag.
      Ich versuche so entspannt, wie möglich damit um zu gehen. Was bleibt mir? Im Grunde zerstört Google mit seinem Verhalten oder nennen wir es freundlich "Bug" die Arbeit mehrerer Jahre, vernichtet alle Reputation, die aufgebaut habe und streicht alle Einnahmen, die ich hatte auf Null zusammen. Der Schaden ist viel beträchtlicher, als dass mancher Nutzer dafür bezahlt! hat, die Software nicht nutzen kann. (um Gottes Willen nicht falsch verstehen - dieser Gedanke lässt mich durch drehen) Google stellt gerade alles auf die Probe. Ich bekomme leider keinerlei Hilfestellung seitens YouTube oder Google. Ich bin zur Geduld verdammt. Ich war im Dezember sehr nahe am hinschmeißen, weil ich mich so machtlos gefühlt habe. Damit wäre ich, in dieser Phase der Schwäche rein niemanden in irgendeiner Weise gerecht geworden. Vor allem (klingt pathetisch) mir selbst nicht.

      Also mache ich weiter. Unabhängig von "wird überprüft" und versuche diese Zeit als Zeit zu sehen, in der ich alles neu denken darf, weil der impact gerade zu auf Null geht (etwas Schlechteres, als das aktuelle kann ich euch nicht bieten). Gerade tue ich niemanden weh, wenn ich grundsätzliche Strukturen umbaue. Lakonisch gesprochen: merken, würde es keiner.

      Deshalb meine scheinbare Ruhe, was das Thema betrifft. Ich kann nicht anders. Sei dir sicher: wenn es Neuigkeiten in dieser Richtung gibt, seid ihr die ersten, die es erfahren.

      Liebe Grüße
      Benni
      Du findest mich auf YouTube! Beim Hochladen deiner Video hilft die Uploading Software batch. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • Ich warte ja auch nach wie vor auf eine API Freigabe seitens Google, ich kann da nur zustimmen, insgesamt ist das einfach sehr ernüchternd. Es scheint mir fast als wollten sie gar nicht, dass kleinere Entwickler die API nutzen, ich Frage mich warum sie das überhaupt öffentlich anbieten, wenn sie das so stark reglementieren...

      Nachdem sie erst nach weiteren Information bzw Screencast gefragt haben, die man sehr schnell liefern müsste kommt jetzt erstmal lange nichts. Musstest Du auch Screencast liefern?
    • Drexel schrieb:

      Es scheint mir fast als wollten sie gar nicht, dass kleinere Entwickler die API nutzen, ich Frage mich warum sie das überhaupt öffentlich anbieten, wenn sie das so stark reglementieren...
      Um Geld zu verdienen... einzige Möglichkeit: Jeder der die Software nutzt, MUSS sich einen eigenen API-Key erstellen und im Programm dann eingeben, somit "umgeht" man diese Regel von YouTube da jeder quasi seine "eigene" App nutzt und man nicht mehr mit ALLEN am selben Limit "lutscht" was natürlich bei 10-20 Nutzern zeitgleich sehr schnell aufgebraucht ist... (ich komme am Tag mit meinem PHP-Script ja gerade mal auf 100-200 "Credits" was die API-Abfragen angeht... wenn das nicht nur ich benutzen würde, sehe das deutlich anders aus...
      ——⇥YouTube⇤—————————————————————————————————————————
      —⇥ ...Ohne Ende: Minecraft (SinglePlayer), Craft The World, Banished, Besiege, Defiance
      —⇥ durchgezockt: Leisure Suit Larry 6+7, Dishonored, Surface 2+3, Mirrors Edge, Dead Effect...
      —⇥ .... angezockt: The Tower, Fighting Is Magic, Euro Truck Simulator 2, Trauma...
      —⇥ ....Retro-Ecke: Day Of The Tentacle, Flight Of The Amazon Queen, NFS: HP2...
      -————————————————-—————————————————————————⇥TbMzockt.de⇤—
    • Drexel schrieb:

      Ich warte ja auch nach wie vor auf eine API Freigabe seitens Google, ich kann da nur zustimmen, insgesamt ist das einfach sehr ernüchternd. Es scheint mir fast als wollten sie gar nicht, dass kleinere Entwickler die API nutzen, ich Frage mich warum sie das überhaupt öffentlich anbieten, wenn sie das so stark reglementieren...

      Nachdem sie erst nach weiteren Information bzw Screencast gefragt haben, die man sehr schnell liefern müsste kommt jetzt erstmal lange nichts. Musstest Du auch Screencast liefern?
      Musste ich. Alles fristgerecht eingereicht. 3 Wochen später trat der "Bug" auf, weshalb das jetzt alles über ein neues Projekt in der API läuft. Das alte Projekt, wie auch das Neue, läuft nach wie vor unter "wird geprüft". Am 7.12. habe ich das neue Projekt eingereicht. Das heißt die 6 Wochen Prüfung seitens Google laufen bald ab. Es bleibt spannend.

      TbMzockt schrieb:

      Drexel schrieb:

      Es scheint mir fast als wollten sie gar nicht, dass kleinere Entwickler die API nutzen, ich Frage mich warum sie das überhaupt öffentlich anbieten, wenn sie das so stark reglementieren...
      Um Geld zu verdienen... einzige Möglichkeit: Jeder der die Software nutzt, MUSS sich einen eigenen API-Key erstellen und im Programm dann eingeben, somit "umgeht" man diese Regel von YouTube da jeder quasi seine "eigene" App nutzt und man nicht mehr mit ALLEN am selben Limit "lutscht" was natürlich bei 10-20 Nutzern zeitgleich sehr schnell aufgebraucht ist... (ich komme am Tag mit meinem PHP-Script ja gerade mal auf 100-200 "Credits" was die API-Abfragen angeht... wenn das nicht nur ich benutzen würde, sehe das deutlich anders aus...
      Ja. Interessantes Konzept, das leider alle User ausschließt, die technisch nicht so versiert sind. batch richtet sich eben auch vor allem nicht an Power-User. Das war mir von Anfang an wichtig. Power-User kommen mit der kommenden Version auf ihre Kosten, wo sie eben alles selbst machen können, wenn sie wollen.

      About this:
      Heute kam ein kleiner Durchbruch, der allerdings viel bewirkt. Gerade bin ich ja dabei die Software von Grund auf neu zu konzipieren. Der Pluginbetrieb ist nun sowohl im Rendererprozess (da war es einfach) als auch im Main-Prozess möglich. (es folgt Technikkram)
      Ich wollte es schaffen, das Plugins ganze Programmbereiche ersetzen können. Ein kleines Beispiel:
      Ich mag nicht, wie das Erstellen von Vorlagen funktioniert. Also erstelle ich mir ein Plugin, dass das eben auf "meine" Art übernimmt. Soweit der Plan. Jetzt habe ich heute die Möglichkeit geschaffen, das ein Plugin zum einem die Daten auf nimmt (Renderer) und zum anderen verarbeitet (Main). Das Plugin kann in beiden Prozessen mit einander kommunizieren und auf ein Toolset, das batch eben bietet, zum Speichern oder Löschen der Daten zurück greifen. Dabei wird verhindert, daß ein Plugin zu viele Berechtigungen hat. JavaScript ist nun mal konzipiert, wie es konzipiert ist, weshalb das alles ein bisschen Recherche in Anspruch genommen hat. Nun ist es so weit. Ein Plugin darf nichts, was ich explizit erlaube, ist aber dennoch einfach zu erstellen.

      Auf dieser Grundlage gibt es zusätzliche Pläne, die Alex oder ich zur gegebenen Zeit veröffentlichen werden. Ab morgen geht es weiter darum, diese Funktionen aus zu bauen.

      Bis jetzt habe ich für das neue batch ca. 16500 Zeilen neuen Code geschrieben (das alte batch hat so um die 25000 Zeilen - es wird sich einiges ändern :D) und es macht weiterhin Spaß.

      Ich werde hoffentlich in den nächsten Tagen einen etwas tieferen Einblick in die aktuelle Arbeit veröffentlichen.

      Liebe Grüße
      Benni
      Du findest mich auf YouTube! Beim Hochladen deiner Video hilft die Uploading Software batch. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • Die Fehlermeldung aus @Foxhunters Beitrag wirkt auf mich nicht wie ein Hinweis darauf, dass es sich hier um eine Sperre seitens Googles aufgrund der einer Bewertung der App an sich handelt.

      "Dieser Browser ist nicht sicher" in Verbindung mit dem Wissen, dass es sich bei Batch um eine Electron-App handelt (also um eine JavaScript-App, die zusammen mit einem stark beschnittenen Chromium-Browser als installierbares Programm gepackt und ausgeliefert wird), lässt mich auf den ersten Blick eher vermuten, dass Google anhand des Electron-User-Agents erkennt, dass es sich um eine veraltete Chromium-Version handelt und diese blockiert. Grade von Google habe ich das auch schon selbst erfahren dürfen, dass die anhand des User-Agents einfach beschließen, dass der aufrufende Browser das Angebot gar nicht erst aufrufen darf, weil Google nur aktuelle gehaltene Browser, die es kennt, erlaubt.

      Ich hab das jetzt mal gegooglet, um nicht einfach gefährliches Halbwissen zu streuen, und zumindest im googleeigenen Supportforum gibts dazu tatsächlich auch einen Thread, der genau die Electron-Version als mögliche Ursache nennt: support.google.com/accounts/thread/22873505?hl=en

      Auf dieser Seite werden zwei Möglichkeiten genannt, wie man das Problem lösen kann:
      • Möglichkeit 1 ist ein Electron-Update. Das muss @VincentLP machen und anschließend als Programmupdate rausbringen. Ich könnte mir sehr gut vorstellen, dass das das Problem bereits löst. Das große Problem daran ist, dass das langfristig keine besonders geile Lösung ist - da regelmäßig neue Chromium-Versionen erscheinen, veraltet die Electron-App ganz von selbst immer wieder.
      • Möglichkeit 2 ist die Aktivierung "weniger sicherer Apps". Das soll man tun / muss jeder einzelne Benutzer des Programmes tun und es soll auch nur probiert werden, wenn Möglichkeit 1 nicht funktioniert, weil damit ein Verlust an Sicherheit einhergeht. Ich halte es für eher unwahrscheinlich, dass hier das Problem liegt, immerhin ging es ja vorher auch schon ohne, dass die Leute das aktivieren mussten.
      You like music? I like pissing.
      ~Corey Taylor

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von strohi ()

    • strohi schrieb:

      Möglichkeit 2 ist die Aktivierung "weniger sicherer Apps". Das soll man tun / muss jeder einzelne Benutzer des Programmes tun und es soll auch nur probiert werden, wenn Möglichkeit 1 nicht funktioniert, weil damit ein Verlust an Sicherheit einhergeht. Ich halte es für eher unwahrscheinlich, dass hier das Problem liegt, immerhin ging es ja vorher auch schon ohne, dass die Leute das aktivieren mussten.
      Kurz zum Verständnis: Das muss/kann ich irgendwo im Profil einstellen? Ich würde es gerne versuchen wollen.
    • strohi schrieb:

      Die Fehlermeldung aus @Foxhunters Beitrag wirkt auf mich nicht wie ein Hinweis darauf, dass es sich hier um eine Sperre seitens Googles aufgrund der einer Bewertung der App an sich handelt.

      "Dieser Browser ist nicht sicher" in Verbindung mit dem Wissen, dass es sich bei Batch um eine Electron-App handelt (also um eine JavaScript-App, die zusammen mit einem stark beschnittenen Chromium-Browser als installierbares Programm gepackt und ausgeliefert wird), lässt mich auf den ersten Blick eher vermuten, dass Google anhand des Electron-User-Agents erkennt, dass es sich um eine veraltete Chromium-Version handelt und diese blockiert. Grade von Google habe ich das auch schon selbst erfahren dürfen, dass die anhand des User-Agents einfach beschließen, dass der aufrufende Browser das Angebot gar nicht erst aufrufen darf, weil Google nur aktuelle gehaltene Browser, die es kennt, erlaubt.

      Ich hab das jetzt mal gegooglet, um nicht einfach gefährliches Halbwissen zu streuen, und zumindest im googleeigenen Supportforum gibts dazu tatsächlich auch einen Thread, der genau die Electron-Version als mögliche Ursache nennt: support.google.com/accounts/thread/22873505?hl=en

      Auf dieser Seite werden zwei Möglichkeiten genannt, wie man das Problem lösen kann:
      • Möglichkeit 1 ist ein Electron-Update. Das muss @VincentLP machen und anschließend als Programmupdate rausbringen. Ich könnte mir sehr gut vorstellen, dass das das Problem bereits löst. Das große Problem daran ist, dass das langfristig keine besonders geile Lösung ist - da regelmäßig neue Chromium-Versionen erscheinen, veraltet die Electron-App ganz von selbst immer wieder.
      • Möglichkeit 2 ist die Aktivierung "weniger sicherer Apps". Das soll man tun / muss jeder einzelne Benutzer des Programmes tun und es soll auch nur probiert werden, wenn Möglichkeit 1 nicht funktioniert, weil damit ein Verlust an Sicherheit einhergeht. Ich halte es für eher unwahrscheinlich, dass hier das Problem liegt, immerhin ging es ja vorher auch schon ohne, dass die Leute das aktivieren mussten.

      Danke für den Hinweis. Ich werde das umgehend ausprobieren..

      Liebste Grüße
      Benni/Vincent
      Du findest mich auf YouTube! Beim Hochladen deiner Video hilft die Uploading Software batch. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • So. Ich habe @Foxhunter mal eine aktualisierte Version geschickt. Sollte das funktionieren, wäre das einerseits für mich unglaublich peinlich, andererseits wundervoll.

      Ein habe ein kleines Update zur kommenden Version:
      Plugins sind nun so weit implementiert. Darauf möchte ich nun etwas genauer eingehen. Plugins können als Pakete verteilt werden. Das ist ein simpler ZIP komprimierter Ordner mit allen nötigen Dateien. Plugins können für den Main- und den Renderer-Prozess erstellt werden. Das geht super simple und das möchte ich an dieser Stelle zeigen.
      Im Renderer-Prozess, kann ich ein normales Plugin erstellen, dass einfach zusätzliche Funktionen bietet oder eine neue Seite. Grundsätzlich hat ein Plugin folgende Verzeichnisstruktur:

      Quellcode

      1. meinPlugin
      2. \package.json
      3. \index.js




      package.json enthält die Konfiguration und index.js in der Einstiegspunkt für das Plugin. Der Pfad zum Einstiegspunkt kann aber auch in der Konfiguration fest gelegt werden.
      Hier ein kleines Beispiel für ein Plugin. Es handelt sich um einen "Button Dialog". Zuerst die Konfiguration in package.json

      JavaScript-Quellcode: package.json

      1. {
      2. "name": "test-plug",
      3. "title": "My Test Plugin",
      4. "description": "",
      5. "configuration": {
      6. "context": ["elements", "test-page"],
      7. "addTo": ["plugins"]
      8. },
      9. "version": "0.1.0",
      10. "renderer": "dist/main.common.js"
      11. }
      Alles anzeigen
      Hier fallen zwei Dinge auf: context und addTo.
      context legt fest, ob das Plugin beispielsweise in den Vorlagen oder wie in diesem Fall auf den Seiten "elements" und "test-page" eingebunden werden soll. addTo bestimmt, dass es im Standard Container "plugins" zur Verfügung gestellt werden soll. Diese Container nehmen alle Plugins auf und zeigen sie an einer festgelegten Stelle an.

      Hier nun das Plugin an sich:

      JavaScript-Quellcode: App.vue

      1. <template>
      2. <div>
      3. <button-dialog icon="fas fa-plug" @accept="accept" @dismiss="dismiss" ref="dialog">
      4. <template #title>Plugin</template>
      5. <template>
      6. <div class="row">
      7. <div class="col col-12">
      8. <b>A little hello from the plugins!</b>
      9. </div>
      10. </div>
      11. <div class="row">
      12. <div class="col col-12">
      13. <p>This dialog is created on the fly, with the plugins.</p>
      14. </div>
      15. </div>
      16. </template>
      17. </button-dialog>
      18. </div>
      19. </template>
      20. <script>
      21. const ButtonDialog = requireComponent('cButtonDialog')
      22. export default {
      23. components: { ButtonDialog },
      24. name: 'my-plugin',
      25. methods: {
      26. accept: function () {
      27. console.log('accept')
      28. },
      29. dismiss: function () {
      30. console.log('dismiss')
      31. }
      32. }
      33. }
      34. </script>
      Alles anzeigen

      Hier werden vordefinierte Komponenten eingebunden und angezeigt. cButtonDialog ist eine von mir erstellte Komponente, die einen runden Button mit einem Symbol anzeigt. Bei einem Klick auf den Button, wird ein kleines Dialogfenster angezeigt. Akzeptiert der Benutzer den Dialog, dann wird accept ausgeführt, ansonsten dismiss. Dieses Skript wird kurz durch VueJS kompiliert and schon, ist das Plugin fertig.

      Möchte ich eine komplett neue Seite für batch erstellen verändert sich die Konfiguration minimal:

      Quellcode: package.json

      1. {
      2. "name": "test-page",
      3. "title": "My Test Page",
      4. "version": "0.1.0",
      5. "description": "",
      6. "configuration": {
      7. "context": ["global"],
      8. "addRoute": true,
      9. "defineContext": "test-page"
      10. }
      11. }
      Alles anzeigen
      context wird auf global gestellt. Das Plugin ist also immer verfügbar. Die addRoute Direktive sagt batch, dass dieses Plugin in der oberen Navigationsleiste angezeigt werden soll. Und schließlich definiert das Plugin noch seinen eigenen Kontext oder überschreibt einen bestehenden.

      Nun können wir die Seite an sich schreiben.

      JavaScript-Quellcode: App.vue

      1. <template>
      2. <container>
      3. <row>
      4. <cell c=12>
      5. This is a page dynamically created with plugins.
      6. </cell>
      7. </row>
      8. <row>
      9. <cell c=3>
      10. <my-button>This is a costum button</my-button>
      11. </cell>
      12. <cell c=1 ref="pluginContainer">
      13. </cell>
      14. </row>
      15. </container>
      16. </template>
      17. <script>
      18. import MyButton from './components/myButton'
      19. const Container = requireComponent('cContainer')
      20. const Row = requireComponent('cRow')
      21. const Cell = requireComponent('cCell')
      22. export default {
      23. components: { Container, Row, Cell, MyButton },
      24. name: 'my-page',
      25. data () {
      26. return {
      27. pluginContainers: [{ name: 'plugins', container: 'pluginContainer' }]
      28. }
      29. },
      30. mounted () {
      31. IPC.Accounts.all().then(accounts => console.log(accounts))
      32. }
      33. }
      34. </script>
      Alles anzeigen

      Diese Seite zeigt einen Button an und erstellt einen Plugin-Container, in den es selbst wiederum Plugins aufnehmen kann. Wurde die Seite aufgerufen, fragt das Plugin nach allen gespeicherten Accounts und schreibt diese in die Konsole. Nach einem kurzen Kompilieren steht eine neue Seite in batch zur Verfügung.

      Ich hoffe ihr mögt, was ihr seht und habt vielleicht noch ein paar Ideen. Das ist der aktuelle Stand der Dinge.

      Liebste Grüße
      Benni / Vincent
      Du findest mich auf YouTube! Beim Hochladen deiner Video hilft die Uploading Software batch. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • VincentLP schrieb:

      So. Ich habe @Foxhunter mal eine aktualisierte Version geschickt. Sollte das funktionieren, wäre das einerseits für mich unglaublich peinlich, andererseits wundervoll.
      Es wäre nicht peinlich für dich gewesen, wenn es funktioniert hätte ;) Es wäre eher eine gute Übung gewesen, den Punkt hättest du nie wieder vernachlässigt :D ;) Insofern alles ok, mach dir da nichts draus. Leider kommt genau die gleiche Fehlermeldung mit der gepatchten Version - aber den Versuch war es wert :)
    • VincentLP schrieb:

      Sollte das funktionieren, wäre das einerseits für mich unglaublich peinlich, andererseits wundervoll.
      Nee, peinlich wäre da gar nichts gewesen - woher soll man auch wissen, dass Google eine serverseitige Whitelist für Browser hat?

      Sehr schade, dass es nicht funktioniert hat. Ich drück die Daumen, dass es bald wieder geht!
      You like music? I like pissing.
      ~Corey Taylor