17 ottobre 2008

Javascript Replace /g

Stavo cercando il modo di utilizzare la funzione replace di javascript per sostituire tutte le occorrenze trovate nella stringa e non solo una.
Ad esempio ho la frase "ciao+mamma+come+va" e voglio sostituire i più con dei meno.
Ho trovato su un sito che si fa così: testo=testo.replace(/"+"/g,"-");
E invece è così che funziona: testo=testo.replace(/\+/g,"-")
Ciao

26 agosto 2008

Seleziona/Deseleziona tutti i checkbox di un menù

Metti di avere il seguente HTML:



Nota che il checkbox che sta in cima ha una proprietà chiamata onclick. Quello è l'evento, sostanzialmente dice "quando clicchi su questo input attiva quella funzione Javascript". Ci sono altri eventi, che sono altrettanto utili, ma al fine della discussione ti serve questo.

Ora andiamo a creare la funzione checkUncheck:

codice javascript:

function checkUncheck(check)
{
var checks = document.getElementsByName('cbSelez');
for(i = 0; i < checked =" check.checked;">
Questa funzione prende in ingresso come parametro un Element, ovvero un oggetto che rappresenta un TAG della pagina.

La funzione in questo caso otterrà l'elemento chiamante, ovvero il checkbox su cui andiamo a cliccare.

La prima cosa che fa è utilizzare una funzione dell'elemento document, che rappresenta tutta la pagina HTML, chiamata getElementsByName, che ritorna un Array (collezione di oggetti) contenente tutti gli Elementi che hanno name = al paramentro passato (in questo caso il nome dei checkbox).

Sull'array, faccio un ciclo for (una iterazione, c'è anche in asp), e, per ogni elemento dell'array setto la proprietà checked (proprietà dei checkbox che indica se sono selezionati) al valore che il checkbox che vado a cliccare assume.

Ciao

20 giugno 2008

Calcio per non vedenti

Questa non la sapevo...

I tifosi arrivati con un po' di anticipo per assistere al primo quarto di finale di UEFA EURO 2008™ tra Germania e Portogallo hanno potuto godersi un affascinante prologo in occasione della sfida al St. Jakob-Park tra le nazionali non vedenti di Inghilterra e Spagna.
Calcio per TuttiLa partita rientrava nella campagna promozionale UEFA Calcio per Tutti a sostegno degli sport per disabili ed è stata la prima delle quattro che verranno disputate prima dei quarti di finale in programma a Basilea e all'Ernst-Happel-Stadion di Vienna. Le partite di calcio tra i non vedenti consistono in due tempi di sette minuti, con la presenza di tre guide per parte per fornire istruzioni. Nello stadio è necessario il silenzio per permettere ai giocatori di ascoltarsi, un requisito egregiamente soddisfatto a Basilea. Il pallone, inoltre, contiene un congegno che emette un suono in modo che i giocatori possano accorgersi di quando è nelle vicinanze.

La Spagna si è imposta agevolmente per 3-0, con reti di Martín, Cuadrado e Aguilar. L'inglese David Clarke ha comunque dichiarato di non essere deluso. "Siamo felici di essere qui - ha dichiarato, aggiungendo che giocare in uno stadio così grande ha le sue controindicazioni -. Il rumore del pubblico ci ha un po' ostacolato, anche se sono sicuro che più avanti ce ne sarà molto di più".

Fonte: http://it.euro2008.uefa.com
Articolo del 20/06/08

19 giugno 2008

ASP - Redim Preserve su matrice bidimensionale

Altra cosa da ricordare in ASP:

Una matrice dinamica deve essere inizializzata con la funzione ReDim, così:
Dim myArr
ReDim myArr(0,1)


Con gli array dinamici, se usi la funzione preserve , puoi ridimensionare solo l'ultimo indice del vettore!
In poche parole, partendo dall'inizializzazione di cui sopra:
ReDim preserve myArr(10,5) non è ammessa
ReDim preserve myArr(0,5) è ammessa
ReDim myArr(10,5) è ammessa

Ciao!

18 giugno 2008

ASP - Ordinare matrice bidimensionale

Ciao! Visto che in internet non si trova molto, scrivo qui il codice in ASP per ordinare una matrice bidimensionale... ad esempio: array(10,20)

Sub MultiDimSort()
max = UBound(matrice,2)
Dim arr()
ReDim arr(max)
' per ogni riga dell'array
For i=UBound(matrice,1)-1 To 0 Step -1
' scorri tutte le stringhe dell'array che non sono ancora ordinate
For j=1 To i
' se la stringa attuale è "maggiore" della stringa successiva...
If matrice(j-1,0)>matrice(j,0) Then
'inverto
For z=0 To UBound(matrice,2)
arr(z)=matrice(j-1,z)
Next
For z=0 To UBound(matrice,2)
matrice(j-1,z) = matrice(j,z)
Next
For z=0 To UBound(matrice,2)
matrice(j,z) = arr(z)
Next
End If
Next
Next
End Sub

Mentre questo è il codice per riordinare un array normale (monodimensione):

function SortStringArray(arrStrings)
dim strBuf
' controlla che arrStrings sia effettivamente un array
if isarray(arrStrings) Then
dim i, j
' per ogni stringa dell'array
for i=0 to ubound(arrStrings)-1
' scorri tutte le stringhe dell'array che non sono ancora ordinate
for j=0 to ubound(arrStrings)-1-i
' se la stringa attuale è "maggiore" della stringa successiva...
if arrStrings(j)>arrStrings(j+1) then
' ...inverti la posizione delle due stringhe
strBuf = arrStrings(j+1)
arrStrings(j+1) = arrStrings(j)
arrStrings(j) = strBuf
end if
next
next
end if
SortStringArray = arrStrings
end function

17 giugno 2008

Test sulle attitudini al lavoro

Per capire ciò che possiamo diventare, dobbiamo tener presente sia ciò che siamo, sia ciò che vogliamo: se un grande pianista odia viaggiare, potrà fare magari tanti dischi ma non tanti concerti.
In questo piccolo test mischieremo dunque elementi riferiti alle nostre aspettative ed ai nostri requisiti.
Come capire se si è più portati al lavoro autonomo o a quello dipendente, se si ha il potenziale per diventare buoni manager o seri professionisti d'impresa, se rischiamo di restare broccoloni troppo a lungo, o di non poter essere che umili travet?
Forse il nostro istinto ci dice se preferiamo lavorare da soli o in compagnia, ma a volte sbaglia; forse le circostanze sembrano indicarci una strada più facile, ma che non è sempre quella giusta; forse, infine, la nostra sicurezza o insicurezza in noi stessi sembra aprirci o chiuderci molte porte, ma trova spesso disillusioni o buone sorprese.Il test seguente è poco più di un gioco, ma consente di trovare qualche indizio sulla nostra vocazione.
Tenendo presente che, in ogni caso, manager o professionisti o imprenditori di successo si diventa, non si nasce. Il successo nasce da un 20% di intelligenza, un 20% di "savoir faire", ed un 60% di determinazione, costanza, sacrificio, volontà, impegno (o, come dicono gli americani, "10% inspiration, 90% perspiration", cioè sudore).
La gara per l'affermazione professionale è una gara di fondo, non di velocità: si piazza chi ha più tenuta, chi è meglio allenato. Anche se per vincere occorre avere uno sprint in più.

• il lavoratore autonomo ha una forte vocazione professionale (sa fare bene “quella” cosa, e gli piace), ed ama il rischio e la sfida, il confronto con il “mare aperto” del mercato. D’altro canto, preferisce correre in proprio, non ama la complessità organizzativa;
• il manager non ha una precisa vocazione, ma sa invece muoversi bene in una organizzazione complessa, ed anch’egli ama il rischio, la competizione, la sfida continua;
• il professionista d’impresa non ama molto i rischi, nè la competizione. Però unisce una forte vocazione professionale al gusto di operare in una realtà più articolata, con spirito di servizio;
• il travet certo non ama le sfide, e se non sa muoversi nell’organizzazione sopravvive solo se ha una buona competenza specifica; o all’opposto, non ha particolari competenze ma sa conquistarsi un ruolo nuotando nell’organizzazione come un pesce nell’acqua, costruendo e valorizzando una preziosa rete di conoscenze personali;
• il broccolone, ahilui, non ha vocazione, ed è troppo innamorato di sè per avere spirito di gruppo: può darsi che abbia amore per il rischio, che nel suo caso, viste le premesse, si chiama temerarietà.

Va precisato che la broccolonaggine transitoria può colpire tutti, in momenti di cambiamento o di crisi, in cui le idee faticano a chiarirsi e a diventare progetti, e non è grave se è passeggera. All’uscita dall’Università, tutti siamo un po’ broccoloni. Quando permane, però, è il caso di correre velocemente ai ripari.

I) Il lavoratore autonomo (libero professionista, consulente, piccolo imprenditore, commerciante, etc.);
II) Il professionista d’impresa (specialista di alto livello, che opera nel suo ramo di competenza in una media o grande azienda, o, sempre più spesso, in società di consulenza);
III) Il manager (coordinatore di risorse umane, tecniche e finanziarie in funzione del raggiungimento degli obiettivi generali dell’azienda);
IV) Il travet (esecutore d’ordini, impiegato di buon comando e modeste ambizioni);
V) Il “broccolone” (capace di tutto, ma buono a nulla).

