Tech

WhatsApp says it’s not holding sales talks with Google despite earlier rumor

Screen Shot 2013-04-09 at 12.14.33 AM

This past weekend, a rumor had claimed that Google is holding talks with WhatsApp to acquire the messaging service for around $1 billion. Tonight, WhatsApp has told AllThingsD that it is not holding sales talks with Google. Meanwhile, Google is rumored to soon be launching its own “Babel” messaging service.


Fun and unusual HTTP response headers

http

HTTP response headers are usually pretty dry reading, but once in a blue moon you do stumble upon something that makes you smile. Here are some of our favorites.

We’ve bolded the interesting parts, and included the other headers for context. (With one exception, cookie headers. We stripped them away since they tend to take up a lot of room.)

Nerd rage

From Myspace.com:

Cache-Control: no-cache, must-revalidate, proxy-revalidate
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Server: d8de1522726f0073ffa08b0fd1ddb74a61a15ee8d5a534aa
X-Frame-Options: SAMEORIGIN
X-AspNet-Version: 4.0.30319
X-PoweredBy: Nerd Rage
Date: Wed, 15 Aug 2012 13:52:47 GMT
Content-Length: 16799

The fun part here is that it varies the responses. We don’t know how many variations there are, but we also got:

  • X-PoweredBy: Unicorns
  • X-PoweredBy: Keebler Elves
  • X-PoweredBy: Charlie Sheen’s Tiger Blood
  • X-PoweredBy: Rats in our Basement

We leave it as an exercise to the reader to find them all. Pokemon for web developers…? ;)

If Batman made web servers

From WordPress.com:

Server: nginx
Date: Wed, 15 Aug 2012 13:49:54 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding, Cookie
Last-Modified: Wed, 15 Aug 2012 13:47:35 GMT
Cache-Control: max-age=161, must-revalidate
X-hacker: If you’re reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.
X-Pingback: http://wordpress.com/xmlrpc.php
Link: <http://wp.me/1>; rel=shortlink
X-nananana: Batcache
Content-Encoding: gzip

The Batcache is actually real software developed in-house by Automattic to help power its blog hosting service.

The X-hacker header, pretty much a smart wanted ad. It turns out that this recruitment trick isn’t unusual. Automattic is casting a pretty wide net since all sites on the WordPress.com platform include it. You’ve probably come upon it in the past.

Speaking of that, GigaOm.com (which uses WordPress.com) has a pretty fun addition to the standard WordPress.com response headers, a kind of recruitment override…

Recruitment override

From Gigaom.com:

Server: nginx
Date: Wed, 15 Aug 2012 14:04:39 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding, Cookie
Last-Modified: Wed, 15 Aug 2012 14:03:40 GMT
Cache-Control: max-age=241, must-revalidate
X-hacker: If you’re reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.
P3P: CP=”GigaOM has a Privacy Policy available at http://gigaom.com/privacy-policy/”
X-PickUsInstead: Cool company, cooler headers, join the team! Send an email to jobs@gigaom.com and mention this header.
X-Pingback: http://gigaom.com/xmlrpc.php
X-nananana: Batcache
Content-Encoding: gzip

More on using response headers as a recruitment tool a bit further down.

Bananas and rum

From Surveymonkey.com:

Server: nginx
Date: Wed, 15 Aug 2012 14:07:37 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Pragma: no-cache
Cache-Control: private, max-age=0, proxy-revalidate, no-store, no-cache, must-revalidate
Expires: Sun, 05 Feb 2012 21:08:19 GMT
RTSS: 1
X-Powered-By: Bananas and Rum
Content-Language: sv
Content-Encoding: gzip

Another response has X-Powered-By: Hodor.

Drop that table

From Reddit.com:

Content-Type: text/html; charset=UTF-8
Vary: Accept-Encoding
Set-Cookie:
Content-Encoding: gzip
Server: ‘; DROP TABLE servertypes; –
Content-Length: 18033
Date: Wed, 15 Aug 2012 13:30:32 GMT
Connection: keep-alive

No comment on that one… :)

Version: 1337

From SME.sk:

Content-Type: text/html
Expires: Wed, 15 Aug 2012 14:15:52 GMT
Cache-Control: public
Content-Encoding: gzip
Content-Length: 20583
Accept-Ranges: bytes
Date: Wed, 15 Aug 2012 14:15:22 GMT
Age: 14
Connection: keep-alive
Server: ninja web server 1.3.3.7

Best version number ever?

Don’t hurt our server!

From Howtogeek.com:

Content-Encoding: gzip
Vary: Accept-Encoding
Date: Wed, 15 Aug 2012 14:16:34 GMT
Server: LiteSpeed
Accept-Ranges: bytes
Etag: “f626-502baee7-18fca4″
Last-Modified: Wed, 15 Aug 2012 14:15:03 GMT
Content-Type: text/html
Content-Length: 12660
X-Geek: What’s black and white and red all over? Please don’t kill our penguin-powered server.
X-Awesome: If you found this header please email us about a writing job.

More recruitment (which we’ll have more of later) but we especially like the little plea to be nice to their server.

Alternative power sources

From Bayfiles.com:

X-Powered-By: hamster.in.boogie.wheel
Content-Type: text/html
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 2144
Date: Wed, 15 Aug 2012 14:18:18 GMT
Server: lighttpd/2.0.0

Green tech?

Wolverine

From Marvel.com:

Server: Apache
P3P: CP=”ALL DSP COR NID CURa TAIa OTPi OUR BUS UNI INT PRE”
Expires: -1
Vary: Accept-Encoding,Cookie
Content-Encoding: gzip
X-ServerNickName: Wolverine
Content-Type: text/html; charset=utf-8
Content-Length: 15078
Accept-Ranges: bytes
Date: Wed, 15 Aug 2012 14:20:43 GMT
Age: 25
Connection: keep-alive

Nice detail by Marvel. Another one the site responds with is X-ServerNickName: Leech, but who doesn’t love Wolverine?

Obscure references

From Collegehumor.com:

Server: Apache
X-Powered-By: PHP/5.3.6
Vary: Accept-Encoding
Content-Encoding: gzip
X-Toynbee-Idea: In Kubrick’s 2001 Resurrect Dead On Planet Jupiter
X-CH-Backend: fe-ch-15.cv.live (70)
Content-Type: text/html
X-Varnish-IP: 192.168.2.60
X-Cacheable: YES
Cache-Control: max-age=0
Content-Length: 17482
Date: Wed, 15 Aug 2012 14:23:28 GMT
X-Varnish: 174924076 174922405
Age: 58
Via: 1.1 varnish
Connection: keep-alive
X-Cache: HIT (6)

To appreciate this one, you need to read up a bit on Toynbee tiles

Tablet hosting

From Mysitecost.ru:

Date: Wed, 15 Aug 2012 14:38:14 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Server: iPad.3
Content-Encoding: gzip

Probably untrue, but who knows? God knows there are some unusual hosting projects out there.

Cooking with gasoline

From Pcworld.com:

Date: Wed, 15 Aug 2012 15:00:52 GMT
Server: Apache
X-GasHost: gas1
X-Cooking-With: Gasoline-Local
X-Gasoline-Age: 412
Last-Modified: Wed, 15 Aug 2012 14:58:20 GMT
Content-Type: text/html;charset=UTF-8
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 27690

Charmingly named tech.

Here’s one we caught back in May, but it’s gone now:

What? And no thanks to whom?

From Inquirer.net:

Server: nginx/1.0.4
Vary: Accept-Encoding
Accept-Ranges: bytes
Guyito: does not live here. no thanks to erwin lomibao.
Via: HTTP/1.1 GWA
Date: Fri, 18 May 2012 22:41:52 GMT
Expires: Fri, 18 May 2012 22:41:52 GMT
Cache-Control: max-age=0, no-cache
X-Page-Speed: 35_4_rr
Content-Type: text/html; charset=utf-8
X-XSS-Protection: 1; mode=block
Connection: close

We have no idea what that was about. Seems to have been related to some strange competition

We want to live. Just sayin’

From Telegraaf.nl:

Server: nginx
Date: Wed, 15 Aug 2012 15:03:04 GMT
Content-Type: text/html
Etag: W/”290358-1345042682000″
Last-Modified: Wed, 15 Aug 2012 14:58:02 GMT
Cache-Control: max-age=120
Expires: Wed, 15 Aug 2012 15:03:42 GMT
P3P: policyref=”http://www.telegraaf.nl/w3c/p3p.xml”, CP=”NON DSP COR CURa ADMa DEVa CUSa TAIa PSAa PSDa OUR DELa IND UNI COM NAV INT DEM PRE”
X-Cacheable: Yes:120.004:/
X-Varnish: 1120547193 1120429288
Age: 82
Via: 1.1 varnish
X-Served-By: killer
X-Cache: HIT
Vary: Accept-Encoding
Content-Encoding: gzip

