Posts Tagged ‘ microsoft

Wolfram|Alpha

If you’ve never heard of it before, there is a new kind of search engine in town. Its name is Wolfram|Alpha and it is brought to you by the guys who made Mathematica. It uses the Mathematica engine and some magical algorithms to answer your search queries. Now, none of this scares me the least but. But when computers acquire a sense of humour, I am not so amused.

Try some of these queries on the engine (you can just click on it).

Who cares about Microsoft Bing.

Office Incompatibility

I had to fill in a few forms today. The good thing was, while the forms came in a Microsoft Word format, I had Microsoft Office to open them up with. Unfortunately, when I opened up the forms, they looked very different from what they were supposed to look as the formatting was all out of place. The problem turned out to be because the font used was missing from my system.

First thing I did was to look around for the font. Turns out that the “Sabon” font is a proprietary font. I would need to pay about US$30 for the privilege of downloading the font. That was just plain crazy. So, I tried replacing the font with an equivalent Serif font but it still wouldn’t format correctly. I even tried shrinking the size so that the form wouldn’t spill over onto the next page but to no avail.

Finally, I had to download the PDF version of the forms, print them out, fill them up by hand, and scan the forms back into the computer before emailing them in. How silly is that? Unfortunately, they don’t have PDF form versions. Otherwise, I would have used that from the start.

What this episode taught me was that there were little ways in which Microsoft Office documents would bite us. Even on Windows, there would be formatting issues. This has always been the only warning that I gave my friends about OpenOffice – formatting issues. Turns out that the formatting issues were probably due to the use of proprietary fonts too.

People should just stick with open-source fonts. There are quite a number of them around and they look good! [like the one pictured]

Going back to Linux

After spending the last month working on a Windows machine, I have decided to go back to using Linux in the office. If I have to use it under virtualisation, so be it. I have come to understand why trying to do development work on a Windows machine is a joke. Seriously, you won’t understand it until you have actually used Linux for real-world embedded development.

Let us just talk about this from an embedded developer perspective.

One word – Emacs. There are few integrated development environments that are as featured as Emacs. It has everything under the hood and more in its back pocket. Just like a woman, it takes a while to learn all the right moves but once that’s mastered, life will be good. Try comparing Eclipse or the piece-of-shit CodeWarrior that I have to use at work is laughable. While notepad++ shows some promise, it is but an infant compared to Emacs.

Two words – Code management. Windows does not come with any sort of code management system. Therefore, developers have developed a lot of bad habits over the years when it comes to working with code revisions such as the multiple-folder technique. Instead, Linux comes with a host of code management tools from the venerable RCS to the most modern Git. Once you have experienced the beauty that is distributed code management, it is difficult to go back to anything inferior.

Three words – Support Tools and Utilities. When you experience some trouble with some piece of code, you need to have a lot of support to solve it. Windows does not come with anything. For example, when you have some really cryptic C code that you need to understand, there’s always cdecl on Linux and nothing equivalent on Windows. Doxygen is truly a life-saver when it comes to the tedious work of generating mundane documentation, which every engineer hates to do.

Obviously, this just applies to a specific area. I’ve heard a lot of good things about Microsoft’s own developer tools. Unfortunately, those are not universal and are not suitable for use in embedded development. Maybe this is an area that Microsoft should take care of. However, they seem to have little incentive to do so as few embedded systems are bloated enough to run Windows.

Oracle-Sun

The tech industry has been buzzing with this corporate takeover merger for the last few days. In case the rest of you have not yet heard, or do not yet care, the Sun has been bought up by the Oracle. Sun used to give us the ‘dot’ in dot-com but they have always been a company with great products, but bad management. The new entity will give us another giant in the computing industry.

Let us start with Sun. Sun has an amazing array of technical products. Their UltraSPARC processors are the fastest and lowest power machines operating in the server space. Imagine having a processor that can execute 64 parallel threads in hardware. Now, we are talking some serious computing power. No serious business can do without having Sun machines as their backbone. This is particularly true in the telecommunications industry.

Then, right on top of all that hardware, Sun has Solaris – a mature Unix operating system. Hence, Oracle would be able to optimise and deploy their software on top of their own OS, without depending on either Linux or Windows. Who is to say that Oracle would not actually build new instructions and hardware capabilities into the next-gen UltraSPARC processors to give them an edge over the rest in hardware database acceleration. (hint: If anyone from Oracle is reading this, my PhD thesis is on hardware search acceleration!!)

