JUGPD DAY 2024 #2

Posted by Lucio Benfante Sat, 02 Nov 2024 16:27:00 GMT

Quando: sabato 9 Novembre 2024, dalle 10.00 alle 13.00

Dove: Agriturismo Scacchiera, Via Rovetta, 38 35127 PADOVA (Padova), località San Gregorio (www.agriturismoscacchiera.it)

Programma

  • Assemblea ordinaria 2024 dellassociazione JUG Padova
  • Applicazioni e database multi-tenant con JOOQ e PostgreSQL (Lucio Benfante)
  • PostgreSQL e la sicurezza orizzontale

Per chi vorrà, al termine delle presentazioni sarà possibile continuare la discussione durante il pranzo.

Registrati all’evento

Per permetterci una migliore organizzazione dell’evento registrati al più presto :

https://mobilizon.it/events/82b87de2-1731-486c-abe2-177f4386559f

Note

La partecipazione è, come sempre, libera e gratuita.

Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi

Applicazioni e database multi-tenant con Jooq e PostgreSQL (Lucio Benfante)

“Software multitenancy is a software architecture in which a single instance of software runs on a server and serves multiple tenants. Systems designed in such manner are “shared” (rather than “dedicated” or “isolated”). A tenant is a group of users who share a common access with specific privileges to the software instance. With a multitenant architecture, a software application is designed to provide every tenant a dedicated share of the instance—including its data, configuration, user management, tenant individual functionality and non-functional properties. Multitenancy contrasts with multi-instance architectures, where separate software instances operate on behalf of different tenants. (https://en.wikipedia.org/wiki/Multitenancy)”

Come si evince dalla definizione, lo sviluppo di un’applicazioni che ne supporti l’uso da parte di più tenant, comporta scelte architetturali nei vari livelli dell’applicazione, da quello legato alla gestione dei dati, a quello relativo alle funzionalità dell’applicazione stessa, fino alla gestione degli utenti stessi.

Durante questo incontro, esamineremo brevemente le diverse possibili scelte che potremmo adottare per lo sviluppo di un database che supporti un’applicazione con esigenze di multi-tenancy, cercando di valutarne le conseguenze sullo sviluppo e l’operatività dell’applicazione stessa.

Esamineremo poi l’architettura e il codice di un’applicazione multi-tenant che sto sviluppando, in cui è stato scelto PostgreSQL come DBMS e Jooq come libreria di accesso ai dati, considerandone alcune caratteristiche che appunto favoriscono lo sviluppo di tali applicazioni.

PostgreSQL e la sicurezza orizzontale

Postgres ci permette di controllare l’accesso al database, allo schema, alle tabelle e colonne ma, dalla versione 9.5, con le row security policy, anche alle righe di cui è composta una tabella.

Ognuno di noi che si è cimentato in un’applicazione multi-tenant (o multi societaria che dir si voglia) si è trovato davanti al problema di non far “vedere” ad un tenant i dati di un altro tenant.

Postgres, con le row security policy, ci offre una soluzione flessibile ed elegante e al tempo stesso economica da implementare.

Nella sessione andremo a vedere come sfruttare questo strumento.

RELATORI

Lucio Benfante

Dal 1996 lavoro come libero professionista nel campo dello sviluppo software e della formazione professionale.

Quando posso condivido il codice che sviluppo in modalità open-source: potete trovarlo all’interno dei miei repository e organization in GitHub (https://github.com/benfante)

Sono un socio fondatore e attuale presidente del Java User Group (JUG) Padova (www.jugpadova.it).

Nel tempo libero amo cucinare (iononcucino.blogspot.com), praticare la corsa (https://runkeeper.com/user/benfante) e cantare nel Gruppo Vocale Novecento (www.gvnovecento.it).

Andrea Adami

Nei primi anni 80 ho trovato sotto l’albero di natale un Commodore 64 ed è stato amore a prima vista.

Ho imparato a conoscere i sistemi operativi mainframe IBM, quelli di rete e dei personal computer ed anche i sistemi embedded sia per la domotica che per l’automazione industriale.

Ho usato molti linguaggi e strumenti di sviluppo, diversi application manager, database a indici e gerarchici fino ai moderni database relazionali.

La necessità di sfruttare l’hardware e il sistema operativo mi porta a sviluppare il mio lato sistemistico.

Dinamiche personali mi fanno fare un’esperienza di gestione manageriale per poi proseguire creandone una mia e sviluppando la cultura aziendale: economica, amministrativa, fiscale ed infine finanziaria.

Nel corso degli anni ho affiancato la passione per la programmazione con la progettazione di soluzioni e la consulenza direzionale.

Nel 2010 Ho conseguito il brevetto per il volo libero da diporto sportivo con il nulla osta della questura di Verona.

Nel mio tempo libero mi appassiona costruire e far volare aeromodelli.

Posted in ,  | Tags ,  | no comments

JUGPD DAY 2024 #1

Posted by Lucio Benfante Tue, 21 May 2024 17:28:00 GMT

Quando: sabato 1 Giugno 2024, dalle 9.00 alle 13.00

Dove: Via Brenta 2, 35020, Saonara, Italia

Programma

  • Prototipizzazione con LibreOffice e Postgres (Andrea Adami)
  • Rendere “web friendly” le applicazioni desktop (Andrea Adami)
  • Come creare un “Terminal Server” con Linux (Andrea Adami)
  • Laboratorio di IOT (Andrea Adami e Paolo Tomelleri)

Per chi vorrà, al termine delle presentazioni sarà possibile continuare la discussione durante il pranzo.

Registrati all’evento

Per permetterci una migliore organizzazione dell’evento registrati al più presto :

https://mobilizon.it/events/83ea6f0f-c76a-4b3a-a1fa-86f6ab9800ee

Note

La partecipazione è, come sempre, libera e gratuita.

Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi

Prototipizzazione con LibreOffice e Postgres (Andrea Adami)

Molto spesso ci si trova a scrivere codice su un’analisi carente (per non essere volgari) o addirittura sbagliata.

Il problema è che spesso le “personas” alla base dell’analisi forniscono informazioni incomplete, non esaustive o addirittura errate.

Ecco che viene molto utile produrre un prototipo che permetta di verificare se l’analisi corrisponde al prodotto software che il nostro utente vuole.

Quante volte ci siamo sentiti dire: “ma io non la volevo così” anche se è stato realizzato esattamente quello richiesto ?

Il problema però è che scrivere codice è costoso, in temini di tempo, e dover rifare quanto appena finito oltre che demotivamente può originare contrasti economici e di tempo con il cliente.

Un’approccio che si vuole mostrare con questo intervento è l’utilizzo di Libreoffice unito a Postgres per creare molto velocemente dei prototipi di applicazione in maniera da ridurre al minimo il costo, ineluttabile, delle successive modifiche.

Una volta finito il prototipo abbiamo una sorta di “analisi definitiva” su cui costruire il software finale, in limitati casi, potrebbe anche diventare il prodotto finito.

L’utilizzo delle funzionalità di programmazione di Postgres permette di avere una base di codice riutilizabile anche con il linguaggio scelto per la versione definitiva del codice.

Rendere “web friendly” le applicazioni desktop (Andrea Adami)

Oggi ci sono tecnologie che permettono di portare sul web il nomale desktop tramite quelli che vengono chiamati gateway RDP HTML5 (javascript).

Possiamo quindi portare “sul Web” qualsiasi applicazione desktop.

Nell’intervento vedremo come crearne uno (https://guacamole.apache.org) in maniera veloce utilizzando i container.

Come creare un “Terminal Server” con Linux (Andrea Adami)

Molti ormai sono abituati a lavorare con la tecnologia che viene definita, su windows, “terminal services” oppure più familiarmente “Desktop remoto” forse pochi sanno che anche su Linux è possibile fare la stessa cosa.

L’argomento di questo intervento è far vedere come realizzarlo.

Laboratorio di IOT (Andrea Adami e Paolo Tomelleri)

Penso a nessuno sia sfuggito la portata del fenomeno “IOT”, questo intervento vuole condividere l’esperienza di laboratorio fatta con la famiglia di prodotti M5STACK ( https://m5stack.com ).

Incominciando con una breve presentazione della famiglia di prodotti vedremo quali sono gli impieghi più comuni per le varie famiglie di dispositivi, gli strumenti di sviluppo che si possono usare, le difficoltà incontrate (serate su serate buttate che speriamo di evitarvi).

RELATORI

Andrea Adami

Nei primi anni 80 ho trovato sotto l’albero di natale un Commodore 64 ed è stato amore a prima vista.

Ho imparato a conoscere i sistemi operativi mainframe IBM, quelli di rete e dei personal computer ed anche i sistemi embedded sia per la domotica che per l’automazione industriale.

Ho usato molti linguaggi e strumenti di sviluppo, diversi application manager, database a indici e gerarchici fino ai moderni database relazionali.

La necessità di sfruttare l’hardware e il sistema operativo mi porta a sviluppare il mio lato sistemistico.

Dinamiche personali mi fanno fare un’esperienza di gestione manageriale per poi proseguire creandone una mia e sviluppando la cultura aziendale: economica, amministrativa, fiscale ed infine finanziaria.

Nel corso degli anni ho affiancato la passione per la programmazione con la progettazione di soluzioni e la consulenza direzionale.

Nel 2010 Ho conseguito il brevetto per il volo libero da diporto sportivo con il nulla osta della questura di Verona.

Nel mio tempo libero mi appassiona costruire e far volare aeromodelli.

Posted in ,  | Tags , , ,  | no comments

JUG Meeting#82: After 8: Sweet New Features in the JDK

Posted by Lucio Benfante Tue, 14 Jan 2020 05:52:00 GMT

Quando: venerdì 31 Gennaio 2020 ore 18:30

Dove: Finantix – Via della Pila, 13 – 30175 Marghera (VE) dietro la stazione dei treni

Guarda la cartina stradale: su openstreetmap o su googlemaps

Programma

18:15 Accoglienza

18:30 After 8: Sweet New Features in the JDK – a cura di Simon Ritter, Azul

20:00 Fine meeting

Registrati all’evento

Registrati all’evento su jugevents .

After 8: Sweet New Features in the JDK

Five releases of Java in two years! Yes,the new fast cadence for the OpenJDK does work. Despite the short development cycle the rate of change of Java is faster that it was before.In this session we’ll take a look at the rapid evolution of the Java platform with the introduction of new features in each of the recent releases:

  • JDK 9: Java Platform Module System
  • JDK 10: Local variable type inference
  • JDK 11: JDK Flight Recorder
  • JDK 12: Switch expressions
  • JDK 13: Text bocks
  • JDK 14: Records and pattern matching

We’ll also cover many of the smaller features that will make your life as a developer easier.

What might future JDKs include? To answer that question, we’ll explore some of the longer-term plans for Java, like project Amber, Loom and Valhalla.

Note

La partecipazione è, come sempre, libera e gratuita.

Se usi GPG potresti portare la fingerprint della tua chiave su un foglietto e chiedere se qualcuno è interessato a firmare la tua chiave.

Al termine del meeting andremo tutti assieme a mangiare la pizza :-P

Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi

Supportato da

Posted in ,  | Tags ,

JUG Meeting#81: Assemblea Annuale

Posted by Lucio Benfante Mon, 16 Sep 2019 20:16:00 GMT

Quando: Sabato 21 Settembre 2019 dalle 13:00 alle 15:00.

Dove: Al Saraceno, ristorante e pizzeria Via Giovanni Canestrini, 4 35127 Padova

www.alsaraceno.com

Per consentire una tempestiva prenotazione della pizzeria, per favore, iscrivetevi al più presto su JUG Events:

http://www.jugevents.org/jugevents/event/108724

Oltre allo svolgimento dell’assemblea annuale, il pranzo è un’occasione conviviale per fare due chiacchiere in rilassatezza sulle tematiche (anche tecniche) che ci piacciono.

Ordine del giorno dell’assemblea:

  • Approvazione bilanci consuntivo e di previsione
  • Elezione delle cariche sociali
  • Varie ed eventuali

Ulteriori informazioni su JUG Events

Posted in ,  | Tags ,

JUG Meeting#80: Cloud Native Applications Using Docker and Kubernetes (OpenShift)

Posted by Tarin Gamberini Sun, 14 Apr 2019 12:26:00 GMT

Quando: venerdì 12 Aprile 2019 ore 19:00

Dove: Finantix – Via della Pila, 13 – 30175 Marghera (VE) dietro la stazione dei treni

Guarda la cartina stradale: su openstreetmap o su googlemaps

Programma

18:45 Accoglienza

19:00 Cloud Native Applications Using Docker and Kubernetes (OpenShift) – a cura di Gian Maria Romanato, Finantix

19:55 La ruota della fortuna

20:00 Fine meeting


Cloud Native Applications Using Docker and Kubernetes (OpenShift)

The presentation will start with a quick introduction to the concept of Cloud Native applications, followed by an overview of Docker with its strengths and weaknesses.

The discussion will continue with an overview of Kubernetes and how Kubernetes helps overcome some of the limitations of Docker.

Red Hat OpenShift will then be briefly introduced to explain how it augments Kubernetes with additional enterprise-grade features and capabilities.

A simple demo will follow in which a “Hello World” Java EE application running in Tomcat will be deployed to an OpenShift cluster to demonstrate how easily a fault-tolerant deployment can be achieved.

Finally, the Jenkins plug-ins for Docker, Kubernetes and OpenShift will be mentioned to introduce how they could be used in a build pipeline.


La ruota della fortuna

I partecipanti che si sono registrati al meeting parteciperanno all’estrazione dei premi gentilmente messi in palio da Manning Publications :

 


Note

La partecipazione è, come sempre, libera e gratuita.

Se usi GPG potresti portare la fingerprint della tua chiave su un foglietto e chiedere se qualcuno è interessato a firmare la tua chiave.

Al termine del meeting andremo tutti assieme a mangiare la pizza :-P


Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi


Registrati all’evento

Registrati all’evento su jugevents.


Supportato da

Posted in ,  | Tags ,  | 124 comments

JUG Meeting#79: Assemblea Annuale

Posted by Lucio Benfante Mon, 10 Sep 2018 10:15:00 GMT

Quando: Domenica 16 Settembre 2018 dalle 20:00 alle 22:00.

Dove: Al Saraceno, ristorante e pizzeria Via Giovanni Canestrini, 4 35127 Padova

www.alsaraceno.com

Per consentire una tempestiva prenotazione della pizzeria, per favore, iscrivetevi al più presto su JUG Events:

http://www.jugevents.org/jugevents/event/88859

Oltre allo svolgimento dell’assemblea annuale, il pranzo è un’occasione conviviale per fare due chiacchiere in rilassatezza sulle tematiche (anche tecniche) che ci piacciono.

Ordine del giorno dell’assemblea:

  • Approvazione bilanci consuntivo e di previsione
  • Elezione delle cariche sociali
  • Varie ed eventuali

Ulteriori informazioni su JUG Events

Posted in ,  | Tags ,  | 27 comments

JUG Meeting#78: Progressive web app & Kotlin

Posted by Tarin Gamberini Wed, 04 Apr 2018 05:17:00 GMT

Quando: sabato 7 Aprile 2018

Dove: Sala civica presso la Biblioteca del Comune di Lendinara – Via Gianbattista Conti, 30 – 45026 Lendinara (RO)

Guarda la cartina stradale: su openstreetmap o su googlemaps.

Programma

9:00 Accoglienza

9:30 Le progressive web app, a cura di Simone Pavan

10:45 Design Driven Web APIs with Vert.x, a cura di Francesco Guardiani

12:30 La ruota della fortuna

12:35 Assemblea annuale

13:00 Fine meeting


Progressive web app

Nello scenario dello sviluppo di applicazioni legate a dispositivi mobili si affaccia una nuova metodologia e tecnologia pronta a diventare uno standard come parte concreta della piattaforma web.

Creare una Progressive Web App di alta qualità produce vantaggi quali un maggior gradimento da parte degli utenti, maggiore coinvolgimento e incremento delle conversioni.

Nello specifico vedremo:

  • Le sue radici
  • Le sue caratteristiche
  • Le reazioni del mercato
  • L’architettura
  • La sua realizzazione
  • Push notification


Design Driven Web APIs with Vert.x

L’obiettivo del talk è presentare Eclipse Vert.x e mostrarvi l’approccio API-Design First. Vert.x è un framework open source reactive, modulare, multi purpose e poliglotta per la JVM. Vi mostrerò come, combinando Vert.x Web e OpenAPI 3, sia possibile sviluppare Web APIs partendo dal design, passando alla documentazione ed infine al codice.


La ruota della fortuna

I partecipanti che si sono registrati al meeting parteciperanno all’estrazione dei premi gentilmente messi in palio da Manning Publications :

 


Pranzo

A fine incontro è previsto il pranzo presso Caffè Grande di Lendianara (RO) a due passi dalla biblioteca.

Menu fisso: Antipasto contadino + contorni + 2 primi piatti a scelta + bevande + caffè a 15,00 Euro.


Note

La partecipazione è, come sempre, libera e gratuita.

Se usi GPG potresti portare la fingerprint della tua chiave su un foglietto e chiedere se qualcuno è interessato a firmare la tua chiave.

Al termine del meeting andremo tutti assieme a mangiare :-P


Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi

Abbiamo anche il volantino pubblicitario (PDF)

pdfreaders.org


Supportato da

Posted in ,  | 95 comments

JUG Meeting#76: Unit Test su PostgreSQL

Posted by Tarin Gamberini Tue, 02 May 2017 19:56:00 GMT

Quando: sabato 27 Maggio 2017

Dove: Verona FabLab – Viale del lavoro 2 – Grezzana, Verona 37023

Guarda la cartina stradale: su openstreetmap o su googlemaps

Programma

9:00 Accoglienza

9:15 Presentazione del FabLab Verona, a cura di Andrea Adami

9:45 Introduzione a PostgreSQL, a cura di Andrea Adami

10:00 Coffee break

10:15 Unit Test su PostgreSQL, a cura di Andrea Adami

11:45 La ruota della fortuna

12:00 Fine meeting


Presentazione del FabLab Verona

Il FabLab è un’officina aperta dove far nascere progetti innovativi e nuove professionalità; un luogo di incontro per aziende ed enti del territorio, scuole e “makers”!


Unit Test su PostgreSQL

La bellezza di PostgreSQL è la sua estrema capacità di programmazione tanto che ormai alla figura del DBA si sovrappone quella dello sviluppatore. Questa bellezza però può venire sfigurata dagli errori, e non solo quelli di programmazione.

Nel tempo a nostra disposizione vedremo come la tecnica dello Unit Testing possa contribuire all’individuazione precoce degli errori e impedire la ricomparsa di quelli già risolti.

Non verrà data solo una spiegazione concettuale ma verranno illustrati i casi pratici usati nel progetto open source Scuola247 “il registro elettronico della scuola italiana”.


La ruota della fortuna

I partecipanti che si sono registrati al meeting parteciperanno all’estrazione dei premi gentilmente messi in palio da Manning Publications :

 


Note

La partecipazione è, come sempre, libera e gratuita.

Se usi GPG potresti portare la fingerprint della tua chiave su un foglietto e chiedere se qualcuno è interessato a firmare la tua chiave.

Al termine del meeting andremo tutti assieme a mangiare la pizza :-P


Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi

Abbiamo anche il volantino pubblicitario (PDF)

pdfreaders.org


Supportato da

Posted in ,  | Tags , , , ,  | 85 comments

JUG Meeting#75: TDD & ThoughtWorks

Posted by Tarin Gamberini Mon, 20 Mar 2017 20:10:00 GMT

Quando: venerdì 07 Aprile 2017

Dove: Finantix – Via della Pila, 13 – 30175 Marghera (VE) dietro la stazione dei treni

Guarda la cartina stradale: su openstreetmap o su googlemaps

Programma

18:00 Accoglienza

18:15 TDD: cose che ho imparato negli ultimi 12 anni – a cura di Matteo Vaccari, ThoughtWorks Italia

19:15 Come funziona ThoughtWorks – a cura di Matteo Vaccari e Wamika Singh, ThoughtWorks

19:45 La ruota della fortuna

20:00 Fine meeting


TDD: cose che ho imparato negli ultimi 12 anni

Sul TDD se ne sentono di tutti colori: chi dice che sia la soluzione di tutti i problemi, chi invece dice che sia morto. Eppure TDD è uno strumento fondamentale per scrivere codice bene, velocemente, con divertimento e profitto.

Racconterò cose che ho imparato in 12 anni di esperienza sul campo, alcune delle quali sono apparse di sfuggita nel libro di Kent Beck e poi sparite dal radar.

Parlerò di Test List, Isolated Test, scomposizione del problema in assi ortogonali; di design evolutivo vs. anticipatorio; e di che cosa significhi veramente “la cosa più semplice che possa funzionare”.

Lingua: inglese.


Come funziona ThoughtWorks

Una tavola rotonda in cui i tutti partecipanti sono invitati a porre domande su ThoughtWorks.

Lingua: inglese (domande anche in italiano).


La ruota della fortuna

I partecipanti che si sono registrati al meeting parteciperanno all’estrazione dei premi gentilmente messi in palio da Manning Publications :

 


Note

La partecipazione è, come sempre, libera e gratuita.

Se usi GPG potresti portare la fingerprint della tua chiave su un foglietto e chiedere se qualcuno è interessato a firmare la tua chiave.

Al termine del meeting andremo tutti assieme a mangiare la pizza :-P


Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi

Abbiamo anche il volantino pubblicitario (PDF)

pdfreaders.org


Registrati all’evento

Registrati all’evento su jugevents.


Supportato da

Posted in ,  | Tags ,  | 22 comments

Older posts: 1 2 3 ... 7