Xtext beyond the defaults - how to tackle performance problemsHolger Schill
Nearly every Eclipse user is aware what Xtext is and what it is useful for. It is always a pleasure to see in which kind of areas it is used.
One reason is clearly, that it is really easy to build a first working example in no time. The grammar alone is sufficient and the rest is done by a code generator. Xtext will generate stub classes, that are ready to fill in individual logic for different areas.
By doing that most of the things just work, because Xtext comes with a lot of defaults that suits in most of the cases.
But as projects get bigger and the amount of models grow, the defaults might not scale and you might need to tweak your language to make working smooth again.
Here it becomes more complicated and you need to understand what’s going on under the covers.
In this session I will go through typical problems and solutions, that we have seen in customer projects. Sometimes it’s a tradeoff to tackle those problems, but it’s important to understand the implications.
For some typical examples I will go into details and explain what’s going on under the covers.
After the session attendees should have an idea how to tweak their own languages and why it might be worth the effort to migrate to a newer version of Xtext.
Strata NY 2016: The future of column-oriented data processing with Arrow and ...Julien Le Dem
In pursuit of speed, big data is evolving toward columnar execution. The solid foundation laid by Arrow and Parquet for a shared columnar representation across the ecosystem promises a great future. Julien Le Dem and Jacques Nadeau discuss the future of columnar and the hardware trends it takes advantage of, like RDMA, SSDs, and nonvolatile memory.
Xtext makes it easy to define domain specific languages, but making your DSL a first class programming artifact with support for expressions and integration with Java is a hard thing if you do it from scratch. The Xbase library is an integral part of the Xtext framework. Xbase implements the bridge from DSLs to Java. It greatly simplifies your language implementation, if you want to run your DSL on the JVM. Xbase consists of a very powerful Java-like expression grammar and implements all the necessary infrastructure to link your DSL against existing Java types, compile it to executable code and validate it against the JVM specific constraints. In this session I want to explain how Xbase works under the covers and dive into its APIs. You will see, how to enhance your language and make it highly expressive and powerful without introducing an artificial gap to the Java platform. If you want your DSL to be a first class programming artifact, come to this session and see how to benefit best from Xbase.
Xcore is a textual format to define ecore models. This not only makes editing and reading much more convenient but has other cool advantages as well. Xcore, for instance, allows to embed Xbase expressions to define logic within EOperations and the like.
In this session you will learn, why and when using Xcore is a good idea and how to use it with Xtext languages. I will explain talk about which URIs to use, and how to properly configure the MWE2 file as well as more complicated setups, with multiple languages and mixtures of ecore, xcore and generated models.
In this session, you will learn about typical best practices and idioms for building continuously running, extensible and maintainable code generators with Xtend. We think Xtend is the best language for code generation available today.
Il Governo ha pubblicato la tabella delle attività consentite senza green pass, con green pass "base" e con green pass "rafforzato” per il periodo dal 6/12/2021 al 15/1/2022
Xtext beyond the defaults - how to tackle performance problemsHolger Schill
Nearly every Eclipse user is aware what Xtext is and what it is useful for. It is always a pleasure to see in which kind of areas it is used.
One reason is clearly, that it is really easy to build a first working example in no time. The grammar alone is sufficient and the rest is done by a code generator. Xtext will generate stub classes, that are ready to fill in individual logic for different areas.
By doing that most of the things just work, because Xtext comes with a lot of defaults that suits in most of the cases.
But as projects get bigger and the amount of models grow, the defaults might not scale and you might need to tweak your language to make working smooth again.
Here it becomes more complicated and you need to understand what’s going on under the covers.
In this session I will go through typical problems and solutions, that we have seen in customer projects. Sometimes it’s a tradeoff to tackle those problems, but it’s important to understand the implications.
For some typical examples I will go into details and explain what’s going on under the covers.
After the session attendees should have an idea how to tweak their own languages and why it might be worth the effort to migrate to a newer version of Xtext.
Strata NY 2016: The future of column-oriented data processing with Arrow and ...Julien Le Dem
In pursuit of speed, big data is evolving toward columnar execution. The solid foundation laid by Arrow and Parquet for a shared columnar representation across the ecosystem promises a great future. Julien Le Dem and Jacques Nadeau discuss the future of columnar and the hardware trends it takes advantage of, like RDMA, SSDs, and nonvolatile memory.
Xtext makes it easy to define domain specific languages, but making your DSL a first class programming artifact with support for expressions and integration with Java is a hard thing if you do it from scratch. The Xbase library is an integral part of the Xtext framework. Xbase implements the bridge from DSLs to Java. It greatly simplifies your language implementation, if you want to run your DSL on the JVM. Xbase consists of a very powerful Java-like expression grammar and implements all the necessary infrastructure to link your DSL against existing Java types, compile it to executable code and validate it against the JVM specific constraints. In this session I want to explain how Xbase works under the covers and dive into its APIs. You will see, how to enhance your language and make it highly expressive and powerful without introducing an artificial gap to the Java platform. If you want your DSL to be a first class programming artifact, come to this session and see how to benefit best from Xbase.
Xcore is a textual format to define ecore models. This not only makes editing and reading much more convenient but has other cool advantages as well. Xcore, for instance, allows to embed Xbase expressions to define logic within EOperations and the like.
In this session you will learn, why and when using Xcore is a good idea and how to use it with Xtext languages. I will explain talk about which URIs to use, and how to properly configure the MWE2 file as well as more complicated setups, with multiple languages and mixtures of ecore, xcore and generated models.
In this session, you will learn about typical best practices and idioms for building continuously running, extensible and maintainable code generators with Xtend. We think Xtend is the best language for code generation available today.
Il Governo ha pubblicato la tabella delle attività consentite senza green pass, con green pass "base" e con green pass "rafforzato” per il periodo dal 6/12/2021 al 15/1/2022
COMUNICATO STAMPA
FATTURA ELETTRONICA
L’ASSOCIAZIONE NAZIONALE COMMERCIALISTI HA DEPOSITATO OGGI IL RICORSO
IN VIA D’URGENZA
NON C’È PIÙ TEMPO PER CHIEDERE ALLA POLITICA, IL PAESE È A RISCHIO
1. AMMINISTRAZIONE DEL PERSONALE
QUALI DATI INDICARE NEL MODELLO STUDI DI SETTORE ?
Pierpaolo Meini
Lo Studio di Settore VK05U (evoluto rispetto alla versione dello scorso anno), ripropone il
dilemma di quale dato indicare nel rigo D20, relativo all'amministrazione del personale.
In particolare non è stato sufficientemente chiarito se il numero delle unità di personale da indicare
in colonna 2 debba intendersi quale valore complessivo dei cedolini paga elaborati nell'anno,
oppure quale valore medio annuale del numero di unità di personale per le quali tale elaborazione
viene effettuata.
Si ritiene che tale seconda interpretazione sia quella più corretta, in base a due considerazioni.
1) Anche se le istruzioni non lo segnalano espressamente, tuttavia esse dispongono che vanno
indicate “nel rigo D20, nel primo campo, il numero dei clienti per i quali si è svolta l’attività di
amministrazione del personale (elaborazione di paghe e stipendi), nel secondo campo, il numero
delle unità di personale per le quali vengono elaborate paghe e stipendi”. Si ritiene che, se il dato
richiesto fosse quello complessivo, le istruzioni si sarebbero espresse richiedendo il numero delle
unità di personale per le quali sono state elaborate paghe e stipendi e non quelle per le quali
vengono elaborate
2) Un'ulteriore conferma deriva dall'analisi delle note tecniche metodologiche allegate allo studio.
La funzione di compenso è, di regola, calcolata come il prodotto tra un determinato coefficiente e
una variabile corrispondente al numero di prestazioni svolte per una determinata attività (1),
ponderate con il compenso medio per prestazione. Il coefficiente varia a seconda del cluster a cui il
professionista è associato (2) dall'analisi discriminante. La variabile, nel caso di amministrazione
del personale (paghe e stipendi), è calcolata come:
Numero di unità di personale moltiplicato peso di ponderazione
Compenso medio
Dove : peso di ponderazione = soglia superiore (=434euro)
Se il peso di ponderazione assume un valore superiore a uno (cioè se i compensi medi percepiti per
tali prestazioni sono superiori alla soglia), esso viene posto pari ad uno; se invece assume un valore
inferiore al rapporto tra la soglia inferiore provinciale di riferimento e la relativa soglia superiore
(pari a 434 euro), allora viene posto pari al valore di tale rapporto.
Nel caso specifico (Amministrazione del personale – paghe e stipendi), la soglia inferiore è uguale
per tutte le province ed è pari a 64 euro (3).
Si consideri il seguente esempio:
Un consulente del lavoro ha elaborato cedolini paga per due clienti, pattuendo un compenso di 40
euro a cedolino, come segue:
Pierpaolo Meini – n. 292 Ordine Provinciale C.d.L. Di Livorno
2. Cliente A: n. 10 cedolini mensili da Luglio a Dicembre
Cliente B: n. 8 cedolini per tutto l'anno
(le eventuali mensilità aggiuntive sono state pattuite comprese nel compenso)
Il consulente ha incassato i seguenti compensi:
Cliente A: = 10 x 40 euro x 6 mesi = 2.400,00
Cliente B: = 8 x 40 euro x 12 mesi = 3.840,00
per un totale di 6.240,00 compensi annui
IPOTESI 1) : nel rigo D20 viene indicato il totale complessivo di cedolini elaborati
2 156
Il responso di Ge.ri.co. sarà di NON CONGRUITA', calcolando un compenso puntuale pari a
9.983,00 euro.
Infatti:
compenso medio = 6.240,00 /156 = 40,00
peso di ponderazione considerato = 64/434 (perché 40/434 < 64/434)
coefficiente (per il cluster 13) = 433,9553 (4)
FUNZIONE DI COMPENSO:
numero di unita' peso di coefficiente compensi
di personale X ponderazione X = CONGRUI
156 64/434 433,9553 9.982,97
IPOTESI 2) : nel rigo D20 viene indicata la media annuale (ponderata per il numero delle mensilità)
delle unità di personale per le quali vengono elaborati i cedolini.
Nel caso:
( 10 x 6 mesi (A) + 8 x 12 mesi (B) ) / 12 mesi = 13 unità
2 13
In questo caso i compensi risulteranno congrui.
Infatti:
compenso medio = 6.240,00 /13 = 480,00
peso di ponderazione considerato = 1 (perché 480/434 > 1)
coefficiente (per il cluster 13) = 433,9553 (4)
numero di unita' peso di coefficiente compensi
di personale X ponderazione X = CONGRUI
13 1 433,9553 5.641,42
Pierpaolo Meini – n. 292 Ordine Provinciale C.d.L. Di Livorno
3. CONCLUSIONI
Sembra agevole constatare quindi che, per come è costruita la funzione di compenso, il numero di
unità di personale per le quali vengono elaborate paghe e stipendi non può che riferirsi ad un valore
medio annuo. La tesi contraria presupporrebbe che il compenso medio per cedolino elaborato
ritenuto congruo nel calcolo dello studio debba necessariamente essere pari o superiore a 64 euro,
valore questo che credo qualunque collega ritenga essere fuori mercato. Del pari, anche il valore
della soglia massima considerata (434 euro a prestazione) rafforza la tesi sopra esposta non
potendosi trattare che di valore annuo.
NOTE:
(1) Sub-allegato 10.E alle note metodologiche: “COEFFICIENTI DELLE FUNZIONI DI COMPENSO”
(2) Sub-allegato 10.A : “DESCRIZIONE DEI GRUPPI OMOGENEI”
(3) Cf. tabella: “VALORI DI SOGLIA INFERIORE A LIVELLO PROVINCIALE DELLA MODALITA' DI
ESPLETAMENTO DELL'ATTIVITA'
(4) Isolando la variabile oggetto del caso, l'analisi discriminante associa il professionista al cluster 13 =
“Professionisti che forniscono servizi di amministrazione del personale”
Pierpaolo Meini – n. 292 Ordine Provinciale C.d.L. Di Livorno