Saturday, September 3, 2011

What to Expect from Cloud Computing

Cloud Computing: Hot Air or Killer App?


Cloud computing has become a huge ‘buzz-phrase’ in last few years, but you’d be forgiven for not knowing what the term actually means indeed. Different people interpret “cloud computing” in different ways. That’s the dilemma because computing “in the cloud” may be important for you and your organization, but if it’s not clear what it actually means, how will you know?

The chairman of the Cloud Summit Executive 2009 conference started the event by a witty comment that when he asked 20 people to define cloud computing, and he got 22 different answers. The term came into vogue a few years ago and has generated its share of controversy since then. Here are some descriptions for cloud computing:
“Reliance on the Internet for satisfying the computing needs of the users.” (Wikipedia),
“The next step in the evolution of software-as-a-service (SaaS) technology.” (Knowledge@W.P. Carey, Arizona State University’s online business publication),
“We’ve redefined cloud computing to include everything that we already do. I can’t think of anything that isn’t cloud computing with all of these announcements.” (Larry Ellison, Oracle).
There is an obvious ambiguity on what cloud computing is, and what it isn’t, whether it’s a seachange or just another technology fad. Let’s not to get hung up on definitions focusing whether ‘something’ is cloud computing or ‘Software as a Service’ (SaaS), instead let’s focus on the changing IT equation.


Cloud computing disarrays the traditional IT model where one keep buying servers, PC’s and software licenses as ones business grows, to offering a new Information technological path for small –to-mid size business: ‘Clouds’ of computing power , accessed over the internet, become your server and your data center. Also, amidst the clouds are inexpensive applications for use on demand from any location and through various devices.

Many people indeed confuse ‘Cloud computing’ with ‘Grid computing’.Both implies data centers filled with computing resources available over the network, so are they, in fact, the same thing? Actually, no. Grid computing implies the provision of computing resources as a utility that can be turned on or off as required. Computing on tap, so to speak. You pay for what you consume, without worrying about how where it comes from or how much is available. A good example of this is Amazon’s Elastic Compute Cloud (EC2) offering. Customers create their own Amazon Machine Images (AMIs) containing an operating system, applications and data, and they control how many instances of each AMI run at any given time. They pay for the instance-hours (and bandwidth) they use, adding computing resources at peak times and removing them when they are no longer required. Amazon calls this a cloud, but really it’s a grid. The cost of this utility? 10 cents an hour for 1.7 GB of memory, one virtual core, and 160 GB of instance storage, plus data transfer costs.

Cloud computing is slightly different. It implies the supply of applications to end users, rather than just computer cycles. “Cloud-based computing is a type of IT service usually delivered over the Internet, but the defining characteristic is scale — the ability to service millions of users,” said Matt Cain, a research vice president at Gartner. Cloud computing also implies quick and easy provisioning and a simple cost

structure, generally on a per-user, per-month basis, if it is billed at all, he said. Microsoft’s Live Hotmail is a perfect example of an application run in the cloud: It is supplied over the Internet from one or more data centers who-knows-where; it has millions of users; easy self-provisioning; and a very simple cost structure (of no charge per month). So by now most of you would have updated their definitions in your sagacious cerebrum for not to get confused in between them.

When considered is it all really that new to us, I would say,”Ahh! I have heard it somewhere” If some of this sounds familiar, it’s because, excluding the scale, it is an almost perfect description of the Application Service Provider (ASP) model that was in vogue briefly eight or nine years ago ASPs managed data centers and used their expertise to run and maintain all sorts of applications for customers, who accessed these applications down the wire. New applications were written or existing applications were “ASP-enabled,” and these were either shared by multiple customers or hosted on a separate server for each customer. The problem was that very few ASPs managed to get many, and in some cases any, customers. Most disappeared as quickly as they arrived. There were a few successes like Hosted Exchange was a popular offering, and Salesforce.com successfully promoted the idea of software as a service — a low-cost solution to fill a particular need, a commodity rather than a differentiator.

So now definitely one would like to counter the difference between the ASP model and computing in the clouds? You could argue that the cloud is just a fancy 21st-century way of talking about back-end systems that supply software as a service. “The difference is scale,” said Cain. “ASPs never got millions of customers.” It’s interesting to note that just as ASPs discovered hosted Exchange was one of the few things for which customers were willing to pay, it’s also an application that runs well in the cloud. E-mail being the poster child of cloud computing.

