16 febbraio 2024

Stewart Brand & Whole Earth Catalog

 Prendo spunto da un articolo del Guardian letto recentemente che ha colmato un importante lacuna culturale nella mia formazione di informatico. Me lo appunto per non perdere la bussola.

https://www.theguardian.com/books/2013/may/05/stewart-brand-whole-earth-catalog

Si tratta di una intervista e mini biografia di uno di quei personaggi che, diversamente dalla maggior parte di noi, lasciano sul pianeta un impatto da Asteroide, e riporta alla mia mente il riverito Direttore nonche Relatore e nume ispiratore di tanti informatici come me, il mitico Gianni degli Antoni.  

A voi

Stewart Brand

di cui potete leggere una biografia più oggettiva su Wikipedia.

Stewart Brand



Mi limito a tradurre e citare alcune porzioni dell'articolo dedicato a Stewart e a ricordare la sua brillante carriera di futurologo e autore di una serie di libri che hanno avuto un impatto fortissimo sullo sviluppo della tecnologia e in particolare dell'informatica e sull'orientamento di tanti giovani talenti con cui è venuto a contatto. Un grazie sentito all'autrice Carole Cadwalladr.

Brand aveva un talento smisurato per essere al posto giusto al momento giusto. 

Nel 1968, casualmente, fu presente a quell'evento mirabolante che in futuro venne etichettato come 'la madre di tutte le demo'. Douglas Englebart sbalordì un migliaio dei più avanzati informatici al mondo dimostrando il primo 'mouse', la prima teleconferenza, il primo editor di testo e l'anteprima dell'informatica interattiva. Non era proprio casualità: Stewart era un tecnico delle riprese e un consulente per la presentazione.

 ... 1968 – Brand just happened to be at what came to be known as the "mother of all demos" when the world first saw what computers could do.


Nello stesso anno avviò la pubblicazione del 

Whole Earth Catalog

Il libro ha meritato una pagina dedicata su Wikipedia. Pubblicato tra il 1968 e il 1971 viene definito da Steve Jobs come 'una delle bibbie della mia generazione'.


Brand dice che il suo mito era Buckminster Fuller 

A sua volta fu un modello di ispirazione per Steve Jobs, che nel suo storico discorso del 2005 all'inaugurazione dell'anno accademico di Stanford, cita Brand e il suo Catalogo.

Bibliografia


Fred Turner, associate professor of communication at Stanford, Turner's 2006 book, From Counterculture to Cyberculture: Stewart Brand, the Whole Earth Network and the Rise of Digital Utopianism,

John Markoff, who wrote What the Dormouse Said: How the Sixties Counterculture Shaped the Personal Computer Industry, says, simply: "Stewart was the first one to get it. He was the first person to understand cyberspace. He was the one who coined the term personal computer. And he influenced an entire generation, including an entire generation of technologists."

Asset Monitoring IOT Database Open Source: indagine 2024

Supponiamo di voler partire con un progetto di monitoraggio IOT, e che nel 2024 qualcuno abbia già messo la propria esperienza a disposizione della collettività.

Devo scrivere da zero il database delle misure?
Devo gestire tutta la parte anagrafica?
Devo inventarmi tutta la parte di web-app, magari anche reattiva, in modo che posso vedere i grafici sia dal PC che dallo smartphone?

Requisiti di massima

  1. Orientato al monitoraggio 'lento' (frequenza oraria o minore) di oggetti statici
  2. Open Source
  3. Interrogazioni SQL con finalità di reportistica quasi metrica/contabile (es. smart meter)
  4. Longevità del progetto: >=10 anni
  5. semplicità di configurazione misure derivate/calcolate, (es bar in pascal, o °C a °F, da corrente e tensione ricavare la potenza)
  6. possibilità di esportazione dati via API
  7. gerarchia/albero delle risorse monitorate (es. città/quartiere/isolato/palazzo/casa/sensore)

