spaghetti-open-data / twitAntonio

TweetYourMep fork for the Italian 2013 Elections
http://www.twitantonio.it
GNU Affero General Public License v3.0
16 stars 10 forks source link

HP - ordinamento box candidati #60

Closed nelsonmau closed 11 years ago

nelsonmau commented 11 years ago

ciao, uno dei temi urgenti è l'ordinamento in HP dei box candidati. In questo momento sono in ordine alfabetico ( @paolomainardi correggimi se sbaglio).

Proposta in due step: 1) ordinamento random: subito implementabile? dà l'idea del movimento 2) ordinamento in base a logiche che interagiscono con le api di twitter (es.: in base al numero di followers, e/o al numero di reply o messaggi ricevuti, altro...)

@andypanix riesci a impostare al volo tu intanto l'ordinamento random? ne vale la pena? (prometto che non me lo rimangio :P)

nelsonmau commented 11 years ago

volendo c'è anche @gaspa ditemi voi!

gaspa commented 11 years ago

Si', posso pensare io al random, intanto, ok?

andypanix commented 11 years ago

@nelsonmau @gaspa io temo per oggi di non riuscire a fare più nulla

nelsonmau commented 11 years ago

ok allora lo assegno a @gaspa dai :) grazie @andypanix a dopo :)))

nelsonmau commented 11 years ago

ok allora @gaspa lo fa intanto random, poi vediamo come farlo evolvere :)

gaspa commented 11 years ago

allora, ho fatto un'abbozzo, mi stavo chiedendo se secondo voi deve essere random anche quando si fa una ricerca. ( @nelsonmau )

nelsonmau commented 11 years ago

@gaspa no per la ricerca no secondo me. Se cerco una cosa mi aspetta un risultato preciso e intellegibile. La randomizzazione invece creerebbe confusione.

gaspa commented 11 years ago

si', anche secondo me. volevo una conferma :)

gaspa commented 11 years ago

@nelsonmau: Ok, fatto. @paolomainardi: ho messo questa roba dentro lib/mepRenderer, pensando che se implementiamo altre modlità di "sort", potrebbero voler modificare anche il comportamento del rendering di un singolo candidato. Boh, se è nel posto sbagliato bacchettami pure :P

gaspa commented 11 years ago

@nelsonmau per il punto (2), invece? Partirei dal presupposto che dovrebbe scegliere l'utente il tipo di ordinamento. Un'idea semplice potrebbe essere mettere una voce 'ordina per' nel form di ricerca.

Idee piu' fighe (e al tempo stesso sensate) al momento non mi vengono. :P ( forse farlo dinamicamente nella pagina con questo: https://github.com/padolsey/jQuery-Plugins/tree/master/sortElements/ ma poi cozza contro il problema dello scrolling)

paolomainardi commented 11 years ago

@gaspa Facciamo sempre pull request per queste modifiche, troppo rischioso avere tutto nel master.

Riesci a fare un revert di queste modifica e farne una pull request ? Scusa ma siamo attivi su più fronti e non vorrei far casino.

paolomainardi commented 11 years ago

@gaspa Perchè non proviamo a riusare questo oggetto ? https://github.com/spaghetti-open-data/twitAntonio/blob/master/controllers/mainController.js#L19

paolomainardi commented 11 years ago

Wait c'è un errore concettuale, IMHO il sorting dovremmo farlo fare a Mongo e non sull'array dei risultati, anche se entrambe le soluzioni sono valide, però usando MongoDB (e l'oggetto sopra) possiamo passare poi un elemento di sorting per vari attributi.

Facciamo un revert ed una pull request e poi vediamo di estendere questo concetto.

gaspa commented 11 years ago

Si', faccio subito. Sorry, troppa foga.

Per mongo: boh, mi pare di capire che non c'è un modo decente di fare prendere una lista random direttamente da lui. http://stackoverflow.com/questions/8500266/ordering-a-result-set-randomly-in-mongo

paolomainardi commented 11 years ago

@gaspa Grazie mille! Hai ragione, this is very bad, stavo vedendo proprio ora, davo per scontato fosse cosi. Magari possiamo ordinare a caso (se non c'è un parametro in GET) sui nostri field idem per ASC,DESC.

Che ne pensi ?

gaspa commented 11 years ago

Si', mi sembra la cosa piu' facile.

nelsonmau commented 11 years ago

uè ma bootstrap ce l'ha un backend tipo la dashboard di wordpress? si potrebbe fare la sezione blog...

paolomainardi commented 11 years ago

@nelsonmau no :) Bootstrap è solamente un framework CSS, il codice invece è nodejs. Per il blog, sarebbe da buttare dentro un Drupal.

andypanix commented 11 years ago

@paolomainardi ma anche dentro un Wordpress ;)

