piątek, 20 lipca 2012

MyISAM, InnoDB - general differences


InnoDB is the default storage engine used in MySQL server since 5.5 release.

MyISAM:
+ faster execution of SELECT statements (according to system configuration)
+ easier creation of backup
- locks on table level (write only - except SELECTs)
- buffering only indexes (not stored in memory)

InnoDB:
+ supports transactions
+ supports foreign keys
+ supports ACID (atomicity, consistency, isolation, durability)
+ still being developed
+ locks on rows level
+ good recovery after crash
- slightly worst performance


poniedziałek, 16 lipca 2012

Kinect Head Tracking TV Prototype

Dynamically rendering 3D model using the position of users body using Microsoft Kinect.

Microsoft Kinect is a best selling motion sensor input device produced for Xbox 360 console. 

It was designed to replace traditional pads with players body. To accomplish this, it uses one VGA camera, infrared emitter and receiver, and a set of 4 microphones. The IR receiver collects data in 300 x 200px resolution, and than interpole it to VGA resolution (640 x 480px). We are still able to detect about 48 parts of human body with precision of a couple millimeters.
Using special power supply USB adapter it is possible to connect sensor to PC computer (there is also a version dedicated for this, with different lens). 

Microsoft released a special SDK for developers for non-commercial use. The latest version can be downloaded from here .

Using solutions like:
  • C# and WPF
  • Kinect API 0.9 Beta2
  • Autodesk 3DS Max 2010
  • Viewer3 3D (conversion to XAML)
We are able to create something that works like this:


Model is rendered using special projection matrix:

M = 1 0 x x * znear
0 1 y y * znear
0 0 1 0
0 0 0 1

Where z stands for near pane clipping distance (in this case - screen), and x,y for head position.

This simple example of non standard usage of such a sensor pictures a great variety of other possible deployment of this device which is limited only by imagination.

Source soon available.