Zufällige Inhalte in einem WordPress-Widget darstellen

Um zufällige Inhalte in einem WordPress-Widget darzustellen, gibt es einige Plugins, welche sich dieser Anforderung annehmen. Allerdings wirken sie in den meisten Fällen leicht überdimensioniert, sodass ich auf der Suche nach einer leichtgewichtigen Lösung war. Herausgekommen ist dabei folgendes Snippet:

<div id="content0" style="display: none;">A</div>
<div id="content1" style="display: none;">B</div>

<script>
  randomIndex = Math.floor(Math.random()*2);
  document.getElementById("content" + randomIndex).style.display = "inline";
</script>

Für jeden zufälligen Inhalt wird ein div-Container angelegt und dieser ist initial nicht sichtbar. Im Skriptteil wird nun zufällig einer dieser div-Container sichtbar geschaltet. Einziger Wermutstropfen ist, dass der Widget-Titel auf diese Art und Weise nicht angepasst werden kann. Durch eine erweitere Version des Skriptes kann dieses Problem beseitigt werden:

<div id="content0" style="display: none;">A</div>
<div id="content1" style="display: none;">B</div>

<script>
  randomIndex = Math.floor(Math.random()*2);
  document.getElementById("content" + randomIndex).style.display = "inline";
  
  const titles = ["A", "B"];
  document.getElementById("custom_html-6").getElementsByClassName("widget-title")[0].textContent=titles[randomIndex];
</script>

In dieser Version werden die Titel in einem Array hinterlegt. Die entsprechende ID des gewünschten Widgets muss vorher einmalig per Hand ermittelt werden und kann dann genutzt werden, um den Titel zu setzen.

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.