paolomainardi commented 11 years ago

@andypanix non essere eretico, altrimenti ti installo joomla.

nelsonmau commented 11 years ago
@paolomainardi  ok allora rimandiamo a
tempi migliori ^_^
il nuovo ordinamento random + il twitter wall sono pullabili?Il 30/01/2013 13:19, Andrea Panisson ha
  scritto:

  @paolomainardi
    ma anche dentro un Wordpress ;)

    —
    Reply to this email directly or view
      it on GitHub. 

-- 

Andrea Nelson Mauro - Datajournalist

http://www.dataninja.it http://twitter.com/nelsonmau

andypanix commented 11 years ago

@paolomainardi daje! siamo sempre a smanettare su Drupal! era tanto per cambiare un po'... :D

gaspa commented 11 years ago

scusate, mi fate tanto i nodejs-isti, poi mi installate php? eddai, non c'è un blog-engine in node? (se non c'è facciamolo!)

paolomainardi commented 11 years ago

@gaspa ed hai anche ragione :) Questo non sembra male: https://github.com/dan-silver/Node.js-Blog-Engine (ma ora lo metterei tra le priorità più basse in assoluto).

nelsonmau commented 11 years ago

@gaspa e @paolomainardi com'è finita?

twinbit commented 11 years ago

Io sono offline fino a domani sera, per il sorting c'è il codice di @gaspa da mergiare e farne refactoring per portarlo a livello DB e più generico.

Paolo Mainardi CTO Twinbit http://www.paolomainardi.com {mobile email}

On 30/gen/2013, at 22:34, nelsonmau notifications@github.com wrote:

@gaspa e @paolomainardi com'è finita?

— Reply to this email directly or view it on GitHub.

gaspa commented 11 years ago

ditemi voi. Posso provare a pensare di finire questa parte, domani un po' di tempo lo trovo. :)

2013/1/30 Twinbit - Italian Drupal Company notifications@github.com

Io sono offline fino a domani sera, per il sorting c'è il codice di @gaspa da mergiare e farne refactoring per portarlo a livello DB e più generico.

Paolo Mainardi CTO Twinbit http://www.paolomainardi.com {mobile email}

On 30/gen/2013, at 22:34, nelsonmau notifications@github.com wrote:

@gaspa e @paolomainardi com'è finita?

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/spaghetti-open-data/twitAntonio/issues/60#issuecomment-12914587.

nelsonmau commented 11 years ago

Vai @gaspa così quando paolo torna lo pubblica

marcopagliarulo commented 11 years ago

per prendere un pò di dimestichezza con nodejs e mongo ho fatto uno script di importazione da twitter del numero di follower, della data dell'ultimo tweet ed il testo dello stesso. Questi aggiunti al modello del mep consentirebbero di ordinare facilmente per numero di follower o data dell'ultimo tweet. Se interessa domani lo finalizzo o mi coordino con @gaspa per finire questa parte.

nelsonmau commented 11 years ago

@Morpheus80ta ordinare un db di account tw in base al numero di followers secondo me è fondamentale. @gaspa facciamo una sorpresina a @paolomainardi che rientra stasera? :)

gaspa commented 11 years ago

ahaha,si' proviamoci :)

gaspa commented 11 years ago

@nelsonmau : che tipi di ordinamenti vorresti?

Quelli piu' semplici sono ovviamente i campi di ricerca: Nome, Partito, Circoscrizione... riesci a fare una lista di quelli che ritieni utili?

nelsonmau commented 11 years ago

@gaspa @Morpheus80ta in ordine di importanza direi così.

Numero di followers Numero di tweet/menzioni ricevute Numero di tweet fatti dal candidato Random Partito, Circoscrizione, Topic (un campo assente che però prevediamo in prospettiva ;)

Però ragazzi la prima cosa da fare è mettere intanto il random: è brutto il fatto che chi arriva qui veda sempre la stessa cosa.

cmq se siete d'accordo, nel weekend facciamo una full immersion generale e sistemiamo tutto. D'altronde ormai siamo famosi ;) Che ne dite? @seralf @paolomainardi @lucacorsato @albertocottica @dottorblaster Altri?

