Il mio rapporto con i social network

Non è che odio i social network.

Cioè… alla fine sono presente su tutti i principali social network, ma non li frequento attivamente.

Il problema è che sono pieni di tag, di slogan, di hastag (che poi non sono altro che tag con un nome più accattivante) e di vuoto.

I social network partono bene, ma poi si perdono… sono pochi quelli che continuano a mantenere un certo “appeal” nel tempo. Un esempio su tutti Facebook (che secondo me tra 3 anni da ora non ci sarà più)… o G+ che non è neanche decollato. All’inizio, su Facebook, tutti postavano qualcosa di originale e personale… adesso ci sono solo dei link a dei link e ad altro materiale spazzatura presente in giro per la rete (che lucra sul traffico generato).

E poi sono drammaticamente vuoti di contenuti interessanti. Se si ricerca qualcosa (ad esempio per interesse personale, per hobby, perchè si vuole trovare una soluzione ad un problema, ecc.), si verrà reindirizzati verso siti, blog, forum, newsgroup ma sicuramente non verso un social network, perché li è impossibile trovare contenuti degni di nota.

Ecco, questo penso che sia il problema principale dei social… devono essere utilizzati solamente per scopo “ludico”.

Quindi massimo rispetto per tutte quelle persone che perdono tempo a scrivere e mantenere attivi i siti e i blog sparsi per la rete. Conosco benissimo quanto tempo e passione ci vuole…

Permanent link to this article: http://www.andrea.rustichelli.name/il-mio-rapporto-con-i-social-network/

Radersi come un Uomo Alfa – Capitolo 3: The Plastic Choice

Ho comprato (in occasione di un regalo per alcuni amici) un rasoio Wilkinson Classic a pettine chiuso in plastica. L’ho pagato circa 5 euro con anche le lamette Wilkinson (che non sono affatto male, anche se le trovo non all’altezza delle altre lamette che uso normalmente).

Questo rasoio è lungo circa 10 cm e quindi risulta più lungo rispetto al Fatip e pesa 43 grammi con la lametta montata. Quindi risulta molto più leggero del Fatip ma risulta comunque un ottimo rasoio nonostante il prezzo praticamente irrisorio. E’ un rasoio a 2 pezzi e rende il montaggio molto facile perchè basta ruotare il manico per avvitare o svitare la testa per montare la lametta. Tra l’altro, a differenza del Fatip, la testa del rasoio protegge completamente la lametta che risulta completamente racchiusa nel corpo del rasoio. E’ una soluzione che trovo molto bella esteticamente oltre che pratica.

Non sarà il rasoio della mia vita, però come alternativa o da portare in vacanza non è affatto male.

Permanent link to this article: http://www.andrea.rustichelli.name/radersi-come-un-uomo-alfa-capitolo-3-the-plastic-choice/

Paolo Villaggio – Fantozzi, rag. Ugo (La tragica e definitiva trilogia)

Dopo aver visto tutti i film del famoso “Ragionier Fantozzi” decido di buttarmi nella lettura dei libri che li hanno ispirati.

Praticamente è un frullato dei film, con gli eventi, i personaggi e i nomi sparsi qua e là tra le pagine dei 3 libri raccolti in un unico eBook.

Carino il primo, bello il secondo, il terzo a tratti diventa imbarazzante. Si ride a tratti. Però rimane una delle migliori e più longeve analisi della società italiana.

Permanent link to this article: http://www.andrea.rustichelli.name/paolo-villaggio-fantozzi-rag-ugo-la-tragica-e-definitiva-trilogia/

Factotum BOT – analizza_audio(…)

Ed eccoci all’ultima funzione del bot.

Quella che mi ha dato più problemi e quella che mi ha dato maggiori soddisfazioni.

Quando passiamo al bot un messaggio audio registrato all’interno di Telegram, questa funzione, come prima cosa, converte il file audio dal formato OGG al formato WAV. E per fare questo ho trovato una meravigliosa quanto pratica libreria PYDUB.