Should we be worried…?

Oh, hai

From Wellsfargo.com:

Server: KONICHIWA/1.0
Date: Wed, 15 Aug 2012 14:52:44 GMT
Content-Type: text/html;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked

Fun server obfuscation. If you absolutely need to know, you can Google it to find out what it actually is.

HTTP response headers as a recruitment tool

As we said earlier, there are quite a few websites that use these response headers for recruitment purposes. It makes sense if you’re looking for people who are into web tech, doesn’t it?

Automattic is the most famous example, but there are many others. Here is a selection.

Booking.com

Date: Wed, 15 Aug 2012 14:45:05 GMT
Server: Apache
X-Recruiting: Like HTTP headers? Come write ours: booking.com/jobs
Content-Length: 31952
Vary: Accept-Encoding
Cache-Control: private
Content-Encoding: gzip
Keep-Alive: timeout=5, max=94
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

Seomoz.org

Date: Wed, 15 Aug 2012 14:53:51 GMT
Server: Apache/2.2.14 (Ubuntu)
X-Powered-By: PHP/5.3.2-1ubuntu4.14
Cache-Control: no-cache, must-revalidate
Expires: Sat, 26 Jul 1997 05:00:00 GMT
P3P: CP=”NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM”
X-Recruiting: If you’re reading this, maybe you should be working at SEOmoz instead. Check out www.seomoz.org/about/jobs
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 6970
Connection: close
Content-Type: text/html

Exactly the same as the next one. Hmmm?

Zappos.com

Server: nginx/1.1.17
Content-Type: text/html; charset=utf-8
X-Powered-By: Ponies!
X-Varnish-TTL: 60m
X-Varnish: 977664209 977642627
X-Cache-Hits: 2091
X-Varnish-Host: varnish04.zappos.net
X-Varnish-ID: drupal
X-Core-Value: 5. Pursue Growth and Learning
X-Recruiting: If you’re reading this, maybe you should be working at Zappos instead.  Check out jobs.zappos.com
X-UUID: 68784e3a-e6e5-11e1-84a7-00215e22da70
Content-Encoding: gzip
Content-Length: 25119
Vary: Accept-Encoding
Cache-Control: max-age=1810
Date: Wed, 15 Aug 2012 14:57:22 GMT

Plus, the Zappos website is apparently powered by ponies. But of course.

Zoopla.co.uk

Cache-Control: no-cache
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Wed, 15 Aug 2012 15:05:16 GMT
Expires: Wed, 15 Aug 2012 15:05:15 GMT
Pragma: no-cache
Server: nginx/1.2.1
Vary: Accept-Encoding
X-Core-Mission: Empowering consumers with the resources they need to make better-informed property decisions
X-Jobs: If you’re reading this, maybe you should be working at Zoopla? Please visit www.zoopla.co.uk/jobs/
X-Powered-By: Passion
Transfer-Encoding: chunked
Connection: keep-alive

Bestylish.com

Date: Wed, 15 Aug 2012 15:07:26 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Server: NixOS 1.5b Jatinga Release
X-Hire: If you are reading this, maybe you should work with us.
Content-Encoding: gzip

Phew…

Going through HTTP headers to find something odd and interesting is a bit like sifting for gold. You have to go through a lot of dirt, but you can end up with some nice little nuggets along the way. We hope you liked these!

A final little side note: If you like this stuff there’s also a pretty awesome post over at netthing.org about unconventional HTTP headers that you might want to check out.

Top image via ShutterStock.

This was a post from the guys at Pingdom, a site monitoring service that makes sure you're the first to know when your site is down. Check it out for free.

Back to the past – 10 awesome vintage computer ads

VIntage computer
Going back to the future would be nice, following in Marty McFly’s footsteps, but for now we’ll settle for just going back to the past. We have dug up 10 awesome vintage ads published in Byte Magazine from 1977 to 1984. It’s quite a mix of cool and quirky, funny and awesome.

10 MB hard disk

With a 2 year warranty, how could you resist? And since it’s offered with “satisfaction guaranteed” you’d be crazy not to order the 10 MB hard disk for IBM PC and compatibles.


It’s a bit quaint, as well, that it says “to order send check or money order.”

3M floppy disks

Remember floppy disks? I think you’d agree they were not the pinnacle of reliability, but 3M does its best to convince us otherwise. “At 3M, reliability is built into every diskette.” Thank goodness for cloud storage (not that that is necessarily any more reliable than floppy disks :)

The man, the light and the Apple

