Website Screenshot API in detail
Website screenshots or website thumbnails or thumbshots are drawn by a browser or browser-like system that
utilizes libraries from Firefox, WebKit or IE just to mention a few. If there's no
browser libraries behind it, the screenshots do probably not look like as they would in a browser.
Here we'll talk about some aspects one should consider when looking for a good and stable service.
Happy customer is usually the number one concern, but it takes a lot of effort to be the one
that has good reputation. Yet, as technology keeps advancing, one must always keep developing the
services better. Feedback from the customers is the key for keeping them happy!
Queued and queue-less systems
Queued systems, that for some reason are very common, have the instant drawback of making you
to sit in a queue. The idea behind this may be (just guessing) that there's one browser that
is commanded by some kind of a system that can handle just one request at a time. Unfortunately that's
very outdated technology. It's like sharing one magazine for thousands of people!
- Ony one instance may be drawing a thumbnail at a time
- The browser may be a real and complete one, so it wastes a lot of CPU resources (keeps updating the screen etc)
- Often times browsers have bugs that they constantly leak memory, so sooner or later the service
detoriates and eventually gets stuck as it runs out of memory. That's the case if there's one real browser
that is kept up for making all the thumbnails.
Queue-less systems, on the other hand, reflect the capability of having multiple instances at the same time.
There may be anything, from a few to a hundreds of simultaneous services (depending on bandwidth / CPU power / memory)
serving the clients. The resources are usually limited, so there cannot be millions simultaneous requests served
by a single server. In that sense, the queue does sound like a reasonable way of working things out.
Yet, to have a good uptime, the binaries should unload after every request to free the
memory or otherwise it's vulnerable to the memory leaks that are out there in the browsers.
Windows or Linux
There's a lot of resources on the net regarding the uptime of Windows vs Linux servers. No doubt,
without having a single reference, Linux is the clear winner. My honest advice is to avoid all Windows
based services. Still, a poorly written Linux service could be a lot worse than its Windows challenger!
So in the end, look for the professionality - the OS is just one factor.
Our website screenshot engine
Having been a linux kernel engineer for almost a decade, it's a trivial task to set up services on linux based
servers. Yes, immediatenet.com website screenshot engine is based on Linux - the clear winner. Moreover, the
immediatenet.com engine is probably the simplest website screenshot engine out there that requires virtually
no resources. Although the immediatenet.com thumbnail engine is fairly new (early summer of 2011), you can count on it!
Unlike competitors, we also have the empty page detector.
Empty page detector
Some pages appear blank initially (baidu.com is just one example), and there are tons of such pages online. Many website screenshot
service provides actually generate empty pages way too often. In other words, they fail at a certain rate. At immediatenet.com,
we have an empty page detector -mechanism,
that actually figures out when a page is empty (or has very limited content). Such a page is not drawn - and delays are applied automatically along with manual virtual screen refreshes
until it has contents.
If the page really contains nothing, that is, is meant to be blank, the detector gives up after a certain timeout and a blank page is
Modifying the browser sources
Sometimes one needs to modify the source code of the browser itself. Yes, we have done modifications to Mozilla Firefox engine
to make our service work the way we wish. Now, from Sept.4 2012 on, we use the WebKit.
The green theme inspired by the saying "the grass is always greener on the other side"
Go back to the website screenshot API here!