"A move towards clouds signals a fundamental shift in how we handle information," writes Stephen Baker in Business Week. "At the most basic level, it's the computing equivalent of the evolution in electricity a century ago when farms and businesses shut down their own generators and bought power instead from efficient industrial utilities." Moreover it ultimately helps CIOs rationalize their legacy systems and get their “arthritic IT” in order, so who would say ‘No’ to it?

Coming back to Cloud computing, there are many advantages of the approach Low Start up cost makes cloud computing attractive to small businesses. One time use applications and business services like Google apps need not be purchased which is a blessing for sporadic users. There isn’t a need to buy additional licenses and hardware as corporates can expand up to n number of users and locations at modest cost. Cloud computing also gives location & accessing independence. A significant advantage being regular upgraded application versions are available to users with changing requirements.

Cloud computing releases sizeable portions of handcuffed IT budgets for corporates. Instead of purchasing additional licenses and hardware, firms can simply open new accounts with cloud based services providers to expand computing capacity.

Also, Users would be more receptive to the idea since the knee-jerks about security and third parties access to applications are less prevalent these days. And let’s be practical — Google is not likely to run out of money any time soon and is probably far more likely to be around in 10 years time than many of its potential cloud computing customers. When put like that, cloud computing starts to make sense. After all, e-mail and productivity apps are commodities everyone uses. They are not strategic apps that give a firm the competitive advantage apps, therefore, why not let a handful of mega-corporations like Google run and maintain them from data centers built near hydro-electric facilities offering unlimited free power for a fraction of the price now spent to license, install and maintain these applications independently. It may not give you the competitive advantage but definitely gives you a cost edge over others.. In Joseph Heller’s words classic novel Catch-22, “if everyone else is getting their apps from the cloud, you’d certainly be a damned fool to get yours any other way ...”

Snapshot of Gooooogle's Massiveness...

Why Microsoft did the right thing ditching XP for IE9


A "modern browser" needs a "modern operating system," and Windows XP doesn't qualify. Much to my surprise (well, not really, I know that XP is still used and, apparently, loved by many), many doubted my characterization of XP as "obsolete," and they questioned my lack of surprise at this decision.
Simple things first. Windows XP is not a new operating system. Windows XP was released in 2001, and it has been succeeded by not one, but two newer operating systems: Windows Vista, and Windows 7. The other major desktop platform vendor—Apple—doesn't even begin to support anything that old, and the company routinely restricts its software compatibility to only the most recent version or two of its operating system.
Now, it's true that software is not like physical goods; while the ravages of time may make hardware break down, Windows XP works as well today as it did when it was new. Better, if you consider the extensive capabilities added in Service Packs and free downloads. But the computing world does not stand still; working as well as it did when it was new means that Windows XP hasn't kept up with computing's advances. The next generation of hard disks (or indeed, current generation, for Western Digital users), for example, are at risk of suffering severe performance penalties on XP systems. To get the best from the technology that for many has replaced spinning disks—the solid state drive—requires support for the TRIM command, found natively only in Windows 7. XP similarly lacks any built-in support for Blu-ray discs.
But what of Web browsers? A Web browser doesn't much care about, say, disk technology, so although it's undoubtable that XP requires more effort to use on modern hardware, this alone shouldn't be a reason for a Web browser to skip the platform. Do Windows Vista and Windows 7 offer capabilities that XP lacks that are relevant to IE9?
I think a pretty compelling case can be made that yes, in fact, they do. IPv6 is—fingers crossed—a technology that will become far more prevalent in the coming years, as the IPv4 address space finally starts to run out. XP does support IPv6 in a limited way, but it can only be configured using arcane command-line syntax. Windows Vista added GUI configuration and made IPv6 a first-class citizen on the network, and Windows 7 rounds out IPv6 support by including support for ancilary technology such as DHCPv6. XP is simply ill-prepared for an IPv6 world.

Web browser security is a problem