Isn’t it funny how different the ads from Apple back then were from the ones you see today?

BDOS error on B:BAD sector

“You can use your disks 10 times longer without losing your data AND your time,” claims the ad. And that for only $73 – sold!

Cassette I/O

Who would not need a cassette i/O interface today, capable of speeds up to 120 bytes per second?

CompuServe puts the world at your fingertips

CompuServe, “the world’s largest information service,” is ready to take care of you. It doesn’t even matter which computer you own.

A newsletter

For only $5.95 per year, you can subscribe to “BUSS”, the independent newsletter of the club for users of HeathKit and other computer-related items. Sounds like a fun bunch of people to hang out with.

656 kB memory in 9-pound computer

The incredible Hulk” ran from 1977 to 1982, and you would have needed his strength to carry around “The Portable” by HP, introduced in 1984. (9 pounds is about 4.1 kg)

Microsoft Olympic Decathlon

With only a few days left of the London 2012 Olympics, perhaps you could test your physical endurance with this Microsoft gem.

A portable daisywheel printer

The lady in the ad may be happy carrying that $599 printer around but we suspect most of us wouldn’t because the ads says “it currently weighs in at less than 19 pounds.” That’s almost 9 kg!

Enter the future with Turbo Pascal

Finally, Turbo Pascal can take you (back) to the future for only $49.95. For that you also get the source code to MicroCalc, a spreadsheet written in Turbo Pascal.

Want more vintage computer stuff?

Actually, we ended up with 11 vintage ads, and they’re not all computer ads. But we hope you enjoyed them just as much as we have. It’s good being reminded once in a while just how fast the world of tech changes.

Was that not enough vintage tech for you? Then you should check out more vintage computer ads, 10 old tech reviewsretro gallery of early computers, and, of course, wacky copy protection methods from the good old days. Finally, not long ago we said happy birthday to 86-DOS.

Do you have any favorite old computer or tech ads? Share with us in the comments.

Image at the top by spirit of america / Shutterstock.com

This was a post from the guys at Pingdom, a site monitoring service that makes sure you're the first to know when your site is down. Check it out for free.

How a Hard Drive works in Slow Motion – The Slow Mo Guys

Here is a previously unreleased video which was shot almost 2 years ago for our original trailer. Inside a hard drive. Plus a bit of unnecessary destruction. Shot at 1000fps

Tech stocks that would have been an awesome investment 10 years ago

dollars

An investment in Apple stock 10 years ago would be worth 47 times as much today. An investment in Amazon would have given you 14 times your money back. Not a bad way to spend some dollars in 2002.

Those are far from the only stocks that would have given huge returns over a 10-year time span, though. Other notable mentions include Akamai and Red Hat, both returning more than 10 times the money over the past 10 years.

We were curious how much the stock value of various tech companies had increased over the past 10 years, so courtesy of some digging in Google Finance we took 32 well-known tech companies that are traded on Nasdaq and NYSE, and noted how much their stock value has changed over time.

tech stock gains in 10 years
Larger version available.

It’s worth noting that since this analysis is based on two snapshots of the stock market, one now and one 10 years ago, it hides the fact that many of these stocks have had a number of ups and downs during that time period.

Observations

  • 26 out of these 32 companies, 81%, are worth more today than 10 years ago.
  • 19 out of 32, almost 60%, have more than doubled the investment over 10 years (i.e. a return of 100% or more).
  • 23 out of 32, almost 72%, beat the Dow Jones Industrial Average.
  • Average gain with Apple included: 409%
  • Average gain without Apple included: 275%
  • We included Google even though the stock has only been around for 8 years. Same thing with Salesforce.com. Trivia: An initial investment in Salesforce.com would today be worth 66% more than the same money put into Google.
  • Yahoo may be in trouble, but a 10-year investment would still have been worth 1.8 times as much today.
  • RIM’s stock, although its value has dropped quite a bit in later years, is still worth 3.9 times as much today as it was 10 years ago.
  • Good old IBM has actually done ok. An investment would be worth 2.4 times as much today.
  • And what about Microsoft? Turns out it has not performed very strongly. Investing in Microsoft 10 years ago, you would now have 1.1 times the money.

Comparing the polar opposites: Apple and Nokia

The data we collected paints a clear picture. When looking at long-term value change, i.e. over the past 10 years, Apple and Nokia are polar opposites.

Case in point: If you had invested the same amount of money in the two companies 10 years ago, the Apple investment would today be worth 243 times as much as the Nokia investment.

