pill

Regexp "che non contiene"

Come fare un match di una stringa che al suo interno NON contenga una seconda stringa (diciamo "needle")? Così:

((?!needle).)*

Da notare che le regexp non sono molto efficienti nel gestire questo caso (non sono fatto per questo).

Per una spiegazione dettagliata:

http://stackoverflow.com/questions/406230/regular-expression-to-match-line-that-doesnt-contain-a-word

OpenSSH non accetta più la connessione con chiavi ssh-dss

Ho appena aggiornato il sistema (mettendo su openssh 7), vado a fare la connessione a uno dei miei soliti server e... non va!

Eseguendo "ssh -v" vedo subito il problema nei log:

debug1: Skipping ssh-dss key /home/XXX/.ssh/id_dsa for not in PubkeyAcceptedKeyTypes

In pratica come default openssh non accetta più le chiavi ssh-dss. La soluzione migliore sarebbe cambiare chiave in modo da usare algoritmo più sicuro/meno obsoleto.

Ma se non vogliamo farlo, almeno non subito, la soluzione è molto veloce. Basta creare un file ~/.ssh/config con questo contenuto:

PubkeyAcceptedKeyTypes ssh-dss

Arch linux e touchpad non funzionante

arch

Non funziona più il touchpad del vostro notebook? Per me la soluzione funzionante è stata questa:

ln -s /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/50-synaptics.conf

(Ovviamente da eseguire come root)

Il motivo per cui arch linux ha parte delle configurazioni su /usr/share/X11 e parte in /etc/X11 (ma solo quest'ultimo realmente funzionante) non lo so. Ci sarebbe da indagare... ad avere il tempo...

KDE: Le applicazioni Gtk3 da qualche tempo si vedono male

kde

Il problema è che da quando Gtk è stato aggiornato alla versione 3.16 è cambiato il sistema di theming e il tema "ponte" tra gtk e kde, ossia oxygen-gtk3, non funziona più. Aspettando che gli sviluppatori ci mettano una pezza, la soluzione più veloce è rimettere il tema gnome di default.

Basta editare il file ~/.config/gtk-3.0/settings.ini, commentando la voce gtk-theme-name.

Ora le applicazioni si vedranno nuovamente in maniera decente (anche se non con il tema di KDE).

X2go desktop sharing e problema "no local desktop found"

Da qualche tempo il controllo remoto del desktop tramite X2Go desktop sharing, così come descritto in http://myhq.it/controllo-remoto-desktop-efficiente-x2go , non sembra funzionare più: ogni volta viene segnalato un errore del tipo "no local desktop found".

Il problema sembra dovuto al comando "ip2route -u", usato dallo script "x2golistdesktops" per trovare l'istanza di x2go in esecuzione sulla macchina.

In attesa di una soluzione migliore (c'è un bugfix aperto), è possibile ovviare modificando il file /usr/bin/x2golistdesktops sostituendo il comando "ss -lxu" con "ss -x".

Riferimenti:

http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=799

https://marc.info/?l=linux-netdev&m=143018447007958&w=2

Android 4.4.2: Eliminare i punti di accesso (APN)

mobile

Se anche nel vostro android non è presente la voce per eliminare gli APN (Da "Impostazioni" > "Reti, Altro..." > "Reti mobili" > "Nomi punti diaccesso") potete provare a ottenere lo stesso risultato modificando l'APN che volete eliminare e impostando nel campo "MNC" il valore "00".

L'elemento verrà eliminato come voluto.

Mysql: Table 'name' is specified twice, both as a target for 'UPDATE' and as a separate source for data

mysql
Tags: mysqlpill

Il problema in oggetto lo abbiamo se cerchiamo di fare una query di questo tipo:

update MYTABLE set COL=COL+1 where ID in (select ID from MYTABLE where OTHERCOL=0)

In pratica stiamo cercando di fare una query di update (o di delete), selezionando le righe tramite una query di select sulla stessa tabella. La cosa potrebbe essere perfettamente lecita (almeno se la query di select non si basa su colonne modificate dalla query di update), ma MYSQL ce la blocca comunque.

E' possibile aggirare il controllo di mysql cammuffando la query di select con una ulteriore subquery:

update MYTABLE set COL=COL+1 where ID in (select * from (select ID from MYTABLE where OTHERCOL=0) _alias)

Unire file PDF

command line

Volete concatenare più file PDF per ottenere un unico file che contenga tutte le pagine degli altri?

Comando velocissimo che fa esattamente questo, lasciando inalterate dimensioni e risoluzione:

pdfunite FILE-1 FILE-2 ... FILE-RISULTATO

Alternativa con ghostscript (che pero' genera un file dalla dimensione più grossa della somma, anche se la qualità sembra la stessa):

gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=FILE-RISULTATO FILE-1 FILE-2 ..

Eventualmente si può fare anche con pdftk (non ho provato) o con convert (che però di base ricomprime tutto e fa casino).



LDD: Capire quali librerie vengono richieste da un programma (o altra libreria)

linux

Può capitare di eseguire un programma che non parte per la mancanza di qualche libreria condivisa, ma magari l'errore mostrato non è sufficientemente chiaro da permetterci di capire quale dipendenza manca. Oppure capiamo quale libreria è cercata, e ci risulta installata, ma il programma riporta comunque errore (Situazione che capita in genere quando usiamo software scaricati già compilati).

Per avere un elenco delle librerie richieste e dove vengono cercate/trovate (o se non sono trovate) è sufficiente usare il comando LDD

ldd [file binario o libreria]
LD_LIBRARY_PATH=mypath/lib ldd lib_test.so