Categorie
Informatica Opinioni Telegram

I miei post più letti… su Medium!

Mentre qui su questo blog mi ritrovo con pochissimi lettori, su Medium c’è ancora gente che legge la guida su Altervistabot, nonostante la base sia stata deprecata e la guida sia molto elementare. L’indice ha avuto addirittura 9.000 visualizzazioni/anno.

Per questo motivo ho deciso semplicemente di non ripubblicarla su questo blog. Come esperimento, però, ho deciso di attivare la monetizzazione su Medium, per capire se è davvero efficace e quante persone leggono la guida con il Paywall (tendenzialmente 0).

La parte 1 ha 7,9k visualizzazioni, la parte 2 ne ha 3,5k, molta gente evidentemente abbandona la guida dopo aver letto la prima parte. Inoltre, la parte 1 è presente da più tempo dell’indice, considererei quindi come indicatore di gente che segue al guida proprio la parte 2 del bot, che è poi quella che contiene la parte più sostanziosa di codice.

È chiarissimo ovviamente che tutto il traffico provenga da Google (7,7k su 9k, l’85%), anche se sinceramente non vedo tutto questo interesse per la creazione di bot Telegram, che è rimasto molto costante nel periodo di interesse della guida.


Ora vi starete chiedendo, perché questi dati? Non lo so neanche io, ma mi è arrivata la mail periodica di Medium sulle statistiche e mi piaceva l’idea di condividere con qualcuno questa stranezza, anche se quel qualcuno è nessuno (come i lettori di questo blog).

Momento pessimismo, molto probabilmente (in base alle statistiche) queste righe non verranno lette da nessuno, ma va bene così.

Categorie
Informatica Telegram

Un bot Telegram… per contare gli asd

Quando i lol ancora non esistevano, una sola parola indicava una risatina nel gergo dell’internet: asd. Grazie al bot telegram @asdcounterbot, potrete contare i vostri asd e competere con gli altri per vedere chi ne dice di più.

Gli asd, chi non se li ricorda gli asd. Quando i lol ancora non esistevano, una sola parola indicava una risatina nel gergo dell’internet: asd

Come ci spiega Wikipedia, nasce come risatina nei giochi che funzionavano con le quattro lettere della seconda fila della tastiera QWERTY, WASD. Per evitare di staccare le mani dalle tre lettere, è nato l’uso di scrivere asd per comunicare una risata.

La bellezza di questa parola l’abbiamo conservata negli anni, tant’è che ci sono ancora dei nostalgici che la usano. Come testimoniare quest’uso se non creando un bot Telegram dedicato che dimostri quant’è viva e pulsante la comunità di persone che preferisce dire un bell’asd ad un brutto lol?

Ebbene, ho creato la soluzione per voi. Basta inserire il bot Telegram @asdcounterbot per apparire nella classifica globale, godersi il grafico degli asd inviati e se si vuole anche un messaggio ogni asd.

Il bot è nato da un’idea di Valerio Bozzolan, che si può considerare il campione vivente, l’impersonificazione della faccina dell’asd. L’ho sviluppata io, perché lui non ne aveva voglia, tempo o qualsiasi altra cosa, in Ruby on Rails 5, dopo un primo tentativo fallito in PHP. È hostata su Heroku.

Buon divertimento, buon asd. Correte ad aggiungere @asdcounterbot nei vostri gruppi.


Comandi

  • Se siete amanti della privacy e non volete apparire in classifica (in privato o in gruppo): /fuoriclassifica
  • Se volete ricevere un messaggio ad ogni asd invece che uno a mezzanotte (solo nei gruppi): /nightsend
  • Se volete visualizzare il vostro grafico personale o del gruppo (in privato o in un gruppo): /grafico

Nota: a quei tempi, asd non aveva tutti i significati di oggi, o non si conoscevano, quindi andava e va benissimo come risatina.

Categorie
Guide Informatica Telegram

Configurare un gateway tra IRC e Telegram

Guida completa in italiano per utilizzare Teleirc

Ecco come creare un gateway di collegamento tra IRC (sistema per chattare che ha avuto un boom un po’ di anni fa) e Telegram (app di messaggistica nata nel 2013).

Può esserci utile nel caso in cui abbiamo un canale IRC ed uno Telegram sullo stesso argomento/per lo stesso progetto e non vogliamo disperdere messaggi tra i due.

Per questo tutorial utilizzeremo Teleirc di FruitieX, anche se ci sono diversi fork e versioni (come quello di RITlug).

https://github.com/FruitieX/teleirc

Per questa guida (e videoguida allegata) utilizzeremo Ubuntu 16.04 LTS su un Droplet di DigitalOcean. Utilizzando questo link avrete 10$ di credito se vi iscrivete per la prima volta.

