Tuesday, December 30, 2008

Apple Safari 4.0 Developer Preview Has Problems With The Acid2 Test

It seems that Apple Safari 4.0 Developer Preview (526.12.2) has trouble with the Acid2 test.

In a restored down window, it passes the test

However, if the window is maximized, Safari corrupts the correctly-rendered image

Safari also incorrectly renders the Acid2 test, if horizontal length of the window is made small

The extent of corruption increases as the horizontal length is decreased further

Finally, Apple engineers have still not solved the annoying white line bug in Safari - it looks so crude and unprofessional

However, despite all this, it's reassuring to see that this build of Safari shines in the Acid 3 test

See My Photo Albums On Picasa

PREDICTION: Google Android Operating System Will Steal Market Share From Microsoft Windows

Google's Android operating system, the way I see it, holds more potential than Apple Mac OS, in its ability to supplan Microsoft Windows as the mainstream OS.

Although Android has started from smartphones, I believe that it will soon start shipping on netbooks, then nettops, and finally on mainstream desktops and laptops/notebooks.

Multiple factors will be responsible for this
  1. The pressure to reduce prices of devices (Android is free and open source) will attract hardware makers (smartphones, netbooks, nettops, desktops, laptops, etc.) to Android. Also, the alleged discomfort that hardware makers have with Microsoft's licensing terms will be another factor pulling device makers to Android. Multiple device makers will flock to Android, and the market will see a huge surge in the number of devices of various shapes, sizes and prices - all powered by Android
  2. The capabilities and quality of Android as an operating system: Android, the way I see it, is a capable and complete operating system, and not a mobile-optimized and stripped-down version of a desktop operating system. There is nothing that stops the use of Android on mainstream desktops and laptops. And being open source software, bugs will be discovered and removed quickly - like it has been with Firefox and Linux
  3. The discomfort-with and hatred-for Microsoft and Windows: I believe that one of the chief reasons for the success of Firefox has been the devotion with which fans of Mozilla and Firefox have made efforts to develop, evolve, improve, promote and use it. The hatred for Microsoft, combined with the love for Mozilla caused millions of Microsoft users to shift to Firefox, and these converts also converted many of their friends and family members to Android. This same set of users will be among the first ones to install and try out Android, should it be available for the desktop. This set of users - probably millions in number - will be more than happy to use a Linux-kernel based operating system over Windows. This same set of users will develop, evolve, improve and ultimately spread Android to others
  4. Android is backed by Google. And many more heavyweights: Unlike Firefox, which is backed by the not-so-rich Mozilla, Android has the formidable backing of Google. Google has the financial and industry position to invest heavily in development, partnerships, and massive promotions, and unlike Microsoft, Google isn't hated by the community at large, at least apparently. It seems that developers are not only comfortable with Google, they are actually happy with it. Doubtlessly, most users are, as well. Add to this the support of the other members of OHA, and it's easy to see that the young Android already has lots of support
  5. Android-powered devices stay close to our heart: With iPod, Apple brought our whole collection of music to our pocket. We didn't need to have the collection on our Windows powered machine, thus reducing the need/role of Windows in one way. Android-powered smartphones will reduce the need/role of Windows-powered machines in multiple ways - we will be carrying our entire music, photos and videos collection right inside our Android-powered smartphone. Large-sized display will make Web browsing and online video more entertaining/productive/useful, and will also make watching locally stored photos and videos more fun. There will be lesser and lesser need to boot the Windows machine. Click a photo using the phone, and post it on Orkut or Facebook from within the phone - no need to transfer it to the laptop
  6. Location-specific information and social-networking: Wireless network, Wi-Fi and GPS, all allow a user's location to be discovered, and based on that tailored search results (among other things) can be provided to the user - not usually available on a desktop. Also, location enables creative and engaging new ways of social networking. Local and social will thus be yet more reasons why Android-powered devices will be more useful to the user than his Windows-powered desktop/laptop
  7. Application and data portability resulting from Cloud/SaaS applications: Google will push its Cloud-based services such as Gmail, Google Calendar, Google Docs, Picasa Web Albums, Google Maps, Blogger, etc., over native desktop applications in Android (user data resides on the servers, and is accessible from any other computer or smartphone). So while users temporarily switching from Android to Windows will be able to access their applications (Gmail, Blogger, etc.) and hence data on their Windows-powered machines, the reverse will frequently not be true (Microsoft is notorious for making the experience of its products poor on rival platforms - it's hard to imagine that an Outlook user will have seamless access to his Outlook data on an Android device)
  8. The sheer weight of Windows: While Android is fast even on a mobile device, Windows is often complained to be slow even on desktop machines. This sheer weight associated with Windows makes it less practical to run it on mobile devices, without heavy modifications. Because Google has started from a mobile device, it's easy for Google to upscale Android for a desktop machine. Microsoft, on the other hand, will have a tough time stripping Windows to enable it run with a decent speed on mobile devices. The dramatic difference between Windows Mobile and Windows Vista/7 create an inconsistent user experience, a situation Android should not suffer
  9. The halo effect: An interesting fact is that while on the desktop, users resist using an unfamiliar operating system, on mobile devices they happily use whatever proprietary system is given to them (Symbian, BlackBerry and the various flavors of proprietary OSes in low- or mid-end Nokia, Samsung and Sony Ericsson phones). This fact will ensure that users will adopt Android OS on their phones as easily as they adopt other mobile OSes. Over time, these users will get familiar with the OS (its applications, UI, etc.), and when presented with a desktop computer powered by Android OS, these users will have no difficulty in using it or being productive on it. In fact, users who like Android may actually ask for it - Dell, HP, Toshiba, Acer, Sony and Lenovo should not make the grave mistake of ignoring Android as merely a smartphone OS
  10. Android is cool to use and cool to Flaunt. And Google is cool too: One of the key reasons why people buy a Mac, iPod or iPhone is the cool to use and makes me look cool among my friends factor. This image associated with Apple and Google is a far cry from the boring and corporate image associated with Microsoft. I believe that the coolness of Android (applications/features and UI), the coolness of owning a Google-powered device, and the coolness of telling friends that my phone runs Android, will be a non-insignificant factor in the adoption of Android
  11. The image of Windows is tarnished: If the unfriendly image of Microsoft was not enough, the image of Windows is apparently quite poor. Windows is considered an operating system that is slow, and is often plagued by viruses and other malware. Macs, on the other hand, are perceived to be fast, secure and free from malware. If Google succeeds in keeping Android free from malware and privacy/security issues, people who are fed up with Windows will want to move to Android (just like these people want to move to Macs)
  12. Android can be customized and even forked: Many device makers and wireless carriers like to customize the core OS according to their specific desires or needs. The open source nature of Android allows device makers to customize the OS. Device makers who do not get this flexibility with Windows Mobile or Symbian may choose Android instead. What's more, Android can even be forked to create an entirely customized operating system
  13. Android will improve quickly and dramatically: We should not forget that Android is very new. And whatever shortcomings it does have, they will probably be eliminated soon. It is easy to see that 2 years down the road, Android will be brimming with immensely useful applications and features

Monday, December 22, 2008

An Idea For A "Variable Power" Car Engine That Saves Fuel

On the lines of my post - An Idea For A Shutterless Digital Camera - here I write a desire and an idea for liquid fuel powered car engines that are "variable", in the sense that their power output can be decreased by turning off some sections, to save fuel.

In a 1.3 liter, 4-cylinder petrol car like my Maruti Suzuki Swift, is it possible to "turn off" 1 or more cylinders (temporarily), so that although the power output reduces, fuel consumption decreases too?

I got this thought when driving from Noida towards Pitampura (Delhi). Concerned about fuel consumption, I thought "My car has a 4-cylinder 1,300 cc engine. So each cylinder's capacity is 325 cc. And each cylinder accounts for exactly 25% of the total fuel consumption. Right now I'm driving alone, and the air-conditioner is off. I really don't need all the power generated by the engine. It would be great if I could just turn off a cylinder, so that my engine temporarily reduces to a 975 cc engine, thus consuming 75% fuel - saving me a significant 25% fuel"

I'm not sure whether it's possible to achieve this with the current design of engines, but I'm sure it's possible to build an engine which has this ability. An internal computer could then ensure that different cylinders are turned off each time, so that wear-and-tear is evenly distributed across all cylinders.

I'm also sure that there will be many effects of turning off a cylinder - like the other cylinders having to run at higher RPM to produce same amount of power, etc. But all that is the work of an engine engineer!

About Me - My Google Profile

Saturday, December 20, 2008

An Idea For A Shutterless Digital Camera

I remember, when I was in class 9 or 10, I read somewhere that children are the most free thinkers (and innovators), because they don't have any knowledge of financial / physical constraints, etc., and so their thinking wanders freely. In contrast, the thinking of experts, professionals and researchers is (at least sometimes and at most always) handcuffed by their knowledge of "costs", "feasibility", "practicality", etc.

It's more likely that the solution produced by an expert or a professional / researcher will work, but it's also likely that this class of people will not be able to come up with "fresh", "out-of-the-box" and "revolutionary" ideas (due to the reason mentioned already).

With this context in mind, I will write an idea - a childish one - that has the potential to make shutterless digital cameras possible.

Why a shutterless digital camera? I like digital devices with the least number of moving parts. I like it when functionality is delivered without having any moving part (so I love flash memory based SSDs over magnetic HDDs). I feel that gadgetry with moving parts is unreliable (especially hard disks). And a digital camera with no moving parts would certainly be great - long-life, shock-proof, and longer battery life.

The idea - can varying the time for which we "pick" the signal from a digital camera's sensor be used to emulate the effect of shutter speed? More specifically, the idea is to turn on the sensor of the camera for such an amount of time, so that the amount of signal collected from the sensor is equal to the amount of signal we get by keeping the shutter open for a specified amount of time.

In a nutshell, the idea is that - the sensor is always exposed to light. However, it's to be turned on only when a picture is to be taken. And it's to be turned on for a small amount of time, and a continuous signal is to be collected for that time. The continuous signal could be broken down into discrete signals (say every 1/5000 second), so that RGB values represented by each discrete signal are added to progressively build the image. The longer the sensor is turned on, the more exposed the image would be (as each discrete signal would be added).

2 things to note:-
  1. The mapping between conventional shutter speeds and the time for which we capture signal using this idea may not be (will most likely not be) direct. For instance, it's possible that to get the kind of photo we get using 1/60 second as shutter speed, it's required to sample the signal for only 1/25 second
  2. It's possible that this entire idea is fundamentally flawed (i.e. it's based on certain assumptions made subconsciously - i.e. without explicit knowledge - which are incorrect). But in that case, it's possible that a new kind of sensor (possibly using a new kind of technology - for example using photoelectric effect) can be constructed for which this idea works
