Skip to main content

GARR

Annual Report - Personale GARR

28 Settembre 2018 | Chi siamo

.ContenitoreHD, .GraficoHD { width: 1200px; height: 600px; background: rgba(255, 255, 255, 1); } .ContenitorePieHD, .GraficoPieHD { width: 600px; height: 600px; background: rgba(255, 255, 255, 1); } .bottone { margin: 15px 25px 15px 5px; }

Elenco dei grafici per il personale GARR

  • Composizione di genere
  • Età
  • Settore di attività
  • Attività tecnica
  • Tipo di contratto
  • Retribuzione
Scegli Composizione di genere Età Settore di attività Attività tecnica Tipo di contratto Retribuzione

Composizione di genere

Il grafico mostra la composizione del personale GARR per genere.

Seleziona l'anno: 2021 2020 2019 2018 2017
Salva immagine

Età del personale

Il grafico mostra la composizione del personale GARR per fasce di età.

Seleziona l'anno: 2021 2020 2019 2018 2017 2016
Salva immagine

Settore di attività

Il grafico mostra la ripartizione del personale per attività svolta. Le attività tecniche sono legate alla mission istituzionale. Le attività amministrative sono svolte nei settori di amministrazione, segreteria, formazione, comunicazione, web e multimedia. L'attività di ricerca e sviluppo coinvolge in maniera trasversale tutto il personale GARR.

Seleziona l'anno: 2021 2020 2019 2018
Salva immagine

Attività tecnica

Il grafico mostra il dettaglio delle attività tecniche svolte dal personale GARR.

Seleziona l'anno: 2021 2020 2019 2018
Salva immagine

Tipologia di contratto

Il grafico mostra la suddivisione del personale per tipologia di contratto.

Seleziona l'anno: 2021 2020 2019 2018
Salva immagine

Retribuzione lorda annua

Il grafico mostra la distribuzione della retribuzione lorda annua dei dipendenti.

Seleziona l'anno: 2021 2020 2019 2018 2017
Salva immagine

Continua a leggere

 Servizi applicativi  Comunicazione


Le informazioni contenute in questo documento sono tratte dal "Bilancio Consuntivo 2021" e dalla Relazione sull'attività svolta e risultati conseguiti 2021 approvati dall'Assemblea dei soci GARR a maggio 2022.

pdf Scarica l'annual report 2021(22.72 MB)

Tutti gli annual report

