Valerio e Lorenzo VS Martelli da Guerra – Capitolo 2 – Il Primo Lavoro

Arrivati ad un piccolo villaggio molto a sud di Altdorf, i nostri due avventurieri decidono di fermarsi a riposare per poi ripartire il giorno successivo.

La Carovana su cui avevano viaggiato li lascia davanti alla piazzetta di questo villaggio di contadini.

Gli occhi dei passanti sono su di loro.. Un elfo ed un nano, armati,sporchi e puzzolenti in un villaggio di contadini.

Un gruppo di contadini armati di forconi si trova sotto la finestra della taverna del villaggio.. La porta sbarrata, le grida dei presenti, ed un uomo affacciato in finestra armato di balestra che minaccia di sparare, e che grida che può spiegare tutto..

“ridacci i nostri soldi imbroglione” gridano dalla folla.. Sassi vengono tirati verso la finestra.. Le imprecazioni dell’oste da dentro, fanno capire che la situazione è critica. Non sanno cosa stia succedendo e giovani e irruenti, ignorati dalla folla, si addentrano nella taverna per capire cosa succede..

Dentro vengono bloccati da 2 mercenari a guardia delle scale che non li vogliono far passare. Vengono a sapere che il tizio in finestra è il loro capo, Bartuk, e che si trovano nei guai a causa di un contratto non rispettato con i contadini del villaggio. Grazie alle doti empatiche dell’elfo, riescono ad approfittare di un momento di panico e ad entrare nella camera di Bartuk. All’interno 2 mercenari feriti gravemente, un altro alla porta.. Bartuk gli chiede se vogliono aiutarlo, e cosi gli racconta cosa è successo. Il suo gruppo è stato assoldato per ripulire delle caverne a nord, da cui secondo loro fuoriesce qualche bestia notturna che gli sta depredando raccolti e bestiame.. Hanno perso molti capi e cosi hanno assoldato per 100 corone tutto il gruppo di Bartuk.. Le caverne però fin da subito si sono dimostrate piene di trappole e di insidie e nonostante non abbiano visto nessuno, hanno riportato gravi perdite e ferite.. Per 30 corone i due avventurieri vengono assoldati e con l’aiuto di Derek il guercio, un mercenario dato in appoggio si avventurano a nord verso le caverne , dopo aver fatto provviste di torce e cibo.

Arrivati nei pressi delle caverne, notano subito il fetore nauseante di carne morta provenire dall’interno. Dentro una serie di trappole segnala la loro presenza, e ferisce leggermente il nano che piu volte sprofonda nel fango.

 

La vera minaccia si rivela ben presto.. Skaven… Un gruppo di ratti mutati si nasconde dentro queste caverne e da settimane razzia le fattorie..Sono pericolosi e portatori di malattie.

Il piccolo gruppo superate diverse difficoltà , e uccidendo diversi di questi mutanti, arriva nei pressi una stanza ricavata nella roccia.. Qui dentro, tra le luci soffuse, uno skaven sembra proteggere un altare formato da cadaveri di animali intrecciati , sembra un sacerdote o qualcosa del genere.. i suoi movimenti sono lenti.. i suoni che emette raccapriccianti.. I nostri avventurieri rimangono impietriti dalla situazione perdendo l’iniziativa e subendo l’attacco di altri due ratti. Il nano colpisce con forza ma perde la sua ascia ritrovandosi disarmato ,l’elfo a colpi di spada insieme al Guercio, riesce a farsi strada e arrivare davanti all’entrata della stanza. ma qualcosa di strano succede.. Una magia sprigionata dallo skaven stregone fa perdere il controllo a Derek il guercio che in preda alla follia tenta di attaccare Ioalion, l’elfo.

La prontezza del nano evita il peggio, raccogliendo un’arma caduta agli skaven e riuscendo a stordire Derek..

Dal corpo di uno degli skaven salta fuori una sfera metallica da cui fuoriesce polvere viola.. sembra veleno.. c’e’ poco tempo.. il fumo inizia a riempire i corridoi . Uno skaven prima di morire ha tirato una sorta di bomba fumogena incautamente raccolta dal nano..

