vansmith

My random thoughts.

Subscribe to RSS feed

IE9 and Contradiction

As a "die hard" *nix user, my interest in a program that doesn't run on a *nix platform is minimal at best. That said, I am interested in IE9. It looks like Microsoft has finally dropped the complacency act and recognized that the browser market is an important one to exert control in.

I had intended to do a review of IE9 but there are quite a few reviews online that would do a better job than I would. To summarize though: it would appear that most are impressed with the increasing attention to speed and standards support present and although most reviews are in favour of the new UI (I sure am), many are confused about the choices made concerning the top 1/5 of the browser. What I mean is why have the tab bar and address bar occupy the same position and why have the blank title bar?

I wanted to note the following though:

Microsoft's first criticism is Chrome's combining the address bar and the search box into a single entry box; IE8 keeps those fields separate. "By keeping these boxes separate, your privacy is better protected and the addresses of the sites you're visiting aren't automatically shared with Microsoft, or anyone else," says IE product manager Pete LePage.

(source)

IE9 now does the same thing - there is no search field and searches are done through the address/search bar.

Second contradiction:

"As I start to type an address into the address bar, Fiddler [a Web debugging proxy] shows that for nearly every character I type, Chrome sends a request back to Google," LePage says. "I haven't even hit enter yet to load the website and Google is already getting information about the domain and sites I'm visiting."

(source)

Let's take a look at what happens when you start to type a search query in the address/search bar:
Note how it says, "Turn on search suggestions (keystrokes will be sent to Bing as you type)". Sure, it's not on by default but IE9 could send data to Bing concerning what you type. My question then is this: why criticize Google for doing something and then implement that feature yourself? The fact that it's off by default is irrelevant because the feature is still present.

When turned on, it appears that the effect is similar to that of Chromium (click here for the larger version):
Sorry Microsoft but you really need to prevent yourself from contradicting your positions.

"I have no experience" is a Terrible Defence

Lack of "Experience"

Mr. Jones said that nothing in particular had set him off. Asked about his knowledge of the Koran, he said plainly: “I have no experience with it whatsoever. I only know what the Bible says.”

(Source).

I want to make a quick comment about this statement. This is the man that will likely cause violence towards others directly because of his actions yet he doesn't totally understand what it is he is doing. Would anyone ever elect a head of state that wanted to declare war on a country they knew nothing about? Would you ever promote someone at work if they knew nothing of the job? Would you entrust your health to a doctor who knew nothing of medicine? I hope the answer is a resounding no to each of those and with good cause. You would never trust the judgment or knowledge of someone who has explicitly noted that they don't know what they're talking about. In this case, why should we trust this pastor's assertion about Islam if he has never read the book that is central to Islamic doctrine?

The Bible

Mr. Jones, 58, a former hotel manager with a red face and a white handlebar mustache, argues that as an American Christian he has a right to burn Islam’s sacred book because “it’s full of lies.”

(Source).

Aside from the absurdity that somehow being both American and Christian gives you the right desecrate a sacred text, Mr. Jones seems to be implying that Christianity is not a religion of lies and misdeeds. Why else would you follow Christian teachings? Let me quote the following bible verses before I continue:
  • If a man sells his daughter as a servant, she is not to go free as menservants do - Exodus 21:7 (source).
  • When a woman has her regular flow of blood, the impurity of her monthly period will last seven days, and anyone who touches her will be unclean till evening. Anything she lies on during her period will be unclean, and anything she sits on will be unclean. 21 Whoever touches her bed must wash his clothes and bathe with water, and he will be unclean till evening. 22 Whoever touches anything she sits on must wash his clothes and bathe with water, and he will be unclean till evening. 23 Whether it is the bed or anything she was sitting on, when anyone touches it, he will be unclean till evening. If a man lies with her and her monthly flow touches him, he will be unclean for seven days; any bed he lies on will be unclean. - Leviticus 15:19-24 (source).
  • Your male and female slaves are to come from the nations around you; from them you may buy slaves. - Leviticus 25:44 (source).
  • For six days, work is to be done, but the seventh day shall be your holy day, a Sabbath of rest to the LORD. Whoever does any work on it must be put to death. - Exodus 35:2 (source).
  • Say to the Israelites: 'If anyone curses his God, he will be held responsible; anyone who blasphemes the name of the LORD must be put to death. The entire assembly must stone him. Whether an alien or native-born, when he blasphemes the Name, he must be put to death. - Leviticus 24:15-16 (source).
