Category Archives: Thoughts

More than tutorials or lessons, the category includes free thoughts of various kinds like welfare, health, politics, story, arts, life on earth or one of the other categories.

Why a team of developers should never waste time programming a new operating system

It may be obvious to many of you, but I saw teams of amateur developers dreaming the perfect operating system, starting from the idea that the contemporary operating systems (like Unix or Windows) are still far from being perfect. In particular, I remember an italian news group that was frequented by more than one developer that wanted to create his brand new operating system starting from scratch, programming it just by himself, so they gave me the inspiration to write this article, maybe it could be useful to avoid that the same disaster will ever happen again to someone else. Even if you are the superman of computer programming, today you cannot pursue the impossible dream of creating your own operating system without hurting yourself for precise technical reasons. I don't want to discuss here about the difficulties related to the creation of a new file system, virtual memory, inter-process communication, multithreading and so on, because my example is easier and more solid than that. I want to assume that you already have programmed a working kernel for that kind of operating system, a "minimum" set of drivers to make it run on your pc and that you are ready to share it with the entire world. Well, even in these ideal conditions, the main problem is with the companies that currently are using Windows or Linux and that should invest money to drop their operating systems / applications to use your operating system, the same for the hardware vendors that should write the specific drivers, the software houses, curstomers, professionals, video gamers and so on. Today there are so many hardware devices that is almost impossible to achieve the same performance that already existing and most proven operating systems have achievied in so many years of existence. It's not a matter of programming skills, it's a matter of "temporal gap". Even if you are so good to achieve the perfection on a single machine, you cannot be able to obtain the same stability on the wide range of existing personal computers, tablets, smart phones, sbc and all the devices mounting all the existing peripherals, because you won't have the money, credibility, reputation, experience, employees, followers, curtomers to do it. The situation in the past was sligtly different, Windows was created to run mainly on x86 family of processors, but there were other operating systems (like Amiga OS) that were projected to run on 680x0 family of processors, so the idea of operating system was more embedded to the small set of hardware that the vendors had to sell. Today it's totally different. If you want to create a valid operating system, you have to cover all the existing hardware produced at least in the past 20 years, or even if your main target is a single device, you cannot surpass the existing operating systems because they are already optimized to work better on the same device in terms of performance and power consumption. In conclusion, if you are having the crazy idea of creating your own operating system, just forget it because you are wasting your time and the opportunity to produce something really useful. You will never produce even an ounce of what is required today to run a modern application on modern hardware, with the same degree of portability and support in terms of graphics / audio / peripherals, and even if you do it, there are already more stable operating systems that are doing the same thing exactly when you are having the bad idea of doing it.

Gli artisti della scultura digitale

La computer grafica del passato ci ha abituati ad una visione abbastanza artefatta delle ambientazioni virtuali e degli effetti speciali cinematrografici, ai tempi in cui produzioni del calibro di Toy Story e Jurassic Park riuscivano a regalare un'emozione. Un personaggio creato in 3D al computer risultava agli occhi dello spettatore come plasticoso, finto, imperfetto, difficilmente credibile. Per non parlare degli artisti amatoriali, che con limitatissimi cad e programmi di disegno, pur impegnandosi al massimo, non potevano ottenere quel realismo che tanto cercavano, non nella qualità dell'immagine o nella definizione degli oggetti. Tuttavia in questi anni la computer grafica ha fatto dei passi da gigante, e non tanto grazie all'incrementata potenza dei sistemi di elaborazione (come falsamente si pensa) ma per l'effettivo miglioramento delle tecniche, come high dynamic range, radiosity, ma soprattutto un concetto completamente innovativo di modellazione tridimensionale noto a molti con il termine di scultura digitale.

La scultura digitale da un taglio ai vecchi criteri di modellazione dei cad del passato per comprendere che la modellazione di un oggetto dettagliato, composto necessariamente da migliaia, se non milioni di vertici, è più conveniente farla non andando ogni volta a modificare i singoli poligoni ma agendo sulla superficie dell'oggetto come in un programma di paint, potendo cosi modellare nuove forme in modo dinamico, modificare la profondità, scavare, levigare, scolpire, estrudere e smussare come farebbe uno scultore. Inoltre, dato che la maggior parte degli esseri viventi sono simmetrici, con la scultura digitale è possibile rendere simmetriche le proprie modifiche, così da poter costruire facilmente un volto o un corpo umano partendo da una sfera e senza eccessive tribolazioni. Il software più famoso e usato per la scultura digitale è ZBrush.

Continue reading

Tecniche di stampa tridimensionale

Avete mai sognato di poter materializzare alcuni oggetti tridimensionali di vostra creazione? Forse è arrivato il momento di acquistare una stampante 3d! No, non sto scherzando, non tutti lo sanno ma esistono al mondo delle stampanti in grado di fabbricare materialmente degli oggetti con la stessa rapidità di una fotocopiatrice.

