sebadorn.de

Standalone-Anwendungen mit node-webkit

node-webkit demo window

Gestern habe ich ein wenig in node-webkit reingeschnuppert. Damit sollen sich ganz einfach Desktop-Anwendungen auf Basis von HTML, JavaScript und Node.js erstellen lassen. Die erstellte Anwendung lässt sich dann relativ einfach für verschiedene Betriebs­systeme verpacken. Für nicht allzu rechen-intensive Spiele scheint mir das recht interessant. Tatsächlich verwendet auch das kürzlich erschiene A Wizard's Lizard node-webkit [1].

Für eine kleine Demo habe ich das Beispiel von three.js genommen und als Anwendung verpackt. Das HTML und JavaScript lasse ich hier mal aus. Mein package.json für ein Fenster ohne Toolbar sieht wie folgt aus:

{
	"main": "index.html",
	"name": "nw-demo",
	"window": {
		"frame": true,
		"height": 600,
		"kiosk": false,
		"toolbar": false,
		"width": 900
	}
}
Read more

Videos von YouTube valide einbinden

Was YouTube einem an Code zum Einbetten gibt, ist weit davon entfernt, valide zu sein. Vermutlich, weil der Anbieter eine höchstmögliche Kompatibilität mit allen Browsern erreichen möchte. Was eigentlich ein Schlag in die Magengrube der Webstandards ist, die für eine einheitliche Darstellung in die Welt gesetzt wurden.

So ähnlich sieht der Code aus, wie YouTube ihn bereitstellt.

<object width="425" height="344">

	<param
		name="movie"
		value="[…]/v/NvE8XO6YH6o&hl=de&fs=1">
	</param>
	<param name="allowFullScreen" value="true">
	</param>
	<param name="allowscriptaccess" value="always">
	</param>

	<embed
		src="[…]/v/NvE8XO6YH6o&hl=de&fs=1"
		type="application/x-shockwave-flash"
		allowscriptaccess="always"
		allowfullscreen="true"
		width="425" height="344">
	</embed>

</object>


Entledigen wir uns erst einmal des embed, indem wir die wichtigen Informationen in das object umsiedeln; aus dem Attribut src wird dabei data; der Rest wird bereits über param übergeben. Embed wurde von Netscape eingeführt und alle Browser haben es aufgegriffen; ein Standard wurde es nie.

<object
	width="425" height="344"
	type="application/x-shockwave-flash"
	data="[…]/v/NvE8XO6YH6o&hl=de&fs=1">

	<param
		name="movie"
		value="[…]/v/NvE8XO6YH6o&hl=de&fs=1">
	</param>
	<param name="allowFullScreen" value="true">
	</param>
	<param name="allowscriptaccess" value="always">
	</param>

</object>


Jetzt noch anstatt & („Ampersand“) dessen Entität (&amp;) angeben und optional die param als leere Elemente kennzeichnen, ohne schließendes Tag.

<object
	width="425" height="344"
	type="application/x-shockwave-flash"
	data="[…]/v/NvE8XO6YH6o&amp;hl=de&amp;fs=1">

	<param
		name="movie"
		value="[…]/v/NvE8XO6YH6o&amp;hl=de&amp;fs=1" />
	<param name="allowFullScreen" value="true" />
	<param name="allowscriptaccess" value="always" />

</object>


Unser Ergebnis: Valides XHTML 1.0 Strict. Wer es jetzt genauer wissen möchte, den verweise ich auf diese beiden großartigen Artikel: A List Apart: Flash Satay und A List Apart: Bye Bye Embed.


Kapitelende: 1. Semester

Heute ist endlich die letzte Note eingetragen worden. Alle Prüfungen bestanden! Wohoo! Und auch GDS und Programmieren 1, bei denen ich Bedenken hatte, sind sehr zufriedenstellend ausgefallen.