Nützlich lernen…

Ausgehen von einem echten Bedarf habe ich mal wieder ein kleines Lernprojekt gestartet.

Gebraucht wurde ein kleines Werkzeug (eigentlich nur unter Windows), das in einem Dateibaum identisches Dateien (konkret Bilder) erkennt und bei der Bereinigung von Duplikaten unterstützt (auch einen eventuell unerfahrenen Anwender).

In verschiedenen Varianten (oft kostenpflichtig, zumeist als umfangreiches All-In-One Tool) gibt es so etwas schon, daher um kein zu schlechtes Gewissen zu bekommen habe ich daraus dann direkt ein Lernprojekt gemacht. Zum Beispiel:

  • das soll unter Windows und Linux laufen, daher habe ich mir electron als Entwicklungsplattform ausgesucht.
  • electron mit WebPack, CSS Modulen u.a. hatte ich noch nie probiert.
  • Ein Deployment mit dem electron Builder ist auch ganz spannend.
  • uns sonstiger Kleinkram…

Herausgekommen ist dann das hier: https://github.com/JMS-1/file-organizer – befindet sich noch in der Testphase und könnte sicher auch etwas optische Aufbereitung (e.g. via semantic-ui) brauchen, aber das ist nicht das Ziel gewesen.

Viel Spaß

Jochen

Unity Hub 2.1.3 unter Ubuntu 18.04.3: Segmentation Fault oder Ups, he did it again…

Völlig überraschend (für mich) findet sich ein Windows Problem unter Ubuntu: Visual Studio Installation vs. Node. Der Unity Hub ist wohl auch eine (alte?) electron Anwendung und mag es gar nicht, wenn die Environment Variable NODE_OPTIONS gesetzt ist. Weg damit und alles wieder gut… Puh!

Jochen

Quo Vadis Window 10 – oder R.I.P. S2-4600

Wie ja bekannt ist eines meiner Hobbyprojekte der VCR.NET Recording Service unter Windows. Die Tatsache der intensiven Eigennutzung führt nun dazu, dass ich immer noch auf Windows 10 1803 bin. Warum das? Nun ich habe hier mehrere DVB-S2 Geräte (Technotrend S2-4600) via USB im Einsatz und alle Windows Versionen ab 1809 führen zu einem BSOD, wenn dieses Gerät im Einsatz ist. Leider bin ich da wohl nicht der Einzige und bis heute gibt es dafür keine akzeptable Lösung.

Neue USB Karten kommen erst mal nicht in Frage – wer weiß, welche überhaupt noch gehen und wann es diese auch trifft. Da ich schon seit längerem auf Ubuntu (Linux) als primäre Entwicklungsumgebung umgeschwenkt bin habe ich mir mal angeschaut, wie es da aussieht. Tatsächlich läuft die Karte dort unter gleichen Bedingungen, ich würde sogar sagen etwas besser als unter Windows.

Nun kam mir die Idee, eine an ein Ubuntu angeschlossene Karte in VCR.NET zu nutzen. Es gäbe hier viel zu erzählen ich fasse mich aber mal so kurz wie möglich und erläutere nur den aktuellen Stand.

Die erste Idee war die Anbindung war die Ansteuerung über SAT/IP – etwas was in VCR.NET / DVB.NET schon lange aussteht. Allerdings wäre die Implementierung in DVB.NET doch etwas aufwändiger und der Ubuntu Proxy den ich mir angeschaut habe (tvheadend) hat mich nicht gerade begeistert – der könnte lokale DVB Karten via SAT/IP im Netz anbieten. Ich habe mich daher für eine Minimallösung mit Lerneffekt entschieden – sprich proprietär aber mit etwas API Spielereien.

Für Ubuntu gibt es dazu ein kleines Tool (GIT) auf Basis der DVBv3 API – die alte Version der Linux DVB API passt sehr schön zu meinem DVB Einstiegsprojekt vor vielen Jahren: der TechnoTrend API für die Premium Line (Hauppauge Nexus). Das Tool stellt einen TCP Kanal zur Verfügung, über den man Remote eine Karte reservieren und steuern kann. Die angeforderten Nutzdaten (Streams) werden dann über diesen Kanal an den Aufrufer ermittelt. Zurzeit weil es einfacher war über ein proprietäres Protokoll, was ich aber aufgrund von potentiellen Datenübertragungsfehlern auf TS umstellen sollte – im Moment tut es als PoC aber erst mal.

