Gasce v0.10.1

news release

Piccolo aggiornamento al portale, principalmente l’update di qualche libreria e della jvm e un paio di piccole modifiche grafiche.

Ecco quindi il change-log

Lista dei cambiamenti:
  • [Minor] Aggiornamento librerie e jvm.

  • [Minor] Piccole modifiche grafiche.

  • [Fix] Fix minori.

Saluti

K.

Gasce v0.10.0

news release

Sono stato abbastanza silente gli ultimi tempi, ma non ho smesso di lavorare al progetto nonostante abbia meno tempo per farlo. Quando ho avviato questa iterazione dello sviluppo ho scelto come piattaforma TomEE e la versione principale al momento (la 7 era ancora in beta). Quando il portale è andato on-line la nuova versione di TomEE era stabile da un po' ma ho preferito concentrarmi sullo sviluppo delle funzionalità e alla loro stabilizzazione prima di pensare ad aggiornare la piattaforma. Oramai, consolidate le principali funzionalità, era giuta l’ora di aggiornare il portale alla versione 7.

Ovviamente questo, sebbene non sia stato troppo complicato, non era un semplice cambio di pacchetto ma ha richiesto alcune revisioni del codice anche perchè, oltre a quanto richiesto dall’update di TomEE, ho anche deciso di aggiornare gli altri componenti compresa la parte di front-end.

Ecco quindi il change-log

Lista dei cambiamenti:
  • [Major] Portato il portale a TomEE 7

  • [Major] Portati gli script di provisioning ad Ansible 2.4

  • [Major] Aggiornamento delle librerie java di authentication, persistance e caching alle major successive

  • [Major] Aggiornamento delle librerie js di front-end alle major successive

  • [Major] Rimpiazzato ntpd con chrony

  • [Minor] I tag hanno una dimensione minore per mettere in maggiore evidenza il nome del server

  • [Minor] Rivisto leggermente lo stile delle pagine.

  • [Fix] Fix minori.

Saluti

K.

Gasce v0.9.0

news release

Eccoci qui con una nuova versione del portale, il cambiamento principale è che ora il record del server mostrato in lista è quello dell’anno corrente, il record assoluto è comunque disponibile nella pagina dettagli del server.

Oltre a questo sono stati apportati numerosi piccoli fix interni, alcuni derivanti dalla pulizia del codice che ho avviato (e che è solo all’inizio).

La lista dei cambiamenti:
  • [Major] Il record nella lista è quello dell’anno corrente, il record assoluto è ancora visibile nella pagina dettagli (suggerito da Fandonia)

  • [Minor] Cambio passo di alcuni grafici

  • [Fix] Il sort ora gestisce il caso in cui un dato non sia definito

  • [Fix] Fix minori assortiti.

Saluti

K.

Gasce v0.8.1

news release

Bene ecco qui una nuova minor release di Gasce che sistema qualche bug minore, e aggiunge un paio di stats globali nella home e nella pagina server.

Dopo questo rilascio voglio inserire il record annuale, come suggerito da Fandonia, e cominciare le pulizie generali.

La lista dei cambiamenti:
  • [Minor] Aggiunto il sommario delle statistiche globali (numero server, media collettiva, max collettivo e voti) e per tipo di gioco.

  • [Minor] Usa il font Dejavu per le immagini dei bottoni.

  • [Minor] Aggiornata libreria grafici.

  • [Minor] Ridotto il ciclo vita delle cache veloce e della cache del blog.

  • [Fix] Risolto il problema dei caratteri errati nei bottoni linkabili.

  • [Fix] Fix minori assortiti.

Saluti

K.

Dopo UOShards

news report

Ok è fatta UOShards è chiuso, il redirect è on e persino google se ne è accorto.

Ma prima di fare le pulizie e cancellare il codice relativo a UOShards voglio fare un breve report sullo stato del codice, ecco quindi il report di cloc.

