Archive

Posts Tagged ‘thoughts’

Venus-de-Milo lost both arms…

24 June 2009 Leave a comment

You know, when you have a program that does something really cool, and you wrote it from scratch, and it took a significant part of your life, you grow fond of it. When it’s finished, it feels like some kind of amorphous sculpture that you’ve created.

It has an abstract shape in your head that’s completely independent of its actual purpose. Elegant, simple, beautiful. Then, only a year later, after making dozens of pragmatic alterations to suit the people who use it, not only has your Venus- de-Milo lost both arms, she also has a giraffe’s head sticking out of her chest and a cherubic penis that squirts colored water into a plastic bucket.

The romance has become so painful that each day you struggle with an overwhelming urge to smash the fucking thing to pieces with a hammer.”

Nick Foster (”Life as a programmer”)

Via: Napolux

De rerum bug fixing

6 September 2008 Leave a comment

Quando si arriva finalmente nel momento di consegna in un progetto software, tutti bravi programmatori si rilassano. Le ultime fatiche, nottate, righe di codice, discussioni hanno portato al tanto desiderato rollout in produzione del vostro progetto.
Tutti i libri di progettazione del software parlano anche di una parte del ciclo di vita del progetto che può risultare molto urticante: il bug fixing!!!

Non esiste una vera e propria letteratura che vi permette di apprendere i rudimenti essenziali di questa fantasticafase del ciclo di vita del software. Ognuno affronta la cosa come meglio crede, quindi in questa umile sede mi permetto di delineare qualche linea guida che potrebbe risultare utile…

Punto 1. Quando c’è un’anomalia bisogna subito capire il contesto funzionale dove si verifica, per capire il corretto funzionamento che dovrebbe avere

Punto 1 nella realtà. Secondo la sempre giusta legge di Murphy, se te conosci il 70% delle funzionalità di un progetto, l’anomalia che ti verrà assegnata è nel rimanente 30%. Inizia quindi una laboriosa ricerca nei meandri di documenti di specifica e di dettaglio che dovrebbero farti capire come la cosa funziona (o almeno dovrebbe).

Punto 2. Talvolta potrebbe essere utile confrontarsi con la persona che ha sviluppato una certa funzionalità per poter accelerare i tempi di risoluzione dell’anomalia

Punto 2 nella realtà. Tendenzialmente la persona che scritto una determinata funzionalità, specialmente se colpevole di un’anomalia tende a dimenticarla poco dopo la consegna. Praticamente tutta la conoscenza che aveva accumulato casualmente vola via a tal punto che può anche dirti “Ma sei sicuro che l’abbia fatta io ’sta cosa?”. In tale circostanza bisogna armarsi di tanta pazienza e cercare di ristudiarti tutta la funzionalità da solo o cercare l’aiuto di qualche anima santa che talvolta viene in tuo aiuto

Punto 3. L’utilizzo di pattern noti nello sviluppo e di un flusso generalmente ben definito dell’applicazione può aiutare molto per identificare il punto in cui si verifica un problema

Punto 3 nella realtà. Purtroppo la parte che non funziona non è quasi mai in un punto del codice “pulito”, altrimenti sarebbe troppo semplice. L’anomalia è malefica, cattiva, annidata vicino a quel pezzo di codice che in teoria quasi non dovrebbe essere usato perchè deprecato o che comunque pure il compilatore quasi ignora.

Punto 4. Gli strumenti di sviluppo sono il migliore amico dello sviluppatore e ti vengono incontro nel momento del bisogno

Punto 4 nella realtà. Troppe volte succede che sono propri alcuni maledetti tool di sviluppo che creano problemi durante lo sviluppo e che poi “ricicciano” soltanto nel momento della produzione (solo a titolo d’esempio potrebbe essere un bellissimo prodotto della Serena Software). Oltre a questo come non nominare il simpaticissimo problema del DISALLINEAMENTO, che magari avviene tra diverse versione del vostro software e che quindi manda allegramente a puttane pezzi di codice.

Punto 5. Durante il test di alcune funzionalità il vostro cliente potrebbe inavvertitamente dimenticare alcuni aspetti delle feature richieste e quindi aprire anomalie che non esistono

Punto 5 nella realtà. Tu paghi, tu decidi, quindi voglio sperare che quando vai a testare una cosa conosci l’applicazione e quello che deve fare. Invece questo potrebbe non verificarsi e quindi può capitare che il simpaticissimo cliente apre anomalie, facendoti perdere tempo (vedi altri punti precedenti) per arrivare alla conclusione che non è un problema del software consegnato ma semplicemente il cliente nemmeno sa quello che vuole.

