Android – cambiare colore ai calendari

Oggi, spinto da buoni propositi lavorativi, ho deciso di aggiungere al mio cellulare Android il calendario lavorativo, disponibile su Office365.
L’aggiunta è stata banale: sono andato nelle impostazioni e ho associato un account Exchange. Dopo essermi autenticato ho potuto sincronizzare il calendario.

gli account associati nel mio dispositivo; non so da dove esca “account aziendale”, quello che ho associato è quello Exchange

Il problema è che al calendario è stato assegnato un colore a metà tra verde pisello e verde acqua, troppo simile ai colori degli altri calendari.
Cercando su Google ho letto che non è possibile cambiare il colore, a meno di usare qualche programma di terze parti.

Dopo qualche ricerca, ho trovato il programma che faceva al caso mio su F-Droid: Calendar Color. Anche se l’applicazione è un po’ vecchiotta (l’ultimo aggiornamento risale al 2015), l’ultima versione funziona perfettamente.

NetBeans non salva le password

Ultimamente ho avuto un problemino con le ultime versioni di NetBeans: non salvava le password, chiedendomele in continuazione. E questo ad ogni update/commit con SVN o Git.

Dopo aver aggiornato Netbeans dalla 12.0 alla 12.6, qualche giorno fa ho installato la 17.0, ma il problema è rimasto.

Oggi ho notato, nella finestra Notifications, il seguente errore:

java.lang.RuntimeException: 134/41: No such object path ‘/org/freedesktop/secrets/aliases/default’

Cercando su Internet, ho trovato la soluzione al problema in questa pagina. Praticamente NetBeans, invece di controllare il suo portafogli delle password (che conteneva le password, perché ad ogni aggiornamento copiava il profilo della versione precedente), cercava in quello di sistema, nel mio caso in KWallet su KDE.
Aggiungendo il flag ‘-J-Dnetbeans.keyring.no.native=true‘ nel file NETBEANS_HOME/etc/netbeans.conf e riavviando, NetBeans tornerà finalmente ad utilizzare il suo portafogli (che non ho capito se sia gestibile da qualche GUI, ma questa è un’altra storia).

Podman, errore nella visualizzazione dei log di un container

Da qualche tempo, sulla mia macchina (oramai virtuale) Linux, sto usando i container.

All’inizio sono partito con Docker (il più famoso), ma ultimamente sono migrato a Podman, un gestore “alternativo”. La scelta è stata dettata dall’avere un gestore che non necessitasse di root e una migliore gestione della macchina, dato che con Docker capitava spesso che la macchina virtuale si impallasse, come se avesse esaurito la memoria e la swap.

Ultimamente però ho avuto con Podman un problema: dopo aver fatto partire un container in modalità rootless, dando il comando

podman logs -f container

ottenevo questo errore

Error: initial journal cursor: failed to get cursor: cannot assign requested address

Alla fine sono riuscito a trovare la soluzione: basta aggiungere l’utente corrente al gruppo systemd-journal:

~ $ grep -i journal /etc/group
systemd-journal:x:478:andrea

Addio iRex, benvenuto Boox

No, non ho esagerato con la grappa in questo giorno di santa festa. Ma dopo 8 anni di onorato servizio, ho deciso che fosse ora di mandare in pensione il mio caro lettore di eBook iRex DR1000S, compagno di tanti studi su libri. Ho deciso di fare il gran passo e puntare ad un dispositivo nuovo, moderno, che non mi faccia più cadere le braccia (e altre appendici) quando tento di accenderlo o di voltare pagina.

La scelta è caduta sul Boox Nova 2, della Onyx; lo schermo è più piccolo (8″) ma più risoluto, per cui ho visto che non ho problemi a leggere anche PDF in formato A4… male che vada poi leggo mezza pagina alla volta. 😀

Ero indeciso tra questo e il modello più grande, il Boox Note 2 sempre da 10″ come il DR1000, ma ho preferito non spendere troppo , anche se un po’ ci sto ripensando… 😅

Vabbè, ci ripenserò quando usciranno le nuove versioni con schermo a colori. 😋

Nuove frontiere dello spam

Ogni tanto capita che anche su questo blog semi abbandonato, qualche spammer disperato (fa rima e c’è) tenti di inserire qualche link a prodotti pro-erezione o altro più  o meno farmaceutico…

Oggi (anzi, qualche giorno fa, ma l’ho visto oggi) ho notato una tecnica più fina, più sottile, molto probabilmente compiuta da una mano umana e non da un bot. A questo vecchissimo post, datato 2011, hanno commentato con una semplice risata. Ci sta tutta, il post è solamente un video di Elio e le storie tese, ma incuriosito da questa reminiscenza sono andato a vedere il link associato alla persona che ha fatto il commento, e puntava ad un sito per vedere film in streaming che non contiene materiale protetto dal diritto d’autore, come tengono a specificare nel loro sito:

E niente, la URL del sito l’ho manomessa… tanto era un commento genuino, no?! Mica SPAM!!! 😂

Giocando con rsync

