giovedì, settembre 06, 2012

Stime di sviluppo ...

Deve partire un nuovo progetto, arrivano i primi documenti, si fanno le prime riunioni, le prime impressioni ... tutto nella norma? Purtroppo no!

Come sempre il punto fermo di partenza su tutti i nuovi progetti e' la data di rilascio!

Adesso mi chiedo ... perche' devo fare una stima dei tempi di sviluppo? Che la faccio a fare se gia' il tempo me lo avete dato?

Scriviamo un paio di numeri va ... :)

Etichette:


domenica, aprile 19, 2009

Gli array associativi in Javascript ...

Oggi ho proprio voglia di scrivere qualcosa di tecnico.
Alla fin fine per guadagnarmi il pane faccio il programmatore e condividere delle soluzioni puo' essere utile (e questo tutti gli sviluppatori lo sanno!).
Quindi, il problema che dovevo risolvere era questo:

"In una jsp, selezionando un valore da una select bisogna riempirne opportunamente un'altra."

Non sembra la fine del mondo ... uno potrebbe dire: "che ci vuole!"
Ok, ma quando i dati sono dinamici e presi da un DB ... forse non e' cosi' banale.
E poi ad ogni valore della prima select alla seconda sono associati un numero variabile di elementi.
Mi serviva una soluzione semplice ed efficacie, che si potesse dinamicizzare.

Ho risolto il problema con gli array associativi in javascript.

Vediamo prima di tutto cos'e' un array associativo. In javascript si puo' definire cosi':

arrayAssociativo = new Array();
arrayAssociativo["Val1"] = "SubVal1";
arrayAssociativo["Val2"] = "SubVal2";
arrayAssociativo["Val3"] = "SubVal3";

E per recuperare un valore basta usare, ad es: arrayAssociativo["Val1"];

Quindi possiamo appunto "associare" ad una stringa un altro oggetto.

Un altro modo per definire l'array associativo (ed e' quello che preferisco) e' questo:

