Tuipi: differenze tra le versioni
(scheletro bozza di tutorial) |
m (→Codifica: pseudo-fix) |
||
(12 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
'''Tuipi''' è un programmello | '''Tuipi''' è un simpatico programmello [[Tecnopolitica|tecnopolitico]] sbarazzino, che sviluppiamo connettere le lotte di piazza con la Rete. Scritto prevalentemente in linguaggio Python, Tuipi utilizza le [https://dev.twitter.com/overview/api API di Twitter] interfacciandosi con la libreria [http://docs.tweepy.org tweepy]. | ||
Il codice sorgente di Tuipi [https://git.eigenlab.org/rakk/tuipi si trova] sul nostro repository [[GitLab|Git]]; devi registrarti e poi chiedere di essere inseritx nel gruppo di sviluppo. Questa precauzione (che sembra contrastare con i princìpi di [[OpenSource|apertura]]) ci è necessaria per evitare l'assorbimento dei nostri algoritmi da parte di twitter e altri [[Big data]], che abbasserebbe drasticamente l'efficacia del nostro lavoro; speriamo di giungere presto ad un livello di maturità del codice e di condivisione di valori e scopi nel suo utilizzo che ci permetta di fornire accesso incondizionato a tuttx. | |||
=== | = Creare un bot = | ||
Un robot<ref>Dallo slavo ''rabota'', "servitù".</ref> è una macchina che lavora al posto tuo. Probabilmente vuoi creare altri account Twitter fittizi (bot) '''diversi''' dal tuo account personale perché | |||
* non ti piace lavorare, e ti alletta l'idea di una macchina che ti permette di ottenere grandi risultati con poco sforzo; | |||
* Twitter [https://support.twitter.com/articles/93870 non vede di buon occhio] l'attività robotica e a volte può sospendere, bloccare o terminare degli account che considera sospetti: non vuoi che questo succeda col tuo account personale. | |||
Inoltre Twitter [https://dev.twitter.com/rest/reference/get/application/rate_limit_status limita] il numero di operazioni che è possibile fare in un quarto d'ora attraverso le API; Tuipi però supera questa limitazione supportando un numero arbitrario di account gestiti in sincrona armonia con i loro limiti attuali. La partecipazione di tanti account aumenta la "potenza di fuoco" durante un [[tweetstorm]] e migliora anche la capacità di analisi che puoi sviluppare; ma ti rende anche più difficile gestire tanti account con precisione: comincia prima usando un solo robot, e poi aumenta gradualmente senza farti prendere la mano. | |||
[[File:Twitter-profile-rakk g.jpg|miniatura|Il profilo [http://twitter.com/rakk_g @rakk_g] è gestito da 14 persone, più o meno umane.]] | |||
Ecco una procedura per attivare un robot; non è l'unica possibile e ha delle criticità (v. sotto). | |||
Vai da un rivenditore [http://www.lycamobile.it/it/howtouse Lyca]. Le stazioni ferroviarie sono un ottimo posto in cui cercare perché vi si concentrano attorno negozi col logo Lyca esposto fuori; inoltre in quelle più grandi e nei giorni feriali (specialmente da tarda primavera fino a tutta l'estate) ci puoi trovare gli operatori Lyca con la pettorina che smerciano proprio quello che interessa a te: le schede SIM a zero euro! I negozianti in una bottega affiliata a Lyca saranno molto più restii a darti le schede a zero euro, preferiranno piuttosto venderti quelle con già del credito dentro, facendoti pagare. Le schede con zero euro vengono shippate in un cartoncino blu con scritto grosso sopra "0 €" e sono aggratis.<ref name="sparite0euro">Da qualche tempo è diventato praticamente impossibile reperire le schede a zero euro; si trovano solo quelle da cinque.</ref> | |||
Quando hai in mano le schede ancora non le puoi usare, devi aspettare che l'operatore te le attivi: normalmente ci vogliono meno di 24 ore. | |||
'''Occhio''': questo metodo '''non''' garantisce alcuna riservatezza perché per la legge italiana si devono dare un documento d'identità e il codice fiscale per avere una scheda SIM. | |||
Di buono c'è che Lyca ti può dare fino a 5 schede SIM con un documento. Dopo qualche tempo ne prendi altre 5 in un altro negozio e chiedi che ti disattivi prima le vecchie cinque; puoi anche riconsegnargliele a quel punto. | |||
Occhei, ora hai una SIM che utilizzerai con '''un solo''' account robotico. | |||
Ti serve anche aprire una nuova casella email su [https://accounts.google.com/SignUp?service=mail Gmail], da utilizzare nella fase di registrazione dei nuovi account su Twitter (v. sotto). Di buono c'è che puoi utilizzarne una sola per tutti, con un trucchetto: se p.e. hai aperto una casella con indirizzo provolone@gmail.com puoi usarla per registrare il primo account, poi aggiungere dei punti per i successivi: p.rovolone@gmail.com per il secondo, pr.ovolone@gmail.com per il terzo... p.r.o.v.o.l.o.n.e@gmail.com per il duecentocinquantaseiesimo. Tutti gli indirizzi Gmail ottenuti aggiungendo dei punti confluiscono nella stessa casella. | |||
== Creare un nuovo account Twitter, registrare una app e connetterci Tuipi == | |||
Usa un browser in modalità "privato" o "incognito" o quel che è, senza altre schede aperte. Non loggarti a Facebook, Gmail o altro. [https://twitter.com/signup Apri un nuovo account] su Twitter. Fai le seguenti operazioni, ove possibile in un ordine casuale diverso da quello qui sotto: | |||
* scegli uno ''screen_name'' (più corto possibile), un nome utente e una password robusta; | |||
* non collegarlo a Gmail ne' a Facebook ne' altre schifezze, non dargli (ancora) numeri di telefono; | |||
* seleziona un sottoinsieme degli account consigliati da seguire. Non seguirli tutti ma una manciata tra cui gli evergreen tipo il papa ci sta bene. Concludi la registrazione. | |||
* fai un tweet; | |||
* twitta taggando qualcuno; | |||
* segui qualcuno; | |||
* ritwitta uno status; | |||
* scrivi una bio, scegli una locazione geografica (anche fittizia, tipo "Legoland" o "Eta Carinae"), scegli una data di compleanno; | |||
* cambia le immagini del profilo e dell'intestazione: sceglile ganze. | |||
=== Conferma cellulare con una SIM Lyca === | |||
Occhei, supponiamo di aver appena creato un utente chiamato ''Guglielmo Libri Carucci dalla Sommaja'' e screen_name ''@GCSbookz''; dobbiamo dare il numero di telefono di Guglielmo a Twitter. Prendi una schedina Lyca e schiaffala nel cellulare, accendilo e aspetta qualche minuto. Se l'operatore ti ha attivato la scheda, ti arriveranno dei messaggini di benvenuto. Digita <code>*132#</code> oppure <code>97#</code> e poi chiama, ti apparirà un messaggio col numero telefonico di quella scheda. Inseriscilo nella [https://twitter.com/settings/devices pagina dei telefoni] di Twitter e aspetta l'SMS di conferma, che poi va fornito alla stessa pagina. | |||
=== Registrare una app e ottenere le credenziali per la API === | |||
Ora dovrai registrare una app, un passaggio formale per permetterti di gestire il nuovo account tramite Tuipi. | |||
Senza fare il logout da Twitter vai a questo indirizzo <code>[https://apps.twitter.com/ https://apps.twitter.com/]</code> per registrare una nuova applicazione (non dovresti averne nessuna già attiva al momento). Scegli un nome (non "Tuipi"), una descrizione decente, un sito web (scegli un sito pertinente, p.e. [http://www.tweepy.org/ questo], [http://www.stats.ox.ac.uk/~snijders/siena/ questo], [http://www.insna.org/ questo], [https://tweetdeck.twitter.com/ questo], [http://gephi.org/ questo], [https://www.python.org/ questo], [http://www.xda-developers.com/ questo], [http://developer.ubuntu.com/community/ questo], [http://www.sciencedirect.com/science/journal/03788733 questo] o [http://www.tandfonline.com/toc/gmas20/current quest'altro]) e accetta le condizioni. | |||
Accertati che l'applicazione appena creata abbia i permessi in ''Lettura, scrittura e messaggi diretti'', poi vai alla pagina "Chiavi e token d'accesso" e prenditi le ''Consumer Key'' (API Key + API Secret) e i ''Access Token'' (Access Token + Access Token Secret)<ref>Forse devi generarli col bottone se non li hai già.</ref>. Queste quattro stringhe vanno fornite a Tuipi nei dizionari che si trovano in <code>config/costanti.py</code>. | |||
Finito: tu e il tuo nuovo robot siete pronti all'azione. | |||
=== Suggerimenti === | |||
Se vorrai salvare (com'è probabile, per semplificarsi la vita) le informazioni circa | |||
* le schede SIM: i numeri telefonici associati, i PUK, le utenze Twitter associate... | |||
* la casella Gmail: username, password, utenze Twitter associate... | |||
* gli account Twitter: screen_name, ID, password, credenziali della app per accedere alla API... | |||
è comodo usare una [https://en.wikipedia.org/wiki/Password_manager applicazione] come [http://keepass.info/ Keepass] per criptare ed organizzare queste informazioni. | |||
== Mi hanno bloccato/sospeso/terminato un account! == | |||
Questa sezione è ancora da scrivere. | |||
= Come usare Tuipi = | |||
Non abbiamo ancora scritto un manuale, però il codice è ben documentato: usa la funzione <code>help()</code> su un oggetto per capire cosa è, come funziona, come usarlo, etc. | |||
Se non si vogliono manipolare gli script a mano, Tuipi offre un'interfaccia interattiva semplificata con lo script <code>simple.py</code>; per lanciarla apri un terminale, spostati (con il comando <code>cd</code>) nella directory dove risiede il programma e lancia lo script in modo interattivo col comando <code>python -i simple.py</code>: | |||
<pre> | |||
gianna@epta ~/src/tuipi (git)-[master] % python -i simple.py | |||
Bevenut@, gianna! | |||
Per abortire un prompt (compresa la console) invia EOF (in genere, CTRL+D), | |||
mentre con CTRL+C puoi abortire un comando; fallo solo in caso di necessità. | |||
Sto leggendo ...50%...99%. : disponi di 842M di dati in 47 file (12 profili, 7 stati, 6 HTs, | |||
21 grafi, 1 timeseries). | |||
---------------------------------- | |||
-[[ TUIPI - menu prinpiciale ]]- | |||
API: gnna1475 DM_analisys | |||
Profili: @Iddio @laMadonna @eigenLab_Pisa | |||
Stati: | |||
Hashtags: #NonUnaDiMeno #NoBorders | |||
--------------------------------- | |||
A ) Connetti interfacce | |||
RL) Calcola munizioni rimaste (rate limits) | |||
S ) Carica la Sandbox (as sb) | |||
U ) Carica batteria di profili | |||
Ui) Inserisci a mano un utente (screen_name o user_id) | |||
Um) Mostra utenti | |||
Ud) Rimuovi duplicati utenti | |||
Uc) Ripulisci lista utenti | |||
T ) Carica un file di tweet | |||
H ) Carica un file di hashtags | |||
C ) Carica un file di commenti | |||
L ) Carica un file di links | |||
G ) Carica un grafo | |||
R ) Esplora relazioni | |||
Ts) Calcola timeseries | |||
Sm) Strategia monitor/select/spread | |||
FS) Griglia FSNR | |||
Co) Torna alla console | |||
Scelta: | |||
</pre> | |||
== Problemi == | |||
Per usare Tuipi hai bisogno di Python, versione 3 o superiore. | |||
=== Codifica === | |||
Se ottieni un errore simile a <code>tweepy.error.TweepError: Failed to send request: 'str' object has no attribute 'decode'</code>, o altri segnali che qualcosa di malvagio sta accadendo a causa della codifica del testo, una cosa che talvolta funziona (p.e. con la distribuzione Debian) è installare la libreria Tweepy attraverso pip, anziché tramite il pacchetto sui repository. | |||
= Appunti sparsi = | |||
Tuipi consta di un tot di scriptini in Python che usano la libreria [http://tweepy.readthedocs.io tweepy], che a sua volta si interfaccia con la [https://dev.twitter.com/ API di Twitter]. Settando adeguatamente i permessi, funziona sia in lettura (per analisi, statistiche, preparazione delle strategie, etc.) che in scrittura (twittando, ritwittando, mettendo il cuoricino, DM, follow/unfollow, media upload, cambio impostazioni, etc.); si può usare sia l'interfaccia REST che quella di streaming, quest'ultima molto utile nelle applicazioni in tempo reale. | |||
== Altre risorse == | |||
* Tuipi automatizza il possibile, ma non tutto; ha bisogno comunque di una supervisione umana (tranne che per le funzioni di calendarizzazione) e la qualità dei risultati finali dipende molto dalla cura con cui si preparano i dati di partenza. È utile farsi un'idea della dinamica che si sta affrontando anche con altri strumenti come [[Gephi]] o [https://support.twitter.com/articles/354008 la ricerca avanzata] di Twitter. | |||
* Un [https://dev.twitter.com/resources/twitter-libraries elenco] di librerie supportate da Twitter | |||
* Curl esteso con OAuth: [https://github.com/twitter/twurl qui] | |||
* [https://dev.twitter.com/rest/reference/post/media/upload media upload] e [https://github.com/tweepy/tweepy/issues/724 upload multipli] | |||
* [https://dev.twitter.com/rest/reference/get/trends/place reference] per l'acquisizione geolocalizzata dei trending topics | |||
= Wishlist = | |||
Ci sono delle funzioni che desideri? Scrivilo quih! | |||
= Note = | |||
<references /> | |||
[[Categoria:Tecnopolitica]] | |||
[[Categoria:HowTo]] |
Versione attuale delle 02:00, 15 mar 2017
Tuipi è un simpatico programmello tecnopolitico sbarazzino, che sviluppiamo connettere le lotte di piazza con la Rete. Scritto prevalentemente in linguaggio Python, Tuipi utilizza le API di Twitter interfacciandosi con la libreria tweepy.
Il codice sorgente di Tuipi si trova sul nostro repository Git; devi registrarti e poi chiedere di essere inseritx nel gruppo di sviluppo. Questa precauzione (che sembra contrastare con i princìpi di apertura) ci è necessaria per evitare l'assorbimento dei nostri algoritmi da parte di twitter e altri Big data, che abbasserebbe drasticamente l'efficacia del nostro lavoro; speriamo di giungere presto ad un livello di maturità del codice e di condivisione di valori e scopi nel suo utilizzo che ci permetta di fornire accesso incondizionato a tuttx.
Creare un bot
Un robot[1] è una macchina che lavora al posto tuo. Probabilmente vuoi creare altri account Twitter fittizi (bot) diversi dal tuo account personale perché
- non ti piace lavorare, e ti alletta l'idea di una macchina che ti permette di ottenere grandi risultati con poco sforzo;
- Twitter non vede di buon occhio l'attività robotica e a volte può sospendere, bloccare o terminare degli account che considera sospetti: non vuoi che questo succeda col tuo account personale.
Inoltre Twitter limita il numero di operazioni che è possibile fare in un quarto d'ora attraverso le API; Tuipi però supera questa limitazione supportando un numero arbitrario di account gestiti in sincrona armonia con i loro limiti attuali. La partecipazione di tanti account aumenta la "potenza di fuoco" durante un tweetstorm e migliora anche la capacità di analisi che puoi sviluppare; ma ti rende anche più difficile gestire tanti account con precisione: comincia prima usando un solo robot, e poi aumenta gradualmente senza farti prendere la mano.
Ecco una procedura per attivare un robot; non è l'unica possibile e ha delle criticità (v. sotto). Vai da un rivenditore Lyca. Le stazioni ferroviarie sono un ottimo posto in cui cercare perché vi si concentrano attorno negozi col logo Lyca esposto fuori; inoltre in quelle più grandi e nei giorni feriali (specialmente da tarda primavera fino a tutta l'estate) ci puoi trovare gli operatori Lyca con la pettorina che smerciano proprio quello che interessa a te: le schede SIM a zero euro! I negozianti in una bottega affiliata a Lyca saranno molto più restii a darti le schede a zero euro, preferiranno piuttosto venderti quelle con già del credito dentro, facendoti pagare. Le schede con zero euro vengono shippate in un cartoncino blu con scritto grosso sopra "0 €" e sono aggratis.[2] Quando hai in mano le schede ancora non le puoi usare, devi aspettare che l'operatore te le attivi: normalmente ci vogliono meno di 24 ore.
Occhio: questo metodo non garantisce alcuna riservatezza perché per la legge italiana si devono dare un documento d'identità e il codice fiscale per avere una scheda SIM. Di buono c'è che Lyca ti può dare fino a 5 schede SIM con un documento. Dopo qualche tempo ne prendi altre 5 in un altro negozio e chiedi che ti disattivi prima le vecchie cinque; puoi anche riconsegnargliele a quel punto.
Occhei, ora hai una SIM che utilizzerai con un solo account robotico. Ti serve anche aprire una nuova casella email su Gmail, da utilizzare nella fase di registrazione dei nuovi account su Twitter (v. sotto). Di buono c'è che puoi utilizzarne una sola per tutti, con un trucchetto: se p.e. hai aperto una casella con indirizzo provolone@gmail.com puoi usarla per registrare il primo account, poi aggiungere dei punti per i successivi: p.rovolone@gmail.com per il secondo, pr.ovolone@gmail.com per il terzo... p.r.o.v.o.l.o.n.e@gmail.com per il duecentocinquantaseiesimo. Tutti gli indirizzi Gmail ottenuti aggiungendo dei punti confluiscono nella stessa casella.
Creare un nuovo account Twitter, registrare una app e connetterci Tuipi
Usa un browser in modalità "privato" o "incognito" o quel che è, senza altre schede aperte. Non loggarti a Facebook, Gmail o altro. Apri un nuovo account su Twitter. Fai le seguenti operazioni, ove possibile in un ordine casuale diverso da quello qui sotto:
- scegli uno screen_name (più corto possibile), un nome utente e una password robusta;
- non collegarlo a Gmail ne' a Facebook ne' altre schifezze, non dargli (ancora) numeri di telefono;
- seleziona un sottoinsieme degli account consigliati da seguire. Non seguirli tutti ma una manciata tra cui gli evergreen tipo il papa ci sta bene. Concludi la registrazione.
- fai un tweet;
- twitta taggando qualcuno;
- segui qualcuno;
- ritwitta uno status;
- scrivi una bio, scegli una locazione geografica (anche fittizia, tipo "Legoland" o "Eta Carinae"), scegli una data di compleanno;
- cambia le immagini del profilo e dell'intestazione: sceglile ganze.
Conferma cellulare con una SIM Lyca
Occhei, supponiamo di aver appena creato un utente chiamato Guglielmo Libri Carucci dalla Sommaja e screen_name @GCSbookz; dobbiamo dare il numero di telefono di Guglielmo a Twitter. Prendi una schedina Lyca e schiaffala nel cellulare, accendilo e aspetta qualche minuto. Se l'operatore ti ha attivato la scheda, ti arriveranno dei messaggini di benvenuto. Digita *132#
oppure 97#
e poi chiama, ti apparirà un messaggio col numero telefonico di quella scheda. Inseriscilo nella pagina dei telefoni di Twitter e aspetta l'SMS di conferma, che poi va fornito alla stessa pagina.
Registrare una app e ottenere le credenziali per la API
Ora dovrai registrare una app, un passaggio formale per permetterti di gestire il nuovo account tramite Tuipi.
Senza fare il logout da Twitter vai a questo indirizzo https://apps.twitter.com/
per registrare una nuova applicazione (non dovresti averne nessuna già attiva al momento). Scegli un nome (non "Tuipi"), una descrizione decente, un sito web (scegli un sito pertinente, p.e. questo, questo, questo, questo, questo, questo, questo, questo, questo o quest'altro) e accetta le condizioni.
Accertati che l'applicazione appena creata abbia i permessi in Lettura, scrittura e messaggi diretti, poi vai alla pagina "Chiavi e token d'accesso" e prenditi le Consumer Key (API Key + API Secret) e i Access Token (Access Token + Access Token Secret)[3]. Queste quattro stringhe vanno fornite a Tuipi nei dizionari che si trovano in config/costanti.py
.
Finito: tu e il tuo nuovo robot siete pronti all'azione.
Suggerimenti
Se vorrai salvare (com'è probabile, per semplificarsi la vita) le informazioni circa
- le schede SIM: i numeri telefonici associati, i PUK, le utenze Twitter associate...
- la casella Gmail: username, password, utenze Twitter associate...
- gli account Twitter: screen_name, ID, password, credenziali della app per accedere alla API...
è comodo usare una applicazione come Keepass per criptare ed organizzare queste informazioni.
Mi hanno bloccato/sospeso/terminato un account!
Questa sezione è ancora da scrivere.
Come usare Tuipi
Non abbiamo ancora scritto un manuale, però il codice è ben documentato: usa la funzione help()
su un oggetto per capire cosa è, come funziona, come usarlo, etc.
Se non si vogliono manipolare gli script a mano, Tuipi offre un'interfaccia interattiva semplificata con lo script simple.py
; per lanciarla apri un terminale, spostati (con il comando cd
) nella directory dove risiede il programma e lancia lo script in modo interattivo col comando python -i simple.py
:
gianna@epta ~/src/tuipi (git)-[master] % python -i simple.py Bevenut@, gianna! Per abortire un prompt (compresa la console) invia EOF (in genere, CTRL+D), mentre con CTRL+C puoi abortire un comando; fallo solo in caso di necessità. Sto leggendo ...50%...99%. : disponi di 842M di dati in 47 file (12 profili, 7 stati, 6 HTs, 21 grafi, 1 timeseries). ---------------------------------- -[[ TUIPI - menu prinpiciale ]]- API: gnna1475 DM_analisys Profili: @Iddio @laMadonna @eigenLab_Pisa Stati: Hashtags: #NonUnaDiMeno #NoBorders --------------------------------- A ) Connetti interfacce RL) Calcola munizioni rimaste (rate limits) S ) Carica la Sandbox (as sb) U ) Carica batteria di profili Ui) Inserisci a mano un utente (screen_name o user_id) Um) Mostra utenti Ud) Rimuovi duplicati utenti Uc) Ripulisci lista utenti T ) Carica un file di tweet H ) Carica un file di hashtags C ) Carica un file di commenti L ) Carica un file di links G ) Carica un grafo R ) Esplora relazioni Ts) Calcola timeseries Sm) Strategia monitor/select/spread FS) Griglia FSNR Co) Torna alla console Scelta:
Problemi
Per usare Tuipi hai bisogno di Python, versione 3 o superiore.
Codifica
Se ottieni un errore simile a tweepy.error.TweepError: Failed to send request: 'str' object has no attribute 'decode'
, o altri segnali che qualcosa di malvagio sta accadendo a causa della codifica del testo, una cosa che talvolta funziona (p.e. con la distribuzione Debian) è installare la libreria Tweepy attraverso pip, anziché tramite il pacchetto sui repository.
Appunti sparsi
Tuipi consta di un tot di scriptini in Python che usano la libreria tweepy, che a sua volta si interfaccia con la API di Twitter. Settando adeguatamente i permessi, funziona sia in lettura (per analisi, statistiche, preparazione delle strategie, etc.) che in scrittura (twittando, ritwittando, mettendo il cuoricino, DM, follow/unfollow, media upload, cambio impostazioni, etc.); si può usare sia l'interfaccia REST che quella di streaming, quest'ultima molto utile nelle applicazioni in tempo reale.
Altre risorse
- Tuipi automatizza il possibile, ma non tutto; ha bisogno comunque di una supervisione umana (tranne che per le funzioni di calendarizzazione) e la qualità dei risultati finali dipende molto dalla cura con cui si preparano i dati di partenza. È utile farsi un'idea della dinamica che si sta affrontando anche con altri strumenti come Gephi o la ricerca avanzata di Twitter.
- Un elenco di librerie supportate da Twitter
- Curl esteso con OAuth: qui
- media upload e upload multipli
- reference per l'acquisizione geolocalizzata dei trending topics
Wishlist
Ci sono delle funzioni che desideri? Scrivilo quih!