Closed nelsonmau closed 11 years ago
@paolomainardi non ho capito che intendi: dal DB non si puo' randomizzare. O la togliamo o la si mette nel model a valle della query (e quindi quando hai già l'array). Stai dicendo di toglierla proprio?
@gaspa esatto, l'idea è il db è già pronto per fare sorting sui vari campi, basta teoricamente passargli dei parametri (ora sono hardcoded come vedi, ma l'implementazione sul modello c'è).
Dunque, non passo nessun parametro, scelgo rando "nome, cognome, partito, circoscrizione" e "asc, desc" dunque ho un effetto "random" ma rimanendo sempre sul modello.
Che ne pensi ? Esatto il random da array lo toglierei proprio, è giusta come idea, ma è un implementazione aggiuntiva che va a mettersi in mezzo tra il DB e il Controller che è un po' un anomalia a livello di architettura.
ok, allora mi rimangio l'affermazione sul model: faccio tutto nel controller, tanto il model ha già il parametro che organizza i dati come vuole l'utente. Sego la roba in lib/ e aggiungo la parte tweet/follower.
@gaspa Ok, il template è già predisposto per la stampa di queste variabili, se vedi nei blocchetti utenti ci sono delle parti commentate, usiamo quelle.
@gaspa Si, il controller va modiicato solo per leggere i parametri dalla query infatti, però farei un po' di validazione per non passare al sorting cose non supportate, limiteri il dominio ad alcuni campi da sortare, vedi tu quali possono essere validi.
non mi è chiaro come pensate di fare per combinare randomizzazione e paginazione.
In sintesi: se vuoi solo la paginazione non ci sono problemi. Se vuoi solo la randomizzazione puoi realizzarla in vari modi. Se le vuoi tutte e due è inevitabile creare un array/utente Con un approccio del tipo che illustravo (poco elegante, è chiaro) questo array viene generato una sola volta (1 query su tutto il db), randomizzato, salvato e poi utilizzato per effettuare 1 query per pagina, come se avessi a disposizione un indice. Non mi viene in mente nessun'altra soluzione.
La randomizzazione non può esserci, ma deve esserci un Sorting su DB, li si potrebbe implementare la scelta random su cosa fare sorting se nulla è passato.
Fatto questo, la paginazione va implementata senza avere la conoscenza di quale sorting sia attivo o no.
eh no, almeno dovrai memorizzare a livello di sessione su quale variabile o gruppo di variabili hai fatto il sorting, mica puoi farlo casuale a tutte le pagine.
due cose: 1) meglio è parlarne nella issue relativa? 2) ho fatto due conti, nella mia installazione (non ho aggiornato il dataset):
ora, non si puo' spedire il singolo json della richiesta e poi fare in maniera "deferred" solo gli avatar? mi sembra che eviti troppa complicazione.
@stefanoduri Questo è vero, nel caso di una scelta random avrebbe sicuramente senso tenere in sessione.
Anche se personalmente la visualizzazione "casuale" su ogni pagina non è che mi piaccia molto, avrebbe più senso appunto esporre dei link per fare il sorting su determinati valori "Nomi, Tweet, Ciroscorizione" ecc. Cosa che è già supportata, basta completare l'implementazione come dicevo sopra.
@gaspa Non ho ben capito, gli import di utenti ed avatar sono di fatto separati ora, a cosa ti riferisci ?
@paolomainardi mi sto riferendo alla paginazione, non all'import. Cercavo di fare due conti su quanto possa essere pesante caricare l'intera pagina di twitantonio e quale sia il collo di bottiglia: evidentemente gli avatar.
@gaspa Gli avatar non dovrebbero essere un problema perchè sono caricati in lazy loading mentre si scrolla, mentre la HP è di oltre 3,1MB, cosa inaccettabile da Mobile. Vedi qui: https://github.com/spaghetti-open-data/twitAntonio/blob/master/public/javascripts/application.js#L24 Comunque vero parliamo qui: #57
ah, fantastico, il lazy me l'ero perso. piuttosto: c'è un 500K solo di un'immagine... pero' non capisco, è un'avatar? Mi sembra una dimensione assurda, per 48x48 pixel:
logo_ridotto1_normal.jpg
Dimensions 48 × 48
File size 546.97KB
MIME typeimage/jpeg
URLhttp://a0.twimg.com/profile_images/2206831747/logo_ridotto1_normal.jpg
Done.
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)