gaspa commented 11 years ago

@nelsonmau per il rando guarda che basta che qualcuno faccia merge del mio branch. Al resto ci sto già dando un'occhiata.

marcopagliarulo commented 11 years ago

@nelsonmau ok aggiungo il numero dei tweet, il numero di tweet/menzioni ricevute non è disponibile nelle info dell'account, dovrei fare un'altra chiamata per scoprire questo dato e non penso valga la pena.

Per quanto riguarda l'ordinamento random lo sconsiglierei, qualunque sia la soluzione tecnica adottata creerebbe problemi una volta implementata la paginazione.

Se vogliamo dinamicizzare la home potremmo ordinare random tra numero di followers/numero di tweet in attesa che completi l'harvesting dei tweet di tutti i candidati così da poter ordinare per ultimo tweet inviato

marcopagliarulo commented 11 years ago

ho fatto il pull dello script di importazione dei dati extra, se approvato sarà possibile ordinare a livello di query su db la lista dei candidati sulla base di:

Numero di followers Numero di tweet fatti dal candidato Data dell'ultimo tweet

twinbit commented 11 years ago

Al volo che sono in viaggio.

Marco bisognerebbe anche utilizzare i dati che stiamo scaricando con

twitantonio e ricollegare quelle info ai nostri users

Dico questo mentre sono in viaggio e non ho ancora visto il codice, quindi scusatemi se questo stato già fatto/discusso. Il giorno 31/gen/2013 13:06, "Marco Pagliarulo" notifications@github.com ha scritto:

@nelsonmau https://github.com/nelsonmau ok aggiungo il numero dei tweet, il numero di tweet/menzioni ricevute non è disponibile nelle info dell'account, dovrei fare un'altra chiamata per scoprire questo dato e non penso valga la pena.

Per quanto riguarda l'ordinamento random lo sconsiglierei, qualunque sia la soluzione tecnica adottata creerebbe problemi una volta implementata la paginazione.

Se vogliamo dinamicizzare la home potremmo ordinare random tra numero di followers/numero di tweet in attesa che completi l'harvesting dei tweet di tutti i candidati così da poter ordinare per ultimo tweet inviato

— Reply to this email directly or view it on GitHubhttps://github.com/spaghetti-open-data/twitAntonio/issues/60#issuecomment-12939557.

marcopagliarulo commented 11 years ago

Ci sto lavorando su quello ho qualche difficoltà e per familiarizzare con nodejs e mongodb ho fatto al volo questa cosa ieri sera.

Torno a lavorarci questa sera

stefanoduri commented 11 years ago

@nelsonmau impegni famigliari permettendo io parteciperei volentieri. Pensate di discutere anche delle questioni relative al tracciamento dei tweet e agli indicatori relativi all'utilizzo e alle conversazioni? (ne avevo accennato in una mail) per quanto riguarda il random: non ho seguito tutta la discussione e quindi non ho capito bene. Si tratta di accedere casualmente a un array di risultati (in javascript)?

stefanoduri commented 11 years ago

(scusate, per errore ho spinto "Close")

nelsonmau commented 11 years ago

Stefano, boh? Direi che facciamo il punto dei sospesi e ognuno fa quello che può vuole. @paolomainardi dovrebbe cercare di fare il punto, a meno che tu non abbia già il quadro

(scusate, per errore ho spinto "Close")

— Reply to this email directly or view it on GitHubhttps://github.com/spaghetti-open-data/twitAntonio/issues/60#issuecomment-12949807.

paolomainardi commented 11 years ago

Attendete domani per il punto, c'è già codice ed un analisi su queste cose. Scusate la sintesi, sono da mobile Il giorno 31/gen/2013 17:17, "nelsonmau" notifications@github.com ha scritto:

Stefano, boh? Direi che facciamo il punto dei sospesi e ognuno fa quello che può vuole. @paolomainardi dovrebbe cercare di fare il punto, a meno che tu non abbia già il quadro

  • sorry for typos, i'm from mobile - Il giorno 31/gen/2013 17:10, "Stefano Durì" notifications@github.com ha scritto:

(scusate, per errore ho spinto "Close")

— Reply to this email directly or view it on GitHub< https://github.com/spaghetti-open-data/twitAntonio/issues/60#issuecomment-12949807>.

