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

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';