Main Contents

Videostreaming OS X to Sony Bravia TV

September 4, 2012

Im folgenden Artikel möchte ich kurz erläutern wie man UPnP/DLNA-Server unter Mac OS X installiert um beliebigen Videocontent auf einem Sony Bravia darzustellen.
Als Server-Software habe ich mich für den Serviio media server entschieden. Nach dem Download startet man zunächst den Server selbst über das Serviio Anwendungssysmbol (der Start dauert ein paar Sekunden, also schön zu Ende bouncen lassen). Anschließend startet man die Serviio Console um ein Frontend für den Server zu erhalten. Wenn alles geklappt hat, erhält man folgende GUI zu sehen:

Im Nächsten Schritt fügt man im Reiter “Library” einen Ordner hinzu, welcher die Media-Dateien enthält. Über den Button “Force Refresh” kann man den Ordner sofort indizieren lassen und somit die Dateien in die Bibliothek aufnehmen lassen. Die weiteren Einstellungen kann man getrost erstmal vernachlässigen.

Also ab zum Fernseher und schauen ob der Serviio-Server gefunden wird.Im Menü unter dem Punkt Video sollte der Serviio nun auftauchen:

Die Dateien werden nun katalogisiert aufgelistet. Nach Alphabet oder Genre oder Author und so weiter…
Letztlich findet man die Videodatei selbst:

Mit einem Klick startet dann schon der Film. Der Serviio-Server transkodiert das Videomaterial on-the-fly so dass man sich keine Gedanken um das Ausgangsmaterial machen muss.

Was leider nicht auf Anhieb klappt war das direkte “weiter-streamen” eines Online-Streams aus einer Mediathek der öffentlich-rechtlichen Sender. Der Umweg über den Download mittels Mediathek führt dann aber letztendlich auch zum gewünschten Ergebnis.

Filed under: Mac | Comments (0)

Benutzerfreundlichkeit beim Web-FrontEnd der Lufthansa

April 6, 2011

Wenn man bei der Lufthansa (via SwissAir) sein Online-CheckIn absolvieren möchte erscheint folgende einladene Eingabemaske:
Lufthansa Online-CheckIn
Was passiert wohl wenn man vergisst den Haken beim untersten Formularpunkt zu setzen. Man bekommt folgendes aussagekräftige Meldung:
Lufthansa Fehlermeldung 1
Setzt man den Haken und schickt das Formular erneut ab, kommt die nächste prächtige Meldung:
Lufthansa Fehlermeldung 2
Zum Glück wurde die Boardkarte dann trotz der Meldung doch via Mail verschickt, allerdings nur eine. Um die Boardkarten für die weiteren Passagiere zu bekommen sind weitere Schritte nötig aber das würde den Artikel sprengen…Ein Hoch auf die gelungene Software-Lokalisierung.

Filed under: Fail, Netz | Comments (0)

Resizing iFrame

April 5, 2011

Folgende Funktion passt ein iFrame immer an die Größe der umliegenden Seite an:
<script type="text/javascript"> window.onresize = function(){autoIframe("myIFrame")}; function autoIframe(frameId) { try{ frame = document.getElementById(frameId); var realHeight = document.documentElement.clientHeight; frame.style.height = realHeight + 'px'; } catch(err){ window.status = err.message; } } </script>
Funktioniert im IE6/8, Firefox 3/4

Filed under: HTML | CSS, JavaScript | Comments (0)

Größe einer Liste in einer JSP darstellen

Januar 6, 2011

Wieder mal ein klassisches, simples Problem. In einer JSP kann man nicht auf die Methode size() einer java.util.List zugreifen, das die JSTL mit dem Aufruf
<c:out value="${list.size}"/> einen Getter erwartet und folgende Fehlermeldung produziert:

The “.” operator was supplied with an index value of type “java.lang.String” to be applied to a List or array…

Die Erstellung einer einfachen Wrapperklasse behebt dieses Problem:
public class ListWrapper { private List list; public ListWrapper() { this.list = new ArrayList(); } public int getSize() { return list.size(); } public List getList() { return list; } }

Die Idee zur Lösung habe ich Buch Core JSTL von David M. Geary gefunden.

Quelle

Sollte man functions-Bibliothek “fn” nutzen, kann man natürlich die Funktion
fn:length verwenden.