Di queste, tre (manager, professionista d’impresa e travet) operano in azienda; una quarta (il broccolone) può bazzicarci, ma in genere non per molto. Sono categorie “di destinazione”, nel senso che solo dopo qualche anno emergerà, o prenderà forma, la vostra caratterizzazione: nel frattempo, sarete “in formazione” e poi giovani professionisti e quadri. Di solito è dopo 2-3 anni che arriva il momento decisivo, con lo scivolamento verso la broccolonaggine o il travettismo, o il salto verso il management o il professionismo d’impresa.


Il test funziona nel seguente modo: troverete 15 gruppi di 5 affermazioni ciascuno; dovete, per ogni gruppo, dare il punteggio di 5 all'affermazione in cui vi riconoscete di più, di 4 alla seconda, di 3 alla terza e così via.


Ed ecco il test:



•A• più lavoro meno mi stanco
•B• tutto va pianificato e organizzato
•C• la pignoleria è un pregio
•D• il buon giorno si vede dal mattino
•E• voglio sapere esattamente cosa devo fare

•A• se ho un’idea in testa, vado avanti anche a costo di pestare molti piedi
•B• ho un certo ascendente sugli altri
•C• la gente si fida di me
•D• non mi faccio influenzare dagli altri
•E• non rompetemi le balle, e io non le romperò a voi