Nice to Have

  1. storicizzazione con compressione, tipo RRD Tool
  2. gestione utenti/accessi personalizzata (es. admin legge e scrive tutto, tecnico o utente finale legge solo il suo)
Vediamo cosa mi propone GitHub se cerco IOT e Database...

IOTDB

https://github.com/apache/iotdb?tab=readme-ov-file#main-features

 IoTDB supports high-frequency data writing with millions of measurement points and millisecond-level query response speed. The efficient data processing capability allows users to obtain the required data quickly and accurately. 

GRIDDB

https://griddb.net/en/

https://github.com/griddb/docs-en/blob/master/manuals/GridDB_FeaturesReference.md

in-memory data
architecture — along with superb
parallel processing and minimal
overhead — grants benchmark-
shattering performance

OPENREMOTE

https://github.com/openremote/openremote
https://github.com/openremote/openremote/wiki/User-Guide%3A-Assets%2C-Agents-and-Attributes

TDENGINE

https://docs.tdengine.com/concept/

https://tdengine.com/high-performance/

The TDengine industrial data platform includes a high performance, cloud native time series database that enables efficient ingestion, processing, and monitoring of petabytes of data per day, generated by billions of sensors and data collectors. Thanks to its data model that takes full advantage of the characteristics of time-series dataTDengine delivers more than ten times the performance of general-purpose platforms while requiring only one-fifth the storage space.

THINGSBOARD

https://github.com/thingsboard/thingsboard

https://thingsboard.io/docs/user-guide/entities-and-relations/

molto promettente per Asset Monitoring, consente la scrittura di regole per organizzare gli oggetti monitorati rispetto ai dispositivi di misura e altre entità come gli utenti.

ThingsBoard back-end is written in Java, but we also have some micro-services based on Node.js. ThingsBoard front-end is a SPA based on Angular 9 framework.

20 settembre 2023

Monitoraggio server: Nagios + NCPA + plugin personalizzati

Nagios

Ho uno o più server Windows, ho un server Linux e poco budget.

Vorrei tenere d'occhio i server Windows senza dover entrare periodicamente a verificare la Gestione Attività, possibilmente con un sistema automatico, su un server esterno, in modo che se crolla tutto, mi arrivi almeno un avviso.

Guarda un po', ho proprio un serverino Linux a disposizione. e, grazie al software (o sistema) Nagios, posso fare in modo che se ci sono mancamenti o cedimenti nei servizi erogati, o nello stato di salute del sistema, Nagios mi manda un messaggio di avviso, riportando le ultime misure rilevate.

A questo proposito avevo tratteggiato a grandi linee la sequenza delle operazioni necessarie, da una parte e dall'altra, per installare e configurare Nagios Core (la versione gratuita), e attivare il server di monitoraggio su Windows, che puntualmente risponde alle interrogazioni del suo supervisore.

Vedi l'articolo: https://striscialascia.blogspot.com/2020/11/nagios-e-monitoraggio-windows.html

 Lato Windows: NCPA

Nagios mette a disposizione un server di monitoraggio chiamato NCPA, già attrezzato con le routine di osservazione più comuni: 

  • disco
  • CPU
  • RAM
  • servizi

Inoltre è previsto sia il monitoraggio 'attivo', cioè a servire le richieste di Nagios, che 'passivo' ossia che periodicamente invia uno stato aggiornato, attraverso il protocollo NRPE. 

Qui il link per la documentazione che spiega come richiamare un check 'attivo' lato Nagios:

https://www.nagios.org/ncpa/help/2.0/active.html

Ma per quelle funzioni che sono specifiche al nostro server e che costituiscono 'o core' (come direbbero a Napoli) del sistema che abbiamo messo in piedi con tanta fatica?

Per questo ci sono i 'plugin'. Il link che segue spiega dettagliatamente come creare i plugin con le diverse soluzioni elencate, e, successivamente, come richiamarli da remoto, da Nagios.

https://nagiosenterprises.my.site.com/support/s/article/Using-Scripts-Plugins-With-NCPA-32a58c75

NCPA: plugin e test personalizzati

