[Jug-Torino] Nuova Mailing List

2020-10-18 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi rinnovo l'invito a iscrivervi alla nuova mailing list:

* Accettate l'invito che vi ho mandato (guardate nello spam, magari)
se volete usare la stessa email che usavate nella mailing list Yahoo.
* Iscrivetevi voi stessi se volete cambiare email e usare la vostra
email Google: https://groups.google.com/g/jugtorino.
* Mandatemi una richiesta privata se volete cambiare email e usare una
email non-Google differente da quella che usavate precedentemente su
Yahoo.

Gli inviti scadono tra 4 giorni, quindi fare in fretta!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Yahoo Groups Shutdown

2020-10-15 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

On Wed, Oct 14, 2020 at 4:42 PM Simone Bordet  wrote:
>
> Ciao a tutti,
>
> Yahoo Groups, che usiamo per questa mailing list, chiude il 15 Dicembre.
>
> Qualche tempo fa Yahoo aveva annunciato lo shutdown di servizi
> accessori di Yahoo Groups (che noi non usavamo) e ora è il turno delle
> mailing lists.

Reference:
https://uk.help.yahoo.com/kb/groups/SLN35505.html

> Ci sposteremo su Google Groups, seguendo un po' le orme del JUG
> Milano. Anche loro erano su Yahoo Groups, ma quando c'è stato lo
> shutdown dei servizi accessori hanno deciso di migrare, mentre noi non
> lo abbiamo fatto, finora.
>
> Farò l'export degli iscritti e poi manderò ad ognuno un invito a
> iscriversi alla mailing list del JUG Torino su Google Groups - ci
> vorrà un po' di tempo quindi abbiate pazienza.

Ho terminato di mandare gli inviti, che scadono tra 7 giorni.

Se non rispondete in tempo all'invito, potete sempre iscrivervi
direttamente su https://groups.google.com/g/jugtorino.

Vi aspettiamo sull'altra mailing list!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Yahoo Groups Shutdown

2020-10-14 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

Yahoo Groups, che usiamo per questa mailing list, chiude il 15 Dicembre.

Qualche tempo fa Yahoo aveva annunciato lo shutdown di servizi
accessori di Yahoo Groups (che noi non usavamo) e ora è il turno delle
mailing lists.

Ci sposteremo su Google Groups, seguendo un po' le orme del JUG
Milano. Anche loro erano su Yahoo Groups, ma quando c'è stato lo
shutdown dei servizi accessori hanno deciso di migrare, mentre noi non
lo abbiamo fatto, finora.

Farò l'export degli iscritti e poi manderò ad ognuno un invito a
iscriversi alla mailing list del JUG Torino su Google Groups - ci
vorrà un po' di tempo quindi abbiate pazienza.

Potete ignorare l'invito (che equivale a disiscriversi), oppure accettarlo.
Se volete cambiare l'email con la quale vi iscrivete, ignorate
l'invito con la vecchia email e iscrivetevi da soli su Google Groups
con la nuova email.

https://groups.google.com/g/jugtorino

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Fwd: Codemotion Conference 2020: Ticket e partnership per JUGTorino

2020-10-01 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi giro sotto una email da parte di Codemotion, con a disposizione alcuni
biglietti gratuiti per la conferenza.

---

Dopo aver annunciato* il posticipo* delle precedenti date, a causa delle
*limitazioni* che ci hanno visto tutti coinvolti per arginare la diffusione
del Covid-19, posso finalmente annunciarti che *l’**Italian Edition** di
Codemotion Conference* si terrà il 24 - 25 - 26

Novembre

e sarà un’edizione completamente *Online!*

*Codemotion Conference Italian Edition* sarà una conferenza *orizzontale*,
con Talk tecnici

in lingua italiana, ed alcuni in lingua inglese. Le giornate sono divise in *4
macro aree*: *Backend e Cloud*, *Sviluppo frontend*, *AI/Machine Learning*
e *Team & Tech Career*.
Inoltre ci sarà la possibilità di fare *networking tra i partecipanti*,
anche seguendo la conferenza da casa… questa edizione avrà lo *stesso
spirito* delle precedenti, ma in un *formato diverso* ;)

L’impegno di Codemotion nella *crescita delle Tech Community*, sarà
mantenuto anche in questa edizione: per la community di *JUGTorino *abbiamo
riservato un *accesso speciale* alla Conferenza, infatti oltre al free
ticket disponibile per tutti i Dev

interessati, ci sarà a disposizione il *Premium Ticket*, con accesso a
Benefits dedicati, *completamente gratuito *per te e per i membri della tua
Community! Puoi già diffondere il link al biglietto nascosto:
codemo.me/CO20_COMMUNITY_JUGTORINO

Ricorda che il numero dei ticket *è limitato* ma soprattutto che potrai*
assicurare un premium ticket gratuito* ai membri della tua community, *solo
se lo riscatteranno entro e non oltre il **9 ottobre 2020. *

Il Ticket Community da accesso alle *sessioni di Q*, così come ad altre
attività di networking (*afterparty*, *incontro con gli speaker*, *chat
room *esclusiva *per le Community*).

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] [REMINDER] Meeting 22 Giugno 2020: Introduzione a BlockChain Development

2020-06-22 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi ricordo il meeting di stasera:

Introduzione a BlockChain Development
https://www.meetup.com/JUGTorino/events/271370355/

Registratevi su Meetup!

Renderemo disponibile il link allo streaming YouTube verso le 18:15 e
la sessione comincerà alle 18:30.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] [ANN] Meeting 22 Giugno: Introduzione a BlockChain Development

2020-06-19 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

lunedì 22 Giugno ospitiamo Algorand che ci parla di BlockChain development.
Registratevi qui:
https://www.meetup.com/JUGTorino/events/271370355/

Il meeting sarà online come quelli recenti, e faremo sapere il link
dello streaming YouTube 10-15 minuti prima dell'inizio della sessione.

A presto!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Survey su jinfo, jmap, jstack...

2020-06-16 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

se volete dare il vostro feedback su questi tools (che vorrebbero deprecare):
https://www.questionpro.com/t/AQk5jZhiww

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] API stability annotations?

2020-06-10 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Wed, Jun 10, 2020 at 10:36 AM Uberto Barbini uberto.g...@gmail.com
[it-torino-java-jug]  wrote:

>
>
> Domanda forse super stupida, ma perche' non usare javadoc?
>

E come farei?

Come faccio a differenziare un metodo pubblico che voglio supportare come
API da uno pubblico che *non* voglio supportare come API?

Non basta una frase nel javadoc, perché poi dall'IDE faccio
Refactor/ChangeSignature e sono spacciato.

Con una annotazione e una toolchain faccio il refactoring dall'IDE, ma poi
mi si spacca il build - che mi andrebbe bene.
Usare un custom doclet tag mi sembra più complicato di una annotazione..

Mi sono perso qualcosa?

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] API stability annotations?

2020-06-10 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

qualcuno ha mai visto/usato delle API (annotazioni o altro) per
marcare delle API come "stabili"?

E se sì, esiste una toolchain associata, per esempio un Maven Plugin
che controlli l'esistenza di queste annotazioni e confronti due
versioni? (Sì, conosco clirr)
E magari supporto in javadoc?

Qualcosa di simile a
https://nodejs.org/docs/latest-v13.x/api/documentation.html#documentation_stability_index.
Anche se non so come sia fatto in NodeJS (non credo annotazioni).

Mi basterebbe una annotazione tipo @API(since="1.0.1") per indicare
una API stabile.
Se non c'è l'annotazione è instabile.
Se c'è @Deprecated è deprecata.

Grazie!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Interfacce con metodi opzionali e liste in sola lettura

2020-05-16 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Sat, May 16, 2020 at 5:11 PM Uberto Barbini uberto.g...@gmail.com
[it-torino-java-jug]  wrote:
> Parlando di compromessi, in Kotlin una List (immutabile) e' la superclass di 
> MutableList. Per cui qualsiasi lista mutabile e' anche una lista immutabile...
>
> Quindi tu ricevi una lista immutabile, ma magari in un altro thread qualcuno 
> sta mutando quella stessa lista... oppure tu la ricevi immutabile, ma fai un 
> check se implementa MutableList (99% si) e quindi puoi cambiare tutto..

Vero.
Ma l'intenzione del designer delle API è esplicita, poi il developer
può sempre svaccare con i downcast.

> Iterator poi potevano anche fare a meno di esporlo del tutto, imho.

Però una volta che hai le mutable collections, non puoi farne a meno
(e.g. Iterator.remove()).
Che fai, lanci Unsupported?

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Evento "L'arte di progettare una API Java"

2020-04-29 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

grazie a tutti per la partecipazione!
Domande interessanti nella discussione post-sessione.

Vorremmo un feedback per sapere se fare altri eventi congiunti di

Qui trovate il link allo streaming YouTube:
https://www.youtube.com/watch?v=BXlQxpDAVzI

Qui il link alle slides:
https://www.slideshare.net/mariofusco/lets-make-a-contract-the-art-of-designing-a-java-api-231818668

Qui il link al raffle per vincere una licenza JetBrains (valido fino a
domani alle 12:00):
https://forms.gle/B2w8ag3EPfKBoqrY6

Vi ricordo i links a entrambi i Java User Groups:

YouTube:
https://www.youtube.com/JUGTorino
https://www.youtube.com/JUGMilano

Sito Web:
https://jugtorino.org/
http://www.jugmilano.it/

Mailing Lists:
https://groups.yahoo.com/neo/groups/it-torino-java-jug/info
https://groups.google.com/forum/#!forum/jugmilano

Social:
https://www.meetup.com/JUGTorino/
https://www.eventbrite.com/o/jug-milano-28234569107

Twitter:
https://twitter.com/jugtorino
https://twitter.com/jugmilano

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Online Meetup: L'arte di progettare una API Java - Mercoledì 29/4 18:00

2020-04-29 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

On Wed, Apr 22, 2020 at 12:12 PM Simone Bordet  wrote:
>
> Ciao a tutti,
>
> riprendiamo l'attività del Java User Group Torino!
>
> Mercoledì 29 Aprile, ore 18:00, ospiteremo online Mario Fusco che ci
> parlerà dell'arte di progettare API in Java.
>
> I dettagli li trovate qui:
> https://www.meetup.com/JUGTorino/events/270193310
>
> Registratevi come al solito su Meetup.
>
> Prevediamo di usare Google Meet come piattaforma di video conferenza,
> ma è possibile che ci siano cambiamenti.
> In tal caso vi faremo sapere qual è il nuovo link per la video conferenza.

Streaming YouTube:

http://www.youtube.com/watch?v=BXlQxpDAVzI

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Online Meetup: L'arte di progettare una API Java - Mercoledì 29/4 18:00

2020-04-27 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

On Wed, Apr 22, 2020 at 12:12 PM Simone Bordet  wrote:
>
> Ciao a tutti,
>
> riprendiamo l'attività del Java User Group Torino!
>
> Mercoledì 29 Aprile, ore 18:00, ospiteremo online Mario Fusco che ci
> parlerà dell'arte di progettare API in Java.
>
> I dettagli li trovate qui:
> https://www.meetup.com/JUGTorino/events/270193310
>
> Registratevi come al solito su Meetup.
>
> Prevediamo di usare Google Meet come piattaforma di video conferenza,
> ma è possibile che ci siano cambiamenti.
> In tal caso vi faremo sapere qual è il nuovo link per la video conferenza.

Visto il grande numero di partecipanti, abbiamo deciso di fare un live
stream su YouTube (sul canale del JUG Torino).
Iscrivetevi al canale e impostate le notifiche:
https://www.youtube.com/jugtorino

