Sto terminando il Tirocinio

Maggio 20, 2009 - Leave a Response

Maledetto sto cavolo di proxy aziendale che non mi permette di “upload”are immagini per questo post..

..comunque: sto terminando (?) il tirocinio, il progetto è fermo, devo prepararmi per il concorso… “e dovrei potare il melo”.

Spero di avere più occasioni per organizzarmi,

altrimenti non si va da nessuna parte.

Baci.

Riepilogare i dati di una partita di calcio in file XML

Febbraio 28, 2009 - Leave a Response

Il mio obiettivo è quello di riuscire ad estrapolare -nella maniera più automatica possibile- i dati relativi ad una partita di calcio dando loro una forma simile alla seguente:

<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<unMatch><!– NON USARE NUMERI NEI NOMI DEI TAG, QUESTE CIFRE VERRANO ESCLUSE –>
<match LABEL=”squadra1-squadra2″>

<risultato>_-_</risultato>
<!– <marcatori>nome, min [H]; nome, min [a]; nome, min [H]; own/rig nome, min [a]</marcatori> –>

<HOME allenatore=”Nome allenatore HOME”>1a Squadra<!– info ridondante, ma neccessaria per non lasciare Hoa == 0 –>
<formazione>
<giocatore1 maglia=”1″ ruolo=”PR”>Nome titolare 1
</giocatore1>

<giocatore2 maglia=”2″ ruolo=”TD”>Nome titolare 2
</giocatore2>

<giocatore3
maglia=”3″
ruolo=”DC”
rete=”12,34″
ammonito_al_minuto=”50″
esce_al_minuto=”51″
>Nome titolare 3
</giocatore3>
</formazione>

<sostituti>
<giocatore4 maglia=”12″ ruolo=”PR”
entra_al_posto_di=”Nome titolare 3″
>Nome panchinaro 1
</giocatore4>

<giocatore5 maglia=”9″ ruolo=”AC”>Nome panchinaro 2
</giocatore5>
</sostituti>
</HOME>

<away allenatore=”Nome allenatore away”>squadra_2<!– info ridondante, già presente nel label –>
<formazione>
<giocatore1>ospite 1
</giocatore1>

<giocatore2>ospite 2
</giocatore2>

<giocatore3>ospite 3
</giocatore3>
</formazione>

<sostituti>
<giocatore1>ospite panchinaro 1
</giocatore1>

<giocatore12>ospite panchinaro 2
</giocatore12>
</sostituti>
</away>
</match>

</unMatch>

(segue una prova per inserire un file in questo articolo)
riusciuro-a-parsare-una-pagina-html-a-mo-di-questa-maniera

Leggere i nodi di un file XML con java

Febbraio 24, 2009 - Leave a Response

Sto completando (a poco a poco) la classe XmlEngine
deputata ad attraversare i nodi di un file xml leggendone nome del tag & relativo valore (compresi anche gli attributi).

Per adesso vi scrivo come deve essere composto un file XML affinchè la sua lettura abbia buon esito:

<?xml version="1.0" standalone="yes"?><!-- commento#0 -->
    <!-- This is the DTD part -->
    <!DOCTYPE DOCUMENT [ <!-- http://www.seas.gwu.edu/~simhaweb/java/xml/xml.html -->
      <!ELEMENT DOCUMENT (STUDENT)*>
      <!ELEMENT STUDENT (NAME, ADDR, GRADE)>
      <!ELEMENT NAME (#PCDATA)>
      <!ELEMENT ADDR (#PCDATA)>
      <!ELEMENT GRADE (#PCDATA)>
    ]>
<!-- commento#1 --><!-- NON METTERE COMMENTI SUBITO DOPO IL name_root, PRIMA SI -->
<!-- commento#2 --><folks> { TESTO MAI VISUALIZZATO }
    <person personale="XERS"> <!-- STACCARE CON UNO SPAZIO BIANCO I COMMENTI ALTRIMENTI VERRANNO LETTI & REPLICATI -->
    <!-- NON METTERE NESSUN TESTO A SEGUIRE IL name_root PERCHE' VERREBBE
         REPLICATO COME SE FOSSE PRESENTE ANCHE NEGLI ALTRI name_root
      -->
    <!-- commento#3 -->"TESTO NON VISUALIZZATO"
        <phone phonale="PHONE">306 555-9999<!-- commento#4 -->"TESTO NON VISUALIZZATO"</phone>
        <email>joe@webserver.net</email>
        <name>Yin, Joe</name><!-- commento#5 -->
        <tag></tag><!-- commento#6 -->
    </person>
    <person testo='perso'>
        <phone>704 555-0000</phone>
        <name>Pet, Rob</name>
        <email>rob@server.com</email>
    </person>
</folks>

Darò questo file in pasto all’XmlEngine il quale lo attraverserà e salverà in una “Matrice” le coppie TAG-Valore (o ATTRIBUTO-Valore)
..e queste coppie potranno essere così visualizzate:

gente.xml
................................
____ 1° NODO ___________________
.toString() => TAG: PERSON_PERSONALE - VAL = xers...e' un Tag ? false
.toString() => TAG: PHONE - VAL = 306 555-9999...e' un Tag ? true
.toString() => TAG: PHONE_PHONALE - VAL = phone...e' un Tag ? false
.toString() => TAG: EMAIL - VAL = joe@webserver.net...e' un Tag ? true
.toString() => TAG: NAME - VAL = yin, joe...e' un Tag ? true
¯¯¯¯ fine 1° nodo ¯¯¯¯¯¯¯¯¯¯¯¯¯¯

____ 2° NODO ___________________
.toString() => TAG: PERSON_TESTO - VAL = perso...e' un Tag ? false
.toString() => TAG: PHONE - VAL = 704 555-0000...e' un Tag ? true
.toString() => TAG: NAME - VAL = pet, rob...e' un Tag ? true
.toString() => TAG: EMAIL - VAL = rob@server.com...e' un Tag ? true
¯¯¯¯ fine 2° nodo ¯¯¯¯¯¯¯¯¯¯¯¯¯¯

la classe Core

Gennaio 10, 2009 - Leave a Response

/**
 * Created by IntelliJ IDEA.
 * User: Girdano "Mejoro" Fidilio
 * Date: 23-ott-2008
 * Time: 22.54.16
 * .... To change this template use File | Settings | File Templates.
 */
import prog.Archivio;
import utili.MyFileUtils;
import java.io.File;
import java.io.IOException;
import prog.lib.*;
//import gui.StarterGUI;

public class Core {

    // CAMPI
    private Archivio archivio;

    // COSTRUTTORE
    public Core(){
        // CONTROLLO LA PRESENZA DELLE DIRECTORIES DEI FILE UTILIZZATI
        // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
        final String cn = gc();

        char sep = File.separatorChar;
        String STRdirDB = MyFileUtils.controllaCheQuestaDirectorySiaPresente(gc(),
        new File("").getAbsolutePath() + sep + "db" + sep);
        //out(STRdirDB);

        String DIRdbSTAG =
MyFileUtils.controllaCheQuestaDirectorySiaPresente(cn, STRdirDB,
"stagioni");
        String DIRdbGEO  =
MyFileUtils.controllaCheQuestaDirectorySiaPresente(cn, STRdirDB, "geo");

        archivio = new Archivio(DIRdbGEO, DIRdbSTAG);
        out("Core: sono stato creato & adesso avvio la GUI.");
    }

    // METODI
    public Archivio getArchivio() { return archivio; }

    public boolean isReady() { return true; }
}

Allora, questa è la classe Core:
è un contenitore per la classe Archivio
ed in più controlla che siano presenti le directory contenenti carti file utili all’applicazione;
tale controllo avviene mediante il metodo statico controllaCheQuestaDirectorySiaPresente() della classe MyFileUtils:

    public static /*File*/String controllaCheQuestaDirectorySiaPresente
(String $cn, String $path, String $subdir)
    { //throws IOException
    File DIR_db_AUX = new File($path + $subdir);

        if (!DIR_db_AUX.exists())
            new utili.Errore(-1, $cn, "\"" + DIR_db_AUX.getAbsolutePath() + "\"");

        if (!DIR_db_AUX.isDirectory())
            new utili.Errore(-2, $cn, "\"" + DIR_db_AUX.getAbsolutePath() + "\"");

        if (!DIR_db_AUX.canRead())
            new utili.Errore(-3, $cn, "\"" + DIR_db_AUX.getAbsolutePath() + "\"");

    return DIR_db_AUX.getAbsolutePath()/*CanonicalPath()*/ + File.separatorChar;
    }

Sono ancora un po’ indeciso se lasciare che questo metodo torni un valore di tipo String o di tipo File..
e, poi, non so se sia meglio deputare il controllo della presenza o meno delle directories (utili all’applicazione) alla classe Core oppure direttamente far fare questo lavoro alla classe Archivio, colei che veramente utilizzerà i files contenuti proprio in queste cartelle..
..mah?

Un po’ di codice – la classe Main

Gennaio 9, 2009 - Leave a Response

Da oggi inizierò a postare le parti di codice che compongono l’applicazione, per lo meno quelle parti riguardanti la fase di raccolta.. di caricamento di tutti i dati.
Partiamo con il contenuto della classe Main:
essa è un contenitore “contenente” la classe nucleo dell’intero programma, la classe Core, e la classe StarterGUI responsabile dell’inizializzazione dell’interfaccia grafica.

public class Main {

    public static void main (String[] args)
    {
    // inizio a contare le risorse di tempo & memoria che saranno
    // impiegate ai fini dell'esecuzione di questa applicazione.
    utili.SystemData.initTime();

    Core core = new Core();

    out("\r\n\t -> " + utili.SystemData.infoStr());

    if (core.isReady())
    ; //throw new Error("bye");

    }

    // METODI
    private static void nl() { System.out.println(); }
    private static void out (Object o) { System.out.println(o.toString()); }
}

L’albero dei dati

Dicembre 16, 2008 - Leave a Response
http://seehere.blogspot.com/2006/10/strange-weird-odd-and-unique-trees.html

http://seehere.blogspot.com/2006/10/strange-weird-odd-and-unique-trees.html

Sto “lavorando” al modello Xml che ospiterà i dati riguardanti la disposizione geografica delle squadre facenti parte delle varie competizioni calcistiche.
Ovvero una squadra si trova in una città,
che si trova in una provincia,
sita in una regione,
di una nazione,
di un certo continente

(…del pianeta Terra, della galassia…)

:)

Screenshot#2

Dicembre 3, 2008 - Leave a Response

Quanto lavoro, quanta fatica..
..quante modifche, quanto tempo…
…quanti sacrifici (almeno un 6-7 nottate sveglio fino alle 3, e anche oltre)

screenshot2

Screenshot#1

Novembre 20, 2008 - Leave a Response

Ecco il primo screenshot dell’applicazione:
4 squadre -immaginarie- di prova e la possibilità di vedere l’esito dei loro scontri diretti.

screenshot1

Non così sbagliato come sembra

Ottobre 28, 2008 - Leave a Response

In questo momento sto affrontando lo studio dell’interfaccia grafica: essa è un modulo “posto accanto” al modulo principale della mia applicazione, ovvero l’Archivio di tutte le partite raccolte nei vari documenti *.XML.

Siccome non capivo come elaborare questi dati allora ho preferito fare in modo che l’avrei capito più avanti… visualizzando tutte queste partite mi sarà concesso avvicinarmi ad un più intuitivo modello per la loro comparazione.

Alla fine, occuparsi di tutt’altro, è solo un modo più lungo di giungere a comprendere il meccanismo principale..

..se non facessi così credo che dovrei mettermi a lavorare solo su carta: riempire e ricompilare sempre gli stessi infiniti schemi/fogli di prova.

E’ un po’ come fumare.. non serve a niente, ma (proprio come la ragazzina nella foto) qui tra le mani mi è capitata un “sigaretta di zucchero” quindi.. studiare come si dispone una GUI male non mi farà.

P.S: trovate questa ed altre belle foto al seguente indirizzo

Per caso avete un modello matematico

Ottobre 4, 2008 - Leave a Response

Ricordate “Simon” il gioco elettronico che spopolava negli anni ‘70 ?

giocateci ancora :)