Update (22-12-08): I read about the concept of Design for Manufacture (DFM) while traveling from Delhi to Ludhiana. The concept, essentially restrains a designer's thinking to make sure that what he designs is manufacturable. These restrains are the kind of things that prevent free thinking, and children, unaware of these restrains, innovate and think freely! Read about DFM here, here, here and here.

About Me - Flickr Profile

My First Award - At My First Job & On My First Project :)

Yesterday - December 19, 2008 - was a special day for me. We had finished our project just a week back (we were working on it since August 2008, i.e. it took ~4.5 months), and informal feedback from the client came on December 18, 2008 (formal feedback is still to come).

The feedback was not just positive, it was mind-blowing! The client was very pleased with our work, and especially applauded the practices and processes used by us, as well as the quality of our deliverable. And my company's top brass was extremely happy as well.

So, each of the 5 team members was awarded an Outstanding Client Service Award in the company-wide meeting yesterday (the core team consisted of 5 people, and 2 more people were conducting higher level works). It felt quite nice to receive the award. All the hard work that the team had put in paid off nicely.

At the personal level, I feel that all the diligence and hard work I had put in paid for me. Those late nights when I would be busy consuming, digesting and marking reports from Forrester, Gartner and IDC (and sometimes Burton, Jupiter, Ovum and Yankee too); those train journeys from and to home, when I would be studying research papers and white papers - all that has paid off in the form of a satisfied client, a happy team, elated company officials, and personal satisfaction (of course, this is the result of a combined team effort).

