Internet Explorer 8 and Postel’s Law
Posted on March 5, 2008 | Filed Under Software Design
For those of you who aren’t familiar with Poestal’s Law, sometimes also known as the robustness principle, it’s generally phrased somewhat like this in the computing industry:
“Be liberal in what you accept, and conservative in what you send”
Generally speaking, this is a great principle to follow in the field of software design, particularly with respect to distributed systems. However, there are some very obvious exceptions that we as an industry have discovered the hard way.
The most obvious of these dates back to the browser wars in the late 1990s. Before then, we realized that writing web pages was going to be difficult for non-technical people. We thought that by allowing users to write invalid HTML and trying to render it as the user had intended, we would make writing web pages easier for non-technical users. And for a very brief period of time, we were right.
Unfortunately, the browser wars quickly changed that. No two browsers had implemented the same strategy for rendering malformed HTML. In fact, no two browsers had even implemented the same strategy for rendering well-formed HTML. Technical users now had to test their content on multiple browsers to make sure it looked as expected, in the process hacking around numerous browser shortcomings. Non-technical users, on the other hand, just tested on their browser of choice. When they’d reached a point where it looked fine for them, they assumed it would work for everyone else. They were often wrong.
Now the software developers who originally decided to adopt Poestal’s Law realized the extent of their mistake. By providing a quirks mode as the default rendering mode, they had given the impression that crazy HTML was perfectly valid, and they couldn’t change this behaviour without breaking a large number of web pages. If they had originally used a stricter mode as the default, there would be far fewer web pages broken by a future change.
So what does this have to do with Internet Explorer 8? Rather a lot. The IE team has just announced that a standards compliant mode will be the default. This is a change from their earlier plan to use a backwards-compatible quirks mode as the default. As far as I’m concerned, this is the most exciting news I’ve heard about IE 8, much more exciting than the recent press coverage about Acid 2 support.
This will break a lot of websites, and I’m sure it will annoy the hell out of many users, at least at first. Even bearing all that in mind, it’s still undoubtedly the right thing for Microsoft to do. Last spring, I compared maintaining backwards compatibility to running a race wearing a lead vest. As far as I’m concerned, IE has taken a giant step towards reducing their backwards compatibility cost, and I applaud their efforts.
I hope that this is a taste of things to come.
About this Post
Permalink | Trackback |
|
Print This Article | 1 Comment
Success is Obsession
Posted on February 13, 2008 | Filed Under Personal Success
I started this post near the end of my fall internship at Microsoft, and never got around to finishing it. Yesterday’s Macroeconomics lecture by Larry Smith dealt with similar themes, and because he’s such a great speaker, and I was finally inspired to finish the post.
What personality traits correlate with future success? Some people claim it’s organization, time management, intelligence, people skills, or one of any number of other qualities.
Yesterday, in lecture, I was introduced to John Maynard Keynes’ answer, “animal spirits”. He doesn’t literally mean animal spirits, he’s talking about qualities like ambition, passion:
“Most, probably, of our decisions to do something positive, the full consequences of which will be drawn out over many days to come, can only be taken as the result of animal spirits—a spontaneous urge to action rather than inaction, and not as the outcome of a weighted average of quantitative benefits multiplied by quantitative probabilities.”
History supports this idea. When you look back at the history of the world, massive technological and economic growth has always been coupled with high levels of ambition and passion within societies. Growth and success are typically driven by desire and human nature, not logic or calculation.
Hearing about this in lecture today reminded me of something Douglas Purdy told me near the end of my Microsoft internship, in a conversation that lead to my initial draft of this post. He told me that the quality he looks for in people is passion, or as he put it, people who weren’t afraid to be consumed in the fires of their creativity.
I couldn’t agree with him more. All the people I respect, the people I look up to, have had at least a spark of this quality in them. They’re the ones motivated by intrinsic factors over money, by cool ideas and the process of creating something new.
There’s a seed of an idea that’s been growing in me for the past several months that’s closely related to this topic. Success may be all about ambition and passion, but what about those two qualities? I think that passion and ambition, are both just kinds of obsession. And, because these are mental qualities, we have a degree of control over them.
If you can learn to create obsession in yourself, then you can be passionate or ambitious about anything. If you can reign in your obsessions, you’ll be able to avoid burning out, and take an occasional pause for reflection.
The same idea holds for leadership. Successful leadership is all about guiding and controlling other people’s obsessions. I think that this is what lies at the heart of transformation leadership. History’s greatest leaders have all been able to inspire their followers to incredible heights of ambition and passion. Just look at Mahatma Gandhi, Abraham Lincoln, and Winston Churchill, and how they succeeded in inspiring their followers. If they can create these qualities in others, there’s no reason we can’t create them in ourselves.
Don’t wait for your passion to find you, get out there and create it in yourself!
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
Updating Copyright Law for the Digital Age
Posted on December 2, 2007 | Filed Under Intellectual Property, Software Development
There’s been lots of talk recently about Canada’s soon-to-be-proposed copyright law, and like many people, I’m annoyed. Of course, I’m not really worried. This sort of law has been proposed in Canada in the past, and has been quickly shot down. I agree that we need to fix our copyright laws, but nobody in their right mind thinks the DMCA is the right direction to be heading.
Don’t get me wrong. I’m not one of the “intellectual property is evil” zealots. Intellectual property laws exist for a very good reason. These laws help society by providing an incentive for content production, by giving producers a temporary license to exploit it for profit. As somebody who enjoys content, I think this is a wonderful idea.
Unfortunately, current IP laws are broken in many different ways. I’m not going to bother listing them here, because it’s already been explained many times. I’m more interested in the underlying causes of these problems, one of which is that none of this legislation was created with any understanding for digital media or the computer industry. For example, without any requirement to eventually release source code, software companies are free to exploit most of their intellectual property indefinitely.
In an attempt to fix this, clever people came up with the idea of free software, and decided to wage war on the commercial software industry. The problem is that no matter who wins this war, society loses. If commercial software wins, we’re stuck with perpetual exploitation of intellectual property, and if free software wins, content producers lose much of their incentive to innovate.
Both sides will try to tell you that their solution is less harmful for society. I don’t know which side is right, and frankly, I don’t care. This is a false dichotomy. The right way to solve this problem is to fix intellectual property laws, not fight over which way of exploiting existing laws is better. Unfortunately, this is a problem that can’t be fixed until politicians start to understand the digital age. Lobbying doesn’t seem to be cutting it, which means that people from our industry are going to have to go into politics.
I know none of us want to do this, but let’s face it. It has to be done.
We’ll all appreciate your sacrifice for the greater good.
About this Post
Permalink | Trackback |
|
Print This Article | 1 Comment
Domain Migration
Posted on December 1, 2007 | Filed Under Hosting
I’ve finally gotten around to fixing the number one complaint I’ve received regarding this website. That’s right, instead of a crazy and impossible to spell domain name, it’s now going to be hosted at something made up of real words.
I’ve set up the old domain to forward transparently to the new one, so there should be minimal problems associated with the move.
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
Server Migration
Posted on September 24, 2007 | Filed Under Hosting
The server hosting this website is going to be upgraded. As a result, I’m going to be migrating everything over to a new server over the next week. The site may go down temporarily as a result.
If you can read this, you’re connecting to the new server.
Update: Everything has been moved to the new server, but there are still several minor issues to be resolved before everything starts working again.
Update: The gallery is back online, along with the published git repositories.
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
Back at Microsoft
Posted on September 16, 2007 | Filed Under Microsoft, University
I’m back at Microsoft for another internship, and the stuff they’ve got me working on sounds even more interesting than my project during the last internship. I’m very excited to be back, and to actually have free time in the evenings for a change. It was a very busy school term, and I didn’t have much time to keep up with this blog, but now that I (theoretically) have more free time, I’ll be sure to update it more frequently.
I received good marks in all of my courses, with the exception of Computer Security, which I aced. The project for Software Design and Architecture also went quite well. All in all, it was a good term.
Since the end of exams, I’ve had a bunch of cool experiences that I’ll hopefully write about later. I’m currently trying out Ubuntu’s Gutsy Gibbon, and a bug in f-spot, my preferred photo management application, hasn’t yet been fixed. I’ll post my photos online as soon as that bug is resolved, or I get annoyed enough to help fix it or switch to another distribution.
Update: The bug has been fixed.
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
Impressions of Microsoft
Posted on May 27, 2007 | Filed Under Microsoft, Software Development, Work
My internship at Microsoft as a Software Design Engineer ended about a month ago, and now that I’ve had a chance to let my thoughts and impressions settle, I’d like to share some of them with you. In many ways, working at Microsoft was exactly what I’d expected, but in many other ways it was completely different.
Probably the most unexpected thing I experienced was the high degree of autonomy I had during my internship. At the start of the internship, my team gave me a high level description of what I’d be developing, and introduced the the tools, frameworks and technologies I’d need to use. Then they had me propose a feature set and general design for the project, and let me loose to work on it. I’m not sure how similar this experience is to what other interns typically experience, but I really enjoyed it.
Another thing about Microsoft that surprised me was how vertical their management structure was. In hindsight it makes perfect sense. Microsoft is such a big company that they need to have lots of layers of management, or nobody will be able to keep track of their direct reports. Not to mention that with thousands of software developers employed, you have to provide a variety of career paths or you won’t keep your employees for an extended period of time. This has a side effect of insulating developers from upper management and other developers, to a degree. In many ways, this is a great thing to have, because it helps to minimize sources of potential distraction. The unfortunate consequence of this is that it’s very hard to get a feeling for the corporate culture in other areas of the company, areas where your chosen career path might eventually lead.
I expected Microsoft to be a monoculture, and it was, if not to the degree I had anticipated. I think this is probably one of Microsoft’s biggest weaknesses. In my experience, making difficult or innovative design choices gets easier if you’re familiar with different solution approaches in the problem domain, particularly ones that haven’t caught on widely yet and ones that have failed in the past. Personally, I think it’s far more important for employers to consider a potential employee’s exposure to a variety of development methodologies, user interface styles and programming paradigms than it is to require proficiency in the latest language of the month. It’s hard enough to be innovative if you’re already familiar with the bleeding edge of technology.
Finally, I was surprised by how much design effort was focused on avoiding the future need to break backwards compatibility. Personally, I’m of the opinion that breaking backwards compatibility isn’t something you should try to avoid; rather, you should try to avoid introducing any bugs into your code at all stages of the software development lifecycle. I can understand why software developers worry about it so much, because breaking backwards compatibility can annoy your users and maybe even open you up to litigation. The way I look at it, trying to avoid breaking backwards compatibility discourages and slows innovation and improvement. It’s like taking a sprinter, and making him wear a lead vest. Sure, he’s less likely to be shot, but if people are shooting at him it’s probably better to address that underlying problem directly.
I still think Microsoft has a long way to go in improving their software, but they’re surprisingly aware of their problem areas and are continuing to make progress. As far as I’m concerned, that’s fine; they certainly aren’t alone in having room for improvement. The field of software development is still in its infancy, so it’s not at all surprising that there’s lots of room left for improvement.
About this Post
Permalink | Trackback |
|
Print This Article | 1 Comment
Help with Translation
Posted on May 14, 2007 | Filed Under Hobbies, Photography
Once upon a time, my father was given a piece of Japanese calligraphy by a family friend. He’s since forgotten what it means. Does anyone know what it says?
On another note, I’ve figured out how to get Gallery to put all my reasonably good photographs in a single album.
Update: Here’s a translation, courtesy of Jenny:
Written in Chinese characters, it says “Setsu-getsu-ka”, which when literally translated means “Snow, Moon, Flower”. However it is a Japanese traditional saying synonymous for the four season’s greatest things. Its origin can be found in China. A notable Chinese poet, Bai Ju-Yi (772-846 AD) in Tang dynasty (618-907 AD) first used this phrase in his poem, which was well-known by the Japanese aristocrats of the Heian period (794-1192 AD).
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
First Week Back at School
Posted on May 3, 2007 | Filed Under University
I’m nearly done the first week back at school, and so far I’ve been very pleasently surprised. Two of my professors look like they’ll be very good, and two of the others have quite a bit of potential. If things go well, this will be a record breaking semester in terms of professor quality. It’s also looking like this term will be more focused on software development than on writing, which is also a nice change from last semester. At any rate, I’m actually looking forward to it.
I’ve also started my workterm report, although I probably haven’t written as much of it as I should have by this point. On the bright side, I don’t think my topic will be too hard to write about, and it’ll all be over one way or the other by Tuesday next week
In case anyone else in my Software Engineering program happens to read this, I use a modified version of Simon Law’s uw-wkrpt LaTeX template for my workterm reports. I’ve uploaded a copy of my template, in case it turns out to be of use to anyone else.
About this Post
Permalink | Trackback |
|
Print This Article | Leave a Comment
Back to School
Posted on April 27, 2007 | Filed Under University
Today was the last day of my internship, and I’ve got to say, it’s been a great experience. It’s been very interesting to see firsthand what Microsoft is like from the inside. Not to mention that the work has been interesting and challenging.
Unfortunately, it’s time for me to go back to school for another four months. I fly back to Ontario on Sunday, and the first day of classes is Tuesday. I also need to get started on writing my workterm report, although I think the topic I’ve picked should be fairly easy to write about.
About this Post
Permalink | Trackback |
|
Print This Article | 1 Comment