Some of this massive difference can no doubt be attributed to the rise of the iPhone and Nokia’s failure to capture as much of the smartphone market as it should have. Remember, Nokia was doing smartphones well before Apple came into the picture, they just failed to adapt to the massive paradigm change that came with the iPhone, and later, Android.

Final words

It’s always easy to look back at the past with 20/20 hindsight, but that doesn’t stop a ton of people wishing they had invested some of their hard-earned money in companies like these a few years ago.

Think about it, if you had put just $5,000 into Apple stock in 2002, you could have sold it today for around $234,000. Ka-ching!

The challenge now is to figure out which companies will see the biggest returns over the coming 10 years.

Disclaimer: We’re techies, not financial analysts. Keep that in mind if you decide to do any investing based on this article.

Image credit: Dollar-bills image via Shutterstock.

This was a post from the guys at Pingdom, a site monitoring service that makes sure you're the first to know when your site is down. Check it out for free.

Google owns 23 of the top 100 sites

googleIf you list the top 100 sites in the world (according to Alexa), you’ll find that 23 are owned by Google. That’s a massive share for a single company.

How does Google have such a huge presence? The main reason is the large number of localized versions of Google Search, such as Google.com, Google.co.uk, Google.fr, Google.de, etc. Almost every country has one, and due to their popularity, 17 are among the top 100 most visited sites on the Internet.

Then there’s also YouTube, Blogger, etc.

The number is boosted a bit by a couple of “sites” that aren’t regular sites, googleusercontent.com being one. This is a side effect of how Alexa works, which seems to focus on domains accessed, so things like CDNs (content delivery networks) get included. This doesn’t change much, though, because even ignoring those domains you still end up with 20 proper, Google-owned sites. That’s one in five.

We noticed this rather impressive statistic the other day while working on a report about web server usage, and felt it was worth mentioning here.

There’s so much talk about how big Facebook has become (and deservedly so), but Google will be a tough giant to beat in terms of sheer web presence. It’s still one of the world’s most interesting companies.

P.S. A year ago we wrote a related article – How big is Google, really? – that you might want to check out for a deeper dive into Google’s enormous online presence.

Data source: Top sites from Alexa, May 14.

This was a post from the guys at Pingdom, a site monitoring service that makes sure you're the first to know when your site is down. Check it out for free.

Has the time come for web designers to embrace the SVG image format?

vector graphics

Display resolutions are increasing every year, something that’s being taken to its extreme with the recent “retina display” trend that came with the latest iPad. The jump in onscreen pixels is massive, and such displays are soon bound to make their way into regular laptops and desktop displays, perhaps as soon as this year.

This development will have a profound effect on the size of the graphics resources necessary for websites, which ultimately will make websites bigger, more bloated and slower to download. That is, if we don’t change tactics.

The growing footprint of bitmap graphics

High-resolution monitors place increasing demands on the resolution of our graphics resources. For example, most of today’s monitors of good quality have around 110-130 PPI (pixels per inch). A retina display like that on the new iPad has around 300 PPI.

A square image with a side of 5 inches on a 130 PPI screen is 650×650 pixels. On a 300 PPI screen an image with the same dimensions would be have to be 1500×1500 pixels.

So, going from 130 to 300 PPI, the same 5-inch square image goes from containing 422,500 pixels to containing 2,250,000 pixels. That’s more than 5 times as many.

In other words, serving increasingly large images with bitmap graphics formats like JPG and PNG is becoming impractical, or at least inefficient.

All web page resources are growing in size year over year, but images account for such a large part of the average web page size that they have a bigger impact than for example CSS or HTML files. Keeping their size in check is very important.

Enter SVG and resolution independence

Modern browsers support SVG, a scalable vector graphics format (a cookie if you guess what the acronym stands for…). You’ve most likely heard of it, maybe even played around with it. SVG is standardized and has been around for years, but isn’t used much in web design today, most likely due to the poor browser support it used to have.

The benefit of vector graphics is that it’s resolution-independent and has a small memory footprint. The same image data can be rendered to a low resolution or a super-high resolution, it can scale indefinitely without any loss in quality.

Not all graphics resources are suitable for vector formats, of course. Photos are poor candidates for SVG. However, a lot of the graphics on the Web is made up of illustrations and icons, which are perfect for vector graphics.

Use of vector graphics future-proofs those resources, at least in terms of supported display resolutions. Check out the Emacs for Mac OS X site, for example, which totals in at a mere 21 kB, all resources included, and is scalable to any resolution (open it, resize the browser window to see it in effect).