Registriamoci, clicchiamo “Create droplet” e selezioniamo i dettagli.

Passaggi preliminari

Prima di tutto, installiamo node.js. Utilizziamo il nostro package manager. Questa qui è una guida che spiega come installarlo su tutti i sistemi.

In questo articolo spiegheremo solo come fare su Debian e derivati (vedi Ubuntu) e per Enterprise Linux e Fedora.

Per Debian e derivati

Diamo i due comandi:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Solo su Ubuntu è necessario dare questo comando (a detta della guida ufficiale) che potrebbe anche non funzionare (ho testato e ci sono problemi):
sudo apt-get install libicu-dev

Per Enterprise Linux e Fedora

Diamo inizialmente il comando:

curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -

Dopo installiamo con sudo yum -y install nodejs

Verifica dell’installazione

Per controllare di averli installati correttamente, verifichiamo la loro effettiva presenza:

node -v
npm -v

Aggiornamento di NPM

Nonostante sia installato automaticamente con Node.js, può essere utile aggiornare NPM all’ultima versione visto che comunque è un progetto separato.

npm install npm@latest -g

Installazione di Teleirc

Installiamo Teleirc digitando sudo npm install -g teleirc

Subito dopo creiamo il file di configurazione teleirc --genconfig, se ci sono problemi in questa fase usiamo il fixme dell’autore digitando mkdir ~/.teleirc

Problemi supplementari

Computer: macchina progettata per velocizzare e automatizzare gli errori.

–Anonimo

Ebbene, durante l’installazione di teleirc possono verificarsi degli errori, uno di questi riguarda node-gyp. Se vi capita un errore del genere, seguite la procedura:

Aggiornamento di Node.js e npm

sudo npm cache clean -f
sudo npm install -g n
sudo n 4.4.5
sudo npm install npm -g

Rimozione di moduli node-gyp addizionali

sudo npm uninstall node-gyp -g
sudo npm uninstall node-gyp

(Grazie Kala725, soluzione presa da lui qui.)

Configurazione di Teleirc

Se siamo riusciti ad eseguire l’installazione senza problemi procediamo ad eseguire la configurazione.

Creazione e configurazione del bot Telegram

Prima di tutto creiamo il bot su BotFather. Creiamo il nostro bot digitando /newbot e seguendo la procedura. Poi copiamo il token ricevuto nel messaggio ed incolliamolo nel file di configurazione che vedremo in questo passaggio.

Trovate qui un video su come personalizzarlo mentre qui un elenco già pronto di comandi da impostare (basta copiare ed incollare) quando si fa /setcommands.

Poi digitiamo /setprivacy, scegliamo il nome del nostro bot e clicchiamo Disable. In questo modo consentiremo al nostro bot Telegram di leggere i messaggi che inviamo nel gruppo e di inviarli a teleirc.

Configurazione di Teleirc

Facciamo cd ~/.teleirc ed apriamo dal nostro editor di testo preferito (io uso nano) il file config.js.

Per comodità ecco il comando nano config.js.

A questo punto ci ritroveremo con questo file di base di nome config.js, questa è una mia traduzione dei commenti fatta sulla base dell’ultima versione. Vi consiglio di guardare sempre il repository ufficiale per la versione aggiornata.

https://gist.github.com/ferdi2005/54152db6832d270dd00842774773d4ec

Una volta che abbiamo configurato correttamente il bot, salviamo il file ed eseguiamo il comando teleirc. Finalmente, dopo tante peripezie, abbiamo fatto partire questo bot.

Vedrete entrare il bot con l’username che gli avete dato nel canale IRC che avete impostato.

Ma non è finita qui!

In alcuni casi, il bot potrebbe non aver acquisito correttamente il chatID del nostro gruppo e potrebbe richiederlo insistentemente su IRC. In questo caso dobbiamo inviare un messaggio qualsiasi sul nostro gruppo Telegram preferibilmente menzionando il bot utilizzando @usernamedelbot (quello che abbiamo impostato su BotFather).

Una volta aver visto il primo messaggio recapitato e nessun segnale controverso durante la sessione SSH (quindi vedendo solo uno spazio vuoto sotto al processo senza altri interruzioni e senza possibilità di eseguire altri comandi).

GNU screen

Ma se si chiudesse la sessione SSH? In questo caso non avremmo la possibilità di mantenere attivo il bot. Ci viene in aiuto GNU screens, ottimo strumento.

Digitiamo screen e subito dopo premiamo invio (ci uscirà una schermata di presentazione). Infine si aprirà una normalissima finestra SSH. Lì potremo digitare tutti i comandi che vogliamo che rimarranno in esecuzione anche dopo la chiusura del terminale (Attenzione! Chiudete il terminale, non killate la sessione)

