In NetResults puntiamo a grandi risultati e lo possiamo fare solo migliorando insieme. Ogni mese condividiamo saperi e conoscenze, perché le idee del nostro gruppo sono importanti. Lo spunto per i vari appuntamenti dei Nerd talks può venire direttamente dalle proposte di ognuno dei componenti dello staff dell’R&D oppure essere il risultato di un sondaggio all’interno del nostro tech-team su possibili argomenti di interesse.

Testing with Qt/QtCreator- Part.2 - Francesco Lamonica

Francesco Lamonica prosegue la discussione sul tema del testing del codice C++ (e non solo). Dopo una veloce rinfrescata dei concetti visti la volta scorsa si scende nei dettagli andando a vedere un caso concreto, quello della scrittura degli unit test della nostra libreria  di logging: uniqlogger [https://github.com/NetResultsIT/UniqLogger]
In particolare Francesco ha evidenziato alcuni problemi concreti emersi in fase di scrittura dei test e come questi sono stati risolti, per mostrare nel concreto alcune delle tecniche piu' comuni che possono essere utilizzate nella scrittura di unitest di sistemi object oriented
 
 

 

 

 

 

 

 

 

Testing with Qt/QtCreator- Francesco Lamonica

Francesco Lamonica utilizza le sue eccellenti doti di sintesi per far comprimere nei trenta minuti del NeRd Talks di oggi un argomento che a dire vasto è usare un "velato" eufemismo. Si parte vedendo come creare un progetto di unit testing tramite l'interfaccia di QtCreator, per poi passare alla scrittura degli unit test e le principali linee guida e best practice che gli sviluppatori dovrebbero seguire nello sviluppo di unit test efficaci. Una seconda puntata sul tema sarà obbligatoria!
 
 

 

 

 

 

 

 

 

sysstat - System performance tools for Linux- Stefano Lucetti

Stefano Lucetti racconta la suite di tool sysstat che puo' essere usata per monitorare qualsiasi distribuzione GNU/Linux. Dopo una introduzione generale la discussione si concentra sul monitoraggio delle caratteristiche di I/O dei dischi, e su come siano state utilizzate per il monitoraggio dei prodotti della linea KalliopePBX

 

 

 

 

 

 

 

Introduzione a VMware  - Marco Cimino

Marco Cimino introduce il sistema di virtualizzazione VMware e nello specifico come sia stato implementato nel nostro datacenter per fornire cluster di risorse per la creazione di macchine virtuali da usarsi in contetsi di produzione, testing e development
La chiacchierata iniziale è stata seguita da una breve sessione live in cui ha mostrato l'interfaccia del vSphere e le principali funzioni di gestione delle VM 

 

 

 

 

 

 

 

 

KCTI Mobile Architecture (part 1) - Francesco Lamonica

Francesco Lamonica inizia parlando dell'architettura del KCTI Mobile evidenziando gli aspetti al comune tra implementazione Android ed iOS e le differenze rispetto la versione desktop.
Si scende quindi nel dettaglio dell'integrazione tra la nostra libreria C++/Qt, il VDK (Voice Development Kit), con l'applicazione mobile android mostrando come abbiamo ovviato alla mancanza di signal e slot Qt in Java, e raccontando infine cosa sia JNI e come funzioni per fare da collettore tra il mondo C++ e quello Java tipico della app native Android

 

 

Scarica la presentazione

 

 

 

 

 

Security in web development - Roberto Santini

Roberto Santini ci parla del tema della sicurezza dello sviluppo di applicazioni web introducendo OWASP ed andando nel dettaglio delll'OWASP Top 10 Project
Infine ci mostrerà come SonarQube possa supportarci in questa attività generando report specifici utili a tracciare e risolvere tali vulnerabilità, ove presenti nel nostro codice sorgente

 

Scarica la presentazione

 

 

 

 

 

oom-killer and the Linux Memory - Giuseppe Sucameli

Giuseppe Sucameli ci parla di come funziona la memoria virtuale su un moderno computer con architetura X86 e l'impatto del mapping della memoria su server sistemi a 32b e 64b.
Concetti fondamentali per capire come e quando il meccanismo dell'oom (Out-Of-Memory) killer del kernel di Linux puo' entrare in funzione creando non pochi problemi sui sistemi di produzione

 

Scarica la presentazione

 

 

 

 

 

The Return of the Building Blocks - Sergio Borghese

Torna la serie dei building blocks! Sergio Borghese ci parla di tre Building Block della libreria di utility di NetResults. Nello specifico vedremo le classi:
- CachedVar
- TimeCachedVar
- ProcessSingleton
illustrandone i principali elementi di design e casi d'uso

 

Scarica la presentazione

 

 

 

 

 

Qt5 Plugins - Stefano Aru

Stefano Aru, che è stato il primo speaker dell'evento, festeggia con il tech team di NetResults il primo anno di NeRd Talks parlando di plug-in nel software. Dopo una introduzione generale sul tema si entra nel dettaglio di come tali meccaniche software siano implementate all'interno del framework Qt5, quali sono i vantaggio e gli svantaggi del loro uso. Completa la presentazione uno use case reale in cui Stefano mostra come il team ATENA ha scomposto il codice del BOT che era originariamento monolitico.

 

Scarica la presentazione

 

 

 

 

 

Codeception: Performance agnostic test - Tommaso Capiferri

Tommaso Capiferri esordisce come speaker al NerdTalk raccontandoci le problematiche del testing end-to-end di interfacce web. Nello specifico evidenzia i problemi legati alle performance dei server che eseguono i test e come questo possa influenzare l'esecuzione dei test stessi, producendo dei falsi negativi. Una volta delineato il problema Tommaso ha spiegato come, nel caso del framework Codeception, il problema sia stato affrontato e risolto sviluppando delle classi di helper che aiutano nella creazione di opportuni sync-point.

 

Scarica la presentazione

 

 

 

GIT rebase -interactive- Giuseppe Sucameli

Giuseppe Sucameli riprende le tematiche trattate nel vol.5 dei NeRd Talks riguardo GIT e la funzione di rebase.
In questo opprofondimento ci illustra il funzionamento del rebase interattivo spiegandone l'utilità e mostrando il suo funzionamento con una utile e chiara demo live.
 

Scarica la presentazione

 
 
 

 

 

 

 

TeamCity & Artifactory - Francesco Lamonica

Francesco Lamonica introduce i nuovi tool di CI (Continuous Integration) TeamCity ed Artifactory che andranno a sostituire l'attuale strumento in uso, cioè Buildbot.

Veloce panoramica sul setup di un build automatico e principali funzionalità, seguita da una demo live.

 

 

 

RabbitMQ - Andrea Tamburrino

Andrea Tamburrino racconta cosa sono i broker di messaggi e dopo una introduzione ai concetti piu' generali entra nel dettaglio di RabbitMQ e di come è stato introdotto all'interno della soluzione KalliopePBX, per la gestione di alcuni dei flussi informativi tra i moduli della centrale telefonica di NetResults.

 

Scarica la presentazione

 

Nerditudini varie - Sergio Borghese

Nel primo Nerd Talks svoltosi interamente in remoto a causa del COVID19, Sergio Borghese mantiene il tema "light" parlando di strumenti di lavoro da Nerd, che tuttavia possono rilevarsi in alcuni casi dei productivity boooster se abbracciati ed usati correttamente.

In dettaglio si è parlato di Tiled Window Manager i3m, del launcher dmenu e del browser interamente testuale w3m, in ricordo dei bei tempi andati in cui navigavamo internet con i modem!

 

Scarica la presentazione

Implementing Data Stream Processing applications with the WindFlow library - Alessandra Fais 

Con la presentazione "Implementing Data Stream Processing applications with the WindFlow library" Alessandra ha descritto parte del proprio lavoro di tesi introducendo i concetti alla base delle applicazioni di tipo stream processing, per poi concentrarsi su come questo tipo di applicazioni possono essere implementate utilizzando la libreria C++ WindFlow, sviluppata nel Dipartimento di Informatica dell'Universita' di Pisa. Un talk "denso" ma di grande interesse.

GIT Merge VS GIT Rebase - Giuseppe Sucameli

Giuseppe Sucameli incentra il suo talk su un tema temuto da qualsiasi sviluppatore: il merge dei sorgenti.
Durante il talk Giuseppe ha spiegato in modo chiaro, con l'ausilio di numerosi esempi pratici, le principali differenze tra i processi di merge e rebase tramite git evidenziando pregi e difetti di entrambe le soluzioni.

 

Scarica la presentazione

 

 

Dependency Injection - Marco Ciprietti

Marco Ciprietti spiega la teoria dietro il design pattern noto come dependency injection, evidenziandone i vantaggi in termini di scrittura di codice piu' pulito e semplicità nel testing.

I concetti esposti sono poi stati ottimamente esemplificati usando il framework symfony.

 

Scarica la presentazione

 

Handling C++ Dependencies - Francesco Lamonica

Francesco Lamonica racconta le problematiche della gestione delle dipendenze, sia binarie che in forma di codice sorgente, per progetti C++ complessi.

Dopo una veloce panoramica delle soluzioni esistenti sul mercato ha presentato nel dettaglio la soluzione sviluppata in-house da Netresults, denominata depsjson.

 

Scarica la presentazione

BuildingBlock Series: LibAriadne - Sergio Borghese

Sergio Borghese racconta uno dei building block costruito dal Team ATENA: libAriadne. La libreria C++ basata sul framework Qt permette di creare e gestire in modo semplice dei tunnel SSH, permettendo di risolvere in modo semplice ed elegante molti dei tipici problemi di connessione tra sistemi, in scenari in cui è presente un NAT. Il nome di origine mitologica fa riferimento alla leggenda del filo di Arianna, che permise a Teseo di uscire dal labirinto di Creta.

 

Scarica la presentazione

Reflection - Stefano Aru

Stefano Aru ha avuto l'onere e l'onore di inaugurare il nuovo appuntamento mensile per R&D di NetResults parlandoci della reflection nei linguaggi di programmazione, con particolare attenzione al suo uso in C++ con le librerie Qt. Si tratta di una tecnica avanzata ma estremamente potente che permette, tra le altre cose, di semplificare il codice che fa multiplexing, nonché di accedere al complesso modo della meta-programmazione

 

Scarica la presentazione