var arrayAssociativo = {"Val1":"SubVal1", "Val2":"SubVal2", "Val3":"SubVal13};

Molto piu' "professionale" direi :)

Cmq, il trucco sta in questa seconda definizione, infatti (complicando le cose) posso scrivere un array associativo di questo tipo:

var arrayOfValue = [{firstValue: 'Val 1', secondValue: new Array('SubVal 1-1', 'SubVal 1-2', 'SubVal 1-3', 'SubVal 1-4')}, {firstValue: 'Val 2', secondValue: new Array('SubVal 2-1', 'SubVal 2-2')}, {firstValue: 'Val 3', secondValue: new Array('SubVal 3-1', 'SubVal 3-2', 'SubVal 3-3')}];

In pratica ho associato alle stringhe che stanno su firstValue un array semplice sul secondValue.

La funzione javascript che gestisce lo switch dei valori si puo' scrivere cosi':

// Funzione per eseguire lo switch
// I parametri:
// destination - la select di destinazione
// value - il valore della prima select
function fillSelect(destination, value) {

// verifico se e' stata fatta una scelta valida
if(value == undefined || value == "") {
destination.setAttribute('disabled', 'disabled');
return;
}

// svuoto la select
while( destination.childNodes.length >= 1 ) {
destination.removeChild( destination.firstChild );
}

// il primo elemento e' vuoto
destination.options[0] = new Option('', '');

// itero l'array associativo per trovare il valore giusto
var arraySecondValues = [];
for(var j=0; j < arrayOfValue.length; j++) {
if(arrayOfValue[j].firstValue == value) {
arraySecondValues = arrayOfValue[j].secondValue;
break;
} else {
continue;
}
}

// adesso itero l'array recuperato
// con i valori da copiare nella seconda select
for(var i=0; i < arraySecondValues.length; i++) {

// uso "i + 1" perche' ho gia' definito il primo elemento
// della select con uno spazio vuoto
destination.options[i + 1] = new Option(arraySecondValues[i], arraySecondValues[i]);
}

destination.options.length = i + 1;
destination.removeAttribute('disabled');
}

Il codice html:

<form name="testForm" method="post" action="" id="testForm">
Prima select: <br/>
<select name="firstSelect" onchange="fillSelect(document.testForm.secondSelect, this.value);">
<option value=""></option>
<option value="Val 1">Val 1</option>
<option value="Val 2">Val 2</option>
<option value="Val 3">Val 3</option>
</select>
<br/><br/>
Seconda select: <br/>
<select name="secondSelect" disabled="disabled"><option value=""></option></select>
</form>

Ed il gioco e' fatto. L'unica cosa che dobbiamo dinamicizzare nella nostra jsp e' l'array associativo e i dati della prima select. Io ho usato un bean con due liste riempite con i dati presi dal DB per poi utilizzare la funzione JSTL <c:forEach> a dovere.


Per testare il codice:
Prima select:

Seconda select:

Etichette: , , ,


mercoledì, ottobre 29, 2008

La parola all'esperto ...

Qualche giorno fa mi ha contattato Massimo L., un carissimo amico giornalista.

Aveva bisogno di alcune risposte riguardo la sicurezza su internet.

Con piacere ho risposto alle sue domande, ne ha tirato fuori questo articolo:

L'appuntamento con l'esperto non poteva essere che su skype.
Domande e risposte via chat per capire come difendersi dai computer crimes.
Franco Monaca (nella foto), 30 anni, laureato in informatica, è un siracusano
che lavora a Milano per una importante azienda al servizio di uno dei colossi della pay tv.
-Phishing, connessioni a valore aggiunto, truffe. Navigare su internet può essere pericoloso.
Come difendersi?
«Ci sono poche, semplicissime regole, per evitare sgradite intrusioni o problemi di navigazione – spiega il
dottor Monaca - Innanzittutto, qualunque esso sia, tenere sempre aggiornato il proprio sistema
operativo. Cioè scaricare gli aggiornamenti mensili o straordinari che ogni sistema operativo mette a
disposizioni per «tappare» eventuali buchi del sistema che un malintenzionato
potrebbe usare per carpire i nostri dati personali. Poi tenere aggiornato il proprio antivirus, e infine,
fare attenzione alle mail «strane» che richiedono troppi dati personali.
Ma soprattutto bisogna usare sempre il buonsenso, considerato che la rete è un sistema aperto.
Nelle maglie di questa rete possono inserirsi molte persone e non tutte sono
cariche di buone intenzioni».
-Ci sono programmi che possono difendere il pc da intrusioni esterne? «In genere basta un buon antivirus (anche gratuito),
per maggior sicurezza esistono i «firewal». Firewall, testualmente parete tagliafuoco. E' un apparato di
rete hardware o software - spiega wikipedia - che filtra i pacchetti entranti e uscenti, da e verso una rete o un computer,
con regole che contribuiscono alla sicurezza della stessa». -Ma quali sono i rischi più comuni di una cattiva navigazione?
«Incrociare «dialer» in installabili, cioè programmi che si installano all'oscuro dell'utente navigando su siti poco
raccomandabili».

Leggendolo mi son divertito molto, ovviamente ha semplificato alcuni punti della discussione dove entravo troppo nel "tecnico". Comunque i consigli che ho dato io li avrebbe dati qualsiasi "Esperto" :)

PS: L'articolo e' stato pubblicato sulla Sicilia di oggi.

Grazie Massimo per la fiducia. Al prossimo articolo ;)

Etichette: , ,


giovedì, ottobre 02, 2008

Come ti salvo l'array ...

In questi giorni sto lavorando pesantemente con JavaScript.
Nella pagina che sto sviluppando sono costretto ad usare molti dati, e per non appesantire il server sto usando vari array javascript che mi tengono in memoria le scelte fatte dall'utente.

Funziona a meraviglia, l'unico problema e' salvare lo "stato" di questi array quando l'utente cambia sezione (e' un portale, l'utente ha a disposizione varie sezioni con funzionalita' differenti).

Dato che le variabili vengono re-inizializzate all'accesso nella mia sezione l'unica cosa che mi veniva in mente erano i cookie ... ok, ma come ti salvo un oggetto javascript in un cookie?

Per chi non lo sapesse i cookie javascript sono semplici stringhe: "nome=valore". Per salvare un oggetto complesso attraverso i cookie non e' cosi' semplice.

Prima di impazzire ulteriormente nello scrivere un algoritmo appropriato ho fatto come faccio di solito: "qualcuno ha gia' risolto il problema?".

Ho trovato questo articolo.

Una soluzione ottima! Funziona benissimo.