— Reply to this email directly or view it on GitHubhttps://github.com/spaghetti-open-data/twitAntonio/issues/60#issuecomment-12950236.

gaspa commented 11 years ago

Stefano: il codice per fare random c'è già! ( e non vedo problemi con la paginazione, francamente )

On Thu, Jan 31, 2013 at 5:56 PM, Stefano Durì notifications@github.comwrote:

figuriamoci se ho il quadro. Attendo fiducioso il domani. Comunque, se il problema del random era quello che intendevo io, forse una roba tipo questo esempio può aiutare

var a = ['primo', 'secondo', 'terzo', 'quarto']; while (a.length) { alert( a.splice( Math.floor(Math.random() * a.length), 1 ) ); }

— Reply to this email directly or view it on GitHubhttps://github.com/spaghetti-open-data/twitAntonio/issues/60#issuecomment-12952369.

nelsonmau commented 11 years ago

Si in attesa di capire il passaggio successivo, il random per me è indispensabile, almeno fa movimento

Stefano: il codice per fare random c'è già! ( e non vedo problemi con la paginazione, francamente )

On Thu, Jan 31, 2013 at 5:56 PM, Stefano Durì notifications@github.comwrote:

figuriamoci se ho il quadro. Attendo fiducioso il domani. Comunque, se il problema del random era quello che intendevo io, forse una roba tipo questo esempio può aiutare

var a = ['primo', 'secondo', 'terzo', 'quarto']; while (a.length) { alert( a.splice( Math.floor(Math.random() * a.length), 1 ) ); }

— Reply to this email directly or view it on GitHub< https://github.com/spaghetti-open-data/twitAntonio/issues/60#issuecomment-12952369>.

  • Andrea Gasparini -

— Reply to this email directly or view it on GitHubhttps://github.com/spaghetti-open-data/twitAntonio/issues/60#issuecomment-12959052.

marcopagliarulo commented 11 years ago

@gaspa Il problema del random con la paginazione è che riordinando il risultato al momento del rendering è che il set dei dati sarebbe immutato e quindi se mostrassimo ad esempio 30 candidati per pagina l'ordinamento sarebbe a blocchi di trenta. Quindi risulterebbero comunque sempre i primi 30 in prima pagina. Se la selezione randomica fosse a livello di db sarebbe totalmente incompatibile con la paginazione.

gaspa commented 11 years ago

si', hai ragione, anche se probabilmente il singolo dato json non è quello che appesantisce, forse si potrebbe generare tranquillamente tutta la lista, ma generare l'html e (cosa forse piu' onerosa) prendere le immagini e le altre info quando si scrolla la pagina. Bisognerebbe farci dei conti.

stefanoduri commented 11 years ago

@gaspa scusa, ma se il codice c'è già, allora di che state parlando? io il problema l'ho capito così, se sono completamente fuori strada ditemelo e la pianto qui.:

bisogna mostrare a un utente una serie di pagine in cui i candidati vengano esposti in modo casuale, ma (per il singolo utente) coerenti, almeno nella stessa sessione. Sfogliando le pagine, insomma, li devo poter vedere tutti e una volta sola, andando avanti e indietro come mi pare senza che le pagine cambino di contenuto Io farei così:

in alternativa, si limita a restituire al javascript solo lo slice dell'array contenente le chiavi rilevanti per la pagina richiesta e poi la query la gestisce il js

non conosco node.js e non ho idea se gestisca le sessioni. Nel caso, il tutto si direbbe anche più semplice

gaspa commented 11 years ago

@stefanoduri si', puo' essere una delle soluzioni (io la farei persino piu' semplice ancora). Dicevo che il codice che fa la randomizzazione c'è già (è nel branch linkato in #60 ), invece la parte di paginazione va pensata in effetti. (non me ne sto occupando io, non so a che punto siamo). Manca la parte di ordinamento secondo altri parametri (e questo è quel che sto facendo ora)

paolomainardi commented 11 years ago

@gaspa E' già pronto, basta impostare i parametri da qui: https://github.com/spaghetti-open-data/twitAntonio/blob/master/controllers/mainController.js#L22

Per la randomizzazione ripeto che secondo me non è una buona soluzione farla sull'array, quando c'è un DB sotto.

paolomainardi commented 11 years ago

@stefanoduri Una cosa importantissima è proprio il pager/infinit-scroll: https://github.com/spaghetti-open-data/twitAntonio/issues/57

Vuoi darci una mano su questa parte ?