Bookmarklet zum Sortieren von YouTube-Videos nach Dauer

Wird ein YouTube-Kanal geöffnet, so können die Videos in diesem nach der Beliebtheit und dem Datum sortiert werden. Eine Sortierung nach Dauer der Videos ist leider nicht vorgesehen. Abhilfe schafft ein entsprechendes Bookmarklet:

javascript:(function(){l=[].map.call(document.querySelectorAll("span.ytd-thumbnail-overlay-time-status-renderer"),function(e){l=e.innerHTML.trim().split(":").map(function(t){return parseInt(t)}).reduce(function(p,c){return p*60+c});return{a:e.parentElement.parentElement.parentElement,l:l}}).sort(function(a,b){return a.l-b.l});i=document.querySelector("#primary #items");l.forEach(function(o){i.appendChild(o.a.parentElement.parentElement.parentElement)})})()

Zum Anlegen des Bookmarklets muss ein neues Lesezeichen im Browser angelegt werden und der entsprechende JavaScript-Code in das Adressfeld des neuen Lesezeichens kopiert werden.

Nach der Nutzung des Bookmarklets sind die Videos nach Dauer sortiert

Zur Nutzung muss der entsprechende YouTube-Channel im Browser geöffnet sein und alle Videovorschaubilder, welche sortiert werden sollen, müssen geladen sein. Anschließend kann das Bookmarklet benutzt werden und alle Videos sind nach der Nutzung aufsteigend nach ihrer Länge sortiert.

Umfragen mittels freier Software durchführen

Wer online Umfragen durchführen möchte, kann für diesen Zweck unterschiedlichste Webtools nutzen. Das Problem an den meisten dieser Tools ist das die Verarbeitung bei einem Drittanbieter erfolgt und der Nutzer somit keine Kontrolle und Hoheit über die gesammelten Daten hat. Vor allem bei sensiblen Daten empfiehlt es sich das entsprechende Umfragen-Tool selbst zu hosten. Mit LimeSurvey, existiert ein solches Tool, welches daneben freie Software ist.

Eine Umfrage mittels LimeSurvey

Mithilfe von LimeSurvey können Umfragen, Befragungen und vieles mehr realisiert werden. So sind z.B. unter anderem anonyme Umfragen möglich, bei denen die Antworten und die Teilnehmer nicht mehr miteinander in Verbindung gebracht werden können. Die offizielle Seite von LimeSurvey ist unter limesurvey.org zu finden. Der eigentliche Quelltext ist unter anderem auf GitHub zu finden. Lizenziert ist LimeSurvey unter der GPL in Version 2.

Visualisierung des Sonnensystems in JavaScript

Auf der Suche nach einer akkuraten Simulation des Sonnensystems bin ich auf das Projekt jsOrrery gestoßen. Bei diesem Projekt handelt es sich um eine JavaScript-Simulation, welche das Sonnensystem simuliert. Die Ergebnisse der Simulation stimmen hierbei mit denen des HORIZONS-Systems der NASA überein. In der App selber kann in das Sonnensystem gezoomt werden, die gewüschte Zeit und der Ablauf der selben eingestellt werden.

Das Sonnensystem in der Simulation

Der Quelltext des Projektes ist auf GitHub zu finden. Ausprobiert werden kann die Simulation ebenfalls über GitHub. Das Projekt ist unter der MIT License lizenziert und somit freie Software.

Apollo Guidance Computer zum ausprobieren

Vor ein paar Tagen schrieb ich einen Artikel über den Quelltext des Apollo 11 Guidance Computer. Wer den Computer ausprobieren möchte, kann dies mit dem Simulator Moonjs tun. Bei diesem handelt es sich um eine Portierung des Virtual AGC von C nach JavaScript.

Der Simulator des Apollo Guidance Computer