Faremo sapere comunque il link dello stream YouTube via email /
twitter / ecc. verso le 17:45 di mercoledì.

Lo spazio per le domande sarà alla fine della sessione, tramite la
chat del live stream YouTube.

A mercoledì!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Online Meetup: L'arte di progettare una API Java - Mercoledì 29/4 18:00

2020-04-22 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

riprendiamo l'attività del Java User Group Torino!

Mercoledì 29 Aprile, ore 18:00, ospiteremo online Mario Fusco che ci
parlerà dell'arte di progettare API in Java.

I dettagli li trovate qui:
https://www.meetup.com/JUGTorino/events/270193310

Registratevi come al solito su Meetup.

Prevediamo di usare Google Meet come piattaforma di video conferenza,
ma è possibile che ci siano cambiamenti.
In tal caso vi faremo sapere qual è il nuovo link per la video conferenza.

A presto!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] AllTheTalks

2020-04-13 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

in attesa di riprendersi dall'abbuffata pasquale con pic-nic in
salotto, possiamo ri-abbuffarci con questa conferenza online gratuita
della durata di 24 ore (mercoledì 15 - giovedì 16):

https://www.allthetalks.org/

Le attività del JUG riprenderanno a breve con delle sessioni online -
dobbiamo solo organizzarci e vi faremo sapere al più presto.

Come al solito se ci sono speakers (per esempio: "come è cambiato il
mio lavoro ora che lo faccio da casa") sono benvenuti.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] COVID-19 and Business

2020-03-12 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Thu, Mar 12, 2020 at 2:08 PM Massimo Ugues m.ug...@gmail.com
[it-torino-java-jug]  wrote:

>
>
> Il link sembra rotto
>

No, a me funziona tutto.
Tweet: https://twitter.com/heinzkabutz/status/1238061919262527489
Blog:
https://petercarruthers.com/will-coronavirus-kill-more-smallbusinesses-than-people/

A tra un'ora!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] COVID-19 and Business

2020-03-12 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi raccomando di seguire oggi, alle 16:00, Heinz Kabutz che intervista
Peter Carruthers:
https://twitter.com/heinzkabutz/status/1238061919262527489

Diffondete la voce!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Meeting 19 Marzo: Rimandato

2020-03-05 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

abbiamo rimandato il meetup del 19 Marzo
(https://www.meetup.com/JUGTorino/events/267884254/) causa COVID-19.

Pensiamo di provare ad organizzare un JUG Meetup online via Google
Meet o piattaforma simile, magari sulle novità di Java 14, in modo da
non trovarsi di persona ma comunque mantenere viva l'attività del JUG.

Vi faremo sapere le prossime attività appena disponibili!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] CloudConf 2020

2020-03-03 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Tue, Mar 3, 2020 at 4:21 PM Andrea Ligios andrealig...@gmail.com
[it-torino-java-jug]  wrote:

>
>
> Ciao,
> dal momento che la CloudConf è stata rinviata al 18 giugno,
> mi chiedevo che ne fosse del talk previsto per il 19 marzo: salta anche
> lui?
>

Chiedo allo speaker e farò sapere.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] [REMINDER] Meeting 5 Febbraio - Simon Ritter

2020-02-03 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi ricordo che questo mercoledì ci sarà il meeting, con ospite Simon
Ritter che ci parlerà delle novità Java a partire dalla 9 fino alla 14
(e oltre).

Invitate colleghi e amici, è un'occasione da non perdere per ascoltare
un Java Champion e aggiornarsi sulle novità Java.

Prenotatevi qui:
https://www.meetup.com/JUGTorino/events/267876393/

Vi aspettiamo numerosi!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Meeting 5 Febbraio - Simon Ritter - Votate la sessione

2020-01-28 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Mon, Jan 13, 2020 at 2:36 PM Simone Bordet  wrote:
>
> Ciao a tutti,
>
> il 5 Febbraio ospitiamo Simon Ritter di Azul Systems, che passa in
> Italia per fare un tour dei JUGs (simile a quello che aveva fatto
> Venkat circa un anno fa).
>
> Simon propone diverse sessioni, così abbiamo aperto un poll per farvi
> decidere quella che vorreste sentire:
> https://www.meetup.com/JUGTorino/polls/1286463/
>
> Le votazioni chiuderanno tra 2 settimane, affrettatevi a votare subito!

La votazione è chiusa, ha vinto "After 8: Sweet New Features in the JDK".

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Meeting 5 Febbraio - Simon Ritter - Votate la sessione

2020-01-13 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

il 5 Febbraio ospitiamo Simon Ritter di Azul Systems, che passa in
Italia per fare un tour dei JUGs (simile a quello che aveva fatto
Venkat circa un anno fa).

Simon propone diverse sessioni, così abbiamo aperto un poll per farvi
decidere quella che vorreste sentire:
https://www.meetup.com/JUGTorino/polls/1286463/

Le votazioni chiuderanno tra 2 settimane, affrettatevi a votare subito!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] ArchUnit: avete esperienze?

2019-12-17 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Tue, Dec 17, 2019 at 10:43 PM Roberto Franchini
ro.franch...@gmail.com [it-torino-java-jug]
 wrote:
>
>
>
> Ciao,
> oggi, parlando con i colleghi per prendere alcune decisioni architetturarli, 
> e' spuntata questa libreria:
>
> https://www.archunit.org/
>
> Ad esempio, voglio essere certo che i logger siano tutti private static final:
>
> @ArchTest
> private final ArchRule loggers_should_be_private_static_final =
> fields().that().haveRawType(Logger.class)
> .should().bePrivate()
> .andShould().beStatic()
> .andShould().beFinal()
> .because("we agreed on this convention");
>
>
> Qualcuno l'ha usata?

No.

Ma mi sembra di ricordare che abbiamo fatto lo stesso con una rule PMD.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Yahoo groups

2019-10-19 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Sat, Oct 19, 2019 at 3:14 PM Carlo Pellegrini
carlo.pellegr...@gmail.com [it-torino-java-jug]
 wrote:
> Ciao. Sembra che il Jug debba trovarsi una nuova ML a breve.
>
> Almeno secondo SlashGear
>
> https://www.slashgear.com/yahoo-groups-is-shutting-down-and-everything-will-be-deleted-16595957/
>
> Mi sono perso aggiornamenti?
> Sembra una decisione abbastanza improvvisa

La ML resterà.
Ciò di cui Yahoo! sta facendo lo shutdown è la capacità di uploadare
contenuto e cancellerà i contenuti passati, ma noi non ne abbiamo mai
usufruito.

Certo non dice bene neanche della ML, che magari/forse/chissà potrebbe
essere spenta più avanti.

Detto questo, l'unica altra soluzione che vedo è Google Groups per la ML.
Tutti gli altri sono troppo piccoli e volatili (reddit, slack, ecc.)
per resistere più di una decade.
E anche Google ha una storia di spegnere progetti, ma resta sempre
IMHO l'alternativa migliore.

Quest'anno sono 18 anni che usiamo la ML di Yahoo!, ai tempi era
l'opzione migliore.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Fwd: Voxxed Lugano

2019-10-02 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

vado a Lugano questo weekend per Voxxed Lugano, partendo da Torino.
C'è qualcuno che vuole un passaggio, in modo da riempire l'auto e
inquinare di meno?

Scrivetemi anche in privato.

--
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Corsi gratuiti x [MP]aternità

2019-10-02 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi segnalo questa iniziativa di Heinz Kabutz:
https://twitter.com/heinzkabutz/status/1179362281366441986

Heinz mette a disposizione i suoi corsi gratuitamente per il 2019 a
chi è in [mp]aternità.

Fate girare la voce!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] [OT] pure bash bible

2019-09-20 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Thu, Sep 19, 2019 at 11:32 AM Federico Fissore feder...@fsfe.org
[it-torino-java-jug]  wrote:

>
>
> Ciao a tutti
>
> qualche settimana fa si parlava di bash e di espansione di variabili
>
> se siete fan di bash troverete questo link interessante
>
> https://github.com/dylanaraps/pure-bash-bible
>

Fantastico, ma dovrebbero fare anche l'inverso.
Cioè, se trovo un emoticon in uno script, cosa fa?
Tipo: ${1:-/}

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Re: SDK Amazon S3 2.7.15

2019-09-05 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Thu, Sep 5, 2019 at 12:08 PM francesc...@yahoo.it
[it-torino-java-jug]  wrote:
> WebSocket.Listener può essere implementata come una specializzazione di 
> Flow.Subscriber con il metodo onNext() che ritorna un CompletitionStage, cioé 
> un onNext() capace di notificare quando il messaggio è stato consumato, 
> esattamente quello che ha chiesto Luigi.

E' il contrario.
Puoi implementare Flow.Subscriber in termini di WebSocket.Listener, ma
ovviamente perdi l'efficienza di WebSocket.Listener.
Flow.Subscriber.onNext() ritorna void, quindi non puoi ritornare un
CompletionStage.

> Se fosse possibile rilasciare esplicitamente le risorse di tipo ByteBuffer e 
> CharSequence (come per Netty) non ci sarebbe stato bisogno di questa 
> specializzazione e Luigi avrebbe potuto semplicemente utilizzare un 
> ByteBufferPool (similmente a Netty).

Se mia nonna avesse le ruote...

Sono le applicazioni che possono dire quando non usano più un ByteBuffer.
Netty wrappa ByteBuffer in una classe propria.
Nulla vietava ad Amazon di progettare una API che invece di prendere
un ByteBuffer prendeva una classe propria che wrappava ByteBuffer e a
quel punto poteva aggiungere una API di "release()" come fa Netty (o
come facciamo noi in Jetty).

> I WebSocket potrebbero essere consumati come Stream Reattivi, invece è stata 
> riscritta una interfaccia ad-hoc incompatibile con Subscriber.

Meno male! Questo è stato discusso e bocciato.
Meglio una API potente ed efficiente come WebSocket.Listener che una
API minimale ed inefficiente come Flow.Subscriber che mi *obbliga* ad
allocare nuovi oggetti per ogni dato.
Se proprio vuoi usare Flow.Subscriber, è triviale wrappare
WebSocket.Listener in un Flow.Subscriber.
WebSocket.Listener è più generica e copre più casi di Flow.Subscriber
e pertanto è stato deciso che era meglio questa API che una più
limitata.

> Inoltre non è neanche possibile scrivere un adattatore di Flow.Subscriber per 
> WebSocket.Listener poiché non è possibile comunicare quando la risorsa sia 
> consumata, a meno di non farsi una copia di tutti i messaggi ricevuti.

Certo che è possibile scrivere un adattatore di Flow.Subscriber per
WebSocket.Listener (ed è anche triviale).
Il fatto che tu debba farti una copia di tutti i dati (o di allocare
nuovi oggetti) è una limitazione di Flow.Subscriber: stai cercando di
adattare una API più potente ad una più limitata e per forza devi
pagare qualcosa.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Re: SDK Amazon S3 2.7.15

2019-09-04 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Wed, Sep 4, 2019 at 10:18 PM francesc...@yahoo.it
[it-torino-java-jug]  wrote:
> Ciao Simone,
> Se vuoi farti due risate l'interfaccia è già presente in Java 11
> https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/WebSocket.Listener.html

Non capisco le risate (e BTW ho contribuito al design di WebSocket.Listener).

WebSocket.Listener è diverso da Flow.Subscriber.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Re: SDK Amazon S3 2.7.15

2019-09-04 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

On Wed, Sep 4, 2019 at 6:14 PM l.buoncristi...@rjcsoft.it
[it-torino-java-jug]  wrote:
> Ciao Vasco,
> se pure asincrono il servizio, mantenersi il riferimento di un oggetto che 
> non hai allocato, obblighi il chiamante a non poter fare uso di pool.