Ovviamente ho modificato lo script in alcune parti per adattarlo alle mie esigenze, ma l'idea di usare le librerie JSON per serializzare un cookie e' stata ottima.

Ancora grazie Stoyan Stefanov.

Etichette: , ,


venerdì, settembre 05, 2008

Sono stanco ...

In questi giorni stiamo lavorando tanto ... davvero tanto.

Sono stanco.

Ma ogni tanto qualche amico mi tira su di morale:

Etichette: ,


mercoledì, settembre 03, 2008

Il terzo incomodo ...

Ieri sera apro Firefox, e cosa ti trovo nella pagina di google:

La prima cosa che ho pensato: "Nooooo, un'altro browser!"
Da sviluppatore web un'altro browser e' un'altra gatta da pelare.

Sono andato subito ad approfondire nel sito ufficiale di Google Chrome.
Le prospettive sono interessanti, il codice sorgente e' disponibile (open source) e questa e' una buona cosa.
Crescera' e migliorera' esponenzialmente (vedi FireFox).

L'installazione e' disponibile ancora solo per Windows XP e Vista (che tristezza), ho notato infatti che per le impostazioni internet Chrome si appoggia a quelle di IE. Spero che in futuro ci siano delle versioni per linux e mac (magari stanno gia' pensando ad una versione per Android?).

Essendo una versione beta mi aspettavo qualche errore nel rendering delle pagine, infatti aprendo la pagina principale di blogger:

Con FireFox

Con Google Chrome

Ho provato a scrivere questo articolo con Chrome ma non ci sono riuscito, non funziona il caricamento delle immagini (e' probabile che c'e' qualche problema con i popup).

Questo mi dispiace, gli sviluppatori non hanno provato Chrome con Blogger?

Comunque, un'altra cosa interessante e' la modalita' incognito:


Io chiudo qui, di sicuro on-line esistono gia' centinaia di articoli al riguardo.
Vedremo come si sviluppera' in futuro questo browser ... ma ripeto, per me e' un'altra gatta da pelare :(

Bye

Etichette: , , ,


martedì, agosto 19, 2008

Quello che non doveva succedere ...

Ieri son tornato a Milano.
E gia' questo mi rattrista un po', si sa', e' un luogo comune: rientrare dalle ferie e' duro per tutti.
La partenza e' stata pesante, sono arrivato in aeroporto un'ora prima (come sempre) ma la fila per il check-in era allucinante! 8 sportelli per tutti i voli Alitalia ... in fila c'erano persone che partivano in orari diversi (un'ora dopo, due ore dopo ...) e' necessario differenziare gli sportelli!
Comunque, son riuscito a partire.

Ritornando al titolo dell'articolo, quello che non doveva succedere e' successo ... mi si e' rotto il pc aziendale, la mattina tutto a posto ... torno dal pranzo e lo trovo bloccato. Riavvio ma nulla da fare. Rimane bloccato alla schermata iniziale (non entra neanche nel bios).

Che pa%%e!

(ed io che fino a qualche giorno fa pensavo di fare un backup ... che rabbia)

PS: per quanto riguarda le foto ed i dettagli del pellegrinaggio non ho avuto piu' il tempo per metterle on-line. Lo faro' piu' in la' ... pazienza :(

Etichette: ,


mercoledì, aprile 09, 2008

Lavoro a Milano ...

Per lavoro son finito a Milano.
Solo per un aspetto mi ricorda Siracusa: il tempo per raggiungere il posto di lavoro! Ci impiego sempre un'ora!
Forse e' meno stressante dato che in questo caso vengo portato dai mezzi (piedi-autobus-metro-autobus-piedi).
Poi non so, magari piu' in la' vi sapro' dir meglio ...

[Fonte Fotografia]

Etichette:


giovedì, marzo 06, 2008

Comincia bene il 2008 ...

E siamo arrivati a Marzo ...
Ci siam giocati ben 2 mesi del 2008.
Devo dire che sono stati interessanti per me, soprattutto in ambito lavorativo, infatti l'azienda per cui lavoro mi ha mandato in consulenza a Torino presso la Valueteam.
Li' mi son trovato molto bene, ho lavorato abbastanza serenamente anche se a gennaio ho avuto problemi seri su dove andare a dormire la notte. Non si riusciva a trovare una stanza in affitto per il periodo limitato dei tre mesi. Di conseguenza mi son dovuto trasferire spesso fra Alberghi, B&B e case dello studente ... a febbraio mi hanno piazzato in questo residence.
Molto carino, ve lo consiglio :)
L'esperienza e' finita in anticipo, infatti dal primo marzo son tornato in sede (mancanza di budget per rivalutazioni varie sui progetti).
Adesso non so. All'inizio volevano mandarmi a Milano per un'altra consulenza ... ma qualche giorno fa mi hanno comunicato che vogliono propormi come sostituto di un altro collega (che va via) in un'azienda alle Zagare. Vedremo ...

Per il resto tutto bene, son riuscito a seguire solo la prima serata di Sanremo ... con fatica.
Ho atteso con molta difficolta' l'esibizione di Tricarico (durante la trasmissione mi sono addormentato almeno un paio di volte).
Ci son rimasto davvero male per come l'hanno trattato quella sera (vabbe', notte, dato che ha cantato verso le 00:30).
Certi commenti potevano risparmiarseli, per fortuna che Tricarico e' riuscito a vendicarsi poco prima della sua seconda esibizione :)
Comunque, ieri ho comprato il suo ultimo album: Giglio.
Molto bello, ci sono un paio di canzoni che mi hanno commosso tanto: "Eternità" e "Il mio amico". Davvero molto commoventi (ascoltare per credere).

