"I veri traguardi non sono scritti su cartelli,
sono semplicemente i luoghi dove ci porta il nostro coraggio."
Denny Biasiolli

Blog

Tag: webmaster

Hosting OVH    

  • 17 Ott 2014
Da questo istante l'hosting del sito è cambiato, passando da Infinytech, che ha lavorato egregiamente per 5 anni, a OVH.
Sono rimasto piacevolmente colpito perché dall'acquisto all'attivazione dei servizi sono passati pochi secondi. Tempo di creare il database MySQL e fare l'upload dei vecchi file ed era tutto pronto e funzionante.
Grazie ancora ad Infinytech per l'egregio lavoro fatto finora, adesso è tempo di nuove sperimentazioni con OVH.
Link:
OVH
Infinytech
Categorie: InformaticaTag: hostingInfinytechOVHwebwebmaster

Aggiunti post di Google Plus sul mio sito    

  • 22 Set 2011
Dopo gli ultimi ritocchi grafici ho deciso di implementare una nuova pagina sul mio sito, sfruttando le Google Plus API rilasciate in questi giorni. Su questa pagina potrete leggere gli ultimi miei post pubblici inseriti sul social network di Google, comprensivi di un link diretto al post, il numero di risposte, commenti e condivisioni del post stesso.

Per ricevere i dati ho usato la pratica funzione cUrl di php, in questo modo:
$ch = curl_init();
$urlGet = "https://www.googleapis.com/plus/v1/people/108768066312606594072/activities/public?alt=json&maxResults=20&pp=1&key=YOUR-API-KEY";
curl_setopt($ch, CURLOPT_URL, $urlGet);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$json = json_decode($output);

Poi ho elaborato il json per visualizzare i dati nel formato che preferivo, utilizzando le seguenti formule di selezione per dividere i titoli dai contenuti.
foreach($json->items as $p)
{
$titolo="";
$contenuto="";
$urlContenuto="";
$urlImmagine="";
$urlImmagineFull="";
$replies=0;
$plusoners=0;
$resharers=0;
switch($p->verb)
{
case 'post':
$titolo = $p->title;
if(!$titolo && $p->object->attachments)
$titolo = $p->object->attachments[0]->displayName;
$contenuto = $p->content;
if((!$contenuto || $contenuto==$titolo) && isset($p->object->attachments)){
$contenuto = $p->object->attachments[0]->displayName;
if(!$contenuto || $titolo==$contenuto){
if($titolo==$contenuto)
$contenuto = $p->object->attachments[0]->content;
else
$contenuto .= ($contenuto ? '<br>' : '').$p->object->attachments[0]->content;
}
else
$contenuto .= ($contenuto ? '<br>' : '').$p->object->content;
}
else
$contenuto .= ($contenuto ? '<br>' : '').$p->object->content;
if((!$contenuto || $contenuto==$titolo) && isset($p->object))
$contenuto = $p->object->content;
$scriviPost=1;
break;
case 'share':
$titolo = $p->object->attachments[0]->displayName;
if(!$titolo)
$titolo = $p->title;
$contenuto = $p->annotation;
if(!$contenuto || strlen($p->object->content)>strlen($contenuto))
$contenuto = $p->object->content;
if(!$contenuto || strlen($p->object->attachments[0]->content)>strlen($contenuto))
$contenuto = $p->object->attachments[0]->content;
$scriviPost=1;
break;
default:
$scriviPost=0;
break;
}
$urlContenuto = $p->object->attachments[0]->url;
if(isset($p->object->attachments[0]->image)){
$urlImmagine = $p->object->attachments[0]->image->url;
$urlImmagineFull = $p->object->attachments[0]->fullImage->url;
}
$replies=$p->object->replies->totalItems;
$plusoners=$p->object->plusoners->totalItems;
$resharers=$p->object->resharers->totalItems;
$dataOra = strtotime($p->published);
if($scriviPost)
{
//write post to page
}
}