Auf der anderen (DVB.NET / Windows) Seite gibt es dann einen neuen Provider, der bis auf die Art der Kommunikation quasi dem der Nexus entspricht – und der ist nicht einmal besonders umfangreich (GIT).

Ich gehe mit der Version jetzt erst mal in den privaten Test. Tatsächlich gibt es durchaus noch diverse Probleme esp. mit der Stabilität nach Sendersuchlauf und Programmzeitschrift, aber dazu ist ja so eine Testphase da. Immerhin funktionierte ein sauberes Aufzeichnen aller (12 glaube ich) Sender eines Transponders (VOX) parallel – etwa 32 MBit/s im Netzwerk, was aber bei 1 GBit/s Problem ist. Die CPU Last auf Ubuntu war mit unter 5% überschaubar – allerdings auf meinem kräftigeren Entwicklungssystem mit einem i7-8700, i.e. ca. 60% eines Kerns ausgelastet. Wenn das alles klappt sollen alle aktuellen Karten im Haus (5 an 4 Windows Rechnern – nur einer ist der meine) an einen einzigen Linux Rechner angeschlossen werden.

Immerhin: mal wieder C/C++ unter Linux gemacht (wirklich hässlich, ist ja auch schon weit über 20 Jahre her gewesen) und noch mal C# aufgefrischt (ja, da muss ich mich wirklich wieder einarbeiten) und dabei auch richtig über die Performance Visual Studio Pro geärgert – VSCode ist schon cool…

Soweit dazu, schauen wir mal

Jochen

Visual Studio Installation vs. Node

Ich benutze schon seit sehr langer Zeit Visual Studio und habe vor kurzem festgestellt, dass die Updates von Visual Studio 2017 nicht mehr ausgeführt werden. Startet man den Installer gibt es kurz ein Feedback und dann verschwindet der sang- und klanglos – zumindest habe ich kein Log dazu gefunden. Diverse Hinweise im Internet haben auch nicht viel gebracht, eher im Gegenteil: selbst nach einer Deinstallation und vollständigem Bereinigen ist eine Neuinstallation nicht möglich! Da es mich eine ganze Weile beschäftigt hat die (etwas exotische) Ursache zu finden hier die Erläuterung und der Fix für die wenigen auch genau so betroffenen.

Ich verwende seit einiger Zeit intensiv Node.Js und habe im Zuge dieser Arbeiten auch eine NODE_OPTIONS Environment Variable gesetzt, durch die das ganze verursacht wurde – wie sich herausgestellt hat, ist nicht der Satz der ausgewählten Optionen ein Problem sondern die Existenz der Variablen an sich. Das Installationssystem von Visual Studio 2017 basiert auf dem Node.Js Chromium Hosting Modul Elektron – konkret ist die Datei vs_installershell.exe eine umbenannte Electron.exe in der Version 2.0.0. Und genau dieses stürzt beim Starten ab, wenn die NODE_OPTIONS gesetzt sind – wenn ich das richtig verstanden habe gefixt ab 2.0.3, wobei der Fix einfach nur bedeutet, dass die Optionen gänzlich ignoriert werden. Ohne NODE_OPTIONS ist alles wieder gut.

Auch wenn es für mich jetzt leicht lästig ist (da die Optionen nicht völlig aus Spaß gesetzt wurden) kann ich damit gut leben. Am besten wäre es natürlich wenn Microsoft einfach auf die aktuelle Version von Electron gehen würde. Bekannt scheint das Problem schon zu sein und wenn man weiß, was es ist, findet man auch ein Issue dazu.

Jochen

VCR.NET Recording Service 4.5

Wie angedroht habe ich die Version nach einigen privaten Tests freigegeben. Wie üblich kann man diese direkt bei mir oder bei Heise herunterladen. Geändert hat sich allerdings bis auf die Oberflächentechnologie des Web Clients nicht viel.

Nochmal der Hinweis: es gibt KEINE neue Version von DVB.NET (i.e. 4.3 ist die aktuellste) und auch die Systemvoraussetzungen (e.g. bezüglich Microsoft.NET) haben sich NICHT verändert.

Viel Spaß

Jochen