---------------------------------------------------------------------------------
Language                       files          blank        comment           code
---------------------------------------------------------------------------------
Java                             147           1824           2642          10074
XML                               22            177            665           2918
JavaScript                         7            173            223           2514
Freemarker Template               47            210             26           1815
Maven                              7            153             69           1064
YAML                              41            107              7            662
SASS                               3            119              3            644
SQL                               38             31             17            451
HTML                               8             31             29            435
XSD                                2              0              0            181
Bourne Shell                       9             32              6            134
CSS                                1             80             27             88
INI                                1              3              0             16
---------------------------------------------------------------------------------
SUM:                             333           2940           3714          20996
---------------------------------------------------------------------------------

Il totale di numero di righe dal lancio della beta è passato a quasi 21000 che comprendono sia il portale che i tool di import da UOShards (codice che non verrà incluso nel prossimo report) quasi tutto il nuovo codice è inerente alle varie funzionalità introdotte dall’avvio della beta.

Dall’inizio dello sviluppo il ritmo di crescità del codice è stato (in media) di circa 1200 righe al mese che tenendo presente che ci lavoro quasi esclusivamente nei week-end vuol dire più di 150 righe al giorno che non è male come ritmo per una cosa a tempo perso, comunque, completate alcune piccole nuove features/fix, credo sia il momento di prendere una pausa dalle features e fare un po di pulizie generali.

Con pulizie non intendo la semplice rimozione del codice di migrazione da UOShards, ma anche e soprattutto una nuova ispezione (sia manuale che facendo uso di qualche tool di analisi statica open source) di tutto il codice volta a individuare punti poco puliti o eventuali vulnerabilità/bug.

Questo passo è fondamentale perchè dalla qualità del codice dipende la mantenibilità e sicurezza di questo portale, e quindi la sua sopravvivenza.

Alla prossima

Saluti

K.

Addio UOShards

news UOShards riflessioni

Oggi ho fatto la richiesta di trasferimento del dominio uoshards.it (non ricordavo che i tempi dei .it fossero cosi lenti) e quando ho confermato l’operazione mi è venuta un po' di maliconia.

Mentre scrivo questo articolo UOShards è ancora visibile ma il whois ritorna già questo:

Domain:             uoshards.it
Status:             pendingTransfer
Created:            2003-07-17 00:00:00
Last Update:        2017-06-03 09:10:18
Expire Date:        2017-07-17

e quando sarà nuovamente

Status:             ok

UOShards non ci sarà più.

Questo dei miei siti attivi ancora oggi (sebbene per poco) è quello più vecchio e, nonostante lo abbia trascurato per molto tempo, vi sono legato da tanti bei ricordi (compresa la tesina di sistemi operativi scritta attorno al suo motore di prelievo multiprocesso ;) in c++).

Non so se Gasce riuscirà a raggiungere l’obiettivo di estendere il modello oltre UO (non ho ancora trovato admin di server di altri giochi che vogliano collaborare alla sua estensione) ma ci sto provando (grazie soprattutto a Jack che cerca contatti utili). Quello che posso dire è che sto seguendo tutto con continuità e impegno pari a quelli dei primi anni di UOShards e credo di essere riuscito a fare qualche piccolo passo in avanti.

Tuttavia quanto c’è adesso non sarebbe stato possibile senza l’aiuto di chi ha creduto con me in questo progetto in particolare Onision e Jack che non ringrazierò mai abbastanza.

Saluti

K.

Gasce v0.8.0

news release

Ok dopo un periodo di sperimentazione su di un server di test va on-line la versione con la prima implementazione del sistema di popolarità.

Al momento la lista dei server resta ordinata di default per il valore dei giocatori correnti, ma in futuro penso di passare l’ordinamento di default sulla popolarità.

L’algoritmo attuale è il seguente.
  • 30% basato sulla media di giocatori degli ultimi 10 giorni.

  • 40% basato sul massimo di giocatori degli ultimi 10 giorni.

  • 30% basato sul numero di voti degli ultimi 10 giorni.

Il valore viene calcolato un margine di circa il 10% che è applicato nel seguente modo:

  • per ogni singola categoria c’è un bonus del 5%

  • sul valore finale c’è un ulteriore bonus dal 5%

  • Nessuno dei due margini fa sforare il massimo ne nella categoria ne nel risultato totale.

