domenica, gennaio 28, 2007

Paris Hilton e il crivello di Eratostene

Paris HiltonMi chievedo: Paris Hilton sa per caso cosa è il Crivello di Eratostene. Sicuramente è una ragazza piuttosto stupida, ma è altrettanto furba da dare una risposta a questa domanda. Già, la ragazza è proprio furba ed è la sua furbizia che l'ha messa sulla cresta dell'onda di Technorati.

Cantante? ahah, ma fatemi il piacere! Ragazza da Playboy? ahahahah, vorrei conoscere il vostro pusher. Lavoratrice? ahahhha, non so che lavoro fate voi, ma io che sto scrivendo un Crivello di Eratostene distribuito non posso che dire, ahahhhaa.

Saprà giocare a scacchi la ragazza? Sa per caso cosa è un tag html? E' un angelo? o un diavolo? Esistono gli angeli? sicuramenti i diavoli si! Non importa cosa la ragazza sappia, sappia fare e sappia fare e basta. Già che la sto nominando la spiega lunga. Un pensiero partorito fra righe e righe di codice c, di Message Passing Interface, di puntatori e shell.

Etichette: , ,

sabato, gennaio 21, 2006

La vita è una Malloc

La vita di tutti noi è una Malloc().

Come volevasi dimostrare. L'allocazione della memoria è un problema da non sottovalutare, sia in un programma C, sia nella vita di ogni individuo. La memoria deve essere sollecitata per recuperare le informazioni, deve essere allenata per reperirle in maniera rapida, deve essere ben strutturata per recuperare le giuste informazioni, ma soprattutto deve essere allocata.

Come al solito i neofiti, o meglio dummies del linguaggio C commettono gli stessi errori. Va bene che il C non è un linguaggio semplice come il Visual Basic, e non è soprattutto inutile come il Visual Basic, però i newbie dovrebbero studiare un pochino di più.

Il problema che è sorto ad un caro amico di cui non faccio nomi per rispetto (:-), è appunto il problema dell'allocazione della memoria. I dati dinamici, come l'allocazione di variabili all'interno di cicli loop o costrutti if, for, procedure(man), hanno validità esclusivamente all'interno del costrutto in cui sono dichiarati. Come tali sono variabili memorizzate nel segmento stack, che cresce verso il basso. I dummies, non i nerd, dovrebbero imparare questa cosa e sapere che le variabili allocate con Malloc() sono memorizzate nel segmento Heap, non dinamico, che cresce verso l'alto. L'errore compiuto dal mio amico era appunto questo: pretendeva che le variabili del segmento stack avessero validità per tutto il ciclo di vita del programma, e pretendeva il loro utilizzo anche al di fuori dell'ambito in cui erano stati dichiarati.

La stessa cosa vale per il ciclo di vita di un individuo: non si può pretendere che un'informazione possa essere reperita se non viene memorizzata e quindi bisogna far uso di un potente allocatore di memoria, come il cervello. E' importante memorizzare ciò che si ritiene importante, anche una sola volta, in maniera fissa, in modo che, con specifiche ricostruzioni, è possibile reperire il dato in maniera più meno rapida dipendetemente dal suo utilizzo.

Ricordate dunque di usare la Malloc() e cercate di memorizzare le informazioni importanti, come questo post, in una parte celebrale non dinamica e volatile.

Etichette: , , ,