Wraith – A responsive screenshot comparison tool

This content is quite old. You might want to check out this modern way of visual diffing, using Puppeteer instead Wraith uses either PhantomJS, CasperJS or SlimerJS to create screen-shots of webpages on different environments and then creates a diff of the two images, the affected areas are highlighted in blue By the folks over …

DummyJS – Smart Functional Testing extension for PhantomJS

open http://my.test.site type :text John click “Say hi!” assertText .greeting Hi, John! $ dummyjs mytest.dummy ✓ open http://my.test.site ✓ type :text John ✓ click “Say hi!” ✓ assertText .greeting Hi, John! PASS: Executed 4 actions in 1s. DummyJS makes writing and running automated functional tests for websites and webapps incredibly easy. Tests can be run …

TDCSS – Super simple styleguide tool

TDCSS helps you write and document solid, maintainable and modular CSS. It’s especially well suited to adopt a test-driven approach to CSS styling – but of course you may just as well use it to build a regular online styleguide. Not too sure about calling this test-driven though, as the verificiation process is not automated …

Open Source Routing Machine (OSRM)

The Open Source Routing Machine (OSRM) is a C++ implementation of a high-performance routing engine for shortest paths in road networks. It combines sophisticated routing algorithms with the open and free road network data of the OpenStreetMap (OSM) project. OSRM is able to compute and output a shortest path between any origin and destination within …

Securing Sessions in PHP

I set out to combine all the best practice I could find into a single Session handler, to help protect against the common attack vectors. Since PHP 5.4, you are able to set the Session handler based on a class instance that extends the default SessionHandler class. Make the session cookie only available over HTTP, …

Realtime Audio-Visualizations with JavaScript

window.onload = function() { var ctx = new AudioContext(); var audio = document.getElementById(‘myAudio’); var audioSrc = ctx.createMediaElementSource(audio); var analyser = ctx.createAnalyser(); // we have to connect the MediaElementSource with the analyser audioSrc.connect(analyser); // we could configure the analyser: e.g. analyser.fftSize (for further infos read the spec) // frequencyBinCount tells you how many values you’ll receive …

Twemoji

twemoji.parse(‘I \u2764\uFE0F emoji!’); // will produce /* I <img class="emoji" draggable="false" alt="❤️" src="https://twemoji.maxcdn.com/36×36/2764.png"> emoji! */ Nugget of JavaScript to replace astral symbols (emoji) with images in browsers that don’t support them. Yes, looking at you Chrome on OS X. Images are included in the repo, or can be loaded from a CDN. Twitter Emoji for …

SSL Config Generator

Just choose the web server / web front you’re using (Apache, Nginx, HAProxy) + whether you want to support only modern, intermediate, or old versions of browsers and a proper configuration will be generated. <VirtualHost *:443> … SSLEngine on SSLCertificateFile /path/to/signed_certificate SSLCertificateChainFile /path/to/intermediate_certificate SSLCertificateKeyFile /path/to/private/key SSLCACertificateFile /path/to/all_ca_certs # modern configuration, tweak to your needs SSLProtocol …