"ReactOS® è un sistema operativo avanzato libero e di codice aperto che fornisce un implementazione completa di un sistema operativo compatibile con Microsoft Windows® XP. Gli obiettivi di ReactOS sono la realizzazione di una completa compatibilità binaria con le applicazioni e i driver di periferiche per i sistemi operativi NT e XP, usando un'architettura simile e fornendo un'interfaccia pubblica completa ed equivalente."
Fantastico.
"Run virtual machines on your Windows or Linux PC with VMware Player 2.0. This free desktop virtualization software application makes it easy to operate any virtual machine created by VMware Workstation, VMware Server or VMware ESX Server, as well as Microsoft virtual machines and Symantec LiveState Recovery disks. You can also use Player to evaluate one of the many virtual appliances available from the VMware Virtual Appliance Marketplace."
Ok, ora mettiamo le due cose insieme e....
mercoledì 27 febbraio 2008
venerdì 25 gennaio 2008
Null coalescing operator
Geniale, utile, elegante.
Per il momento, disponibile in C# 2
public static Singleton getInstance()
{
return theInstance ?? (theInstance = new Singleton());
}
Per il momento, disponibile in C# 2
martedì 22 gennaio 2008
Violare la legge di Amdahl?
La Legge di Amdahl pone un limite all'incremento di prestazioni di un sistema multiprocessore (nella sua versione generalizzata pone un limite all'incremento atteso di prestazioni di un sistema di elaborazione quando vengono migliorate alcune componenti dello stesso): in particolare (rimando al link su wikipedia le formulazze), se P è la porzione di calcolo interamente parallelizzabile, mentre S è la restante parte di calcolo non parallelizzabile, il fattore di incremento è uguale a (P + S) / ((P/N)+S) [dove N è il numero di processori] - ovviamente senza considerare l'overhead dovuto al parallelismo.
Questo è un limite deprimente, soprattutto adesso che i sistemi multiprocessore (o multicore) sono oramai ovunque (e sopratuttto a casa mia... ;)
Ed ecco quindi, prendendo spunto sopratutto da un fantastico post di Carlo, una piccola disserzione sulle strategie che si possono adottare per ottenere un incremento di prestazioni in qualche modo superiore a quello che potremmo attenderci con un approccio tradizionale; in particolare, (visto che è impossibile violare la legge di Amdahl) si può lavorare per ottenere il massimo incremento possibile spostando quanto più possibile il "lavoro" nellla variabile P:
A questo punto, è interessante il concetto di "velocità percepita", cioè la qualità di prestazione fornita dal computer percepita dall'utente. In questi termini diventa fondamentale il tempo di risposta ai comandi, il feedback fornito dal sistema, più che l'effettivo tempo di esecuzione dei job. In questo caso il fatto di avere più unità di calcolo potrebbe non tanto accelerare l'esecuzione di un processo quanto piuttosto dare la possibilità all'utente di continuare a sfruttare la macchina anche durante l'esecuzione di un compito pesante.
Questo è un limite deprimente, soprattutto adesso che i sistemi multiprocessore (o multicore) sono oramai ovunque (e sopratuttto a casa mia... ;)
Ed ecco quindi, prendendo spunto sopratutto da un fantastico post di Carlo, una piccola disserzione sulle strategie che si possono adottare per ottenere un incremento di prestazioni in qualche modo superiore a quello che potremmo attenderci con un approccio tradizionale; in particolare, (visto che è impossibile violare la legge di Amdahl) si può lavorare per ottenere il massimo incremento possibile spostando quanto più possibile il "lavoro" nellla variabile P:
- Dove non è possibile parallelizzare un algoritmo, si può tentare di parallelizzare i dati
- Dove non si può parallelizzare un processo seriale, si può "pipeline-izzare"
- Dove non si può migliorare la performance, si possono introdurre nuove features sfruttando comunque il parallelismo e senza deteriorare le prestazioni
A questo punto, è interessante il concetto di "velocità percepita", cioè la qualità di prestazione fornita dal computer percepita dall'utente. In questi termini diventa fondamentale il tempo di risposta ai comandi, il feedback fornito dal sistema, più che l'effettivo tempo di esecuzione dei job. In questo caso il fatto di avere più unità di calcolo potrebbe non tanto accelerare l'esecuzione di un processo quanto piuttosto dare la possibilità all'utente di continuare a sfruttare la macchina anche durante l'esecuzione di un compito pesante.
sabato 19 gennaio 2008
My new box

E' finalmente arrivata la mia ultima creatura: un case booksize contiene un Pentium E2140, 2Gb di RAM, un disco da 500Gb, e un DVD Lightscribe; la sk video integrata è una Intel GMA950.
E' la mia prima macchina only linux (per ora ho messo Ubuntu 7.10) e... funziona benissimo!
Pochissimo rumore, poco calore, prestazioni sufficienti; funziona persino il dongle Wi-fi della Netgear!
Al più presto installerò anche il software Lightscribe. Tra l'altro, il tutto con una spesa veramente ragionevole...
venerdì 18 gennaio 2008
Sun to Acquire MySQL
Iscriviti a:
Post (Atom)