Technology Experience
Software

Visual Studio 2008 Beta 2 anche io

Durante il weekend, tra i mille impegni casalinghi, ho scaricato Visual Studio 2008 Beta 2. Nonostante le raccomandazioni di Lorenzo, che dicevano di usarlo e provarlo prima su una VM, l’ho voluto installare sul mio PC a casa, dove lo sviluppo non è così prioritario. Se qualcosa andava male, pazienza. Invece è tutto andato a meraviglia.

Il tempo di installazione non si discosta moltissimo dal tempo di installazione di VS2005. Mi ha chiesto un riavvio del PC dopo l’installazione del nuovo .NET Framework 3.5, che è il primo passo obbligatorio da fare. Per il resto…tutto bene, anzi, mi aspettavo peggio. L’interfaccia è simile a quella di VS2005, da quello che ho visto ad una prima occhiata c’è un supporto migliorato per XAML e per lavorare con WPF. Sotto Windows Vista non chiede più i permessi amministrativi per poter girare. Altre cose le vedrò dopo le ferie, dal momento che anche io lavoro fino a venerdì questo, perciò…

Piccolo appunto: ho provato ad aprire una solution VS2005 con Visual Studio 2008. Parte un wizard che mi chiede la conversione del formato, perciò devo dedurre che qualcosa è cambiato. Non so dire in questo momento se è un banale “8.0” che è diventato “9.0” dentro il file .sln. In linea di massima sono più che soddisfatto…penso che per i miei progetti personali comincerò ad usare VS2008, tanto sono tutti progetti non ancora distribuiti ai clienti, perciò ho tutto il tempo di convertirli e di lavorarci con calma.

Technorati Tags:    

Send to Kindle
VivendoByte.ByteAdventure

Marine Vs. Cacodemone

Venerdì 10 Dicembre 1993 fu un giorno storico. I ragazzi della ID Software pubblicarono su un server  dell’Università del Wisconsin (USA) la versione shareware di Doom, il più grande successo di tutti i tempi  ed il capostipite di un nuovo genere, quello degli sparatutto in soggettiva, sul quale si basarono molti  videogame degli anni successivi. Il concept era semplice: un marine in una base spaziale su Marte invasa  da mostri e demoni usciti direttamente dall’inferno doveva cavarsela facendo affidamento esclusivamente  sul proprio arsenale. Decine e decine di livelli originali. Migliaia e migliaia di livelli distribuiti  grazie ad Internet.
Questo breve racconto è dedicato a quel gioco.

Il byte array del cacodemone era stato istanziato nel momento in cui il file E2M8 (episode 2, mission 8)  era stato caricato in memoria. I bytes avrebbero permesso alla creatura infernale di assolvere al proprio  dovere senza dubbi e senza rimpianti: distruggere l’umano che si aggirava nella base. Il byte[0] di  quell’array sapeva benissimo quello che avrebbe significato per lui: la deallocazione dalla memoria.  Portare a 0x00 il contenuto della cella di memoria che conteneva i punti-ferita (PF) dell’umano avrebbe  comportato la conclusione della partita e la conseguente pulizia della memoria relativa. Se ci fosse stato  un modo, l’avrebbe evitato, ma non era possibile. Al momento giusto, il cacodemone avrebbero attaccato e  dell’umano non sarebbe rimasta traccia. Ma non ancora.

L’engine chiamava continuamente il metodo Walk() sull’istanza di classe Marine. Ciò consentiva all’oggetto  di mantenersi costantemente in movimento, per non diventare un bersaglio facile. Teneva ben puntata  davanti a sè la doppietta che aveva recuperato qualche stanza prima. Si trovava a ridosso dei collettori  di energia. Se il software l’avesse previsto, si sarebbe sentita puzza di bruciato ovunque – evidentemente  i cavi elettrici fusi dall’estremo calore non avevano resistito. Le textures delle pareti metalliche  riportavano chiazze di sangue, segno della battaglia che gli occupanti della base avevano tentato di  lottare inutilmente. Il marine era rimasto solo nella base e doveva riuscire a trovare una via di uscita  in mezzo a quella follia. Follia fatta da demoni, passaggi segreti, ascensori e…morte.

