seeseekey.net - Invictus Deus Ex Machina

Enums gibt es unter JavaScript nicht. Damit könnte der Artikel an dieser Stelle vorbei sein. Allerdings gibt es viele Wege um in JavaScript ein Verhalten oder die Strukturen zu simulieren, die am Ende gewünscht sind. Bei einem Enum würde dies so aussehen:

var DayOfTheWeek = {
  Monday: 1,
  Tuesday: 2,
  Wednesday: 3,
  Thursday: 4,
  Friday: 5,
  Saturday: 6,
  Sunday: 7
};

Genutzt wird das ganze dann so:

var dayOfTheWeek = DayOfTheWeek.Thursday;

Wer mehr über die Hintergründe rund um Enums unter JavaScript erfahren möchte dem sei der ausgezeichnete Blogbeitrag Enums in Javascript empfohlen.

Unter macOS Sierra existiert ein Dienst mit dem Namen photoanalysisd. Dieses Dienst übernimmt die Gesichtserkennung in den Mediatheken der App Fotos. Den meisten Nutzern von macOS wäre dieser Fakt im ersten Moment relativ egal, allerdings kann der Dienst zu einiger Verwirrung führen.

Ist die Fotos-App geöffnet, stoppt der photoanalysisd Dienst seine Arbeit

Hintergrund dafür ist, dass der Dienst dafür sorgt, das die CPU des Mac über einen längeren Zeitraum (bis alle Fotos analysiert worden sind) einer hoher Last ausgesetzt werden kann. Bemerkbar macht sich dies spätestens beim Lüfter. Ist die Fotos-App geöffnet, stellt der photoanalysisd Dienst seine Arbeit vorübergehend ein. Möchte man den Dienst dauerhaft deaktivieren so kann dies über das Terminal mittels:

launchctl disable gui/$UID/com.apple.photoanalysisd
launchctl kill -TERM gui/$UID/com.apple.photoanalysisd

bewerkstelligt werden. Mit dem ersten Kommando wird verhindert dass der Dienst wieder gestartet wird, während das zweite Kommando die aktuelle Instanz des Dienstes beendet.

Heute gibt es wieder eine neue Folge des seeseekey.net Podcasts und Matthias ist wieder mit von der Partie. Das Thema diesmal: OpenStreetMap – die freie Weltkarte.

Dabei geht es unter anderem um die Geschichte von OpenStreetMap, der Möglichkeit des Beitragens und deren Besonderheiten, sowie die Nutzung und Lizenzierung von OpenStreetMap-Daten. Der Podcast kann über den entsprechenden Feed abonniert werden.

Für ein kleines Projekt an dem ich zur Zeit arbeite war ich mal wieder auf der Suche nach einer sprintf Implementation für JavaScript. Und wieder wurde ich bei der gleichen Implementation – wenn auch erheblich weiterentwickelt – fündig. Seit 2007 arbeitet Alexandru Marasteanu an seiner Implementation der sprintf Funktion für JavaScript. Mit der Hilfe dieses Funktion wird so sprintf-like aus einem:

sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants")

ein:

Polly wants a cracker

Der Quelltext ist auf GitHub zu finden. Die Implementation ist freie Software und unter der 3-Klausel-BSD-Lizenz lizenziert.

Wer Entwickler ist oder sich anderweitig mit komplizierten Dingen beschäftigt hört dabei meist Musik. Mit dem passenden Soundtrack im Ohr gehen solche Arbeiten leichter von der Hand.

musicforprogramming.net

Auf der Webseite musicforprogramming.net findet man eine Reihe von Mixes, welche diesen Bedürfnissen entsprechen. In der Selbstbeschreibung klingt das dabei so:

Through years of trial and error – skipping around internet radio stations, playing our entire music collections on shuffle, or just hammering single albums on repeat, we have found that the most effective music to aid prolonged periods of intense concentration tends to have a mixture of the following qualities:

