giovedì 19 marzo 2015

Configurazioni dei build più compatte con Maven Polyglot

Una delle critiche che si sente più spesso su Maven è che l'XML è molto verboso.
Con Maven Polyglot potete scrivere questo:
project {
  modelVersion '4.0.0'    
  groupId 'io.takari.polyglot'
  artifactId 'groovy-project'
  version '0.0.1-SNAPSHOT'
  //
  // Possibly a more preferrable way to generate the groupId,
  // artifactId, and version elements:
  //
  // $artifact('io.takari.polyglot:groovy-project:0.0.1-SNAPSHOT')
  //
  name 'Groovy Maven Love'
      
  build {
    //
    // Arbitrary Groovy code can be executed in any phase in the form of a dynamic plugin
    //
    $execute(id: 'hello', phase: 'validate') {
      println ""
      println "Hello! I am Groovy inside Maven. What? What am I doing here?? I'm confused. I guess we are friends now. Maybe."
      println ""
    }           
  }
}
Dovete avere Java 1.7 e Maven 3.3.1.
Per farlo funzionare, dovete creare una cartella .mvn e metterci dentro un file extensions.xml con scritto dentro (nel caso di Groovy):

<?xml version="1.0" encoding="UTF-8"?>
<extensions>
  <extension>
    <groupId>io.takari.polyglot</groupId>
    <artifactId>polyglot-groovy</artifactId>
    <version>0.1.5</version>
  </extension>
</extensions>

Il motivo per il quale è importante che Maven diventi poliglotta è che ci sono un sacco di plugin per Maven ed estensioni di strumenti di terze parti.
C'è anche la possibilità di usare YAML, Atom, Scala ed altri linguaggi.

Tra le alernative a Maven ci sono:
  • Apache Ivy, dependency management per ANT
  • Grape, dell'ecosistema Groovy
  • Gradle
  • Apache Buildr
  • Typesafe SBT
  • Leiningen per Clojure

Scriveteci cosa ne pensate nei commenti qua sotto.

martedì 10 febbraio 2015

LiquidO con Jacopo Romei

Quando: il 16 febbraio 2015 ore 19:30 circa
Dove: LUISS EnLabs, Via Giovanni Giolitti, 34
Per iscriversi: http://jugevents.org/jugevents/event/55288

http://liquido.cocoonprojects.com/


You might have heard of a new breed of organisational models, responding to the fast growing adaptability, engagement and collaboration needs within modern company structures.
Or you might have simply experienced the sound problems of slowness, rigidity, bureaucracy, disengagement along with various kinds of waste and bottlenecks that “traditional” organisational models generate and suffer nowadays.
This is what LiquidO™ is all about: the original “liquid organisation” model for governance, born from direct experience within Cocoon Projects and in use in a growing number of for profit and not-forprofit organisations willing to get liquid.


venerdì 30 gennaio 2015

Presentazione del libro su Java 8 di Pellegrino Principe

La copertina del libro di Pellegrino Principe
Ieri abbiamo sfidato l'allarme meteo per parlare del libro di Pellegrino Principe con l'autore.
Oltre che del libro, si è parlato della storia di Java e dei fondamenti teorici che sono dietro alle annotations, così come delle collection e soprattutto delle lambda expression.

Pellegrino ha cominciato a programmare con l'Amiga 500, quindi non si può proprio dire che sia un novellino. Da sempre ha voltuto capire cosa c'è dietro a ciò che faceva e si vede anche all'impostazione che ha dato ai corsi che tiene ed alla sua opera.

Secondo l'autore, la novità principale di Java 8 sono proprio le lambda expression, che hanno modificato molto il modo di programmare. Ciò ha anche suscitato delle paure in molti lettori, i quali a volte hanno preferito continuare a comprare il libro su Java 7 degli autori. Le novità di Java 8 hanno anche suscitato critiche da parte dei puristi di Java, i quali avrebbero voluto che Java rimanesse un linguaggio orientato ad oggetti, invece di diventare un linguaggio multi-paradigma, come è adesso.