Web browser security is a notorious problem, as the recent pwn2own event has once again demonstrated. Windows Vista and Windows 7 have much greater systematic protections against security flaws than Windows XP does. The Address Space Layout Randomization feature makes existing flaws harder to exploit by making systems less predictable to attackers. This protection is not perfect, and there are indeed techniques that allow its circumvention, but every obstacle makes would-be hackers' jobs harder. The protection ASLR offers is also boosted by the use of a 64-bit operating system, another area where XP falls behind (64-bit XP is a bastard hybrid of Windows XP and Windows Server 2003, with the result that much 64-bit software that works properly on Vista and 7 fails to work properly or at all on XP 64).
More substantial protection is provided by the Mandatory Integrity Control feature of the two modern OSes. By marking a process as "Low Integrity," Windows prevents that process from being able to write to the majority of the hard disk and registry. The result is that even if the Web browser is compromised, the attacker is greatly restricted. Though an attacker can read most data (though this too can be restricted), he can't install rootkits, trojans, spyware, or anything else, because he cannot write to the parts of the file system required to do this.
Importantly, this protection has no real means of circumvention. Features like ASLR (and DEP, which is found in XP) are designed to make hackers' jobs harder, but do not erect any hard, kernel-enforced barriers, which is why, with skill, they can be bypassed. MIC erects a much harder barrier; to bypass MIC a hacker would have to find and use an exploit that allowed a process to elevate its privileges to strip itself of the "Low Integrity" label. If the attacker cannot do this, then he is forever trapped in the Low Integrity sandbox, unable to install his malicious software.
Privilege escalation vulnerabilities—software flaws that trick the kernel into giving a process more rights than it should have—do exist, so even MIC is no panacea. But they're substantially rarer than common browser flaws, and they are more likely to be fixed more quickly, because of their scope. Most important is that they can be fixed—they're a result of bugs in the kernel. DEP and ASLR can't be fixed as such; the circumvention mechanisms are to an extent inevitable.

The browser itself is a problem

The track record of Web browsers is pretty lousy. Actually, it's not just Web browsers; the track record of computer software is pretty lousy. Bugs are absolutely rife. But Web browsers are particularly important here, because Web browsers are exposed to potentially hostile code all day long. An exploitable bug in my MP3 player or word processor is bad, sure—it's something that I would prefer not to be there—but with these programs the main thing I'm going to use is my own MP3s and documents that I (or my colleagues) have written. And these files are going to be harmless. But the main thing I do in my browser, practically the only thing I do, is to look at webpages that were put up by other people. Other people who may or may not have good intentions; people who may or may not secure their servers properly, audit their code, or virus-scan their machines.
The result is that my Web browser is exposed to potentially hostile code like no other program on my PC. My e-mail client comes in second, and it's a distant second; even when I get hundreds of e-mails a day, most of these are from colleagues rather than spammers/phishers/other miscreants and ne'er-do-wells. As such, isolating the browser with MIC isn't just something that's a good idea—it's something that you would have to have a really good reason not to do. And frankly, no such reason exists. The Web is unfortunately a dangerous place.
Of the big five, only two browsers currently use this protection on Windows; Internet Explorer (7 and 8), and Chrome. For this reason alone, I'd be hesitant to use Safari, Opera, or Firefox. Their security track record isn't really any better than Microsoft's, and the consequent exploitability of these browsers is much greater.
This advantage is not one that is merely hypothetical, either. In common with other vendors, Microsoft assigns a risk rating to every security flaw, and Internet Explorer flaws on Windows Vista and Windows 7 have quite consistently had lower risk ratings than those same flaws on Windows XP. Why? Because the flaws are greatly restricted by the MIC barrier. Microsoft might be biased, but there are security researchers who concur; Charlie Miller, so successful at pwn2own, regards Chrome and IE 8 on Windows 7 as arguably the safest Web browsing platform. It's no coincidence that these are the browsers that use MIC sandboxing. The protection works.
Windows XP supports none of this protection, nor will it ever. Denying XP users access to its latest and greatest browser isn't a bad thing: Windows XP users should be strongly discouraged from using their machines in any hostile environment. Far from saying that IE9 should be supported on XP, we should be demanding that the other three browsers start supporting these security features and dropping XP support, too. These really are features that everybody should be using.

Graphically speaking