However, after this initial success, I feel more responsibility now. This success is past now, and looking ahead, the bar of expectations is higher. The next project is visibly tougher (it's the same client - pleased with our work, they've given us a significantly more challenging project this time). I hope I am able to deliver even better this time.

Friday, December 19, 2008

Secretely Devilish - Could Google Be Promoting Its Properties By Playing With Search Ranking?

Consider 2 webpages, both deployed on the same website (say http://www.rishabhsingla.com/ ), having similar file names (index1.html and index2.html).

The content of index1.html is as follows

The Web of today gives us for free, much of the content that people used to pay for sometime back. While on one hand we have online videos to watch, we can read regularly updated news, and even have encyclopedic content to consume - all this for free! Even the portals providing a regularly updated view of this content are free.

The Web doesn't provide us with just free "content". It also gives us free services and tools. Users can engage into social networking, send and receive email, enjoy chatting with their buddies - by text or even by voice or video, search for images or photos, look for interesting blog posts, write blogs of their own, and can even use office productivity applications - once again, all this for free!

If all these free goodies were not enough, even the applications used to access the Web are available for free. We have secure and capable Web browsers, and feature-rich toolbars which add useful functionality to these browsers.

Clearly, the Web saves people a lot of money!

The content of index2.html is as follows (not everything is same)

The Web of today gives us for free, much of the content that people used to pay for sometime back. While on one hand we have online videos to watch, we can read regularly updated news, and even have encyclopedic content to consume - all this for free! Even the portals providing a regularly updated view of this content are free.

The Web doesn't provide us with just free "content". It also gives us free services and tools. Users can engage into social networking, send and receive email, enjoy chatting with their buddies - by text or even by voice or video, search for images or photos, look for interesting blog posts, write blogs of their own, and can even use office productivity applications - once again, all this for free!

If all these free goodies were not enough, even the applications used to access the Web are available for free. We have secure and capable Web browsers, and feature-rich toolbars which add useful functionality to these browsers.

Clearly, the Web saves people a lot of money!

You would've noticed by now that everything is same for these 2 webpages, apart from the properties to which they point. index1.html points to various Google properties, while index2.html points to non-Google properties.

Google's PageRank, as much information about it is publicly known, doesn't factor outbound links to calculate the rank of a webpage. But that's publicly available information!

The question I ask is - will the rank of index1.html and index2.html be exactly the same (considering everything about them, except their file names and outbound links, is identical)? I have my share of doubts. It's in Google's interest to promote webpages which point to Google properties, so that visitors to those webpages have a higher chance of coming the Google properties which have been pointed to. And currently there is no way to ensure that Google is not engaging into malpractices. The underlying reason behind my doubt is that Google is both a gateway to the Web (both Google and non-Google properties), as well as a provider of some of what constitutes the Web. It helps Google if it can promote third-party pages pointing to Google properties, without letting anyone feel this.

This post echoes another concern of mine - Google promoting webpages with AdSense deployed on them, over those which either have no contextual advertising system deployed, or have a system deployed from one of Google's rivals. Read about my concern here

P.S. I composed the short essay used as the content of index1.html and index2.html

About Me

Thursday, December 18, 2008

PREDICTION: Google's Native Client Technology Is A Game Changer

No matter what benefits accrue from the use of a Web browser for running Web applications (platform independence, sandboxed execution, etc.), fact remains that a Web browser is yet another abstraction layer, and adds to the execution inefficiency. The Web code runs one layer higher, wasting precious CPU cycles, and consuming more memory. The speed lag may be less pronounced on powerful modern desktop systems (in part because Web applications have so far been put to relatively "light" uses), but imagine running the full version of Gmail or Google Docs on even a relatively powerful mobile device such as the iPhone (inside Safari browser) at an acceptable speed - it's laughable...

And so since many months, I was wondering - why doesn't Adobe / Google / Mozilla or a startup develop a product (either a complete platform by itself or a browser plugin) that allows "sandboxed execution of native code".

I'm delighted to see Native Client, Google's project that does just the same thing - sandboxed execution of x86 application code inside a Web browser. What's more, the characteristics we typically expect from browser-based applications - browser-neutrality, OS-independence and security - are preserved. Bravo Google! I see this project (and also JavaScript engines such as V8, that compile JS code to native-code) as game changers (albeit I believe it will take at least a year before Native Client gets a decent amount of traction, and at least 2-3 years before it starts getting widespread adoption).

My personal feeling is that this is a nail in the coffin of desktop applications the way we've traditionally known them. This makes it possible to securely run the full Photoshop inside a browser. And this is the technology (or a derivative thereof) that will eventually subvert / supercede the myriad of technologies fighting for domination as the choice for applications served from the Web (Web browsers, Adobe Flash, Microsoft Silverlight, Adobe Integrated Runtime, Sun Microsystems JRE/JavaFX, Mozilla Prism, etc.). To be fair, it's not the first time that native code is being run in a browser - that credit deservedly goes to Microsoft, whose ActiveX has long had this ability, albeit infamously insecurely (there is a reasonable probability that ActiveX can get a second life, if Microsoft evolves the technology to make it more secure). By creating a viable application platform layer at the browser level, Google further undermines the role of the operating system as a software platform, unlocking the long-held hold of Microsoft and Apple on their respective software ecosystems. Over the long term, NaCl poses a serious threat to these now-popular operating systems.

Quake running inside Firefox - over Native Client (from Ars)

Of course, Native Client is still at a fetus stage. It will progress in both evolutionary and revolutionary ways, and my belief that it will be a game changer factors in this expected evolution. Native Client has the essential quality any would-be contender as the dominant software platform must possess - cross-platform and cross-browser support (support on mobile platforms such as Android should follow in some time). Looking at it from an inverted perspective, I see no reason why Native Client shouldn't succeed. Finally, I see Native Client getting bundled with Chrome down the road (the way it has been with Gears).

Chrome (secure architecture + inbuilt search) + Gears (offline) + Native Client (heavy duty functionality + speed) = A fulfilling user experience for various types of applications and content.

I'm wonder why this project didn't get as massive coverage in press as I believe it deserves... Does my post on journalism provide some indirect (*cough*) explanation (read ranting...)

Sunday, December 14, 2008

Human brain's information-retrieval system is imperfect (apparently)

This post is in continuation to my previous post (Human brain could be storing & retrieving information as 'related blocks').

About a year back, I was at home and me and my sister were watching a program on TV. A character appeared on TV, which I felt I've seen before. I started trying to recall his name, but couldn't. My sister knew the name, and after watching me trying to recollect the name for about 5 minutes, she finally spoke out the name, and I exclaimed "Yes! This is his name!".

Immediately I realized something. To be able to confidently say that "Yes, this is the name", I must have compared the name that my sister spoke out to the name that was already residing in my memory. After all, it's impossible for me to claim that the name which my sister spoke is his name, unless I already have a full copy of that name in my brain, to compare with.

This leads me to two things:-
  1. Although my brain's information storage system had successfully stored the name, the information retrieval system was unable to read it
  2. Our brains have much more information stored inside, than we know. The inability of information retrieval system to retrieve all that information doesn't mean that tons of information isn't present
Why didn't the information retrieval system of my brain retrieve the name by itself? Possible reasons:-
  1. Wear and tear over time, leading to partial damage to the information retrieval system
  2. Inherent shortcomings in the system's design
  3. My focus was on some other task, and so the retrieval system wasn't focused on the right block (to better understand this point, read this - Human brain could be storing & retrieving information as 'related blocks'
  4. Excessive amount of information had been stored in the brain, and the retrieval system either found it difficult to retrieve information (pointing to a design flaw in the retrieval system, or its inability to scale), or the retrieval process required more time (there's no flaw in the design of retrieval system, but the time needed to retrieve information is proportional to the amount to information stored)
Will we be able to solve this problem in future? Two obvious approaches may help:-
  1. Improving hardware and algorithms of brain using genetic engineering
  2. Connecting the brain to external equipment to copy information stored in it onto a computer, and retrieving it from there
The intent of this post was to prove that the information retrieval system of human brain has its share of flaws. It will be helpful to go through this post, to get a better idea of my views on information storage inside the brain.