Skip to content

Instantly share code, notes, and snippets.

View salvatorecapolupo's full-sized avatar
🎯
Focusing

Salvatore Capolupo salvatorecapolupo

🎯
Focusing
View GitHub Profile
@salvatorecapolupo
salvatorecapolupo / lovecraft.md
Created February 8, 2026 12:12
L'Orrore Tridimensionale: Cronaca di un Arredo

È necessaria una premessa: non cercavo l'orrore. Cercavo, nella mia ingenua follia borghese, soltanto un tocco di stile. Avevo letto su quel foglio patinato, quella cronaca dannata di tendenze effimere che gli uomini chiamano Living, di come un simulacro appeso potesse donare "carattere" a una stanza. Ah, se solo avessi saputo quale tipo di carattere avrei invitato tra le mie mura domestiche, avrei bruciato quella rivista e mi sarei cavato gli occhi pur di non vedere.

Ecco dunque il resoconto di come il concetto di "arredamento tridimensionale", tanto lodato dagli scribi del design, si sia rivelato per me un portale verso abissi innominabili.

Tutto iniziò con l'acquisto. L'articolo parlava di "fascino versatile", di suggestioni tribali ed esotiche. Stolto! Mi recai da quel antiquario in Via dei Giubbonari, un uomo dal volto itterico che puzzava di formaldeide e spezie antiche. Lì la vidi. Non era una semplice maschera veneziana, né un manufatto africano in legno scuro. Era... altro.

L'articolo sugg

@salvatorecapolupo
salvatorecapolupo / lyp_sync.py
Created February 8, 2026 09:03
Creare un video da un file MP3 con sincronizzazione labbra basica.
import numpy as np
import cv2
import librosa
from numba import jit
import os
from moviepy import VideoFileClip, AudioFileClip
# --- CONFIGURAZIONE ---
AUDIO_FILE = 'Carmina Burana.mp3'
TEMP_VIDEO = 'temp_silent.mp4'
@salvatorecapolupo
salvatorecapolupo / chmod-wordpress.md
Created February 4, 2026 12:42
Se i permessi sono sbagliati, WordPress non può aggiornarsi, non puoi caricare immagini o, peggio, il tuo sito è vulnerabile agli hacker. Ecco come sistemare tutto in pochi minuti.

🛡️ Guida Pratica: Permessi File e Cartelle WordPress

Se i permessi sono sbagliati, WordPress non può aggiornarsi, non puoi caricare immagini o, peggio, il tuo sito è vulnerabile agli hacker. Ecco come sistemare tutto in pochi minuti.


1. Le Basi: Cosa significano i numeri? (chmod)

In Linux, i permessi sono rappresentati da 3 numeri (es. 755):

@salvatorecapolupo
salvatorecapolupo / download-big-auth-file.sh
Created January 20, 2026 17:40
Download large authenticated files from Twitter/X using wget and browser cookies
wget -c \
--load-cookies cookies.txt \
--limit-rate=800k \
--tries=3 \
--timeout=45 \
"URL"
This gist explains how to download large files from Twitter/X when authentication is required
and the browser fails due to unstable or low bandwidth connections.

Variabili, array, DOM, eventi, funzioni, programmazione asincrona e async/await.
I quesiti sono pensati per testare sia la comprensione teorica che la capacità pratica, proprio come in una verifica scritta del corso TPSIT.


📝 10 Quesiti di JavaScript – Corso TPSIT Classe 5E


Quesito 1: Variabili e ambito

@salvatorecapolupo
salvatorecapolupo / genera-mese-calendario.py
Created January 11, 2026 11:05
Genera un pdf del calendario del mese corrente, in formato griglia, stampabile senza sprechi di inchiostro e con spazio per scrivere nei giorni.
import calendar
import locale
from datetime import datetime
from reportlab.lib.pagesizes import A4
from reportlab.lib.colors import HexColor
from reportlab.pdfgen import canvas
from reportlab.lib.units import cm
# =========================
@salvatorecapolupo
salvatorecapolupo / db_wp_backup.sh
Last active January 1, 2026 19:50
A single Bash script to backup a WordPress site. It automatically extracts MySQL credentials from wp-config.php, creates a full database dump optimized for large databases, and archives the entire WordPress directory into a compressed file. Ready to run via SSH with minimal configuration.
#!/bin/bash
# ===== CONFIGURAZIONE BASE =====
WP_PATH="/var/www/html"
BACKUP_DIR="$WP_PATH"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_NAME="wordpress_backup_$TIMESTAMP"
DUMP_FILE="$BACKUP_DIR/${BACKUP_NAME}.sql"
ARCHIVE_FILE="$BACKUP_DIR/${BACKUP_NAME}.tar.gz"
stack(
sound("<pink brown>")._scope(),
s("oh*4").speed("<1 0.95 1.1 0.9>/2").gain(0.25).hpf(300).pan(rand),
s("bd sd [~ bd] sd").gain(0.2)
)
$: s("triangle*4").decay(0.5).n(irand(100)).scale('C:minor').room(1).roomsize(10)
@salvatorecapolupo
salvatorecapolupo / ricerca-esaustiva.cpp
Created November 27, 2025 16:18
Demo - Ricerca esaustiva - Brute force basico
#include <iostream>
#include <vector>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std;
int main() {
srand(time(0));