Per maggiori informazioni non esitate a contattarmi, sarò felice di condividere con voi ciò che ho imparato.
Categorie: InformaticaTag: curlgooglegoogle+jsonphpwebmaster

Benvenuto HTML5    

  • 06 Giu 2011
Come potete notare ho convertito il mio sito in HTML5 (resta ancora qualche piccolo problema con il pulsate +1 di Google), ulteriori miglioramenti sono in arrivo, per ora godetevi la nuova grafica e i nuovi effetti..buonanotte!
Categorie: InformaticaTag: graficahtml5w3cwebmaster

Suddivisione delle news in pagine    

  • 20 Ott 2010
Di recente ho aggiunto la suddivisione delle news in pagine in modo da velocizzarne sensibilmente il caricamento, come potete vedere nell'immagine sottostante.
google webmaster tools


Vi voglio rendere partecipi di questa creazione, ecco il codice:

Per iniziare ho creato la funzione che calcola il totale delle pagine in base al numero di record e alle news per pagina.
function calcolaTotPagine($totaleRecord, $totaleNewsPerPagina)
{
$resto = $totaleRecord % $totaleNewsPerPagina;
return(intval($totaleRecord / $totaleNewsPerPagina) + ($resto>0 ? 1 : 0));
}

Dopo ho creato la funzione che mostra il numero delle pagine.
function mostraPagine($totRecord, $pagina, $newsPerPagina)
{
$totPagine = calcolaTotPagine($totRecord, $newsPerPagina);
$inizioCont=$pagina-2;//($inizioCont<1 ? $inizioCont=1 : null);
$fineCont=$pagina+2;//($fineCont>$totPagine ? $fineCont=$totPagine : null);
echo '<div class="elencoPagine">';
if($pagina!=1)
{
echo '<span class="elencoPagineNum floatSinistra"><a href="./?sezione=news&pag='.($pagina-1).'">&lt; '.traduci('Prec.').'</a></span>';
echo '<span class="elencoPagineNum"><a href="./?sezione=news&pag=1">&lt;&lt; '.traduci('Prima pagina').'</a></span>';
}
for($i=$inizioCont; $i<=$fineCont; $i++)
{
echo '<span class="elencoPagineNum">';
if($i>=1 && $i<=$totPagine)
{
if($i!=$pagina)
echo '<a href="./?sezione=news&pag='.$i.'">';
echo $i;
if($i!=$pagina)
echo '</a>';
}
echo '</span>';
}
if($pagina!=$totPagine)
{
echo '<span class="elencoPagineNum"><a href="./?sezione=news&pag='.$totPagine.'">'.traduci('Ultima pagina').' &gt;&gt;</a></span>';
echo '<span class="elencoPagineNum floatDestra"><a href="./?sezione=news&pag='.($pagina+1).'">'.traduci('Succ.').' &gt;</a></span>';
}
echo '</div>';
}

A questo punto basta richiamare la funzione mostraPagine() per visualizzare il numero di pagine.
mostraPagine($result->num_rows, $pagAttuale, $totNewsPerPagina);

Ovviamente sarà sufficiente creare un foglio di stile adatto per formattare la visualizzazione delle pagine ed il gioco è fatto!
Categorie: InformaticaTag: googlepaginestatistichetempowebmaster

Restyling della grafica del sito    

  • 07 Ott 2010
Firefox beta 8 pre
Sto facendo qualche esperimento grafico sul sito, ho l'impressione che tra qualche settimana mi nutrirò con pane e CSS! :P
Categorie: InformaticaTag: cssgraficawebmaster

Contatti


Generic placeholder image

Multimedia

Instagram | YouTube | Google

Generic placeholder image

Sport

Garmin | Strava

Generic placeholder image

My Work

GitHub | npm
Software developer @ Maieutical Labs

Generic placeholder image

Location

Savigliano (CN)
ITALY

Curriculum


Sviluppatore software presso Maieutical Labs s.r.l. - Torino

Attività

