i was just processing my web logs and stumbled across a very interesting detail regarding web browsers. It goes a little something like this…
Webalizer reveals that of the top 25 user agents to visit wanderinghorse.net in October, less than 3.3% of the agents were MSIE. Those were about equally divided between MSIE 6.0 and 7.0. However, of those top 25 user agents, a whopping 37.4% of them were Firefox, mostly version 22.214.171.124 with some 126.96.36.199 and 188.8.131.52 thrown in for variety. (Even though 184.108.40.206 is only a week or so old, approx 4% out of that 37.4% are using it, which speaks well of Firefox users’ up-to-datedness.)
That’s 11 TIMES as many Firefox visitors as MSIE visitors.
Interestingly, the vast majority (approximately 30% out of that 37.4%) are Windows users, revealing that MS may own the desktop, but they certainly don’t own the browser market any more.
My guess is that only a few major sites (e.g. microsoft.com) are seeing an opposite trend.
What about the rest of the 100%? No single agent outside the top 25 accounted for more than 0.65% of October’s traffic, so they’re not being counted. They’re scattered amongst all sorts of flavors of all user agents, including bots and OS/X (which we can also safely categorize as bots, since Mac users tend to do whatever Apple says they should).
If we average out the numbers, ignoring those agents not in the top 25, Firefox accounts for nearly 90%(!!!) of the traffic and MSIE accounts for a measly 8% or so.
While i’m not naive enough to say that the browser wars are over, it does indeed seem that MSIE’s dominance is truly a thing of the past.
Last week a user of libs11n wrote asking about support for binary data. The library does not directly support binary data, for several reasons described in the documentation (one of which is to avoid endianness problems altogether).
That said, libs11n can indirectly support binary data in two ways:
a) Serializables can write their binary data to a separate file and store the path to that file in their normal s11n data. This solution isn’t very portable, though, and is therefore not recommended. Also, This approach completely fails when writing serialized data over remote streams (e.g. network connections).
b) Convert the binary data to something ascii-friendly. Several well-known algorithms support this, such as binhex and base64 encoding, both of which are sometimes used for encoding binary data into emails. This approach is inefficient but workable.
The problem is… i’ve seen no useful C++ code for doing this type of conversion. i’ve come across several C implementations of various levels of understandibility and re-use, but no code which i could simply pick up and run with.
If there is some kind spirit out there who’s interested in this type of problem, i would be forever grateful to someone who could supply a C++ implementation of binhex, base64, uuencode/decode, or some similar (or even custom) binary-to-ascii-and-back conversion. The main requirements are:
- It may not have dependencies on 3rd-party code and should be based on the STL (e.g. std::string or std::vector<char> as the main container type, or (if you’re really masochistic) usable as a stream buffer).
- It must be usable without FILE handles or i/ofstream objects.
- It must be in some reusable form (that is, easy to plug in to client code). e.g. a pair of encode/decode functions.
- It must be released into the Public Domain (that is, with no license, or the copyright transfered to me so that i can release it without a license).
While i cannot afford to pay a king’s ransom for a usable solution, i could offer a small payment via PayPal (say, 20 Euros or so).
If by some weird chance you actually take me up on this offer, please get in touch with me directly (stephan at s11n net), as opposed to via the blog comment feature.