Another amazing video on multi-touch screens but now assisted by voice recognition technology (Thanks to Jordi Camarasa for this link). It is obvious that there's still a lot to do in graphical user interfaces, and that the future in this field is incredible.
The video is a demo of a what the authors call a game table prototype. The game in question is WarCraft III.
Using both inputs (hands and voice) it is possible to have an incredible control over the game. It's a very interesting demo.
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
About my experiences in teaching and researching in computer science and computer graphics.
Wednesday, May 03, 2006
Wednesday, April 26, 2006
Free online programming books
A very common problem some programming students have is the access to good and free tutorials and books.
Check out this link:
195 Free Online Programming Books (from www.techtoolblog.com)
It's a fantastic list of programming books. All free. Some of them, believe me, very good !
Check out this link:
195 Free Online Programming Books (from www.techtoolblog.com)
It's a fantastic list of programming books. All free. Some of them, believe me, very good !
Tuesday, April 11, 2006
8 bit computers - a retrospective look
There was a time in which just one person was able to develop a game... using machine code, simple graphics, very good ideas, a lot of imagination, and many hours ...
There was a time without UML, Object-Oriented Programming, .Net, Java ... even without C ... It was the time of BASIC.
There was a time in which a tape recorder was something more than your only way to copy music... It was the only way we had to load and save programs ... It was the time of the beeerererrppereerpppeeeppeeep ... We were so familiar with such a sound that we were even able to guess if the sound corresponded to graphics or code ...
I'm referring to the beginning of the 80s. And I am lucky, I lived that moment.
I was 13 the very first time I saw a computer. Impressive. I decided to learn everything about computers. After one year learning what I could from magazines and books, I convinced my parents to buy my first computer. My idea was to buy a Sinclair Spectrum, but when we went to the shop, a Sony MSX was their suggestion. I didn't mind.
MSX was the first serious attempt to reach a standard for personal computers. Sony, Philips, Panasonic, Toshiba and other companies produced computers under this standard. It was a fantastic computer, with an important continuity (MSX-2, MSX-2 turbo R ...) but finally, it disappeared.
The original ROM included the BASIC programming language and, with the disk version of the machine, an operative system called MSX-DOS also appeared. Microsoft was behind that (the BASIC interpreter and the OS), and I have to say, they did a very good work. In fact, it was the best computer in that period (IMHO).
At that time, I was able to earn money (I was 14-18) developing games. In fact, there was no option. Without the Internet, without software to install... the only thing we were able to do with our computers was to learn programming. I have found a video that shows perfectly what I'm talking about:
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
What the video shows was true. The only I was able to do at the beginning was to buy those magazines with printed code inside, so you had to type it if you wanted something to do with your computer. Consequently, you were almost forced to learn programming. And after learning BASIC, machine code was the only chance to get more performance from those old computers.
Very different situation now. You can buy a computer and be able to do millions of things without even know what a program is. Is this current situation better than ours ?
There was a time without UML, Object-Oriented Programming, .Net, Java ... even without C ... It was the time of BASIC.
There was a time in which a tape recorder was something more than your only way to copy music... It was the only way we had to load and save programs ... It was the time of the beeerererrppereerpppeeeppeeep ... We were so familiar with such a sound that we were even able to guess if the sound corresponded to graphics or code ...
I'm referring to the beginning of the 80s. And I am lucky, I lived that moment.
I was 13 the very first time I saw a computer. Impressive. I decided to learn everything about computers. After one year learning what I could from magazines and books, I convinced my parents to buy my first computer. My idea was to buy a Sinclair Spectrum, but when we went to the shop, a Sony MSX was their suggestion. I didn't mind.
MSX was the first serious attempt to reach a standard for personal computers. Sony, Philips, Panasonic, Toshiba and other companies produced computers under this standard. It was a fantastic computer, with an important continuity (MSX-2, MSX-2 turbo R ...) but finally, it disappeared.
The original ROM included the BASIC programming language and, with the disk version of the machine, an operative system called MSX-DOS also appeared. Microsoft was behind that (the BASIC interpreter and the OS), and I have to say, they did a very good work. In fact, it was the best computer in that period (IMHO).
At that time, I was able to earn money (I was 14-18) developing games. In fact, there was no option. Without the Internet, without software to install... the only thing we were able to do with our computers was to learn programming. I have found a video that shows perfectly what I'm talking about:
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
What the video shows was true. The only I was able to do at the beginning was to buy those magazines with printed code inside, so you had to type it if you wanted something to do with your computer. Consequently, you were almost forced to learn programming. And after learning BASIC, machine code was the only chance to get more performance from those old computers.
Very different situation now. You can buy a computer and be able to do millions of things without even know what a program is. Is this current situation better than ours ?
Wednesday, April 05, 2006
Apple forever !
Apple is celebrating 30 years: an innovative and impressive period !
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Friday, March 24, 2006
Maurits Cornelius Escher
There's a possibility you don't recognize the name of the artist of the post title, but it's very unlikely you haven't seen any of his works.
M.C. Escher is, without any doubt, one of the most famous graphic artist of the last century. And he is specially fascinating for those interested in maths, programming and computer graphics (I have to say that one of his prints is decorating the most important wall in my living room).
Visit his official web site in order to learn more about this artist: www.mcescher.com
Why is he so fascinating for a programmer and computer graphics lover ? Just see two of his prints...