Successivamente la funzione passa il file audio in formato WAV all’engine di speech recognition di Google per riconoscere il messaggio vocale ed ottenere una stringa di testo.

Infine, la stringa di testo riconosciuta dal messaggio vocale, viene passata alla funzione formula_risposta(…) per formulare una risposta basata sul testo dettato (direi meraviglioso).

"""
=== ANALIZZA_AUDIO ===
Funzione per convertire in WAV il file audio registrato
in Telegram (nativo in formato OGG) e analizzare il messaggio audio
contenuto nel file WAV
======================
"""
def analizza_audio(bot, chat_id, msg):
    print("Funzione ANALIZZA_AUDIO: START")
    ogg_file_id=msg["voice"] ["file_id"]
    print("Funzione ANALIZZA_AUDIO:",ogg_file_id)
    print("Funzione ANALIZZA_AUDIO: Downloading file in formato OGG...")
    bot.download_file(ogg_file_id, "audio_da_telegram.ogg")
    print("Funzione ANALIZZA_AUDIO: Salvataggio file OGG terminato.")
    file_ogg = AudioSegment.from_ogg("audio_da_telegram.ogg")
    file_handle = file_ogg.export("output.wav", format="wav")
    print("Funzione ANALIZZA_AUDIO: Convesione file WAV terminato.")

    r = sr.Recognizer()
    with sr.WavFile("output.wav") as source:
        audio = r.record(source)

    try:
        domanda=r.recognize_google(audio,language="it_IT")
        print("Trascrizione del file audio: " + domanda)   # recognize speech using Google Speech Recognition
        formula_risposta(bot,chat_id,msg,domanda)
    except LookupError:                                 # speech is unintelligible
        print("Impossibile riconoscere del testo nel file audio analizzato")

    return

Permanent link to this article: http://www.andrea.rustichelli.name/factotum-bot-analizza_audio/

Factotum BOT – leggi_QR_code(…)

Ancora grazie agli amici del sito http://www.allafinedelpalo.it/ per il codice sulla lettura dei codice QR code che ho copiato dal loro post e che ho applicato all’interno del mio bot.

Pubblico anche le 3 immagini che contengono i codici QR che vengono riconosciuti dal bot. Non sono altro che 3 immagini che contengono le stringhe qrcode1, qrcode2 e qrcode3.

Quando viene inviata una immagine nella chat, il bot prova a controllare se nell’immagine è presente un QR code e legge il contenuto. Confronta il testo contenuto nel QR code con le 3 variabili definite a livello di programma e così definite:

QRCODE1="qrcode1"
QRCODE2="qrcode2"
QRCODE3="qrcode3"

Il bot, nella sua versione base, non fa altro che visualizzare il testo riconosciuto e comunicare se coincide con il valore di una delle 3 variabili.

Se il bot non riconosce nessun codice QR valido, visualizza un messaggio all’utente. E’ meglio stampare il codice QR e utilizzare la fotocamera dello smartphone per caricare l’immagine del QR code, perchè se si fotografa il codice QR dallo schermo del computer, il bot fa fatica a riconoscere correttamente il contenuto dell’immagine (forse i pixel disturbano l’identificazione).

Ecco il codice della funzione completa:

"""
=== LEGGI_QR_CODE ===
Funzione per analizzare l'immagine passata al BOT nella chat
e cerca se il testo presente nel QR code coincide con il testo
definito nelle 3 variabili di programma con lo scopo di
effettuare delle scelte sulla base del contenuto del QR code.
=====================
"""
def leggi_QR_code(bot,chat_id,msg):
    bot.sendMessage(chat_id, 'Ricerca dei QR Code in corso...')
    raw_img = BytesIO()
    bot.download_file(msg['photo'][-1]['file_id'], raw_img)
    img = Image.open(raw_img)
    qrcodes = decode(img)

    if len(qrcodes) > 0:
        for code in qrcodes:
            print("Il contenuto del QR code è:", qrcodes)
            qr_string=str(code.data)
            qr_string_unicode=qr_string[2:-1]

            bot.sendMessage(chat_id, "Il QRCode contiene il testo: " + qr_string_unicode)
            if qr_string_unicode==QRCODE1:
                bot.sendMessage(chat_id, "Trovato il QRCODE1")
            elif qr_string_unicode==QRCODE2:
                bot.sendMessage(chat_id, "Trovato il QRCODE2")
            elif qr_string_unicode==QRCODE3:
                bot.sendMessage(chat_id, "Trovato il QRCODE3")

    else:
        bot.sendMessage(chat_id, "Non ho trovato QRCode nella foto...")
    return

Permanent link to this article: http://www.andrea.rustichelli.name/factotum-bot-leggi_qr_code/

Factotum BOT – attiva_maggiordomo(…)

Di seguito riporto il codice per attivare l’Inline Keyboard all’interno di Telegram. Sinceramente pensavo che fosse più utili/pratica, ma alla fine non mi ha convinto come pensavo. Per questo motivo il codice non è ottimizzato e ho creato tante funzioni quante sono le Inline Keyboard da attivare. Ho anche creato una funzione che contiene molti cicli if per gestire i tasti premuti dall’utente, ma sono sicuro che ci sono modalità più raffinate per gestire questo tipo di input.

"""
=== ATTIVA MAGGIORDOMO ===
Funzione attivare l'Inline Keyboard presente in Telegram.
L'InlineKeyboard visualizza 3 pulsanti
 Il pulsante key1 visualizza un sottomenù con altri 2 pulsanti e quello per tornare indietro
 Il pulsante key2 visualizza un elenco di anni e il pulsante per tornare indietro
 Il pulsante key3 visualizza direttamente un testo
Questa è la funzione base. Ci sono altre funzioni per gestire le risposte dell'utente.
==========================
"""
def attiva_maggiordomo(chat_id):
    print("Maggiordomo attivato")

    keyboard = InlineKeyboardMarkup(inline_keyboard=[
                     [InlineKeyboardButton(text='Testo key1', callback_data='key1'),
                      InlineKeyboardButton(text='Testo key2', callback_data='key2'),
                      InlineKeyboardButton(text='Testo key3', callback_data='key3')]
                 ])
    bot.sendMessage(chat_id,"Attivazione del Maggiodomo in corso...",reply_markup=keyboard)

Di seguito riporto le altre funzioni necessarie per attivare e gestire i sotto menù dell’Inline Keyboard. Ricordo che il valore presente nel campo callback_data è quello che viene utilizzato per gestire il flusso all’interno del programma.

def attiva_maggiordomo_key1(chat_id):
    print("Maggiordomo KEY1 attivato")
    key1_keyboard = InlineKeyboardMarkup(inline_keyboard=[
                     [InlineKeyboardButton(text='Testo key1 sub 1', callback_data='key1_1'),
                     InlineKeyboardButton(text='Testo key1 sub 2', callback_data='key1_2')],
                     [InlineKeyboardButton(text='Torna indietro', callback_data='from_key1_back')]
                 ])
    bot.sendMessage(chat_id, "Entro nella sezione KEY1...",reply_markup=key1_keyboard)

def attiva_maggiordomo_key2(chat_id):
    print("Maggiordomo KEY2 attivato")
    key2_keyboard = InlineKeyboardMarkup(inline_keyboard=[
                     [InlineKeyboardButton(text='2016', callback_data='2016')],
                     [InlineKeyboardButton(text='2017', callback_data='2017')],
                     [InlineKeyboardButton(text='2018', callback_data='2018')],
                     [InlineKeyboardButton(text='Torna indietro', callback_data='from_key2_back')]
                 ])
    bot.sendMessage(chat_id, "Entro nella sezione KEY2...",reply_markup=key2_keyboard)