Si potrebbe continuare ancora a lungo ma sento che almeno con questo piccolo post ho dato sfogo a qualche settimana di BUG FIXING!!!!!

P.S.

Un saluto al carissimo Roberto che in questo momento affronta in prima linea il cliente tutto solo soletto

Microsoft entra nella Apache Foundation e contribuisce a PHP

28 July 2008 Leave a comment

Microsoft aderisce alla Apache Foundation e ora si trova al livello di altri contributori Platinum come Yahoo e Google…

Non so perchè ma dopo aver letto questa notizia, mi è venuta subito in mente la canzoncina che segue

Via : ossblog

Tags: , ,

I want to believe

16 May 2008 Leave a comment

I want to believe

Negli ultimi giorni mi è capitato di sentir parlare in diverse occasioni di UFO.
L’osservatorio astronomico della santa sede (ce n’è uno???!!) ha ammesso che si può credere contemporaneamente a Dio e negli alieni (hanno avuto qualche indiscrezione dai piani alti e non lo dicono?).

Il governo brittanico invece ha pubblicato archivi segreti riguardanti segnalazioni riguardanti UFO (la maggiorparte sono delle bufale però comunque c’è un’esigua percentuale di segnalazioni che non viene spiegata bene).

Io sono un malato per la fantascienza, quindi le mie considerazioni sono chiaramente di parte, ma ho sempre pensato che esista la vita anche su altri pianeti. Considerando quanti sistemi simili al nostro, quanti pianeti, quante galassie esistono (calcolando che con gli attuali mezzi di osservazione possiamo saperne ben poco), mi sembra impossibile che su un solo pianeta di tutto l’universo si sia sviluppata la vita. Che bello sognare

Tags: ,

Atomicità e l’Alitalia

27 April 2008 Leave a comment

Le transazioni nell’informatica sono una sequenza di operazioni che devono essere eseguite e di solito per funzionare correttamente devono rispettare quattro diverse proprietà (ACID).
L’atomicità (prendendo la definizione da Wikipedia) è la seguente proprietà: la transazione è indivisibile nella sua esecuzione e la sua esecuzione deve essere o totale o nulla, non sono ammesse esecuzioni intermedie.
Ok…cosa c’entra l’Alitalia?
Beh immaginate il seguente scenario. Vi trovate nel mezzo di un volo aereo con la nostra bella compagnia di bandiera. Proprio in quel momento l’Alitalia fallisce. Cosa succede?

Scenario 1: Le hostess, coscienti di quello che sta succedendo, incominciano a ballare il can-can. Il capotreno (ma non era un aereo?) dall’autoparlante invita tutti i passeggeri a cantare la Marsigliese (purtroppo sembra che la cordata promessa non abbiamo avuto l’esito desiderato oltre a quello di eleggere il suo promotore)

Scenario 2: Tutti i passeggeri, fortemente patriottici, si dimenano e poi esplodono per la rabbia, come nel videogioco Lemmings

Scenario 3: Esce dalla cabina di pilotaggio Morpheus che dice “Tutto quello che vedete è STRUTTURA”

…fare straordinario il sabato sera in solitaria, cercando di fare bug fixing su cose mai viste apre le sinapsi neurali meglio di qualsiasi allucinegeno

Tags: ,

Se lo dice lui…

12 April 2008 Leave a comment

Nessun calcolatore 9000 ha mai commesso un errore o alterato un’informazione. Noi siamo, senza possibili eccezioni di sorta, a prova di errore, e incapaci di sbagliare. (HAL 9000)


2001: Odissea nello spazio

Tags:

Ajax e buoi dei paesi tuoi

20 February 2008 Leave a comment

Ultimamente le interfacce web se non hanno qualche effetto di caricamento, simpatiche finestrelle che appaiono a destra e a manca e qualsiasi altra cosa carina vengono marchiate come vecchie. Devo dire che alcune volte questi effetti sono carini e utili, ma nella maggiorparte dei casi non servono. Partendo però dal presupposto che uno deve comunque seguire le mode, mi sono incominciato a interessare dei framework che permettono di realizzare interfacce AJAX (buzzword buzzword…), chiaramente in Java :)