Filed under: Java | Comments (2)

Fotos vom DC Super Heroes: The Ultimate Pop-Up Book

Dezember 5, 2010

Das Pop-Up Buch von DC-Comics ist aufwendig gestaltet. Vor allem die letzte Seite und die Batman-Seite mit leuchtendem Batsymbol sind sehr beeindruckend.
Um einen besseren Eindruck zu bekommen habe ich ein paar Fotos vom Buch gemacht:

Zur Picasa-Gallerie
Pop-Up Buch bei Amazon
Infos zum Buch auf nerdcore

Filed under: Allgemein | Comments (0)

Login-Probleme bei S-Banking (Android)

November 30, 2010

s-banking-logo
Das Tool S-Banking von Star Finanz bietet einem die Möglichkeit via Android seine Konto-Stände u.a. bei der Berliner Sparkasse abzurufen.
Ich bin leider schon beim Login gescheitert. Eine Liste von 4 Fehlermeldungen erscheinte unter anderem: “PIN ungültig” & “Verarbeitung nicht möglich”.

Nach langem suchen und verzweifeltem Testen habe ich dann in der FAQ folgenden Eintrag gefunden:

Auch wenn sich die PIN im Online-Banking mit mehr als 5 Stellen eingeben lässt, kann lediglich eine 5-stellige PIN vom HBCI PIN/TAN Server der Sparkasse verarbeitet werden. Die Länge des Eingabefeldes ist deshalb auch im Online-Banking auf die ersten 5 Stellen begrenzt, bzw. werden bei einigen Instituten (bspw. Berliner Sparkasse) die nachfolgenden Zeichen abgeschnitten. Da unsere mobilen Applikationen für die Kommunikation mit der Sparkasse das HBCI PIN/TAN Verfahren nutzen, verwenden Sie bitte auch nur die ersten 5 Stellen Ihrer PIN für die Kontoeinrichtung und –aktualisierung.

Das heißt sollte man ein Password/PIN verwenden, welches aus mehr als 5 Zeichen besteht scheitert man bereits am Login. Tippt man aber von seinem Password nur die ersten 5 Buchstaben ein – klappt es. amazing und so intuitiv!

Evt. könnte sich ja auch Star Finanz mal dazu durchringen ihre Fehlermeldung dahingehend anzupassen oder zumindestens an dieser Stelle auf den Eintrag in den FAQ hinzuweisen. Noch besser wäre es vielleicht von Anfang an die Eingabe von mehr als 5 Zeichen zu unterbinden…

Filed under: Android | Comments (0)

XSLT: XML zu CSV mit Kopfzeile

Juli 12, 2010

Folgendes XSLT-Transformation generiert eine CSV-Datei, wobei die XML-Tag-Namen als Kopfzeile ausgegeben werden. Die Tag-Namen müssen für diese Transformation nicht bekannt sein.

XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" method="html" indent="yes" encoding="ISO-8859-1"/> <xsl:strip-space elements="*" /> <!--Erstellung der Kopfzeile--> <xsl:template match="/*/child::*"> <xsl:for-each select="*[1]/child::*"> <xsl:if test="position() != last()">"<xsl:value-of select="name()"/>";</xsl:if> <xsl:if test="position() = last()">"<xsl:value-of select="name()"/>"<xsl:text>&#xD;</xsl:text></xsl:if> </xsl:for-each> <xsl:apply-templates/> </xsl:template> <!--Erstellung der Inhaltszeilen--> <xsl:template match="/*/*/child::*"> <xsl:for-each select="child::*"> <xsl:if test="position() != last()">"<xsl:value-of select="normalize-space(.)"/>";</xsl:if> <xsl:if test="position() = last()">"<xsl:value-of select="normalize-space(.)"/>"<xsl:text>&#xD;</xsl:text> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>

Beispiel-XML:
<?xml version="1.0" encoding="UTF-8"?> <DATA> <LIST> <PRODUKT> <TYP>AUTO</TYP> <BESCHREIBUNG>VW</BESCHREIBUNG> </PRODUKT> <PRODUKT> <TYP>AUTO</TYP> <BESCHREIBUNG>DAIMLER</BESCHREIBUNG> </PRODUKT> <PRODUKT> <TYP>AUTO</TYP> <BESCHREIBUNG>OPEL</BESCHREIBUNG> </PRODUKT> </LIST> </DATA>