Bingo.

Ho discusso di questo problema con i creatori delle librerie reactive
streams, e non sono riuscito a convincerli che ci fosse bisogno di un
messaggio all'indietro (rispetto allo stream dei dati) che dicesse "ho
terminato di utilizzare il dato".
La loro (corretta) argomentazione è stata che A) molti casi non ne
hanno bisogno e pagherebbero il costo e B) se hai bisogno di uno
stream nella direzione opposta lo crei.

In particolare nel tuo esempio, dove il dato è un ByteBuffer (che può
essere riutilizzato), non rimane che leggersi la documentazione dove
_dovrebbe_ essere dettagliato il comportamento preciso del subscriber:
se copia il ByteBuffer (e quindi al ritorno del metodo si può
riutilizzare), oppure se mantiene un reference (che obbliga il
publisher ad allocare sempre ByteBuffers nuovi per ogni dato).

Facci sapere.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Re: “The GraalVM frenzy”

2019-08-11 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Sun, Aug 11, 2019 at 4:58 PM francesc...@yahoo.it
[it-torino-java-jug]  wrote:
> Personalmente ho valutato Graal nella JVM, ma ho notato, ad esempio, che per 
> varie motivazioni le nuove proposte (come il Valhalla) sono implementate sul 
> brutto e vecchio C2. Se Graal è "più bello" perché fossilizzarsi sul C2?

Perché nonostante l'hype su Graal, C2 è ancora più performante su molti fronti.
Ci sono alcuni casi particolari dove Graal è meglio di C2 ma
diversamente non è ancora arrivato al punto in cui è chiaro che è
meglio di C2 e quindi C2 viene rimosso.

> Altro punto è il miglioramento delle prestazioni, non voglio contestare i 
> risultato esposti ma alcune ottimizzazioni presenti in C2 sono presenti solo 
> nella versione a pagamento di Oracle (github issue 864).

Intendi la versione enterprise di Graal, non C2.

> Infine i GC su JVM
> Se usate SubstrateVM dovete usare un GC semplice, ma se usate la JVM dovete 
> usare il G1, niente Shenandoah.

Questo è vero solo per i binari creati da Oracle, ma ci sono molti
altri vendor che invece producono binari che contengono Shenandoah.
https://adoptopenjdk.net/.
Basta non usare i binari di Oracle e hai tutta la scelta che vuoi.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Revamping di un progetto opensource: java 11 e moduli

2019-07-25 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Thu, Jul 25, 2019 at 11:59 AM Federico Fissore feder...@fsfe.org
[it-torino-java-jug]  wrote:

>
>
> Carlo Pellegrini carlo.pellegr...@gmail.com [it-torino-java-jug] ha
> scritto il 25/07/19 alle 11:50:
> >
> >
> > A una prima occhiata hai uno split package tra test e sorgente. Puoi
> > rifattorizzare i test per evitare che usino lo stesso package dei
> sorgenti?
> >
>
> Sono due package diversi: la libreria sta in
>
> org.fissore.jrecordbind
>
> mentre i test stanno in
>
> org.fissore.jrecordbindtests
>
> E' voluto ed è anche obbligatorio a quanto capisco: due moduli (jar) non
> possono avere lo stesso package
>

Solo se sono dei moduli.
Non credo che tu voglia rendere il jar dei tests un modulo, perché nessuno
lo usarebbe come tale.

Quindi anche se avessero lo stesso package, non sarebbe uno split package
perché uno avrebbe il module-info.java, ma l'altro no.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Revamping di un progetto opensource: java 11 e moduli

2019-07-19 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Thu, Jul 18, 2019 at 10:15 AM Federico Fissore feder...@fsfe.org
[it-torino-java-jug]  wrote:
>
>
>
> Ciao a tutti
>
> In questi giorni sto aggiornando a java 11 e ai moduli un progetto
> opensource che feci ben 10 anni fa: jrecordbind
>
> Dopo molti tentativi, sono arrivato a qualcosa che compila e ha i test
> verdi ma solo quando girano nell'IDE!

IntelliJ (e credo altri IDE) non girano ancora i tests usando il
module-path, ma tutto nel class-path.
Maven, invece, usa il module-path in questo modo: le classi sorgenti e
le dipendenze dichiarate nel module-info sono nel module-path, le
classi di test vengono aggiunte al modulo principale via
"patch-module", e le dipendenze di test sono nel class-path.

Ovviamente il comportamento è notevolmente differente nei due casi,
quindi va bene usare l'IDE ma devi sempre verificare che Maven passi
il build.

> Se lancio "mvn clean install" da terminale, i test falliscono con un
> messaggio del tipo
>
> java.lang.IllegalAccessException: class org.fissore.jrecordbind.Utils
> (in module org.fissore.jrecordbind) cannot access class
> org.fissore.jrecordbindtests.test.MyEnumConverter (in module
> org.fissore.jrecordbindtests) because module
> org.fissore.jrecordbindtests does not export
> org.fissore.jrecordbindtests.test to module org.fissore.jrecordbind
>
> Se al module-info del modulo di test aggiungo
>
> exports org.fissore.jrecordbindtests.test to org.fissore.jrecordbind;
>
> il compilatore si arrabbia con
>
> module-info.java:[6,39] package is empty or does not exist:
> org.fissore.jrecordbindtests.test
>
> Immagino succeda perchè le classi di test sono sotto src/test invece che
> src/main
>
> Qualche anima pia ha un po' di tempo per aiutarmi a capire come uscirne?
> Il codice è su github, branch "3.0.0"

Questo è un caso particolare in cui una classe principale deve
accedere ad altre classi fuori dal suo package, ma senza dipendenza
esplicita (reflection?).

Devi pensare a cosa dovrebbe fare una applicazione per usare
jrecordbind: probabilmente nel tuo caso dovrebbe aprire se stessa a
jrecordbind.
Quindi devi fare la stessa cosa nei tests, ma modificando Surefire
Maven Plugin in questo modo:


  maven-surefire-plugin
  

  @{argLine}
  --add-exports ...

  


Non ho visto in dettaglio il tuo progetto, ma puoi trovare diversi
esempi in Jetty 10.0.x e CometD 6.0.x di come ho dovuto configurare
Surefire per far funzionare i tests.
A volte serve --add-modules, altre --add-reads, altre --add-exports,
altre --add-opens, ecc.

Pensa ai tuoi tests come se fossero una applicazione esterna, e
capirai quali command line options per i moduli ti servono nella
configurazione di Surefire.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Migliori librerie per WebSocket?

2019-07-01 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Mon, Jul 1, 2019 at 3:46 PM Andrea Ligios andrealig...@gmail.com
[it-torino-java-jug]  wrote:
> Ciao a tutti,
>
> sto facendo dello scouting per un POC di un sistema WebSocket (sia 
> backend-backend che backend-frontend).
>
> A questo proposito, il talk su Vert.x è "caduto a fagiolo" perchè mi ha 
> aperto un'ulteriore strada, seppur non immediatamente percorribile nel mio 
> caso (forse con la versione 4 ed il tracing...).
> Ricordo che in passato c'era un framework chiamato Atmosphere che provava a 
> racchiudere il meglio dei vari mondi, da Netty a Vert.X passando per Jetty, 
> ma oggi sembra abbandonato.

Puoi usare CometD, una libreria simile (migliore, ma sono ovviamente
biased) ad Atmosphere, ma attualmente manutenuto da noi.
https://cometd.org

> Ho visto che Camel espone parecchio in tal senso, ma potrebbe essere un po' 
> troppo overkill...
>
> So che ci sono diversi guru in materia qui, per cui vi chiedo: quale libreria 
> consigliate, e perchè?
>
> Domanda bonus: che voi sappiate, i sysadmin italiani storcono il naso davanti 
> a WS (leggasi: si rifiutano di abilitare il protocollo a livello di 
> firewall), o lo trattano al pari di HTTP?

WebSocket viaggia sulle porte HTTP, quindi a livello di porte non c'è problema.
Il problema ce l'hai se fai reverse proxying (e.g. Apache, Nginx)
perché a quel punto devi configurare il reverse proxy per "capire"
WebSocket.
Oppure usi un load balancer come HAProxy e togli il reverse proxy (che
è quasi sempre meglio).

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Biglietto gratuito Serverless Days Milano

2019-05-28 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

al meeting del 22 Maggio abbiamo estratto 2 biglietti gratuiti per
https://milan.serverlessdays.io/.

Uno è stato vinto da Mauro Cerbai, al quale ho già mandato le
istruzioni per ottenere il biglietto.
L'altro da chi è stato vinto? Se non fosse più interessato, chi era la
terza persona interessata al biglietto ma che non l'ha vinto?

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Serverless Days Milano

2019-05-19 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

l'organizzazione di Serverless Days Milano invita i membri del JUG
Torino a partecipare alla conferenza:
https://milan.serverlessdays.io/, che si terrà il 21 Giugno.

Visto che il nostro meetup di Giugno è il 26, estrarremo 2 biglietti
omaggio per Serverless Days Milano nel meetup di Maggio, cioè
dopodomani, martedi 21 Maggio.

Vi invito a iscrivervi al meetup di Maggio se non l'avete già fatto:
https://www.meetup.com/JUGTorino/events/261025107/

A presto!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Benchmark Shenandoah e ZGC

2019-05-04 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Sat, May 4, 2019 at 8:17 PM francesc...@yahoo.it
[it-torino-java-jug]  wrote:
> Bingo, con puntatori a 64 bit sono 64 bit in più per oggetto, non pochi. Per 
> come descrivono l'algoritmo sembra comunque che questi 4 byte non finiscano 
> nella cache, ma questo per me è solo un altro punto da appurare.
> Nel caso di puntatori a 32 bit sono 32 bit in più per ogni oggetto, d'altra 
> parte ZGC aggiunge 32 per ogni riferimento (tutti i puntatori sono a 64 bit).
> Se prendiamo per buono che 32gb siano equivalenti a 48gb 
> (https://blog.codecentric.de/en/2014/02/35gb-heap-less-32gb-java-jvm-memory-oddities/),
>  allora sarebbe un 25% di memoria in più, o un 25% di stack o di cache in 
> meno.

No.

Hanno introdotto string deduplication apposta e se hai mai fatto
profiling di un'applicazione avrai notato che le maggiori allocazioni
sono quelle di byte[], int[], ecc.
Il forward pointer viene ammortizzato per gli array, che sono la gran
parte di quello che c'è nello heap (stringhe, ecc.).
Qui trovi Shipilev che parla del 5-10% in media:
https://shipilev.net/talks/vmm-Sep2017-shenandoah.pdf

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Benchmark Shenandoah e ZGC

2019-05-04 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,


On Sat, May 4, 2019 at 4:12 PM francesc...@yahoo.it
[it-torino-java-jug]  wrote:
> L'impressione che ho è che Z sia un progetto meno maturo di Shenandoah, da 
> qui la sua semplicità.

No, Z è più semplice perché l'algoritmo di GC è molto più semplice e
perché c'è una sola GC barrier.
E perché hanno deciso che alcune cose non le fanno; per esempio non
c'è il fall back a FullGC.
Come maturità credo che siamo lì - hanno solo fatto scelte diverse.

> Sicuramente migliorerà con il tempo ma questo vale anche per Shenandoah.
>
> Con questa maggior sofisticazione c'è anche il rischio di complicarsi
> la vita e di effettuare un tuning o scegliere delle configurazioni non
> ottimali.
>
> Questo rischio c'è per tutti i GC di Java, G1 ha molti parametri difficili da 
> impostare ma è comunque utilizzato proficuamente.

Io ho esperienza di clienti che hanno dovuto abbandonare sia CMS sia G1.
E per quanto abbiamo provato a configurare G1, non c'era nulla da fare
per ridurre le pause.

> Se non hai problemi di RAM, imposti uno heap generoso e ZGC fa il resto.
>
> Se non ho problemi di RAM, imposto un heap generoso e Epsilon fa il resto :)
> Battute a parte credo che questo valga per tutti i GC.