The biggest single reason for dropping XP is not, however, security; it's graphics. Internet Explorer 9 already boasts high-performance, hardware-accelerated graphical capabilities. In particular, Microsoft has shown off IE9's SVG capabilities. (SVG is a W3C standard that enables vector graphics to be embedded into webpages.) These graphics can be manipulated using JavaScript, opening up a whole new world of possibilities for standards-compliant webpages—widespread support for SVG might very well allow standard pages to start doing the kinds of tasks that hitherto have required plugins like Flash or Silverlight to accomplish.
SVG support is found in a number of other browsers, but it's not without its problems. One particular issue is performance. SVGs are mostly pretty slow; static images work fine, but even simple animations suffer poor frame rates. The result is that currently, SVG is only really good for static graphics. That's still useful, but there's a world of difference between a static graphics format and a moving, programmable graphics format. To use SVG for Flash-type tasks requires strong animation support.
The way that Microsoft has decided to achieve this is to use Direct2D for all of IE9's rendering. Direct2D is a 2D vector graphics API that's layed on top of Direct3D, and Direct3D is, of course, fully hardware accelerated. Direct2D is in many ways a pretty good match for HTML, CSS, and SVG rendering; unlike Windows' old graphics API, GDI, Direct2D is vector-based (so allows for easy, high-quality scaling and animation), but unlike OpenGL or Direct3D, it offers a simple programmatic interface that's tailored towards 2D graphics, without the complexity that 3D entails.
Similarly, for text, Microsoft is using DirectWrite. Again, the technology is high-performance, hardware-accelerated, and it integrates cleanly with Direct2D.
Is this the only way to do it? Well, no. An enterprising developer could certainly develop a Direct2D-like API (that is, a 2D API that simplified use of, and was accelerated by, OpenGL or Direct3D) by hand for XP, such that it could be used with, say, Direct3D 9c. DirectWrite is a bit trickier, as hardware acceleration of DirectWrite is dependent on some Direct3D 10-level features, but a reasonable approximation could probably be achieved.
But the thing is, Microsoft has already done the development for these APIs, and they're already shipped, supported, and available to third-party developers. They just require an OS that's been released in the past three and a half years (they're built in to Windows 7, and available as a free download for Windows Vista). It's ridiculous to expect the company to just ignore that it's done all this work, and then do it all again (and this time, to do it as something built in to IE, rather than as a general-purpose library available to any developer).
The other compatible option—abandoning 3D acceleration completely—seems even less palatable. It might be possible to create a high-performance, high-quality SVG implementation using nothing other than GDI, but no vendor has managed to do so thus far. It's certainly not clear that it's worth the development effort, given that an effective solution already exists: use Direct2D. Giving up entirely—throwing performance concerns out the window—leaves you with an SVG browser that's useless for animations, and as such, is severely restricted when compared to one that's a workable animation platform.
As large a company as Microsoft is, its resources are nonetheless finite. Moreover, the lack of scalability of software projects is well-known; getting more productivity by throwing more developers at a project is possible, but it takes considerable care, and can't be done willy-nilly. As such, the company absolutely has to choose where it spends its development time. Re-creating Direct2D, or writing a high-performance GDI-based graphics layer just isn't a good use of its resources. Most significantly, it's duplicating work that's already been done on a more modern platform.

Conclusions

Microsoft wants IE9 to be a first-rate browser, and to achieve that, the company is exploiting modern operating system features. That's precisely what Microsoft should be doing—these features have been developed so that developers can use them, and that includes Redmond. XP can't do the things that the new OSes can do. Kernel-enforced protected mode would be essentially impossible to provide on XP; a Direct2D equivalent would be doable (though DirectWrite might not be), but would require substantial effort, and in any case, an application simply shouldn't have to do such things. These are jobs the OS should be doing—jobs that Windows Vista and Windows 7 do, in fact, do. And not it's not just XP and Vista that support these capabilities. 
Courtesy of Compiz and Cairo, Linux has 3D-accelerated desktop composition, and a 3D accelerated 2D vector API; Quartz Extreme and QuartzGL offer the same for Mac OS X. Mac OS X 10.6 also incorporates a security framework offering similar capabilities to Windows' Mandatory Integrity Control, and SELinux has long given Linux equivalent protection. This is not to say that these features are necessarily as widely used as they are in Windows Vista or Windows 7, but these abilities are clearly part of modern operating systems.
The new graphics APIs, coupled with the security advantages of Windows Vista and Windows 7—advantages that all Web users should be demanding that their browsers support, because they're really that good—make it clear that the new OSes have indeed advanced beyond the capabilities of Windows XP. Yes, I acknowledge that XP still does all that it does just as well today as it did when it was new . But I would also say that people should be demanding more of their OS. A 2001 feature set isn't good enough any more. I know it's also popular to claim that Windows Vista, in particular, really offers nothing new. But it does offer new features; it has just taken a while for software to exploit these new abilities. In sum, there are modern operating systems out there, operating systems that are ideal platforms for modern browsers. XP really isn't one of them: it's obsolete.


The Science of Sipping Coffee... The Art of Making Mugs...


How Good Design Gets Coffee Down Your Gullet on the Go

How Good Design Gets Coffee Down Your Gullet on the GoModern humans make the simple task of drinking a hot morning beverage a challenge for industrial designers.
You want our morning beverage hot, and you want it to stay that way for much longer than is reasonable to expect. You need to drink it with one hand because the other is steering the car, hailing a cab, or holding on while the train whips you into another passenger. Meanwhile, you want to sip your brain-jogging juice without spilling it down the front of your work shirt. Why are you so demanding?
It's O.K. Good design makes it all doable.
Let's start from the mega important top of your travel coffee mug. A good lid will create a seal between the cap and the cup that remains sealed against jostling as well as being tipped horizontal. Approaches vary, but a lid with silicone gaskets usually does the trick.
The next concern is the vent. Without one, a drinking hole turns into a blowhole. "If it's sealed properly but it doesn't have a vent, it could end up spraying someone in the face," explains Francoise Vielot, a senior product manager at OXO. Like with a pressure cooker, steam with nowhere to go will build up in the cup. When there's only one hole, the steam escapes, sometimes violently taking the coffee with it. In addition to an outlet that delivers liquid (which we'll get to later), the cup needs to have a place to let off steam-but not too much, because it's also a gateway for outside air.
If you don't get sprayed in the face, just one hole makes the liquid hiccup on the way out because the cup is attempting to purge its contents and suck up air simultaneously. With two, the liquid and gas work together.
So now, you have a place to drink from, but getting liquid down your throat while swinging a bag, an iPad, and yourself around a corner without burns or stains demands even more of your portable mug.
The liquid needs to be regulated as it pours, or you could end up with a majorly burnt tongue (or a spill). You chug a beer, but you do not chug nearly boiling English Breakfast. There are a couple of ways your mug on the go helps deliver your coffee safely. First, the opening is typically recessed. This creates a landing where liquid gets a momentary shot of air before it reaches your mouth. As Thermos marketing manager Kim Flanagan explains, "How the liquid comes through the lid matters."
A properly sized drinking hole plays a big part in regulating liquid as well. Before launching their line of travel mugs, OXO did a lot of research into the "optimal sipping volume" for piping hot beverages. They found that plastic tear away lids let in more liquid than people preferred. "The length more than the width was not ideal," explains OXO's Vielot. Eventually they determined the perfect sized exit, which was smaller than the tear-aways but a bit rounder than the average Starbucks to-go variety.
The hope, of course, is that once you finally get the coffee where it needs to go, it's still hot when it gets there. Double walled mugs help achieve this by creating a gap between the outside air and the stuff inside the cup. But air between the interior and exterior walls will still conduct the hot or cold. So if you're really serious about temperature, you'll go with vacuum-sealed stainless steel - the removal of that air between walls blocks the transfer of heat across the divide.
That leaves the lid as the main culprit behind a temperature change. The smaller the top, especially for vacuum-sealed varieties, the less opportunity heat has to escape. So, sure, you want a mug that will fit snugly your car's cup holder, but, as Thermos' Flanagan explains, "having the mug tall and thin will allow it to actually hold the temperature longer." The shape also makes coffee-slinging doable with one hand-an absolute necessity for commuters.
When the design is good, the whole experience should be easy to swallow.