Thanks to this for the list.

  • The people of Samaria must bear their guilt, because they have rebelled against their God. They will fall by the sword; their little ones will be dashed to the ground, their pregnant women ripped open. - Hosea 13:16 (source).
Thanks to this for the verse.

I quote these for the purpose of demonstrating verses that could be used to justify certain actions. It is very much possible for one to use the bible to justify certain actions much like it is possible for one to use any sort of text as a means of justifying any action.

To finish the discussion of the bible, I quote the following from The Boston Globe:

The Bible contains far more verses praising or urging bloodshed than does the Koran, and biblical violence is often far more extreme, and marked by more indiscriminate savagery. The Koran often urges believers to fight, yet it also commands that enemies be shown mercy when they surrender. Some frightful portions of the Bible, by contrast, go much further in ordering the total extermination of enemies, of whole families and races - of men, women, and children, and even their livestock, with no quarter granted. One cherished psalm (137) begins with the lovely line, "By the rivers of Babylon we sat and wept"; it ends by blessing anyone who would seize Babylon's infants and smash their skulls against the rocks.

It is with this that I question Mr. Jones's claim that "Islam is of the devil" (source). While I am not out to claim that Christianity is of the devil (being an atheist, I do not believe in the devil but rather see it is an attempt to anthropomorphize the concept of evil), it is worth noting that if Islam is somehow evil and therefore a bad religious choice, there is nothing to stop one from making the same claims about Christianity. Many will argue that Christianity is in fact rooted in a mission of peace and it may very well be but many of these people are susceptible to the sensationalism of the media and others who make out Islam to be an evil religion. It is these people that I am willing to bet have little knowledge of Islamic religion from reading Islamic documents.

Conclusion
The point I am trying to make is that Mr. Jones' attempt to draw attention to the supposed evils of Islam neglects to acknowledge that evil permeates part of the bible. Sure, these verses may be allegorical or simply re-tellings of supposed historical events but they nonetheless portray evil and vicious attacks against individuals. Many who argue against Islam may argue that certain individuals appropriate parts of the Qur'an for their own ideological purposes but nothing is to stop one from doing the same with bible verses. In fact, various groups justify their violent actions as part of their understanding of God (Christian god). These groups include the Army of God and the Ku Klux Klan. I am not trying to argue that either religion is inherently violent as I believe that religion is very much dependent on personal interpretation. Therefore, I am not claiming that memebrship in a particular religion makes you violent (far from it). What I have hopefully made clear is that religious doctrine of all kinds can be used to justify evil and violence (much like any doctrine can) and this is by no means limited to Islam.

NOTE: Many will claim that my "status" as an atheist will preclude me from having a true understanding of either Christian or Islamic teachings. To a certain extent this is true but I am of the belief that you do not have to be a believer of a religion to understand it. There is nothing to stop one from understanding the intricacies of a religion from the "outside."

NOTE 2: I was quite tired when I wrote this. I mention this as a way of excusing both any spelling/grammar mistakes and any disorderly arrangement of ideas. Why write this now then? Well, to be honest, I felt like getting all this out of my head now.

Chromium's Side Tabs

,

Tabs on top vs tabs on the left.

You decide. I'm going to stick with tabs on top.

Expose for the Browser: Chrome Tab Overview

,

Hot on the heels of Panorama's integration with Firefox 4, it appears that the Chrome dev team has added something similar yet significantly different (stick with me on this one). To understand how this works, let's take a look at a basic screenshot of a regular Chrome session (in this case, Chromium):
Pushing Command-F10 (you may need to push Fn-Command-F10 if your keyboard has the media keys like mine) on a Mac (this is Mac only right now as far as I know), will arrange your tabs much like windows are arranged when Expose is executed:
The windows are arranged such that you can easily click on the tab of your choice.