Nello specifico NCPA supporta e spiega in maniera esaustiva come configurare dei plugin, scritti come 'batch file' (.bat), routine PowerShell, VBS o bash. Cito:

NCPA is capable of executing scripts such as:

  • Batch Script = .bat

  • Visual Basic Script = .vbs

  • PowerShell Script = .ps1

  • Bash Script = .sh

Questo ha funzionato bene per uno dei miei casi, e cioè per verificare che fosse in piedi una specifica connessione verso l'esterno. In questo caso mi basta un 'ping', e la strada più naturale è stata uno script PowerShell che utilizza 'Test-Connection'.

 Ma se dobbiamo fare parse di log, o conteggi, o  cose più complicate?

Se siete dei maghi di PowerShell o di VBS, non ci sono problemi. Vi mettete a testa bassa e smanettate.

Se, come me, sapete che Python ha un mondo di librerie, che includono ad esempio, gli strumenti per fare il parse di file JSON, e sapete che Python è disponibile sul server in questione, vi fate qualche domanda.

Ci sarà un modo di scrivere il plugin con Python?

Navigando nel forum, si scoprono delle sorprese.

Ad esempio, che in molte versioni di NCPA è incluso un interprete Python.

Ma i plugin in Python non sono ancora ufficialmente supportati. Di sicuro, scrive l'autore nel 2018, non saranno disponibili prima della versione 3. Peccato che oggi, nel 2023, siamo alla 2.4.1.

https://github.com/NagiosEnterprises/ncpa/issues/478

Nel forum citato, trovate un modello base di plugin in Python.

import os, sys

OK = 0
WARNING  = 1
CRITICAL = 2
UNKNOWN  = 3

def main():

   print ("OK: This is working")
   sys.exit(OK)

if __name__ == "__main__":
   main()

Supposto che riusciamo a scrivere il programmino che ci serve, come facciamo poi a trasformarlo in plugin?

Plugin personalizzati nel vostro linguaggio

Dato che abbiamo a disposizione i bat e i PowerShell, ho fatto qualche esperimento per richiamare il Python con questi due strumenti.

Con PowerShell non ho avuto successo, dice che non trova il 'main'.

Con i file batch invece le cose sono andate meglio.

Con queste istruzioni sono riuscito sia a fare eseguire il Python che a restituire il codice di errore nello stile NCPA.

@echo off

"C:\Python310\python.exe" "C:\Program Files (x86)\Nagios\NCPA\plugins\check_my_python.py"

exit /B %errorlevel% 

Lato Nagios, in commands.cfg e windows.cfg ho creato i corrispondenti comandi e servizi:

# 'check_ncpa' command definition
define command {
    command_name check_ncpa
    command_line $USER1$/check_ncpa.py -H $HOSTADDRESS$ -t $_HOSTTOKEN$ -P$_HOSTPORT$ $ARG1$
    } 

Noterete che ho impostato nel comando generico l'indirizzo, la porta e il token, in modo da ridurre al minimo le ripetizioni quando lo richiamo nei singoli servizi.

# Create a NCPA service to check if VPN Client is connected

define service{
    use            generic-service
    host_name        WINDOGS
    service_description    VPN Client Ping
    check_command        check_ncpa!-M 'plugins/check_ping_VPN.ps1'
    ...
    }

# Create a NCPA service to check the status of TCP connections

define service{
    use            generic-service
    host_name        WINDOGS
    service_description    TCP Connections
    check_command        check_ncpa!-M 'plugins/check_TCP_stats_py.bat'

    ...
    }

E così avete a disposizione un metodo per scrivere i vostri plugin personalizzati, probabilmente non solo in Python, ma anche nodejs, Lua, Go e quant'altro vi viene comodo per la situazione specifica che vi trovate a monitorare.

Buon divertimento!

01 luglio 2023

IKEA: divisori per cassetti PAX

I cassetti PAX sono larghi, a volte anche un metro e mezzo. Allo stato brado generano disordine se i contenuti si spostano in orizzontale.