Next, on top of this operating system layer, Oracle can now host their ever powerful database application. Their databases are universally recognised as the de-facto standard in corporate relational database management systems. There are many other products that compete with them, including from IBM, Microsoft and even some open source offerings. However, Oracle has always stayed ahead of the rest, due to effective marketing and management.

That is where the difference in their culture lies. Oracle has never actually had any technically superior products. However, they had good management. So, if they carefully crafted a path to integrate the best of Sun products with their management practices, they would create a new behemoth that can rival IBM, Microsoft and every other major name in IT.

All hail our new Oracle-Sun overlords!

MyID.is

MyID.is

This is one of those ideas that made me go: golly, why didn’t I think of that? It solves a very fundamental problem in this world, is dirt cheap and is extremely easy to develop and deploy.

MyID is an OpenID provider. I have written about OpenID in the past. It is a platform for on-line identity authentication. It is used by a large number of people, including Google and Yahoo (Microsoft is looking into it).

Most importantly, the implementation is extremely simple and there are already numerous pieces of software written for it. So, developing an OpenID provider is something that should just take minutes to do.

However, MyID.is put a twist on it by tying the on-line identities to real-world identities. So, you need to prove whom you pretend to be on-line. It does this by tying everything down to a credit card, ala Paypal.

When you register, you need to provide it with your name, a credit card number and a real-world address. They then charge you a random nominal fee of between €2 to €5 and they mail you a secret key via snail mail. To verify your identity, you need to enter the secret key and the amount they charged you on your card.

In one fell swoop, they have just tied your on-line identity to your credit card. This means that you can prove who you say you are and if necessary, criminals can be tracked down.

Obviously, there are privacy issues involved but users are not giving out more information than we normally do whenever we go shopping online. Since they use OpenID, the on-line identity can be immediately used on numerous sites.

Of course, there is no reason why their business model cannot be replicated. Barrier to entry is virtually non-existent. All that you’ll need is a cheap server, the free OpenID software, a credit-card processor and a printer (for printing the secret keys). Nothing could be simpler plus it can all be automated.

Anyone interested in starting one up themselves?

PS: My head has already churned out a number of value-added services that can be tacked onto this. Golly!

BSD Windows

FreeBSD mascotI had this short conversation with several people the other day, where I mentioned about Windows. I wondered why Microsoft has not decided to build the next version of Windows on the BSD kernel. Besides the sin of pride, I really couldn’t think of any technical reason not to.

BSD is a distribution of Unix created by UC Berkeley. Unix is an operating system developed in 1969. Through the years, it has evolved into an extremely secure and stable OS. People who use real computers (not toy computers) use variants of Unix. There is no technical reason why Microsoft cannot just use BSD and rid the whole world of numerous security problems. A company that has finally decided to do exactly that, after going their own way, is Apple. Just in case you didn’t know, Apple uses a BSD operating system. They then designed a ultra cool user interface on top of it. Microsoft could always copy Apple – they do it all the time anyway.

  1. Backwards Compatibility
    Some people may think that Microsoft needs to maintain backwards compatibility. Therefore, it cannot make a major architectural change like that. I laugh inside whenever I hear this. However, most people are not familiar with the Church-Turing thesis and therefore, I must forgive them. Microsoft is not the scion of backwards compatibility. They often break compatibility within their own products.

    Apple has shown us that backwards compatibility is certainly possible. Few people realise that you can run Apple II software on a modern Mac. This is ultimate backwards compatibility. The Apple used to use a Motorola 68K microprocessor, then moved onto the IBM PowerPC before finally turning to Intel x86 today. Apple has shown that not only is backwards compatibility possible, even software written for an entirely different computer architecture can be kept compatible.

  2. Proprietary Software
    Some people may think that Microsoft has a lot of secret sauce that it needs to keep hidden and using an open source OS like any of the modern BSDs will force it to reveal its hand. This is a myth because the BSDs are distributed under a very permissive BSD license, which basically allows you to do whatever you want with it, including building proprietary software out of it.

    In fact, Apple again has shown how to do it. Apple has plenty of secret sauces that Microsoft is still failing to copy successfully. Apple has built them all on top of BSD and does not need to share it with the world if it does not want to. It all comes down to the terms of the BSD license. It is more commercial friendly than say, the GPL that is used by Linux. That’s why I’m suggesting BSD instead of Linux Windows

  3. Technical Superiority
    This is another laughable excuse. While many people are heralding the technical superiority of Windows 7, please remember that they are comparing it against Vista, not any of the Unices. While they herald the resource savings of Windows 7, please remember that a full fledge BSD install with graphical user interface can fit inside 128Mb of hard disk space or less, using even less memory. While users try to fight off the ‘infection of the day’ on Windows, the Unix people are free to do something useful with their time instead.

