Showing posts with label software robots. Show all posts
Showing posts with label software robots. Show all posts

Wednesday, August 24, 2011

GO GOL: Game of Life using Go Lang

Iggy Kracji's semester project for my Parallel Programming class (CSC471) was to implement Conway's Game of Life using the Go programming language and the Google App Engine.
The purpose of the class was to design, implement and analyze programs that run on parallel architectures, so his output is not pretty, but functional.


You can check out Iggy's code and analysis, and test it yourself at the App Site.

Monday, March 1, 2010

Compressed Sensing - Getting something for nothing

Wired has an interesting article on the data-manipulation techniques that could lead to real Blade-Runner / CSI style image enhancement.

1 Undersample
A camera or other device captures only a small, randomly chosen fraction of the pixels that normally comprise a particular image. This saves time and space.

2 Fill in the dots
An algorithm called l1 minimization starts by arbitrarily picking one of the effectively infinite number of ways to fill in all the missing pixels.

3 Add shapes
The algorithm then begins to modify the picture in stages by laying colored shapes over the randomly selected image. The goal is to seek what’s called sparsity, a measure of image simplicity.

4 Add smaller shapes
The algorithm inserts the smallest number of shapes, of the simplest kind, that match the original pixels. If it sees four adjacent green pixels, it may add a green rectangle there.

5 Achieve clarity
Iteration after iteration, the algorithm adds smaller and smaller shapes, always seeking sparsity. Eventually it creates an image that will almost certainly be a near-perfect facsimile of a hi-res one.

I haven't seen the original paper, so I'm a little skeptical. I'd like to see what kind of error is incurred by this successive approximation.   How different is the reconstructed image from the original?  There are always limits to these things.

Wednesday, February 24, 2010

Inside Google

Wired has an excellent article on how the Google search engine works and it's continued development. 

What strikes me about this article is how many times the core Google search engine has been revised - 5 major changes to the fundamental search architecture over the last 13 years.  Also, the details about how Google handles "bi-gram breakage" are awesome.  This kind of processing requires an very high level of 'understanding' of the human world, and Google is doing it extremely efficiently. This is the kind of system that is going to wake up one morning and take over it's own development.