Concepts like recursion and fractal geometry are an important constant in some of his works. Iterative patterns, recursive definitions, morphing (smooth transition between images), chaos, fractal geometry and lots of computer science topics are part of Escher's incredible mind.
Another important part of his work was centered in the creation of so-called impossible drawings. But some of them seem not to be so impossible. A good work presented by Gershon Elber shows us how to create 3D models that, from specific points of view, are able to explain some of these impossible drawings. It is worth to see.
As an example, below you can see some computer generated models that are able to explain some of his famous drawings.
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Finally, a demonstration on his influence in our time in a very beautiful advertisement:
M.C. Escher is, without any doubt, one of the most famous graphic artist of the last century. And he is specially fascinating for those interested in maths, programming and computer graphics (I have to say that one of his prints is decorating the most important wall in my living room).
Visit his official web site in order to learn more about this artist: www.mcescher.com
Why is he so fascinating for a programmer and computer graphics lover ? Just see two of his prints...


Concepts like recursion and fractal geometry are an important constant in some of his works. Iterative patterns, recursive definitions, morphing (smooth transition between images), chaos, fractal geometry and lots of computer science topics are part of Escher's incredible mind.
Another important part of his work was centered in the creation of so-called impossible drawings. But some of them seem not to be so impossible. A good work presented by Gershon Elber shows us how to create 3D models that, from specific points of view, are able to explain some of these impossible drawings. It is worth to see.
As an example, below you can see some computer generated models that are able to explain some of his famous drawings.
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Finally, a demonstration on his influence in our time in a very beautiful advertisement:
Monday, March 13, 2006
Real-time physics
Not too far ago, there was no 3D accelerated cards. It was the CPU the only able to make 3D graphics a reality. Now, nobody is even able to buy a PC computer without such a possibility.
But gaming industry needs go beyond, and once again, not only this industry but every field in computer science is going to take the most of this new need.
I'm talking about real-time physics.
But firstly, some background. What's real-time ?
In computer graphics, this is very related with interaction. Real-time means that we are able to provide an interface to the user, in which he/she can interact and get a graphical response with the same rate as the real world we are trying to simulate, i.e., no more delay we get from the real world. Simple to say, quite difficult sometimes to achieve.
Real-time used to be associated with geometry simplification and LoD techniques (Level of Detail). It still is, but recently we have to take into account one new element: physics simulation.
Obviously, for real-time physics it is required to simplify its calculations and/or lower their accuracy in order to respond at an appropriate rate for interactivity.
The need of real-time physics is so important, that we are going to see the launch of specific processing units (the same that happened with 3D acceleration). See this ageia web site and look for PhysX.
Summary. Always an example is the best we can do to understand concepts. In the following video, we can see a water simulation. In this case, we don't speak about real-time, so it is possible to calculate this simulation without losing accuracy.
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
And now, something in real-time. In this case, a preview of what the new PlayStation 3 is going to offer us:
Very impressive !
But gaming industry needs go beyond, and once again, not only this industry but every field in computer science is going to take the most of this new need.
I'm talking about real-time physics.
But firstly, some background. What's real-time ?
An operation within a larger dynamic system is called a real-time operation if the combined reaction and operation time of a task is shorter than the maximum delay that is allowed, in view of circumstances outside the operation. Wikipedia definition.
In computer graphics, this is very related with interaction. Real-time means that we are able to provide an interface to the user, in which he/she can interact and get a graphical response with the same rate as the real world we are trying to simulate, i.e., no more delay we get from the real world. Simple to say, quite difficult sometimes to achieve.
Real-time used to be associated with geometry simplification and LoD techniques (Level of Detail). It still is, but recently we have to take into account one new element: physics simulation.
A physics engine is a computer program that simulates Newtonian physics models, using variables such as mass, velocity, friction and wind resistance. It can simulate and predict effects under different conditions that would approximate what happens in real life or in a fantasy world. Wikipedia definition.
Obviously, for real-time physics it is required to simplify its calculations and/or lower their accuracy in order to respond at an appropriate rate for interactivity.
The need of real-time physics is so important, that we are going to see the launch of specific processing units (the same that happened with 3D acceleration). See this ageia web site and look for PhysX.
Summary. Always an example is the best we can do to understand concepts. In the following video, we can see a water simulation. In this case, we don't speak about real-time, so it is possible to calculate this simulation without losing accuracy.
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
And now, something in real-time. In this case, a preview of what the new PlayStation 3 is going to offer us:
Very impressive !
Thursday, March 09, 2006
Ultra-Mobile Computer = Origami Project
Today, Intel and Microsoft have launched the Ultra-Mobile Computer, called Origami Project by Microsoft.
We can enjoy at Microsoft web site with two models, from Samsung and Asus.
The web site of the Origami Project is http://origamiproject.com
The web page at Microsoft site is http://www.microsoft.com/umpc
The web site of Intel's Ultra-Mobile PC is http://umpc.com
At these web sites you can get all the information about them. Here you can see another video of the 'new' concept, from Intel:
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Is really something new ? It isn't. It's a litter Tablet PC with XP Tablet Edition 2005. But it seems can have more success than current Tablet PC machines.
We can enjoy at Microsoft web site with two models, from Samsung and Asus.
The web site of the Origami Project is http://origamiproject.com
The web page at Microsoft site is http://www.microsoft.com/umpc
The web site of Intel's Ultra-Mobile PC is http://umpc.com
At these web sites you can get all the information about them. Here you can see another video of the 'new' concept, from Intel:
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Is really something new ? It isn't. It's a litter Tablet PC with XP Tablet Edition 2005. But it seems can have more success than current Tablet PC machines.
Monday, March 06, 2006
Kid's Programming Language
Computer science is an essential subject in our children education. We are surrounded by computers and software, and because of that we have to be sure our children are prepared to work and interact with them.
But, is it possible to fully understand the basis of computer science without learning how to program ? It isn't, in my opinion.
Many, many times I have spent a lot of time trying to explain why a computer can or cannot do this or that ... and the problem, frequently, is the lack of knowledge about programming of my audience.
And it is generally a difficult process, since the current programming languages need strong skills from the very beginning.
Because of this complexity, a lot of alternative methods for learning how to program have appeared. I remember perfectly two of them.
The first attempt to make programming closer to people was logo (see more information here); a fantastic approach, based on Lisp, that uses a graphical turtle in order to see the results of our programs. In my opinion, it was (and it is) the best first approach to programming for kids.
I also remember Karel the Robot by Richard E. Pattis. In this case, we can control a robot which is able to get information about the environment and carry out actions like collecting things and moving around. Originally based on Pascal, now there are C based versions.
We have recently a new alternative: the Kid's Programming Language.