l’elfo realizza delle strisce di stoffa da una coperta e tutti e tre si coprono il volto per non respirare il veleno.. Il nano carica sulle sue spalle il mercenario e si addentrano nella stanza.. Lo skaven stregone sparisce dietro una feritoia .. Una grotta adiecente in cui scorre un fiume sotterraneo.. Nella fretta e nella disperazione, i due avventurieri escono seguendo il corso del fiume verso la luce abbandonando quelle cavità pericolose .

Arrivati al villaggio e spalleggiati da Derek che nel frattempo si è ripreso, raccontanto di aver distrutto completamente la minaccia mentendo spudoratamente e consigliando di sigillare le caverne.

Arrivati all’appuntamento con Bartuk, il capo dei mercenari si fa beffe dei giovani offrendogli come ricompensa solo 10 corone..

Non è il caso di di scatenare una rissa.. i mercenari sono di più, e cosi in cambio di cure mediche decidono di accettare il compenso..

La loro prima missione del resto è stata un successo inaspettato.

 

 

Java AspectJ e Spring Framework: Aspect Oriented Programming in poche mosse

Il caso: vogliamo realizzare una funzione monitoraggio sulle nostre classi senza dover modificare tutta la nostra applicazione. Un sistema molto veloce è quello di utilizzare Aop.

Andiamo quindi a realizzare un aspetto che esegua rilevazioni di tempi (ovviamente e’ solo un esempio , ci sono centinaia di sistemi per farlo) sull’esecuzione di un metodo in particolare di alcune classi che andremo ad intercettare.

Realizzeremo quindi un aspect che scatterà durante l’esecuzione (around) di un particolare metodo di una particolare famiglia di classi che definiremo direttamente su spring. Questo ci permetterà di rilevare il tempo alla chiamata, eseguire il metodo, e rilevare il tempo a fine chiamata o a eccezione tornata.

Ovviamente ci sono molti modi per fare questo (utilizzando le annotations ad esempio).

Questo esempio e’ fatto completamente sfruttando il lato configurazione, con nessun intervento specifico sul nostro sorgente iniziale(apparte la definizione del nostro advice), quindi adatto ad essere introdotto in un progetto gia in fase avanzata di sviluppo.

Innanzitutto definiamo la classe che rappresenta il nostro advice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package it.mypackage.aspect;

import org.aspectj.lang.ProceedingJoinPoint;

public class AspectProfiler {

public Object profile(ProceedingJoinPoint call,MiContesto context) throws Throwable {

long start = System.nanoTime();

//proseguo con l'invocazione del metodo intercettato

try {

return call.proceed();

}catch(Exception ex){

ex.printStackTrace();

throw new Exception(ex);

}finally{

long stop = System.nanoTime();

System.out.println("Tempo esecuzione:" + ((stop-start)/1000000) + " ms");

}

}

}

Utilizziamo Spring 3 , quindi come prima cosa portiamo dentro il nostro file di configurazione i namespace corretti:

importante il namespace AOP.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/context

<a href="http://www.springframework.org/schema/context/spring-context-3.0.xsd">
http://www.springframework.org/schema/context/spring-context-3.0.xsd</a>">

Ora sempre nel file di configurazione abilitiamo il component-scan del package interessato ad essere intercettato e proxato:

1
2
3
<context:annotation-config/>

<context:component-scan base-package="it.mypackage" />

Ora definiamo il nostro advice, l’aspetto profiler:

1
<bean id="profiler" class="it.mypackage.aspect.AspectProfiler" />

Ovviamente per poter essere intercettati in maniera corretta, gli oggetti devono essere creati tramite la bean factory di

Spring (in quanto devono essere creati come proxy) quindi definiti al suo interno:

1
<bean id="miaClasse" class="it.mypackage.mieclassi.miaclasseimpl/>

Ora definiamo tutta la parte aop su spring:

  • definiamo un aspetto e come riferimento gli diamo l’id del bean che mappa il nostro advice definito in precedenza;
  • definiamo un pointcut, dandogli un id arbitrario, e un’espressione . Questo è a tutti gli effetti il joint-point che una volta raggiunto (al verificarsi dell’espressione) nell’esecuzione del nostro codice, farà scattare ed eseguire l’advice;
  • definiamo la tipologia dell’advice come around(intorno all’esecuzione del metodo) e indichiamo il metodo dell’advice che verrà eseguito, ad esempio il metodo “profile” nell’espressione andiamo ad indicare che il joint-point da intercettare e’ quando viene eseguito il metodo execute di una classe che estenda la classe MiaClasseBase e che abbia come argomento un parametro chiamato context.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<aop:config >

