Java

Deploy React Applications in a Servlet Environment

Modern web applications using React and other frameworks are often distributed as static websites. It is undoubtely the simplest, cache-friendly and dead-cheap solution. However, some enterprisey projects (think about data-entry and legacy-business applications) need to be deployed in a standard, more constrained environment like a Java JEE Servlet engine, if not an actual application server. Forget having your app deployed on a separate web server (like Apache or Nginx), let alone a dedicated 3rd-level domain or IP address like frontend.

Continue reading

Intellij Live Templates Javascript Development

Update 2017-08-01 Updated “Behavior-Driven Development (BDD) and Test-Driven Development (TDD)” section, adding bddblock template I’m a IntelliJ IDEA user since late 2013. After a long (and not without problems) liaison with Eclipse IDE, and before that with the glorious Borland JBuilder, I wanted to try something new. Not that Eclipse was bad per se, it was just getting heavier and buggier release after release, and the plugin ecosystem wasn’t anymore something you could rely on.

Continue reading

Simulare Il Carico Di Un Server Con Groovy Apache Commons Math E Jfreechart

È ormai da un po’ di tempo che ho imparato a giocherellare con Groovy e devo dire che lo sto apprezzando ogni giorno di più. In questo articolo voglio mostrarvi come sia facile simulare, utilizzando Groovy e la libreria Apache Commons Math, i dati di carico tipici di un server che lavora 24/7, con tanto di picchi di lavoro durante le ore diurne. Due parole su Groovy A suo tempo mi misi a cercare un nuovo linguaggio di programmazione oltre a Java (non vi preoccupate, continuerò ad utilizzarlo per molto tempo ancora!

Continue reading

BigDecimal and rounding modes

After seeing the great success of introductory article on BigDecimal class I wanted to go on with some examples on one of the most complex operations: division. The problem… Is always the same: length :) BigDecimal, as already seen, can have an arbitrary number of decimal digits: this does not mean they can go to infinity, indeed we have at our disposal something like four billions digits, and counting. Not bad, you could argue… well let’s try this at home: how many computers are needed to store all the decimals of “1 / 3”?

Continue reading

Impossible Math

Can we trust computers calculations? Introduction IEEE 754 specification is the standard used for floating-point calculations in the engineering and scientific fields. In my humble opinion it is a perfect example of how computer industry and software development are based on a fundamental illusion of mankind: the possibility to attain and manipulate infinity (infinitely small, infinitely big, it doesn’t matter). I don’t really want to discuss the value of this standard (which is used among others by all processors and programming languages), but to explain the pain I feel looking at results like these:

Continue reading

BigDecimal

java.math.BigDecimal class represents “Immutable, arbitrary-precision signed decimal numbers” (with some limits), and has methods to operate on those numbers. Its use although is not so immediate and it is easy to do errors. In this article I’ll try to put some light on this topic, in the hope of seeing a lowering in the amount of bugs related to code using BigInteger and BigDecimal. What is it The package java.

Continue reading

Calcoli Impossibili

È possibile dubitare dei calcoli di un computer ? Un’introduzione La specifica IEEE 754 rappresenta lo standard per il calcolo in virgola mobile, cioè quello usato per i calcoli di tipo scientifico e ingegneristico; a mio parere è un’ottimo esempio di come l’industria informatica e lo sviluppo di software sia basato su un’illusione fondamentale dell’umanità: quella di poter raggiungere e manipolare l’infinito (infinitamente grande, infinitamente piccolo, non importa).

Continue reading

BigDecimal e metodi di arrotondamento

Visto il grande successo dell’articolo introduttivo sulla classe BigDecimal ho deciso di proseguire la serie con qualche esempio su una delle operazioni più complesse: la divisione. Il problema… …è il solito: le dimensioni :) BigDecimal, abbiamo detto, può avere un numero arbitrario di cifre decimali: arbitrario si, ma non infinito, infatti abbiamo a disposizione circa quattro miliardi e rotti di decimali. Non male, direte…beh allora fate questa prova: quanti computer ci vogliono per contenere tutti i decimali della divisione “1 / 3” ?

Continue reading

Bigdecimal (Ita)

La classe BigDecimal consente di utilizzare numeri a precisione decimale “arbitraria” (vedremo poi i limiti di questa definizione) e di eseguire calcoli aritmetici su di essi. Il suo utilizzo tuttavia non è immediato ed è facile commettere errori. In questo articolo si cercherà di fare un po’ di chiarezza sull’argomento, nella speranza di vedere diminuire la quantità di bug nei programmi che usano BigInteger e BigDecimal. Cos’è Il package java.

Continue reading