No. Epsilon lo puoi usare solo se non fai *mai* GC.
Se devi fare GC, quasi tutti i collector - a parte Z e Shenandoah -
hanno una diretta dipendenza delle pause con la dimensione dello heap.
G1 usa delle strutture dati per "mappare" lo heap quindi più è grosso
lo heap più queste strutture dati mappano porzioni più ampie di
memoria e richiedono più processing.
Se fosse facile come dici tu per *tutti* i GC non ci si sarebbe dati
da fare con i GC concorrenti come Z e Shenandoah.
E' proprio il contrario anzi: dando più RAM ai "vecchi" GC avevi più
problemi, e certo non era una cosa che potevi fare alla leggera.
Invece con Z e Shenandoah puoi farlo tranquillamente.

> Condivido, ma dovendo optare tra un GC che funziona sempre ed un crash in 
> produzione la scelta è facile.

Io non ne ho visti di crash.
Seguo entrambe le mailing list e di report di crash recenti non ce ne sono.
Certo che ci saranno, ma ne ho visti anche con G1.

> Interessante, hai misurato anche il carico sulla CPU o altro?

No, solo le pause STW.

> Z comunque ha un problema non banale: il mancato supporto dei compressed oops.
> Gli heap minori di 32gb non sono rari, in questo caso Z richiede 
> sensibilmente più memoria di G1.

E Shenandoah ha il forward pointer in più.
Dipende da cosa intendi per "sensibilmente" ma non credo che si parli
di più del 10%.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Benchmark Shenandoah e ZGC

2019-05-04 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Fri, May 3, 2019 at 9:54 PM francesc...@yahoo.it
[it-torino-java-jug]  wrote:
> Ciao,
>
> mi sto interessando ai nuovi GC per JVM grazie anche all'ottima introduzione 
> di Simone.
>
> Ho l'impressione che ci sia ancora poca letteratura a riguardo, tra cui molti 
> articoli copia-incolla (spesso senza citare le fonti).
>
>
> Volevo approfondire la questione, farmi una idea più precisa e poter 
> comprendere meglio come, sul campo, si differenziano queste nuove soluzioni 
> (specialmente in termini di prestazioni che dipendono da molteplici fattori).
>
>
> Ad oggi sono diventato simpatizzante di Shenandoah, ho l'impressione sia 
> decisamente più maturo (e pronto per la produzione) di ZGC, praticamente una 
> scelta obbligata con JVM pre 12, per heap fino a 32 GB o superiori ai 4 TB, 
> forse anche preferibile in architetture non Sparc.

La mia impressione è che Shenandoah sia più sofisticato di ZGC.
C'è più attenzione ai casi estremi dove il GC è in difficoltà a causa
della mancanza di memoria, c'è la possibilità di specificare delle
euristiche diverse, ecc.
Con questa maggior sofisticazione c'è anche il rischio di complicarsi
la vita e di effettuare un tuning o scegliere delle configurazioni non
ottimali.

Secondo me il plus di ZGC è la sua semplicità.
Se non hai problemi di RAM, imposti uno heap generoso e ZGC fa il resto.

Per tutti i GC, e quindi anche per Shenandoah e ZGC non vuoi mai
arrivare alla condizione in cui il GC è al limite e sta per finire in
FullGC o in allocation stall.
Da qui l'impostare uno heap generoso e sempre da qui forse gran parte
della sofisticazione di Shenandoah è qualcosa che magari non userai
mai.

Il plus di Shenandoah è il fatto che sia disponibile per JDK 8+ e per
tutte le piattaforme.
ZGC è solo per Linux x86_64 e stanno facendo il port su ARM (AArch64,
sperano di finirlo in tempo per JDK 13, c'è una deadline a metà
Giugno).

Nei miei benchmark, ZGC ha sempre avuto pause STW più corte di Shenandoah.
Parliamo di 2 ms per ZGC contro 4 ms di Shenandoah contro 40 ms di G1.
Quindi sembra che ZGC sia il doppio meglio di Shenandoah, ma parliamo
di valori assoluti molto piccoli in entrambi i casi.

A questo punto secondo me G1 è superato.
Non vedo nessun motivo di usare G1 quando puoi usare Shenandoah o ZGC.
Penso che il throughput sia paragonabile ma G1 ha delle pause STW
molto più lunghe.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Fwd: Per tutti i membri di JUG Torino: i Programmi di Learning di Codemotion

2019-05-03 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi inoltro questo messaggio da parte di Codemotion.



Codemotion Learning Training Programs


Nello specifico si tratta di:

   - Tech Leadership Training di DevC by Facebook
   

   - GCP Developer Enablement Program by Google Cloud Platform
   

   - NEXI Dev Training Program by NEXI
   



I tre percorsi prevedono una parte di formazione e la verifica delle
competenze acquisite che permette di ricevere una certificazione ufficiale.

Tutte le informazioni si trovano ai link dei tre programmi che vi ho
riportato sopra da dove ci si può anche iscrivere.
-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Meeting 28 marzo

2019-03-29 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Fri, Mar 29, 2019 at 12:58 PM 'paolo.bertin' paolo_bertin...@yahoo.it
[it-torino-java-jug]  wrote:

>
>
> In effetti per chi è appassionato di programmazione in Java è difficile
> trovare argomenti non interessanti che la riguardino , oltrettutto se
> esposti da persone competenti. Sarebbe quindi bello se la registrazione
> fosse 'regola' (fatto salvo il peso organizzativo). Anche perché a parte
> me, se non ho visto male, al Meetup JUG Torino, sono iscritte più di
> qualche centinaio di persone le quali dubito vivano tutte nei dintorni di
> Torino. La registrazione delle sessioni permetterebbe perciò di seguire gli
> eventi anche a chi per questioni di tempo e/o distanza non può essere
> presente.
>

E' esattamente così e cerchiamo di registrare tutte le volte che possiamo :)

Stay tuned :)

Per chi fosse nuovo, vi ricordo il canale YouTube:
https://www.youtube.com/jugtorino

Iscrivetevi se non l'avete ancora fatto!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Cloudconf 2019

2019-03-22 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Fri, Mar 22, 2019 at 9:08 AM Massimo Ugues m.ug...@gmail.com
[it-torino-java-jug]  wrote:
> Ciao, per caso abbiamo ancora sconti sulla cloudconf?

No, per quanto ne so sono terminati e la conferenza è vicina al
sold-out, quindi affrettati.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Re: Java 12

2019-03-20 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Wed, Mar 20, 2019 at 10:33 PM francesc...@yahoo.it
[it-torino-java-jug]  wrote:
>
>
>
> Ciao Simone,
> lo abbiamo provato in sviluppo ed è nel treno per il prossimo rilascio.
> Assolutamente nessun problema di sorta migrando dalla JVM 11, non abbiamo 
> provato però javac perché il sorgente è in Kotlin.
> Ho approfittato per sperimentare anche Graal con JVMCI e (a una prima 
> occhiata) mi è sembrato interessante.
>
> Ho provato anche ad attivare Shenandoah sulla immagine di OpenJDK 12 ma non 
> ha funzionato.
> Qualcuno sa come attivarlo?

Shenandoah è nel repository di OpenJDK 12 (source code), ma i binari
che produce Oracle non ce l'hanno.
Bisogna quindi scaricarlo da un'altra parte.
Qui: https://builds.shipilev.net/

Ovviamente sul sito di RedHat ci sono solo i binary per Windows:
https://developers.redhat.com/products/openjdk/download/

Chissà che pensavo, di trovare OpenJDK per Linux sul sito di RedHat.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Java 12

2019-03-20 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

come un orologio, ieri è uscito Java 12.
Vi farò una brevissima presentazione al meeting del 28 Marzo, prima
della sessione principale.

Noi ce l'abbiamo in produzione da qualche tempo e va che è una meraviglia.
Qualcun altro l'ha provato?

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: [ANN] Meeting 28 Marzo 2019

2019-03-12 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

On Mon, Mar 11, 2019 at 10:52 PM Simone Bordet  wrote:
>
> Ciao a tutti,
>
> il 28 Marzo ospitiamo Francesco Vasco, Software Architect di
> Lightstreamer e membro del JUG Milano.
>
> Ci sarà una breve sessione sulle novità di Java 12 e nella sessione
> principale Francesco ci parlerà di programmazione reactive con Spring,
> e verranno realizzati alcuni esercizi, quindi portate il vostro
> laptop!
>
> Per maggiori informazioni:
> http://jugtorino.it/2019/03/11/meeting-marzo-2019.html

Causa orario di disponibilità della sala in Toolbox, il meeting è
spostato di mezz'ora, alle 19:00.
Sempre il 28 Marzo, dopo la CloudConf.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] RFC: slf4j-fluent

2019-01-08 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Tue, Jan 8, 2019 at 11:41 AM Federico Fissore feder...@fsfe.org
[it-torino-java-jug]  wrote:
> Simone Bordet simone.bor...@gmail.com [it-torino-java-jug] ha scritto il
> 08/01/19 alle 10:54:
> >
> > Se il livello di logging non è attivo, paghi il costo di if
> > (isXXXEnabled()) (dentro FluentLogger) e paghi il costo
> > dell'allocazione dell'Object[] per varargs, string concatenation,
> > boxing, lambda creation, ecc.
>
> Quello è un costo che paghi comunque usando slf4j liscio.

Non è vero.

if (log.isDebugEnabled()) {
  log.debug("a" + "{}", 1)
}

Se non sei in DEBUG paghi solo l'if.

Nel tuo caso:

log.atDebug().log("a" + "{}", 1);

paghi l'if (dentro atDebug()), string concatenation, boxing e varargs array..

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] RFC: slf4j-fluent