Questo significa che avendo tra le mani questa tecnologia potreste progettare un oggetto o scaricarlo direttamente da internet per poi materializzarlo nella realtà: si stanno affermando delle tecnologie valide per rendere reale un oggetto virtuale. C'è da dire però che gli oggetti stampati sono composti da un materiale omogeneo simile alla plastica formato dalla interconnessione di strati di polimeri solidificati... quindi se avevate già progettato di scaricare un cellulare da internet per poi stamparlo potete scordarvelo perchè (per la fortuna dei venditori) attualmente non esistono ancora tecnologie in grado di fare una cosa del genere. Tuttavia stampare oggetti ha molteplici impieghi ed è ampiamente utilizzato nelle aziende per la fabbricazione rapida di prototipi.

High Dynamic Range

Le tradizionali immagini digitali memorizzano l'informazione sul colore per come esso viene riprodotto sullo schermo, utilizzando massimo 256 valori (8-bit) di luminosità per ciascun canale. Anche se questa tecnica è la più diffusa per la visualizzazione di un'immagine, si rivela un disastro per quanto riguarda le precedenti fasi di acquisizione ed elaborazione digitale. Una giornata soleggiata può avere fino a 100.000 toni di luminosità ed una normale fotocamera digitale riduce questa gamma a 256 con una conseguente perdità di informazione e problemi di sovra o sotto esposizione dell'immagine.

Se si scatta una foto sovraesposta le parti bianche vengono totalmente perse in quanto non contengono alcuna informazione (viene proprio eliminata in fase di acquisizione). Fortunatamente le odierne esigenze in campo di fotografia digitale hanno portato alla luce un nuovo modello di memorizzazione chiamato High Dynamic Range (noto come hdr). Questa nuova tecnica consiste nell'assegnare all'energia di ogni raggio luminoso un valore in floating point con un'ampia gamma dinamica secondo le unità di misura della fotometria. Per fare un esempio, al sole vengono assegnati valori di luminosità almeno un milione di volte più grandi rispetto a quelli di un televisore acceso. In quest modo l'hdr risolve tutti i problemi legati al cattivo contrasto ed errata esposizione della maggior parte delle fotografie digitali, in quanto è possibile tramite programmi di fotoritocco decidere la giusta esposizione ed ottenere sempre il risultato qualitativamente migliore, perchè le zone visivamente troppo chiare o troppo scure non perdono mai parte del loro contenuto informativo.

Continue reading

Video sui giochi di nuova generazione

Quando ancora mancava qualche anno al rilascio ufficiale, la Sony fece circolare dei video in cui si mostravano anteprime di videogiochi con una veste grafica da urlo, tanto per dare un'idea di quella che sarebbe stata la potenza computazionale legata al nuovo processore Cell della playstation3. Si diceva che la console avrebbe permesso di gestire addirittura interi mondi... per rincarare la dose, altri video burla mostravano una fantomatica playstation9 del futuro composta solo da nanotecnologie che entrando nel naso del videogiocatore gli si impiantavano nel cervello e lo trasportavano in un'esperienza videoludica uguale alla realtà (non è una mia invenzione, c'è anche il video su youtube). Poi la PS3 fu rilasciata e tutte quelle voci di corridoio si spensero di fronte alla realtà dei fatti ed i videogiochi sul mercato mostrarono una veste grafica mooolto più contenuta di come si era voluto far credere in passato. Un esempio? I vecchi trailer di Motor Storm ne sono la prova più eclatante. Quindi quella rivoluzione, quell'ondata di videogiochi con grafica da cinema e gestione di pianeti in tempo reale, non c'è mai stata, tuttavia adesso, nel 2008, si sta affacciando per pc qualcosa di molto simile.

I dual/quad core, le schede grafiche come la NVidia 8800 e le schede per la gestione della fisica come la PhysX di Ageia, stanno aprendo la strada a tutta una serie di videogiochi che implementano quel salto di qualità al quale ci avevano abituato le promesse non mantenute del passato.

Continue reading

Nuovo sito

Salve a tutti. Benvenuti nella mia nuova pagina personale. Mi sto trasferendo definitivamente dal mio vecchio sito TSRevolution (www.tsrevolution.com), dato che faceva parte di un progetto del passato che non ho più intenzione di continuare. Ho pensato di impostare questo nuovo sito come un blog, tuttavia non sarà come quelle pagine che si usano adesso dove le persone scrivono un diario delle loro faccende personali, ma cercherò di mantenermi sempre sul tema della programmazione di computer, rilasciando sorgenti, progetti e articoli su alcuni argomenti di computer grafica. Sto cercando qualche sito (attinente all'argomento) da linkare, quindi se siete programmatori, avete una pagina e siete interessati potete contattarmi all'indirizzo email gingegneri82@hotmail.it, oppure lasciare un commento a questo post. Uno speciale ringraziamento è rivolto agli autori del WordPress e all'artista che ha progettato l'aspetto grafico di questa pagina.

Buona navigazione!