Cosa meglio di un bel di-vi-so-rio per riportare un po' di ordine nel cassetto? 

Ottieni

Materiali: FOREX (PVC, spessore 3mm), gommina attacca-stacca, ad esempio TESA TAC 

Il Forex è leggero, si taglia bene, non ingiallisce, invecchia bene, resiste a acqua, inchiostro, ditate, untume e molto altro.

Ad esempio da Leroy Merlin:

Attrezzi: cutter, superficie d'appoggio, dima o strumento di misura, marker

Misura

Misura 3 volte, taglia una, diceva mio nonno. 
In alternativa create una dima con del cartoncino.

Taglia

Taglia il Forex con il cutter. Questo materiale si taglia bene facendo passaggi ripetuti, che vanno a profondità sempre maggiore. 
Consiglio un righello in acciaio o materiale difficile da tagliare per fare da guida al cutter.
Nel mio caso le dimensioni interne del cassetto erano 30,5 cm (L) x 14cm (H).


Appiccica

Posiziona la gommina stacca attacca, nei 4 angoli del divisorio. 
Piega il divisorio un pochino per far passare la gommina nella parte alta.

...et voilà
Il divisorio si può spostare se e quando si vuole, ma può anche rimanere in posizione per tanti anni.

03 aprile 2023

Arrivederci Vodafone

Sette anni con Vodafone

 Ero un cliente TIM. Nel 2015, dopo un aumento a sorpresa da 25 a 45 eur/mese, praticato e non comunicato da TIM, ho abbandonato la compagnia di bandiera e sono passato a Vodafone.

Il servizio è stato tutto sommato valido, rispettoso dei valori impostati e vincolati da una linea in rame vecchia 40 anni. Qualche intervento tecnico, soprattutto sui terminali del rame che si sono ossidati, e un modem sostituito per guasto.

Qualche bisticcio, poche soddisfazioni dal punto di vista tecnico, come documentato nel passato in questo blog, soprattutto in materia di protezione dei minori. Vodafone, come molti altri operatori, 'cattura' tutto il traffico DNS, invalidando le soluzioni tipo OpenDNS.

Per 7 anni ho tenuto vivo questo contratto, un po' perché all'inizio ero in partita IVA e non volevo rischiare di trovarmi delle scadenze durante il cambio della linea, un po' per evitare penali, prima dei 48 mesi. Poi c'è stato il COVID-19 e la Didattica a Distanza, e lo smart-working, e cara grazia ad avere in casa computer, tablet e cellulari e banda dati a sufficienza.

Negli ultimi tre anni le bollette sono aumentate per arrivare raddoppiare o triplicare la stima iniziale di 30 euro al mese. Infatti i figli più piccoli, a cui non abbiamo voluto dare il cellulare, hanno cominciato a chiamare parenti e amici a volte per ore, e, dato che nel contratto il traffico telefonico non era compreso (ma chi usa più la linea fissa?), ha portato le bollette anche a 90 euro al mese.

Nonostante ripetuti inviti a proporci un contratto con traffico voce nazionale incluso, Vodafone non ha mai pensato di rinunciare ai suoi guadagni.

Il divorzio

L'estate scorsa, ad agosto 2022, ho deciso che finalmente era ora di cambiare, e voilà, per par condicio sarebbe toccato a Fastweb prendere il nostro obolo mensile, stavolta con le telefonate comprese.

Dopo la pratica di portabilità del numero, il primo pensiero è stato di togliere l'addebito diretto in banca, per evitare ritorsioni non contestabili. 

Il secondo, quello di restituire il router. Il router originale è stato pagato per intero in comode rate per  48 (quarantotto! 4 anni!) mesi. In estate 2022 Vodafone ci ha recapitato un secondo router, mai chiesto, mai aperto, pronto da restituire alla scadenza del contratto. 

