Magazines, Books and Articles

Saturday, October 8, 2011

IE's legacy browsers - will they ever go away?

“W3C publishes documents that define Web technologies. These documents follow a process designed to promote consensus, fairness, public accountability, and quality. At the end of this process, W3C publishes Recommendations, which are considered Web standards.” from Standards FAQ.
The recommendations are not binding, but as the W3C says: “W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.”
And would make us developer’s creating web applications more productive.
Microsoft, in spite of its large representation in the W3C Working Groups, has been a laggard at proactively adopting these recommendations in its browsers. It has thus gifted us a bunch of what it now calls its ‘legacy browsers’ - IE6, IE7 and IE8, which, whether we like it or not, has still to be supported if our web applications/sites are to reach a greater audience.
A case in point is the CSS Color Module Level 3, one of the modules of CSS3, which was endorsed as a W3C Recommendation on 7 June 2011. The first W3C Working Draft was published on 22 June 1999, it became a W3C Candidate Recommendation on 14 May 2003, back to a W3C Working Draft on 21 July 2008, and a W3C Proposed Recommendation on 28 October 2010.
Tantek Çelik [Microsoft’s representative till 2003] and Brad Pettit [Microsoft’s representative] have been associated with this recommendation right from the first working draft to its endorsement as a recommendation.
In this period, IE went from IE6.0 to IE9.0, Firefox to version 5.0 and Chrome to 12.0. The table below indicates how Firefox and Chrome were early adopters of CSS3, whereas Microsoft waited until IE9.
Table 1
How does Microsoft’s apathy affect us in development? Several ways:
1. IE is the most used web browser.
Figure 1: Web browser usage by country in September 2011 [Source: http://en.wikipedia.org/wiki/Usage_share_of_web_browsers]
2. StatCounter estimates the usage share of web browser for September 2011 as below.
Figure 2 [Source of data: StatCounter]
3. The usage share of various versions of IE for September 2011 is shown below (source: StatCounter)
Figure 3 [Source of data: StatCounter]
Figure 3 means that the usage share of Microsoft’s legacy browsers is 32.72%. This is a large population and cannot be ignored.
So why do we have a such a large population using IE’s legacy browsers? 2 reasons in my opinion.
One: Microsoft bundles IE with its OS. So IE is kind of available out of the box. The fact remains that the majority of Internet users are not techies or geeks like you or me. The browser is just another tool to get their work done. And if it is available out of the box, they’ll use it. They don't care if the IE version they are using is W3C compliant or otherwise, as long as it can get their work done.
IE also has a tight integration with the OS. So while you will be able to install Firefox 7 on Window XP or Window 7, IE9 will work only on Window 7+ (though its legacy browsers can run of this OS). The high usage of IE8 is because it was released for Windows XP, Windows Server 2003, Windows Vista, and is the default browser for Windows 7 and Windows 2008 R2.
Window XP and Window 7 more or less share the honours as per StatCounter’s data of September 2011. This delays adoption of IE9 as the primary browser.
Figure 4 [Source of data: StatCounter]
Two: Figures 1, 2 and 3 indicate internet usage. My experience is that the usage of IE’s legacy browser is even greater in intranets in corporate, business and government - this follows from the fact that the browser is bundled with the OS. These have a large user base and the cost and time of upgrading the OS or the browser is huge.
So, IE’s legacy browsers aren’t going away soon. And we will continue to fret for a while longer about the pain these give us. And because we create applications for the masses, we need to write code to support both these and the modern browsers. Something like this ‘best practice CSS’, even though it will never validate.
.50PercentOpaque
{
    opacity: 0.5;     //W3C CSS Color Module Level 3 compliant browsers
    filter: alpha(opacity=50); //IE legacy browsers
}

Tuesday, September 20, 2011

Why I did not buy a Samsung tab...or an iPad

Last Saturday, I walked into an electronic store to purchase a Tablet, a tab. My preference was for the Samsung 10.1; in the store I also came across the iPad 2. And in this section was also on display an array of laptops.
Why do I need a tab? My usual practice is to surf the net after dinner, possibly read an e-book, catch up with people on Facebook or LinkedIn. I do it on a laptop connected to the net through Wi-Fi, sitting at a table in the living room. And I doze off most of the time. It would be so much more comfortable if I could do all of these propped up in bed, and doze off without a care.
The Samsung 10.1 on display was a 3G+ Wi-Fi 16GB version priced a little over Rs 33,000. Its cover, a necessary accessory, was an extra Rs 3,500 or so. Which meant that the tab would cost me between Rs 36-37K. The 3G+ Wi-Fi 16GB version of the iPad2 with cover was Rs 37,000. The one with 32GB was around Rs 41,000.
At this point I began to wonder if, at this price, it made any sense to buy this device. At a price of Rs 40-45K one could purchase a much, much more powerful laptop with oodles more hard drive space, and do more on it than is currently possible on a tab. [Don’t believe me? Check out the Dell Vostro 3750 which sells for about Rs 41,000 all inclusive.] And of course, any worthwhile laptop can connect to the net through a Wi-Fi connection, or a wireless device from your favorite mobile service provider, or can be tethered from a 3G phone. So what would I miss? The touch screen for one, its light weight, and certainly the convenience of surfing or reading propped up in bed.
Didn’t I know all this before I visited the store? I guess I did, but the heart went like “Let’s get one, let’s get one”; and it was only after we actually fiddled around with the tab that the head asserted “Come on. This gizmo is not worth 37K. A 40K laptop is more value for money any day. Get a hold of yourself. You want to spend 37K so you can surf lying down, and push things around the screen with your finger? Shame on you!” The heart didn’t have an answer.
So I am back at my laptop. The heart is disappointed. And so is the head. This innovation did not match up to expectations; or perhaps it wasn’t created for me.

Sunday, September 11, 2011

Weird Architecture

Sometime back the technical consultant of a customer accused me of having created a ‘weird architecture’ for her project. And this after we had completed an iteration that met agreed goals, work which was commended by the customer as ‘brilliant’.
This was a Web 2.0 application, built on the ASP.NET framework, written in C# and targeted the .NET Framework 3.5, with a SQL Server 2005 database, and hosted on IIS 6.0.
So what was ‘weird’?
The project consisted of several web applications and was deployed on the IIS in the manner shown in Figure 1. A web site was created and web applications were deployed as virtual directories under this web site.
Figure 1
A separate Application Pool was created for this web site, as indicated in Figure 2.
Figure 2
From the above example, Application1 could be accessed from the URL http://www.myapplication.com/Application1 and so on.
In the past few years, I have come across several applications which have been or will be deployed in this manner. What was/is the motivation for deploying the applications in this manner?
We analyse this through a couple of case studies. Read the analysis here.

Friday, July 15, 2011

Great People, Great Teams

Bill Taylor’s post Great People Are Overrated on the HBR Blog Network has generated a lot of heat. His post was triggered by a statement Facebook CEO Mark Zukerburg made in an interview: “Someone who is exceptional in their role is not just a little better than someone who is pretty good,” he said. “They are 100 times better.” It emphasised what Marc Andreessen had told him: “Five great programmers can completely outperform 1,000 mediocre programmers.”
Bill Taylor does not agree with them. He goes on to make a case that a team of average performing individuals is better than high performing superstars, and concludes: “Most of business life isn't really a choice between one great person and 100 pretty good people, but if that is the choice, I'm not sure I'd make the same choice as Mark Zuckerberg — especially if those 100 pretty good people work great as a team.”
The last I saw, his post had received 272 comments, mostly from software practitioners, and the majority pilloried him.

Monday, June 20, 2011

The software devlopment crisis

Some blunt observations on the state of software development practices today, and a way out.
See other Tech-Ed 2011 videos here. Of particular interest to me were those tagged as Development Practices and Architecture.

Saturday, May 28, 2011

Shrink a SQL Server database

When we create a SQL Server database, it is created with a full recovery model. This grows the transaction log (the .ldf file) with every transaction we make on the database. Usually the size of the transaction file is many times more than the .mdf file.
If not maintained, the transaction log would eventually fill all the disk space that is available to the physical log files.
In a development/ testing environment, when the data is not important, the transaction log is not important. It is a good idea to maintain the database with a simple recovery model.
Run this command in the Query Analyser to change the database to a Simple Recovery model:
ALTER DATABASE [<DatabaseName>] SET RECOVERY SIMPLE
Run this command to reduce the size of the .ldf file:
DBCC SHRINKDATABASE ([<DatabaseName>], 20)
When deploying the database to production, turn it back to the Full Recovery model:
ALTER DATABASE [<DatabaseName>] SET RECOVERY FULL
Replace <DatabaseName> with the actual name of the database.
Read more:
MSDN Books Online: Transaction Log Management

Tuesday, May 3, 2011

Why I am bullish about India

A wonderful article by a friend that sums up the soul of India. Read it here.

Friday, April 29, 2011

Bugs!!

From Three Questions About Each Bug You Find
"..Do you sometimes fix a bug, and then find another bug related to the first or to the way you fixed it? When I fix a bug, I ask myself three questions to make sure I've thought carefully about its significance. You can use these questions to improve productivity and quality every time you think you've found and fixed a bug..."
Figure 1
Figure 1 is "The First 'Computer Bug' Moth found trapped between points at Relay # 70, Panel F, of the Mark II Aiken Relay Calculator while it was being tested at Harvard University, 9 September 1947. The operators affixed the moth to the computer log, with the entry: "First actual case of bug being found". They put out the word that they had "debugged" the machine, thus introducing the term "debugging a computer program". In 1988, the log, with the moth still taped by the entry, was in the Naval Surface Warfare Center Computer Museum at Dahlgren, Virginia, which erroneously dated it 9 September 1945. The Smithsonian Institute's National Museum of American History and other sources have the correct date of 9 September 1947 (Object ID: 1994.0191.01). The Harvard Mark II computer was not complete until the summer of 1947..." The First "Computer Bug"

Saturday, March 12, 2011

A project in C++

My son graduates high school this year. One of the subjects he has opted for is Computer Science. The major focus of this course is to provide an understanding of object oriented programming (OOP) through C++.
As a requirement of this course he needs to submit a project that covers OOP, Data File Handling, and Data Structures. His school mandates that they use Turbo C++ 3.0.
The last few months I have been helping him with his project. Check it out here.
One good outcome is it has whetted my appetite for C++, and I intend to devote a large part of whatever spare time I have to it.

Wednesday, January 26, 2011

India: my pride, my shame


Today India completes 61 years as a Sovereign, Democratic and Republic state. We have been an independent nation for 64 years.

In this short span of time India has perfected the art of being corrupt. The CWG scam, the 2G scam, the Adarsh scam, $500 billion dollars of the country’s money stashed away in secret accounts abroad, bureaucrats discovered with Rs.300 crore stashed in suitcases at their home - these are the ones that are being talked about now. There are many from the past that we have forgotten. More importantly, we don’t remember anyone of any importance being ever punished.

With such a capacity to indulge in it, it is no surprise that corruption is so pervasive in our society, even soiling venerated institutions like the Armed Forces and the Supreme Court. We don’t need Transparency International’s studies to tell us we are rotten.

As a nation we need stalwarts in public life to look up to. The picture below defines stalwarts. We don’t have people of their vision, stature and influence anymore; however, we are desperate for them, gauging by our admiration for people like Dr. Abdul Kalam and Narayana Murthy. We need more and more people like them; we need their influence over us.


[Photo source: http://en.wikipedia.org/wiki/File:Gandhi_and_Bose.jpg. Don’t know who they are? See here.]

India has many good things going for it. Game-changing activities in the last 6, mostly in the last 3, decades in areas as varied as computerisation of railway reservations, telecom, low cost airlines, software and manufacturing, space research and technology, media, freeing the economy, strengthening the Election Commission, have taken our nation forward. These have been achieved by ordinary citizens doing extraordinary things without funfair, helped by some good thinking by those in government.

We need to do more: in infrastructure, providing quality education, improving agriculture, maintaining the unity without diluting the diversity and, our eternal bug bear, eradicating poverty. And there are many, with insight and zeal, already doing their bit in bringing about these changes. The scale is huge, given India’s diversity, size and population - and this all pervasive corruption makes the work tougher.

To be counted as an advanced nation, a nation truly respected, we must eradicate corruption from our midst.