L’algoritmo impediva al cacodemone di muoversi. Per ottimizzare la velocità e l’occupazione di memoria, le  istanze dei mostri erano state programmate per agire solo quando il loro obiettivo – il marine – si fosse  sufficientemente avvicinato a loro. Il cacodemone era l’ultimo avversario prima della porta di sicurezza  che conduceva al livello successivo: era questione di qualche ciclo di clock – prima o poi, il marine  sarebbe passato di lì. E allora sì che se ne sarebbero viste delle belle. La IA della creatura in quel  momento era bloccata in un ciclo do…while: il demone non stava facendo nulla, non pensava, non  respirava, non faceva niente di niente. Solo l’engine poteva sbloccare la situazione.

Il marine girò l’angolo e chiamò il metodo Fire() senza esitare, uccidendo sull’istante un imp giusto un  attimo prima che questi lanciasse la sua palla di fuoco. Lo sparo della doppietta fu così violento che il  demone di basso livello volò indietro di qualche metro, prima che il garbage collector decidesse di  rimuoverlo dall’ambiente, simulando un dissolvimento della creatura nell’aria fredda e puzzolente della  base militare. Il marine si mosse subito a destra, riparandosi dietro una colonna. Sentì lì vicino il  respiro di un altro imp che vagava nella base – e lui rimase immobile e silenzioso per non farsi scoprire.  Quando l’imp gli passò accanto non potè non vederlo. Il marine lo sentì come soffiare dalla sua bocca ed  alzò il braccio peloso per lanciare il fuoco infernale dalla mano. L’algoritmo produsse un colpo  impreciso, perchè la palla di fuoco colpì la colonna dietro la quale si nascondeva il marine. L’esplosione  ferì l’umano in modo superficiale. Prima che le cose degenerassero, il marine sbucò fuori dal suo  nascondiglio ed esplose un altro colpo che fece secco l’imp allo stesso modo del primo.

Se il marine fosse stato un marine vero, avrebbe tirato un respiro di sollievo. Ma era un marine virtuale,  simulato all’interno di un software. Ciò nonostante, non gli sarebbe piaciuto morire – a nessuno piace  morire. Il marine sapeva perfettamente che sotto sotto era solo un mucchio di bytes istanziati chissà  dove. Sapeva perfettamente che tecnicamente parlando non sarebbe mai davvero morto. Sapeva perfettamente  che la sua vita dipendeva al 100% dal sistema all’interno del quale stava girando: algoritmi, calcoli,  niente di più. Il suo mondo era solo un mucchio di textures. Lui stesso era un’istanza di classe. E  allora? E allora non gli sarebbe piaciuto morire, indipendentemente da tutto. Il marine pensò che finchè  avrebbe avuto un colpo in canna, avrebbe lottato per rimanere lì doveva. Diede un’occhiata intorno:  davanti a lui si apriva un lungo corridoio, senza aperture laterali. In fondo al corridoio c’era una  porta. Nno vedeva pericoli, perciò raggiunse la porta velocemente.

Mentre il marine camminava verso la porta, il cacodemone si attivò, emanando un suono gutturale. Cominciò  a muoversi lentamente verso la porta per tendere un agguato al marine. La struttura 3D nella quale si  trovava il demone costruiva una stanza quadrata, le cui textures riportavano anche 4 umani crocifissi:  quando il marine sarebbe entrato, gli sarebbero venuti i brividi vedendo 4 suoi compagni ridotti in quello  stato. O perlomeno…sarebbero venuti i brividi all’Umano che stava al di là del monitor.

Il marine utilizzò il pass rosso per aprire la porta. L’engine fece alzare lentamente la porta attraverso  un semplice shifting dei bytes della texture. L’urlo del cacodemone fu così forte ed imprevisto che  investì il marine in tutta la sua essenza. Spaventato, il marine chiuse gli occhi…e quel gesto gli fu  fatale. Il cacodemone era a meno di un metro dal soldato. Emise una scarica elettrica ad alto voltaggio  che penetrò nelle ossa e fece diminuire velocemente i punti-ferita del marine. L’uomo si rese conto si  essere perduto – se il giocatore non si fosse dato una mossa, sarebbe stato deallocato. “Fa qualcosa!” –  pensò il marine, sapendo benissimo che il suo messaggio non sarebbe mai arrivato all’Aldilà.