Tab Overview and Panorama
Both arrange your windows Expose style but this is really where this ends. Panorama allows you to move your windows around and organize them into groups, effectively doing what I like to thing of as new windows without having multiple windows. Clicking a tab in one group brings the tab back to focus and only the tabs in that group are now shown. Tab Overview is only that - a tab overview. Click a tab and it gains focus. Now, it sounds like I'm making Tab Overview sound much worse and while it lacks the feature set of Panorama, it's noticeably faster. Panorama isn't terribly slow but there is noticeable lag. The lag is even noticeable with only four tabs (one was open to Google and the other three were blank). Thus, I'm left yearning for the feature set of Panorama without the characteristic speed issue associated with Mozilla apps.

Firefox and Opera: A Quick JS Speed Comparison

, ,

This is by no means comprehensive but more of an observation before I hear people claim this is insignificant because it lacks rigor.

So, I decided to see how far Firefox had come on the Sunspider benchmark (version 0.9.1) by comparing it to four different versions of Opera: 10.10 (6795), 10.52 (8339), 10.61 (8429) and 10.70 (9034). Here is what I found, in order of speed:

  1. Opera 10.61: 398.0ms +/- 0.7%
  2. Opera 10.70: 407.3ms +/- 0.7%
  3. Opera 10.52: 486.2ms +/- 1.3%
  4. Firefox 4.0 b4: 700.7ms +/- 6.5%
  5. Opera 10.10: 5565.5ms +/- 0.4%

Observations
Opera 10.5 was the first version to include the new Carakan JS engine which explains why there is the much better performance of the post-10.1 releases of Opera. This is important to note as it demonstrates Opera's commitment to not only improving the quality of the browser (Opera >=10.5 is leagues better than Opera <=10.1 in just about every way that I need it to be) but also the speed of JS performance. This brings up the reason for this post - Mozilla just can't seem to catch up in terms of JS performance. I say catch up because Firefox in this test was slower than Opera 10.52 which was released four months ago (see here). Firefox is still trying to catch up to a browser that was released months ago and my concern is that when it gets caught up, it will be four months behind the browsers of today.

Yes, I realize that I excluded other browsers but the point here is not to compare browsers but to demonstrate Firefox's struggle. I also realize that JS performance is not the ultimate measure of success/strength of a browser but in a world wide web landscape that is increasingly becoming dependent on JS to power it, it does become important to handle it well.

Demonstrating Processes in Chrome/Chromium

Well, here it is - my first real attempt at making a video. I've done them in the past but they haven't really gone any further than my computer or perhaps a friends. Go easy on me! wink

I'm going to attempt to explain the idea of tab and extension processes in Chrome/Chromium by demonstrating it. I may not do the best job but it should provide a better understanding of how tabs and extensions are managed in Chrome. The video is hosted on YouTube and I encourage you to join the HTML5 beta on their website so that you don't have to suffer through the experience of having to watch it through a Flash player.

Video: http://www.youtube.com/watch?v=-Qh19fT0Ldk

As far as I know, videos on YouTube are wrapped in a Flash player initially and later made available through a HTML5 friendly format. What is odd about my case is that I uploaded my video as a WebM video so it is already good to go. Nonetheless, an HTML5 version is unavailable at this moment.

Memory Usage in Browsers

I decided to do a "not so scientific" study of memory usage for what I call the four major browsers available for OS X (Safari, Chrome, Opera and Firefox). Here is what I did:
  • Opened each browser and Activity Monitor (these were the only open applications aside from menulets).
  • Each browser opened to Google but I navigated to Yahoo in each shortly after opening them.
  • Minimized each browser and left Activity Monitor up.
  • Recorded the memory usage after half an hour and one hour.

I rebooted the machine before performing this "experiment".

I used the following browser versions:
  • Firefox 4.0 beta 4
  • Chrome 7.0.503.0 dev
  • Opera 10.70 (9034)
  • Safari 5.0.1 (6533.17.8)

Results (values in MB)

1 It's worth noting that although Chrome was only using 63.9 MB of memory after one hour, Chrome spawned three extra processes: Google Chrome Renderer and two Google Chrome Workers. GCR consumed 59.3 MB of memory while the two GCW processes consumed 28.8 MB and 23.8 MB. Therefore, Chrome consumed 175.8 MB of memory when considering the browser and associated processes.

