angular 2: tool-kit for building angular 2 web app

Personale collezione di link utili:

  • angular 2 house
    • One framework. Mobile and desktop.
  • webpack starter kit
    • An Angular 2 Starter kit featuring Angular 2 (Router, Http, Forms, Services, Tests, E2E), Karma, Protractor, Jasmine, TypeScript, and Webpack by @AngularClass
  • primeNG
    • PrimeNG is a collection of rich UI components for AngularJS2. PrimeNG is a sibling of the popular JavaServer Faces Component Suite, PrimeFaces.
  • angular 2 ACL
    • An example of how to build an angular 2 directive which takes in an array of roles, and calls a data service to match against what roles a user has. The directive will not render the components/html a user doesn’t have the right roles to access.
  • Dynamically Configuring the Angular’s Router
    • How to incrementally load the entire application by only requesting the resources required for the individual views.
  • Rest annotations to symplify the use of rest resources
    • Angular2 HTTP client to consume RESTful services. Built on angular2/http with TypeScript.
  • Lazy loading components routes services router
    •  If you don’t use minification of code, you can lazy load all router components

vertx lab: The Micro-Trader Application

Scoperto per caso su twitter è un tutorial completo su come creare microservices usando Vertx.


source code:

Per chi non avesse mai letto niente di vertx:


ejb3 timer clustered using database (in wildfly10)

Anche in quartz si usa il database per gestire in modo clusterizzato, concorrente, su nodi differenti, i timers. In wildfly, sembra essere possibile (ancora mai provato) persistere i timers su database invece che su filesystem.

Condividendo lo stesso nome della “partition” tra più nodi, sia ha una gestione multi nodo degli stessi timers. Sarà il lock su db a stabilire quale nodo può essere lanciato in esecuzione.

  • in standalone-full.xml, creazione del datasource per i timers  (1)
  • in standalone-full.xml, modifica della sezione timer-service (2)
  • verificare se le query dei timers siano compatibili con il proprio db (3)
  • aggiungere le solite annotazione alla classe:
    • @Singleton
    • @Startup
  • aggiungere annotazione sul metodo da eseguire:
    • @Schedule(hour = "*", minute = "*", second = "*", info ="My timer",persistent=true)
  • oppure usare il timerservice per schedulare nuovi timers:
    • @Resource TimerService timerService;
    • TimerConfig test = new TimerConfig(“test”, true);
    • timerService.createCalendarTimer(new ScheduleExpression().month(5).dayOfMonth(“20-Last”).minute(0).hour(8), test);

Articoli utili:

<datasource jta="true" jndi-name="java:/MySQLDS" pool-name="ms" enabled="true" use-ccm="true">
       <driver name="mysql" module="com.mysql"/>
<timer-service thread-pool-name=”default” default-data-store=”default-file-store”>
<file-data-store name=”default-file-store” path=”timer-service-data” relative-to=””/>
<timer-service thread-pool-name="default"default-data-store="clustered-store">
        <database-data-storename="clustered-store"datasource-jndi-name="java:/MySQLDS" database="mysql" partition="timer"/>

docker links


docker alpine jdk8:


postgresql vs mysql – utilities

postgresql: \d
postgresql: SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

postgresql: \l
postgresql: SELECT datname FROM pg_database;

postgresql: \d table
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name ='table';

postgresql: \d+ table
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name ='table';