2019-01-08 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Tue, Jan 8, 2019 at 9:21 AM Federico Fissore feder...@fsfe.org
[it-torino-java-jug]  wrote:
> Ciao a tutti
>
> Volevo chiedere il vostro feedback su una libreria che ho scritto ieri,
> slf4j-fluent [0]: wrappa slf4j per fornirne una API fluente
>
> Per provarla in poco tempo vi serve un progetto dove già usate slf4j e
> java 8+: aggiungete la dipendenza al pom
>
> 
> org.fissore
> slf4j-fluent
> 0.1.0
> 
>
> e usate il FluentLogger, ad esempio
>
> FluentLogger log = FluentLoggerFactory.getLogger(getClass());
>
> log.atDebug().log("A debug log entry with {} args: {}, {}", 2, "value
> 1", lazy(() -> someObject.expensiveMethod()));
>
> log.atError().withCause(exception).log("An error occured while fetching
> user {}", user.getId());
>
> Notate i metodi "atDebug" etc per scegliere il livello di logging,
> "withCause" per specificare l'eccezione, e "lazy" per posporre la
> costosa valutazione di un argomento

Mi sembra che purtroppo devi allocare ogni volta che chiami uno dei
metodi di FluentLogger, e non puoi eliminarla se non usando di nuovo
if (isDebugEnabled()).
Mi sembra un costo da pagare troppo alto, per una libreria di logging
e per il beneficio (?) sintattico.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Implementazioni no-op: hotspot rimuoverà la chiamata al metodo vuoto?

2019-01-07 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Mon, Jan 7, 2019 at 4:39 PM Federico Fissore feder...@fsfe.org
[it-torino-java-jug]  wrote:
> Ho un'interfaccia implementata in due modi, uno dei quali è un no-op:
> tutti i metodi sono vuoti
>
> Anche se le classi che usano questa interfaccia possono in teoria
> passare dall'implementazione no-op a quella "vera" a runtime, di solito
> non succede
>
> Hotspot capirà che l'implementation è vuota, non ha side-effect e quindi
> deciderà di eliminare del tutto la chiamata ai metodi?

Perché lo chiedi?
Scommessa con un collega?
Curiosità?
Design?

Short answer: yes.

Long answer:
HotSpot sa che YourInterface ha 2 implementazioni, quindi in JIT
ottimizza i call site in questo modo, da:

yourIntf.method();

in questo (bimorphic call site):

if (yourInterface instanceof NoImpl) {
  ((NoImpl)yourIntf).method();
} else {
  ((RealImpl)yourIntf).method();
}

Il JIT continua poi a ottimizzare quanto sopra, facendo l'inline dei
due metodi, quindi il call site diventa:

if (yourInterface instanceof NoImpl) {
  // Nothing - inline of NoImpl.method().
} else {
  System.out.println("42"); // Inline of RealImpl.method().
}

Con tre o più implementazioni, il call site diventa megamorphic e non
viene ottimizzato, rimane sempre (in pseudo ASM):

virtualTable = lookup(yourIntf.getClass());
address = virtualTable.addressForMethod["method"];
call address

Quanto sopra a grandi linee; quindi con 2 implementazioni paghi sempre
il costo dell'instanceof (1 clock - è solo un'eguaglianza tra
indirizzi), ma non il costo del "jump" al metodo vuoto (né il costo
dei lookup nel caso megamorphic).
Il fatto che il metodo venga inlined dipende da quante volte è
chiamato, e dal budget del compilatore.
Ovviamente dipende dal compilatore usato (C1, C2/Graal) e credo che
dipenda anche da ogni call site: la stessa chiamata a
yourIntf.method() può essere inlined in un call site ma non in un
altro (perché per esempio in un call site è chiamata raramente).
E ovviamente dipende dalla JVM e dalle migliorie che hanno fatto ai vari JITs.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Meeting Dicembre: scegli la sessione!

2018-12-12 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

On Tue, Dec 11, 2018 at 6:16 PM Simone Bordet  wrote:
>
> Ciao a tutti,
>
> per il meeting di Dicembre proponiamo due scelte, che potete votare a
> questo poll:
>
> https://www.meetup.com/JUGTorino/polls/1273573/
>
> Visto i tempi un po' stretti, le votazioni chiudono domani (dobbiamo
> avvertire Toolbox e dare loro l'abstract della sessione scelta).

Ha vinto "Live Design & Coding".
Mercoledì 19 Dicembre, ore 18:30, Toolbox.

Qui trovate i dettagli del meetup:
https://www.meetup.com/JUGTorino/events/257163065/

Participate numerosi e invitate i colleghi!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Meeting Dicembre: scegli la sessione!

2018-12-11 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

per il meeting di Dicembre proponiamo due scelte, che potete votare a
questo poll:

https://www.meetup.com/JUGTorino/polls/1273573/

Visto i tempi un po' stretti, le votazioni chiudono domani (dobbiamo
avvertire Toolbox e dare loro l'abstract della sessione scelta).

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Tuples in Java 8 streams

2018-11-30 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,


On Fri, Nov 30, 2018 at 1:24 PM Federico Fissore feder...@fsfe.org
[it-torino-java-jug]  wrote:
>
>
>
> Molto figo, ma attenzione ai memory leak
>
> Una Inner class tiene in automatico un riferimento alla classe che l'ha
> creata.

Non mi risulta. Hai dei links?

> Tutto ok finchè il ciclo di vita della "tupla" è uguale o simile
> a quello di quella classe; altrimenti è un memory leak da tenere sotto
> controllo

Non credo, se no tutti gli usi di anonymous inner classes sarebbero
"pericolosi".

Secondo me viene creata la classe la prima volta, come dice Uberto,
legata al classloader, non alla enclosing class.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Tuples in Java 8 streams

2018-11-29 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Thu, Nov 29, 2018 at 10:04 AM Riccardo Tasso
riccardo.ta...@gmail.com [it-torino-java-jug]
 wrote:
> Sicuramente è un bel trick, ma non è costoso creare una inner class per ogni 
> elemento dello stream?

Se ti serve una tupla, allocheresti comunque una classe Pair o Tuple
per portare avanti nello stream più di un valore, come nell'esempio.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Tuples in Java 8 streams

2018-11-28 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ho appena letto la newsletter "Java Specialist" di Heinz Kabutz, dove
riporta che Henri Tremblay ha trovato un modo di usare le tuple negli
streams di Java 8:

Arrays.asList("1", "22", "333").stream()
.map(v -> new Object() {
String value = v;
int length = v.length();
})
.filter(tuple -> tuple.length % 2 == 0)
.forEach(tuple -> System.out.println(tuple.value));

Notate come in map() viene creata una anonymous inner class di Object
con 2 fields, "value" e "length", che può poi essere referenziata dopo
in altri metodi di Stream.

Funziona da Java 8 in avanti.

Devo dire che sono impressionato!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] AWSome Day Torino 2018

2018-11-15 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi segnalo AWSome Day Torino 2018, un evento che si tiene al Lingotto
venerdì 23 Novembre 2018 (

Per chi è venuto al meetup tenuto da Walter Dal Mut
(https://www.meetup.com/JUGTorino/events/252738866/) è un altro evento
interessante e gratuito per imparare e fare networking.

Registratevi qui:
https://pages.awscloud.com/AWSomeDay-Corley_page-registration.html.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Spring boot

2018-11-08 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Thu, Nov 8, 2018 at 11:53 PM Uberto Barbini uberto.g...@gmail.com
[it-torino-java-jug]  wrote:
> in questo modo i log entrano a far parte del dominio, specifiche e tutto il 
> resto. Inoltre non c'e' piu' il concetto di debug/info/warn/trace ecc. o un 
> evento e' significativo e lo notifichi oppure no.

Ma secondo me il problema è definire "significativo".
Quello che è importante per qualcuno non lo è per qualcun altro.

Io sono sempre stato un fan del tagged logging: niente livelli
(debug/info/warn) ma solo tags.
A quel punto come dici tu il logging diventa una feature e cosa devi
loggare dal punto di vista del business lo chiedi al cliente, mentre
lo sviluppatore fa il logging degli internals dell'implementazione.

Da Java 9 si è arrivati a questo per il logging interno della JVM, ma
niente da fare ancora per il logging applicativo e i vari SLF4J,
Log4J2 e LogBack che sono ancorati al modello di 20-30 anni fa.

> Kirk Pepperdine mi ha fatto notare una volta come uno dovrebbe loggare il 
> meno possibile quando va tutto bene e il piu' possible quando succede qualche 
> cosa di sbagliato.

Anche qui definire "sbagliato" è difficile.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Visionary Days

2018-10-30 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi riporto questo evento a Torino:
https://www.visionarydays.it/

La partecipazione è aperta solo al range di età 18-35.
Se siete interessati, iscrivetevi tramite il sito linkato sopra.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Sconti Codemotion Milano

2018-10-23 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

a fine Novembre ci sarà il Codemotion a Milano.

Come JUG, abbiamo degli sconti sia sui biglietti della conferenza
(https://www.eventbrite.com/e/codemotion-milan-2018-conference-november-29-30-tickets-47067848201?discount=COMMUNITY_JUGTORINO#tickets)
e anche sui seguenti workshops:

http://bit.ly/mi18ce_blockchain_wscommunity
http://bit.ly/mi18ce_ai_wscommunity
http://bit.ly/mi18ce_kubernetes_wscommunity
http://bit.ly/mi18ce_angular_wscommunity

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Il JUG vuole voi!

2018-10-18 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Thu, Oct 18, 2018 at 9:27 PM Andrea Ligios andrealig...@gmail.com
[it-torino-java-jug]  wrote:
>
>
>>
>> Il nostro canale youtube e' per te:  
>> https://www.youtube.com/channel/UCdqynAC__q2LGHYGxzkWRTA
>
>
> Con 165 iscritti si potrebbe rendere più comodo, 
> https://www.youtube..com/channel/JUGTorino o similare... prettification FTW! 
> :)

Ce l'abbiamo già ma Frank se l'è dimenticato.

https://www.youtube.com/jugtorino

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: [ANN] Meeting 17 Ottobre

2018-10-17 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

vi ricordo il meeting di stasera (vedere email sotto)!

Partecipate numerosi e portate i colleghi!

On Tue, Oct 9, 2018 at 11:18 AM Simone Bordet  wrote:
>
> Ciao a tutti,
>
> il prossimo 17 Ottobre si terrà il prossimo meeting del JUG Torino:
> http://jugtorino.it/2018/10/09/meeting-ottobre-2018.html
>
> Simone Bordet ci presenterà le novità di Java 11, a partire dal nuovo
> licensing fino alle novità introdotte in questa versione - con uno
> sguardo alle novità già introdotte in Java 10 e Java 9.
>
> Registratevi gratuitamente qui:
> https://www.meetup.com/JUGTorino/events/255367169/

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] [ANN] Meeting 17 Ottobre

2018-10-09 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

il prossimo 17 Ottobre si terrà il prossimo meeting del JUG Torino:
http://jugtorino.it/2018/10/09/meeting-ottobre-2018.html

Simone Bordet ci presenterà le novità di Java 11, a partire dal nuovo
licensing fino alle novità introdotte in questa versione - con uno
sguardo alle novità già introdotte in Java 10 e Java 9.

Registratevi gratuitamente qui:
https://www.meetup.com/JUGTorino/events/255367169/

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Java 11!

2018-09-26 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Tue, Sep 25, 2018 at 9:24 PM Simone Bordet  wrote:
>
> Ciao,
>
> Java 11 è stato rilasciato.
>
> Ci vediamo domani per parlarne: 10 mins prima del main talk, e poi a cena..

Come riferimento, vi lascio il documento prodotto in collaborazione
con i Java Champions, Oracle e gli altri JDK vendors sullo stato delle
cose per quanto riguarda Java e JDK 11.
In particolare per quanto riguarda le licenze (Java è ancora
gratuito?) ci sono dei grossi cambiamenti.

https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo

Fate conoscere all'interno delle aziende in cui lavorate!

--
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] [REMINDER] Meeting stasera!

2018-09-26 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

vi ricordo il meeting di stasera su AWS BeansTalk e Docker!
https://www.meetup.com/JUGTorino/events/252738866/

Con l'occasione, faremo una breve presentazione su JDK 11 (con un
meeting più ricco più avanti) e ci sarà l'estrazione di un biglietto
gratis per Voxxed Days Ticino.

A dopo!

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Meeting JUG 26/9/2018: Estrazione biglietto Voxxed Days Ticino

2018-09-21 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