By Rachel Swaby

Thursday, August 4, 2011

Make your own Ninja Name

Build your own Ninja Names using the below Index: 


Meshikiariritokamekatochiri - Krishnakanth


or rather Meshikiari - Kris for short

Monday, June 20, 2011

Why Microsoft did the right thing in ditching XP for IE9



A "modern browser" needs a "modern operating system," and Windows XP doesn't qualify. Much to my surprise (well, not really, I know that XP is still used and, apparently, loved by many), many doubted the characterization of XP as "obsolete," and they questioned my lack of surprise at this decision.
Simple things first. Windows XP is not a new operating system. Windows XP was released in 2001, and it has been succeeded by not one, but two newer operating systems: Windows Vista, and Windows 7. The other major desktop platform vendor—Apple—doesn't even begin to support anything that old, and the company routinely restricts its software compatibility to only the most recent version or two of its operating system.
Now, it's true that software is not like physical goods; while the ravages of time may make hardware break down, Windows XP works as well today as it did when it was new. Better, if you consider the extensive capabilities added in Service Packs and free downloads. But the computing world does not stand still; working as well as it did when it was new means that Windows XP hasn't kept up with computing's advances. The next generation of hard disks (or indeed, current generation, for Western Digital users), for example, are at risk of suffering severe performance penalties on XP systems. To get the best from the technology that for many has replaced spinning disks—the solid state drive—requires support for the TRIM command, found natively only in Windows 7. XP similarly lacks any built-in support for Blu-ray discs.
But what of Web browsers? A Web browser doesn't much care about, say, disk technology, so although it's undoubtable that XP requires more effort to use on modern hardware, this alone shouldn't be a reason for a Web browser to skip the platform. Do Windows Vista and Windows 7 offer capabilities that XP lacks that are relevant to IE9?
I think a pretty compelling case can be made that yes, in fact, they do. IPv6 is—fingers crossed—a technology that will become far more prevalent in the coming years, as the IPv4 address space finally starts to run out. XP does support IPv6 in a limited way, but it can only be configured using arcane command-line syntax. Windows Vista added GUI configuration and made IPv6 a first-class citizen on the network, and Windows 7 rounds out IPv6 support by including support for ancilary technology such as DHCPv6. XP is simply ill-prepared for an IPv6 world.

