background preloader

Compression

Facebook Twitter

Software Updates: Courgette ‎(Chromium Developer Documentation)‎ The source code does not have this problem because all the entities in the source are symbolic. Functions don't get committed to a specific address until very late in the compilation process, during assembly or linking. If we could step backwards a little and make the internal pointers symbolic again, could we get smaller updates? Courgette uses a primitive disassembler to find the internal pointers. The disassembler splits the program into three parts: a list of the internal pointer's target addresses, all the other bytes, and an 'instruction' sequence that determines how the plain bytes and the pointers need to be interleaved and adjusted to get back the original input.

The non-pointer part is about 80% of the size of the original program, and because it does not have any pointers mixed in, it tends to be well behaved, having a diff size that is in line with the changes in the source code. We bring the pointers under control by introducing 'labels' for the addresses. Server: client: Polygons Evolving Into Your Custom Picture. Polygons Evolving Into Your Custom Picture There’s now a configurable web app for the semi-transparent vectors evolution approach mentioned earlier.

Using Firefox (among other browsers, but not Internet Explorer – the page is Canvas-based), you provide a JPEG URL and then hit the Start button to watch the image mutate and evolve. [Via Reddit. Image from the site.] >> More posts Advertisement This site unofficially covers Google™ and more with some rights reserved. Genetic Programming: Evolution of Mona Lisa « Roger Alsing Weblo. [EDIT] Added FAQ here: Gallery here: This weekend I decided to play around a bit with genetic programming and put evolution to the test, the test of fine art :-) I created a small program that keeps a string of DNA for polygon rendering.

The procedure of the program is quite simple: 0) Setup a random DNA string (application start) 1) Copy the current DNA sequence and mutate it slightly 2) Use the new DNA to render polygons onto a canvas 3) Compare the canvas to the source image 4) If the new painting looks more like the source image than the previous painting did, then overwrite the current DNA with the new DNA 5) repeat from 1 Now to the interesting part :-) Could you paint a replica of the Mona Lisa using only 50 semi transparent polygons? That is the challenge I decided to put my application up to. So what do you think? Like this: Like Loading... Top 10: Top 10 Free Video Rippers, Encoders, and Converters. Wobzip - (Un)Compress on the Fly. Open Source.