On Fri, Sep 21, 2018 at 11:27 AM Simone Bordet  wrote:
>
> Ciao a tutti,
>
> gli organizzatori di Voxxed Days Ticino
> (https://voxxeddays.com/ticino/) ci hanno messo a disposizione un
> biglietto gratuito per partecipare alla conferenza.
>
> Io e Frank siamo speaker e andiamo la sera prima in auto.
>
> La conferenza negli anni è sempre stata interessante, con speaker di
> alto livello, e anche quest'anno con una serie di sessioni veramente
> interessanti, da Graal a CQRS, Machine Learning, Kotlin e ci sarà -
> son sicuro - anche un nuovo framework JavaScript.
>
> Chiederemo ai partecipanti chi è interessato al biglietto e poi
> estrarremo a sorte.

Dimenticavo di dire che per chi non vince il biglietto, c'è comunque
uno sconto JUG del 25% sul prezzo del biglietto.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Fwd: [jc] [jakarta.ee-community] Webinar: Creating CI/CD pipelines for EE4J projects [1 Attachment]

2018-09-11 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

volevo segnalarvi questo webinar, che mostrerà come alcuni progetti ex
JEE stanno migrando a JakartaEE, soprattutto dal punto di vista delle
pipelines CI/CD.

E' una ottima opportunità per chi volesse dare un contributo a queste
tecnologie e voglia imparare Maven o sia già un Maven monk.

L'idea è quella di spiegare cosa hanno già fatto, presentare cosa c'è
da fare e chiedere aiuto alla comunità.

-- Forwarded message -
From: Martijn Verburg 

Hi all,

Here's a reminder for a webinar covering the CI / CD migration for
Java EE to Jakarta EE at the Eclipse Foundation.

Please share amongst your communities as Jakarta EE could do with some
good old practical Maven help to get Java EE projects ported over.

Cheers,
Martijn


-- Forwarded message -
From: Dmitry Kornilov 
Date: Tue, 11 Sep 2018 at 21:39
Subject: [jakarta.ee-community] Webinar: Creating CI/CD pipelines for
EE4J projects
To: Jakarta EE community discussions 


Hi,

As part of our next weekly build team sync up meeting we are hosting a
webinar “Creating CI/CD pipelines for EE4J projects”. Authors of two
working pipelines Tomas Kraus (JSON-P project) and Markus Karg (JAX-RS
project) will demonstrate their work and explain it in details.
Eclipse webmasters are also participating, so you will have an
opportunity to get answers to your questions about the Eclipse
infrastructure. Feel free to forward this invitation to all
interesting parties.

Meeting details:

Creating CI/CD pipelines for EE4J projects
Scheduled: 12 Sep 2018 at 16:00 to 17:00 (CET+1)
Organizers: Dmitry Kornilov, Ed Bratt
--

Zoom: https://zoom.us/my/edbratt

+1 646 558 8656 or +1 669 900 6833 US Toll
Meeting ID: 327 448 7218
International numbers available: https://zoom.us/u/vtOXR

Thanks,
Dmitry



___
jakarta.ee-community mailing list
jakarta.ee-commun...@eclipse.org
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jakarta.ee-community
_._,_._,_

Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#2492) | Reply To Group | Reply To Sender | Mute
This Topic | New Topic

Your Subscription | Contact Group Owner | Unsubscribe [simone.bor...@gmail.com]

_._,_._,_



-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Porting standalone Jetty configuration to embedded

2018-08-23 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,


On Thu, Aug 23, 2018 at 5:11 AM Andrea Cerisara andreaceris...@gmail.com
[it-torino-java-jug]  wrote:

>
>
> Ciao a tutti,
>
> abbiamo attualmente Jetty che gira in produzione con un tot di
> configurazioni custom (diversi connectors e thread pools, sessione che
> scrive su db, https, etc..) e stiamo lavorando ad una versione embedded con
> configurazione Java perche' ci semplicifica la gestione sui server di
> produzione.
>
> Idealmente vorremmo avere un test automatico che verifichi la
> configurazione che abbiamo scritto, e l' idea sarebbe di chiedere a Jetty
> di fare un dump della sua configurazione in modo da poterla confrontare.
> Qualcosa del tipo:
>
> 1. Lanciare il server attuale e fare un dump, salvandola come baseline
> 2. Nel test automatico far partire il server embedded, fare il dump della
> configurazione e confrontarla con la baseline
>
> Questo ci servirebbe anche in futuro per verificare eventuali
> incompatibilita' in caso di aggiornamento di Jetty.
>
> Ho giocato un po' con `--list-modules`, `--list-config` e .dump() lato
> Java ma non e' propriamente quello che ho in mente. Idee? Suggerimenti?
>

Io avrei detto che dump() fa al caso tuo.
Se i Jetty components sono gli stessi nei due casi, allora il comportamento
sarà lo stesso.
I Jetty components possono essere leggermente diversi e puoi ancora avere
lo stesso comportamento.
Per esempio il server standalone ha un deployer che monitora la directory
"$JETTY_BASE/webapps", che magari non ti serve nel caso embedded.
Nel caso embedded magari non ti servono webapps nel senso di war con
web.xml, classloader isolation, ecc. quindi anche quello potrebbe essere
diverso.

Fare una cosa automatica non dovrebbe essere difficile: in entrambi i casi
puoi verificare via JMX che i Jetty components fondamentali (magari non
tutti) ci siano.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] [ANN] Meeting 6 Giugno

2018-05-28 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

il prossimo 6 Giugno si terrà il prossimo meeting del JUG:
http://jugtorino.it/2018/05/28/meeting-giugno-2018.html

Francesco Nigro ci presenterà "Put your code on fire with FlameGraphs"..

Registratevi gratuitamente qui:
https://www.meetup.com/JUGTorino/events/251105464/

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Webinar CQRS, MicroServices e Axon Framework

2018-05-15 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi segnalo il webinar in oggetto per chi fosse interessato.
Registrazione: https://bit.ly/2HVJjnu

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] REST API asincrone, CompletableFuture e Callable

2018-03-29 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

2018-03-29 16:19 GMT+02:00 Federico Fissore feder...@fsfe.org
[it-torino-java-jug] :
> Ciao a tutti
>
> l'altro giorno stavo chattando con un collega su CompletableFuture e
> AsyncResponse di jax.rs. Lui, fan di spring, mi risponde che per rendere
> una API REST asincrona ti basta scrivere una cosa come
>
> @RequestMapping(value = "/callable", method = RequestMethod.GET)
> public Callable executeSlowTask() {
> Callable callable = taskService.execute();
>
> return callable;
> }
>
> Cioè wrappa in un Callable tutto il codice sincrono e sequenziale che
> hai, punto.
>
> L'approccio non mi ha convinto. Tutte le attività potenzialmente
> asyncrone, come le query verso un db o le chiamate http ad altri
> servizi, vengono trattate come sincrone e gestite dal thread del thread
> pool con cui `taskService` lavora.

Esatto.
Nota che se le chiamate HTTP sono fatte con un client non-blocking
allora non ti serve un altro thread.
Query JDBC verso un DB, non mi risulta che ci siano API non-blocking,
quindi è tutto sincrono e ti serve un altro thread.
Query non-JDBC verso un DB, se hai della API non-blocking allora non
serve un altro thread.

> Poi ho pensato che in effetti non ho fatto una scelta migliore quando ho
> convertito tutte le API (java) a CompletableFuture, che di default si
> basa sul `ForkJoinPool.commonPool()`, di nuovo un unico thread pool
> comune a tutti i task.

La scelta di usare il common pool dipende solo da te.
Puoi sempre usare CompletableFuture.supplyAsync(task, executor).
L'executor lo prendi da Spring e è uno tuo.

> Quindi qual è il modo migliore per far fare alla CPU altro lavoro mentre
> è in attesa del risultato di una query?
> Oppure ha ragione il mio collega e potevo risparmiarmi del lavoro?

Wrappare tutto in un Callable funziona solo se sai già che è tutto
sincrono e che le chiamate sincrone fanno blocking I/O.
Se no è uno spreco di risorse.

Se sai che chiami delle API non-blocking meglio usare Spring's
DeferredResult che il Callable.
Con DeferredResult puoi evitare di allocare un thread che invece è
sempre allocato con il Callable.

Regole:
* Se faccio blocking I/O, va bene fare lo spawn di un thread, quindi
Callable è la soluzione più semplice.
* Se faccio logica sincrona senza I/O, niente Callable e niente threads
* Se uso delle API non-blocking, DeferredResult e niente threads.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] JDK 10 !

2018-03-20 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

oggi è stato rilasciato il JDK 10.

Press release:
https://www.oracle.com/corporate/pressrelease/Java-10-032018.html

Blog:
https://blogs.oracle.com/java-platform-group/introducing-java-se-10

Download:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Supported platforms:
http://www.oracle.com/technetwork/java/javase/documentation/jdk10certconfig-4417031.html

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Fwd: Codemotion alla Milano Digital Week – da venerdì 16 a domenica 18 marzo

2018-03-12 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

eccovi una serie di appuntamenti organizzati dal Codemotion, per chi fosse
interessato.

[image: separator]

*✪ Codemotion alla Milano Digital Week ✪*


venerdì 16 marzo 2018 – 14:30 - 22:00 / TIM WCap – via Magolfa 8

✩ Code hands-on: laboratori aperti sui progetti di Developers Italia!
bit.ly/LabDevItalia_community

Networking & Free Hacking fino alle 22:00


Vieni a programmare con il *Team Digitale* e *Codemotion*! Per un intero
pomeriggio e sera il Team sarà a disposizione di tutti gli sviluppatori che
vogliano approfondire gli strumenti tecnologici per sviluppare software per
le pubbliche amministrazioni.


Oltre al codice, il laboratorio sarà anche l’occasione di conoscere meglio
il Team, le loro attività e la piattaforma Developers Italia.


Non perdere l’occasione di mettere le mani su:

   - DAF - La piattaforma nazionale per Data Science e Open Data
   - SPID - Sistema Pubblico di Identità Digitale
   - PagoPA - Nodo di pagamento verso la Pubblica Amministrazione
   - CIE - Carta d'Identità Elettronica
   - 18App
   - I toolkit per il design web


<<< Registrazione gratuita ➡️ bit.ly/LabDevItalia_community >>>


Nota bene!

   - il laboratorio è aperto, puoi raggiungere il Team e Codemotion a
   qualsiasi ora dalle 14.30 in poi
   - è necessaria la registrazione (gratuita qui: bit.ly/LabDevItalia_
   community)
   - per partecipare ai laboratori si dovrà utilizzare il proprio computer
   portatile


A venerdì 16!




sabato 17 & domenica 18 marzo / Cariplo Factory – via Bergognone 34
 (angolo
via Tortona)
✩ Cashless Milano Hack
bit.ly/CashlessMilanoHack_community


*Ricchissimi premi per una Milano #Cashless*


Ti aspettiamo il weekend del 17-18 marzo a #CashlessMilanoHack promosso da
Nexi e organizzato da Cariplo Factory e Codemotion, accetti la sfida?!


<<< Iscriviti gratis ORA ➡️ bit.ly/CashlessMilanoHack_community >>>


A CHI SI RIVOLGE

   - Sviluppatori mobile e web, front-end developer
   - UX designer, UI designer, visual designer
   - Specialisti di business model e vendita
   - Esperti di marketing
   - Esperti di comunicazione, grafici, brand designer


LA CHALLENGE

*Soluzioni innovative per pagamenti cashless applicati alla mobilità, ai
servizi al cittadino e al tempo libero.*

Dai il tuo contributo per far diventare Milano la città cashless in Italia
e vivila appieno finalmente libero dal contante! Tra poco i contanti
saranno solo un lontano ricordo ma oggi cosa cambieresti? Crea soluzioni e
servizi innovativi per pagare senza contanti tutto ciò che vuoi.
Creatività, fattibilità e semplicità sono le parole chiave di questa sfida
per ripensare alle esperienze di tutti i giorni innovando l’interazione e
la modalità di pagamento.


PREMI

   - Al team vincitore verrà assegnato un premio pari a 8.000 euro a cui si
   aggiungono altri 8.000 Euro per realizzare uno studio di fattibilità
   approfondito.
   - Al secondo team classificato verrà assegnato un premio pari a 5.000
   euro.
   - Al terzo team classificato verrà assegnato un premio pari a 2.500 euro.