Fu così che morì. Ox245A4 cicli di clock più tardi, il byte che conteneva i punti-ferita del marine  conteneva 0. Lo stream di byte arrivò alla scheda audio, facendo urlare di dolore l’uomo. Lo schermo  divenne rosso sangue. Ed il gioco finì così.

Il giocatore premette Invio sulla tastiera, e dopo qualche attimo di caricamento un nuovo marine era  pronto per combattere contro un nuovo cacodemone in una nuova base spaziale su Marte.

Send to Kindle
Hardware

Quello per cui non tornerei indietro…il volante!

Qualche tempo fa Marco Minerva diceva sul suo blog che non tornerebbe più indietro dopo che ha provato la sua nuova tastiera wireless. Anche io un paio di anni fa ho preferito un tastiera wireless, ed effettivamente la comodità c’è ed è pure tanta, con l’unica penalità di ricordarsi ogni tanto di cambiare le batterie. Ma c’è un’altra cosa che ultimamente ho provato e che non cambierei più.

Il volante.

Per anni ho giocato a giochi di guida usando la tastiera. Da Stunt Car Racer a GP2, da Colin McRae Rally 1 all’ultimo Colin McRae Rally DIRT. Spesso sui forum leggevo di gente che giocava con il volante e un po’ tutti dicevano che se il software è fatto bene, non c’è molta differenza tra controllare un veicolo con la tastiera o con il volante. Vabbè, da una parte devo premere dei tasti, dall’altra giro il volante esattamente come se fossi seduto sulla mia Astra, però il feeling e la reattività non è che cambiano poi tanto. Così ho sempre letto.

Balle. Eterne, semplici, inenarrabili balle. La differenza c’è, ed è pure tanta, al punto che se adesso mi immagino di controllare la mia Subaru Impreza con il tastierino numerico mi viene da sorridere. Mi sto divertento un sacco con Test Drive Unlimited, che è di gran lunga il più bel simulatore di guida che abbia mai visto, alla faccia di Need for Speed e dintorni. Guidare l’autore con il volante, e con il force-feedback, è uno spettacolo, un’intuitività dei controlli senza paragoni ed un divertimento assicurato.

Insomma, se Marco non tornerebbe più indietro ad una normale tastiera wired, io non tornerei più indietro alla tastiera.

Technorati Tags:

Send to Kindle
Hardware

Finalmente…uno storage su RJ45 affidabile

Tempo fa acquistai un disco di rete per mettere su un hard-disk esterno tutti i miei dati. Quelli su USB 2.0 non mi piacciono, perchè mi obbligano a tenere acceso il PC a cui lo connetto. Un po’ per risparmiare corrente, un po’ per fare meno caldo, questa cosa di accendere il PC non mi è mai piaciuta, per cui all’epoca optai per uno storage della Extreme Technology su RJ45. Dentro questo case è possibile infilare un normale hard-disk EIDE da usare come storage. Grazie al firmware del device, è possibile configure un po’ di cosucce, come l’indirizzo IP, formattare il disco e cose del genere. Nonostante i buoni propositi, questa soluzione non mi soddisfò moltissimo, perchè capitava che sfogliando lo storage con un semplice \STORAGE, ogni tanto non mi compariva tutte le directory. Dovevo premere F5 diverse volte per avere l’elenco reale delle directory e dei files. Da quel giorno ho sempre usato quello storage come unità di backup.

Ieri pomeriggio ho accompagnato mio fratello all’aeroporto, e sulla via del ritorno mi sono fermato ad un Mediaworld per prendere un altro storage su porta RJ45 della Packard Bell. Questa volta il disco è interno, da 320Gb, e non ce lo devo più mettere io. Questo storage funziona molto meglio rispetto al modello precedente. C’è solo un aggiornamento del firmware assolutamente obbligatorio, altrimenti non riuscite a fare il browser di directory e files da Windows Vista. Mi sembra più che buono, perchè scalda pochissimo e soprattutto…funziona bene!

Send to Kindle
IV del Venerdì

[IV] del Venerdì (13)