Il valore risultante dovrebbe variare una volta al giorno e vuole rappresentare la popolarità al giorno precedente.

L’algoritmo attuale è una proposta, sono aperto a suggerimenti, fatevi sentire nel forum.

La lista dei cambiamenti:
  • [Major] Introduzione del valore di popolarità.

  • [Major] Armonizzazione delle finestre statistiche a 10 giorni.

  • [Minor] Nelle statistiche server è stato sostituito grafico dei voti con un grafico della popolarità.

  • [Minor] Il valore della popolarità è stato inserito nei bottoni linkabili ed es stato variato il layout 120x60.

  • [Minor] Il periodo di aggiornamento voti è passato ad un ora.

  • [Minor] Rivisto sistema di scheduling.

  • [Minor] Migliore gestione interna dei server inattivi.

  • [Fix] Fix minori assortiti.

Saluti

K.

Riguardo il calcolo della popolarità

news riflessioni tests

Salve a tutti

Oggi avevo intenzione mettere on-line la nuova versione di gasce con l’anteprima della popolarità, però prima di farlo ho ritenuto opportuno testare la procedura di aggiornamento del db su un ambiente identico al server di esercizio.

Ho quindi approfittato dell’occasione per testare la procedura di disaster recovery (che è andata abbastanza bene a parte qualche problemino minore subito risolto e il tempo necessario a completarla). Una volta ottenuto il nuovo server ho eseguito l’aggiornamento strutturale e caricato su questo l’ultima versione.

La cosa che mi ha lasciato subito perplesso è stata l’apparente discrepanza tra i valori delle statistiche di un server e il valore di popolarità assegnatogli, quindi ho cercato di capire da dove venisse questa discrepanza, e con un po' di query mi sono reso conto che a causarla sono le differenti finestre di analisi di ciascun valore, ovverosia:

  • media e massimo sono calcolati su di una settimana

  • i voti sono calcolati su di un mese

  • la popolarità è calcolata su di 10 giorni e riguarda i valori del giorno precedente.

Ritengo quindi che per rendere i dati meglio comprensibili sia opportuno armonizzare le finestre ma non è facile decidere che ampiezza dare anche se per ora propendo per 10 giorni.

Sto anche pensando di cambiare la formula e dare un po' più peso al picco rispetto alla media, la formula diverrebbe quindi:

  • 20% basata sulla media di giocatori degli ultimi 10 giorni.

  • 40% basata sul massimo di giocatori degli ultimi 10 giorni.

  • 40% basata sul numero di voti degli ultimi 10 giorni.

Se avete qualche consiglio da darmi in proposito potete adoperare questo topic sul forum

Saluti K.

Memento sulla chiusura di UOShards

news UOShards

Salve

Ricordo nuovamente a tutti che i primi di Giugno (probabilmente il 2) il sito di UOShards verra chiuso definitivamente e diverrà un semplice redirect alla sezione UO di gasce.com.

Ho notato che ancora molti admin di server mantegono le informazioni su UOShards e non su gasce.com, quindi approfitto per ricordare che che l’ultimo import massivo è stato fatto poco prima di aprire la beta pubblica e le modifiche effettuate su UOShards e i dati da questo rilevati (voti e statistiche) successivamente non verranno reimportate nuovamente in modo massivo su gasce.com.

Sto tuttavia valutando di fare un piccolo importer per portare su richiesta le statistiche per server e non massivamente in modo da sincronizzare quelli rimasti indietro che ne facessero richiesta (importerà solo players e voti) tuttavia implementerò il tool solo se rileverò abbastanza interesse da parte degli admin dei server.

Eventuali adesioni all’importer devono avvenire entro la fine della prossima settimana (per darmi il tempo materiale per implementarlo) altrimenti i dati rimarranno quelli attualmente registrati su gasce.com.

Le adesioni possono avvenire a mezzo del form contattaci presente sul portale gasce.com.

Saluti

K.

Gasce v0.7.2

news release

Sto mettendo on-line un piccolo aggiornamento