var numeroScheda=""; var SpazioDestra = 30; var TitoloFont = 'Raleway'; var TitoloFontSize = 15; var TitoloVisualizza = true; var TitoloAllinea = 'end'; // start center end var TitoloPadding = 20; var TitoloColore = '#1d5b37'; var TitoloStile = 'normal'; // normal italic oblique initial inherit var ArrayColore = ["rgba(0, 29, 111, 0.6)", "rgba(0, 111, 62, 0.6)", "rgba(197, 26, 26, 0.6)", "rgba(224, 155, 38, 0.6)", "rgba(111, 0, 86, 0.6)", "rgba(228, 88, 19, 0.6)", "rgba(71, 0, 11, 0.6)"]; var ArrayColoreBordo = ["rgba(0, 29, 111, 1)", "rgba(0, 111, 62, 1)", "rgba(111, 0, 0, 1)", "rgba(224, 155, 38, 1)", "rgba(111, 0, 86, 1)", "rgba(228, 88, 19, 1)", "rgba(71, 0, 11, 1)"]; var ArrayColoreSfondo = ["rgba(0, 29, 111, 0.1)", "rgba(0, 111, 62, 0.1)", "rgba(197, 26, 26, 0.1)", "rgba(224, 155, 38, 0.1)", "rgba(111, 0, 86, 0.1)", "rgba(228, 88, 19, 0.1)", "rgba(71, 0, 11, 0.1)"]; var Bianco = '#FFFFFF'; var Nero = '#000000'; var Grigio = '#a3a3a3'; var BordoSpessore = 1; var AssiFont = 'Varela Round'; var AssiFontSize = 13; var AssiVisualizza = 'true'; var AssiAllinea = 'center'; var AssiPadding = 10; var AssiColore = '#1d5b37'; var AssiStile = 'normal'; var LabelFont = 'Varela Round'; var LabelFontSize = 13; var LabelColore = '#1d5b37'; var LabelStile = 'normal'; var TooltipFont = 'Varela Round'; var TooltipFontSize = 13; var TooltipColore = 'rgba(255,255,255,1)'; var TooltipSfondo = 'rgba(0,0,0,1)'; var TicksFont = 'Varela Round'; var TicksFontSize = 13; var TicksColore = '#1d5b37'; var TicksStile = 'normal'; var sfondoImmagine = 'rgba(255,255,255,1)'; var legendaImmagine = 'right'; //if (document.getElementById("contenuto-principale").offsetWidth { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const datapoints = chart.data.datasets[i].data; function Totale(total, datapoint) { return Number(total) + Number(datapoint) } const sommaTotale = datapoints.reduce(Totale); const postSommaTotale = sommaTotale.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const valorePercentuale = (chart.data.datasets[i].data[index] / sommaTotale * 100).toFixed(1); const {x, y} = datapoint.tooltipPosition(); var cosaMisura = chart.config.options.plugins.Contatore.cosaMisura; let primoValore = chart.data.datasets[i].data.indexOf(chart.data.datasets[i].data[index]); if (primoValore == 0) { const {ctx, chartArea : {top, right, bottom, left, width, height} } = chart; ctx.save(); ctx.font = TitoloFont; ctx.textAlign = 'center'; ctx.fillStyle = Nero; ctx.fontSize = 30; ctx.fillText('Totale ' + cosaMisura + ':', left + (width / 2), top + (height /2) - 11); ctx.fillText(postSommaTotale, left + (width / 2), top + (height /2) + 11); ctx.restore(); } }) }) } }; const sfondoBianco = { id: 'sfondoBianco', beforeDraw: (chart) => { const ctx = chart.canvas.getContext('2d'); ctx.save(); ctx.globalCompositeOperation = 'destination-over'; ctx.fillStyle = sfondoImmagine; ctx.fillRect(0, 0, chart.width, chart.height); ctx.restore(); } }; const mostraEtichettePie = { id: 'mostraEtichettePie', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const datapoints = chart.data.datasets[i].data; function Totale(total, datapoint) { return Number(total) + Number(datapoint) } const sommaTotale = datapoints.reduce(Totale); const postSommaTotale = sommaTotale.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const valorePercentuale = (chart.data.datasets[i].data[index] / sommaTotale * 100).toFixed(1); const assoluto = chart.data.datasets[i].data[index]; const postAssoluto = assoluto.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const percentuale = valorePercentuale.toString().replace(".", ",") + '%'; const assolutoWidth = ctx.measureText(postAssoluto).width; const percentualeWidth = ctx.measureText(percentuale).width; if (assolutoWidth >= percentualeWidth) { var maggiore = assolutoWidth; } else {var maggiore = percentualeWidth;} const {x, y} = datapoint.tooltipPosition(); const textWidth = maggiore; if (!(chart.data.datasets[i].data[index] == 0) && (chart.getDataVisibility(index) == true)) { ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 42, textWidth + 10, 37); ctx.beginPath(); ctx.moveTo(x, y); ctx.lineTo(x - 5, y - 5); ctx.lineTo(x + 5, y - 5); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(postAssoluto, x - (textWidth / 2), y - 28); ctx.fillText(percentuale, x - (textWidth / 2), y - 11); ctx.restore(); } }) }) } }; const mostraEtichette = { id: 'mostraEtichette', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const {x, y} = datapoint.tooltipPosition(); // per il testo completo // const text = chart.data.labels[index] + ': ' + chart.data.datasets[i].data[index]; const preText = chart.data.datasets[i].data[index]; const text = preText.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const textWidth = ctx.measureText(text).width; ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 25, textWidth + 10, 20); ctx.beginPath(); ctx.moveTo(x, y); ctx.lineTo(x - 5, y - 5); ctx.lineTo(x + 5, y - 5); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(text, x - (textWidth / 2), y - 14); ctx.restore(); }) }) } }; const mostraEtichetteStacked = { id: 'mostraEtichetteStacked', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const {x, y} = datapoint.tooltipPosition(); // per il testo completo // const text = chart.data.labels[index] + ': ' + chart.data.datasets[i].data[index]; const preText = chart.data.datasets[i].data[index]; const text = preText.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const textWidth = ctx.measureText(text).width; ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 5, textWidth + 10, 20); ctx.beginPath(); ctx.moveTo(x, y+20); ctx.lineTo(x - 5, y + 15); ctx.lineTo(x + 5, y + 15); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(text, x - (textWidth / 2), y+6); ctx.restore(); }) }) } }; const mostraEtichetteSopra = { id: 'mostraEtichetteSopra', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const {x, y} = datapoint.tooltipPosition(); // per il testo completo // const text = chart.data.labels[index] + ': ' + chart.data.datasets[i].data[index]; const preText = chart.data.datasets[i].data[index]; const text = preText.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const textWidth = ctx.measureText(text).width; if (!(chart.data.datasets[i].data[index] == 0) && (chart.getDataVisibility(index) == true)) { ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 30, textWidth + 10, 20); ctx.beginPath(); ctx.moveTo(x, y - 5); ctx.lineTo(x - 5, y - 10); ctx.lineTo(x + 5, y - 10); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(text, x - (textWidth / 2), y-19); ctx.restore(); } }) }) } }; const logo = new Image(); logo.src = 'https://www.garr.it/images/logo-garr-grafici.png'; const LogoGARR = { id: 'LogoGARR', beforeDraw(chart, args, options) { const {ctx, chartArea: { top, bottom, left, right} } = chart; const logoWidth = 100; const logoHeight = 34; ctx.save(); if ((logo.complete) && (ctx.canvas.offsetWidth > 640)) { ctx.drawImage(logo, ctx.canvas.offsetWidth - (logoWidth + 10), ctx.canvas.offsetHeight - (logoHeight + 10), logoWidth, logoHeight); } else { logo.onload = () => chart.draw(); }; ctx.restore(); } } const PersonaleGenereData = { labels: ['Uomini', 'Donne'], datasets: [{ label: '2021', data: [53, 25], backgroundColor: ArrayColore, borderColor: Bianco, hoverBorderColor: Bianco, spacing: 10, hoverOffset: 4, borderRadius: 6, borderWidth: 3 }] }; const optionsPGG = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale GARR: composizione di genere', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, /*position: posizioneLegenda,*/ labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } }, Contatore: { cosaMisura: 'lavoratori', } } } const PersonaleGenereConfig = { type: 'doughnut', data: PersonaleGenereData, options: optionsPGG, plugins: [mostraEtichettePie, sfondoBianco, LogoGARR, Contatore] }; const PersonaleGenereGrafico = new Chart( document.getElementById('PersonaleGenere'), PersonaleGenereConfig ); const optionsPGGHD = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale GARR: composizione di genere', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: legendaImmagine, labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } }, Contatore: { cosaMisura: 'lavoratori', } }, animation: { onComplete: function() { var annoSelect = document.getElementById('selectPGG'); var annoSelezionato = annoSelect.options[annoSelect.selectedIndex].text; var CanvasTemp = PersonaleGenereGraficoHD; var a = document.getElementById('PersonaleGenere_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'genere-personale-GARR-'+annoSelezionato+'.png'; } } } const PersonaleGenereConfigHD = { type: 'doughnut', data: PersonaleGenereData, options: optionsPGGHD, plugins: [mostraEtichettePie, sfondoBianco, LogoGARR, Contatore] }; const PersonaleGenereGraficoHD = new Chart( document.getElementById('PersonaleGenereHD'), PersonaleGenereConfigHD ); const PersonaleEtaData = { labels: ['< 25', '25-30', '31-35', '36-40', '41-45', '46-50', '> 50'], datasets: [{ label: 'Numero di lavoratori', data: [2, 11, 3, 9, 18, 19, 16], backgroundColor: ArrayColore[5], borderColor: ArrayColoreBordo[5], borderWidth: BordoSpessore }] }; const optionsPGE = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Età del personale GARR', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Età', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Lavoratori', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var annoSelect = document.getElementById('selectPGE'); var annoSelezionato = annoSelect.options[annoSelect.selectedIndex].text; var CanvasTemp = PersonaleEtaGraficoHD; var a = document.getElementById('PersonaleEta_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'eta-personale-GARR-'+annoSelezionato+'.png'; } } } const PersonaleEtaConfig = { type: 'bar', data: PersonaleEtaData, options: optionsPGE, plugins: [mostraEtichette, sfondoBianco, LogoGARR] }; const PersonaleEtaGrafico = new Chart( document.getElementById('PersonaleEta'), PersonaleEtaConfig ); const PersonaleEtaGraficoHD = new Chart( document.getElementById('PersonaleEtaHD'), PersonaleEtaConfig ); const PersonaleSettoreData = { labels: ['Tecnici', 'Amministrazione'], datasets: [{ label: '2021', data: [54, 24], backgroundColor: ArrayColore, borderColor: Bianco, hoverBorderColor: Bianco, spacing: 10, hoverOffset: 4, borderRadius: 6, borderWidth: 3 }] }; const optionsPGS = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale GARR: settore di attività', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, /*position: posizioneLegenda,*/ labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } }, Contatore: { cosaMisura: 'lavoratori', } } } const PersonaleSettoreConfig = { type: 'doughnut', data: PersonaleSettoreData, options: optionsPGS, plugins: [mostraEtichettePie, sfondoBianco, LogoGARR, Contatore] }; const PersonaleSettoreGrafico = new Chart( document.getElementById('PersonaleSettore'), PersonaleSettoreConfig ); const optionsPGSHD = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale GARR: settore di attività', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: legendaImmagine, labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } }, Contatore: { cosaMisura: 'lavoratori', } }, animation: { onComplete: function() { var annoSelect = document.getElementById('selectPGS'); var annoSelezionato = annoSelect.options[annoSelect.selectedIndex].text; var CanvasTemp = PersonaleSettoreGraficoHD; var a = document.getElementById('PersonaleSettore_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'settore-personale-GARR-'+annoSelezionato+'.png'; } } } const PersonaleSettoreConfigHD = { type: 'doughnut', data: PersonaleSettoreData, options: optionsPGSHD, plugins: [mostraEtichettePie, sfondoBianco, LogoGARR, Contatore] }; const PersonaleSettoreGraficoHD = new Chart( document.getElementById('PersonaleSettoreHD'), PersonaleSettoreConfigHD ); const PersonaleTecnicoData = { labels: ['Gestione e progettazione', 'Sistemi informativi', 'Cloud'], datasets: [{ label: '2021', data: [36, 9, 9], backgroundColor: ArrayColore, borderColor: Bianco, hoverBorderColor: Bianco, spacing: 10, hoverOffset: 4, borderRadius: 6, borderWidth: 3 }] }; const optionsPGT = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale tecnico GARR', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, /*position: posizioneLegenda,*/ labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } }, Contatore: { cosaMisura: 'lavoratori', } } } const PersonaleTecnicoConfig = { type: 'doughnut', data: PersonaleTecnicoData, options: optionsPGT, plugins: [mostraEtichettePie, sfondoBianco, LogoGARR, Contatore] }; const PersonaleTecnicoGrafico = new Chart( document.getElementById('PersonaleTecnico'), PersonaleTecnicoConfig ); const optionsPGTHD = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale tecnico GARR', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: legendaImmagine, labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } }, Contatore: { cosaMisura: 'lavoratori', } }, animation: { onComplete: function() { var annoSelect = document.getElementById('selectPGT'); var annoSelezionato = annoSelect.options[annoSelect.selectedIndex].text; var CanvasTemp = PersonaleTecnicoGraficoHD; var a = document.getElementById('PersonaleTecnico_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'personale-tecnico-GARR-'+annoSelezionato+'.png'; } } } const PersonaleTecnicoConfigHD = { type: 'doughnut', data: PersonaleTecnicoData, options: optionsPGTHD, plugins: [mostraEtichettePie, sfondoBianco, LogoGARR, Contatore] }; const PersonaleTecnicoGraficoHD = new Chart( document.getElementById('PersonaleTecnicoHD'), PersonaleTecnicoConfigHD ); const PersonaleContrattoData = { labels: ['Tempo indeterminato', 'Tempo indeterminato part', 'Tempo determinato', 'Personale di enti soci presso GARR', 'Collaboratori'], datasets: [{ label: '2021', data: [60, 5, 13, 7, 5], backgroundColor: ArrayColore, borderColor: Bianco, hoverBorderColor: Bianco, spacing: 10, hoverOffset: 4, borderRadius: 6, borderWidth: 3 }] }; const optionsPGC = { maintainAspectRatio: false, rotation: 55, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale GARR: tipologia di contratto', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, /*position: posizioneLegenda,*/ labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } }, Contatore: { cosaMisura: 'lavoratori', } } } const PersonaleContrattoConfig = { type: 'doughnut', data: PersonaleContrattoData, options: optionsPGC, plugins: [mostraEtichettePie, sfondoBianco, LogoGARR, Contatore] }; const PersonaleContrattoGrafico = new Chart( document.getElementById('PersonaleContratto'), PersonaleContrattoConfig ); const optionsPGCHD = { maintainAspectRatio: false, rotation: 55, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale GARR: tipologia di contratto', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: legendaImmagine, labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } }, Contatore: { cosaMisura: 'lavoratori', } }, animation: { onComplete: function() { var annoSelect = document.getElementById('selectPGC'); var annoSelezionato = annoSelect.options[annoSelect.selectedIndex].text; var CanvasTemp = PersonaleContrattoGraficoHD; var a = document.getElementById('PersonaleContratto_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'contratto-personale-GARR-'+annoSelezionato+'.png'; } } } const PersonaleContrattoConfigHD = { type: 'doughnut', data: PersonaleContrattoData, options: optionsPGCHD, plugins: [mostraEtichettePie, sfondoBianco, LogoGARR, Contatore] }; const PersonaleContrattoGraficoHD = new Chart( document.getElementById('PersonaleContrattoHD'), PersonaleContrattoConfigHD ); const PersonaleRetribuzioneData = { labels: ['< 30', '30-35', '35-40', '40-45', '> 45'], datasets: [{ label: 'Lavoratori', data: [15, 15, 10, 9, 29], backgroundColor: ArrayColore[4], borderColor: ArrayColoreBordo[4], borderWidth: BordoSpessore }] }; const optionsPGR = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Personale GARR: retribuzione lorda annua', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Retribuzione (in migliaia di euro)', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Lavoratori', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var annoSelect = document.getElementById('selectPGR'); var annoSelezionato = annoSelect.options[annoSelect.selectedIndex].text; var CanvasTemp = PersonaleRetribuzioneGraficoHD; var a = document.getElementById('PersonaleRetribuzione_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'retribuzione-personale-GARR-'+annoSelezionato+'.png'; } } } const PersonaleRetribuzioneConfig = { type: 'bar', data: PersonaleRetribuzioneData, options: optionsPGR, plugins: [mostraEtichette, sfondoBianco, LogoGARR] }; const PersonaleRetribuzioneGrafico = new Chart( document.getElementById('PersonaleRetribuzione'), PersonaleRetribuzioneConfig ); const PersonaleRetribuzioneGraficoHD = new Chart( document.getElementById('PersonaleRetribuzioneHD'), PersonaleRetribuzioneConfig ); const periodoPGG = document.getElementById('selectPGG'); periodoPGG.addEventListener('change', SelezionaPeriodoPGG) function SelezionaPeriodoPGG() { var lnk = document.getElementById('PersonaleGenere_link'); lnk.classList.add("uk-link-muted"); lnk.href = "javascript:;"; periodoPGG.value.split(','); PersonaleGenereGrafico.data.datasets[0].data = periodoPGG.value.split(','); PersonaleGenereGrafico.options.plugins.title.text = 'Personale GARR: composizione di genere nel ' + periodoPGG.options[periodoPGG.selectedIndex].text; PersonaleGenereGrafico.options.plugins.legend.position = posizioneLegenda; PersonaleGenereGrafico.update(); PersonaleGenereGraficoHD.data.datasets[0].data = periodoPGG.value.split(','); PersonaleGenereGraficoHD.options.plugins.title.text = 'Personale GARR: composizione di genere nel ' + periodoPGG.options[periodoPGG.selectedIndex].text; PersonaleGenereGraficoHD.update(); sospendiLink = setInterval(togliMuto, 1000); function togliMuto() { lnk.classList.remove("uk-link-muted"); clearInterval(sospendiLink); } } const periodoPGE = document.getElementById('selectPGE'); periodoPGE.addEventListener('change', SelezionaPeriodoPGE) function SelezionaPeriodoPGE() { var lnk = document.getElementById('PersonaleEta_link'); lnk.classList.add("uk-link-muted"); lnk.href = "javascript:;"; periodoPGE.value.split(','); PersonaleEtaGrafico.data.datasets[0].data = periodoPGE.value.split(','); PersonaleEtaGrafico.options.plugins.title.text = 'Personale GARR: età del personale nel ' + periodoPGE.options[periodoPGE.selectedIndex].text; PersonaleEtaGrafico.update(); PersonaleEtaGraficoHD.data.datasets[0].data = periodoPGE.value.split(','); PersonaleEtaGraficoHD.options.plugins.title.text = 'Personale GARR: età del personale nel ' + periodoPGE.options[periodoPGE.selectedIndex].text; PersonaleEtaGraficoHD.update(); sospendiLink = setInterval(togliMuto, 1000); function togliMuto() { lnk.classList.remove("uk-link-muted"); clearInterval(sospendiLink); } } const periodoPGS = document.getElementById('selectPGS'); periodoPGS.addEventListener('change', SelezionaPeriodoPGS) function SelezionaPeriodoPGS() { var lnk = document.getElementById('PersonaleSettore_link'); lnk.classList.add("uk-link-muted"); lnk.href = "javascript:;"; periodoPGS.value.split(','); PersonaleSettoreGrafico.data.datasets[0].data = periodoPGS.value.split(','); PersonaleSettoreGrafico.options.plugins.title.text = 'Personale GARR: settore di attività nel ' + periodoPGS.options[periodoPGS.selectedIndex].text; PersonaleSettoreGrafico.options.plugins.legend.position = posizioneLegenda; PersonaleSettoreGrafico.update(); PersonaleSettoreGraficoHD.data.datasets[0].data = periodoPGS.value.split(','); PersonaleSettoreGraficoHD.options.plugins.title.text = 'Personale GARR: settore di attività nel ' + periodoPGS.options[periodoPGS.selectedIndex].text; PersonaleSettoreGraficoHD.update(); sospendiLink = setInterval(togliMuto, 1000); function togliMuto() { lnk.classList.remove("uk-link-muted"); clearInterval(sospendiLink); } } const periodoPGT = document.getElementById('selectPGT'); periodoPGT.addEventListener('change', SelezionaPeriodoPGT) function SelezionaPeriodoPGT() { var lnk = document.getElementById('PersonaleTecnico_link'); lnk.classList.add("uk-link-muted"); lnk.href = "javascript:;"; periodoPGT.value.split(','); PersonaleTecnicoGrafico.data.datasets[0].data = periodoPGT.value.split(','); PersonaleTecnicoGrafico.options.plugins.title.text = 'Personale GARR: personale tecnico nel ' + periodoPGT.options[periodoPGT.selectedIndex].text; PersonaleTecnicoGrafico.options.plugins.legend.position = posizioneLegenda; PersonaleTecnicoGrafico.update(); PersonaleTecnicoGraficoHD.data.datasets[0].data = periodoPGT.value.split(','); PersonaleTecnicoGraficoHD.options.plugins.title.text = 'Personale GARR: personale tecnico nel ' + periodoPGT.options[periodoPGT.selectedIndex].text; PersonaleTecnicoGraficoHD.update(); sospendiLink = setInterval(togliMuto, 1000); function togliMuto() { lnk.classList.remove("uk-link-muted"); clearInterval(sospendiLink); } } const periodoPGC = document.getElementById('selectPGC'); periodoPGC.addEventListener('change', SelezionaPeriodoPGC) function SelezionaPeriodoPGC() { var lnk = document.getElementById('PersonaleContratto_link'); lnk.classList.add("uk-link-muted"); lnk.href = "javascript:;"; periodoPGC.value.split(','); PersonaleContrattoGrafico.data.datasets[0].data = periodoPGC.value.split(','); PersonaleContrattoGrafico.options.plugins.title.text = 'Personale GARR: tipologia di contratto nel ' + periodoPGC.options[periodoPGC.selectedIndex].text; PersonaleContrattoGrafico.options.plugins.legend.position = posizioneLegenda; PersonaleContrattoGrafico.update(); PersonaleContrattoGraficoHD.data.datasets[0].data = periodoPGC.value.split(','); PersonaleContrattoGraficoHD.options.plugins.title.text = 'Personale GARR: tipologia di contratto nel ' + periodoPGC.options[periodoPGC.selectedIndex].text; PersonaleContrattoGraficoHD.update(); sospendiLink = setInterval(togliMuto, 1000); function togliMuto() { lnk.classList.remove("uk-link-muted"); clearInterval(sospendiLink); } } const periodoPGR = document.getElementById('selectPGR'); periodoPGR.addEventListener('change', SelezionaPeriodoPGR) function SelezionaPeriodoPGR() { var lnk = document.getElementById('PersonaleRetribuzione_link'); lnk.classList.add("uk-link-muted"); lnk.href = "javascript:;"; periodoPGR.value.split(','); PersonaleRetribuzioneGrafico.data.datasets[0].data = periodoPGR.value.split(','); PersonaleRetribuzioneGrafico.options.plugins.title.text = 'Personale GARR: retribuzione lorda annua nel ' + periodoPGR.options[periodoPGR.selectedIndex].text; PersonaleRetribuzioneGrafico.update(); PersonaleRetribuzioneGraficoHD.data.datasets[0].data = periodoPGR.value.split(','); PersonaleRetribuzioneGraficoHD.options.plugins.title.text = 'Personale GARR: retribuzione lorda annua nel ' + periodoPGR.options[periodoPGR.selectedIndex].text; PersonaleRetribuzioneGraficoHD.update(); sospendiLink = setInterval(togliMuto, 1000); function togliMuto() { lnk.classList.remove("uk-link-muted"); clearInterval(sospendiLink); } } $(function(){ $('#selectGrafico').on('change', function () { var url = $(this).val(); if (url) { window.location = url; } return false; }); });