Conclusion
I wasn't surprised to see Firefox consume more memory than Safari or Opera (and I thought I could include Chrome but see the caveat above) but I was surprised to see Opera consume as much as it did. I was also surprised to see Firefox take the title of "only browser to lower memory usage." While I now have a much better appreciation of how Firefox performs in terms of memory usage, I am still disappointed in its performance. I still experience interface speed problems with Firefox that I may experience in other browsers but not anywhere near the same extent.

I was also intrigued by Chrome's memory usage. While the browser consumed considerably less memory than the other browsers, considering additional processes reveals that Chrome uses much more than the others. This is something people need to consider - look at the whole picture instead of just how the one process is doing.

Installed Size of Browsers

I just took a look at the size of the application bundles for each of the six browsers I have installed. Here they are:
  • Firefox 4.0 Beta 2 - 63.5 MB
  • Safari 5.0 - 56.3 MB
  • Chrome 6.0.472.25 - 167.8 MB
  • Chromium Nightly - 67.1 MB
  • Opera 10.61 RC - 33.7 MB
  • Opera 10.70 (8425) - 33.8 MB
I happened to notice this a while ago and thought, why is Chrome so much larger than the other versions? Why is Chrome more than 100 MB larger than the next largest browser (which happens to be Chromium by the way)? The answer appears to be that when Chrome is updated, the older versions are retained in the application bundle, thus adding to its size. Opening /Applications/Google Chrome.app/Contents/Versions, I have two folders. One is called 6.0.472.14 and one is called 6.0.472.25. Removing the older one (6.0.472.14) left me with an app bundle of 84.4 MB. While this is considerably better, it is still much larger than the other browsers and is in fact still 2.5x larger than Opera 10.61.

I'm am well aware of the fact that, given the average size of hard drives today, this size difference is inconsequential at best. Regardless, there is no reason that the app bundle has to be this much larger.

Addendum
I'm not the only one who has noticed this (the post is in reference to the Windows version but the issue is the same).

Why I don't use Firefox

I have been switching between browsers now for a while, much like I hopped from distro to distro when I was first trying out Linux. That said, much like I did with Linux distros, I have come to the conclusion that one browser is not good enough to get all the jobs done. Although this is the case, I definitely prefer one over the others. While this is the case, I definitely don't use Firefox.

Firefox is terrible. To say anything else of it would be me being verbose for no apparent reason. It's slow, it's bloated and requires the installation of extensions and themes to make it feel like a quality app on the Mac. While many will argue that the vast and rich extension ecosystem that Mozilla has fostered is a strength of Firefox, I will claim that it is in fact a weakness. No other browser requires me to install a theme (in this case, GrApple) just so Firefox can actually look like a Mac app. On top of this, many people install extension after extension (again, claiming the ability to do so as a strength) only to have their browser bogged down to the point where it becomes unusable. In terms of actual browsing, Firefox used to do a commendable job of rendering anything I threw at it. The darling of open source software pushed the browser into a competition of sorts to see who could deliver the best experience, much to the benefit of end users. This I cannot possibly claim is a bad thing and I thank Mozilla for this. That said, while Gecko can still handle just about anything, so can the other layout engines. While Firefox started as an attempt to build a light and fast browser, it has become a slow and bloated mess (especially on the Mac). For instance, let's take a look at some browser comparisons:

SunSpider 0.9.1
  • Firefox 4.0 beta 2 - 843.4 +/- 4.2%
  • Opera 10.70 (8407) - 396.6 +/- 0.7%
  • Safari 5.0 (6533.16) - unable to run for some reason
  • Chromium 6.0.479.0 (53979) - 361.9 +/- 0.8%


Acid3
  • Firefox 4.0 beta 2 - 97/100
  • Opera 10.70 (8407) - 100/100
  • Safari 5.0 (6533.16) - 100/100
  • Chromium 6.0.479.0 (53979) - 100/100 (reported as so but did not render as such)


While this is not a huge sample of tests, it does demonstrate that, although Mozilla has done a lot with Firefox, it still can't compete. Oh how I wish it could though.