Contributor/maintainer di progetti opensource su GitHub

Nel tempo libero mi occupo di contribuire a progetti opensource su GitHub. Su alcuni progetti sono maintainer o contributor.
Trovate alcuni miei lavori su GitHub (link), altri lavori sono su Bitbucket e GitLab su repository privati. Highlights:
- angularjs-pdf (maintainer)
- react-alert (collaborator)
- react-boilerplate (contributor)
- ionic-v1 and ionic2 (contributor)
- Chart.js (contributor)

Breve talk su “Electron Framework”, Torino Coding Society, Torino

28 Febbraio 2017
Breve talk su Electron, un framework JavaScript usato per creare applicazioni desktop cross-platform.
- Link: torinocodingsociety.it/events/torino-coding-society-28feb17
- Slide: https://goo.gl/j3maof
- Video: https://youtu.be/TfXetxQEKL8

Coach agli eventi DjangoGirls in Italia

Torino, 2 Luglio 2016  |  Milano, 26 Novembre 2016  |  Napoli, 18 Febbraio 2017
Django Girls è un’organizzazione no-profit e una community che incoraggia e aiuta le donne a organizzare workshops gratuiti di una giornata fornendo strumenti, risorse e supporto.
Durante ognuno di questi eventi, 30-60 donne creano la loro prima applicazione web utilizzando HTML, CSS, Python e Django.
Links: Torino, Milano, Napoli

Hobby

Ho un hobby particolarmente impegnativo: il triathlon. Le lunghe e solitarie sessioni di allenamento mi aiutano a svuotare la mente da ogni pensiero superfluo per focalizzarmi su ciò che è veramente importante.

"Da qualche parte lungo la strada abbiamo confuso la comodità con la felicità." (Dean Karnazes)

Lingue straniere

Ho una buona conoscenza dell'inglese, soprattutto in ambito informatico; non ho difficoltà a leggere documentazioni tecniche. L'inglese colloquiale lo conosco in maniera sufficiente, purtroppo manca un po' di pratica per poterlo parlare fluentemente.
La mia conoscenza del francese risale ai tempi delle medie, da quel momento non ho più fatto pratica se non per due settimane nel lontano 2007 in una trasferta di lavoro in Algeria, dove ho dovuto interagire con la regia della televisione pubblica algerina durante una manifestazione sportiva in cui mi occupavo della grafica da mandare, appunto, alla TV.

Carattere / Lavoro in team

Ho seguito alcuni progetti da solo, ma per la maggior parte del tempo ho sempre lavorato in team composti da almeno tre sviluppatori senza particolari difficoltà. Trovo estremamente positivo condividere le idee sulla soluzione ai problemi di sviluppo e costruire qualcosa di grande partendo dai piccoli progetti di ognuno.

Credo di avere un carattere socievole, maturato nei molti anni passati facendo il cameriere. Mi rapporto con i clienti con facilità per capirne le esigenze e le difficoltà nell'utilizzo del software, per poter successivamente sviluppare soluzioni che risolvono le loro problematiche.

Esperienze lavorative



da Febbraio 2016

Web developer presso Maieutical Labs s.r.l. - Torino

Sviluppo di applicazioni web utilizzando:
- Backend: Python, Django, DjangoRestFramework
- Frontend: JavaScript, Angular.js, React, Ionic, Electron, ecc..
- Database: PostgreSQL, PouchDB
- Strumenti di sviluppo: Atom, VSCode
- Workflow: Git, Bitbucket, GitLab, Trello


Aprile 2012 - Febbraio 2016

Sviluppatore software presso Informatica EDP s.r.l. - Fossano (CN)

