#javascript

Thanos.js

Reduce the file size of your project down to 50%, by randomly deleting half of the files.

Dazu muss nicht nur eine Library sondern konsequenterweise gleich sechs installiert werden:

$ gem install power

$ gem install reality

$ gem install mind

$ gem install space

$ gem install time

$ gem install soul

(via Jens)

The Super Tiny Compiler

Jamie Kyle vermittelt das Funktionieren eines Compilers – im Quelltext eines Compilers. Tolle Idee.

This is an ultra-simplified example of all the major pieces of a modern compiler written in easy to read JavaScript.

Reading through the guided code will help you learn about how most compilers work from end to end.

Bookmarklet to get the number of your GitLab contributions in 2018

If you are working with GitLab and are interested in the number of contributions you’ve made this year, here’s a handy, little bookmarklet to calculate your contributions.

GitLab Contributions Bookmarklet

  • Drag the link above to your browser’s bookmark bar.
  • Go to https://gitlab.com/users/​[username]/activity
    (replace [username] with, well, your username and, if necessary, gitlab.com with your custom domain).
  • Hit the bookmarklet and – voilà – there’s the number of your contributions made in 2018! 🎉

Screenshot of GitLab contributions bookmarklet

Here’s the JavaScript, if you’re interested or want to run it in your console:

(function() {
	var rects = document.querySelectorAll('#activity .js-contrib-calendar rect.user-contrib-cell');
	var name = document.querySelectorAll('.user-info .cover-title')[0].textContent.replace(/(\r\n\t|\n|\r\t)/gm,'');
	var yearToCount = '2018';
	var counter = 0;
	rects.forEach((item) => {
		var text = item.getAttribute('data-original-title');
		var count = text.substr(0, text.indexOf(' ')); 

		if (text.indexOf(yearToCount) > -1 && count !== 'No') {
			counter += parseInt(count);
		}
	});
	alert(name + ' did ' + counter + ' contributions in ' + yearToCount + '.');
}())

OpenSC2K, SimCity 2000 build with JavaScript

In unserer beliebten Reihe der JavaScript-Nachbauten von Retro-Software folgt heute nach Winamp und MS Paint ein Spielklassiker, mit dem ich damals unendlich viel Zeit verbrachte: SimCity 2000, nachgebaut mit JavaScript, der HTML5 Canvas API1, SQLite und eingepackt mit Electron.

Update, 24.08.2018: Das Repo steht nicht mehr zur Verfügung → DMCA-Takedown-Notice.

  1. Die übrigens auch für den interaktiven Header dieses Blogs verwendet wird. []

Numi, powerful calculator and converter for macOS

Bei Belle B. Cooper bin ich heute auf Numi aufmerksam geworden, einer „beautiful calculator app for Mac“, wie es auf der offiziellen Webseite heißt, was der Sache aber nicht ganz gerecht wird. Vielmehr ist die App von Dmitry Nikolaev eine hübsche Mischung aus Taschen­rechner, Notiz-App, Spreadsheet und Unit Converter. Variablen, umwandeln von Einheiten – alles möglich, aber nicht allzu außergewöhnlich.

Was Numi aber von meiner bisherigen, ansonsten Feature-gleichen Lösung Soulver (siehe meine Mac Essentials von 2014) unterscheidet, ist zum einen dass es direkt eine Alfred-Integration mit sich bringt und so direkt in meinem Stück Lieblingssoftware benutzt werden kann, zum anderen dass die App per JavaScript-API erweitert werden kann. So lassen sich eigene globale Variablen oder Berechnungs­funktionen hinzufügen, womit natürlich unendliche Use Cases denkbar sind, die Numi von der Masse der anderen ansehnlichen Rechner deutlich abhebt.1

Ich bin gespannt, wie’s damit weitergeht, aber das sieht sehr vielversprechend aus. Während des Beta-Status ist Numi zudem auch kostenlos zu haben.

  1. Erinnert mich dahingehend etwas an Hyper, der JavaScript-betriebenen Terminal-Alternative, die ich ebenfalls weiterempfehlen kann. []