Per recuperare la sessione basta digitare screen -r mentre per recuperare un elenco delle sessioni (per poi recuperarle se sono più di una) basta digitare screen -ls.

Con il riavvio le sessioni però si interromperanno.

Per questo motivo potete provare un servizio (da posizionare in /etc/systemd/system ) ma non vi garantisco niente. Trovate un esempio dell’autore qui. Io ci ho rinunciato ormai e uso l’ottimo screens.

Note finali

Vi consiglio di leggere attentamente queste note finali perché contengono alcune informazioni importanti.

Per accedere al gruppo di supporto del Teleirc che stiamo usando noi basta digitare teleirc --join-tg .

Le prime volte che utilizziamo Teleirc è molto utile usare teleirc -vvv per vedere un debug di quello che succede e degli eventuali problemi sorti in modo da poterli risolvere meglio.

Se qualcosa può andar male, andrà male.

Legge di Murphy

È importante non killare il processo forzatamente ma solo con CONTROL+A altrimenti il webserver rimarrà in ascolto e sarà impossibile riprendere teleirc se non con un riavvio del sistema.

Cosa importantissima, se riscontrate dei malfunzionamenti di qualsiasi tipo che riguardano l’invio dei messaggi da Telegram a IRC (Telegram =>IRC) vi consiglio di togliere e riaggiungere il bot (dopo aver verificato l’effettivo accesso ai messaggi come impostazione per la privacy)rAltra cosa importante, se non gradite che vengano caricate le immagini sul server, potete far sì che vengano caricate su Imgur, trovate una guida ufficiale qui. Se quest’articolo sarà servito a qualcosa (fatemi sapere nelle risposte) molto probabilmente creerò anche io una miniguida per utilizzare Imgur collegato a questo bot.

Tramite regex è possibile configurare quali messaggi devono essere inviati a IRC da Telegram (e viceversa) e quali no. Trovate l’opzione alla fine del file di configurazione.


Grazie a tutti dell’attenzione, non dimenticatevi di mettermi un clap (solo se volete :-D) e di iscrivervi alla mia newsletter!

Fatemi sapere nei commenti come è andata e se avete avuto problemi.

Categorie
Telegram

Telegram pubblica i termini e condizioni per i client alternativi

Ecco quali sono le condizioni poste da Telegram e cosa rischiano gli sviluppatori se non rispettano le regole

Irangram, uno dei client alternativi a Telegram per sistemi operativi desktop — fotografia di Martin Ligabue, licenza CC-BY-SA 4.0

Durov ha annunciato con un post sul suo canale l’arrivo dei nuovi termini e condizioni per i client alternativi. I client alternativi che usano le API di Telegram sono moltissimi e svariati.

Uno dei più famosi è l’iraniano Mobogram che sarà costretto (insieme ad altri client) a disattivare la ghost mode, ma andiamo ad esaminare nel dettaglio cosa dicono questi ToS.

Vietato interferire

Il punto principale dei ToS è proprio questo:

1.4. It is forbidden to interfere with the basic functionality of Telegram. This includes but is not limited to: making actions on behalf of the user without the user‘s knowledge and consent, preventing self-destructing content from disappearing, preventing last seen and online statuses from being displayed correctly, tampering with the ’read‘ statuses of messages (e.g. implementing a “ghost mode”), preventing typing statuses from being sent/displayed, etc.

Significa che è vietato interferire con le funzionalità base di Telegram e parla esplicitamente di Ghost Mode.

In un suo tweet Durov ci aveva anticipato questa imposizione. Infatti diceva che Mobogram fosse poco aggiornato (e lo è, visto che si riferiva ad una “falsa” versione pubblicata sul Play Store) che questi client avrebbero dovuto rimuovere funzionalità come la Ghost Mode.

È innegabile, comunque, che Mobogram (l’app originale ma anche l’app “finta” del Play Store) non rispetti i termini con cui è condiviso Telegram perché non ha a sua volta rilasciato il codice sorgente modificato mentre la GNU GPL 2.0 parla chiaro. La stessa cosa è stata fatta da altri client iraniani.

Monetizzazione

Un’altra parte dei ToS parla di monetizzazione e dice che i developer possono monetizzare la propria applicazione attraverso annunci o in altri modi legittimi, se menzionano il tutto nella descrizione dell’app negli store.

3.1. Developers are allowed to monetize their coding efforts through advertising or other legitimate means.
3.2. If you decide to monetize your app, you must clearly mention all the methods of monetization that are used in your app in all its app store descriptions.

Come Telegram si difenderà dalle violazioni dei ToS

Gli ultimi punti dei ToS parlano chiaro:

4.1. If your app violates these terms, we will notify the Telegram account responsible for the app about the breach of terms.
4.2. If you do not update the app to fix the highlighted issues within 10 days, we will have to discontinue your access to Telegram API and contact the app stores about the removal of your apps that are using the Telegram API in violation of these terms.