Il colpo della vecchia non fu forte, ma la ragazza era talmente stanca che finì a terra con suo figlio. Per qualche secondo non ebbe fiato per rialzarsi, e respirò soltanto l’odore dell’erba umida della pioggia caduta qualche giorno prima. Si girò e cercò di capire chi l’avesse colpita alle spalle. Rimane sorpresa quando vide una persona anziana, con le rughe marcate sulla pelle del viso. Indossava una sorta di tunica verde scuro che ben si mimetizzava nella vegetazione, che le lasciava scoperte le braccia – rugose anch’esse – e comodi sandali di una qualità di cuoio che la ragazza non aveva mai visto prima. La ragazza cercò di parlare per chiedere alla vecchia chi fosse, ma quest’ultima alzò il braccio e si sentì inchiodata a terra senza possibilità di muoversi.
Tu sei solo una PNG. E tale rimarrai. Non protestare, non puoi farci niente.
La ragazza non capì un accidente di quello che le venne detto.
Cosa diavolo vuol dire…PNG? Io sono una druida. Vattene o ti distruggerò!
La vecchia rispose incurante della minaccia.
PNG? Personaggio non giocante. Cos’altro se non questo?
Le certezze della ragazza, già minate dagli scorsi avvenimenti, caddero definitivamente.

Quando sono andato l’ultima volta a Gardaland, con Lorenzo, Mauro, Matteo ed altri di UGIdotNET (non li cito tutti per non star lì a dover mettere i links ai rispettivi blog), mi ha fermato la polizia stradale all’uscita del casello autostradale di Peschiera. Non so se per la faccia da delinquente che ho, o per qualche altro motivo, ma sta di fatto che mi ha fermato. Controllo sulla patente e sul libretto di circolazione. E prova dell’etilometro, passata con successo dato che quel giorno avevo bevuto solo acqua minerale. Meglio così.

Ma voglio dire una cosa. Mentre aspettavo che la polizia mi restituisse i documenti, mi sono messo a chiaccherare con il poliziotto sui limiti di alcool nel sangue. Gli chiesi: “Ma quanto è davvero questo limite?“. Il poliziotto fu un po’ vago: dipende da cosa bevi veramente, cosa stai mangiando, quanto tempo è passato e così via. Io credo ci siano altri parametri più “sociologici” in ballo: mi è capitato a volte di bere una birra media e di stare male; altre volte ho bevuto 1,4 litri di birra e di stare benissimo. E quindi? E quindi dipende da un sacco di cose, tale per cui non è sufficiente impostare un limite di alcool nel sangue per dire che uno è ubriaco e non può guidare. Ci sono persone che bevono un bicchiere di vino e crollano dal sonno. Ci sono persone che bevono un litro di birra e stanno meglio del tizio che ho bevuto un singolo bicchiere di limoncello.

La faccio breve: credo che le forze dell’ordine debba certamente fare controlli ed evitare che persone ne uccidano altre mentre sono alla guida. Ma il controllo non deve essere una mera e stupida misurazione dell’alcool nel sangue, ma deve sottoporre a dei test i guidatori fermati. Prove di equilibrio, prova di logica, una chiaccherata informale per vedere come reagisce il soggetto, non so, questo non posso essere io a dirlo perchè credo di non avere competenze sufficiente. Ma la penso così, per i motivi che ho detto prima. Probabilmente guido meglio io un po’ brillo piuttosto che un mio amico incosciente che tutte le volte che deve controllare la corsia alla sua destra, per vedere se è libera, non lo fa usando lo specchio retrovisore, ma gira fisicamente la testa all’indietro come se facesse retromarcia…mentre guida…a 80 km/h. Un giorno ci farà ammazzare tutti, lo so…voglio che venga messa agli atti questa mia ultima dichiarazione.