Also, since SVG is a text-based markup language (XML-based), it compresses nicely with standard gzip, making the transfer size even smaller when people load your website.

Is browser support good enough?

Browsers with basic SVG support include Internet Explorer 9 and later, Firefox 4 and later, Chrome 4 and later, Safari 4 and later, Opera 9.5 and later. These account for around 80% of the web browsers in use today according to StatCounter data for May.

Check out CanIUse.com for more details on SVG feature support in different browsers.

Remember, you can always have a fallback option, a version of the site that uses pre-rendered JPG and/or PNG images if you detect that the browser doesn’t have SVG support. And no one says you need to use SVG for everything.

The tools are already there

It’s not like designers are handicapped when it comes to creating SVG content. The vector graphics tool chain is already in place, thanks to applications like Adobe Illustrator. There are even free, open source options, such as Inkscape.

Most logos and many icons are already designed with vector graphics, and it’s common in print. The translation to Web should be relatively straightforward. Famous last words, we know, but people are already proving it can be done, and done with style.

Conclusion

In short, web designers could use SVG to a much larger extent than they do today. It may not be suitable for all kinds of content, but there are plenty of websites that would benefit from it.

The win is a smaller memory footprint (faster download), and resolution independence. This will become increasingly important as more high-resolution monitors come into the market.

Wouldn’t it be nice to have a website where all graphics automatically matches the screen resolution perfectly, and not have to worry that your site looks like a pixelated mess on that new iPad retina display?

What now?

If you want to dive right in and explore the world of SVG for web design, A List Apart has an excellent primer by Shelley Powers (don’t miss that there’s a part 2). You might also want to check out this introductory article by David Bushell over at Smashing Magazine. You can also head over to W3Schools for an introduction.

Image credit: Top image via Shutterstock.

This was a post from the guys at Pingdom, a site monitoring service that makes sure you're the first to know when your site is down. Check it out for free.

Why O, why? Thoughts on Opera’s Implementation of WebKit’s Prefixes

For those new to the discussion, Opera recently implemented aliases for -webkit- CSS prefixes in its mobile emulator, potentially with plans to follow on the desktop as well. This means that Opera will now treat -webkit- prefixes the same way it treats -o-. Bruce Lawson, an evangelist at Opera, told .Net magazine:

Opera, along with Microsoft and Mozilla, announced at a CSS Working Group meeting that we would support some WebKit prefixes. This is because too many authors of mobile sites only use the WebKit-prefixed version, and not even the standard, unprefixed one, when it is available.

Microsoft actually followed up:

A Microsoft spokesperson has provided a comment to .net on that company’s position: “A passing comment made in a working group meeting has clearly been misinterpreted. Microsoft won’t support –webkit prefixes in Internet Explorer.”

I highly encourage you to read the actual transcript, though. It’s important to note that the conversation is equally led by Tantek Çelik, from Mozilla, and the healthy conversation/debate that follows. It is clear that this move is part of a larger conversation about browser share and mobile usage.

A little context

Here’s my thirty second rundown of the mobile web: iOS and Android are killing it (Note, iPod Touch is a separate line), especially in North America, South America, Europe and Australia. Opera maintains a strong presence in Africa and Asia, most likely thanks to Opera Mini, and even that dominance is starting to come under attack. BlackBerry use continues to generally decline, though locale plays a big role here. WebOS is dead. On the horizon, Microsoft seems to be on a decent path with IE in Windows Phone and similarly Mozilla has got some great stuff in the works — that said, neither has traffic even worth mentioning at the moment.

To get specific, mobile WebKit currently accounts for about 50.58% of worldwide mobile traffic, with Opera in second at 20.93% (May 2012, excluding tablets). So it’s easy to see why developers are using features they find in WebKit: The browser is becoming incredibly popular with consumers and has great features. This also hopefully illustrates why Opera was the first to implement this idea of aliasing WebKit’s prefixes — in a certain light, they are the only browser remaining that poses a threat to Mobile WebKit’s advance.

The stated problem

It’s clear that implementing another browser’s prefixes is a solution — but what problem is it solving, and for whom? The next line from Bruce Lawson’s quote:

This leads to a reduced user experience on Opera, Mobile Firefox and Mobile IE, which don’t receive the same shiny effects, such as transitions, gradients and the like, even if the browser supports those effects.