Queste sono le principali novità:
  • [Minor] Piccole migliorie grafiche ai bottoni linkabili.

  • [Fix] Fix minori assortiti.

Saluti

K.

Gasce v0.7.1

news release

Oramai è un trend che ad ogni week-end rilascio un aggiornamento.

Questo è un aggiornamento minore che include qualche correzione dei testi dell’applicazione e un paio di tweaks del sistema di gestione della cache, niente per cui valga la pena fare un change log di dettaglio.

K.

Conto alla rovescia per UOShards

news UOShards

Salve

Ricordo a tutti che i primi di Giugno (probabilmente il 2) il sito di UOShards cesserà di funzionare e diverrà un redirect alla sezione UO di gasce.com.

Quindi chiedo la collaborazione di tutti per testare il nuovo portale in tempo per la data di chiusura di UOShards e di aggiornare eventuali link e bottoni sui vostri siti,forum e firme.

Saluti

K.

Gasce v0.7.0

news release

Voglio approfittare di questo nuovo ponte per mettere on-line un nuovo aggiornamento alla piattaforma del portale.

In questa versione ci sono numerose modifiche anche organizzative interne che richiedono un approfondito test online e mi aspetto di dover rilasciare più di qualche fix nei prossimi giorni.

Queste sono le principali novità:
  • [Major] Funzionalità server explorer che permette di esplorare le statistiche di un server in modo interattivo.

  • [Minor] Ora il server manager permette di settare un server come aperto o chiuso.

  • [Minor] Possibile ricercare e visionare tutti i server nel db che siano attivi o meno (archivio storico di UOShards compreso).

  • [Minor] Riorganizzazione di alcune aree e menù.

  • [Minor] Aggiunto il tag defer a tutti gli script javascript caricabili in parallelo (ad eccezione di jquery e monents).

  • [Minor] Numerose ottimizzazioni interne.

  • [Fix] I link generati nella pagina dei bottoni linkabili ora hanno target=_blank inserito correttamente.

  • [Fix] Ora salva correttamente il record anche per i server che non avevano mai avuto un record perchè nuovi.

  • [Fix] Ora inizializza correttamente tutte le strutture alla creazione di un nuovo server.

  • [Fix] La funzione di aggiornamento monitor ora registra i dati anche quando il server non ne ha uno precedente.

Saluti

K.

Gasce v0.6.1

news fix

Eccoci qua con una nuova minor release esclusivamente dedicata ad alcuni fix.

Questa è la lista fix:
  • [Fix] [segnalato da Phate] Il sistema non registrava i voti per server che non avevano mai ricevuto voti.

  • [Fix] Il generatore di grafici non gestiva correttamente la casistica in cui un server non aveva nessun voto nel periodo per uno o più tag.

Saluti

K.

Gasce v0.6.0 e futuro di UOShards

news release report

Dopo meno di una settimana dalla messa on-line della beta pubblica (la v0.5.1) ecco online (non senza qualche difficoltà) il primo nuovo rilascio.

Ho avuto modo di fare una prima revisione di parte del codice e cambiare qualche logica interna, cose che tuttavia non dovrebbero avere impatti visibili, però potrei aver introdotto qualche nuovo bug.

Queste sono le principali novità:
  • [New] [suggerita da Onision] Bottone vota lo shard nella lista server (visibile solo in modalità desktop/tablet).

  • [New] Pagina dei bottoni linkabili.

  • [New] [suggerita da Haytham] Cambiata la sequenza colori del grafico.

  • [New] Revisione del motore di prelievo per permettere una migliore diagnosi dei problemi

  • [Fix] Ora il motore di prelievo non mette fuori dal monitor i server se il task termina in modo inatteso

  • [Fix] Stile tag che andava in conflitto con code-prettify.

  • [Fix] Alcune stringhe portate in italiano.

  • [Fix] Problema del mixed http/https quando il server non ha un logo.

Futuro di UOShards

Ho fatto una riflessione su UOShards e sulla scadenza del suo dominio (luglio), ho deciso infatti che i primi di giugno quando rinnoverò il dominio UOShards.it lo trasformerò in un redirect a Gasce.com (prima di quanto avevo preventivamente ipotizzato).

