Requirements for screenshot factories

Screenshot factories are the machines that run a fully automatic unattended script to get jobs from the server and make screenshots of browsers.

Hardware: Our print server is a Pentium III with 800 MHz, and that is more than sufficient for a screenshot factory. The browsers can be run on a VNC server, so you don't need graphics hardware on the screenshot factory machine.

Software: You can write your own screenshot factory script in your favorite programming language. The reference implementation is written in Python and runs with version 2.3.4 of the Python interpreter.

Because of superior stability and security, we really recommend Linux for the operating system. You wouldn't want your screenshot factory infected with hordes of web trojans, would you?

Native Linux browsers can be run directly from the Python script. Legacy browsers on insecure operating systems can be run in an emulator. We currently use QEMU to run Windows 95, and for every screenshot we boot it from scratch. The browser is then simply run from the Autostart menu, and the URL is passed with a keyboard simulator.

Interface: The screenshot factories communicate with the central server through HTTPS. Web proxies can be used just like with any other web site.

Bandwidth: One screenshot factory can easily deliver one screenshot per minute. Screenshots are in PNG format for lossless compression. For screens with low resolution (800x600 pixels) and few colors (e.g. 256), the average screenshot size is somewhere around 50 kilobytes.

On slightly more modern platforms (1024x768 pixels and 24 bits per pixel), a single screenshot can be as large as half a megabyte. This can amount to 30 megabytes per hour or 720 megabytes in 24 hours. Therefore, the monthly upload bandwidth usage of a single screenshot factory can be in the order of 20 gigabytes.

Attachments