Seriously guys... nowadays you have no reason to use windows... but if you are forced... then install gsudo on first login and thank me later
blog degli effetti collaterali: cose che accadono quando
un ragno radioattivo ti morde, quando rimani esposto
ai raggi cosmici, o, come nel mio caso, quando
al posto della materia grigia il PadrEterno ti ha donato
un'allegra e variegata macedonia ;-P
btw: si ringrazia di cuore Max Schiavetta per SuperZip (qui a fianco)
Cerca qui le cose strambe
2026-03-26
2025-04-24
grep di stdin tenendo l'header
A volte puo` essere utile un grep di stdin tenendo l'header
Si definisce in bash (nel .bashrc o simile) una funzione cortissima tipo cosi` =>
hgrep () { read line; echo "$line"; grep $* ; }ci sono rari casi in cui puo` essere leggermente pericolosa, ma nel complesso pare accettabile
esempio d'uso:
# lsof | hgrep tripwire COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME tripwire 2285668 root cwd DIR 253,0 36864 524292 /root tripwire 2285668 root rtd DIR 253,0 4096 2 / tripwire 2285668 root txt REG 253,0 3140528 594 /usr/sbin/tripwire tripwire 2285668 root 4u REG 253,3 51822592 36 /tmp/twtempUYqaRJ (deleted) # # ps aux | hgrep /usr/sbin/tripwire USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2285668 96.1 1.4 484084 467676 ? R 14:45 16:33 /usr/sbin/tripwire #
2025-04-09
preventing rdp session from being locked with pyautogui
I have to work on 2 simultaneous rdp connections on two screens
and every 5/10 minutes or so one of them got locked (you know: security policies...)
so I ended up with this workaround: a simple infinite-loop python script that
I can launch in a local cmd shell:
every minute it simulates a click and an Esc key in both rdp window (and this, in my specific case, cannot cause any harm, but beware: YMMV)
import pyautogui, random, sys
from tkinter import Tk
from time import sleep
pyautogui.PAUSE = 0.01
num_times = 0
while True:
num_times += 1
print("loop number %d" % num_times)
sleep(1)
print(".")
sleep(1)
print(".")
z1, z2 = pyautogui.position()
pyautogui.moveTo(-700, 300, duration=0.1)
pyautogui.click()
sleep((0.4 + random.random()) / 4)
pyautogui.hotkey("esc")
pyautogui.moveTo(z1, z2, duration=0.1)
pyautogui.click()
sss = 48.4 + 6.01 * random.random()
print("sleeping for %d s " % int(sss))
sleep(sss)
print("this statement just marks the script end, but it won't be ever executed")
UPDATED on 2026-03-25
there is a simpler solution using
https://pypi.org/project/wakepy/
=>
from wakepy import keep
from time import sleep
@keep.presenting
def long_running_task():
while True:
sleep(60)
print(datetime.now())
long_running_task()
mp3 not accepted by audacity
in case you are trying to import an mp3 file with Audacity and it fails with error "incorrect filetype"
you can check it with the file command line tool in cywin/Linux/etc
$ file ./somefile.mp3
./somefile.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
$
after some googling it turned out that a simple fix is using mp3validate
https://mp3val.sourceforge.net/
(binaries available for windows/linux/etc)
for Debian/Ubuntu you should be able to use a plain
sudo apt install mp3val
in case you do want to proceed with fixing the file without creating a backup you can simply launch this command:
mp3val somefile.mp3 -f -nb
and then boom - Audacity will be happy in importing it.
2024-10-30
How to fix chrome crippled fonts
This bug happened to me very rarely (once every 5 or 6 years?), but, for me, being forced to read with crippled fonts in the browser is a big pain in the back
So this is a quick and dirty explanation of how to fix:
- go to chrome flags
- disable Accelerated 2D canvas
- restart the browser
see the image below for further details
2024-10-15
how to fix "sudo su -" when it has become slow in starting
in case someone is wondering why, from time to time, on a linux server the command
sudo su -
seems stuck or just much slower than normal in starting.. this may be because when the command
sudo su -
is starting, by default it scans wtmp to report last login time from user root and, if on such servers there are hundreds of users, last root access entry may be deep in the access list
the quick trick I have found to fix it is to launch first a simple
sudo bash
(so a new entry for root is reported at the top of wtmp) and then closing it at once - after that any next
sudo su -
returns to be as fast as usual
2022-11-13
video tiktok senza account
fare click col destro su vieo tiktok postato su twitter ottenendo il link "corto" tipo
https://t.co/pMXctAOMqX
metterlo nella barra e ottenere il link tiktok che chiede il login
https://www.tiktok.com/login?redirect_url=https%3A%2F%2Fwww.tiktok.com%2F%40francescosalvioriginal%2Fvideo%2F7158083958142471429%3F_t%3D8WqltGmy8hR%26_r%3D1&lang=en&enter_method=mandatory
fare pulizia tenendo utente e numero video
sostituendo %40 con "@" e %2F con "/"
arrivando a
https://www.tiktok.com/@francescosalvioriginal/video/7158083958142471429
e poi messo nella barra che appare alla pagina di un downloader online tipo
https://ttdownloader.com/
(mi raccomando usando finestra browser anonima e adblock tipo muBlock origin)
vi arriva una redirezione al video diretto tipo
https://ttdownloader.com/?url=https://www.tiktok.com/@francescosalvioriginal/video/7158083958142471429
e quindi scaricare il video facendoci click col destro
2022-06-10
2022-05-06
Accedere alle proprie password su mRemoteNG
Al giorno d'oggi per i sistemisti che lavorano su molte VM
le utility per la gestione agile dei remote desktop sono spesso fondamentali.
Nel mio caso mRemoteNG risolve la maggior parte delle problematiche in maniera eccellente.
Forse l'unico inconveniente incontravo di tanto in tanto era di trovare la password scaduta e dover fornire quella vecchia per mettere quella nuova...
Ma quella vecchia l'avevo affidata criptata al file di configurazione di mRemoteNG proprio per non doverla memorizzare...
Fortunatamente esiste una soluzione semplice ma allo stesso tempo astuta:
farsela dire da mRemoteNG stesso aggiungendo un comando di test che ce la riporta a video come spiegato qui
Ovviamente questo trucco da un lato ci risulta molto comodo, ma dall'altro ci ricorda ancora una volta che e` fondamentale proteggere l'accesso all'account da cui mRemoteNG viene lanciato...
2022-01-14
Batteria del cellulare Samsung A32 con Android 11 che non si vuole caricare
Stasera abbiamo fronteggiato una emergenza strana:
la batteria del cellulare Samsung A32 con Android 11 non voleva saperne di caricarsi (e la batteria al 5% non fornisce un ampio margine di manovra).
Abbiamo provato 3 cavi usb-C diversi e 2 caricatori originali
sia con il telefono incriminato che con un altro perfettamente funzionante - dai controlli incrociati il verdetto era inequivocabile: tutti i caricatori e i cavi sono sani
il problema e` nel telefono in questione.
All'inizio ho provato ad ipotizzare che ci fosse troppo gioco nel connettore del telefono... poi per fortuna con altre prove un nuovo sintomo: "dispositivo USB Android non riconosciuto". Questo ci ha indotto a seguire anche la pista del problema software. Abbiamo trovato un post interessante che parlava di "cancellazione dati" e "usbsettings"
L'utente in questione ha ammesso che non lo spegne quasi mai - forse un paio di volte al mese. Alla fine con Google cercando bene siamo giunti a questa procedura:
- "Impostazioni"
- "Applicazioni"
- "Applicazioni personali" --> espandere il menu` con le "tre lineette" con la freccia verso il basso
- "Mostra applicazioni di sistema" (checkbox da attivare)
- scorrere verso il basso la lista quasi fino in fondo, ossia fino a raggiungere e selezionare "USBsettings"
- "Memoria archiviazione"
- "Svuota cache" e in basso "Cancella dati"
- restart del telefono
e magicamente la batteria ha ricominciato a caricarsi (alla velocita` di circa un 1% in piu` ogni 2 o 3 minuti)
Dita incrociate e speriamo che sia un lieto fine :-)
2021-12-21
Come recuperare maptools per Ubuntu Linux in poco tempo
Per chi ha bisogno di aggiornare frequentemente maptools su Ubuntu Linux all'ultima release
non ci sono repository che tengano
Allora si puo` scaricare a mano il .deb
ma tipicamente per ~200MB github ci impiega ~20/30 minuti...
alla fine ho deciso di chiedere a Google e scopro che c'e` un post su stackoverflow
...
I found a solution that worked very well for me.
Go to github and copy the link to the clipboard. Then open a web proxy website
( https://www.proxysite.com worked for me) and paste the link (I tried with US1) - instead of downloading 670mb in 1+ hour at least, it took less than 2 minutes.
...
Ovviamente ho provato subito e confermo che anche a me ha scaricato ad una buona velocita` (~1.4Mbyte/s)
2021-12-16
Creare PDF fronte retro scansionando dall'ADF che legge una faccia sola
Supponiamo abbiate una stampante multifuzione con la possibilità di scansionare in PDF, attraverso una semplice interfaccia web, un documento di più fogli dall'alimentatore automatico (ADF), con la limitazione di non supportare il caso di documenti stampati "fronte-retro".
Normalmente nel caso abbiate bisogno di acquisire dei fogli stampati anche sul retro sareste costretti a stampare tutti i retro (le pagine paro) e poi intercalandoli alle pagine dispari del documento originale scansionare tutti i fogli, oppure se foste più environment-friendly potreste scansionare ogni facciata singolarmente e poi assemblare manualmente dal laptop tutti i documenti in uno solo.
Per fortuna esiste una soluzione molto più semplice e comoda:
- scansionare le facciate A in una passata sola di tutto il documento tramite l'ADF e salvare il PDF ottenuto (con le sole pagine 1,3,5,7 etc) come scan-front.pdf
- invertire il documento in modo che presenti tutte le pagine pari e poi sul retro le dispari (quindi pag 2 con la 1 sul retro, pag 4 con la 3 sul retro etc etc)
- scansionare con l'ADF quelle facciate pari salvando il documento scan-rear.pdf
- rimettere a posto le pagine documento (passo ovvio, ma che può salvare parecchi mal di testa)
- usare il tool pdftk per interporre le pagine dei 2 pdf - ossia nel caso specifico:
pdftk A=scan-rear.pdf B=scan-front.pdf shuffle B A output collated.pdf
Addirittura si può semplificare ulteriormente chiedendo a pdftk di prendere le pagine pari in ordine inverso:
- scansionare le facciate A in una passata sola di tutto il documento tramite l'ADF e salvare il PDF ottenuto (con le sole pagine 1,3,5,7 etc) come scan-front.pdf
- prendere il plico di fogli usciti dall'ADF e ri-sottometterlo all'ADF al fine di scansionare le facciate pari in ordine inverso, salvando il documento scan-rear.pdf
- usare il tool pdftk per interporre le pagine dei 2 pdf invertendo l'ordine delle pari (dopo la lettera "placeholder" del file si specifica il range "end-1"):
pdftk A=scan-rear.pdf B=scan-front.pdf shuffle B Aend-1 output collated.pdf
Si ringraziano sia pdftk che questo chiarissimo post su unix.stackexchange.com
NB: la procedura e` stata testata su Linux, ma esiste una versione free di pdftk anche per Windows
2021-05-04
Audacity e audio in cuffia in ubuntu
e non torna nemmeno dopo aver chiuso l'applicazione, ma solo dopo aver tolto e rimesso il jack delle cuffie...
Ecco... facendo quasi come suggerito qui potreste aver bisogno di cambiare le impostazioni di Audacity
"default: Headphone Mic:0" in "pulse: Internal Mic:0"
2020-05-11
imparare a risolvere il cubo di Rubik in un weekend
ci ho messo circa 3 ore perche` ho trovato alcuni passaggi spiegati non molto bene - alla fine mi sono deciso a integrare il video con la seguente spiegazione
Legenda: ======= in genre quando possibile il cubo va tenuto con la mano sinistra con medio e pollice sul quadrato centrale della faccia superiore e inferiore del cubo guardando la faccia del cubo di fronte a se` ho scelto di indicare in minuscolo righe colonne e facce r1 la prima riga in basso r2 la riga in mezzo r3 la terza riga dal basso ossia quella piu` in alto c1 la colonna di sinistra c2 la colonna centrale c3 la colonna di destra f la faccia che sto guardando NB: Quando il movimento non impatta ne` la riga 2 ne` la colonna 2 il quadretto centrale (ossia il punto fisso della faccia) rimane ovviamente fermo i movimenti sono indicati con la maiuscola: Sx e Dx per le righe, Up e Dw per le colonne, Cc e Cw per ruotare in senso antiorario e orario per la faccia che si ha di fronte; quindi ad esempio r1Sx significa far ruotare di 90 gradi verso sinistra la riga piu` in basso, c3Up significa di ruotare verso l'alto la colonna di destra e fCw di ruotare di 90 gradi in senso antiorario la faccia che si ha di fronte Definisco "angoli" gli 8 cubetti del cubo che hanno 3 colori distinti e "spigoli" i 12 cubetti con 2 colori a meta` di un lato del cubo i tempi si riferiscono al video di cui sopra (ad es: "4e58" significa "al minuto 4 e 58 secondi") Inizio: ======= scelgo di partire dalla faccia bianca faccio la croce sulla prima facciata piazzando i 4 spigoli bianchi; nel caso in cui non basti ruotare di 90 o 180 gradi una riga del cubo perche` lo spigolo avrebbe i colori invertiti, il movimento da fare e` spiegato nel video a partire dalla posizione 4e58 tengo faccia la bianca in alto e faccio r1Sx c2Dw r1Dx c2Up ora per gli angoli della faccia bianca bisogna portare lo spigolo in colonna tengo bianco in alto guardo la faccia del secondo colore con terzo colore a destra ((***))) da 6e36 c3Dw r1Sx c3Up r1Dx fino a 6e43 se il cubetto in angolo risulta ruotato male basta ripetere ancora la stessa mossa per altre 2 o 4 volte === con questo ho fatto la prima facciata e il primo strato - ovviamente anche i 4 quadrati centrali saranno gia` a posto == mettiamo la faccia bianca in basso e proseguiamo ora per il secondo strato (ossia la seconda riga) mancano solo 4 spigoli da 9 e 25 ci serve il secondo algoritmo da 10:00 se posso posizionare il colore "fisso" sopra il quadrato centrale del suo colore allora inizio da 10:00 r3Dx c1Up r3Sx c1Dw r3Sx fCw r3Dx fCc oppure speculare r3Sx c3Up r3Dx c3Dw r3Dx fCc r3Sx fCw ((++)) a 10 e 46 NB: al primo "r3Dx" l'autore del video dice "allontano" perche` si deve allontanare la riga con lo spigolo dalla faccia dell'altro colore (ossia che in questo caso sta a sinistra) in altre parole se l'altro colore fosse stato a destra doveva essere "r3Sx" ((++)) se lo spigolo da portare non e` in alto ma e` posizionato in un altro spigolo del livello 2 il video non ne parla minimamente! Per fortuna ho scoperto che non e` difficile ovviare: si deve allontanare con 3 mosse a caso lo spigolo in questione per farlo finire quindi alla riga 3. Ovviamente nel farlo si scoprira` che un angolo del quandrato bianco di partenza si sara` spostato, ma basta procedere come spiegato in precedenza piu` sopra ((***)) per ri-sistemarlo (mentre lo spigolo che ci interessa rimarra` nella riga 3 come serviva e serve tuttora a noi) === fatto questo abbiamo finito il secondo strato === Ora manca solo il terzo strato conprendente la faccia gialla (opposta alla bianca da cui siamo partiti). Dobbiamo ora fare la croce sulla facciata gialla, ma senza scombinare quanto gia` sistemato percio` serve un terzo algoritmo da 12 e 55 ruoto il cubo in modo da avere di fronte la faccia col quadretto centrale giallo e la ruoto fino ad avere quanti piu` quadretti "gialli" a destra possibile ed eseguo queste mosse da 13e07 c1Up fCc r3Dx fCw c3Up r3Sx NB: questo e` un passaggio delicato perche`, se non si sta molto attenti, le rotazioni della faccia gialla possono far perdere i riferimenti e nel video l'autore quasi non spiega a parole i gesti che fa, dando adito a fraintendimenti fino a 13e17 ora e` stata fatta la croce gialla ma senza controllare se i colori degli spigoli fossero posizionati bene; ruotiamo la faccia gialla per verificare la cosa. Nel caso in cui i colori di 2 o 3 degli spigoli della croce non siano posizionati correttamente mi metto a guardare la faccia laterale su uno di quelli che coincide ed eseguo le seguenti mosse da 14e48 c3Up r3Sx c3Dw r3Sx c3Up r3Sx r3Sx c3Dw fino a 14e55 controllo la situazione e, nel caso, ripeto fin quando serve; fino a 8 volte per ogni colore, se non basta cambio il colore della faccia laterale da cui parto e riprovo. Ammetto che questo puo` essere il passaggio piu` lungo e noioso dell'intero processo - bisogna tenere duro: non manca poi molto Adesso mancano i 4 angoli - li osservo cercandone uno nel posto corretto, anche se ruotato ossia con i colori fuori posto. Puo` accadere che tutti i 4 angoli si trovino nel posto errato: si procede comunque come scritto qui sotto, solo potrebbero volerci piu` iterazioni. mi metto a guardare la faccia laterale tenendolo il suddetto angolo a destra in alto ed eseguo la sequenza da 16e47 r3Sx c3Up r3Dx c1Up r3Sx c3Dw r3Dx c1Dw a 16 e 57 appena tutti e 4 sono nel posto giusto, anche se sono ancora ruotati, proseguo come dice a 17e52 guardo una faccia laterale tenendo la faccia gialla in alto e quella bianca in basso c3Dw r1Sx c3Up r1Dx quando il quadretto giallo torna su al suo posto bisogna ruotare di 90 gradi in senso orario e proseguire con lo spigolo successivo quando la faccia gialla e` tutta ok il cubo e` completo fine!!!
2019-12-12
fans always at max speed on xps 15 with Ubuntu linux
After several months where all my attempts went from bad to worse,
I ended up on this page
so, long story short:
- launch the GUI nvidia-settings
- select the Prime Profiles
- switch to Intel GPU
- then I was requested to reboot but I preferred also to add another change suggested at this other post
- I created as root the file /etc/modprobe.d/nvidia-user-registry.conf with just a single entry
options nvidia NVreg_RegistryDwords="OverrideMaxPerf=0x2" - and finally
$ sudo update-initramfs -u $ sudo shutdown -r now
2019-02-26
if df starts lagging
$ strace /bin/dfbasically what I have found is that one of the mapped resources took ~10 seconds to timeout changed IP from the last time I mounted it and so umounting and remounting fixed it
2018-10-12
rumore di fondo con cuffie wireless DECT in ubuntu
potrebbe essere che dovete abbassare il volume del device che e` al 100% (mentre il generale non e` sopra il 20/30%)
nel caso potete seguire la procedura come spiegata meglio qui
- lanciate il comando in ascii graph
alsamixer
- passate al device in questione
- abbassate il volume
- uscite
- per registrare il cambiamento lanciate
sudo alsactl store
non ho ancora verificato che al reboot successivo la modifica sia stata mantenuta... ma l'articolo che ho trovato e` di 4 mesi
fa quindi mi auguro che abbiano gia` rilasciato la patch relativa :-)
2018-10-08
provide automatic keyboard and mouse input in X
Look no further
xdotool is the solution :-)
the installation is as easy as typing
sudo apt-get install xdotool
and assuming you need to do a (left) click on the mouse but only 10 seconds after you left your desk:
sleep 10 ; xdotool click 1
Bonus
obviously it also work if you have to send the commands in a RDP session :-)
2018-05-26
how to load a static html page in firefox new tabs
// local-settings.js.cfg needs to start with a comment line
pref("general.config.filename", "mozilla.cfg");
pref("general.config.obscure_value", 0);
then created another file mozilla.cfg in mozillainst folder
(C:\Program Files (x86)\Mozilla Firefox on my laptop)
with this content
// mozilla.cfg needs to start with a comment line
var {classes:Cc,interfaces:Ci,utils:Cu} = Components; /* set new tab page */ try {
var newTabURL = "file:///C:/some/path/to/an/htmlfile.html";
aboutNewTabService = Cc["@mozilla.org/browser/aboutnewtab-service;1"].getService(Ci.nsIAboutNewTabService);
aboutNewTabService.newTabURL = newTabURL;
} catch(e){Cu.reportError(e);} // report errors in the Browser Console
and finally close and reopen firefox for this change to take effect