Web browser security is a problem

Web browser security is a notorious problem, as the recent pwn2own event has once again demonstrated. Windows Vista and Windows 7 have much greater systematic protections against security flaws than Windows XP does. The Address Space Layout Randomization feature makes existing flaws harder to exploit by making systems less predictable to attackers. This protection is not perfect, and there are indeed techniques that allow its circumvention, but every obstacle makes would-be hackers' jobs harder. The protection ASLR offers is also boosted by the use of a 64-bit operating system, another area where XP falls behind (64-bit XP is a bastard hybrid of Windows XP and Windows Server 2003, with the result that much 64-bit software that works properly on Vista and 7 fails to work properly or at all on XP 64).
More substantial protection is provided by the Mandatory Integrity Control feature of the two modern OSes. By marking a process as "Low Integrity," Windows prevents that process from being able to write to the majority of the hard disk and registry. The result is that even if the Web browser is compromised, the attacker is greatly restricted. Though an attacker can read most data (though this too can be restricted), he can't install rootkits, trojans, spyware, or anything else, because he cannot write to the parts of the file system required to do this.
Importantly, this protection has no real means of circumvention. Features like ASLR (and DEP, which is found in XP) are designed to make hackers' jobs harder, but do not erect any hard, kernel-enforced barriers, which is why, with skill, they can be bypassed. MIC erects a much harder barrier; to bypass MIC a hacker would have to find and use an exploit that allowed a process to elevate its privileges to strip itself of the "Low Integrity" label. If the attacker cannot do this, then he is forever trapped in the Low Integrity sandbox, unable to install his malicious software.
Privilege escalation vulnerabilities—software flaws that trick the kernel into giving a process more rights than it should have—do exist, so even MIC is no panacea. But they're substantially rarer than common browser flaws, and they are more likely to be fixed more quickly, because of their scope. Most important is that they can be fixed—they're a result of bugs in the kernel. DEP and ASLR can't be fixed as such; the circumvention mechanisms are to an extent inevitable.

The browser itself is a problem