Un ultimo argomento che volevo trattare in questo post riguarda il mio acquario. Ha avuto molti problemi in questi due mesi. Purtroppo la maggior parte dei pesci si sono ammalati e sono morti :(
Non ho potuto indagare bene dato che ero a Torino. Ho chiesto consigli in negozio, mi ha spiegato per bene cosa dovevo fare per "curare" l'acqua. Adesso sembra che le cose si siano ristabilizzate, vi faro' sapere in seguito.

Bye

Aggiornamento: [11 Marzo 2008 - 9.18]
Ieri mi son dimenticato di citare questo, perdonami Giorgio :S

Etichette: , , ,


lunedì, ottobre 08, 2007

Mi manda raitre ...

Venerdi' sera ho fatto compagnia a Grizzly. Ci siamo mangiati una bella (e buona) pizza per poi metterci un po' al pc (e te pareva :) ).
Passata una mezz'ora:

Grizzly: "Basta pc ... non ne posso piu', tutto il giorno davanti al pc ...";
Io: "In effetti ... che facciamo?"

Eravamo molto indecisi sul cosa fare, optare per un film o "tentare" di guardare la TV.
Torniamo in cucina, accendiamo la TV ... un po' di zapping ed ecco che ci blocchiamo su "Mi Manda Raitre".
Ascoltiamo con molto interesse. Dato l'orario siamo riusciti a seguire solo gli ultimi due casi, ma quello che ci ha incuriosito parecchio e' stato proprio l'ultimo.
Hanno trattato il caso di Webanimator. Le due ragazze che si son presentate in trasmissione accusavano il sistema di truffa! Infatti il lavoro che veniva offerto era quello di Web Animator (per capire e' il lavoro che fanno i moderatori dei forum ... in questo caso applicato alle chat) ma alla fine dovevano attirare persone a chiamare un numero di telefono a pagamento...
Per fortuna il sito e' stato chiuso.
Purtroppo io non riesco a spiegare molto bene la situazione ma se siete curiosi e volete approfondire la questione Grizzly l'ha trattato molto bene qui e qui.

Etichette: , , ,


lunedì, agosto 06, 2007

Frustazione assurda ...

Praticamente e' una settimana che sto cercando di sistemare la grafica per una web-application. Il problema e' un fo%%%to iframe ...
La pagina principale l'ho sviluppata con la tecnica del css-frame. Questo va molto bene, sia su FireFox che su IE6 e IE7.
La mia disavventura riguarda il contenuto della pagina. Dato che questo progetto (ahime') e' suddiviso da piu' web-application che, in teoria, potrebbero risiedere in pc diversi.
Questo comporta il caricamento di pagine suddivise in vari posti. Come fare? Iframe!
Ma sti ca%%i!!! Il cliente NON VUOLE LE BARRE DI SCORRIMENTO! SONO GRAFICAMENTE BRUTTE DA VEDERE!!!
Non so piu' cosa mi devo inventare ...





:(

Etichette: , , ,