def attiva_maggiordomo_key3(chat_id):
    print("Maggiordomo KEY3 attivato")
    bot.sendMessage(chat_id, "Entro nella sezione KEY3...")

Infine, ecco la funzione per gestire i pulsanti una volta che vengono premuti dall’utente.

def on_callback_query(msg):
    query_id, chat_id, query_data = telepot.glance(msg, flavor='callback_query')
    print('Callback Query:', query_id, chat_id, query_data)
    if query_data=="key1":
        attiva_maggiordomo_key1(chat_id)
    elif query_data=="key2":
        attiva_maggiordomo_key2(chat_id)
    elif query_data=="key3":
        attiva_maggiordomo_key3(chat_id)
    elif query_data == 'from_key1_back':
        attiva_maggiordomo(chat_id)
    elif query_data == 'from_key2_back':
        attiva_maggiordomo(chat_id)
    elif query_data == 'from_key3_back':
        attiva_maggiordomo(chat_id)
    elif query_data == '2016':
        bot.sendMessage(chat_id, "Hai scelto l'anno 2016")
    elif query_data == '2017':
        bot.sendMessage(chat_id, "Hai scelto l'anno 2017")
    elif query_data == '2018':
        bot.sendMessage(chat_id, "Hai scelto l'anno 2018")
    elif query_data == 'key1_1':
        bot.sendMessage(chat_id, "Hai premuto il tasto KEY1_1")
    elif query_data == 'key1_2':
        bot.sendMessage(chat_id, "Hai premuto il tasto KEY1_2")
    elif query_data == 'key2_1':
        bot.sendMessage(chat_id, "Hai premuto il tasto KEY2_1")
    elif query_data == 'key2_2':
        bot.sendMessage(chat_id, "Hai premuto il tasto KEY2_2")

Permanent link to this article: http://www.andrea.rustichelli.name/factotum-bot-attiva_maggiordomo/

Factotum BOT – trova_posizione(…)

Ed eccoci alla funzione che, quando viene passata una posizione geografica al bot, tramite l’interrogazione di un web service, vengono visualizzati dei punti geografici nelle vicinanze del punto indicato. Ovviamente questa funzione ha uno scopo solo dimostrativo, ma serve per testare le potenzialità legate alla geolocalizzazione.

Inoltre è presente un pezzo di codice molto utile per la gestione del risultato dell’interrogazione del web service, in quanto l’output in formato json è stato reso “leggibile” tramite una conversione utilizzando la codifica UTF-8.

"""
=== TROVA_POSIZIONE ===
Funzione per scrivere i dati sulla posizione che viene passata al Bot
tramite l'interrogazione di un web service
=======================
"""
def trova_posizione(bot, chat_id, msg):
    bot.sendMessage(chat_id,'Mi hai passato la posizione geografica')
    print(msg["from"] ["first_name"])
    gps_lat=msg["location"] ["latitude"]
    gps_lon=msg["location"] ["longitude"]
    gps_url="http://www.geoplugin.net/extras/nearby.gp?lat=" + str(gps_lat) + "&lon=" + str(gps_lon) + "&format=json"
    with urlopen(gps_url) as response:
      html_response = response.read()
      encoding = response.headers.get_content_charset('utf-8')
      decoded_html = html_response.decode(encoding)

    data_json=json.loads(decoded_html)
    for posti in data_json:
        print(posti["geoplugin_place"], posti["geoplugin_distanceKilometers"], posti["geoplugin_directionHeading"])
        bot.sendMessage(chat_id, "Ti trovi a " + str(posti["geoplugin_distanceKilometers"]) + " Km da " + str(posti["geoplugin_place"]) + " in direzione " + str(posti["geoplugin_directionHeading"]))
    return

Permanent link to this article: http://www.andrea.rustichelli.name/factotum-bot-trova_posizione/