Molti incidenti accadono anche a causa della sonnolenza e della stanchezza. Perchè non si fa una legge che obbliga le persone a dormire almeno 6 ore prima di mettersi al volante? Perchè non avrebbe senso, perchè ciascuno di noi ha un fabbisogno di sonno diverso, esattamente come l’alcool. Sono prolisso: vi racconto una storia. L’anno scorso, ad agosto, quando ero in vacanza in Puglia, ho raggiunto qualche amico di UGIdotNET per una cena a Bari. Partii in auto alle 18 dal mio campeggio, raggiunsi Bari 2 ore dopo. Ok. Mangiata di pesce crudo con vino bianco a tutto andare, lemoncello alla fine. Dopo…mica ce ne siamo tornati a casa. Verso mezzanotte (vado a memoria) siamo andati a Cisternino, minuscolo paese vicino ad Alberobello a fare due passi: altra strada in macchina. Verso le 2 del mattino io e mio fratello siamo tornati al nostro campeggio: siamo arrivati alle 6 del mattino. Morale: un sacco di strada in macchina con bicchieri di vino in corpo e senza un briciolo di stanchezza. Non soffro mai il sonno mentre guido. E non è l’unico caso: sono andato al concerto di Ligabue un paio d’anni fa, sono stato in giro per quasi 24 ore senza risentirne particolarmente. Al concerto andai con una ragazza conosciuta quel giorno stesso, Emanuela di Arese, davvero molto molto carina e simpatica (a proposito…ciao!). Al ritorno partimmo da Campovolo alle 4 ed io arrivai a casa mia (dopo aver accompagnato lei prima) intorno alle 6, senza un briciolo di stanchezza. Prima di partire, bevemmo due birre medie e testa.

Morale. Ci sono persone come me che dormono 3 ore e non hanno sonno (ultimamente mi è capitato spesso, come la sera di Gardaland che ho citato prima), c’è la mia amica Francy che anche se ne dorme 12 per lei non sono mai abbastanza. Non si può regolamentare il sonno, così come non si può regolamentare l’alcool. Personalmente, ritengo che chi investe uno, indipendentemente dal fatto che sia ubriaco oppure no, debba finire in cella per un po’ di tempo, e magari nei casi più gravi bisogna pure buttare la chiave (come quel tipo che ha ammazzato la ragazza 16enne davanti alla discoteca tempo fa). Ma questo indipendentemente dall’alcool, davvero. Non mi stancherò mai di dirlo: l’alcool è soggettivo, ognuno di noi vive in modo diverso anche un semplice bicchiere di vino o di birra. E quindi come si fa a dire che x mg di alcool nel sangue sono pericolosi? Lo saranno per te, mica per me! I poliziotti dovrebbero fermarmi, farmi camminare lungo la carreggiata per vedere se sto dritto, dovrebbero farmi saltellare su un piedi solo per 20 volte, dovrebbero provarmi i riflessi, dovrebbero controllare se distinguo il rosso ed il verde, dovrebbero farmi fare le tabelline (quanto fa 7×21, oppure 6×8?): i metodi sono tanti per capire se uno è stordito oppure no.

Cominciate pure.

Send to Kindle
Software

Powerpoint e video dal TechEd

Non so cosa gli sia preso, ma ultimamente Lorenzo sta bloggando diverse cose interessanti. Non credo di averlo linkato così spesso come negli ultimi tempi. Deve essere il caldo. 🙂

A parte scherzi, Lorenzo ci avvisa che sono state messe on-line le slides e le registrazioni delle sessioni relative a Visual Studio Team System. La pagina diretta su MSDN è questa. E’ veloce e comoda da sfogliare, perchè per il download non è richiesta la registrazione, basta vedere la sessione che ci interessa e decidere se voler vedere il file .ppt o il video. Oggi, causa scarso lavoro, do un’occhiata: quella sulle software factories mi interessa parecchio, ed anche qualcun’altra.

Technorati Tags:   

Send to Kindle
My personal life

Telefilm con scene irrealistiche

Stamattina, mentre facevo colazione, stavo sfogliando un vecchio numero di TV Sorrisi & Canzoni. In particolare, ho letto un breve articolo di Carlo Lucarelli, il noto scrittore di libri gialli. Il testo era in pratica una sorta di lunga carrellata dei telefilm gialli più famosi, evidenziandone pregi e difetti. Sherlock Holmes, tenente Colombo, Kojak e via dicendo, tutti quelli che han fatto un po’ la storia di questo genere. Lucarelli alla fine dice che non riesce più a vedere una puntata della signora Fletcher, perchè è assolutamente irrealistico che ogni fottuta volta finisca in un posto dove ci scappa il morto. Sono d’accordo con lui, e se venisse a leggere il mio blog credo che sarebbe d’accordo anche la mia amica Fede, alias Chicca.