•A• difficilmente mi faccio fregare
•B• sono molto freddo e razionale nelle decisioni
•C• mi piace la precisione, detesto l’ambiguità
•D• cerco sia l’uovo oggi che la gallina domani
•E• non mi piace farmi stressare

•A• ”rischio” è una parola che mi piace
•B• ”risultato” è la mia parola d’ordine
•C• ”far bene le cose” è il mio punto di riferimento
•D• ”fare sistema” è ciò che conta veramente
•E• “una cosa per volta” e allora tutto fila liscio

•A• chi fa da sé fa per tre
•B• fai fare agli altri tutto quello che puoi non fare tu
•C• io ho quel che ho donato
•D• ascolta il respiro del mondo.
•E• chi fa, sbaglia

•A• una sola passione, ma grande
•B• tante piccole passioni, bruciate fino in fondo
•C• una sola passione, ma sincera
•D• tante passioni e grandi.
•E• le passioni si pagano

•A• il tempo è una variabile dipendente
•B• il tempo è il vero avversario
•C• il tempo è un mezzo di misura
•D• il tempo, grande scultore.
•E• il tempo va preso con calma

•A• il tempo libero non esiste
•B• nel tempo libero mi diverto come sul lavoro
•C• il tempo libero è importante
•D• il tempo è sempre libero.
•E• il tempo libero è sempre sacro

•A• ciò che mi dà fiducia è la mia determinazione
•B• ciò che mi dà fiducia è la mia intelligenza
•C• ciò che mi dà fiducia è la mia preparazione
•D• ciò che mi dà fiducia è la mia fiducia in me
•E• ciò che mi dà fiducia è l’ambiente intorno a me

•A• bisogna pensare al dopodomani
•B• bisogna pensare al domani
•C• bisogna pensare alla costante quotidianità
•D• bisogna pensare a cosa pensare
•E• bisogna pensare a cosa fare stasera