Factotum BOT – formula_risposta(…)

Vediamo la prima funzione utilizzata all’interno del BOT Factotum.

Il suo scopo è quello di prendere in input il testo digitato dall’utente all’interno della chat, spezzare la frase nelle singole parole che la compongono e confrontare le parole con le 3 HOT WORD inserite come variabili all’interno del programma stesso (e quindi a “compile time” e non a “run time”).

"""
=== FORMULA_RISPOSTA ===
Funzione per analizzare il testo digitato dall'utente nella chat
e formulare la risposta più appropriata sulla base delle 3 HOT_WORD definite
a livello di programma
========================
"""
def formula_risposta(bot, chat_id, msg, domanda):
    print("Funzione FORMULA_RISPOSTA: START")
    print("Funzione FORMULA_RISPOSTA: La domanda è ",domanda)

    parole=domanda.split(" ")
    parole_chiave=[]
    risposta=""
    for i in parole:
      if i in HOT_WORD1:
          parole_chiave.append(i)
          bot.sendMessage(chat_id,"Trovata la HOT_WORD1")
      if i in HOT_WORD2:
          parole_chiave.append(i)
          bot.sendMessage(chat_id,"Trovata la HOT_WORD2")
          #bot.sendDocument(chat_id, open('file_name.pdf', 'rb'))
      if i in HOT_WORD3:
          parole_chiave.append(i)
          bot.sendMessage(chat_id,"Trovata la HOT_WORD3")
          #bot.sendMessage(chat_id, "https://www.google.it")

    if len(parole_chiave)==0:
      bot.sendMessage(chat_id,"Spiacente, non sono riuscito a individuare la richiesta.")
    return

Le HOT_WORD non sono altro che liste che contengono le parole chiave che fanno attivare il BOT. Nel BOT di esempio sono descritte nel seguente modo:

HOT_WORD1=["pippo","Pippo","PIPPO"]
HOT_WORD2=["pluto","Pluto","PLUTO"]
HOT_WORD3=["paperino","Paperino","PAPERINO"]

Permanent link to this article: http://www.andrea.rustichelli.name/factotum-bot-formula_risposta/

Caleb Hattingh – 20 Python Libraries You Aren’t Using (But Should)

Giusto per affinare ulteriormente la programmazione in Python (e poter implementare migliorie al bot Factotum che sto realizzando) mi sono letto questo libro.

L’ho scaricato dal sito della biblioteca di Reggio Emilia tra le risorse disponibili gratuitamente.

Le librerie più utili sono le collections (soprattutto l’oggetto namedtuple) e il modulo logging (per evitare di inserire il comando print come se non ci fosse un domani). Usando opportunamente il modulo logging è possibile utilizzare i livelli di debug per avere un output di controllo più o meno “verboso” a seconda delle necessità e scrivendo poco codice aggiuntivo.

Permanent link to this article: http://www.andrea.rustichelli.name/caleb-hattingh-20-python-libraries-you-arent-using-but-should/

Factotum BOT – La presentazione

Finalmente, dopo un lungo periodo di preparazione, sono riuscito a terminare la presentazione per il progetto Factotum BOT.

Cos’è Factotum BOT? E’ sostanzialmente un bot per Telegram creato in Python utilizzando la libreria TELEPOT (anche se al momento il progetto di sviluppo di questa libreria è fermo) per testare alcune funzionalità e possibilità offerte da questo tipo di implementazione.

Come prima cosa devo ringraziare gli amici del sito “Alla fine del palo” perchè ho letteralmente utilizzato il loro codice per la parte che si occupa di leggere un QR Code (ma ho chiesto preventivamente l’autorizzazione).

Qui di seguito trovate la presentazione (l’attuale versione pubblicata è aggiornata a Settembre 2019) del progetto e nei prossimi giorni pubblicherò sia le singole funzioni sia il codice dell’intero bot funzionante. Ovviamente se lo volete provare dovrete creare un vostro bot tramite TheBotFather e utilizzare il vostro codice di attivazione del bot.