So, I sometimes wonder why Microsoft still wants to go it alone and re-design their OS from the ground up so many times and still fail to get it right. Their track record has shown that they just cannot write quality software. Since there is already a proven 40 year-old OS out there for the taking, it is really stupid not to just customise it and use it.

The other day, a friend of mine tried out Linux for the first time and asked me what anti-virus he needed to install. He did not quite believe me when I told him that there was no such thing. Those that are written for Linux, such as ClamAV and F-Prot, are actually designed to kill Windows viruses, not Linux ones. Seriously. You do not know what it is like to live in a virus free world until you have entered the world of Unix. It is totally refreshing and fun.

Microsoft should seriously consider doing an Apple. It will end up doing the whole world a favour by introducing ‘safe computing’ to the masses instead of introducing new infections with every new version of Windows.

FAT32 FUD

Most technology sites today are reporting on the news that Microsoft is starting its patent attack on Linux. According to the news, it pertains to Microsoft suing a GPS device manufacturer (TomTom) for alleged infringement on Microsoft patents on the FAT32 filesystem. Sigh. This is again FUD.

While I do agree that there are utilities in Linux that use FAT32, it is most definitely non essential. There are like a dozen file-systems that Linux can use. 99% of Linux distributions will either use Ext-FS or ReiserFS as the default file-system. In fact, the only reason that FAT32 code is available in Linux is because of compatibility with other (read – Windows) systems, which is the same reason why NTFS has not taken over Windows entirely (backwards compatibility).

However, there is a far deeper problem here. 99% of consumer electronic devices use the FAT32 file-system (think thumb-drives, digital cameras, mp3 players). While most major companies would have licensed the patent from Microsoft, I can tell you with 100% certainty that there are a lot of companies who do not license it, particularly small and medium electronic companies.

I know for certain because this question gets asked a lot on various embedded electronic forums. Designers of embedded devices are always trying to embed things like SD-cards in their devices because it is very cheap storage (2Gb@RM20). The typical answer that designers get is that Microsoft owns the patent but they are unlikely to enforce it. This case may just change that.

So, while Microsoft may want to spin this as a battle against Linux, in reality it isn’t. Life goes on in Linux without FAT32. The ones who may really end up being hurt are consumer electronic companies like TomTom and ultimately the consumer.

The simple solution to this problem is for the whole consumer electronics industry to standardise on a new file-system that everyone will recognise in their products. However, this is a pipe dream as they aren’t even able to standardise on a single media (SD, CF, XD, MS). But this case may just force people to do that. Otherwise, Microsoft will always hold a knife at our throats.

PS: As for TomTom, since they control their product ecosystem entirely, they can just remove the offending FAT32 code and use JFS/Ext2 instead.

Home NAS

I would certainly like to see the Atom platform available in multiple form factors. One particularly interesting product that I would like to see it in is a network storage server. In fact, a recent article has mentioned that the Atom platform is excellent for running a NAS.

However, the present offerings from Intel – D945GCLF and D945GCLF2 – only have two SATA ports on the board. This means that we are only allowed to add two harddisks to the system. This is definitely insufficient for any half decent file-server with failure protection.

The most common way of protecting against any harddisk failure is by using RAID. However, all RAID configurations require at least three harddisks except for RAID0 (striping) and RAID1 (mirroring).

RAID0 actually makes multiple disks look like one large disk and it spreads the data over the number of disks (striping). So, in actual fact, this does not provide any protection against disk failure at all. RAID1 makes exact copies of the data on multiple disks. So, it definitely provides protection against disk failure but it wastes a lot of disk space because the available space is reduced by half.

RAID5 is a very common configuration, which spreads the data across multiple disks (striping) and creates a checksum of the data as well. So, it protects against disk failure but it is also far more efficient as it only requires slightly extra space for storing the checksum (N-1).

A file server does not typically require a lot of processing power because file transfer speeds are essentially limited by the mechanical speed of the harddisk. Furthermore, it would spend a lot of time being idle, as most file transfers do not require the active participation of the processor. So, a low power platform would be a god-send.