•A• la vita è la continuazione della creazione
•B• la vita è una sfida continua
•C• la vita è far bene le cose
•D• la vita è un sogno
•E• la vita è tutte le cose

•A• con gli altri se devo litigare litigo
•B• faccio il duro, ma accetto il compromesso
•C• cerco sempre una mediazione ragionevole
•D• non mi abbasso a litigare con chi non è al mio livello
•E• litigare non risolve mai nulla

•A• bisogna distruggere per poter creare
•B• tutto è confrontabile e pesabile, anche realtà disomogenee
•C• si possono misurare solo realtà omogenee
•D• spesso le cifre nascondono più di quanto dicano
•E• non poniamoci domande cui non sappiamo rispondere

•A• l’avvoltoio e la iena fanno un mestiere tutto sommato utile
•B• nella caccia, un branco deve avere gerarchie, organizzazione, coesione
•C• il lavoro ai fianchi conta più del colpo di grazia
•D• per cacciare, occorre avere fame
•E• fate cacciare gli altri, io preferisco lavare i piatti

•A• le regole sono fatte per essere cambiate
•B• le regole valgono in funzione della loro reale utilità
•C• finché ci sono, le regole vanno rispettate come sono
•D• le regole devono tenere conto dei bisogni di ciascuno
•E• le regole sono regole


Ora sommate i punteggi di tutte le affermazioni A, e lo stesso per B, C, e D ed E. Otterrete così un punteggio per ciascuna delle quattro lettere.A corrisponde alla figura dell'imprenditore/lavoratore autonomo, B del manager, C del professionista d'impresa, D del broccolone, E del travet. La figura o le figure in cui avrete totalizzato almeno 50 punti saranno le dominanti, quelle con meno di 35 individuano le caratteristiche da voi più lontane.


Io ho fatto:
A 38
B 54
C 51
D 32
E 49

22 febbraio 2008

La materia oscura esiste

Se la si potesse vedere assomiglierebbe a un'immensa ragnatela che da un capo all'altro occuperebbe una porzione di cielo di 270 milioni di anni luce (un anno luce corrisponde a circa 9 mila miliardi di chilometri): ma nessuno la può vedere, perché si tratta di "materia oscura", una materia che si sa che esiste, ma di cui non si conosce la composizione, perché risulta invisibile a ogni tipo di lunghezza d'onda. Gli astronomi la cercano da anni, ne ipotizzano la composizione, ma nulla al momento lascia trapelare di cosa sia realmente fatta. E' per questo che la sua esistenza è stata addirittura messa in dubbio. Ma ora c'è la conferma della sua realtà.

Il lavoro è stato pubblicato sulla rivista Astronomy and Astrophysics da un gruppo di ricerca canadese e francese coordinato dall'Istituto di astrofisica di Parigi. Spiega Ludovic Van Waerbeke, dell'Università della British Columbia: "Il risultato è senza precedenti, una pietra miliare per l'astronomia". Avere la certezza che esiste la materia oscura significa infatti, lavorare in una certa direzione per comprendere la storia e il destino dell'Universo.

Ma come è possibile aver visto la "materia oscura" se questa risulta invisibile? Gli astronomi hanno usato un trucco che offre la natura. Sfruttando la fotocamera digitale più grande del mondo di cui è dotato il telescopio Canada-France-Hawaii Telescope (Cfht) posto sul monte Mauna Kea nelle Hawaii, i ricercatori hanno analizzato migliaia di immagini per individuare gli "effetti gravitazionali" della materia oscura sulla luce visibile, un fenomeno chiamato effetto della "lente gravitazionale debole". In altre parole la luce che arriva sulla Terra da galassie lontane, mentre viaggia nello spazio, è deviata dalla "materia oscura" a causa della sua massa.

Confrontando migliaia di immagini è possibile posizionare in tal modo la sua distribuzione nello spazio e verificarne la quantità ossia proprio la sua massa.