Technisch betrachtet werden zwei Dinge simuliert, einmal das Bedienteil DSKY und der eigentliche Apollo Guidance Computer. Zu finden ist der Simulator unter svtsim.com. Der Quelltext des Simulator kann über GitHub bezogen werden. Er ist unter der GPL2 lizenziert und somit freie Software.

Mapcrafter unter Ubuntu aufsetzen

Eine Welt in Minecraft hat die Angewohnheit, mit der Zeit immer größer zu werden. In einem solchen Fall ist eine Karte natürlich sehr praktisch. Mithilfe des Tools Mapcrafter kann eine solche Karte erstellt werden. Der Mapcrafter erzeugt neben den Kartenkacheln auch eine JavaScript-Anwendung, mit der diese betrachtet werden können.

Eine Mapcrafter-Karte

Im ers­ten Schritt muss das Mapcrafter-Repository mittels:

git clone https://github.com/mapcrafter/mapcrafter.git

auf den Ser­ver geholt werden. Mit dem Befehl wird das Git-Repository, in welchem sich der Quelltext befindet, auf den Server geklont. Im Git-Kontext bedeutet dies, dass das gesamte Repository heruntergeladen wird. Falls Git nicht installiert ist, muss das entsprechende Paket mittels:

apt install git

installiert werden. Die aktuelle Entwicklung findet im Branch world113 statt, so das in diesen gewechselt werden muss:

cd mapcrafter
git checkout world113

Bevor die Software kompiliert werden kann, müssen einige Abhängigkeiten installiert werden:

apt install build-essential cmake libboost-all-dev libjpeg-dev libpng-dev

Anschließen kann die Software kompiliert und installiert werden:

cmake .
make 
make install
ldconfig

Nach der Installation könnte Mapcrafter über den Befehl:

/usr/local/bin/mapcrafter -c example.conf -b -j 4

ausgeführt werden. Allerdings muss vor dem ersten Start noch eine Konfigurationsdatei erstellt werden. In dieser Konfigurationsdatei ist definiert, wie die Karte gerendert werden soll. Die Datei und die Skripte zur Aktualisierung werden im Kontext des Nutzers minecraft angelegt:

su minecraft
cd
mkdir map
nano example.conf

Exemplarisch könnte die Konfigurationsdatei wie folgt aussehen:

output_dir = /home minecraft/map
background_color = #000000

[marker:teleporter]
name = Teleporter
prefix = Hauptteleporter
icon = beacon.png
icon_size = [32, 32]
show_default = false
title_format = %(textp)

[marker:signs]
name = Signs
icon = sign.png
icon_size = [32, 32]
show_default = false
title_format = %(textp)

[world:world]
input_dir = world
world_name = Example

[global:map]
image_format = png
png_indexed = true
rotations = top-left
texture_size = 16

[map:day_isometric]
name = Day (isometric)
render_view = isometric
render_mode = daylight
world = world

Nachdem die Konfigurationsdatei angelegt wurde, kann die Karte testweise mittels des Befehls:

/usr/local/bin/mapcrafter -c example.conf -b -j 4

erzeugt werden. Damit die Aktualisierung später automatisch geschieht, werden die Befehle zur Aktualisierung der Skripte in eine Skript-Datei geschrieben:

nano updateMap.sh

Diese Datei wird mit folgendem Inhalt befüllt:

#!/bin/bash
/usr/local/bin/mapcrafter -c example.conf -b -j 4
/usr/local/bin/mapcrafter_markers -v -c example.conf

Anschließend soll ein Cronjob eingerichtet werden. Dazu wird der Crontab-Editor geöffnet:

crontab -e

In der sich öffnende Datei muss nun folgende Zeile hinzugefügt werden:

0    1    * * *   (. ~/.profile; /usr/bin/screen -dmS mapcrafter /home/minecraft/updateMap.sh)

Danach kann die Datei geschlossen werden. Der Cronjob startet nun um 1 Uhr die tägliche Aktualisierung der Karte.