Skip to content

Instantly share code, notes, and snippets.

@sergioccrr
sergioccrr / net_salary.gs
Created October 12, 2023 11:36
Apps Script para calcular el salario neto en Google Sheets (España)
// Based on: https://gist.github.com/straach/30789d4c30fb5174ec52ea7521cc4e4a
// Note: taxpayers without children
// Usage example: =net_salary(18000)
function calculate_tax_by_slice(total, fromCurrency, toCurrency, percentage) {
if (total < fromCurrency) {
return 0;
}
<?php
function get_user_classes() {
$dc = get_declared_classes();
return array_filter($dc, function($className) {
return (!(new ReflectionClass($className))->isInternal());
});
}
String.prototype.cleanSpaces = function(str) {
if (!str) {
str = this;
}
return str.replace(/\s+/g, ' ').trim();
};
@sergioccrr
sergioccrr / cron.dehydrated.sh
Last active March 6, 2020 13:49
Script for launch dehydrated (Let's Encrypt) with crontab
#!/bin/bash
set -uo pipefail
IFS=$'\n\t'
# 0 12 * * 1 /etc/dehydrated/cron.dehydrated.sh
# From: https://serverfault.com/a/512780
# From: https://stackoverflow.com/a/41943779
if tty -s; then
exec 5>&1
@sergioccrr
sergioccrr / backup_mysql.sh
Last active March 6, 2020 14:07
Backup MySQL MyISAM with minimum downtime
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
# Backup MySQL MyISAM with minimum downtime
# IMPORTANT! No for InnoDB
# Based on https://stackoverflow.com/a/39327926
# TODO: check available space
@sergioccrr
sergioccrr / fb.php
Created January 3, 2016 14:51
Check if a request is from Facebook Crawler
<?php
function check_facebook() {
$IP = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : false;
$UA = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : false;
if (!$IP || !$UA) return false;
$UAs = ['facebookexternalhit', 'Facebot', 'visionutils'];
$UAs = array_map('preg_quote', $UAs);
if (!preg_match('#^' . implode('|', $UAs) .'#i', $UA)) return false;
@sergioccrr
sergioccrr / ig.js
Created July 19, 2015 07:57
Bookmarklet for view all Instagram likes
javascript:(function(){
var links = [];
var likes = _sharedData.entry_data.PostPage[0].media.likes.nodes;
var container = document.querySelector('.-cx-PRIVATE-PostInfo__likesInfo');
for (var i in likes) {
links.push('<a href="/' + likes[i].user.username + '/" class="-cx-PRIVATE-UserLink__root">' + likes[i].user.username + '</a>');
}
container.innerHTML = links.join(', ');
})();
@sergioccrr
sergioccrr / ssh-key.sh
Created December 5, 2014 18:03
Script for create and append SSH key in a remote server
#!/bin/sh
FKEY="$HOME/.ssh/id_rsa"
FPUB="$FKEY.pub"
if [ ! -f "$FPUB" ]; then
echo 'Type your email, followed by [ENTER]:'
read COMMENT
ssh-keygen -t rsa -N '' -C "$COMMENT" -f "$FKEY"
@sergioccrr
sergioccrr / .htaccess
Created August 22, 2014 10:18
Bloquear acceso a scripts en wp-includes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-includes/js/tinymce/ - [S=1]
RewriteRule ^wp-includes/.*\.(php|rb|py|pl)$ - [F,L,NC]
</IfModule>
@sergioccrr
sergioccrr / factura.html
Created August 5, 2014 12:37
De cuando era autónomo
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<link href="http://fnt.webink.com/wfs/webink.css/?project=C70D1354-AD5F-440B-9B83-AE04D8C2E103&fonts=1B6C2E6C-BB21-53D3-2175-C814D91AD16C:f=Aller-Bold,32A3E230-3101-A662-F6D5-D8B9D0A38A5B:f=Aller-Regular,C7662775-65E4-3DE5-DE19-D61377E1BE79:f=Aller-Light,880096C9-42EC-CFB6-C094-7540101C8F7B:f=Aller-BoldItalic,9C5DF801-C745-E177-908F-369BCECD52B7:f=Aller-Italic,521D5111-7D3C-B8EC-88B6-BBED2BE5F224:f=Aller-LightItalic" rel="stylesheet" type="text/css"/>
<style type="text/css">
* {
margin: 0;
padding: 0;