Permettetemi un’ultima divagazione…

Mi sono imposto (per motivi etici) di realizzare il progetto unicamente con software libero e quindi anche la presentazione l’ho voluta realizzare con lo strumento Impress della suite per ufficio LibreOffice. L’impressione che ho avuto è che sia un programma orrendo rispetto al suo parente più blasonato di casa Microsoft.

E a questo proposito mi viene in mente la diatriba tra Torvalds e Stallman quando, nella conferenza del 1996 organizzata dalla Free Software Foundation, Torvalds ammise di ammirare il software per la presentazioni delle diapositive della Microsoft. “Da qualche parte nell’universo del software libero stava nascosto un programma che forse un giorno qualche hacker avrebbe trasformato in alternativa a Power Point. Ma fino a quel momento, perchè invidiare alla Microsoft l’idea di aver realizzato quel programma e di essersene riservata i diritti?”

Beh posso tranquillamente dire che quel giorno non è ancora arrivato. Per fortuna di Microsoft e per sfortuna nostra.

Trovate tutti i link utili nell’apposita sezione del sito.

Permanent link to this article: http://www.andrea.rustichelli.name/factotum-bot-la-presentazione/

J. G. Ballard – La mostra delle atrocità

ballard_la mostra delle atrocità

Libro dichiaratamente sperimentale e, direi, provocatorio.

Strepitosa la caduta dei confini tra spazio interno e spazio esterno… gli edifici non hanno pareti e e lo “spazio esterno” è un continuum con le stanze vissute e frequentate da personaggi folli.

Le geometrie e i piani dello spazio si innestano, continuano o irrompono sui lineamenti dei personaggi.

Molto sperimentale. E la cosa bella delle sperimentazioni è che solo i critici le possono apprezzare positivamente. Consiglio la lettura di questo libro sotto l’effetto degli allucinogeni (ma quelli sperimentali).

Permanent link to this article: http://www.andrea.rustichelli.name/j-g-ballard-la-mostra-delle-atrocita/

Sam Williams – Codice libero – Richard Stallman e la crociata per il software libero

Libro che ho preso a caso in seguito ad una ricerca sui libri “informatici” disponibili nella biblioteca elettronica di Reggio Emilia. La prima cosa che mi ha colpito è che il libro proviene da Wikisource e che è soggetto alla licenza “Attribuzione – Condividi allo stesso modo 3.0 Unported (CC BY-SA 3.0)“. L’edizione elettronica del libro (è presente anche una normale versione cartacea) può essere pagata con l regole vigenti per il software libero. L’editore O’Reilly & Associates ha deciso di distribuire il volume sotto la licenza GNU Free Documentation License.

codice libero e richard stallman

Poi mi interessava l’argomento… ma mi spaventava l’idea di leggere una biografia.

Alla fine l’ho letto sotto l’ombrellone

Prima di trascrivere le prime epiche righe del libro, devo anticiparvi che è stata una lettura fondamentale per la mia crescita personale, umana, culturale, informatica e spirituale. E non sto scherzando. Mi si è aperto un mondo. Ecco come si apre il libro:
È successo raramente nella storia, ma è successo, che in un momento in cui sembrava che le regole del gioco fossero immutabili, che i vincitori fossero imbattibili e i perdenti senza alcuna possibilità di riscatto, un uomo solo, assolutamente privo di potere, ricchezze, fama, bellezza, amicizie, un uomo qualunque della specie innumerevole dei perdenti, riuscisse a sovvertire le regole del gioco e a far saltare il banco. La storia raccontata in questo libro è la storia di uno di quegli eventi rari ed è la storia di un uomo eccezionale che nasce perdente e diventa vincente, che non è bello ma affascinante, che non è simpatico ma è adorato come un dio; non ha amicizie vere ma conta migliaia di ammiratori; mette i lunghi capelli in bocca o nel piatto ove sta mangiando ma è conteso ospite alla tavola dei ricchi e dei potenti; non sorride mai ma si traveste da santo mettendosi in testa, a mo’ di aureola, la superficie attiva di un hard disk della prima generazione; non ha i soldi per pagarsi una cena al ristorante ma ha sconvolto un mercato da migliaia di miliardi di dollari.