Ma, seguendo questo principio, mi spiegate perchè le puntate di Cobra 11, ogni mercoledì sera su Rai Due, nonostante ogni volta siano pieni di incidenti auostradali di ogni tipo, continuano a divertirmi più di ogni altra cosa??? Tamponamenti, macchine che volano, altre che finiscono in verticale sulla carreggiata di una mega-autostrada a 5 corsie, derapate assurde in piena città (altro che Camogli!!!), super TIR che esplodono in tutti i modi possibili. Non importa quante puntate veda di Cobra 11, perchè ogni volta è come se fosse la prima!

P.S. : la serie Cobra 11 è citata persino su Wikipedia. Pare che gli incidenti siano l’elemento di spicco della serie. Lo immaginavo!

Send to Kindle
Software

Vulnerabilità di FireFox? E vabbè…succede!

Dove sto lavorando adesso, sono in gran parte appassionati di open-source, Java con tutti gli annessi e connessi. Seduto alla mia sinistra c’è un collega, molto simpatico a dire il vero, che tutte le volte, appena può, insulta qualsiasi cosa riguardi Microsoft. Non scherzo: lui stesso si definisce fondamentalista dell’open-source. Gli ho detto più di una volta che se davvero crede in quello che dice, dovrebbe lavorare gratis lui per primo, ma chissà perchè non mi ha mai dato retta più di tanto. Tra le altre cose, il tizio in questione adora FireFox, ed ovviamente odia a morte Internet Explorer. Ok, ci può stare. Io stesso uso FireFox su qualche sito. Il bello di non essere fondamentalista è quello di poter usare un po’ ed un po’, in base a come gira e riconoscendo pregi e difetti del software di cui si sta parlando. Meglio così. La cosa bella di questo mio collega è che quando parte l’insulto verso IE, Windows, VS, WMP o qualcos’altro, si gira verso di me e se la prende direttamente con me, come se avessi programmato tutto io. Ma alla fine è un bravo ragazzo, devo solo sopportarlo, anche perchè poi mi vendico sempre in modi che non sto qui a raccontarvi!

Torniamo a noi.

Oggi pomeriggio mi ha capitato sottomano questo post di Alessio Marziali, che seguo sempre con interesse. Si parla di una vulnerabilità di FireFox, grazie (a causa?) della quale da una pagina Web è possibile lanciare qualsiasi eseguibile sul nostro PC. Non c’è bisogno di fare nulla di così particolare, basta raggiungere il post di Alessio e provare a cliccare sui links che ha pubblicato.

Quando l’ho letta, oggi pomeriggio, ho esclamato: “Cha caxxta ‘sto FireFox!!“. Il mio collega mi sente, si toglie gli auricolari dalle orecchie – un fondamentalista dell’open-source ascolta sempre musica mentre lavora – guarda il mio monitor e gli spiego che se faccio una pagina HTML come si deve posso far partire un qualsiasi comando sul suo PC. Chessò, stoppare il servizio del suo servizio MySQL, per esempio, o magari riavviargli semplicemente il PC. Il mio collega non sa cosa dire…mormora un “O che cavolo…è impossibile!“. Ma alla fine si deve arrendere. Si arrende con un: “E vabbè…succede!“.

Chissà cosa sarebbe successo se una cosa del genere fosse capitata ad Internet Explorer!!!

Technorati Tags:  

Send to Kindle
Software

Riflessioni a metà strada tra VSTS, TFS e SDL

dove:
VSTS sta per Visual Studio Team System
TFS sta per Team Foundation Server
SDL sta per Security Development Lifecycle

Sto (quasi) finendo di leggere The Security Development Lifecycle, di Micheal Howard e Steve Lipner. Il giorno in cui lo acquistai, mi chiesi se faceva al caso mio. Qualcuno di UGI – via Messenger – mi fece la stessa domanda. Quel giorno lo acquistai perchè andai ad un evento Microsoft Technet, la sicurezza la faceva da padrone e Francesca Di Massimo durante la sua sessione mise particolare enfasi sull’argomento SDL, per cui mi sono fatto convincere ad acquistare il libro dal banchetto di Gorilla.it.

