Zėŋōfōbìå

27 luglio 2009

Inizializzare gli array in C# 3

Filed under: C#, informatica — Tag: — Zeno @ 15:11

Supponiamo di avere la necessità di allocare un certo numero di oggetti in un array, ovviamente l’approccio standard è di usare un ciclo for:

Whatever[] whateverVector=new Whatever[1000];
for(int i=0;i < 1000;i++)
  whateverVector&#91;i&#93;=new Whatever(i);
&#91;/sourcecode&#93;

Esiste anche un modo diverso, più lento ma per certi versi più elegante, che usa la list comprehension di C#3: LINQ
&#91;sourcecode language='csharp'&#93;
Whatever&#91;&#93; whateverVector= Enumerable.Repeat(0, 1000).Select(i => new Whatever(i)).ToArray();

24 luglio 2009

L’apocalisse è vicina!

Filed under: informatica — Tag: — Zeno @ 9:25

Ho dovuto controllare che non fosse il primo aprile, ho dovuto rileggere due volte.
Microsoft contribuisce al codice di Linux importando i driver per Hyper-V: i Linux Integration Components.

Tratto da dal blog di Hank Janssen dell’Open Source Community di Microsoft:

Microsoft developed the Linux device drivers to enhance the performance of Linux when virtualized on Windows Server 2008 Hyper-V. My team and I were responsible for testing and validating the driver components that were contributed for this first release.

This code is designed so that Linux can run in an “enlightened mode” on top of Hyper-V (enlightened mode is roughly the Hyper-V equivalent of “paravirtualized mode” for the Xen hypervisor). Without this driver code, Linux can run on top of Windows, but without the same high performance levels. It is this device driver code that we are releasing today, directly to the Linux Kernel.

We’re not talking a few hundred lines of code here; we’re talking about roughly 20,000 lines of code.

Sempre di Janssen c’è una spiegazione tecnica di cosa siano i Linux Integration Component.

17 luglio 2009

AOP e Cache

Filed under: C#, informatica — Tag:, — Zeno @ 14:11

Certe volte accedere ad un dato è costoso, vuoi perché non è disponibile localmente, vuoi perché deve essere calcolato. In alcuni casi disporre di una cache locale può migliorare in modo significativo la velocità del programma. Con i linguaggi che dispongono delle dictionary viene comodo usarle per costruire una semplice cache locale: la chiave è il parametro della funzione, il valore è il suo risultato.
(more…)

10 luglio 2009

Dove il Perl incontra l’assoluto

Filed under: informatica — Tag:, , — Zeno @ 16:43

Stefano Rodighiero, autore di un bel libro introduttivo sul Perl, mi ha consigliato di guardare un webcast. L’autore è Damian Conways, un esponente di spicco nella comunità Perl. Il Titolo è abbastanza evocativo:
Temporally Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…Made Easy.

E’ un raro esempio di lucido esoterismo informatico, decisamente affascinante.

Si può leggere, nelle note di presentazione, dopo una prima parte molto vicina alle questioni specificatamente Perl, l’ipotesi di esistenza di quelle che vengono chiamate “variabili positroniche”.

Una “Variabile positronica” è una variabile il cui verso della direzione del tempo è opposto di quello delle variabili “elettroniche” che normalmente siamo abituati ad usare.
In pratica l’ipotesi è che questa variabile vada indietro nel tempo, quindi, va da sé, può essere inizializzata “dopo” che è stata usata…

In pseudo codice:

pos_variabile $posval
print $posval;
$posval=read_value_from_stdin();

Impossibile? Direi di no, visto che Damian Conways ne ha scritto un’implementazione per Perl.

Davvero fenomenale! :-)

Crea un sito o un blog gratuitamente presso WordPress.com.