Dopo aver, per anni, fatto i miei backup tra i vari hard disk con il comando cp (e l’opzione -u per “risparmiare tempo” e sentirmi fico :cool:), mi sono deciso oggi a fare qualche esperimento con rsync, tool a linea di comando* per la copia di file tra due cartelle (locali o remote, per ora lo uso solo in locale).

La sintassi è semplice: rsync [OPTIONS] SRC DEST.

Devo dire che è estremamente comodo, soprattutto l’opzione --delete, che permette di cancellare i file nella destinazione quando non sono più presenti nella sorgente, facendo così una vera e propria sincronizzazione tra le due cartelle. Attualmente lo sto testando con le opzioni:

  • -r ricorsivo
  • -u ignora i file che sono più recenti nella sorgente (in teoria inutile in caso di backup)
  • -p mantiene i permessi (dovrebbe essere inutile in caso di backup su filesystem NTFS)
  • -t mantiene il timestamp di modifica
  • --progress mostra il progresso della sincronizzazione
  • --delete cancella i file nella destinazione quando non esistono più nella sorgente
  • --safe-links ignora i link che puntano fuori la sorgente (utile perché sto facendo il backup di varie partizioni e non voglio copie risorsive)
  • --exclude "cartelle" permette di escludere cartelle dalla copia in base al nome (io lo uso per tutte le cartelle .svn)

Una cosa che mi ha dato problemi è l’uso dello slash alla fine dei percorsi sorgente. In base alla sua presenza o meno il programma si comporta in modo diverso (nel caso in cui SRC sia una cartella):

  • SRC/: copia solo il contenuto (ricorsivamente se indicato nelle opzioni)
  • SRC: copia la cartella e il contenuto (ricorsivamente se indicato nelle opzioni)

*per i più bisognosi, esiste una GUI per gestirlo meglio

Script per abilitare il proxy

Primo esperimento con il comando sed: mi serviva un sistema veloce per abilitare/disabilitare il proxy utilizzato dal sistema (ho trovato le informazioni qui).

Per disabilitare:

#!/bin/bash

PROXY_FILE='/etc/sysconfig/proxy'

sudo sed -i 's/^#PROXY_ENABLED="no"/PROXY_ENABLED="no"/' "$PROXY_FILE"
sudo sed -i 's/^PROXY_ENABLED="yes"/#PROXY_ENABLED="yes"/' "$PROXY_FILE"

Per abilitare:

#!/bin/bash

PROXY_FILE='/etc/sysconfig/proxy'

sudo sed -i 's/^PROXY_ENABLED="no"/#PROXY_ENABLED="no"/' "$PROXY_FILE"
sudo sed -i 's/^#PROXY_ENABLED="yes"/PROXY_ENABLED="yes"/' "$PROXY_FILE"

Netbeans: gestione librerie

Oggi ho avuto un problemino con NetBeans (versione 8.2): un progetto non mi associava correttamente le librerie; addirittura la stessa libreria (log4j) era associata 2 volte (e un’associazione non veniva riconosciuta correttamente).

Ho scoperto (e risolto) l’arcano trovando come NetBeans memorizza le informazioni sulle librerie e come queste sono associate al progetto.

Nella cartella “~/.netbeans/8.2/config/org-netbeans-api-project-libraries/Libraries/” ci sono i file XML in cui sono definite le liberie; in ogni file è specificato il nome visualizzato (display-name, quello che si può cambiare dal menù Tools → Libraries) ed il nome interno usato dall’IDE (name), che una volta impostato alla creazione della libreria non si può più cambiare (è per sempre come un diamante):

<?xml version="1.0" encoding="UTF-8"?>
<library xmlns="http://www.netbeans.org/ns/library-declaration/3" version="3.0">
	<name>Log4J-1.2.16</name>
	<type>j2se</type>
	<display-name>Log4J-1.2.16</display-name>
	<volume>
		<type>classpath</type>
		<resource>jar:file:/home/andrea/Progetti/LIBS/Log4J-1.2.16/log4j-1.2.16.jar!/</resource>
	</volume>
	<volume>
		<type>src</type>
	</volume>
	<volume>
		<type>javadoc</type>
	</volume>
	<volume>
		<type>maven-pom</type>
	</volume>
	<properties/>
</library>

Ho scoperto che i due nomi erano disallineati, in particolare il nome interno di una libreria era quello dell’altra. Probabilmente ho fatto casini quando ho ri-creato il profilo cambiando più volte i nomi.

Per risolvere tutti i problemi ho inserito il nome corretto nei file XML delle librerie e cambiato i riferimenti nel file “~/.netbeans/8.2/build.properties“.

LibreOffice Impress, visualizzare il numero di slide (e altro)

Utilizzando LibreOffice Impress, versione 6.1.4.2 su Linux (openSUSE+KDE) ho avuto un problema: il campo con il numero della slide (che avevo modificato per far apparire anche il numero totale di slide) non appariva. La soluzione è questa:

  1. entrante nella view master slide
  2. menù “Insert → Header and Footer…” (nelle versioni precedenti questa voce è in un altro menù)
  3. si apre una finestra dove è possibile indicare quali parti si vuole far apparire e come personalizzarli