Drones
Noise
Fuzz
Field recordings
Vagueness (Hypnagogia)
Textures without rhythm
Minor complex chords
Early music (Baroque, lute, harpsichord)
Very few drums or vocals
Synth arpeggios
Awesome / daunting / foreboding
Walls of reverb

Browsergames gibt es viele. Ab und an sticht ein Browsergame aus der Masse hervor. Eines dieser Spiele ist Candy Box 2. Am Anfang geht es nur um die Frage ob man Süßigkeiten ißt oder auf den Boden wirft. Was am Anfang noch trivial wirkt, endet zum Ende hin in einem minimalistischen ASCII-RPG.

Die Karte von Candy Box 2

Zu finden ist das Spiel unter candybox2.net. Das Spiel ist freie Software – der Quelltext ist unter der GPL3, die ASCII Grafiken unter der Creative Commons Lizenz CC-BY-SA lizenziert. Wer im Spiel nicht mehr weiterkommt, kann die Candy Box Wiki zur Hilfe nehmen.

Im Laufe der Zeit kann es passieren dass die genutzte Mediathek der Fotos-App unter macOS kleinere Fehler aufweist. Wenn dieses Problem auftritt kann die Mediathek repariert werden. Dazu muss im ersten Schritt die Fotos-App geschlossen werden.

Die Mediathek wird repariert

Anschließend wird sie über das Icon mit gedrückter Command– und Optionstaste wieder gestartet. Damit wird die Fotos-App im Reparaturmodus gestartet. Die Reparatur muss nach dem Start bestätigt werden. Danach beginnt der eigentliche Reparaturvorgang, der je nach Größe der Mediathek durchaus einige Stunden in Anspruch nehmen kann.

Wenn man Java-Keystore-Dateien bearbeiten möchte, so kann man dies natürlich mit dem im Java SDK mitgelieferten Kommandozeilentool keytool tun. Einfacher ist es mit der grafischen Anwendung KeyStore Explorer zu arbeiten.

KeyStore Explorer

Mit dem KeyStore Explorer können unter anderem Keystore-Dateien bearbeitet, Zertifikate unterschiedlicher Formate geöffnet und analysiert werden. Zu finden ist das Tool unter keystore-explorer.org. Der KeyStore Explorer ist freie Software und unter der GPL in Version 3 lizenziert. Der Quelltext kann über GitHub bezogen werden.

Unter Java ist es möglich mit sogenannten Keystores zu arbeiten. Dabei handelt es sich um Containerdateien in welchen Zertifikate gespeichert werden können. Diese können dann z.B. beim Start eines Tomcat mit übergeben werden. Damit sind die Zertifikate der Java-Applikation bekannt. Möchte man ein solches Zertifikat in einen Keystore importieren, so nutzt man das Tool keytool:

keytool -importcert -file server-ca-web.pem -keystore store.jks -alias "server-ca-web"

Das Tool ist im Java SDK enthalten und wird für die Verwaltung der Keystores genutzt. In diesem Fall wird das Zertifikat server-ca-web.pem in den Keystore store.jks geschrieben.

Manchmal ist man als Entwickler auf der Suche nach einem Stück Quellcode. Die Gründe dafür sind vielfältig und natürlich kann man für diesen Zweck die Suchfunktionen einzelner Portale wie GitHub und Co. nutzen um den gewünschten Quelltext zu finden.

searchcode in Aktion

Einfacher wird das ganze mittels searchcode.com, einer Quelltextsuchmaschine. Bei searchcode, werden nach eigenen Angaben, über sieben Millionen Projekte verschiedenster Plattformen durchsucht. Für den Gebrauch in Firmen, welche natürlich auch private Repositories betreiben, gibt es searchcode dabei auch als Lösung zum selberhosten. Der Quelltext von searchcode ist auf GitHub zu finden. Zu beachten ist hierbei, das es sich um keine freie Software handelt und man damit die Lizenzbedingungen bei der Eigennutzung des Servers genau lesen sollte.