<aop:aspect ref="profiler">

<aop:pointcut id="theExecutionOfExcecMethod"

expression="execution(* it.mypackage.mieclassi.MiaClasseBase+.execute(*)) and args

(context)"
/>

<aop:around pointcut-ref="theExecutionOfExcecMethod" method="profile"/>

</<aop:aspect >

</aop:config >

Utilizzando un bean con id miaClasse ottenuto dal context di spring, vedremo eseguire il codice del nostro advice..

La documentazione di AspectJ e di Spring Framework e’ in continua evoluzione, quindi vi consiglio di controllarla spesso.

Valerio e Lorenzo VS Martelli da Guerra – Capitolo 1 – I Personaggi

Ebbene si, è giunto il momento di inziare i miei bimbi all’antica e folle arte dei giochi di ruolo.. Cosi armati di matite, schede, dadi da 4,6,8,10,12,20 e 100 facce, delle miniature (tante) , un manuale (Martelli da Guerra) e tanta pazienza, creiamo i personaggi per Valerio (6 anni) e Lorenzo (13 anni).. io faccio il Master..

Martelli da GuerraMartelli da Guerra (edizione italiana di WarHammer fantasy RolePlay game, della Games Workshop), è un gioco di ruolo basato su un sistema a carriere (rispetto ai classici livelli di Dungeons & Dragons) e con un’ambientazione piu oscura, ambientata in un ipotetico impero, molto simile alla germania medievale.. I personaggi crescono pian piano , iniziando a fare lavori umili fino a diventare dei veri e propri eroi.. Il sistema è basato su una serie di caratteristiche numeriche principali, e delle abilità, che vengono di volta in volta acquisiti dalle carriere che i personaggi si ritrovano ad intraprendere..

 

 

 

 

Ho pensato possa essere divertente tenere traccia dei loro progressi in quella che è una storia del tutto improvvisata di sera in sera da me sulla base dei loro comportamenti..

L’inizio e’ abbastanza devastante.. i due giocatori rimangono allibiti al pensiero che si possa giocare con solo dadi e parole, senza una plancia, senza qualcosa di prestabilito..Ma sono affascinati dall’enorme libro delle regole, e dal mio continuo tirare i dadi per la scelta del tutto randomica del loro 2 personaggi..

Gotrek LorenzoLorenzo decide di farsi un nano, Gotrek (nome scelto randomicamente), alto 1.45m per un peso di 86 kg (un barattolo di carne), molto forte ma abbastanza sempliciotto e poco simpatico (per ora)..

Fa il Guerriero dei Tunnel, è stato addestrato al combattimento sottoterra nei labirinti e nei tunnels, odia i Goblin, ed e’ un bravo minatore e fabbro, dalla forza e la resistenza notevole. Segni particolari, una voce molto chiara e udito acuto.

 

 

 

 

 

 

elfo ValerioValerio decide di farsi un elfo, Ioalion, (nome scelto randomicamente), alto 1.80m per un peso di 60kg circa (un fuscello), con una vista eccellente, e la passione per il canto, abile nell’ambiente rurale, fa il GuardaCaccia, e’ un tiratore scelto, e capace di piazzare e scovare trappole.

Segni particolari un neo sul viso, e’ molto simpatico e intelligente anche se piu gracile rispetto al suo amico nano..

 

 

 

 

 

 

Nonostante le incompatibilità razziali, si incontrano durante una campagna di guerra in una piccola compagnia di mercenari che li arruola per la difesa di alcuni villaggi ai confini con le montagne grigie.. Finito il contratto, la compagnia viene sciolta e loro due decidono di mettersi in cammino verso Altdorf, la capitale dell’impero , alla ricerca di un buon lavoro..

Con pochi soldi in tasca, qualche coperta, delle armature molto leggere, e poche armi, i due si mettono in cammino nel lungo percorso che li porterà alla capitale.. o alla morte..

 

 

Scheda Valerio