Thursday, January 22, 2009

EU charges Microsoft with antitrust again

I was really pissed off when I read about the new antitrust charges Microsoft is facing from the EU. It was mentioned in the news article published under "EU: Microsoft 'shields' IE from competition" how EU looks at the case:

The evidence gathered during the investigation leads the commission to believe that the tying of Internet Explorer with Windows, which makes Internet Explorer available on 90% of the world's PCs, distorts competition on the merits between competing Web browsers insofar as it provides Internet Explorer with an artificial distribution advantage which other Web browsers are unable to match.
So, if they think that IE is available on 90% of the world's PCs, why didn't they consider FireFox, Opera, Safari or Chrome to be available on 100% of the world's PCs that has internet access? Any of these browsers can be downloaded and installed in about 10 minutes. If IE wasn't bundled with Windows, it would've been really difficult to use the PC whatsoever. A web browser is an essential part of any usable OS. Actually, IE provides instant web access to Windows user so they can do whatever they like, including navigating to/searching for competing browsers to download and install. Microsoft didn't prevent Windows users to do what they want with the software on their machines.

Microsoft should make a secure and standards-compliant browser, but separating IE from windows is another thing. We all know how bad IE can be, for instance, it used to crash anytime I closed a tab loaded with Facebook. Also, as a web developer, I can tell you that IE is not fun to work with as it doesn't follow the standards, which makes it harder to produce something that can be viewed by any user given that most users indeed use IE.

Opera claimed back in December that Microsoft abuses its dominant position on the desktop by tying IE browser to Windows and asked the EU's Competition Commission to force Microsoft into separating IE from Windows. Why don't we hear similar claims for Safari that is bundled with OSX or FireFox that comes with almost all open source OS distributions like Ubuntu, OpenSUSE and Fedora?

Maybe PC users are not interested enough to change IE, or maybe IE is good enough for their common needs. However, this is the current state of the browser market. It doesn't only happen in the software world, the first move guarantees an advantage in any market as well as in chess. In addition, untying IE from Windows is not going to change this any soon. Windows is already sold and used on so many machines worldwide.

I think competing browsers should focus on the quality of their products instead of blaming Microsoft for their first-hand advantage, after Browser War I. They should also think of innovative ways to advertise their products and expand their user base. Each product has its pros and cons, say, IE comes with Windows and Safari with OSX, FireFox has lots of add-ons and comes with Ubuntu and finally, Chrome is made by Google. Opera should work on marketing and add more features instead of just being jealous of IE, because the new Google browser is already doing better in terms of market share according to the W3C browser statistics. On the other hand, IE should follow the standards and work on its security and stability issues.

Wednesday, January 14, 2009

Indoor RF Propagation Simulation Software

I was looking for a free program to help me simulate Wi-Fi signal propagation for indoor environments. I wanted a program that could take a floor map and do some ray tracing or apply some known propagation model. I was disappointed when I couldn't find any open source software in that area. All the free programs I found were very naive and targeted radio hobbyists. On the other hand, I found a number of high quality commercial programs, fortunately, one of which had a free student edition. I compiled this list with the information I got:

1) RF-vu from iBwave with the RF-Propagation add-on.
2) PropMan from AWE Communications.
3) InterpretAir from Fluke Networks.
4) SignalPro from EDX with the Microcell/Indoor add-on (free evaluation version)
5) Radioplan from Actix. (student edition free to download)

I'd also like to mention these free tools, none of them support indoor propagation and I didn't try them myself, anyway they seemed good to me so I decided to include them here for completion.

1) Radio Mobile: the screen shots available at the website are interesting and it seems to have an active user base. They've created a Yahoo Group that currently has 5382 members. The group description points to that tutorial that looked good too.

2) SPLAT!: an open source RF Signal Propagation, Loss, And Terrain analysis tool for the spectrum between 20 MHz and 20 GHz. It may be redistributed and/or modified under the terms of GPLv2. It looks well made and documented. The website mentions interesting projects that used this tool.

Wednesday, January 7, 2009

Netbeans modified web.xml when it shouldn't

A couple of days ago, I was working on a J2EE project using EJB 3.0 and plain JSP/Servlets. I used Netbeans 6.0.1 with GlassFish 9.1 on my XP Professional PC. For some reason, the project build kept on failing, without any changes in the configuration files which I barely touched. After digging through the stack traces and log files I got, I found this message "The ResourceConfig instance does not contain any root resource classes". I googled for that and found that others got the same problem. I followed this thread on java.net forums, and was really angry to find that Netbeans added stuff to my web.xml, which of course couldn't be resolved by the deployment script. This is the extra parts the guys mentioned on the forum and I found in my web.xml:

<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>com.sun.ws.rest.impl.container.servlet.ServletAdaptor</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
and:
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>

It seemed like it had to do with the RESTful webservices plug-ins which I didn't even reference in that project. I removed the extra parts from my web.xml and also removed the RESTful plug-ins to make sure it doesn't happen again and everything went fine.