In questo libro c’è la vera essenza degli hacker e del loro mondo, delle loro caratteristiche e della loro storia passata e presente… perchè il significato è cambiato con l’arrivo dell’informatica di massa e dei personal computer. E si può arrivare, per estrapolazione, alla terza definizione di “cracker”.
Nella mia cultura, il termine “cracker” poteva indicare:

  • l’utilizzo di attacchi “brute force” o comunque invasivi e distruttivi verso sistemi informatici;
  • una persona abile nello sproteggere i programmi come rimuovere il limite temporale nei programmi a tempo, creare keygen e fare crack in modo da bypassare la presenza di “dongle” da collegare al pc.

Ma poi scopro che “la cultura hacker è caratterizzata da un rigoroso senso morale, per cui un vero hacker non danneggerebbe mai un sistema informativo o un programma applicativo; e da una istintiva vocazione per la fraternità, la solidarietà e l’uguaglianza” e allora scopro che se non segui queste regole sei un “cracker”. E questa è la terza definizione di “cracker”. Alla luce di questo aspetto e leggendo la biografia di Stallman, possiamo dire che lui sia un grandissimo hacker… questo aspetto fa passare in secondo piano la sua incredibili capacità come programmatore.

Una cosa è certa… se indossi una cravatta non sei sicuramente un hacker perchè la cravatta viene definita come uno “strangling device” che riduce l’irrorazione cerebrale che si indossa insieme al “suit” che è uno scomodo abito da lavoro.

In questo libro c’è tutto. Non solo la vita di Stallman ma anche tutta l’evoluzione di un mondo che in pochi conoscono. C’è l’informatica degli albori, di quando i computer non erano “personal” e occupavano intere stanze nelle principali università americane, c’è la nascita del software libero, del movimento “open source”, di GNU, di Linus Torvalds e di Linux, c’è la vita e le azioni di altri hacker famosi, c’è la cattedrale e il bazaar, c’è la lotta contro le grandi multinazionali dell’informatica e c’è la libertà.

Inoltre sono contento di aver trovato all’interno dei Jagon Files la conferma di quello che ho appreso nelle mie ricerche e nelle mie immersioni nel mondo digitale… ovvero quali sono le definizione del termine hacker che non corrispondo al vero. Come, ade esempio, il fatto che derivi dal verbo “to hack”… tagliare, fare a fette.

Permanent link to this article: http://www.andrea.rustichelli.name/sam-williams-codice-libero-richard-stallman-e-la-crociata-per-il-software-libero/

W. Gibson – La notte che bruciammo Chrome

Primo libro letto di William Gibson. Libro che è una raccolta di racconti di fantascienza cyberpunk. Diciamo che non rispecchia il mio concetto di racconto in quanto, dato il tempo limitato della lettura, mi aspetto una maggiore incisività e soprattutto un effetto sorpresa sul finale, ma forse perchè sono abituato ad autori come Bradbury ma soprattutto Poe che ha fatto dei finali e della costruzione del racconto una vera e propria filosofia di scrittura (leggasi il saggio Eureka)

notte_che_bruciammo_chrome

In ogni modo le ambientazioni e i personaggi sono interessanti, soprattutto considerando che viene considerato il capostipite del genere cyberpunk. Il libro si apre con il racconto “Johonny Mnemonico” (da cui è stato tratto un film con Keanu Reeves)… famoso ma il finale è a dir poco imbarazzante (l’ultima frase spezza le gambe a tutto il racconto). Altri racconti che mi sono piaciuti sono stati “Il continuum di Gernsback” e “New Rose Hotel”.

I due racconti finali scritti in collaborazione con Bruce Sterling (Stella rossa, orbita d’inverno) e Michael Swanwick (Duello) sono forse i più belli e quelli che ricordo con maggiore forza e intensità, però alla fine sono anche i due racconti che più si avvicinano alla fantascienza classica rispetto agli altri racconti presenti nel libro.

Permanent link to this article: http://www.andrea.rustichelli.name/w-gibson-la-notte-che-bruciammo-chrome/

Sfida tra lamette

Ecco qui le foto delle lamette che utilizzo in questo momento e che sto confrontando per capire se quanto riportato in internet sia realmente corretto.

Ho iniziato con le Astra Platinum perchè erano le più consigliate per i principianti e devo dire che sono molto valide anche adesso che ho iniziato a prendere la mano. Devo ammettere che, come hanno commentato su alcuni siti internet di appassionati, la lama migliora verso il terzo utilizzo. Non l’ho mai utilizzata più di 5/6 volte. Ha una rasatura precisa e relativamente morbida.

Per quanto riguarda invece le Feather effettivamente sono più dure e meno permissive. Le ho provate un paio di volte e la prima volta avevo il viso che sembrava un campo di battaglia (mi sono tagliato in posti mai sperimentati prima d’ora), mentre al secondo e terzo utilizzo (man mano che diventavo più confidente) la qualità della rastura è nettamente migliorata. Sicuramente è una lametta che non perdona gli errori.

Permanent link to this article: http://www.andrea.rustichelli.name/sfida-tra-lamette/

Buon compleanno Negroni

La settimana che va dal 24 al 30 giugno 2019 si festeggieranno i 100 anni del Negroni, il famoso cocktail italiano.

Vorrei rendere omaggio al mio cocktail preferito (chi mi conosce sa perfettamente che è il mio preferito) ricordando uno dei negroni più buoni bevuto recentemente e quello peggiore mai bevuto (e forse coincide con il peggiore mai realizzato).

Fermo restando che il miglior negroni, senza paura di essere smentito, era quello che veniva preparato intorno agli anni 2000 al famoso Planet di Reggio Emilia. Quando partivo da Campagnola chiamavo i miei amici a Reggio e, sfruttando l’happy hour, me ne facevo prendere un paio. I baristi facevano esattamente quello che dovrebbe essere fatto per la preparazione di questo nettare.

Bicchiere tumbler, ghiaccio, fetta di arancia. Poi prendevano le tre bottiglie e le versavano contemporaneamente fino a riempire il bicchiere. Poi prendevano una cannuccia nera, la tagliavano in due e le inserivano nel bicchiere. Puro piacere.

Veniamo ad uno degli ultimi migliori Negroni. L’ho bevuto al Berlin Marriott Hotel (la prima foto ritrae proprio quel negroni). Conservato in una simpatica botticella di legno, possedeva sapori e aromi unici.

Mentre il peggio negroni mai bevuto e forse mai prodotto l’ho bevuto a Lanzarote in un hotel 5 stelle. Essendo un hotel internazionale pensavo di trovare un Negroni all’altezza del posto e invece il barman ha preso i 3 ingredienti, li ha uniti un uno shacker e, davanti ai miei occhi allibiti, ha iniziato a shackerare come se non ci fosse un domani. Poi ha versato l’intruglio in un bicchiere con una fetta di limone. Ovviamente i 3 ingredienti si sono mixati un un modo assolutamente osceno, perdendo il colore che deve avere il Negroni e la fetta di limone dava quell’acidità fastidiosa in modo da rendere ancora più indimenticabile la bevuta di quella improvvisata medicina.

Permanent link to this article: http://www.andrea.rustichelli.name/buon-compleanno-negroni/