I have downloaded it, and it is basically a BASIC inspired language. It has some strong points: very easy interface, .Net based, automatic conversion to C# and Visual Basic, and a very comfortable graphic library. This graphic library is perhaps the most interesting feature, since with it we can see immediately very impressive results on screen.
It is well-known how boring 'console based' applications are, so to have the chance to produce very attractive graphics with just some lines of code it's something that guarantees success.

A future characteristic of this programming language is 3D graphics. With this new feature, this language could be also a very interesting first step in computer graphics introduction.

A very good introduction to mini-languages as a first step in learning how to program can be consulted in here.
But, is it possible to fully understand the basis of computer science without learning how to program ? It isn't, in my opinion.
Many, many times I have spent a lot of time trying to explain why a computer can or cannot do this or that ... and the problem, frequently, is the lack of knowledge about programming of my audience.
To learn programming is to understand what computers really understand.
And it is generally a difficult process, since the current programming languages need strong skills from the very beginning.
Because of this complexity, a lot of alternative methods for learning how to program have appeared. I remember perfectly two of them.
The first attempt to make programming closer to people was logo (see more information here); a fantastic approach, based on Lisp, that uses a graphical turtle in order to see the results of our programs. In my opinion, it was (and it is) the best first approach to programming for kids.
I also remember Karel the Robot by Richard E. Pattis. In this case, we can control a robot which is able to get information about the environment and carry out actions like collecting things and moving around. Originally based on Pascal, now there are C based versions.
We have recently a new alternative: the Kid's Programming Language.