Con questa scoperta giunge la conferma a ciò che si ipotizzava da tempo: la materia visibile che compone l'Universo - tutti i pianeti, le stelle e gli oltre 120 miliardi di galassie - costituiscono solo il 4%. Il resto, il 96%, non si sa cosa sia, ci è "oscuro". Il 70% di questa "oscurità" è "energia oscura", il 26% è la materia oscura di cui gli astronomi canadesi e francesi hanno scoperto l'esistenza.

I dubbi che l'Universo non è composto solo da ciò che vediamo emersero attorno agli anni '70, quando gli astronomi cominciarono a notare che c'era qualcosa nel nostro Universo che non filava esattamente con le leggi della fisica. Scoprirono, infatti, che applicando le leggi della forza di gravità note fino ad allora, le galassie a spirali, quelle cioè che hanno forma come la Via Lattea, avrebbero dovuto ruotare a una velocità tale che si sarebbero dovute sbriciolare già da tempo, spargendo le stelle per ogni dove. Se si considerano, infatti, gli astri che stanno nelle parti più esterne delle galassie, che si muovono a una velocità di circa 150-200 chilometri al secondo, e si ipotizza che le galassie stesse siano composte solo dalla materia che vediamo, le stelle in questione le avrebbero già dovute abbandonare da tempo. La loro forza centrifuga, infatti, avrebbe dovuto prendere il sopravvento sulla gravità. Ma questo non succede.

Così gli astronomi si chiesero se c'era qualcosa che impediva al fenomeno di verificarsi, un qualcosa che tratteneva la materia visibile impedendole di allontanarsi. Fu così che riscoprirono quanto aveva già ipotizzato nel 1933 l'astronomo Fritz Zwicky. Questi, studiando il comportamento degli ammassi di galassie della Vergine e della Chioma, ipotizzò che per spiegare i movimenti delle stelle che si vedevano vi doveva essere 400 volte più materia rispetto a quella che si poteva desumere dalla luce delle stelle visibili. Zwicky chiamò quella massa mancante "materia oscura" e nessuna definizione poteva calzare meglio di quella.

Ma la domanda d'obbligo con le quali si scontrano gli astronomi è ovvia: cos'è questa materia oscura e quanta ce n'è in più rispetto alla materia visibile? Le ipotesi si sprecano anche se molte si stanno perdendo per strada, lasciando spazio soprattutto a quelle che vogliono la "materia oscura" composta da "assioni" o da "neutralini", particelle subatomiche la cui esistenza è ancora tutta da dimostrare.

Altre ipotesi sostengono che, almeno in parte, la materia oscura potrebbe essere costituita da "nane brune", ossia stelle mai nate per la ridotta quantità di idrogeno di cui sono composte che ha impedito l'innesco delle reazioni nucleari.

Sulla quantità di "materia oscura" è importante conoscere il valore assoluto perché esso potrebbe aiutarci a capire il destino dell'Universo. Ce n'è così tanta da impedire che esso si espanda per sempre e lo faccia ricadere su se stesso o ce n'è solo al punto tale da rallentare semplicemente l'espansione, ma da permettergli di espandersi per sempre? Secondo le teorie che ci raccontano come si è formato l'Universo dal Big Bang e qual è la sua struttura a grande scala la "materia oscura" e la materia visibile ne devono costituire il 30% circa. E il rimanente 70%? Il resto sarebbe l'"energia oscura" che permea l'Universo. Ma questa è un'altra storia.


21 febbraio 2008

2029: Robot umanoidi e uomini bionici

Robot umanoidi o uomini bionici? All'alba del terzo millennio, all'interno della comunità degli studiosi, c'è chi vede il bivio profilarsi sempre più prossimo. E' matura l'era dei superuomini. La data è fissata per il 2029.

Una previsione che suona azzardata se non addirittura risibile per la pretesa precisione, se a farla non fosse Ray Kurzweil, padre del riconoscimento ottico dei caratteri e della musica di sintesi.

“Avremo l’hardware e il software necessario per raggiungere livelli d’intelligenza artificiale paragonabili con quelli umani. Le macchine avranno anche la flessibilità e l’intelligenza emozionale”, ha dichiarato Kurzweil a un corrispondente di BBC News.

L'IT, in base alla cosiddetta legge del ritorno accelerato, vedrà i propri risultati avanzare esponenzialmente rispetto alle conquiste tecniche conseguite. Grazie a questo progresso, che consentirà in mezzo secolo un balzo pari a 32 volte quello compiuto dall'umanità negli ultimi 50 anni, l'informatica e la biologia si fonderanno definitivamente.

