miniz — fast single-file ZIP implementation in C

I have an unhealthy obsession with one-file implementations of useful things in C, which you can just drop into your project and use without configuring libraries with dozens of files. Miniz is one such project: it is a single 225 KB miniz.c, which contains a zlib replacement plus functions to read/write ZIP files.

Continue reading miniz — fast single-file ZIP implementation in C

SSL certificate chain resolver

When you purchase an SSL certificate from a certificate authority, in most cases it is signed not by the root certificate of this authority, but by an intermediate certificate(s). The path from your certificate through those intermediates and up to the root is called a certificate chain. While browsers can resolve those chains by downloading certificates from sources specified in them, the whole chain except for the root cert is better to be included in the response your server sends during TLS connection.

Continue reading SSL certificate chain resolver

Maverix — Bootstrap theme for webapps with Mac look

Currently native apps built with web technologies are on the rise. Projects like NW.js (node-webkit) and Atom Shell allow us to write cross-platform GUI applications with HTML5, CSS, and JavaScript. While many projects use one look for every operating system they run on, sometimes you want to have a native look for your hybrid app. That’s when Maverix comes into play: it’s a Bootstrap theme with OS X Mavericks look specifically designed to be used in “native webapps”.

Continue reading Maverix — Bootstrap theme for webapps with Mac look

Garlic.js — automatically persist forms until submission

Everyone hates when something happens to that huge web form they were filling. Accidentally closed a browser window? Pressed a Back button? Computer crashed? “Arrgghh, have to fill the form again!” — says your user… or just leaves your website. If you don’t want this to happen, Garlic.js is here to help you!

Continue reading Garlic.js — automatically persist forms until submission

Minimize PNG files using lossy compression

Unlike JPEG, PNG is a lossless image format, which is why it reproduces pictures perfectly, but makes many of them — mostly photographs — much larger than what you’d get with lossy codecs. PNG is also the only way to get pictures with transparency (alpha channel) display in all browsers, so if we need images with alpha channel, we have to use large PNGs. However, there’s a little trick we can use to make them smaller: by applying lossy preprocessing.

Continue reading Minimize PNG files using lossy compression

snabbt.js — minimalistic JavaScript animation library

Snabbt.js is a new simple and fast JavaScript animation library. It is minimalistic — 4 KB (minimized and gzipped) — and according to its author, focuses on “things that modern browsers can animate cheaply: transforms and opacity”. Snabbt uses CSS3 transforms for animation.

Continue reading snabbt.js — minimalistic JavaScript animation library