Archive for the 'Microsoft Windows' Category

Mongol Bichig, or why Microsoft Internet Explorer is better than Firefox, Chrome and Opera

After writing this post I found out that Google Chrome, in fact, does support vertical Mongolian text.

The title of this post is designed to catch the eye. Microsoft Internet Explorer is not better than Firefox, Chrome and Opera – it’s worse than them in every imaginable regard.

Except one: the support for Mongol Bichig, the vertical Mongolian script.

Text in vertical Mongolian

Text in vertical Mongolian

Mongolian script is unique: its letters are connected, similarly to Arabic and its lines are written vertically. About three million Mongols in the independent republic of Mongolia use this script mostly for historical purposes, and use the Cyrillic script in their daily life, but the classical vertical script is the regular script for nearly six million Mongols in China – that’s about twice as much people.

The only browser that is able to display the vertical Mongolian script is Microsoft Internet Explorer. I don’t really know why Microsoft bothered to do it; maybe because the government of the People’s Republic of China demanded it. If that is true, then i salute the government of the People’s Republic of China. And i definitely salute Microsoft. I don’t like Microsoft’s insistence on keeping their code proprietary, but pioneering the support for this script, or any other, is praiseworthy.

I am very sad that at this time i cannot recommend my Mongolian friends to use my favorite browser, Firefox, or other modern browsers such as Google Chrome and Opera. For all their modernity, speed, feature richness and standards compliance, they are useless to over six million people who want to read and write in the vertical Mongolian script. At most, these browsers can display the script horizontally and with some letters incorrectly rendered. This also means that the only useful operating system for these people is Microsoft Windows.

One explanation that i heard for not supporting the vertical Mongolian script is that the CSS writing modes standard is not completely defined. This is actually a good and even noble reason, but when the most basic ability to read a language is in question, experimental support is better than no support.

So, which modern free browser will be the first to support the Mongolian script? I guess that it will be Firefox, given its excellent track record in supporting Unicode, and that Google Chrome will follow it after three years or so. But if Chrome developers surprise me and get there first, i’ll be just as happy. In any case, i am waiting impatiently, along with more than six million Mongols.

* * *

A completely unrelated postscript, intentionally hidden here, feel free to stop reading now: This morning i woke up to find that my Planet Mozilla feed was filled with reactions to a post by Gervaise Markham a.k.a. Gerv, in which he advocated keeping marriage defined as a union between a man and a woman, essentially opposing gay marriage. A lot of people were angry that anti-gay comments appear in a Mozilla-related feed and a lot of people were angry that anything off-topic appears there. Some people supported Gerv in different ways.

Gerv is a very well-known and very talented Mozilla programmer, and also a devout Christian. His blog is called “Hacking for Christ”. There’s nothing weird or wrong about it – there are many other excellent Christian hackers, like Perl’s Larry Wall and Jonathan Worthington and Mozilla’s Jonathan Kew. Gerv’s comment wasn’t particularly hateful; as it often goes, it focused on the legal side of things. Gerv is also an unusually charming person; i had the pleasure to meet him in Berlin.

All that said, i support gay marriage, i don’t support Gerv’s comment and i think that he shouldn’t have post it that way. But once he did, hey – water under the bridge. I care much more about his contributions to Mozilla’s code than about his social, legal and religious opinions.

And the loveliest part of it all is that in one the many comments to his post, i found a link to the play “8”, about the fight for recognizing gay marriage in California. On one hand, it’s a very well played PR stunt, with the highest league stars such as like Brad Pitt, George Clooney, Martin Sheen, Jamie Lee Curtis, Kevin Bacon, Yeardley Smith, John C. Reilly and George Takei. On the other hand, it’s actually worth watching. If this is what came out of that poorly placed blog post, then i’m not complaining.



It’s rather weird that i’ll complain about Windows Update, since i’m kinda anti-Windows in the first place, but why do Microsoft put a fugly JPG at the top of the Windows Update page? Haven’t they heard of PNG?

Welcome to Microsoft Update - notice the fugly pixels around the letters

Welcome to Microsoft Update - notice the fugly pixels around the letters


I am living in a four-story house. In front of my window1 there’s a fifteen-story house and it blocks the view.

It basically sucks, but a violinist lives in that house, and she2 practices all day long, which is very pleasant.

1 I wrote “Window” first. Why would i do such a thing? :)

2 Does this make me sexist?


One of the things that i was happy to learn in my last round of job interviews is that although C# and the .NET environment may seem like the most important thing ever happened to the software development world, it is actually not the case.