Dicono che nel caso in cui un app violi in qualsiasi modo questi ToS l’accesso alle API verrà bloccato (con la revoca del token) e Telegram stessa chiederà agli store di rimuovere l’app.

Telegram ha mandato il 30 agosto 2017 una comunicazione agli sviluppatori registrati dicendo:

Ciao, nome. Stai ricevendo questo messaggio perché sei il creatore dell’app nomeapp (api_id = api_id) che utilizza l’API di Telegram. Abbiamo recentemente aggiornato i Termini di Servizio per l’utilizzo della nostra API da parte dei client di terze parti.

Per favore assicurati che la tua app sia pienamente conforme a queste regole: https://core.telegram.org/api/terms

Le app che violano i Termini di Servizio saranno rimosse dagli app store e l’accesso all’API di Telegram sarà negato.

Maggiori dettagli:
https://t.me/durov/58

Molto probabilmente i 10 giorni partono dalla data di invio dei messaggi, che sono arrivati in contemporanea a tutti gli sviluppatori registrati (almeno a quelli italiani).

Gli altri punti dei termini parlano sostanzialmente di quanto già detto: l’app non può contenere il nome “Telegram” nel nome a meno che non sia seguito dalla scritta unofficial, non potrà usare il logo di Telegram e dovrà rispettare i criteri di sicurezza.

Al momento, però, non tutti i client si sono adeguati.


Le citazioni dai termini di servizio di Telegram non rientrano sotto la licenza Creative Commons Attribuzione-Condividi allo stesso modo 4.0 ma sono citati per diritto di critica e di citazione.

Categorie
Telegram

Rilasciato Telegram 4.2: reintrodotte le bio, ma con alcune limitazioni

La versione 4.2 di Telegram introduce diverse novità.

Ecco qui l’articolo che le riunisce tutte basato, in parte, sull’articolo ufficiale del blog di Telegram.

Telegram come Snapchat e ritornano le Bio

È stata introdotta la possibilità di inviare foto e video con autodistruzione come su Snapchat, è stato ridisegnato e migliorato il photo editor ma soprattutto è stata re-introdotta la possibilità di inserire una breve biografia. Infatti, come testimonia questa guida scritta da OpenTelegramItalia, era possibile già in passato (ma in un modo più complicato) impostare una propria bio. Questa bio apparirà anche nella propria scheda profilo online (su link t.me/username) introdotta da poco per canali e bot (e con questo aggiornamento per gli user).

Ci sono delle limitazioni, però. Infatti, il numero massimo di caratteri è di 70. Paradossalmente, il numero massimo di caratteri per il nome ed il cognome è di 256 (molto più alto della bio!).

Inoltre, @TGbeta (canale autorevole su Telegram) comunica che eventuali username inseriti nelle proprie bio e nelle bio dei bot non saranno cliccabili su Android e iOS mentre gli username nelle bio dei bot (e solo quelli) saranno cliccabili su Telegram Desktop e sull’edizione specifica per macOS.

Messaggio di @TGbeta © @TGbeta, immagine NON sotto CC-BY-SA, di proprietà esclusiva dell’autore. Utilizzo in fair use

CDN: download più veloci

Un’altra novità introdotta dall’aggiornamento è un Content Delivery Network per i canali con più di 100.000 membri. Attraverso questo sistema, il cui funzionamento è stato descritto da Telegram in questo articolo dedicato, i contenuti (immagini e video) saranno scaricati più velocemente. Infatti, un CDN ha vari nodi distribuiti in tutto il mondo che consentono di raggiungere più velocemente l’utente e che evitano il sovraccarico di richieste per il server principale.

Una di questi nodi sarà posizionato in Iran perché è uno dei Paesi con i canali più grandi. I server rimarranno dove stanno.

One more thing, come diceva Steve Jobs e come ora ha detto Durov, la barra degli sticker è stata allargata.

Rapido rilascio dei sorgenti

Ogni aggiornamento Telegram deve rilasciare il codice sorgente delle varie edizioni dell’applicazione per consentire agli sviluppatori terzi (quelli che creano i cosiddetti client alternativi) di aggiornare anche le loro applicazioni. Purtroppo, molto spesso Telegram rilascia i codici sorgenti con molto ritardo ritardando, di conseguenza, l’aggiornamento degli altri client.

Ebbene, in questo caso i sorgenti sono stati rilasciati poco prima del rilascio dell’aggiornamento (come detto nel commento al rilascio su Github).


Pubblicato originariamente su mait.tech dal sottoscritto il 20 luglio 2017, il blog è stato chiuso di recente per ragioni che vi spiegherò in un post successivo.