Ci vediamo a #CashlessMilanoHack il 17-18 marzo!


[image: separator]

Innocenzo Sansone


*Community Manager, Codemotion  *
-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] [ANN] Meeting con Venkat - Stasera !

2018-03-05 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

Il 05 mar 2018 10:53, "corrado musumeci corra...@gmail.com
[it-torino-java-jug]" <it-torino-java-jug@yahoogroups.com> ha scritto:



Ciao Simone ,
Io parteciperò alla tappa Milanese di Venkat, che però ha un altro
argomento in programma. Mi chiedevo se registrerete l'intervento di Venkat
in modo da renderlo disponibile a tutti. (È anche vero che si trovano altri
video di Venkat sull'argomento, ma ogni volta migliora e affina e si scopre
sempre qualcosa di nuovo).


Sì, registreremo l'evento è sarà poi pubblicato sul canale YouTube del JUG
Torino.



Corrado.

Il 05 mar 2018 10:48 AM, "Simone Bordet simone.bor...@gmail.com
[it-torino-java-jug]" <it-torino-java-jug@yahoogroups.com> ha scritto:



Ciao a tutti,

vi ricordo che stasera ci sarà il meeting on Venkat Subramaniam, che
ci parlerà di "From Functional to Reactive Programming".

Per maggiori informazioni:
https://www.meetup.com/JUGTorino/events/241361441/

A presto !

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless. Victoria Livschitz





[Jug-Torino] [ANN] Meeting con Venkat - Stasera !

2018-03-05 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi ricordo che stasera ci sarà il meeting on Venkat Subramaniam, che
ci parlerà di "From Functional to Reactive Programming".

Per maggiori informazioni:
https://www.meetup.com/JUGTorino/events/241361441/

A presto !

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Poll x Cena Venkat Tour Meeting

2018-03-02 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

On Mon, Feb 26, 2018 at 5:53 PM, Simone Bordet  wrote:
>> in vista del meeting "Venkat Tour"
>> (https://www.meetup.com/JUGTorino/events/241361441/), ho aperto un
>> poll per chi vuole partecipare alla cena post meeting:
>
> https://www.meetup.com/JUGTorino/polls/1262800/

Vi ricordo di votare il poll qui sopra per dirci se venite alla cena
post meeting.
Il poll chiuderà tra poco !

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Ricerca Risorsa Junior Developer

2018-03-01 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

2018-03-01 16:08 GMT+01:00 Ivan Martoccia m.iv...@gmail.com
[it-torino-java-jug] :

>
>
> Ciao Ragazzi, scrivo qua perché non so dove cercare.
> Ho bisogno di allargare un po’ il mio team di sviluppo.
> Cerco quindi una/due risorse Java junior ( 1/2 anni di esperienza ) con
> molta voglia e passione per quello che facciamo tutti i giorni.
> Voi conoscete qualcuno? Oppure dove posso scrivere?
>

​Segui le istruzioni qui:

​http://jugtorino.it/jobs/

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Tempi risposta REST API over HTTPS

2018-02-28 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

2018-02-28 21:04 GMT+01:00 Uberto Barbini uberto.g...@gmail.com
[it-torino-java-jug] :
> Si intendo ZeroMQ. Allora nel nostro caso avevamo clienti occasionali in rest 
> su http e clienti "speciali" a cui dovevamo assicurare la risposta in 20ms. 
> Se rispondevamo dopo perdevamo l'affare, quindi soldi persi.
> I clienti speciali aprivano una connessione con ZMQ (forse oggi useremmo 
> kafka, non so) e poi continuavano ad usarla per ore facendo tutte le 
> richieste che volevano, senza riconnettersi o fare handshaking perche' la 
> connessione restava su.
> La stessa cosa la puoi anche fare con Websocket o Http/2.

E anche con HTTP/1.1.
La differenza con ZeroMQ dovrebbe essere solo sul framing (cioè sul
costo di fare il parsing di un "messaggio").

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Fwd: [Jug-Torino] Tempi risposta REST API over HTTPS

2018-02-28 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

2018-02-28 13:03 GMT+01:00 Alessio Santacroce
alessio.santacr...@gmail.com [it-torino-java-jug]
:
>
>
>
> Ciao a tutti,
>
> Questa non e' proprio una domanda su Java, ma so che ci sono qui molti 
> esperti di servizi REST e problemi di rete che magari mi possono dare una 
> buona idea :-)
>
> Sviluppo un servizio REST su protocollo HTTPS.
> Ho come vincolo che le api devono rispondere entro 300 ms.

Molto aggressivo.
Ti basta una GC un po' più lunga del solito e sei già fuori.
Aggiungi un network roundtrip e sei fuori di parecchio.
Posso chiedere il perché di questo limite così severo ?
Puoi anche rispondere che arriva da uno che si è svegliato il mattino
dopo aver visto il film "300" e gli sembrava un numero giusto.

> La maggior parte delle risposte finiscono in tempo.
> Una percentuale, in genere intorno all' 1 per mille, no :(
>
> Ho misurato che spesso gran parte del temp e' perso per la connessione ed in 
> particolare per handshake SSL/SSH.
>
> Per esempio:
>
> curl https://xxx/mio-servizio -w "@curl-format.txt"
>
> time_namelookup:  0.060681
>time_connect:  0.061517
> time_appconnect:  0.168877
>time_pretransfer:  0.168905
>   time_redirect:  0.00
>  time_starttransfer:  0.171531
> --
>  time_total:  0.171547
>
>
> Cosa fareste per ridurre il time_appconnect [The time, in seconds, it took 
> from the start until the SSL/SSH/etc connect/handshake to the remote host was 
> completed]?

Devi assicurarti di avere abilitato (client e server) TLS session resumption.
Questo riduce i roundtrips per il TLS handshake da 2 a 1.
Se puoi usare TLS 1.3, supporta alcune feature sperimentali come zero-RTT.

L'altra cosa da non sottovalutare è quella di fare il caching delle
connessioni TCP che a loro volta richiedono 2 roundtrips.
Conviene aprire le connessioni all'inizio e cercare di tenerle aperte
il più a lungo possibile per evitare il costo di aprirne di nuove.
Un'altra feature sperimentale è quella di usare TCP Fast Open.

Un buon sommario:
https://blogs.windows.com/msedgedev/2016/06/15/building-a-faster-and-more-secure-web-with-tcp-fast-open-tls-false-start-and-tls-1-3/

Le features le devi poi abilitare in base alla piattaforma che usi.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] Tempi risposta REST API over HTTPS

2018-02-28 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

2018-02-28 13:51 GMT+01:00 bruno bossola bboss...@gmail.com
[it-torino-java-jug] :
> A me puzza un po', nella connect c'è un po'di tutto.

La connect come riportata da curl e la TCP connect quindi SYN/SYN+ACK/ACK.

Cosa altro pensi che ci sia ?

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Poll x Cena Venkat Tour Meeting

2018-02-26 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

2018-02-26 16:28 GMT+01:00 Simone Bordet :
> Ciao,
>
> in vista del meeting "Venkat Tour"
> (https://www.meetup.com/JUGTorino/events/241361441/), ho aperto un
> poll per chi vuole partecipare alla cena post meeting:
>
> https://www.meetup.com/JUGTorino/polls/1254547/

L'URL giusto è questo:

https://www.meetup.com/JUGTorino/polls/1262800/

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Poll x Cena Venkat Tour Meeting

2018-02-26 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

in vista del meeting "Venkat Tour"
(https://www.meetup.com/JUGTorino/events/241361441/), ho aperto un
poll per chi vuole partecipare alla cena post meeting:

https://www.meetup.com/JUGTorino/polls/1254547/

Il poll chiude questo venerdì alle 18:00.

Per favore votate entro questa settimana; visto il numero di
partecipanti al meeting, se molti vengono anche a cena dobbiamo
prenotare in un locale sufficientemente grande.

Inoltre, per cortesia, se vi siete prenotati per venire al meeting ma
non potete venire, vi prego di de-registrarvi, così abbiamo un'idea
precisa dei partecipanti.

Grazie !

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Re: Venkat Tour Meeting, 5 Marzo: votate le sessioni !

2018-02-13 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

2018-02-02 19:48 GMT+01:00 Simone Bordet :
> Ciao a tutti,
>
> Lunedi 5 Marzo avremo ospite Venkat Subramanian, come descritto qui:
> https://www.meetup.com/JUGTorino/events/241361441/
>
> Venkat ha proposto diverse sessioni, per le quali abbiamo aperto un poll qui:
> https://www.meetup.com/JUGTorino/polls/1261668/
>
> Chiuderemo il poll il 12 Febbraio, quindi avete una decina di giorni per 
> votare.

Il poll è ora chiuso e la sessione più votata è stata:

"From Functional to Reactive Programming"

Ci vediamo il 5 Marzo !

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] SecurityManager survey

2018-02-06 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

2018-02-06 19:14 GMT+01:00 Uberto Barbini uberto.g...@gmail.com
[it-torino-java-jug] :

>
>
> Io sarei curioso di sapere se qualcuno è mai riuscito a far funzionare
> qualcosa di non banale col sm attivato. Sinceramente curioso.
>

​Io sì, abbiamo fatto un progetto tanti anni fa che credo funzioni ancora
dal cliente.

Si trattava di una mailbox-like con la possibilità di spedire envelope-like
items a diverse mailboxes.
La gestione delle autorizzazioni fu fatta con JAAS e il SecurityManager.
Semplicemente cambiando il policy file potevamo dire da quale socket
accettavamo le send() (usando SocketPermission),
avevamo una custom permission per accedere alle mailbox, che avevano un
nome (MailboxPermission), avevamo ruoli gestiti
con JAAS e così via.

Il fatto che avessimo usato solo il JDK e non librerie esterne fu
considerato un plus dal cliente, credo per una questione di trust
(sapere che la security è forzata dal JDK piuttosto che da una libreria).​

Avevo presentato i risultati di questo lavoro a JavaOne 2002, ma non riesco
più a trovare nulla, né il sorgente né le slides online.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Venkat Tour Meeting, 5 Marzo: votate le sessioni !

2018-02-02 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

Lunedi 5 Marzo avremo ospite Venkat Subramanian, come descritto qui:
https://www.meetup.com/JUGTorino/events/241361441/

Venkat ha proposto diverse sessioni, per le quali abbiamo aperto un poll qui:
https://www.meetup.com/JUGTorino/polls/1261668/

Chiuderemo il poll il 12 Febbraio, quindi avete una decina di giorni per votare.

Vi raccomandiamo di aggiornare la vostra presenza ai meeting: se non
riuscite a venire, cambiate la vostra scelta su Meetup, così ci
possiamo regolare con le presenze.

Fate circolare la voce !
Potete usare Twitter (@jugtorino), ditelo ai vostri colleghi, chiedete
al vostro capo di mandare tutto il vostro team per un aggiornamento
tecnologico.

Vi aspettiamo numerosi !

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Fwd: Codemotion al meetup di questa sera di JUG Torino :)

2017-10-31 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

​dall'organizzazione del Codemotion Milano, ecco delle offerte se volete
partecipare al Codemotion:​

​---​

​P
er maggiori info: https://milan2017.codemotionworld.com/

Lo sconto del 40% per la Community
​ del JUG Torino si può ottenere col il codice
COMMUNITY_MEETUP_JUGTORINO
​ da inserire al momento dell'acquisto dei biglietti​
.

Inoltre ecco i link per lo sconto Community del 15% che abbiamo introdotto
sui Workshop:

   - http://bit.ly/mi17ce_machinelearning_meetup
   - http://bit.ly/mi17ce_reactnative_meetup
   - http://bit.ly/mi17ce_serverless_meetup


