Skip to content

Instantly share code, notes, and snippets.

@sergejmueller
sergejmueller / email.html
Created December 8, 2016 08:09
Media Queries with dynamically image loading
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Your Message Subject or Title</title>
<style type="text/css">
.bg {
width:300px;
@sergejmueller
sergejmueller / gist:b8668c56b07d881a7ce9
Last active June 12, 2021 09:36
Batch-Konvertierung der PNG- und JPEG-Dateien nach WebP
ls -1 *.jpg | xargs -n 1 bash -c '/usr/local/lib/libwebp-0.4.0/bin/cwebp "$0" -o "${0%.*}.webp" -quiet -q 90'
ls -1 *.png | xargs -n 1 bash -c '/usr/local/lib/libwebp-0.4.0/bin/cwebp "$0" -o "${0%.*}.webp" -quiet -q 0 -lossless'
@sergejmueller
sergejmueller / vat_rates.php
Last active February 7, 2021 13:59
List of EU Countries (ISO-3166-2) with equivalent VAT Rates
$vat_rates = array(
'AT' => 20, // Austria
'BE' => 21, // Belgium
'BG' => 20, // Bulgaria
'HR' => 25, // Croatia
'CY' => 19, // Cyprus
'CZ' => 21, // Czech Republic
'DK' => 25, // Denmark
'EE' => 20, // Estonia
'FI' => 24, // Finland
@sergejmueller
sergejmueller / mime.types
Created November 27, 2013 09:00
Nginx: Detecting WebP support with Header Vary Accept. Filename format: image.jpeg / image.webp
...
image/webp webp;
...
@sergejmueller
sergejmueller / ip-blacklist.conf
Last active December 16, 2020 19:51
Fail2Ban-Konfiguration für die manuelle Sperrung bestimmter IP-Adressen. Weitere Informationen unter https://github.com/sergejmueller/sergejmueller.github.io/wiki/Fail2Ban:-IP-Firewall
# Fail2Ban configuration file
#
# List of blocked ip addresses
#
# Server: Nginx
# Author: Sergej Müller
#
# File path: /etc/fail2ban/filter.d/ip-blacklist.conf
@sergejmueller
sergejmueller / index.html
Created February 21, 2020 13:41
Radio fields check and uncheck
<input type="radio" name="1" class="radio">
<input type="radio" name="1" class="radio">
<input type="radio" name="1" class="radio">
<input type="radio" name="1" class="radio">
<br>
<input type="radio" name="2" class="radio">
<input type="radio" name="2" class="radio">
<input type="radio" name="2" class="radio">
<input type="radio" name="2" class="radio">
@sergejmueller
sergejmueller / gist:088dce028b6dd120a16e
Last active November 14, 2019 11:20
mozjpeg vs. libjpeg-turbo – Output File Size and Execution Time

Lossless and progressive optimization of multiple (random picked, less than 1 MB) JPEG images with mozjpeg 2.0 and libjpeg-turbo.

Original Size mozjpeg Size libjpeg-turbo Size mozjpeg Speed libjpeg-turbo Speed
621 KB 612 KB 615 KB 0.658 s 0.297 s
505 KB 475 KB 477 KB 0.481 s 0.204 s
391 KB 376 KB 385 KB 0.846 s 0.441 s
888 KB 780 KB 794 KB 0.786 s 0.346 s
700 KB 668 KB 670 KB 0.765 s 0.320 s
@sergejmueller
sergejmueller / BucketPolicy.json
Last active February 23, 2019 20:16
AWS S3 Bucket Policy to protect a bucket web access by IP (Range)
{
"Version": "2012-10-17",
"Id": "Policy1550216993456",
"Statement": [
{
"Sid": "Stmt1550216977234",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-site/*",
@sergejmueller
sergejmueller / Cloudinary.php
Created February 16, 2019 19:48
Picture upload to Cloudinary without bloated Cloudinary PHP-SDK.
<?php
// Cloudinary API
define('CLOUDINARY_API_KEY', 'XXXXXXXX');
define('CLOUDINARY_SECRET_KEY', 'XXXXXXXX');
define('CLOUDINARY_API_URL', 'https://api.cloudinary.com/v1_1/XXXXXXXX/image/upload');
// Image handling
$path = 'picture.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
@sergejmueller
sergejmueller / functions.php
Last active December 6, 2018 01:11
WordPress: Disable Post-by-Email configuration and functionality
<?php
add_filter('enable_post_by_email_configuration', '__return_false');