Il motivo che ha spinto all'introduzione delle Lambda Expressions è la disponibilità di computer che hanno diversi core e di sistemi di calcolo distribuiti. La gestione della concorrenza con i thread è estremamente complicata ed è molto facile fare errori. Invece, con le Lambda Expression è possibile scrivere programmi concorrenti con più facilità.

Per approfondire
Il sito CoseNonJaviste ha diversi articoli interessanti sulle lambda expression, li potete trovare tutti qui:
http://www.cosenonjaviste.it/tag/lambda-expressions/

lunedì 10 novembre 2014

Brainf*ck, getters e setters al prossimo incontro

Ezio Sperduto ci parlerà e ci insegnerà del linguaggio di programmazione esoterico Brainf*ck. Ma non sarà solo teoria! Potrete mettere alla prova subito quello che ascolterete. Portatevi con voi il vostro portatile!!
Dopo, cisarà un dibattito sui getter e setter.

Iscrivetevi qui:
http://jugevents.org/jugevents/event/54993


Ezio Sperduto è co-founder of Infosons, PhD on Operations Research, tutor at Università UNINETTUNO

Brainf_ck
Brainf*ck è un linguaggio di programmazione esoterico per computer, creato da Urban Müller intorno al 1993.
L’obiettivo di Müller era di creare un semplice linguaggio di programmazione completo per una macchina di Turing che potesse essere implementato con il compilatore più piccolo possibile. Il linguaggio consiste di otto istruzioni. La versione 2 del compilatore originale, scritta per l’Amiga, occupa soltanto 240 byte. È stato ispirato dal linguaggio FALSE, un altro linguaggio di programmazione esoterico, il cui compilatore occupava 1024 byte.
Come il nome suggerisce, i programmi scritti in Brainf*ck tendono ad essere difficili da comprendere. Tuttavia Brainf*ck è un linguaggio Turing-completo, e si può utilizzare per implementare qualunque algoritmo eseguibile con una macchina di Turing. Trascurando l’enorme difficoltà nella programmazione di certi algoritmi con Brainfuck, è certamente possibile scrivere il relativo codice.
Il linguaggio è basato su un modello molto semplice consistente in un array di byte inizializzato a zero, un puntatore all’array (inizializzato per puntare al primo byte dell’array) e due stream di byte per l’input e l’output.

Getter e setter
I metodi di accesso sono stati criticati da molto tempo per il fatto di non aumentare assolutamente l’astrazione dei dati, ma di aumentare inutilmente la quantità di codice all’interno di una classe.

domenica 26 ottobre 2014

Iced tea, la macchina virtuale Java libera


Si parla di IcedTea, della macchina virtuale Java completamente libera e degli altri strumenti. Vengono spiegate le differenze tra l’approccio con interprete, compilatore e macchina virtuale. Si racconta di quali macchine virtuali ci sono per quali linguaggi. Vengono descritte le peculiarità di IcedTea e si prendono in esame le differenze tra HotSpot Zero Assembly con la macchina virtuale di Oracle, HotSpot. Si parla di quali linguaggi possano essere compilati per macchina virtuale Java. 


venerdì 24 ottobre 2014

Video su Domain Driven Design di Massimo Nardelli e Valerio Del Bello

Introduzione a Domain Driven Design – come costruire software robusto dal dominio complesso attraverso la comprensione approfondita della necessità di business. Una panoramica dei suoi princìpi fondamentali e dei pattern che propone in relazione ai problemi che risolve.

martedì 7 ottobre 2014

Domain Driven Design e Psicologia del Lavoro al JUG Roma

Il prossimo incontro del JUG Roma sarà mercoledì 22 da Infosons in via Vacuna 107/109 zona Tiburtina.
Fabio Romanelli parlerà di Psicologia del Lavoro.
Massimo Nardelli parlerà di Domain Driven Design.

Per info e per prenotarsi: http://www.jugevents.org/jugevents/event/54831