The track record of Web browsers is pretty lousy. Actually, it's not just Web browsers; the track record of computer software is pretty lousy. Bugs are absolutely rife. But Web browsers are particularly important here, because Web browsers are exposed to potentially hostile code all day long. An exploitable bug in my MP3 player or word processor is bad, sure—it's something that I would prefer not to be there—but with these programs the main thing I'm going to use is my own MP3s and documents that I (or my colleagues) have written. And these files are going to be harmless. But the main thing I do in my browser, practically the only thing I do, is to look at webpages that were put up by other people. Other people who may or may not have good intentions; people who may or may not secure their servers properly, audit their code, or virus-scan their machines.
The result is that my Web browser is exposed to potentially hostile code like no other program on my PC. My e-mail client comes in second, and it's a distant second; even when I get hundreds of e-mails a day, most of these are from colleagues rather than spammers/phishers/other miscreants and ne'er-do-wells. As such, isolating the browser with MIC isn't just something that's a good idea—it's something that you would have to have a really good reason not to do. And frankly, no such reason exists. The Web is unfortunately a dangerous place.
Of the big five, only two browsers currently use this protection on Windows; Internet Explorer (7 and 8), and Chrome. For this reason alone, I'd be hesitant to use Safari, Opera, or Firefox. Their security track record isn't really any better than Microsoft's, and the consequent exploitability of these browsers is much greater.
This advantage is not one that is merely hypothetical, either. In common with other vendors, Microsoft assigns a risk rating to every security flaw, and Internet Explorer flaws on Windows Vista and Windows 7 have quite consistently had lower risk ratings than those same flaws on Windows XP. Why? Because the flaws are greatly restricted by the MIC barrier. Microsoft might be biased, but there are security researchers who concur; Charlie Miller, so successful at pwn2own, regards Chrome and IE 8 on Windows 7 as arguably the safest Web browsing platform. It's no coincidence that these are the browsers that use MIC sandboxing. The protection works.
Windows XP supports none of this protection, nor will it ever. Denying XP users access to its latest and greatest browser isn't a bad thing: Windows XP users should be strongly discouraged from using their machines in any hostile environment. Far from saying that IE9 should be supported on XP, we should be demanding that the other three browsers start supporting these security features and dropping XP support, too. These really are features that everybody should be using.

Graphically speaking