“Siamo già nella civiltà dell’uomo-macchina - spiega -. Usiamo la tecnologia per espandere gli orizzonti fisici e mentali. Quello che vedremo in futuro sarà solo un’estensione di ciò che già viviamo”.

Una riflessione che certamente avrà fatto anche chi giornalmente passa ore e ore in auto nel traffico oppure davanti a un computer, ma senza l’ottimismo della ‘vision’ di Kurzweil.

Tra le prospettive più futuristiche, Kurzweil cita l’utilizzo di nanobot per intervenire sul cervello umano, potenziare intelligenza e memoria o partecipare alla realtà virtuale.

"I nanobot - spiega - ci renderanno più intelligenti, capaci di ricordare di più e meglio, ci proietteranno automaticamente in ambienti di realtà virtuale attraverso il sistema nervoso."
Non vi ricorda il film Matrix?!?

Kurzweil è stato chiamato dalla National Academy of Engineering USA, assieme ad altri 17 guru internazionali, a elencare le maggiori sfide tecnologiche per il ventunesimo secolo.

Non si tratta della prima provocazione da parte di Ray Kurzweil, scienziato controverso ma sempre una spanna avanti ai suoi tempi. Non per nulla lo scienziato fa parte dei 18 visionari incaricati dalla U.S. National Academy of Engineering di prevedere le sfide tecnologiche del prossimo secolo, insieme tra gli altri al discussissimo Craig Venter. Kurzweil è stato un pioniere negli ambiti più svariati, dal riconoscimento ottico dei caratteri, che consente la conversione in una stringa di caratteri di immagini contenenti testo, alla sintesi text-to-speech, insieme di tecnologie per il riconoscimento dei discorsi. Ha già scritto numerose opere sull'intelligenza artificiale, sul transumanesimo, sulla singolarità tecnologica.

Le sfide identificate sono le seguenti: rendere più accessibile l’energia solare, produrre energia da fusione atomica, sviluppare tecniche per la cattura della CO2 (il gas responsabile dell’effetto serra), controllare il ciclo dell’azoto, offrire accesso all’acqua potabile, fare il ‘reverse engineering’ del cervello umano, prevenire il rischio nucleare, rendere sicuro il cyberspazio, migliorare la realtà virtuale, migliorare le infrastrutture urbane, sviluppare l’informatica per la salute, progettare migliori medicine, sviluppare l’apprendimento personalizzato e esplorare le frontiere della natura.

Fonti:
voceditalia.it
theinquirer.it
ilsole24ore.com

20 febbraio 2008

Bug nei form di login ASP

Ho scoperto, leggendo www.webmasterpoint.org, un bug nei form di login in asp per l'accesso ad una area riservata.

Infatti inserendo una certa username e password è possibile accedere in molti sistemi che prevedono appunto un controllo dell'esistenza di un utente.
Uno dei sistemi più famosi afflitto da questo bug è AdMentor in tutte le sue versioni.

Il problema sta nel fatto che inserendo come username e password il seguente codice:

'OR''='
(apice singolo, OR, apice singolo, apice singolo, uguale, apice singolo)

Ecco quindi che possiamo effettuare un semplice controllo sull'username e la password inserite che può essere simile a :

username = Request.Form("username")
If InStr(username,"=") Then
Response.redirect "errore.asp"
End If

e lo stesso controllo sulla password.
In questo modo sarà impossibile inserire qualsiasi username e password che presentano un uguale (=), carattere spesso vietato nell'uso di dati come username e password appunto.

Perchè si riesce ad entrare nel sistema? Semplice perchè in questo modo la stringa che effettua il controllo:
SELECT * FROM utenti WHERE username = '" & username & "' AND password = '" & password & "'"
che diventerà
SELECT * FROM utenti WHERE username = ''OR''='' AND password = ''OR''=''"

Problema segnalato da Luca Bigon a webmasterpoint che ha ottenuto l' "informazione ufficiale" da : SevurityFocus.
Fonte: http://www.webmasterpoint.org/asp/pratica/51.asp