Stasera ho raggiunto poco più della metà del libro, c’è ancora molto da leggere, ma un’idea me la sono fatta. Conoscendo Sua Maestà Raffaele di persona, sapevo già che la sicurezza è un argomento che bisogna affrontare sempre, ma il libro mi ha ficcato bene in testa molte spiegazioni. Innanzitutto, ficchiamoci bene in testa una cosa molto semplice: la sicurezza riguarda ogni tipo di software, dal Blocco Note a Microsoft Money. E non è una battuta. Se Blocco Note soffrisse di una qualche vulnerabilità, ne risentirebbe l’intero sistema, perchp basterebbe sfruttare quella falla per scatenare un DoS sul sistema. La sicurezza riguarda l’affidabilità, e per diretta conseguenza la qualità di un sistema software, riguarda la protezione dei dati, la garanzia che i dati vengano trattati rispettando la privacy, etc. etc.

SDL è un insieme di procedure/processi/best practices che consentono di progettare e disegnare software avendo come obiettivo ultimo la sicurezza. I punti previsti da SDL sono davvero tanti e complessi e sicuramente sono la persona meno adatta a spiegarveli uno per uno. SDL riguarda l’analisi dei requisiti, evidenzia porzioni di codice a diversi livelli di rischio, permette di capire quali features abilitare di default oppure no durante il setup dell’applicazione, prevede la creazione di documentazione aggiornata al codice per evidenziare possibili punti critici dell’applicazione, detta le basi per testare l’applicazione stessa usando logiche di Fuzz Testing, Penetration Testing e Unit-Testing, etc. etc. A…dimenticavo…eccetera, eccetera, eccetera. C’è molto davvero.

Si parla anche di come organizzare il team affinchè sia possibile aderire il più possibile ai processi previsti dalla SDL. Ingegneri, architetti, developer, esperti di security, altri tecnici: tutti devono collaborare, rispetto i ruoli dei lead, e dialogare assieme per raggiungere gli obiettivi. Questo significa poter accedere alla stessa documentazione (aggiornata), poter accedere tutti assieme ai bugs rilevati per poter determinare dove si trova la nostra “bug bar”, poter verificare in ogni momento a che punto siamo con lo stato d’avanzamento del progetto e così via. Riporto una frase tratta dal libro:

Constant communication to the software development team about the progress of the security push is absolutely critical to the push process. Communication colud include the following: regular e-mail messages, an intranet site with live statistics.

Il testo va avanti, dicendo che nelle comunicazioni dovrebbero includere: numero di bug trovati, numero di nuovi bug rilevati nelle ultime 24 ore, numero di files contenuti nel progetto, test eseguiti con l’esito sotto forma di grafico, il nome dei bug-hunter più bravi, e così via. Devo proprio dirlo che mi sembra la descrizione della combinazione VSTS+TFS?

TFS gestisce ogni Team Project con un portale dedicato basato su Sharepoint (collaborare e dialogare), attraverso il quale l’intero team può avere accesso a tutte la documentazione necessaria allo sviluppo. Non solo: possiamo accedere a statistiche costantemente aggiornate su quanti WorkItems mancano alla fine del lavoro, quanti bug sono stati corretti, quanti test sono stati eseguiti e con quale esito, quanto codice è stato committato oggi e via dicendo. TFS permette di tracciare i bugs rilevati con i WorkItem. Ancora una volta, è chiaro come il tandem VSTS+TFS non sia solo un semplice tandem di software, ma sono due strumenti che fanno parte di uno scenario più ampio, che si incastrano perfettamente in uno scenario molto più vasto. In questo caso, la piena predisposizione all’aderenza alla SDL.

Uno dei processi finali della SDL è la FSR, che sta per Final Release Review, una sorta di esame finale della nostra applicazione, per vedere se è stata sviluppata con tutti i criteri previsti dalla SDL. Questo significa un miliardo di cose: documentazione sulla superficie di attacco, documentazione sul threat model, documentazione sui protocolli di rete, situazione di ciascun bug, documentazione sulla risk analysis. Sarebbe uno sbaglio terrificante mettersi a scrivere tutto alla fine, e questo è ovvio. L’utilizzo di una piattaforma basata su TFS semplifica significativamente tutti i processi previsti dalla SDL: semplifica la gestione, il mantenimento e l’accessibilità delle informazioni e di conseguenza il nostro lavoro. Lavoro di chiunque, dal capo-progetto al più piccolo dei developer.

Technorati Tags:   

Send to Kindle