Let’s break this down. In fact, even if Opera pushes -webkit- support into production, most features will still not be accommodated by Opera Mini, only Opera Mobile. So the web is slightly less “shiny” for some browsers — some browsers are getting flat, square buttons when they could have round, bevelled ones. Certainly, though, this is not a new concept to web developers or browser vendors, nor is it “broken” by most modern web developers’ definition. There is a small exception to this, noted below.

The real problems

So what, then, are the real problems that aliasing WebKit’s properties solves?

  • Usability issues that arise from poorly implemented CSS3. Really, the only case in which I see these effects “blocking content” is with gradients: When web developers fail to declare a backwards-capable background-color. I would think this is rare, however it is a very real UX issue hitting users that vendors have an opportunity to fix.
  • Non-WebKit mobile browser vendors are losing mindshare, especially among developers. Aside from “the gradient issue”, I don’t believe having a few fancier effects will help vendors here. It would appear that mobile mindshare, for both consumers or developers, is now heavily dictated by hardware, hardware integration with the browser, and platform (operating system).
  • Browser vendors are tired of answering support requests for features they know they support. From this specific example, I don’t think Mike and I are on the same page about “regular users.” (I would imagine most don’t even know what border-radius means). Again, this is not a problem for users as much as it is for browser companies, nor is it a new problem in any way.

My problem

So there you go. We have real problems, for both the browser vendors and the users.

If it isn’t already clear, I’m not a fan of this solution, and we’ve finally arrived at the crux of why: It is a short-sighted solution, primarily for the benefit of browser vendors, which contradicts an existing standard.

For the first problem noted above, regarding usability and gradients, it acts as a Band-Aid. Though it will fix the usability for their own latest browsers, it does not educate users, sends the wrong message, and leaves the site broken in older browsers.

This last FAQ from the announcement highlights what I mean:

So I only need to use -webkit- prefixes now? w00t! Absolutely not. We’re doing this now to ensure that there is compatibility with the 13 features we’re aliasing. We hope we never need add any more and that we can drop support for these. It remains vitally important to make sure that you code for all browsers, even if they don’t have support for a certain feature while you’re coding.

This is a bit of a, “Do as I say, not as I do,” type of answer. Performance-minded users will consider dropping -o- prefixed rules in order to save precious bytes in their CSS, especially for stylesheets with a lot of rich gradients. This idea could gain popularity if other browsers follow suite (Mozilla is clearly interested, even if Microsoft is backing out). In essence, Opera is saying, “Code the same best practices that have always been around,” while gently pulling you aside to say, “But if you don’t, no worries, we got you covered… for now.”

Faruk Ates sums it up best:

What this results in, however, is that “lazy web devs” now have even less incentive to do the right thing and test their work in Opera, because the onus has now fallen to Opera entirely to make sure their browser is doing everything right.

The problem leads to a solution that reinforces the problem.

A small technical consideration

Most of my objection thus far has been conceptual. There is also one small issue with the implementation I should note, though it is fairly nuanced:

In order to send a rule with different values to Opera, it must be after the -webkit- rule in the cascade… We discussed having the -o- prefixed version always trump a -webkit- version, but that breaks the cascade mechanism of CSS, which make it much harder for authors to debug sites and could have many unforeseen consequences. Therefore, we ask you to make a once-only check.

Essentially, I do think that -o- should always trump -webkit- in Opera, for what I hope are fairly self evident reasons. Opera cites the “cascade” here, but the CSS cascade has never been applied to separate vendor prefixes like this — in fact, this seems counterintuitive as it runs the chance of “breaking” existing sites. If one is supplying separate versions to WebKit and Opera, they now have to check the order of these declarations across all of their stylesheets.

Again, the aliases solution is a bit of a hack meant to improve UX for these browsers — I don’t believe it should mandate that browsers who implement multiple prefixes necessarily treat them “equally.”

Take a deep breath

I’ve had the pleasure of meeting several Opera employees at various conferences, and pretty much every one has been a good-hearted, uber-talented developer. The engineering team at Opera does an amazing job at implementing and, to some degree, leading web standards. I, personally, do not test on it enough — and subsequently silently carry my shame like most other US-based web devs I know. I’m sure they have done wonderful research leading up to which properties they chose to alias, and I am sure, to their word, they handle those properties just fine. No cities will explode and no kittens will be harmed.

In fact, contrary to popular belief, it is my respect for Opera which has led to this post. For better or worse, the CSS WG, and Opera’s browser development, operate in the public. If this were a silent upgrade — and didn’t disturb current behavior as noted in the technical section above — none of us would know, let alone care. Unfortunately, though, all of this does happen in the public, and so the choices they make send a message.