Sviluppo di software gestionali desktop:
- Linguaggi: C#, VB.NET
- Database: Microsoft SQL Server, MSAccess, Excel, CSV, SQLite
- Strumenti di sviluppo: Microsoft Visual Studio 2013/2015, Crystal Reports 13, DevExpress, XtraReports
- Workflow: SVN, Mantis
Mi sono occupato anche di interfacciamenti con software di terze parti tramite tracciati su file CSV, file di Excel, View e Stored procedure in SQL
Attività:
- Sviluppo di software in .NET per la gestione dei rifiuti di aziende che li producono, li trasportano e/o li recuperano/smaltiscono.
- Creazione di moduli da integrare al software principale per gestire preventivi, contratti, DDT, fatture, ecc..
- Creazione di stampe in Crystal Report 13 e DevExpress
- Assistenza a clienti e formazione all'utilizzo del software, tramite telefono, Skype o in trasferta presso il cliente


Gennaio 2008 - Aprile 2012

Sviluppatore software presso la Edisoft s.r.l. - Saluzzo (CN)

Sviluppo di software gestionali desktop:
- Linguaggi: VB.NET, VB6, PHP
- Database: Access, MySQL, Microsoft SQL Server
- Strumenti di sviluppo: SharpDevelop, VB6, Cystal Report XI
- Workflow: SVN, Mantis
Attività:
- creazione di un software client-server che comunica tramite il .NET Remoting e gestisce code di priorità concorrenti per l'accesso ai dati.
- creazione di programmi gestionali in Visual Basic 6 o su piattaforma .NET, che lavorano su database come Access, MySQL, Microsoft SQL Server 2000, 2005 e 2008.
- creazione di stampe in Crystal Report XI
- creazione di una piattaforma in php/mysql basata su Joomla per la gestione dei contatti e dello storico delle chiamate ai clienti


Aprile 2007 - Gennaio 2008

Sviluppatore software presso la Microplus Informatica s.r.l. - Marene (CN)

- Linguaggi: C++, C#
- Strumenti di sviluppo: Borland C++, SharpDevelop
- Workflow: SourceSafe
Sviluppatore C++, frequenti trasferte in tutto il mondo, assistenza nel cronometraggio e nella gestione di manifestazioni sportive, per le quali si sviluppavano programmi appositi che gestivano l'elaborazione dei dati e la loro conseguente visualizzazione su tabelloni e reti televisive tra cui la RAI.
Tra le varie attività svolte ci sono:
- Giro d'Italia 2007
- Campionati Africani di atletica e nuoto ad Algeri (Luglio 2007)
- Manifestazioni sportive in tutta Italia, organizzate dalla Federazione Italiana Nuoto e dalla Federazione Italiana di Atletica Leggera


Settembre 2005 - Marzo 2007

Sistemista presso la NetSolution Informatica - Fossano (CN)


Luglio-Agosto 2005

Sistemista presso Alpi Informatica - Savigliano (CN)
Pizzaiolo presso il ristorante Peter Pan - Savigliano (CN)

Pizzaiolo al ristorante Peter Pan, al mattino effettuavo assemblaggi di computer e assistenza tecnica presso il negozio "Alpi Informatica" a Savigliano


2000-2005

Diplomato come Perito Tecnico Industriale Informatico il 2 luglio 2005 presso l'IIS G. Vallauri di Fossano (CN) con la votazione di 85/100


2003-2005

Ottenuto il certificato Cisco C.C.N.A. - "Cisco Certified Network Associate" il 30 maggio 2005


Estate 2004

Stage lavorativi presso la Microplus Informatica s.r.l. - Marene (CN)

- Riccione: addetto stampa risultati ufficiali della manifestazione "FINA World Masters Swimming Championships" - Campionati Mondiali Master di Nuoto
- Roma: addetto stampa risultati ufficiali della manifestazione internazionale "RomAquatica - Trofeo Sette Colli"
- creazione di un programma in Visual Basic 6 per gestire le iscrizioni ad una palestra per bambini
- Viareggio: addetto stampa risultati ufficiali della manifestazione "RESCUE 2004 - Life Saving World Championships"


dal 1999

Ho iniziato ad interessarmi al mondo informatico in generale, finanziando questo mio hobby con il lavoro da cameriere in diversi ristoranti della provincia