Annual Report - Comunicazione

28 Settembre 2018 | Chi siamo

.ContenitoreHD, .GraficoHD { width: 1200px; height: 600px; background: rgba(255, 255, 255, 1); } .ContenitorePieHD, .GraficoPieHD { width: 600px; height: 600px; background: rgba(255, 255, 255, 1); } .bottone { margin: 15px 25px 15px 5px; }

Elenco dei grafici per la comunicazione GARR

  • Social Media: followers
  • GARR TV: filmati disponibili
  • GARR News: pagine visualizzate
Scegli Social Media: followers GARR TV: filmati disponibili GARR News: pagine visualizzate

Social media: followers

Il grafico mostra l’andamento dei followers sui vari canali social GARR.

Salva immagine

GARR TV: filmati disponibili

Il grafico mostra l’andamento dei filmati disponibili sulla piattaforma GARR TV.

Salva immagine

GARR News: pagine visualizzate

Il grafico mostra l’andamento del numero di pagine visualizzate dell’edizione online del magazine GARR NEWS.

Salva immagine

Continua a leggere

 Personale

 Rete GARR


Le informazioni contenute in questo documento sono tratte dal "Bilancio Consuntivo 2021" e dalla Relazione sull'attività svolta e risultati conseguiti 2021 approvati dall'Assemblea dei soci GARR a maggio 2022.

pdf Scarica l'annual report 2021(22.72 MB)

Tutti gli annual report