Uno dei progetti sicuramente più interessanti è Google Web Toolkit, che permette di realizzare molte interazioni con il browser, scrivendo direttamente tutto in Java e poi convertendolo in Javascript (un toccasana per chi non vuole vedere JS).
DWR (Direct Web Remoting) è un altro framework Java interessante, a proposito del quale potete leggere un articolo pubblicato su JavaStaff.

Dando un’occhiata ai framework web Java c’è ICEFaces, implementazione dello standard JSF, che ha rilasciato dei componenti JSF che al loro interno utilizzano script.aculo.us, libreria Javascript che offre molti ed interessanti effetti da includere nel nostro progetto web.

Il problema è proprio questo, che oltre ad avere un framework che ci permette di avere uno scambio di dati tra browser e server senza la necessità di ricaricare la pagina, dobbiamo puntare anche su qualche libreria che sia in grado di offrire all’utente qualche piacevole effetto grafico. Per avere la botte piena e la moglie ubriaca (ovvero per programmare effetti AJAX in Java e avere anche una GUI web interessante) possiamo vedere GWT-Ext.

Come già detto GWT ci permette di creare interazioni Javascript attraverso il tool di Google, Ext invece è una libreria Javascript usata su molti siti per i suoi effetti grafici. Una demo di questa libreria la potete trovare qui, mentre in questa pagina è possibile trovare una guida passo passo che ci permette di configurare questa libreria in Eclipse.

Che bello l’opensource :P

Con i vari IM sei attivo o passivo?

6 December 2007 Leave a comment

Leggo oggi su downloadblog che Google Talk, che utilizza come protocollo Jabber, offre ora la possibilità di parlare con gli utenti presenti sulla rete di AIM. Voglio sperare che questa integrazione con il tempo verrà accettata anche da altri colossi del reparto IM.
Mentre un tempo la scelta era ristretta a pochi servizi per avete un messenger, oggi ne esistono forse troppi

IM Attack

Il brutto non è sceglierne uno, perchè alla fine ognuno riesce a trovare il suo messenger. Il vero problema sono gli amici!!

Non possiamo chiaramente obbligare tutti quelli che conosciamo ad utilizzare quello che vogliamo noi e capita praticamente a tutti quelli che abbiamo un pò di amici/contatti sparsi su internet di trovarsi in questa situazione (cioè mi dispiace ad esempio se c’è un mio amico che utilizza un determinato IM e posso sentirlo solo tramite la chat)
Le soluzioni sono due:

  • Scaricare tutti i dannati client per raggiungere tutti i tuoi amici, così appena fai partire il tuo pc si aprirà un tornado di connessioni ai vari server, popup, squilletti e intrallazzi vari
  • Utilizzare client (come Pidgin) e programmi web (come Meebo) che ti permettono di collezionare tutti i vari servizi e li unificano sotto un’unica interfaccia (perdendo purtroppo alcune feature)

Voi siete attivi o passivi con i vari IM? (Spero proprio che Google sia magnanimo con questo post e non lo indicizzi per certe ricerche :)  )

Tags: ,

Antico proverbio indiano

16 November 2007 Leave a comment

Solo dopo che l’ultimo albero sarà stato abbattuto…
Solo dopo che l’ultimo fiume sarà stato inquinato…
Solo dopo che l’ultimo pesce sarà stato pescato…
Solo allora scoprirai che i soldi non si possono mangiare

Tags:

Tristi constatazioni sul mondo dell’informatica

12 November 2007 Leave a comment

Legge di Eagleson

Any code of your own that you haven’t looked at for six or more months, might as well have been written by someone else. (Eagleson is an optimist, the real number is more like three weeks.)

Lubarsky’s Law of Cybernetic Entomology

There’s always one more bug.

Pierce’s Law

In any computer system, the machine will always misinterpret, misconstrue, misprint, or not evaluate any math or subroutines or fail to print any output on at least the first run through.

Corollary to Pierce’s Law

When a compiler accepts a program without error on the first run, the program will not yield the desired output.


Golub’s Laws of Computerdom

Project teams detest weekly progress reporting because it so vividly manifests their lack of progress.

Weinberg’s Law

If builders built buildings the way programmers wrote programs, the first woodpecker that came along would destroy civilization.

Butler Lampson

The “Fundamental Theorem of Software Engineering”: All problems can be solved by introducing an extra level of indirection.

Fonti: vorrei metterle ma ho chiuso le N finestre che avevo aperte :)

Tags: ,
Follow

Get every new post delivered to your Inbox.