Per gli Hackathon ecco i 2 a cui è possibile iscriversi:

   - http://bit.ly/LimitlessHack_Community
   - http://bit.ly/agos4hack_community

mentre per restare aggiornato sugli altri: http://bit.ly/prossimihackathon

Innocenzo Sansone


*Community Manager, Codemotion
*






-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Re: [Jug-Torino] JAX-RS 2.0, come associare un filtro a una risorsa e alle sottorisorse?

2017-10-12 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

2017-10-11 18:23 GMT+02:00 steferk stef...@gmail.com [it-torino-java-jug] <
it-torino-java-jug@yahoogroups.com>:

>
>
> Ciao a tutti,
> mi sto scontrando con questa roba, qualcuno ci è già passato? Non
> sono un esperto e forse sto sbagliando approccio.
>
> Il probema: un mio filtro dovrebbe essere chiamato quando accedo ad
> una risorsa (root), chiamiamola Topolino, o a qualsiasi sottorisorsa,
> es. Pluto, se ci sono arrivato passando da Topolino.
> Chiamiamo il filtro PaperogaFilter.
>
> Ho usato un namebinding, quandi ho una bella annotation @Paperoga
>
> Pseudocodice:
>
> @Path("topolino")
> @Paperoga
> class ResTopolino {
>
> @Path("sottorisorsa")
> sottorisorsa() {
> return new ResPluto();
> }
>
> @GET
> saluta() {
> return "ciao";
> }
> }
>
> Se chiamo ResTopolino .saluta(), PaperogaFilter viene chiamato (ok)
>
> Se chiamo un metodo su ResPluto, PaperogaFilter *non* viene chiamato
> (male!)
> Se annoto il metodo ResTopolino.sottorisorsa(), PaperogaFilter *non*
> viene chiamato (male! Ma questo era un esperimento)
>
> Ora, se annoto cose in ResPluto con @Paperoga, il filtro viene chiamato
> (ok)...
>
> Sto cercando disperatamente un modo di farlo funzionare senza
> schantare annotazioni dappertutto.
>
> Ringrazio per qualunque imbeccata...
>
​La definizione di @Paperoga ?
Hai usato @Inherited ?​

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Fwd: AI WorkLab Roadshow il 5 ottobre a Torino!

2017-10-05 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

Matteo Paradisi lavora per LUISS ENLABS, l'accelleratore e il coworking più
grande d'Italia e tiene un Road Show che fa tappa a Torino.

-- Forwarded message --
From: Matteo Paradisi 


Ciao a tutti,
piacere di conoscervi,

come accennato il *5 ottobre* si terrà a *Torino* la prima tappa di 5 del
Roadshow di presentazione del nostro programma di incubazione in tema
Intelligenza Artificiale AI Worklab 
.

Durante l'evento avranno la parola manager di corporate che illustreranno i
motivi per cui le grandi aziende stanno puntando sui nuovi paradigmi di *Open
Innovation*.

A seguire, il seminario di *Augusto Coppola*, Direttore del programma di
accelerazione di LUISS ENLABS, *"Come* *avviare una* *startup:* *dall’idea*
*all’exit".*

Dopo il rinfresco per chi lo desidera vi sarà la possibilità di presentare
la propria idea/progetto (sempre in tema intelligenza artificiale) e
ricevere feedback da parte degli specialisti nel settore presenti.



Il programma AI Worklab, del tutto gratuito, prevede un grant per ogni
progetto selezionato di *2500EUR* senza alcun vincolo.

Percorsi come questo hanno già dato vita ad oltre 15 progetti innovativi, 5
dei quali in meno di sei mesi hanno raccolto investimenti per oltre 1
milione di Euro.


Augurandomi che siate interessati un po' di promozione sarebbe molto
gradita :-)

L'evento è gratuito ma è obbligatorio effettuare la registrazione sulla
pagina dedicata di eventribe

.



Rimango a disposizione per ogni eventuale chiarimento o ulteriore
informazione.



Un saluto,


*Matteo Paradisi*

*Open Innovation Specialist*




A: via Marsala 29h, 00185 Roma | P:
+39
06 4547 3124
M: +39 392 7999 828  | Skype: matteoparadisi
W: luissenlabs.com  | Find me on: FB
 | IN


[image: https://it.linkedin.com/company/enlabs]
 [image: https://twitter.com/EnLabs]
 [image: http://facebook.com/LuissEnlabs]




-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] Fwd: JUG Torino + Codemotion Milano 2017 + Hackathon!

2017-10-05 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

dal canale Codemotion vi inoltro quanto sotto:


*Nuovi aggiornamenti* su *Codemotion Milano 2017* e *Hack.Developers* − e
non solo, *leggi fino in fondo* 


*Regular Ticket e codice sconto del 40% per JUG Torino*

Con il *Regular Ticket* lo *sconto Community* per *Codemotion Milano 2017*
passa dal 25% al *40%*!!! Le Community ❤️ entrano sempre con la tariffa più
conveniente!

Ecco il link per utilizzare direttamente il codice *COMMUNITY_JUGTORINO* e
ricevere lo sconto del *40%* sul *Regular Ticket* (scade il 19 ottobre ma
sarà valido anche sulle successive tipologie di biglietto):

https://www.eventbrite.it/e/codemotion-milan-2017-
conference-november-10th-11th-tickets-3523384?discount=
COMMUNITY_JUGTORINO=CL2#tickets

Diffondetelo liberamente nei canali della vostra *Community* (newsletter,
gruppi, social etc) in modo tale da vederci tutti a Milano il *10 e 11
novembre*! Ci saranno tante iniziative che coinvolgeranno le Community e
resta valida la *Community Partnership* – sulla quale vi aggiorno qui sotto
– se ci date una mano a diffondere il codice a tutti i membri di JUG Torino.

Per aiutarvi ecco il *press kit* che contiene testi, immagini e risorse che
potete utilizzare: http://bit.ly/MI17CE_PressKit


*L'agenda è online*

L'agenda  di *Codemotion
Milano* è già online, eccola
!

A *Codemotion Milano 2017* troverete:

   - *+100 speaker internazionali* provenienti da aziende come *Netflix,
   GitHub, StackOverflow, LinkedIn, Docker, Trend Micro, NVIDIA, RedHat,
   Microsoft, Udacity, Mesosphere, Adobe, IBM, Yelp, Skyscanner*...
   - *3 keynoter* già confermati: *Salvatore Sanfilippo* - Redis Lab; *Jessica
   Rose* - Dream Factory; *Brent Beer* - GitHub
   - *9 track parallele* su temi quali *FAAS/Serverless, AI/Machine
   Learning, API Economy, Blockchain, Microservices, Reactive Programming,
   Containers, VR, Design/Front-end, BigData/Cloud* e tanti altri

E in più:

   - Tech Community ❤️
   - Aree espositive
   - Occasioni di recruiting
   - Un networking di assoluta qualità
   - Light Lunch e Networking beer di chiusura


*JUG Torino & Codemotion Milano 2017*

Ci teniamo che il *10 e l'11 novembre* abbiate un ruolo attivo per
festeggiare insieme il quinto anno della nostra *Conferenza* a *Milano*, in
una nuova location – *BASE* a *Porta Genova*!

   - *Community Partnership*: che prevede, tra l’altro, il logo della
   vostra Community (con link) sul sito di Codemotion Milano 2017 e sui
   cartelloni e il materiale stampato presente in conferenza se ci date una
   mano a promuovere attivamente Codemotion. *RISPONDETE* a questa email
   per farmi sapere su quali canali sarete attivi e per aggiornare/inviarmi il
   logo vettoriale della Community, se non l’avete ancora fatto!
   *IMPORTANTE*: sto caricando i loghi sul sito, se mi avete già risposto
   non c'è bisogno di farlo di nuovo 

   - *Stand-up Community*: la possibilità di avere uno stand-up con 2 sedie
   e 2 accessi nella *zona Community* dell'*Area espositiva* per far
   conoscere la vostra Community, se garantite la presenza per entrambi i
   giorni della *Conferenza* – se siete interessati contattatemi.

   - *Altre attività all’interno della Conferenza*: oltre le attività
   community delle edizioni precedenti di *Codemotion Milano* e *Roma *ne
   stiamo preparando di nuove in cui presto vi coinvolgerò se sarete presenti
   a *Codemotion Milano* 


*Fantastici webinar GRATUTI per tutti i membri di {COMMUNITY}!*

In vista di *Codemotion Milano 2017* abbiamo preparato dei fantastici *webinar
GRATUITI* sugli argomenti di maggior interesse della Conferenza fruibili da
tutti online. Condivideteli pure sui vostri canali, sono un ottimo regalo
per tutti i membri di JUG Torino!


   - gio 5 ottobre 2017 13.00
   *Mario Cartia - Big Data: Facciamo il Punto su Presente e Futuro dei
   framework Hadoop e Spark*
   ISCRIZIONE GRATUITA: http://bit.ly/2xCT9CY

   - mar 10 ottobre 2017 13.00
   *Jörg Schad - Big Data: Let's SMACK*
   ISCRIZIONE GRATUITA: http://bit.ly/2wlw8mH


*Nuovi #Hackathon e Community Partnership per Hack.Developers (7-8
ottobre)!!!*

Non è finita qui   due *Hackathon gratuiti SPECIALI* a cui i membri della
vostra Community non possono assolutamente mancare! Promuoveteli pure su
tutti i vostri canali!

*IMPORTANTE per Hack.Developers*: se intendete promuoverlo sui vostri
canali fatemi sapere per quale città l'avete fatto e mandatemi i loghi
vettoriali per email! In questo modo attiviamo la *Community Partnership*
con la pubblicazione di loghi sul sito! Avete tempo fino a dopodomani
(giovedì 5 ottobre per la Community Partnership)! Qui trovate del materiale
da poter utilizzare per pubblicizzare nelle vostre città l'evento:
https://hack.developers.italia.it/kit-comunicazione-per-host/



   - *Hack.Developers, 7-8 ottobre*

   Il più grande *Hackathon* di sempre  in contemporanea in 26 città!
   Promosso 

[Jug-Torino] Meeting Settembre 2017: Java Champions Tour

2017-09-18 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao a tutti,

vi ricordo che domani, ore 18:30, ci sarà il meeting "Java Champions
Tour" come da annuncio su Meetup:
https://www.meetup.com/preview/JUGTorino/events/240288374.

Saremo ospitati da Toolbox, in via Agostino da Montefeltro, 2.

Vi raccomando la puntualità (ore 18:30 inizio prima sessione) perché
avremo 3 sessioni in rapida successione da parte dei Java Champions e
poi la cena (per chi si è prenotato sul poll per la cena), con ricche
discussioni al tavolo sul futuro di Java e JEE.

A domani !

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


[Jug-Torino] #javatrain

2017-09-06 Thread Simone Bordet simone.bor...@gmail.com [it-torino-java-jug]
Ciao,

come da Twitter hashtag, Oracle sta pensando di cambiare marcia alle
release di Java:
https://mreinhold.org/blog/forward-faster

Non solo, ma Oracle produrrà delle versioni ufficiali, Linux-like, dei
propri build di OpenJDK, con licenza GPLv2+CPE.
Codice che prima era Oracle-only, tipo Flight Recorder, sarà
disponibile con la stessa licenza (e quindi non commerciale).

Buone notizie, credo, in generale.
Vediamo come si evolveranno.

Spero che Oracle non muoverà Java ad una Foundation come sta facendo
con JEE - nonostante tutto, secondo me Oracle sta facendo un buon
lavoro su Java.

Leggete anche:
http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz