Ich habe zwei kleine Nebenprojekte (eines zu ArgusTV, eines zum Thema SI-Tabellen Analyse mit DVB.NET) als Quellcode auf GitHub eingestellt. Wer Lust hat kann da ja mal vorbeischauen.
Jochen
Meine alte Nexus hat unter Windows 7 leider die unangenehme Eigenschaft, dass beim Starten einer Aufzeichnung (respektive Nutzung der Karte überhaupt) das System kurz ins Stocken kommt. An sich kein Problem, aber wenn meine andere DVB Karte (Nova-HD-S2) gerade eine Aufzeichnung macht, gibt es kurz Aussetzer. Für VCR.NET 4.2 wird es daher eine eigene Planungsregel geben – hey, ich nutze das halt auch 🙂 :
In dieser Variante (die Regel ist durchaus etwas mächtiger) sagt die Zeile mit der Nexus: wenn möglich (i.e. keine der vorherigen Regeln wird verletzt) sollten Aufzeichnung auf der Nexus immer vor Aufzeichnungen anderer Karten starten. Da in der Standardeinstellung die Priorität der Geräte erst ganz am Ende berücksichtigt wird heißt das, dass die Nexus in solchen Situationen bevorzugt wird, obwohl sie (bei mir aus gutem Grund) eigentlich eine niedrigere Aufzeichnungspriorität hat.
Viel Spaß
Jochen
Für VCR.NET 4.1 habe ich einige grundlegende Änderung beim Arbeiten mit dem Schlafzustand vorgenommen. Ursache war, dass seit Windows Vista der Windows Dienst den durch den Anwender ausgelösten Schlafzustand nicht mehr unterbinden kann und sich dem ganzen Vorgang stillschweigend anschließen muss. Das Beenden laufender Aufzeichnungen ist dabei ein wichtiger Schritt und das scheint auch soweit zu klappen. Allerdings wollte ich VCR.NET dafür sorgend lassen, dass zum einen ein überhasteter Schlafzustand Aufzeichnungen nicht ganz unter den Tisch fallen lässt zum anderen aber der Rechner auch nicht direkt wieder aufgeweckt wird.
Die Grundidee war der neue Konfigurationsparameter zur minimalen Verweildauer im Schlafzustand. Wenn der Anwender eine Minute vor Beginn in der Aufzeichnung den Schlafzustand auslöst, dann respektiert VCR.NET das erst einmal. Allerdings wird sichergestellt, dass der Aufweckzeitpunkt durch einen sogenannten WaitableTimer nicht weiter als diese minimale Verweildauer in der Zukunft liegt – die Voreinstellung ist 5 Minuten, i.e. im Beispiel gingen „nur“ 4 Minuten der Aufzeichnung verloren.
Leider haben wir nun festgestellt, dass das so nicht immer geht. Es scheint so zu sein, dass Windows den Aufweckzeitpunkt ignoriert wenn dieser zu spät während des Übergangs in den Schlafzustand erfolgt! Einige Änderungen in VCR.NET 4.1 führen dazu, dass je nach konkreter Konfiguration, Anzahl von Aufzeichnungen und Karten und abhängig von der Leistungsfähigkeit des Rechners in einigen Fällen genau dies passiert. Und dann wacht der Rechner für die nächste Aufzeichnung gar nicht auf – blöd, wenn das im Urlaub passiert.
Ab VCR.NET 4.2 kann man dieses neu eingeführte Verhalten wieder deaktivieren – in der Voreinstellung ist es weiterhin aktiv, für mich benutze ich es als Selbstschutz gegen persönliche Dummheit.
Ist das Häkchen gesetzt, so manipuliert VCR.NET 4.2 den Aufweckzeitpunkt nicht mehr. Würde das Kontrollzentrum einen gelben Hintergrund zeigen und damit signalisieren, dass eine Aufzeichnung unmittelbar bevorsteht, so kann es dann sein, dass der Rechner sehr schnell wieder aufwacht – und dann die Aufzeichnung korrekt ausführt. Bei einem blauen Hintergrund und damit einer laufenden Aufzeichnung kann das Verhalten nicht genau vorhergesagt werden. Überlappen sich Aufzeichnungen, so wird VCR.NET zu Beginn der Folgeaufzeichnung aufwachen, ansonsten eventuell unnötig zu dem Zeitpunkt, an dem die unterbrochene Aufzeichnung eigentlich zu Ende wäre. Mit Verlust ist auf jeden Fall zu rechnen.
Nach aktuellem Kenntnisstand ist das im Moment das beste, was ich für VCR.NET 4.2 machen kann.
Jochen
Hier mal etwas aus dem Dunstkreise Jochen versucht jQuery zu lernen: man kennt sie alle, die vielen Varianten von kostenlosen und kommerziellen Werkzeugen um im Web eine Fotogalerie anzulegen. Im Rahmen meines Selbststudiums habe ich für mich einmal versucht, nur mit jQuery eine möglichst einfache Lösung zu basteln – der JavaScript Code sieht etwas komisch aus, da ich zur Entwicklung TypeScript eingesetzt habe. Wichtig war hierbei der Plan, eine SPA (Single-Page-Application) zu erhalten, also im Wesentlichen nur eine HTML Seite, auf der die Galerie präsentiert wird. Mit jQuery eigentlich kein Problem.
Hier in aller Kürze der Status Quo – keine Ahnung, ob ich da noch jemals etwas daran tue:
Ok, das ist sicher einfach genug. Aber vielleicht doch einige interessante Details – die sich sicher auch ausbauen lassen, wenn man Lust und Zeit hat vor allem das Windows Programm zur Erzeugung anzupassen:
Der Wechsel zwischen den Ansichten erfolgt über den Anker (Hash) in der URL. So sieht das dann Live aus (ich habe mal die Bilder aus der Web Seite des DVB.NET / VCR.NET Viewers zusammen geklaubt).
Viel Spaß
Jochen
<Update1>Die Anzahl der Minibilder wird nun dynamisch aus der Größe des Fensters bestimmt, die entsprechenden Parameter wurden aus der Konfiguration entfernt. Klappt leider noch nicht ganz: je nach Breite des Fensters im Übersichtsmodus enthält die unterste Zeile weniger Bilder als die anderen Zeilen.</Update1>
VCR.NET 4.2 wird die gespeicherten Suchen der Programmzeitschrift (dort Favoriten genannt) im Benutzerprofil auf dem Server (App_Data Unterverzeichnis) ablegen – der REST Web Service wurde entsprechend erweitert. VCR.NET 4.1 speicherte die Favoriten im localStorage auf dem Client. Allerdings verwaltet jeder Browser diese Ablage individuell und ärgerte dadurch Anwender wie mich, die ab und an zwischen den Browsern wechseln – hier IE und FF.
Es wird auch ein einfacher Migrationsalgorithmus eingesetzt: wenn man die gespeicherten Suchen aufruft aber noch keine im Profil abgelegt wurden, so werden die des Browsers verwendet. Bei der ersten Veränderung an den Favoriten (neu Anlegen oder Entfernen) gibt es dann endgültig die einzige Wahrheit auf dem Server.
Viel Spaß
Jochen