Le istruzioni per la restituzione del router sono confuse, e piuttosto difficili da capire. In teoria, dovrebbe venire un corriere a ritirare il modem, all'indirizzo di tua scelta, o lo puoi riportare in un negozio Vodafone. Io ho tentato prima la strada del ritiro con corriere, ma non si è presentato nessuno. Ho provato a portarlo nel negozio Vodafone, ma mi hanno detto che non lo ritiravano. Ho ritentato con il corriere, e finalmente, parlando con il corriere all'ufficio, mi ha detto "Tranquillo te lo prendo io".

Il litigio

A novembre 2022, a 2 mesi dalla disdetta, è arrivata la bolletta di agosto e settembre, contenente un addebito di 83 euro per "Corrispettivo per recesso"


Come mi aspettavo, Vodafone provava a dare il colpo di coda.

A niente sono valsi i tentativi di far correggere la bolletta interpellando il servizio clienti al 190 e via email. 

Dopo l'ennesimo sollecito, a fine marzo sono passato alla PEC.

Il 1 aprile ho avuto la risposta che ero in coda, sembra uno scherzo, ma io ci credo.

Il 3 aprile la notizia della multa dell'Antitrust.

La notizia de "Il Fatto Quotidiano":

https://www.ilfattoquotidiano.it/2023/04/03/illegittime-fatturazioni-a-carico-degli-utenti-dopo-il-recesso-o-il-cambio-di-gestore-multa-dellantitrust/7118313/

Per tutta risposta alla PEC, Vodafone scrive: 

Data: Sat, 8 Apr 2023 13:34:52 +0200
Oggetto: Fattura errata cod. cliente 1.8437355

Salve,

abbiamo preso in carico la sua richiesta.

Per ulteriori informazioni può contattarci al N. 02 84119016 o al N. fax 0522638695.

Cordiali Saluti

Selecta.

In pratica, Vodafone vende il credito (e anche tutti i dati) all'azienda Selecta, e lascia che se la sbrighi con l'ex cliente.
Dal punto di vista legale, l'importante è dire che hanno preso in carico la richiesta. Di fatti, non pensate che Vodafone fornisca delle risposte o che vi prenda minimamente in considerazione.

Suppongo che si possa tentare la strada di contestare sia la violazione della privacy (Chi è Selecta?) che la mancata risposta sulla contestazione.

La gestione Selecta

Selecta ha ricaricato di 75 eur e passa la fattura iniziale, adducendo spese di recupero crediti. 



Il 16 maggio chiamato per sapere esito del reclamo, dice che il reclamo è stato respinto, che dobbiamo pagare, perché l’adeguamento viene applicato automaticamente ogni 48 mesi.



17 giugno 

Registrazione su Concilia web.

Avvio procedura di conciliazione.


Interrotta per chiamata con operatore di Selecta recupero crediti che propone una riduzione della cifra.

coincidenza o disegno?




Riferimenti contenzioso telefonia

AGCOM: https://www.agcom.it/contenzioso-tra-utenti-e-operatori

L'utente che, pur avendo presentato reclamo, non riesce a risolvere il problema insorto con il proprio fornitore di servizi di comunicazione elettronica, può avviare la procedura prevista dal nuovo Regolamento per la soluzione delle controversie tra utenti ed operatori di comunicazioni elettroniche (delibera n. 203/18/CONS)

Cocnicliaweb: https://conciliaweb.agcom.it/conciliaweb/login.htm

16 ottobre 2022

Copertoni anti foratura - aggiornamento 2022

 Ancora un anno drammatico per i pedalatori di biciclette in provincia di Pavia.

Il famigerato buca-bici, o fora-gomme è dappertutto. Il Tribulus terrestris si espande a vista d'occhio, certe aiuole sono un campo minato, con rametti che serpeggiano minacciosi verso il centro delle ciclabili e dei marciapiedi, come in un film dell'orrore.

Migliaia di camere d'aria bucate, e la testimonianza di un officina di provincia che ha riparato ventiquattro forature in una sola giornata di lavoro.