Integration
Firefox, as an application that works across operating systems, has a harder time integrating than applications tailored to one platform. I am very much willing to concede that and this is why I will not compare Firefox to Safari in this regard (I realize that Safari works on Windows but who are we kidding when we say that it is given equal treatment on Windows). For this, I will compare it to Chromium and Opera, both of which work on Windows, OS X and Linux. First, a simple example:

That is a dropdown box as it is rendered in Firefox. That does not look like an OS X dropdown box by any means. Looking at the same dropdown box in Chromium and Opera will demonstrate that both of these browsers have no problem rendering native widgets. If you would like to try this, go here (this is where the example comes from). Then there is the second style of dropdown box that Firefox has which is odd since it should only have one style (you know, the proper one):

In this instance, Mozilla is halfway there. Why Mozilla can't get all the way there in terms of native widget usage (both in the browser and in the application) is beyond me considering that Google and Opera have no problem doing so with their respective browser.

This is just one of many examples of the flaws with Firefox. I sincerely hope that Mozilla does not continue a trend that I see occurring with browsers - the smaller the market share, the better the browser (obviously, a highly subjective claim). If that were true, Mozilla has some work to do.

Conclusion
I want to love Firefox, I truly do. I criticize only because I want something better. Mozilla has the means to make a fantastic browser and the reason is simple - if other browser developers can do great things, so can they as they are no less talented. Don't get me wrong though - Mozilla has done great things. That said, they seem to have lost some desire to make Firefox a truly fast (both in rendering and in application speed) and light browser. Now, I say desire only because, despite their aspiration to make the best browser, they don't seem able to catch up to the other browser developers in some key areas. For starters, Mozilla needs to stop resting on their own past laurels and stop focusing development on Windows. While the Linux version isn't bad, the OS X version is simply atrocious. Sure, I could use Camino but why should I have to use it? Is it not obvious to individuals that there is something wrong if there has to be a separate client (Camino)?

Web Based Geolocation

,

I've been fooling with HTML5 stuff lately, mostly out of curiosity. A few days ago, I converted a video to WebM and easily embedded it into a page. The outcome of that experiment: it is much easier to embed video, it's easier on the CPU and doesn't require a plugin (looking at you Flash!). Sure, it doesn't work in all browsers but to be honest, it works in the ones I care about (Opera and Chrome/Chromium). Today, I quickly scanned the geolocation article on Opera's developer site and tried whipping up a quick geolocation example. Note that this is very heavily based on Opera's code (ie. there isn't much here that is unique). Credit is owed to Opera.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>HTML5 Geolocation Demo</title>

<script type="text/javascript">
	//Check if browser supports W3C Geolocation API
	if (navigator.geolocation) {
	    navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
	} else {
	    alert('Geolocation not supported in your browser.');
	}
	
	function successFunction(position) {
	    var lat = position.coords.latitude;
	    var lon = position.coords.longitude;
	    document.writeln("Geolocation Example<p>Coordinates: " + lat + ", " + lon + "<br>");
	    // http://maps.google.com/support/bin/answer.py?hl=en&answer=18539
	    document.writeln("<a href='http://maps.google.com/maps?q=" + lat + ",+" + lon + "+(Your+Location)&iwloc=A&hl=en'>Map</a>");
	}
	
	function errorFunction(position) {
    	    alert('Error!');
	}
</script>
</head>

<body>

</body>

</html>

Now, I tried this and noticed that it was 27.5km off. I'm going to try this at home to see if it's any different. I vaguely remember it being much closer to my actual address. Conclusion: in 18 lines of JavaScript, you can determine if a browser has geolocation support and if it does, display their latitude and longitude coordinates. Addendum: Tried this at home and it was spot on. According to Google Maps, it got within 17m of my house. Impressive! I would normally be worried about privacy issues for something like this but the fact that both Chrome/Chromium and Opera ask for permission first is reassuring. Now, if only I could figure out why this doesn't seem to work in Chrome/Chromium, I'd be set. Addendum no. 2: For those in the know, you must have thought I was an idiot. Geolocation is not HTML5 - there is no HTML code tied to the example if you'll notice. Also, I have a link to the code above if you don't feel like copying it and trying it yourself. See it in action here.