Find Me Online

HTML5 Powered with CSS3 / Styling, and Semantics

Managing The Unmanageable

Over the past 2 months or so, 2 stories came out where Microsoft didn’t look too good. The first time around, the company was accused of stealing open source code for its USB/DVD Download Tool for Windows 7. Paul Thurrott had the story in early november on his SuperSite for Windows. In that case, we later learned that a contractor for Microsoft had built the tool using open source components without telling anyone. The company later apologized and will reissue the software shortly with full source code to comply with the GPL.

Today, Techcrunch has another similar story. We do not yet have all the details, but it seems like Microsoft China decided to build itself a Twitter competitor for the local market to compete with the small (but popular) startup Plurk. So what did they do? According to the report on Techcrunch, they copied the design almost verbatim and then copied many of the code too. I mean, why stop at the design?

Now it’s obvious Microsoft inc. did not issue a directive to all employees to start stealing code left and right. The problem here though, is that it’s the kind of thing that’s really hard to manage when you have over 35 000 employees in several countries around the world. God, when I managed my team of 6-8 programmers here in Montreal, it was sometime hard to see if one of them wasn’t screwing things up, so it’s easy to imagine managing 35 000 employees in this regard being incredibly hard.

Interestingly, Apple has not yet been accused of this kind of thing, so perhaps the company does manage to do a better QA or code revision on everything that’s sent out? There are pluses and minuses to mandatory code reviews (and certainly, many programmers dislike the idea) but this is one area where perhaps it would help. Then again, Microsoft most certainly does code review for its main products (Windows, Office, etc.), but how do you ensure everything is A-OK in China where some mid-level manager might just decide using a competitor’s code is good enough. Deadline, you know?

The scary part as I said is that in my 12 years as a programmer, lead developer, team leader and tech leader for various businesses, I’ve seen similar problem creep up from time to time in what can only describe as very small projects. How do you manage the unmanageable? Maybe the solution is to simple accept that inevitability and react once you get caught.

Fix Outlook!

As both a software and Web developer, I have two very different opinions of Microsoft. On  the one hand, Microsoft creates fantastic developer tools like Visual Studio and their .Net platform is quite nice. As a Web developer though, you have IE, a browser used by the vast majority of the world but unfortunately also the least standard compatible browser and a major pain when it comes to coding standard compliant web sites.

For some time now, the folks at the Email Standards Project have been working to help Web developers  understand the limitations of the various email clients with regards to HTML rendering. That site is quite useful by the way, but this is not the reason of this blog post.

Today I want to talk about Fix Outlook!, an initiative by the Email Standards Project to convince Microsoft not to use the Word rendering engine to render HTML emails in Outlook for Office 2010. If you’ve ever designed an HTML email campaign for a client, you know how painful it can be to test all the different clients and by the look of it, Outlook 2010 will make it even worse.  Go on the Fix Outlook! site and have a look at the same email rendered in Outlook 2000 and Outlook 2010 to understand the extent of the damage. By using Word to render the email, Outlook basically loses most of its CSS support.

What’s sad here is that this isn’t some small piece of unknown shareware, it’s a major new version of a software that will probably be used by tens of not hundreds of millions of users around the world for several years. Just like a new version of Internet Explorer, this new version of Outlook will have a major impact on what’s possible and what’s not possible with HTML emails in the near future.

Please support the Fix Outlook campaign by tweeting. Visit the site for more information. Let’s hope Microsoft will get the message and will use a real HTML rendering engine for its email client.

If only they had such a thing in house…

Go, Go, Go! (or don’t)

Google did something rather weird last week. Well Ok, it did 2 weird things, the first of which I’ll cover here while the other (SPDY) will have its own post soon. Last week, Google decided to release a new programming language to the world : Go.

Now, unlike frameworks or libraries, a major new programming language is not something we see everyday. The last one of note for me was perhaps C# by Microsoft at the beginning of the decade. Before that, Java is a relatively recent language (1995), the same year Ruby first appeared although for many of us Web developers, Ruby wasn’t of much use until recently with the release of Rails.

Go Programming LanguageUnlike Microsoft with C#, Google has released Go with very few libraries to go along with it. The concepts behind the language are not bad: as with anything, being able to start from scratch is often beneficial. The problem with it right now is the lack of libraries or bindings to any popular systems. Using Go to code a Windows or Mac OS X application could be nice, but Google made no bindings to the Win32, .Net, Cocoa or Qt libraries. Worst still for Windows users, the language is not even working there yet.

As is often the case with Google, the core of Go is nice, but it lacks a little bit of polish. When Microsoft released C#, it also released Visual C# to go along with it and made the entire .NET framework work with it. With Go, google did something that’s both right and very wrong: it released a GCC-based compiler and linker. It makes a long of sense because you have a lot of programmers on both Linux and OS X that are familiar with the compiler and know how to create Makefiles, but at the same time, your brand shiny new language, that aims to define a modern, efficient programming language for today’s threaded, multi-processor world is stuck with a toolset designed 20 years ago.

I don’t think Go is bad and I’m glad Google is trying something new but I wish the company had waited a bit and had polished up its stuff before releasing it. Unlike a consumer-facing app like Chrome, releasing it early doesn’t give Google a whole lot of advantages. As it is, if you’re on OS X or Linux, give it a shot. You’ll probably do like I did and create a few little demo app, think it’s neat and forget about it for now until it matures a bit.

Still, with the included packages (libraries), Go is a great language to create command-line utilities and “scripts” (although Go is a compiled language).