In questo aggiornamento del 2022 voglio confermarvi che i consigli riportati in questo blog nel 2019 sono ancora validi e provati. I copertoni Schwalbe Marathon Plus montati sulla mia MTB sono ancora in servizio, e non ho bucato negli ultimi due anni. Sono un ciclista urbano, difficilmente faccio più di 50 km alla settimana, che non è tanto, ma abbastanza da confermare la validità di questa soluzione per quanto riguarda la resistenza alla foratura e nello specifico alle spine dell'odiato Tribulus.

Per le bici da corsa non ci sono molte alternative al copertone rinforzato: ogni brand propone le sue varianti, e voi dovete scegliere un compromesso tra scolpitura, resistenza alla foratura, resistenza al rotolamento e ovviamente prezzo. Infatti questi pneumatici, tra lavorazioni aggiuntive, inserti in kevlar, minori volumi di vendita, costano mediamente il doppio di quelli regolari. Tra le marche più gettonate: Schwalbe, Continental, Vittoria. 

Per le altre bici di casa, che ormai sono una decina, prevalentemente da città, MTB o BMX, la soluzione migliore rimane il doppio battistrada.

Questa tecnica farà aumentare il peso della bici di qualche centinaio di grammi, ma vi consente di scegliere lo pneumatico che preferite, spendere meno e allo stesso tempo di non forare. Sono riuscito a foderare copertoni del diametro da 28mm  (1.10 pollici) in su.



Allego qualche foto di uno degli ultimi lavori, su una MTB Specialized Street2, che aveva un copertone GEAX Gato carino e colorato ma consumato, sostituito da un nuovo GEAX Saguaro foderato con il battistrada del predecessore.

Per eliminare il tallone uso le forbici o cutter con lama spessa. Non è necessario tagliare il cerchietto del tallone, anzi, è una missione faticosa e inutile. Più semplice bucare la spalla del copertone e tagliare tra spalla e battistrada.


A volte il copertone vecchio si inserisce perfettamente nel nuovo, come nel caso di una 26x1.90 in un 26x2.10. 

Più spesso, invece, il vecchio copertone deve perdere qualche centimetro di circonferenza per entrare bene, senza fare gobbe. In questo caso, come in foto, elimino la parte eccedente effettuando due tagli paralleli a 45 gradi. Se ho l'impressione di aver esagerato nell'accorciatura, o il dubbio che la camera d'aria possa rimanere pinzata tra le due estremità, raccordo i due lembi con un segmento di camera d'aria.

Buona lotta alle forature!

03 agosto 2022

Organizzazione del lavoro: Agile e Scrum

 Sono una persona piuttosto impaziente.

Mi piace vedere dei risultati in fretta, che stia parlando o lavorando.

Sarà per questo che fin dal primo impatto ho trovato congeniali e naturali le strategie per la gestione dei progetti informatici che vanno  sotto l’ombrello ‘Agile’.

In questi giorni sto organizzando un progetto secondo questi principi, e non avendo alcun titolo formale, ho cominciato a seguire un corso su Udemy per qualificarmi come Scrum Master.

Pantheon all'equinozio di primavera
Il Pantheon, esempio di progetto empirico

Tra i materiali del corso, il riferimento bibliografico alla guida ufficiale alla struttura portante (framework) Scrum, The Scrum Guide, da cui cito il seguente paragrafo.

Scrum Theory

Scrum is founded on empiricism and lean thinking. Empiricism asserts that knowledge comes from experience and making decisions based on what is observed. Lean thinking reduces waste and focuses on the essentials.

Tradotto in italiano:.

La Teoria Scrum

Scrum si basa sull’empirismo e sulla ricerca dell’efficienza.  L'empirismo afferma che la conoscenza derivi dall'esperienza e dal prendere decisioni basate su ciò che si è osservato.  L’efficienza punta a ridurre gli sprechi e concentrarsi sull’essenziale.

Vorrei ringraziare Ken Schwaber e Jeff Sutherland per aver espresso in maniera così essenziale e concisa l’approccio alla progettazione che trovo più congeniale e affine alle mie sensibilità.