I have downloaded it, and it is basically a BASIC inspired language. It has some strong points: very easy interface, .Net based, automatic conversion to C# and Visual Basic, and a very comfortable graphic library. This graphic library is perhaps the most interesting feature, since with it we can see immediately very impressive results on screen.
It is well-known how boring 'console based' applications are, so to have the chance to produce very attractive graphics with just some lines of code it's something that guarantees success.

A future characteristic of this programming language is 3D graphics. With this new feature, this language could be also a very interesting first step in computer graphics introduction.

A very good introduction to mini-languages as a first step in learning how to program can be consulted in here.
Friday, March 03, 2006
Microsoft Windows Vista - The same story again...
Windows Vista is coming and, once again, Microsoft is going to sell us old ideas as something new. A lot of changes and improvements are going to be part of this new OS, but it is probably Aero (the new desktop environment based on Avalon, called now Windows Presentation Foundation), its new graphics layer and environment, one of the most important features.
Transparency, 3D elements, xaml (a new xml based language for interface designing)... are just some of these new characteristics. Are they new ? Obviously, no. Mac OS has had some of these new features for a long time, and Linux has now packages that improve its environment with similar or even better possibilities (Xgl for example, from Novell).
As an example, in the following video, you can see a demonstration of Xgl (thanks to Jordi Vicedo for this information). It's a bit long, but it's worthy.
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Transparency, 3D elements, xaml (a new xml based language for interface designing)... are just some of these new characteristics. Are they new ? Obviously, no. Mac OS has had some of these new features for a long time, and Linux has now packages that improve its environment with similar or even better possibilities (Xgl for example, from Novell).
As an example, in the following video, you can see a demonstration of Xgl (thanks to Jordi Vicedo for this information). It's a bit long, but it's worthy.
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Wednesday, March 01, 2006
New toys are coming this year ...
I cannot avoid to enjoy with new technological toys, and this year we are going to have the chance to see some new developments that are able to surprise us again...
At the web you can see some very interesting cutting-edge devices that seem to be available very soon.
Here, something called Origami. It's not actually a new concept, but they offer some new ideas...
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Nintendo is almost everything in games... not only because they produce the best games in the market, but because their capability in introducing new ideas. This year seems to be the year of Revolution. Forget your old and limited joystick or pad ...
At the web you can see some very interesting cutting-edge devices that seem to be available very soon.
Here, something called Origami. It's not actually a new concept, but they offer some new ideas...
(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)
Nintendo is almost everything in games... not only because they produce the best games in the market, but because their capability in introducing new ideas. This year seems to be the year of Revolution. Forget your old and limited joystick or pad ...
Subscribe to:
Posts (Atom)