Don’t get me wrong: C# and .NET are good technologies. They are well-designed, and ultimately they make it easier for the programmer to write good software for the benefit of the end user. I even respect Microsoft’s boldness to innovate instead of sticking to rusty technologies such as COM and Windows API. Going even further, Microsoft is working on some very interesting new technologies that combine functional programming paradigms with the very object-oriented .NET – , F# and others; of course, i salute this. My only concern with .NET is portability – .NET development environment is good, and the software created with it may also be good, but they are all bricks from which a Microsoft-only world is built. (There are projects aimed at resolving this, such as Mono and DotGNU, but currently the solution they offer is very partial.)

But some – well, probably most people and companies don’t like to save time and money and to expand their user base by making their software portable and they think that working with Windows is just enough. Well, guess what – i am not going to work at such places. Some people are so deeply in love with .NET, that they won’t stand any criticism; if they see a job candidate that disrespects .NET, they will dismiss him immediately. “What?? You disrespect Microsoft, Windows and the Holy of Holies – .NET? Are you serious?!” Yes – it happens, not in these exact words, but it is implied. It happens, but not always. The good news are that there are people who don’t think that C# is the Holy Grail or even outright dislike it. At some interviews i was careful not to say anything bad about C#, not because i was scared, but because i just didn’t want to offend people. It’s a culture thing.

Again – i worked with C# a lot in the last year and i don’t think that it is an inherently bad language, and i even came to like it. But i am just glad to see that there are enough people in the industry, who exercise their right to think different.

The moral of the story: Diversity is not dead yet, and it is good that it is so.

People Speaking – Win

— “I would like to offer you a job developing testing tools. We need someone who has experience in C# and WinForms.”

— “Ehh … OK.”

— “Is it something that can interest you?”

— “Yeah, possibly …”

— “So when can you come to an interview?”

— “Where is it?

— “In Herzliya.”

— “Hmm … Tell me please – is it all Windows?”

— “No … it’s … developing testing tools … We need someone who has experience in C# and WinForms …”

— “Yes, but that sounds like the job is nothing but Windows.”

— “Well … there’s the part of developing testing tools … it’s WinForms.”

— “Yeah, but the ‘Win’ part of ‘WinForms’ means ‘Windows’.”

— “Oh. I see.”

— “And there’s no Linux there? Or Java? Or some special kind of hardware?”

— “No, at least not now.”

— “OK, thanks, but i think that it’s not for me.”

What an amazing feeling it was to say that.

S-P-A-C-E-D, spaced out

For the first time in my programming career i discovered a language which can have whitespace in identifier names.

Guess which language it is?

Hint: I learned it – or so i thought – long before Pascal, C and Perl, but a bit after GW-BASIC.

It’s the MS-DOS batch file language.

In all the languages i know, variable assignment operator is = or something similar (it’s := in Pascal). Any number of spaces are allowed before and after it; Curiously, in Microsoft’s own QBasic it is encouraged and even automatically inserted if you try to write something like A=42.

But in DOS batch files, if you write this:

SET A = 42

You’ll get nothing.

But this will work:

SET A = 42

And guess what, it will print ‘ 42‘, with a space in the beginning.

Wow, wow, wow, wow, unbelievable.


This is not for computer people only, although it might look like that in the beginning.

You try to install a program on a Windows PC. This application depends on functioning IIS – Microsoft HTTP server software.

When you try to start IIS, you get an error – “Unexpected error 0x8ffe2740”. This is not very helpful (talk about Microsoft’s user-friendliness…), so you search the web with this weird error message and you find that it means that some other application is occupying port 80. Port 80 is the standard HTTP port. But what is it?

Of course you can use cool command-line network monitoring tools and find the offending process. But for me a quick look on the PC screen was just enough: In the tray there was the familiar icon for Apache. I am saying “familiar”, because Apache is the main competitor of Microsoft’s IIS – it is the famous open-source HTTP server, on which most of the World Wide Web runs. So of course Apache was occupying port 80. The icon, appropriately for Apache is a feather:

Apache logo

Now why do i say “appropriately”? Because Apache is one of the Native American nations and Native Americans are known for putting feathers in their head. It makes sense to me and it makes it easy for me to remember that Apache’s icon is a feather.

Apparently, despite the fact that Apache is a very popular web server software and despite the fact that it’s quite easy to remember its icon, many people with whom i work didn’t see it immediately. I swear that i am not bragging – but i am quite surprised.

That’s how my mind works. I am not a genius, but i do try not to strain my head remembering things that make sense – if something makes sense, it just pops up by itself.