VIA realises this and has already released actual products based on their C7 low power processor. The 7800 has 8-SATA ports for holding up to 8 disks and comes in a tower and rack-mount physical form factor. It also comes with two gigabit network ports for high speed file transfers.

This product is truly useful as a file server. The only trouble is that VIA products are not always easy to get retail. For some reason, they seem to prefer to sell chips than boxes. In addition, their products are not always cheap due to their lower sales volume.

So, if Intel can get off their asses and make a Atom based mini-itx board that has at least four SATA ports, they would have made a very compelling NAS board and they would steal a lot of customers away from VIA.

But I’m sure that Intel won’t do it any time soon.

Windows 7 BSoD

Hell must have frozen over! Pigs must be flying in the sky! The dead must be walking in the streets! Chaos! Mayhem! Anarchy! Windows 7!

While I would normally not touch anything MS without a 10 yard pole, I’ve been hearing a lot of good things about Windows 7. Then today, a friend of mine who works for Microsoft (and shall remain nameless) asked me if I’d like to give Windows 7 a try. Being naturally curious about things like this, I thought that I’d give it a go to see what the fuss is all about.

Since I did not have any machine that met the minimum requirements for Windows 7 except for my main machine, I decided to install it inside a virtual machine instead. I ran a VM with 1Gb of RAM and 16Gb of hard disk space as the minimum requirements suggested. The installation took a very long time to finish but in the end, it only consumed about 6Gb of disk space.

My host machine is a dual-core AMD64 processor with 2Gb of memory. To make things run fast, I enabled hardware based virtualisation, which uses the VT extensions of the AMD processor to run things faster. What this means in layman terms is that I made the VM run as fast as I could, without purposely trying to degrade its performance in any way. During the install process, I took many screen shots of the virtual screen.

While I have yet to actually play with it fully, I think that it is safe to say that there are already visible pros and cons with the new OS. The main pro is that it does seem to boot fairly quickly and the interface feels responsive. The main con is that the user unfriendly-ness of Vista is still evident. As for the new look and feel of the OS, that is a very subjective thing to measure.

One thing that I do not understand about Windows is its inherent affinity towards rebooting the computer. During the installation process, it rebooted the VM several times. When it installed updates, it rebooted the VM again. Seriously, MS should think of a way to do these things without the unnecessary reboot. As other OSes have shown, it is perfectly possibly to do things without rebooting all the time.

It is good for me to know that Windows 7 will run on a lowly 2D graphics processor, which is what the VM emulates. Actually, with the VM, I was able test that it will happily boot up with only 128Mb of memory, although it uses a lot of disk space as swap and trashes the performance greatly. With only 64Mb, the dreaded ‘blue screen of death’ makes an appearance. It is good to see that some things do not change.

Okay, enough griping. Here are the screen shots.

American Boycott

Happy CNY!Our dearest former PM has recently suggested that Malaysians should show our disgust at the events happening in Gaza by boycotting American companies and products. I guess that he meant that we should stop doing things like buying our Frappucinos from Starbucks. This had many of our local franchisees up in arms as they feared for their businesses (never mind the fact that our dearest former PM was the one who encouraged local bumiputera businessmen to engage in franchise businesses).

The fact that our country is so small, means that any boycott that we engage in, would inadvertently only harm ourselves. If we wish to use economic power as a way to send a message to certain super powers, it needs to be coordinated internationally. Farish Noor mentioned in his recent blog, some previous examples where such tactics were successfully employed in applying economic pressure on political regimes.

In addition, the boycotts would need to be directed at very specific entities. A blanket ban on all American products is stupid as we will ultimately feel the problems ourselves. So, the boycotts should be targeted at specific companies that invest heavily in Israel and be coordinated globally to have any sort of affect on them. Now, that is the difficult bit to achieve.

As for myself, I have been doing a quick mental inventory of things that I buy. Surprisingly, I have already been avoiding many American made products, particularly those with investments in Israel. For example, I typically buy either AMD or VIA based computer systems and not Intel ones. As for software, I have avoided Microsoft products like the plague and they have investments in Israel too. So, even though I have not been actively trying to boycott US companies with investments in Israel, I have been doing it anyway.

I cannot avoid using Google though.

PS: I like the fact that our government had convened a special session of parliament to discuss the war perpetrated by a state that our country does not recognise. I wonder how does one send a message to an entity that does not exist.