var numeroScheda=""; var SpazioDestra = 30; var TitoloFont = 'Raleway'; var TitoloFontSize = 15; var TitoloVisualizza = true; var TitoloAllinea = 'end'; // start center end var TitoloPadding = 20; var TitoloColore = '#1d5b37'; var TitoloStile = 'normal'; // normal italic oblique initial inherit var ArrayColore = ["rgba(0, 29, 111, 0.6)", "rgba(0, 111, 62, 0.6)", "rgba(197, 26, 26, 0.6)", "rgba(224, 155, 38, 0.6)", "rgba(111, 0, 86, 0.6)", "rgba(228, 88, 19, 0.6)", "rgba(71, 0, 11, 0.6)"]; var ArrayColoreBordo = ["rgba(0, 29, 111, 1)", "rgba(0, 111, 62, 1)", "rgba(111, 0, 0, 1)", "rgba(224, 155, 38, 1)", "rgba(111, 0, 86, 1)", "rgba(228, 88, 19, 1)", "rgba(71, 0, 11, 1)"]; var ArrayColoreSfondo = ["rgba(0, 29, 111, 0.1)", "rgba(0, 111, 62, 0.1)", "rgba(197, 26, 26, 0.1)", "rgba(224, 155, 38, 0.1)", "rgba(111, 0, 86, 0.1)", "rgba(228, 88, 19, 0.1)", "rgba(71, 0, 11, 0.1)"]; var Bianco = '#FFFFFF'; var Nero = '#000000'; var Grigio = '#a3a3a3'; var BordoSpessore = 1; var AssiFont = 'Varela Round'; var AssiFontSize = 13; var AssiVisualizza = 'true'; var AssiAllinea = 'center'; var AssiPadding = 10; var AssiColore = '#1d5b37'; var AssiStile = 'normal'; var LabelFont = 'Varela Round'; var LabelFontSize = 13; var LabelColore = '#1d5b37'; var LabelStile = 'normal'; var TooltipFont = 'Varela Round'; var TooltipFontSize = 13; var TooltipColore = 'rgba(255,255,255,1)'; var TooltipSfondo = 'rgba(0,0,0,1)'; var TicksFont = 'Varela Round'; var TicksFontSize = 13; var TicksColore = '#1d5b37'; var TicksStile = 'normal'; var sfondoImmagine = 'rgba(255,255,255,1)'; var legendaImmagine = 'right'; //if (document.getElementById("contenuto-principale").offsetWidth { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const datapoints = chart.data.datasets[i].data; function Totale(total, datapoint) { return Number(total) + Number(datapoint) } const sommaTotale = datapoints.reduce(Totale); const postSommaTotale = sommaTotale.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const valorePercentuale = (chart.data.datasets[i].data[index] / sommaTotale * 100).toFixed(1); const {x, y} = datapoint.tooltipPosition(); var cosaMisura = chart.config.options.plugins.Contatore.cosaMisura; let primoValore = chart.data.datasets[i].data.indexOf(chart.data.datasets[i].data[index]); if (primoValore == 0) { const {ctx, chartArea : {top, right, bottom, left, width, height} } = chart; ctx.save(); ctx.font = TitoloFont; ctx.textAlign = 'center'; ctx.fillStyle = Nero; ctx.fontSize = 30; ctx.fillText('Totale ' + cosaMisura + ':', left + (width / 2), top + (height /2) - 11); ctx.fillText(postSommaTotale, left + (width / 2), top + (height /2) + 11); ctx.restore(); } }) }) } }; const sfondoBianco = { id: 'sfondoBianco', beforeDraw: (chart) => { const ctx = chart.canvas.getContext('2d'); ctx.save(); ctx.globalCompositeOperation = 'destination-over'; ctx.fillStyle = sfondoImmagine; ctx.fillRect(0, 0, chart.width, chart.height); ctx.restore(); } }; const mostraEtichetteSopra = { id: 'mostraEtichetteSopra', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const {x, y} = datapoint.tooltipPosition(); // per il testo completo // const text = chart.data.labels[index] + ': ' + chart.data.datasets[i].data[index]; const preText = chart.data.datasets[i].data[index]; const text = preText.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const textWidth = ctx.measureText(text).width; if (!(chart.data.datasets[i].data[index] == 0) && (chart.getDataVisibility(index) == true)) { ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 30, textWidth + 10, 20); ctx.beginPath(); ctx.moveTo(x, y - 5); ctx.lineTo(x - 5, y - 10); ctx.lineTo(x + 5, y - 10); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(text, x - (textWidth / 2), y-19); ctx.restore(); } }) }) } }; const logo = new Image(); logo.src = 'https://www.garr.it/images/logo-garr-grafici.png'; const LogoGARR = { id: 'LogoGARR', beforeDraw(chart, args, options) { const {ctx, chartArea: { top, bottom, left, right} } = chart; const logoWidth = 100; const logoHeight = 34; ctx.save(); if ((logo.complete) && (ctx.canvas.offsetWidth > 640)) { ctx.drawImage(logo, ctx.canvas.offsetWidth - (logoWidth + 10), ctx.canvas.offsetHeight - (logoHeight + 10), logoWidth, logoHeight); } else { logo.onload = () => chart.draw(); }; ctx.restore(); } } /* const optionsCVP = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Visualizzazioni di post', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: true }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Visualizzazioni', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = VisualizzazioniPostGraficoHD; var a = document.getElementById('VisualizzazioniPost_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'visualizzazione-post-GARR.png'; } } } const VisualizzazioniPostData = { labels: ['2015', '2016', '2017', '2018', '2019','2020'], datasets: [{ label: 'Facebook', data: [99678, 231815, 212083, 274594, 333018, 209988], backgroundColor: ArrayColoreBordo[0], borderColor: ArrayColore[0], borderWidth: 1, borderDash: [4, 4], tension: 0.5 },{ label: 'Youtube', data: [2965, 6377, 16923, 22357, 22406, 50870], backgroundColor: ArrayColoreBordo[2], borderColor: ArrayColore[2], borderWidth: 1, borderDash: [4, 4], tension: 0.5 },{ label: 'Twitter', data: [54535, 161891, 206487, 336600, 366573, 248366], backgroundColor: ArrayColoreBordo[3], borderColor: ArrayColore[3], borderWidth: 1, borderDash: [4, 4], tension: 0.5 }] }; const VisualizzazioniPostConfig = { type: 'line', data: VisualizzazioniPostData, options: optionsCVP, plugins: [sfondoBianco, LogoGARR] }; const VisualizzazioniPostGrafico = new Chart( document.getElementById('VisualizzazioniPost'), VisualizzazioniPostConfig ); const VisualizzazioniPostGraficoHD = new Chart( document.getElementById('VisualizzazioniPostHD'), VisualizzazioniPostConfig ); */ const optionsCVF = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Social media: Followers', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: true }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Followers', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = FollowersGraficoHD; var a = document.getElementById('Followers_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'followers-GARR.png'; } } } const FollowersData = { labels: ['2017', '2018', '2019','2020','2021'], datasets: [{ label: 'Facebook', data: [1697, 2082, 2562, 3149, 3530], backgroundColor: ArrayColoreBordo[0], borderColor: ArrayColore[0], borderWidth: 1, borderDash: [4, 4], tension: 0.5 },{ label: 'Twitter', data: [1114, 1405, 1559, 1763, 1942], backgroundColor: ArrayColoreBordo[3], borderColor: ArrayColore[3], borderWidth: 1, borderDash: [4, 4], tension: 0.5 },{ label: 'Youtube', data: [280, 477, 734, 1440, 2180], backgroundColor: ArrayColoreBordo[2], borderColor: ArrayColore[2], borderWidth: 1, borderDash: [4, 4], tension: 0.5 },{ label: 'Linkedin', data: [0, 867, 1174, 1579, 2079], backgroundColor: ArrayColoreBordo[1], borderColor: ArrayColore[1], borderWidth: 1, borderDash: [4, 4], tension: 0.5 },{ label: 'Instagram', data: [0, 0, 505, 582, 679], backgroundColor: ArrayColoreBordo[6], borderColor: ArrayColore[6], borderWidth: 1, borderDash: [4, 4], tension: 0.5 }] }; const FollowersConfig = { type: 'line', data: FollowersData, options: optionsCVF, plugins: [sfondoBianco, LogoGARR] }; const FollowersGrafico = new Chart( document.getElementById('Followers'), FollowersConfig ); const FollowersGraficoHD = new Chart( document.getElementById('FollowersHD'), FollowersConfig ); const optionsCGT = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'GARR TV: filmati disponibili', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Video', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = GARRTvGraficoHD; var a = document.getElementById('GARRTv_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'filmati-disponibili-GARRTv-GARR.png'; } } } const GARRTvData = { labels: ['2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021'], datasets: [{ label: 'Video disponibili', data: [553, 770, 890, 1102, 1271, 1465, 1644, 2161, 2362], pointBackgroundColor: ArrayColoreBordo[0], backgroundColor: ArrayColoreSfondo[0], borderColor: ArrayColore[0], borderWidth: 1, borderDash: [4, 4], fill: true, tension: 0.5 }] }; const GARRTvConfig = { type: 'line', data: GARRTvData, options: optionsCGT, plugins: [sfondoBianco, mostraEtichetteSopra, LogoGARR] }; const GARRTvGrafico = new Chart( document.getElementById('GARRTv'), GARRTvConfig ); const GARRTvGraficoHD = new Chart( document.getElementById('GARRTvHD'), GARRTvConfig ); const optionsCGN = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'GARR News: visualizzazione pagine', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Pagine', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = GARRNewsGraficoHD; var a = document.getElementById('GARRNews_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'lettori-GARR-News-GARR.png'; } } } const GARRNewsData = { labels: ['2014','2015', '2016', '2017', '2018', '2019', '2020', '2021'], datasets: [{ label: 'Numero di pagine', data: [7877, 10751, 10600, 12955, 13037, 13635, 20374, 28281], pointBackgroundColor: ArrayColoreBordo[5], backgroundColor: ArrayColoreSfondo[5], borderColor: ArrayColore[5], borderWidth: 1, borderDash: [4, 4], fill: true, tension: 0.5 }] }; const GARRNewsConfig = { type: 'line', data: GARRNewsData, options: optionsCGN, plugins: [sfondoBianco, mostraEtichetteSopra, LogoGARR] }; const GARRNewsGrafico = new Chart( document.getElementById('GARRNews'), GARRNewsConfig ); const GARRNewsGraficoHD = new Chart( document.getElementById('GARRNewsHD'), GARRNewsConfig ); /* const optionsCVS = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Visualizzazioni di pagine', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: false, title: { text: 'Visualizzazioni', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = VisualizzazioniSitiGraficoHD; var a = document.getElementById('VisualizzazioniSiti_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'visualizzazioni-pagine-GARR.png'; } } } const VisualizzazioniSitiData = { labels: ['2016', '2017', '2018', '2019', '2020', '2021'], datasets: [{ label: 'Pagine visualizzate', data: [479000, 541000, 521000, 538328, 743197, 624000], pointBackgroundColor: ArrayColoreBordo[4], backgroundColor: ArrayColoreSfondo[4], borderColor: ArrayColore[4], borderWidth: 1, borderDash: [4, 4], fill: true, tension: 0.5 }] }; const VisualizzazioniSitiConfig = { type: 'line', data: VisualizzazioniSitiData, options: optionsCVS, plugins: [sfondoBianco, mostraEtichetteSopra, LogoGARR] }; const VisualizzazioniSitiGrafico = new Chart( document.getElementById('VisualizzazioniSiti'), VisualizzazioniSitiConfig ); const VisualizzazioniSitiGraficoHD = new Chart( document.getElementById('VisualizzazioniSitiHD'), VisualizzazioniSitiConfig ); */ $(function(){ $('#selectGrafico').on('change', function () { var url = $(this).val(); if (url) { window.location = url; } return false; }); });

Annual Report - Servizi applicativi

28 Settembre 2018 | Chi siamo

.ContenitoreHD, .GraficoHD { width: 1200px; height: 600px; background: rgba(255, 255, 255, 1); } .ContenitorePieHD, .GraficoPieHD { width: 600px; height: 600px; background: rgba(255, 255, 255, 1); } .bottone { margin: 15px 25px 15px 5px; }

Elenco dei grafici per i servizi applicativi

  • Mirror: volume di traffico annuale
  • Filesender: file inviati
  • Speedtest: misure effettuate
Scegli Mirror: volume di traffico annuale Filesender: file inviati Speedtest: misure effettuate

Mirror: volume di traffico annuale

Il grafico mostra il volume totale di dati trasferiti dal Mirror verso l’esterno.

Salva immagine

Filesender: file inviati

Il grafico mostra il numero di file inviati in un anno utilizzando il servizio Filesender.

Salva immagine

Speedtest: misure effettuate

GARR Speedtest misura capacità, latenza e jitter di una connessione di rete.
Il grafico mostra il numero di misure effettuate e il numero di indirizzi IP unici da cui provengono.

Salva immagine

Continua a leggere

 Servizi di rete e accesso  Personale


Le informazioni contenute in questo documento sono tratte dal "Bilancio Consuntivo 2021" e dalla Relazione sull'attività svolta e risultati conseguiti 2021 approvati dall'Assemblea dei soci GARR a maggio 2022.

pdf Scarica l'annual report 2021(22.72 MB)

Tutti gli annual report

var numeroScheda=""; var SpazioDestra = 30; var TitoloFont = 'Raleway'; var TitoloFontSize = 15; var TitoloVisualizza = true; var TitoloAllinea = 'end'; // start center end var TitoloPadding = 20; var TitoloColore = '#1d5b37'; var TitoloStile = 'normal'; // normal italic oblique initial inherit var ArrayColore = ["rgba(0, 29, 111, 0.6)", "rgba(0, 111, 62, 0.6)", "rgba(197, 26, 26, 0.6)", "rgba(224, 155, 38, 0.6)", "rgba(111, 0, 86, 0.6)", "rgba(228, 88, 19, 0.6)", "rgba(71, 0, 11, 0.6)"]; var ArrayColoreBordo = ["rgba(0, 29, 111, 1)", "rgba(0, 111, 62, 1)", "rgba(111, 0, 0, 1)", "rgba(224, 155, 38, 1)", "rgba(111, 0, 86, 1)", "rgba(228, 88, 19, 1)", "rgba(71, 0, 11, 1)"]; var ArrayColoreSfondo = ["rgba(0, 29, 111, 0.1)", "rgba(0, 111, 62, 0.1)", "rgba(197, 26, 26, 0.1)", "rgba(224, 155, 38, 0.1)", "rgba(111, 0, 86, 0.1)", "rgba(228, 88, 19, 0.1)", "rgba(71, 0, 11, 0.1)"]; var Bianco = '#FFFFFF'; var Nero = '#000000'; var Grigio = '#a3a3a3'; var BordoSpessore = 1; var AssiFont = 'Varela Round'; var AssiFontSize = 13; var AssiVisualizza = 'true'; var AssiAllinea = 'center'; var AssiPadding = 10; var AssiColore = '#1d5b37'; var AssiStile = 'normal'; var LabelFont = 'Varela Round'; var LabelFontSize = 13; var LabelColore = '#1d5b37'; var LabelStile = 'normal'; var TooltipFont = 'Varela Round'; var TooltipFontSize = 13; var TooltipColore = 'rgba(255,255,255,1)'; var TooltipSfondo = 'rgba(0,0,0,1)'; var TicksFont = 'Varela Round'; var TicksFontSize = 13; var TicksColore = '#1d5b37'; var TicksStile = 'normal'; var sfondoImmagine = 'rgba(255,255,255,1)'; var legendaImmagine = 'right'; //if (document.getElementById("contenuto-principale").offsetWidth { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const datapoints = chart.data.datasets[i].data; function Totale(total, datapoint) { return Number(total) + Number(datapoint) } const sommaTotale = datapoints.reduce(Totale); const postSommaTotale = sommaTotale.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const valorePercentuale = (chart.data.datasets[i].data[index] / sommaTotale * 100).toFixed(1); const {x, y} = datapoint.tooltipPosition(); var cosaMisura = chart.config.options.plugins.Contatore.cosaMisura; let primoValore = chart.data.datasets[i].data.indexOf(chart.data.datasets[i].data[index]); if (primoValore == 0) { const {ctx, chartArea : {top, right, bottom, left, width, height} } = chart; ctx.save(); ctx.font = TitoloFont; ctx.textAlign = 'center'; ctx.fillStyle = Nero; ctx.fontSize = 30; ctx.fillText('Totale ' + cosaMisura + ':', left + (width / 2), top + (height /2) - 11); ctx.fillText(postSommaTotale, left + (width / 2), top + (height /2) + 11); ctx.restore(); } }) }) } }; const sfondoBianco = { id: 'sfondoBianco', beforeDraw: (chart) => { const ctx = chart.canvas.getContext('2d'); ctx.save(); ctx.globalCompositeOperation = 'destination-over'; ctx.fillStyle = sfondoImmagine; ctx.fillRect(0, 0, chart.width, chart.height); ctx.restore(); } }; const mostraEtichettePie = { id: 'mostraEtichettePie', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const datapoints = chart.data.datasets[i].data; function Totale(total, datapoint) { return Number(total) + Number(datapoint) } const sommaTotale = datapoints.reduce(Totale); const postSommaTotale = sommaTotale.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const valorePercentuale = (chart.data.datasets[i].data[index] / sommaTotale * 100).toFixed(1); const assoluto = chart.data.datasets[i].data[index]; const postAssoluto = assoluto.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const percentuale = valorePercentuale.toString().replace(".", ",") + '%'; const assolutoWidth = ctx.measureText(postAssoluto).width; const percentualeWidth = ctx.measureText(percentuale).width; if (assolutoWidth >= percentualeWidth) { var maggiore = assolutoWidth; } else {var maggiore = percentualeWidth;} const {x, y} = datapoint.tooltipPosition(); const textWidth = maggiore; if (!(chart.data.datasets[i].data[index] == 0) && (chart.getDataVisibility(index) == true)) { ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 42, textWidth + 10, 37); ctx.beginPath(); ctx.moveTo(x, y); ctx.lineTo(x - 5, y - 5); ctx.lineTo(x + 5, y - 5); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(postAssoluto, x - (textWidth / 2), y - 28); ctx.fillText(percentuale, x - (textWidth / 2), y - 11); ctx.restore(); } }) }) } }; const mostraEtichette = { id: 'mostraEtichette', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const {x, y} = datapoint.tooltipPosition(); // per il testo completo // const text = chart.data.labels[index] + ': ' + chart.data.datasets[i].data[index]; const preText = chart.data.datasets[i].data[index]; const text = preText.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const textWidth = ctx.measureText(text).width; ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 25, textWidth + 10, 20); ctx.beginPath(); ctx.moveTo(x, y); ctx.lineTo(x - 5, y - 5); ctx.lineTo(x + 5, y - 5); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(text, x - (textWidth / 2), y - 14); ctx.restore(); }) }) } }; const mostraEtichetteStacked = { id: 'mostraEtichetteStacked', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const {x, y} = datapoint.tooltipPosition(); // per il testo completo // const text = chart.data.labels[index] + ': ' + chart.data.datasets[i].data[index]; const preText = chart.data.datasets[i].data[index]; const text = preText.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); const textWidth = ctx.measureText(text).width; ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 5, textWidth + 10, 20); ctx.beginPath(); ctx.moveTo(x, y+20); ctx.lineTo(x - 5, y + 15); ctx.lineTo(x + 5, y + 15); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(text, x - (textWidth / 2), y+6); ctx.restore(); }) }) } }; const mostraEtichetteSopra = { id: 'mostraEtichetteSopra', afterDraw(chart, args, options) { const {ctx} = chart; ctx.save(); chart.data.datasets.forEach((dataset, i) => { chart.getDatasetMeta(i).data.forEach((datapoint, index) => { const {x, y} = datapoint.tooltipPosition(); // per il testo completo // const text = chart.data.labels[index] + ': ' + chart.data.datasets[i].data[index]; const preText = chart.data.datasets[i].data[index]; const text = preText.toString().replace(".", ",").replace(/\B(?=(\d{3})+(?!\d))/g, "."); const textWidth = ctx.measureText(text).width; //chart.getDatasetMeta(0).data; //console.log(chart.getDataVisibility(index)); //var sdata = chart.getDatasetMeta(0).data; //console.log(sdata); if (!(chart.data.datasets[i].data[index] == 0) && (chart.getDataVisibility(index) == true)) { ctx.fillStyle = TooltipSfondo; ctx.fillRect(x - ((textWidth + 10) /2), y - 30, textWidth + 10, 20); ctx.beginPath(); ctx.moveTo(x, y - 5); ctx.lineTo(x - 5, y - 10); ctx.lineTo(x + 5, y - 10); ctx.fill(); ctx.restore(); ctx.font = TooltipFont; ctx.fontSize = TooltipFontSize; ctx.fillStyle = TooltipColore; ctx.fillText(text, x - (textWidth / 2), y-19); ctx.restore(); } }) }) } }; const logo = new Image(); logo.src = 'https://www.garr.it/images/logo-garr-grafici.png'; const LogoGARR = { id: 'LogoGARR', beforeDraw(chart, args, options) { const {ctx, chartArea: { top, bottom, left, right} } = chart; const logoWidth = 100; const logoHeight = 34; ctx.save(); if ((logo.complete) && (ctx.canvas.offsetWidth > 640)) { ctx.drawImage(logo, ctx.canvas.offsetWidth - (logoWidth + 10), ctx.canvas.offsetHeight - (logoHeight + 10), logoWidth, logoHeight); } else { logo.onload = () => chart.draw(); }; ctx.restore(); } } /* const WebMeetingsOreData = { tricodemo: 1, labels: ['2017', '2018', '2019', '2020'], datasets: [{ label: 'Ore di presenza in aula virtuale', data: [2464, 3296, 4966, 34381], backgroundColor: ArrayColore[0], borderColor: ArrayColoreBordo[0], borderWidth: BordoSpessore }] }; const optionsWMO = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'WebMeetings: ore di presenza in aula virtuale', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Ore', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = WebMeetingsOreGraficoHD; var a = document.getElementById('WebMeetingsOre_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'webmeetings-ore-di-presenza-GARR.png'; } } } const WebMeetingsOreConfig = { type: 'bar', data: WebMeetingsOreData, options: optionsWMO, plugins: [mostraEtichetteStacked, sfondoBianco, LogoGARR] }; const WebMeetingsOreGrafico = new Chart( document.getElementById('WebMeetingsOre'), WebMeetingsOreConfig ); const WebMeetingsOreGraficoHD = new Chart( document.getElementById('WebMeetingsOreHD'), WebMeetingsOreConfig ); */ const optionsMTA = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Mirror: volume di traffico annuale', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Petabyte: 1PB = 1.000.000 GB', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = MirrorTrafficoAnnualeGraficoHD; var a = document.getElementById('MirrorTrafficoAnnuale_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'mirror-traffico-annuale-GARR.png'; } } } const MirrorTrafficoAnnualeData = { tricodemo: 1, labels: ['2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021'], datasets: [{ label: 'Capacità in Petabyte', data: [8.1, 7.4, 6.9, 6.8, 6.0, 5.8, 6.0, 4.5, 5.7], pointBackgroundColor: ArrayColoreBordo[4], backgroundColor: ArrayColoreSfondo[4], borderColor: ArrayColore[4], borderWidth: 1, borderDash: [4, 4], fill: true, tension: 0.5 }] }; const MirrorTrafficoAnnualeConfig = { type: 'line', data: MirrorTrafficoAnnualeData, options: optionsMTA, plugins: [mostraEtichetteSopra, sfondoBianco, LogoGARR] }; const MirrorTrafficoAnnualeGrafico = new Chart( document.getElementById('MirrorTrafficoAnnuale'), MirrorTrafficoAnnualeConfig ); const MirrorTrafficoAnnualeGraficoHD = new Chart( document.getElementById('MirrorTrafficoAnnualeHD'), MirrorTrafficoAnnualeConfig ); const optionsFLS = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'Filesender: file inviati', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'File inviati', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = FilesenderGraficoHD; var a = document.getElementById('Filesender_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'filesender-file-inviati-GARR.png'; } } } const FilesenderData = { labels: ['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021'], datasets: [{ label: 'File inviati', data: [35000, 59000, 88000, 90407, 100583, 73605, 132904, 138000], pointBackgroundColor: ArrayColoreBordo[5], backgroundColor: ArrayColoreSfondo[5], borderColor: ArrayColore[5], borderWidth: 1, borderDash: [4, 4], fill: true, tension: 0.5 }] }; const FilesenderConfig = { type: 'line', data: FilesenderData, options: optionsFLS, plugins: [sfondoBianco, mostraEtichetteSopra, LogoGARR] }; const FilesenderGrafico = new Chart( document.getElementById('Filesender'), FilesenderConfig ); const FilesenderGraficoHD = new Chart( document.getElementById('FilesenderHD'), FilesenderConfig ); const optionsSPT = { maintainAspectRatio: false, layout: { padding: { right:SpazioDestra } }, plugins: { title: { text: 'GARR Speedtest: misure effettuate', display: TitoloVisualizza, align: TitoloAllinea, padding: TitoloPadding, color: TitoloColore, font: { family: TitoloFont, size: TitoloFontSize, style: TitoloStile, } }, tooltip: { enabled: false }, legend: { display: true, position: 'bottom', labels: { color: LabelColore, font: { family: LabelFont, size: LabelFontSize, style: LabelStile } } } }, scales: { x: { beginAtZero: false, title: { text: 'Anno', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } }, y: { beginAtZero: true, title: { text: 'Misure effettuate', display: AssiVisualizza, align: AssiAllinea, padding: AssiPadding, color: AssiColore, font: { family: AssiFont, size: AssiFontSize, style: AssiStile, } }, ticks: { color: TicksColore, font: { family: TicksFont, size: TicksFontSize, style: TicksStile } } } }, animation: { onComplete: function() { var CanvasTemp = SpeedTestGraficoHD; var a = document.getElementById('SpeedTest_link'); a.href = CanvasTemp.toBase64Image(); a.download = 'misure-effettuate-speedtest-GARR.png'; } } } const SpeedTestData = { labels: ['2019', '2020', '2021'], datasets: [{ label: 'Misure', data: [3650, 28950, 33500], backgroundColor: ArrayColore[0], borderColor: ArrayColoreBordo[0], borderWidth: BordoSpessore },{ label: 'IP unici', data: [830, 11522, 20000], backgroundColor: ArrayColore[1], borderColor: ArrayColoreBordo[1], borderWidth: BordoSpessore }] }; const SpeedTestConfig = { type: 'bar', data: SpeedTestData, options: optionsSPT, plugins: [sfondoBianco, mostraEtichette, LogoGARR] }; const SpeedTestGrafico = new Chart( document.getElementById('SpeedTest'), SpeedTestConfig ); const SpeedTestGraficoHD = new Chart( document.getElementById('SpeedTestHD'), SpeedTestConfig ); $(function(){ $('#selectGrafico').on('change', function () { var url = $(this).val(); if (url) { window.location = url; } return false; }); });

Liberatoria e consenso alla pubblicazione e trasmissione di immagini

15 Maggio 2018 | Chi siamo

Autorizzo

A titolo gratuito e senza limiti di tempo, anche ai sensi degli artt. 10 e 320 cod.civ. e degli artt. 96 e 97 legge 22.4.1941, n. 633 - Legge sul diritto d'autore:

  • la trasmissione e la pubblicazione e/o diffusione in qualsiasi forma di materiale audio, video o fotografico in cui il sottoscritto appaia rappresentato o sia comunque riconoscibile

Il materiale audio-video-fotografico che pregiudichi la dignità o il decoro delle persone interessate non sarà oggetto di trattamento e sarà immediatamente cancellato dagli Archivi del Consortium GARR.

La pubblicazione/diffusione potrà avvenire:

  • sui siti internet del Consortium GARR, Associazione riconosciuta senza scopo di lucro, con sede in via dei Tizii, 6 - 00185 - Roma - Italia;
  • sui canali social del Consortium GARR (Facebook, Youtube, Instagram, Twitter);
  • su carta stampata e/o su qualsiasi altro mezzo di diffusione/pubblicazione anche atipico;

Autorizzo altresì la conservazione del predetto materiale negli archivi informatici dell'associazione e prendo atto che la finalità di tali pubblicazioni sono di carattere informativo e divulgativo. Il materiale video-fotografico non sarà utilizzato per finalità commerciali.

Tale autorizzazione esclude qualsiasi uso a fini di lucro e la cessione a terzi.

In considerazione della circostanza che il predetto materiale, una volta reso pubblico, può essere oggetto di acquisizione e di ripubblicazione da parte di terzi, anche senza il consenso del Consortium GARR o dell’interessato,
Sollevo il Consortium GARR da ogni effetto pregiudizievole che possa derivare da un uso abusivo o scorretto da parte di terzi del predetto materiale audio-foto-video.

Confermo

di non aver nulla a pretendere in ragione di quanto sopra indicato e di rinunciare irrevocabilmente ad ogni diritto, azione o pretesa derivante da quanto sopra autorizzato.

Modulo per il download

  • pdf Liberatoria e consenso alla pubblicazione e trasmissione di immagini(294 KB)

Informativa ai sensi degli artt. 13 e 14 GDPR per il trattamento di dati personali consistenti in registrazioni audio, video e fotografiche

15 Maggio 2018 | Chi siamo

Con il presente documento il GARR desidera informarla che il "Regolamento Europeo 679/2016 relativo alla protezione delle persone fisiche con riguardo al Trattamento dei Dati Personali, nonché alla libera circolazione di tali dati" (da ora in poi "GDPR"), prevede la tutela delle persone rispetto al trattamento dei loro dati personali.

Luogo di trattamento dei dati

Consortium GARR con sede in via dei Tizii, 6 - 00185 - Roma - Italia

Tipologia dati oggetto di trattamento

il Consortium GARR tratterà i suoi dati personali consistenti in registrazioni audio, foto e video recanti la sua immagine e/o la sua voce, così come altri dati da cui si possa desumere la sua identità. I predetti dati possono essere acquisiti e trattati sia in formato cartaceo che digitale.

Titolare del trattamento e contatti

Il Consortium GARR, associazione riconosciuta senza scopo di lucro con sede in via dei Tizii, 6 - 00185 – Roma - Italia, in qualità di "Titolare del trattamento” dei suoi dati personali, ai sensi dell'articolo 13 del GDPR, Le fornisce i seguenti dati di contatto:

Dati di contatto

Titolare del trattamento dei dati personali:

Il Consortium GARR
tel: +39 4962 2000
contatto mail: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

Responsabile protezione dei dati personali:

Dott. Davide Vaghetti
tel: +39 050 2213158
contatto mail: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

Ai sensi dell’art. 79 GDPR l'interessato che ritenga che i diritti di cui gode siano stati violati a seguito del presente trattamento ha diritto a rivolgersi all'Autorita' competente per la protezione dei dati. Ente preposto: Garante per la Protezione dei Dati Personali italiano.

Finalità del trattamento

I dati personali oggetto della presente informativa saranno oggetto di pubblicazione o diffusione a scopo divulgativo, informativo, di ricerca o scientifico, anche previo montaggio di spezzoni o singoli fotogrammi, per le finalità istituzionali proprie del Consortium GARR e segnatamente per la pubblicazione sul sito internet del GARR e dei suoi associati, nonché per le pubblicazioni, senza finalità commerciali, sui canali social del Consortium GARR (Facebook, Youtube, Instagram, Twitter) su carta stampata e/o su qualsiasi altro mezzo di diffusione.

Modalità di trattamento dei dati

I dati personali da Voi forniti, ivi incluso il ritratto contenuto nelle fotografie/video, formeranno oggetto di operazioni di trattamento nel rispetto della vigente normativa e dei principi di correttezza, liceità, trasparenza e riservatezza cui è ispirata l'attività del Consortium GARR. Tali dati verranno trattati sia con strumenti informatici sia su supporti cartacei sia su ogni altro tipo di supporto idoneo, nel rispetto delle misure di sicurezza previste dal GDPR.

Obbligatorietà o meno del consenso

Il conferimento dei Suoi dati è facoltativo se non strettamente correlato al funzionamento dell'attività o al servizio proposto. Il mancato consenso non permetterà l'utilizzo delle immagini e/o delle riprese audiovisive del soggetto interessato per le finalità sopra indicate.

Comunicazione a terzi e pubblicazione-diffusione dei dati

Nei limiti pertinenti alle finalità di trattamento indicate, i dati personali (immagini e riprese audiovisive) potranno essere oggetto di comunicazione, pubblicazione e/o diffusione in qualsiasi forma sui siti internet del Consortium GARR, sui canali social del Consortium GARR (Facebook, Youtube, Instagram, Twitter) su carta stampata e/o su qualsiasi altro mezzo di diffusione.

Dichiarazione di consenso

Io sottoscritto, dichiaro di avere preso visione dell’informativa in materia di Privacy soprariportata e acconsento al trattamento dei miei dati personali di cui autorizzo la diffusione e pubblicazione nei limiti di quanto sopra descritto in conformità al GDPR. Acconsento alla conservazione dei predetti dati per la durata statutariamente prevista dell’Associazione Consortium GARR.

Diritti degli Interessati

In relazione ai predetti trattamenti potranno essere da Lei esercitati i diritti di cui agli artt. da 15 a 22 GDPR, quali:

  • ottenere la conferma circa l'esistenza o meno di dati che La riguardano;
  • conoscere l'origine dei dati, la logica e la finalità su cui si basa il trattamento;
  • ottenere la cancellazione, la trasformazione in forma anonima o il blocco di dati eventualmente trattati in violazione di Legge, l'aggiornamento, la rettifica e l'integrazione dei dati stessi;
  • opporsi, per motivi legittimi, al trattamento dei dati stessi nei limiti ed alle condizioni previste.

Per l’esercizio dei propri diritti l’interessato può rivolgere la propria istanza al Consortium GARR, Via dei Tizii, 6, 00185 – Roma: telefonando al numero +39 0649622000, mandando un fax al numero +39 0649622044 o inviando una mail all'indirizzo Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.. Ulteriori informazioni in ordine al trattamento ed alla comunicazione di dati previsti direttamente o altrimenti acquisiti potranno essere richieste al Responsabile per la Protezione dei dati personali presso la sede del Consortium GARR all’indirizzo e-mail: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo..
La sottoscrizione della presente comunicazione deve intendersi quale consenso espresso al trattamento dei Suoi dati personali.
Ulteriori informazioni circa il trattamento dei dati potranno essere comunicate anche verbalmente.

Modulo per il download

  • pdf Informativa ai sensi degli artt. 13 e 14 GDPR per il trattamento di dati personali consistenti in registrazioni audio, video e fotografiche(181 KB)

Lista dei servizi di connettività

16 Marzo 2018 | Chi siamo

La Rete GARR ed i suoi servizi sono dedicati alla Comunità della Ricerca e dell'Istruzione Italiana. Attualmente, circa 1200 siti, tra centri di ricerca e documentazione, università, osservatori, laboratori, biblioteche, musei ed altre infrastrutture, per un totale di oltre 4.000.000 di utenti finali, sono collegati alla Rete GARR. È grazie alla collaborazione degli APM (Access Port Manager) di tutti i siti collegati alla rete, che è possibile rendere disponibili agli utilizzatori che operano nelle diverse istituzioni di appartenenza i servizi erogati dal GARR.

Questa vasta comunità è destinata ad allargarsi ancora, grazie alla interconnessione di nuove strutture appartenenti al mondo della Ricerca, dell'Istruzione e della Cultura, Scuole, Accademie d'Arte e Musei.

Di seguito la lista delle strutture connesse alla Rete GARR.

Elenco delle sedi collegate classificate per tipo di Ente
Selezionando una categoria sarà possibile visualizzare l'elenco delle singole sedi.
  • Tutte le organizzazioni
  • Università statali
  • Università non statali
  • AFAM - Istituti Alta Formazione Artistica Musicale
  • ASI - Agenzia Spaziale Italiana
  • CNR - Consiglio Nazionale delle Ricerche
  • ENEA - Agenzia nazionale per le nuove tecnologie, l'energia e lo sviluppo economico sostenibile
  • INAF - Istituto Nazionale di Astrofisica
  • INFN - Istituto Nazionale di Fisica Nucleare
  • INGV - Istituto Nazionale di Geofisica e Vulcanologia
  • Enti di ricerca afferenti al MUR
  • Istituti di ricerca medica, sanitaria e ospedali
  • Altri enti di ricerca e formazione
  • Enti di ricerca internazionali
  • Archivi, biblioteche, musei
  • Consorzi interuniversitari
  • MIUR uffici centrali
  • Scuole
