Archivi categoria: frabmsgget

E’ già il 2016!

E’ da un po’ (2 anni?) che non scrivo. E’ un po’ brutto in effetti. Mi faccio perdonare con un resoconto sulla situazione:

frabMsgGet è andato nel dimenticatoio. Le API di Facebook cambiano, cambiano le regole, i limiti di utilizzo.. Basta! E’ brutto fare così tanto lavoro per 1) niente ricompensa 2) rifare nuovamente il lavoro appena cambia qualcosa

Lo sviluppo software è andato un po’ in calando. Martina, Amici, moto, e (news!) ferrate hanno avuto la meglio.

In realtà non sono a zero per quanto riguarda la programmazione, ma mi sono concentrato su Arduino & compagnia per alcune innovazioni in casa (IoT).

Il Frab Server non fa piu’ da WebServer per questo sito, ma ha sempre piu’ responsabilità: router con pfSense, Server FTP, File Server, “server” per l’IoT… La cosa buffa è che proprio recentemente ho spostato la “logica” di alcuni automatismi di casa su una VM, e dopo 2 giorni si è rotta la scheda madre (una Intel tra l’altro).

Risultato: non si accendeva piu’ la tv (maledetti automatismi IoT su cui basi la tua vita!), niente internet, niente archivio file, niente stampante condivisa, è stata una bella botta.

Però l’ho affrontato di petto: Nuova MB, aggiunta di un SSD, e stavolta si riparte da zero con XenServer, un bare-metal hypervisor che ancora non conosco. Sarà un’ottima occasione per approfondire.

 

frabMsgGet: aggiornamenti

Circa un anno fa scrivevo di quant’erano eleganti e pratiche le api di Facebook, le FQL.

Recentemente, senza nessun avviso (almeno, io non ne ho visti, se qualcuno ha notato un comunicato ufficiale me lo faccia sapere), hanno cambiato RADICALMENTE la struttura della tabella “message”

https://developers.facebook.com/docs/reference/fql/message/

In particolare message_id:

message_id token with structure: {FBID}_{NonFBID} A unique ID for the message being queried.

message_id è sempre stato (da anni) composto da {THREAD_ID}_{ID_PROGRESSIVO}, dove ID progressivo partiva da 0 e aumentava per ogni messaggio.

PRIMA: dovendo scaricare tutti i messaggi, mi leggevo quell’id progressivo, se poi mancava qualche messaggio (SI, ESATTO, se dico dammi i messaggi DOPO una certa data, limitandomeli a 20, lui me ne da 18 o 19, E NON RIESCO A CAPIRE PERCHE’) me ne accorgevo (es: mi restituisce  i messaggi 3 4 5 7, mi accorgo che manca il 6, e dico: dimmi soltanto il 6) e quindi riuscivo a reperire TUTTA la trafila dei messaggi.

ADESSO: quell’id non è più progressivo (e l’hanno cambiato senza avvisare).

Risultato: il mio frabMsgGet riceveva i messaggi 34534, 59595, 49558, e iniziava a chiedere a Facebook: dammi i messaggi 34534, 34535, 34536, 34537, etc, impallandosi ovviamente perchè c’erano centinaia o migliaia di numeri mancanti (da qui: Server too busy PERENNE)

Ho cercato tutti i modi possibili immaginabili per garantire continuità di messaggi e NON NE HO TROVATI.

Le opzioni sono:

  1. Insistere con FQL
  2. Insistere con Graph API
  3. Arrendermi
  4. Fregarmene

1. Insistere con FQL

1422969850380_1398511569204
1422969850380_1398511574472
1422969850380_1398511624250
1422969850380_1398511649969

Questi sono 4 messaggi continui, senza nessuna mancanza. Ricevendo altri 4 messaggi con UN BUCO IN MEZZO, avranno numeri simili (casuali). Logicamente (per me) NON E’ POSSIBILE trovare se ci sono mancanti o meno. Se a qualcuno viene un’idea, me lo comunichi, grazie.

2. Insistere con Graph API

Le Graph API sono le API consigliate da Facebook, molto più veloci, offrono già una paginazione tra le varie richieste, hanno meno limiti di richieste/tempo. Ho provato e funzionano benissimo e NON CI SONO MESSAGGI MANCANTI! MA
MA.
Ma in una conversazione di test da circa 5000 messaggi, si fermano a 1800 messaggi (circa un anno). Si fermano. Cliccando nel link della pagina successiva, la conversazione si ferma e restituisce un’array “data” VUOTA. VERGOGNOSO!

3. Arrendermi

Seriamente, questa cosa sta diventando ridicola, Facebook se ne frega e cambia le cose a caso, le Graph API si FERMANO, le FQL API restituiscono qualche messaggio si, qualche messaggio no, e non offrono controllo degli errori.. è abbastanza deprimente. Per non parlare della documentazione sul sito Developers, SCARSISSIMA.

4. Fregarmene