The biggest single reason for dropping XP is not, however, security; it's graphics. Internet Explorer 9 already boasts high-performance, hardware-accelerated graphical capabilities. In particular, Microsoft has shown off IE9's SVG capabilities. (SVG is a W3C standard that enables vector graphics to be embedded into webpages.) These graphics can be manipulated using JavaScript, opening up a whole new world of possibilities for standards-compliant webpages—widespread support for SVG might very well allow standard pages to start doing the kinds of tasks that hitherto have required plugins like Flash or Silverlight to accomplish.
SVG support is found in a number of other browsers, but it's not without its problems. One particular issue is performance. SVGs are mostly pretty slow; static images work fine, but even simple animations suffer poor frame rates. The result is that currently, SVG is only really good for static graphics. That's still useful, but there's a world of difference between a static graphics format and a moving, programmable graphics format. To use SVG for Flash-type tasks requires strong animation support.
The way that Microsoft has decided to achieve this is to use Direct2D for all of IE9's rendering. Direct2D is a 2D vector graphics API that's layed on top of Direct3D, and Direct3D is, of course, fully hardware accelerated. Direct2D is in many ways a pretty good match for HTML, CSS, and SVG rendering; unlike Windows' old graphics API, GDI, Direct2D is vector-based (so allows for easy, high-quality scaling and animation), but unlike OpenGL or Direct3D, it offers a simple programmatic interface that's tailored towards 2D graphics, without the complexity that 3D entails.
Similarly, for text, Microsoft is using DirectWrite. Again, the technology is high-performance, hardware-accelerated, and it integrates cleanly with Direct2D.
Is this the only way to do it? Well, no. An enterprising developer could certainly develop a Direct2D-like API (that is, a 2D API that simplified use of, and was accelerated by, OpenGL or Direct3D) by hand for XP, such that it could be used with, say, Direct3D 9c. DirectWrite is a bit trickier, as hardware acceleration of DirectWrite is dependent on some Direct3D 10-level features, but a reasonable approximation could probably be achieved.
But the thing is, Microsoft has already done the development for these APIs, and they're already shipped, supported, and available to third-party developers. They just require an OS that's been released in the past three and a half years (they're built in to Windows 7, and available as a free download for Windows Vista). It's ridiculous to expect the company to just ignore that it's done all this work, and then do it all again (and this time, to do it as something built in to IE, rather than as a general-purpose library available to any developer).
The other compatible option—abandoning 3D acceleration completely—seems even less palatable. It might be possible to create a high-performance, high-quality SVG implementation using nothing other than GDI, but no vendor has managed to do so thus far. It's certainly not clear that it's worth the development effort, given that an effective solution already exists: use Direct2D. Giving up entirely—throwing performance concerns out the window—leaves you with an SVG browser that's useless for animations, and as such, is severely restricted when compared to one that's a workable animation platform.
As large a company as Microsoft is, its resources are nonetheless finite. Moreover, the lack of scalability of software projects is well-known; getting more productivity by throwing more developers at a project is possible, but it takes considerable care, and can't be done willy-nilly. As such, the company absolutely has to choose where it spends its development time. Re-creating Direct2D, or writing a high-performance GDI-based graphics layer just isn't a good use of its resources. Most significantly, it's duplicating work that's already been done on a more modern platform.

Conclusions

Microsoft wants IE9 to be a first-rate browser, and to achieve that, the company is exploiting modern operating system features. That's precisely what Microsoft should be doing—these features have been developed so that developers can use them, and that includes Redmond. XP can't do the things that the new OSes can do. Kernel-enforced protected mode would be essentially impossible to provide on XP; a Direct2D equivalent would be doable (though DirectWrite might not be), but would require substantial effort, and in any case, an application simply shouldn't have to do such things. These are jobs the OS should be doing—jobs that Windows Vista and Windows 7 do, in fact, do. And not it's not just XP and Vista that support these capabilities. 
Courtesy of Compiz and Cairo, Linux has 3D-accelerated desktop composition, and a 3D accelerated 2D vector API; Quartz Extreme and QuartzGL offer the same for Mac OS X. Mac OS X 10.6 also incorporates a security framework offering similar capabilities to Windows' Mandatory Integrity Control, and SELinux has long given Linux equivalent protection. This is not to say that these features are necessarily as widely used as they are in Windows Vista or Windows 7, but these abilities are clearly part of modern operating systems.
The new graphics APIs, coupled with the security advantages of Windows Vista and Windows 7—advantages that all Web users should be demanding that their browsers support, because they're really that good—make it clear that the new OSes have indeed advanced beyond the capabilities of Windows XP. Yes, I acknowledge that XP still does all that it does just as well today as it did when it was new . But I would also say that people should be demanding more of their OS. A 2001 feature set isn't good enough any more. I know it's also popular to claim that Windows Vista, in particular, really offers nothing new. But it does offer new features; it has just taken a while for software to exploit these new abilities. In sum, there are modern operating systems out there, operating systems that are ideal platforms for modern browsers. XP really isn't one of them: it's obsolete.

Sunday, May 8, 2011

What Happens when You Get Shot in the Head



You may or may or may not see it coming, but it doesn't really matter. You're not going to have time to react. Because a bullet can travel at speeds exceeding 3200 feet per second, which is too fast to duck or yell or plead. Hang in there. Taking a cap to the dome means that it will be over faster than a fatal wound anywhere else.
The bullet with your name on it slides past hair, skin and muscle before it smashes into one of eight cranial bones engineered to keep your brain safe. Unfortunately, it's too late for that now. Bullets beat bones. The projectile's entrance into your skull makes easy shrapnel of your calcium, phosphorus, sodium, and collagen case. As a souvenir of the opening, you gain a circular hole rimmed with abraded skin. Distance matters, too: The closer you are to the bullet, the more the gun's smoke and powder could burn your flesh.
But enough about the blemish; the real work happens deeper. The connective tissue and fibrous membranes that act as internal cushioning are split open just before the bullet dives into your cerebrospinal fluid. This fluid serves as a shock absorber. It, with some other structures, allows you to ride roller coasters and join mosh pits without injury. But again, because your 3.4-pound control system is being taken out, this will be your last head bang.
The bullet travels through your brain faster than the speed at which your tissues tear. This means that it's actually pushing tissues out of the way, stretching them beyond their breaking points. When high velocity long arms are responsible, bullets traveling at thousands of feet per second will exit your body before your tissues have a chance to rip.
The ability to process information and solve problems? All gone when the bullet shoves its way through your prefrontal cortex. Your ability to index memories? Gone with your hippocampus. In the bullet's wake, a long temporary cavity is left. When the tearing finally does happen, your tissues will snap back toward the initial opening and overshoot their original position. You know that back and forth thing that happens when you kick one of those springy door stops? Well that's what your tissues do when the shock waves kick them.
Then the passage collapses. The high-speed firearm that produced the bullet created a disruption in your brain 10 times its diameter.
But you're lucky, relatively speaking. If you were shot in the heart, your blood pressure would quickly drop, but it would take 10 to 15 seconds to lose brain function. In that time you could draw your gun, utter last words, or spend some time thinking about your unfortunate situation. But a shot to the brain is different. Your brain stops functioning almost immediately. In just a fraction of a second, you're gone.
Rachel Swaby is a freelance writer living in San Francisco.
Image credit Shutterstock