I simply believe that at best, this solution acts as a Band-Aid, and at worst, it adds new incompatibilities, sends the wrong message to developers, and sets a loose, subjective guideline for other browsers to follow suit.

Some other potential solutions

To avoid being accused of taking the easy road, I have compiled a list of other possible ways Opera could try to improve our situation:

Fix Vendor Prefixes

Revise the purpose and implementation of vendor prefixes. I understand the need for browsers to implement each others’ prefixes, because we’ve made a bit of a mess — I just think we should do it in a more global, thought-out approach, with rules. One example: What if browsers could identify -anything- in addition to the unprefixed rule, once it has been accepted as a Candidate Recommendation? This is slightly similar to what Opera is doing, except they would have to leave out Transitions, as it is still a draft.

Also, let’s drop the “we hope we can one day remove this” from the messaging. Find a backwards compatible, permanent, solution and let’s move on.

Evangelize

Send an email to the CTOs and CMOs at Microsoft and Mozilla and use the subject line, “APPLE N GOOGLE R GOIN DOWN!!!” That’s attention grabbing. Anyway, tell them you want to run a campaign to get web devs using all the CSS prefixes. Pool your money and hire some badass web designers. Create demos that rock our faces — Except, on Mobile WebKit, create an interstitial: “We noticed you’re visiting on a WebKit browser.”

Bam — immediately, this will bring up strong emotions from the dark days in most developers. “While this demo also work in your browser, it looks equally fantastic in Opera Mobile, Firefox for Android, and Internet Explorer. This matters. There are currently XXX,XXX,XXX people who browse the mobile web every day, who don’t have iOS or Android. Learn more.” Then, in your learn more, explain why this matters, and link to resources like Can I Use, Prefix the web, and CSS Prefixer and great tools like Sass/Compass, Less, and Stylus.

In short, continue evangelizing: It’s the most important part of making sure this issue is not just fixed in your latest browser, but across the web.

Realize you can’t win them all

Make a page on the internet that says, “Sorry, not all pages on the web look exactly the same.” Then, when someone emails you saying, “Hey, this button looks more round on my laptop,” you can just reply with the link. Actually, it already exists! (thanks Jay)

If they send a more substantial error, like the gradient example above, say, “Sorry, this is a bug on the website’s part, you should contact them.”

And finally

If you’re a web developer, use CSS prefixes responsibly. They mean “experimental.” If we didn’t screw this stuff up so much, the browsers wouldn’t have to consider this hack. That said, if we are going to do something about it, let’s think it through to its logical conclusion: A global, backwards-compatible, change to the current implementation of vendor prefixes.

Putting Facebook’s 900 million users into perspective (infographic)

As you may have heard, Facebook very recently passed 900 million active users. We think it’s pretty safe to say that it’s by far the largest social network in history.

That number, 900 million, is hard to get your head around. It’s such a huge number. We thought it would be fun to illustrate it with a neat little infographic. Enjoy!

facebook population infographics

This was a post from the guys at Pingdom, a site monitoring service that makes sure you're the first to know when your site is down. Check it out for free.

Limiting -khtml- and -apple- prefixes, and location.ancestorOrigins

882 revisions landed in Chromium’s repository last week and 667 in WebKit’s. Highlights include removal of support for the -khtml- and -apple- CSS vendor prefixes in Chromium, and the new location.ancestorOrigins() method.

Work on Device Emulation in Web Inspector is continuing and now also supports dimension wrapping to mimic orientation changes, and a “fit to width” option which will inherit the browser window’s dimensions as the device’s resolution. Lines having a breakpoint will now show line numbers and the vertical timeline overview now shows the wall time.

Support for -khtml- and -apple- properties has been removed for most WebKit ports, including Chromium, after previous attempts failed due to compatibility issues. Background sizes are now correct if the page is zoomed out, the default box-shadow color now defaults to the element’s “color” property, the viewport-relative CSS units now work for Replaced objects (such as images) and the -webkit-image-set CSS property was enabled for the Chromium port.

The ancestorOrigins() method was added to the window.location object, Chromium now exposes the Battery Status API and a Mutation Observer’s attributeFilter is now able to deal with namespaced attributes as well. The contentNodes property for NamedFlows was added, JavaScriptAudioNodes now respect the number of output channels and timestamps used in WebVTT had their limits relaxed.

Split over a number of commits, Avi has renamed Chromium’s TabContents class to WebContentsImpl.

Other changes which occurred last week:

And that’ll be all :) . Maybe see you at the WebKit’s Contributors Meeting!