Sarà molto difficile perchè individuavo la fine del download quando i messaggi scaricati erano uguali al numero di messaggi su facebook (quindi… la fine come la trovo? quando mi restituisce array vuota per “un po'” di volte??? Che schifo!

Ma penso sia l’unica strada.

Conclusione:

Mi manca tempo e motivazione, continuerò a fare tentativi nel tempo libero ma penso che frabMsgGet si arrivato alla fine (finchè Facebook non renderà più LOGICHE le sue API).

Se qualcuno è interessato a frabMsgGet, accetto suggerimenti di qualsiasi tipo.

Rilasciare software gratuitamente

Durante il rilascio della nuova versione di frabMsgGet, mi sono loggato su Facebook Developers e ho buttato un occhio alle statistiche.insights

148 Utenti nell’ultimo “quasi mese” (12/12/2013 – 10/01/2014) +120 rispetto al mese precedente.

Caspita. Non mi aspettavo un successo simile.

Navigando nel passato ho avuto anche picchi di 200 utenti mensili. Non so quanto siano affidabili le statistiche di Facebook, ma dopotutto è Facebook stessa a gestire il login, quindi non vedo molte opzioni per confondersi.

Bello, ho costruito qualcosa e piace alla comunità. Stupendo! – NO.

Il database MySQL sta spuntando sangue, la mia Adsl ha il ping ballerino (specialmente quando l’utente scarica il file da qualche MB). Apache genera log da 2 mb al giorno.

Dopotutto sto usando una Alice 7 MB e un processore Atom 1.6 Ghz.

Prima di proseguire: se a qualcuno è venuta in mente la domanda “Chi ti ha obbligato a farti un server? Perchè non ti sei comprato un hosting?“, rispondo subito:

PER FARE ESPERIENZA.  Costruire e mantenere un server mi aiuta a conoscere problemi che un “programmatore-e-basta” non vedrebbe mai nella sua vita. Utilizzare risorse ridotte mi aiuta a sviluppare MEGLIO e non FREGANDOMENE di quanta CPU utilizzerà il mio host. Non voglio essere un programmatore con i paraocchi.

La situazione però sta diventando critica. La linea Adsl si sta intasando, e figuriamoci quando inizierà a spargersi la voce.

Temo per il futuro di frabMsgGet, e non vorrei essere costretto a chiuderlo.

L’unica opzione che ho è spostare il programma (o l’intero sito) su un hosting dedicato, e per far questo servono SOLDI. Circa 50 € / anno per Hosting Linux (Apache + PHP + MySQL) su Aruba.it

  • Potrei togliere alcune funzionalità e fare una versione “Pro”, con donazione obbligatoria di almeno 5 euro (lato negativo: tutti potrebbero semplicemente fregarsene)
  • Potrei renderlo completamente a pagamento (lato negativo: nessuno lo userebbe piu’)
  • Potrei semplicemente tirarlo giù e fine dei giochi (lato negativo: nessuno lo userebbe piu’)
  • Potrei semplicemente chiedere “Per favore donate”.

donate

Attualmente, dato che non voglio un lato negativo, ho scelto l’ultima opzione, chiedere soldi PER FAVORE.

Ed è qui che mi incazzo.

Perchè m’incazzo? A metà 2013 ricevetti una donazione da un’azienda di consulenza informatica dell’Illinois, senza che io chiedessi assolutamente NIENTE (questo per un altro software, Unravel).

Hanno tratto beneficio dal mio lavoro, mi hanno detto grazie. Senza che chiedessi niente.

Torniamo a frabMsgGet, dove praticamente tutti gli utenti sono italiani – o almeno, i loro indirizzi ip sembrano italiani ;) – sto chiedendo PER FAVORE DONATE; e non ho ricevuto niente.

SIAMO PROPRIO ITALIANI.

Lo dirò chiaro e tondo: il feedback che sto ricevendo non è dei migliori. Specialmente quando la linea Adsl va a singhiozzo per una cosa che ho deciso di rilasciare gratuitamente.

Spero in un miglioramento futuro.

Intanto, per quei pochi temerari che hanno letto tutto questo articolo: avete consigli?

frabMsgGet v2 – the awesomeness still going on (well, maybe)

Come qualcuno di voi già sa, nel corso del Febbraio 2013 iniziai lo sviluppo di frabMsgGet (fantasia portami via, sono sempre stato un genio per i nomi).

E’ un programma che permette di scaricare un’intera conversazione da Facebook, per chi vuole conservarla come ricordo. Che io sappia non esistono altri modi funzionanti, l’export di facebook restituisce i messaggi in modo disorinato e non comprensibile (almeno, così faceva nel febbraio del 2013), e feci già diversi tentativi al tempo ma senza nessun successo.

L’idea era nata per fare un regalo a Oya, una ragazza che si salvava le nostre conversazioni facendo copia e incolla ogni volta su Blocco note. Le mancavano pero’ gli inizi della conversazione, che erano praticamente irraggiugibili (dopo un po’ di scroll, il browser inizia ad utilizzare sempre piu’ ram finchè non si blocca).

Recentemente (Gennaio 2014) ho pubblicato la versione 2 con diverse migliorie:

  • Interfaccia grafica notevolmente migliorata e integrata nella pagina di WordPress
  • Ricerca nelle ultime 100 conversazioni piu’ recenti (invece delle ultime 10)
  • Compressione del txt (test con una conversazione di circa 140.000 messaggi: il txt tiene 8 mb, compresso 2,1 mb)
  • Motore riscritto completamente da zero: risolti problemi con le lettere accentate e con le Emoji, risolti problemi di alcuni messaggi mancanti.

Enjoy it.