/** * DataTables initialization and region filter functionality */ $(document).ready(function() { let dataTable; // Initialize DataTables if table exists if ($('#sitesTable').length) { dataTable = $('#sitesTable').DataTable({ "language": { "search": "Ricerca:", "lengthMenu": "Mostra _MENU_ elementi per pagina", "info": "Visualizzazione da _START_ a _END_ di _TOTAL_ elementi", "infoEmpty": "Visualizzazione da 0 a 0 di 0 elementi", "infoFiltered": "(filtrati da _MAX_ elementi totali)", "paginate": { "first": "Primo", "last": "Ultimo", "next": "Successivo", "previous": "Precedente" }, "emptyTable": "Nessun dato disponibile nella tabella", "zeroRecords": "Nessun elemento corrispondente trovato" }, "pageLength": 25, "lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "Tutti"]], "order": [[1, 'asc']], // Order by "Sede" column "columnDefs": [ { "orderable": false, "targets": 3 } // Disable sorting for statistics column ], "drawCallback": function() { // Update counter when table is redrawn (search, pagination, etc.) updateVisibleCounter(); } }); // Update initial counter updateVisibleCounter(); } // Region filter functionality $('select[name=regione]').change(function() { const selectedRegion = $(this).find('option:selected').text(); if (dataTable) { if (selectedRegion === 'TUTTE') { // Clear region filter dataTable.column(1).search('').draw(); } else { // Apply region filter using DataTables search on a hidden column // We'll filter by checking the data-region attribute $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { if (settings.nTable.id !== 'sitesTable') { return true; } const rowRegion = $(settings.aoData[dataIndex].nTr).attr('data-region'); return selectedRegion === 'TUTTE' || rowRegion === selectedRegion; }); dataTable.draw(); // Remove the custom filter after use $.fn.dataTable.ext.search.pop(); } } else { // Fallback for tables without DataTables const tableRows = $('table.lista-servizi-connettivita tbody tr'); tableRows.hide(); let connectedSitesCount = 0; if (selectedRegion === 'TUTTE') { tableRows.each(function() { connectedSitesCount++; $(this).show(); }); } else { tableRows.each(function() { if ($(this).attr('data-region') === selectedRegion) { connectedSitesCount++; $(this).show(); } }); } $('#NumeroSediCollegate').text(connectedSitesCount); } }); /** * Update the visible counter based on currently displayed rows */ function updateVisibleCounter() { if (dataTable) { const info = dataTable.page.info(); $('#NumeroSediCollegate').text(info.recordsDisplay); } } // Handle region filter with DataTables $('select[name=regione]').change(function() { const selectedRegion = $(this).find('option:selected').text(); if (dataTable) { // Clear existing search $.fn.dataTable.ext.search = []; if (selectedRegion !== 'TUTTE') { // Add custom search function for region filtering $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { if (settings.nTable.id !== 'sitesTable') { return true; } const rowRegion = $(settings.aoData[dataIndex].nTr).attr('data-region'); return rowRegion === selectedRegion; }); } dataTable.draw(); } }); });

Sicurezza informatica

27 Luglio 2017 | Chi siamo

Sicurezza informatica

Nell’ambito della comunità dell’istruzione e della ricerca è forte l’attenzione alla sicurezza, intesa sia a livello di protezione dei dati degli utenti, sia di prevenzione e gestione di attacchi volti a minare la fruibilità dei servizi offerti in rete dalla comunità o perpetrare danni a terzi. Nel corso degli anni sono cambiati molto i sistemi di attacco, le minacce, e perfino gli scopi per cui vengono compiuti attacchi di sicurezza, ed è stata quindi fondamentale una costante attività di ricerca nel campo delle nuove minacce informatiche, realizzata dapprima mediante installazioni di sistemi di HoneyPot e successivamente mediante sistemi di monitoraggio di anomalie e ricerca di specifici pattern di attacco.

Nell'ambito delle modalità di attacco, la ricerca si è dapprima concentrata sulla creazione di liste valide e affidabili di server BotNet e "bad hosts", per poi indirizzarsi verso sistemi di tipo euristico per il rilevamento di malware, virus e server compromessi, in collaborazione con altri enti e organizzazioni nazionali che internazionali, in seguito all’aumento esponenziale delle tipologie di attacco. Poiché non esistono confini nella diffusione di minacce informatiche è stato fondamentale dirigere la ricerca anche verso lo studio di procedure, protocolli, accordi per la notifica e la gestione tempestiva di incidenti in ambito multidominio. Nello stesso tempo, si sono studiati sistemi automatizzati per massimizzare l’efficienza e la velocità di reazione in questo campo. Nell'ambito delle vulnerabilità dei sistemi, la ricerca si è indirizzata verso studio di meccanismi di penetration testing e stressing machine, mentre per fronteggiare i nuovi tipi di attacco a livello applicativo sono allo studio sistemi di protezione mediante firewall di livello 7. Altri temi di ricerca che hanno recentemente assunto una grandissima rilevanza con l’affermazione di nuove tipologie di dispositivi informatici e di nuovi scenari di utilizzo (Internet of Things, Bring Your Own Device), riguardano le nuove tipologie di vulnerabilità e nuovi tipi di servizio come ad esempio i DoS (denial of Service) e i DDoS (Distributed DoS) e le relative strategie di risposta a queste minacce.

Approfondimenti

  • La security policy della comunità GARR - presentazione di C. Allocchio
  • News dal GARR CERT - presentazione di R. Cecchini e S. Venuti al workshop GARR
  • GdL cybersecurity: Contrasto ai DDoS - presentazione di N. Ciurleo al workshop GARR 2017
  • GdL cybersecurity: Network auditing (intrusion detection) - presentazione di E. Ripepi (CNR) al workshop GARR 2017
  • GdL cybersecurity: Best practices per la sicurezza - presentazione di M. Pirovano, Università Bocconi al Workshop GARR 2017

Networking e tecnologie

24 Luglio 2017 | Chi siamo

Evoluzione della rete

La rete GARR è sempre all’avanguardia per permettere alla comunità scientifica ed accademica di competere e collaborare a livello globale. Questo significa non solo costanti e rapidi aggiornamenti delle capacità per adeguarsi ai bisogni degli utenti, ma anche il passaggio a nuove tecnologie e modelli, quando quelli esistenti sono stati spinti al loro massimo sviluppo E’ proprio quello che è accaduto nelle principali fasi evolutive della rete per la ricerca e per l’istruzione in Italia. Oggi ci troviamo in uno di questi momenti di svolta e una task force (Progetto ELISA )è al lavoro per studiare l'impatto che le nuove tecnologie avranno sull'offerta di servizi e sulla architettura generale dell’infrastruttura GARR e su quelle degli enti collegati. L’obiettivo è di coinvolgere l’intera comunità accademica e della ricerca per un percorso condiviso che porti alla progettazione della prossima generazione di rete.

Approfondimenti

  • pdf Dalla fibra alle “self driving network”: cosa ci riserva il futuro della rete - articolo da Agenda Digitale(1.35 MB)
  • pdf White Paper: Considering the next generation of GARR Network(1.78 MB)
  • pdf A software soul for tomorrow’s network - articolo da CONNECT magazine(394 KB)
  • pdf Disaggregata e "a container": la rete del futuro sarà così - articolo da Agenda Digitale(69 KB)

Future Internet e SDN

La ricerca GARR sull’Internet del futuro è focalizzata attorno ai progetti per la realizzazione ed evoluzione della dorsale di rete europea GÉANT per l’interconnessione delle reti nazionali della ricerca e l’istruzione, cofinanziati dalla Commissione Europea (da GN1, completato nell’ambito del 5° PQ per la ricerca e lo sviluppo scientifico e tecnologico a GN4 fase 2 attualmente in corso), FEDERICA (Federated E-infrastructure Dedicated to European Researchers Innovating in Computing network Architectures) e NOVI. Nel progetto FEDERICA, coordinato da GARR, è stata progettata e realizzata una tra le prime infrastrutture virtualizzate al mondo interamente dedicata alle attività sperimentali su architetture e nuovi protocolli Internet. Questo ha permesso di sperimentare protocolli e servizi di rete innovativi in un ambiente reale, ma totalmente separato da quello di produzione, in modo da evitare ripercussioni sul funzionamento e le performance di quest’ultimo. Oltre alle attività di ricerca portate avanti in prima persona da GARR e dalle altre organizzazioni europee coinvolte nel progetto, è stato anche possibile offrire porzioni (“slice”) dell’infrastruttura virtuale ad altri gruppi di ricerca per i loro esperimenti. L’esperienza e i risultati di questo progetto sono poi confluiti nel progetto NOVI, per quanto riguarda in particolare gli aspetti cloud e nel progetto GÉANT per quanto riguarda gli aspetti di rete.

Per quanto riguarda invece lo sviluppo di SDN (Software Defined Networking), GARR ha partecipato, nell’ambito del progetto DREAMER, allo studio e sperimentazione di architetture per la sua implementazione di in ambienti di produzione, con un approccio basato su una soluzione “ibrida” IP/SDN. Il controllo SDN opera in parallelo al routing IP tradizionale che viene mantenuto per la connettività di base tra i nodi. SDN è usato per controllare i servizi aggiuntivi, quali le reti private virtuali. Questo approccio ibrido è risultato il più adatto all’evoluzione di una rete di un operatore. La dimostrazione dell’efficacia di nuovo modello di gestione basato sul paradigma SDNe realizzato con software aperto ha avuto luogo nel corso della conferenza Open Networking Summit e ha coinvolto un team internazionale di ricercatori provenienti da ON.Lab, CreateNET, CNIT/Università di Roma Tor Vergata, dal progetto GÉANT e dalla rete della ricerca italiana GARR

Approfondimenti e pubblicazioni

  • FEDERICA: documenti tecnici e pubblicazioni
  • DREAMER: pubblicazioni scientifiche, video e presentazioni
  • NOVI: pubblicazioni
  • NOVI: documenti tecnici

Reti ottiche - Lambda aliene

GARR ha sperimentato con successo la tecnica delle “Lambda aliene”, che consente il trasporto dei segnali luminosi su un’infrastruttura trasmissiva diversa da quella che li ha generati e li riceve. La sperimentazione ha permesso di valutare delle soluzioni efficienti di integrazione di piattaforme trasmissive eterogenee. L’obiettivo è poter erogare servizi trasmissivi di nuova generazione utilizzando le infrastrutture di trasporto e rigenerazione del segnale ottico preesistenti, rendendo così possibile l’evoluzione dell’infrastruttura di rete ottica attraverso interventi mirati ed in grado di garantire la stabilità del servizio. Un altro vantaggio di questo approccio è quello di poter diminuire la dipendenza di chi gestisce la rete da una specifica scelta tecnologica o produttore di tecnologia (vendor lock-in).

Per la sperimentazione è stata dapprima utilizzata una porzione di rete di 345 km, scarica dal traffico di produzione, e in un secondo momento un percorso in esercizio di lunghezza pari a circa 1.200 km. Questa attività è stata svolta con risorse GARR ed i risultati hanno avuto ricadute immediate sul progetto di evoluzione a breve termine della rete nazionale. L’approccio utilizzato e i risultati conseguiti hanno comunque suscitato interesse anche a livello internazionale e vi sono quindi progetti per una estensione delle sperimentazioni a livello europeo, in collaborazione con altre reti nazionali della ricerca.

Approfondimenti

  • La sperimentazione: "Alieni: nostri alleati sulla rete ottica"
  • pdf Sperimentazione di lambda aliene sulla rete GARR-X: presentazione al workshop GARR 2016(2.01 MB)
  • pdf Field test on Alien Waves in GARR DWDM Network: presentazione a TNC2016(1.98 MB)
  • ​Aliens: our allies on the o​ptical network: articolo su CONNECT magazine
torna su