CSS Shapes, Clipping and Masking

The release of Firefox 54 is just around the corner and it will introduce new features into an already cool CSS property: clip-path. clip-path is a property that allows us to clip (i.e., cut away) parts of an element. Up until now, in Firefox you could only use an SVG to clip an element: But …

Safari Auto-Play Policy Changes for macOS

The Safari team: Safari in macOS High Sierra uses an automatic inference engine to block media elements with sound from auto-playing by default on most websites. Safari 11 also gives users control over which websites are allowed to auto-play video and audio by opening Safari’s new “Websites” preferences pane, or through the “Settings for This …

Polluted Water Popsicles

What if one were to create water popsicles from sewage water? Art students Hung I-chen, Guo Yi-hui, and Cheng Yu-ti from the National Taiwan University of the Arts did just so: The group collected polluted water from 100 locations in Taiwan, first freezing the collected sewage samples and then preserving their creations in polyester resin. …

Gallery Invasion

A dynamic projection mapping by Antoon Verbeeck and Filip Sterckx located in Leuven, Belgium: We used a Panasonic PT-VZ570U projector, which had the MH12-VZ75L Mirror Head from Dynamic Projection Institute mounted in front of the projector’s lens. This is basically a mirror that is motorized and programmable and that can rotate 270 degrees, as well …

How the CSS minmax() Function Works

One incredibly useful new feature introduced with the CSS Grid Layout Specification is the minmax() function. This function opens the door to us being able to write much more powerful and succinct CSS by allowing us to set, as a value for a grid track, a function including both a minimum and maximum value. Using …

runes – Unicode-aware JS string splitting with full Emoji support

At Small Town Heroes I’m currently working on a newsreader app built using React Native. On Android (even 7.1.1) we noticed this weird issue where some emojis would render incorrectly when we were applying styling on it using index-based ranges: the range seemed to be off by one, splitting the emoji into its separate bytes. …

The problem with maps // Playing with Projections

One of the core ideas covered in my talk named “Geoshizzle” on mapping is that the Mercator projection is way overdue. It’s main feature of preserving angle measurements is no longer feasible in this time and age (it was back when you were sailing a boat to get somewhere), and it’s distortion of areas has …

Introduction to commonly used ES6 ES2015 features

Good overview to get started with ES2015 by Zell Liew in case you’re still not using it (which you should; just do it!). As he puts it: JavaScript has progressed a ton in the recent years. If you’re learning JavaScript in 2017 and you haven’t touched ES6 ES2015, you’re missing out on an easier way …

Debugging Node.js using the Chrome DevTools

With Chrome 57+, the Node.js debugging feature is enabled by default. To start debugging, run your Node.js application [using Node 6.4+] with the –inspect flag. Like so: $ node –inspect <your_file>.js Open the outputted URL or visit chrome://inspect/ to open dedicated DevTools for Node to start debugging 🙂 Debugging Node.js with Google Chrome →