Als Tool zum testen der Transformation hat sich: TWXml2Csv bewährt.

Links zum Thema:
Kopieren mit XSLT

Filed under: Coding | Comments (0)

Sony HX5V & GPS Assist Daten unter Mac OS X

Mai 24, 2010


Die Sony HX5 bietet einem die Möglichkeit die GPS-Koordinaten des aktuellen Standortes in die EXIF-Daten des Bildes zu schreiben.
Leider benötigt das finden der GPS-Satelliten eine ganze Weile. Um dies zu beschleunigen können die aktuellen Koordinaten der Satelliten in der Kamera hinterlegt werden. Für diesen Zweck liegt der Kamera das Tool PMB auf dem internen Speicher bei.
Unter Mac OS X fehlt diesem Tool leider diese Funktion. Da diese GPS-Informationen nur eine Halbwertszeit von 180 Tagen haben, muss man das Prozedere relativ häufig machen.

Im folgenden Blog Artikel ist beschrieben wie man die GPS-Assist-Daten manuell auf der Kamera hinterlegt:
Zusammengefasst gesagt:
1. assistme.dat herunterladen (Die Datei kommt direkt von Sony)
2. Verzeichnis auf der Speicherkarte erstellen: Private/SONY/GPS (wobei der Ordner Private bereits existiert)
3. Kamera starten und im Menü unter GPS-Assist-Daten prüfen ob da ein noch gültiges Gültigkeitsdatum anzeigt wird -Fertig

Um das ganze noch etwas geschmeidiger zu machen gibt ein kleines Tool, welches die ersten beiden Schritte übernimmt.
Das heißt man muss nur noch die Kamera anschließen, die Ordner erstellen und das Tool erledigt den Rest.

Viel Spass beim GPS-Tracking.

Filed under: Mac | Comments (11)

o2 Vertragsverlängerung

Mai 23, 2010

o2-Vertragsverlängerung
aha!

Filed under: Fail | Comments (0)

Selenium & TestNG

Mai 4, 2010

Hier eine Liste mit Problemen die ich beim ersten Einsatz vom Selenium & TestNG hatte und keine direkte Problemlösung im Netz gefunden habe.

Problem 1:
Man kann seine TestSuiten in mehrere SubSuiten unterteilen und über mehrere XML-Konfigurationen definieren.
Bsp:
<?xml version="1.0" encoding="UTF-8"?> <suite name="suiten" verbose="10"> <suite-files> <suite-file path="suiten/myTest1.xml"/> </suite-files> <suite-files> <suite-file path="suiten/myTest2.xml"/> </suite-files> </suite>

Leider kommt es bei diesem Setup zu einer NullPointerException
[TestNG] Reporter org.testng.reporters.XMLReporter@be0e27 failed java.lang.NullPointerException at java.util.Calendar.setTime(Unknown Source) at java.text.SimpleDateFormat.format(Unknown Source) at java.text.SimpleDateFormat.format(Unknown Source) at java.text.DateFormat.format(Unknown Source) at org.testng.reporters.XMLReporter.addDurationAttributes(XMLReporter.java:144)
Scheinbar verlangt TestNG das in jedem Suite-File mind. ein konkreter Test enthalten ist.
Mit diesem Setup hats dann funktioniert:
<?xml version="1.0" encoding="UTF-8"?> <suite name="suiten" verbose="10"> <suite-files> <suite-file path="suiten/myTest1.xml"/> </suite-files> <suite-files> <suite-file path="suiten/myTest2.xml"/> </suite-files> <test name="StartStop"> <classes> <class name="de.test.java.FakeTest"/> </classes> </test> </suite>

Problem 2:
Um den kompletten Inhalt eines HTML-Elementes auszulesen gibt es folgende Möglichkeit:
String tableContent = session().getAttribute("//form[@id='test']/div/table");
Dabei konnte allerdings der XPath durch die SingleQuotes nicht korrekt aufgelöst werden.
ERROR: Invalid xpath: XPath parse error
Mit getText hats dann geklappt:
String tableContent = session().getText("//form[@id='test']/div/table");
Im String tableContent sind dann alle sichtbaren Inhalte der Tabelle, durch Whitespaces getrennt, enthalten.

Filed under: Coding, Java | Comments (2)