Alla fine UOShards non è mantenuto, al contrario di gasce.com, credo sia opportuno accellerare i tempi, quindi chiedo la collaborazione di tutti per testare il nuovo portale in tempo per la data di chiusura di UOShards.

Saluti

K.

Cambiamento Termini di Servizio gasce.com e spiegazione

news tos

Mi sono reso conto di che era necessario inserire il seguente paragrafo nei Termini di Servizio

Attendibilità dei dati
Gasce.com preleva i dati delle statistiche degli utenti connessi ai server con i mezzi messi a disposizione dai gestori di quest’ultimi, ne gasce.com ne il suo staff possono verificare la veridicità dei dati da questi forniti. Il processso di prelievo avviene ogni 10 minuti, in modo concorrente ma non contemporaneo, e il completamento dello stesso non è garantito ma dipende da vari fattori tra cui (senza voler essere esaustivi): carico dei server (compreso quello di gasce.com) saturazione della banda, e problemi tecnici; come conseguenza i dati pubblicati potrebbero non riprodurre esattamente i dati di popolazione riportati dai server monitorati.

Vorrei tuttavia tentare di chiarire cosa questo paragrafo va ad indicare.

La prima frase riguarda la veridicità del dato fornito dai server monitorati.

Innanzitutto gasce.com (come UOShards prima di lui) preleva i dati dai server direttamente (come nel caso in cui il server offra api come ConnectUO) o indirettamente (passando per la status page). Il dato che è registrato nel database di gasce.com è quindi quello fornito dal server stesso nell’istante di prelievo, e non viene in alcun modo filtrato o scartato. Questo vuol dire che gasce.com non ha alcun modo per verificare se, per qualsivoglia motivo, un server comunichi dati errati.

La seconda frase riguarda come gasce tecnicamente effettua il prelievo.

L’attività di prelievo è fatta da un job che viene lanciato ogni 10 minuti, il job è multithread (da cui concorrente) ma è impossibile che il prelievo dei dati dai vari server avvenga esattamente nello stesso istante (non contemporaneo). Vi spiego: anche se tutti i server impiegassero esattamente lo stesso tempo a rispondere all’interrogazione il server di gasce.com ha un numero di core (al momento 2) inferiore al numero di server da monitorare e quindi non potrebbe comunque processarli contemporaneamente (inoltre il server è una macchina virtuale che ospita anche db e portale).

Attualmente il processo di prelievo richiede, in media, circa 10 secondi quindi (sempre in media) potrebbero esistere due o più server i cui dati sono stati forniti ad una distanza temporale di quell’ordine di grandezza. Credo sia ragionevole supporre (ma non mi sono impegnato a verificarlo matematicamente) che tale intervallo non abbia un impatto stocasticamente rilevante sui rapporti di utenza tra i vari server.

Altro discorso è l'errore di campionamento (un campione ogni 10 minuti) questo crea una imprecisione più tangibile, non voglio dilungarmi (ci sono svariati testi matematici facilmente recuperabili su internet) ma volgio fare un semplice esempio: se un server ha un picco di giocatori di breve durata nell’intervallo tra due eventi di campionamenti questo potrebbe non venire rilevato.

Quando ho dovuto decidere il periodo di campionamento ho fatto varie valutazioni sia matematiche (dovute a di quanto mi sarei discostato dai valori effettivi) che più pratiche ovverosia quanto il server poteva reggere nel lungo periodo. Alla fine 10 minuti è risultato il miglior rapporto costo benefici e ritengo che nell’ottica di lungo termine tali valutazioni siano ancora valide.

In soldoni non è possibile essere certi che il dato ricevuto sia veritiero ed in ogni caso il tutto è comunque soggetto ad imprecisione.

Saluti

K.


I post più vecchio sono disponibili nell'archivio.

Friends
Just Ultima Free UO
Oltre UO
Sei l'admin di un server di gioco gratuito di un multiplayer diverso da Ultima Online e vorresti venisse monitorato da Gasce? Contattami via twitter, forum o e-mail.