Instantly share code, notes, and snippets.


SVG with two colors embedded


Batch delete old file from your slack workspace

Freeing space

To free up some space in your slack workspace and having to delete each file by hand

To run the app you first need a legacy token from slack for your workspace. Then download the cleanSlack.js file and run it via Node.js.

By default the script will delete files older than a year. You can change that in the TIMESTAMP variable.


Stuff I wish I'd known sooner about service workers

I recently had several days of extremely frustrating experiences with service workers. Here are a few things I've since learned which would have made my life much easier but which isn't particularly obvious from most of the blog posts and videos I've seen.

I'll add to this list over time – suggested additions welcome in the comments or via

Use Canary for development instead of Chrome stable

Chrome 51 has some pretty wild behaviour related to console.log in service workers. Canary doesn't, and it has a load of really good service worker related stuff in devtools.


How to install a man page into a node.js app

Cuttlebelle man page

Installing a man page is not easy as there are little infos out there about it.

After a lot of trial and error, google searches and alpha publishing my app I finally have a collection of things I need to do to get it working:

View find node process to

To find a hidden node process

List all node processes:

ps -e|grep node

Make note of the process ID and kill it by:


Keybase proof

I hereby claim:

  • I am dominikwilkowski on github.
  • I am wilkowskidom ( on keybase.
  • I have a public key whose fingerprint is 3C52 8C05 96D9 F267 1FB5 B776 E8CD F623 8194 F13C

To claim this, I am signing this object:


Flatten a deep javascript object into single-depth object with ES6

Call it via:

const flat = flatten( realDeepObject );

Test case:


delete pushed tag

git tag -d [tagname]
git push origin :refs/tags/[tagname]

delete latest pushed commit

View 010-constructor.js
* Application framework and settings
* [Description of application]
* @license [url] [description]
* @author [author] [@email]
* @repository [url]


This is a basic collection of things I do when setting up a new headless ubuntu machine as a webserver. Following the steps below should give you a reasonable secure server with HTTP/2 support (including ALPN in chrome) and the fast NGINX server. I am happy to add things so leave a comment.


After creating the server (droplet on DigitalOcean) log in with