Thursday, November 18, 2010

Android Tablets overshadowing Apple Tablets

Tablet computers using Google Inc's Android-based system will steal some sales from Apple Inc's iPad and hold 15.2 per cent of the market in 2011, industry tracker IMS Research said.

The firm said in a report that over 15 suppliers will sell Android-based tablets by mid-2011, including Samsung Electronics Co Ltd, Acer Inc, Cisco Systems Inc and Dell Inc.

On the strength of those devices, IMS projected that Android will command 15.2 per cent of the tablet market in 2011. And that will grow to 28.4 per cent in 2015, IMS said.

Samsung has said it plans to sell 1 million of its Galaxy Tab tablets this year, according to Nikkei business daily.

"The availability of Samsung's Galaxy Tab tablet via mobile carriers such as AT&T in the US will quickly boost Google Android's presence in the tablet market," Anna Hunt, the IMS report author and principal analyst, said in a statement.

Research firm iSuppli expects 15.6 million tablets to ship this year, with 13.8 million of those being iPads, which got a head start on the competition with a launch in April.

Next year, 57.3 million tablets are expected to ship with the iPad making up 43.7 million of those units, iSuppli said. Companies competing against the iPad by bringing out a new tablet must contend with the fact many application developers are gearing their products to the iPad's specifications, said Rhoda Alexander, an analyst with iSuppli.

The IMS Research report also notes that technology companies Research in Motion Ltd and Hewlett Packard Co have invested in operating system technology for tablets. As a result, IMS forecasts that, in 2011, 7.8 per cent of tablets shipped will run on operating systems other than Apple OS, Android or Microsoft Corp's Windows.

Thursday, November 11, 2010

Writing well-behaved, efficient, AIR applications

The Adobe AIR platform makes it possible for many talented developers familiar with AJAX or Flash to build desktop applications. However, with great power comes great responsibility.

While an app running inside the browser can count on being short lived, it’s a different story with a desktop application. A desktop app may run for hours, if not days, at a time. Think of the many popular Twitter clients as an example.

As a desktop developer you have to give more thought to the resource usage of your application, such as the memory and the CPU, which is what I’m going to focus on here. The quantity of CPU cycles available on the machine is a resource shared by all the other apps (and system processes). Every CPU cycle your app use is a CPU cycle not available for something else. When the user is interacting directly with your application, using CPU cycles to present the most engaging experience possible is reasonable. However, when your application is in the background, your goal should be to reduce your CPU usage so that your app is as unobtrusive as possible and so that the application that the user is directly interacting with has more CPU cycles to use.

Keep in mind also that how much of the CPU is used affects the power consumption and therefore the battery life of laptops. Reduce the CPU usage of your app and save the planet.

What can you do? The first step is to measure. You can use some simple tools to get some rough data. For example, the Activity Monitor application on Mac OS, the top command line tool on Linux and the Task Manager on Windows.

Use these tools to watch out for the CPU usage of your application. Bring your application to the front, interact with it, and consider if the reported CPU usage is what you expect. While decoding high-def video you should expect that more of the CPU will be used than if your app is just doing some text editing.

Now, bring another app to the foreground. Watch out for the CPU usage of your app again. It should have dropped significantly. It’s OK for that number to jump back up from time to time (for example if you connect to a web service from time to time), but in general, lower is better.

As an aside, you can also use these tools to measure your app memory usage. Keep your app running for 24 hours, then measure the memory usage again. It should not have increased significantly, if at all.

How can you lower your CPU usage? Here are a few tips to consider.

1. Use the lowest framerate possible

The framerate of your application refers to how often the windows of your application are refreshed (the stage is redrawn on screen). With a framerate of 24, the content of your app is refreshed every 41ms (24 times per second). The framerate also defines how often the ENTER_FRAME event handler is invoked.

If you build a Flex-based application, the framerate by default will be 24. For many apps, that may be more than you really need. Try to lower the framerate as low as you can. Start with 7fps, then try to go lower. Once you’ve lowered the framerate see if there’s any interaction glitch while using your app. Watch out for animation and transitions in your app and make sure they’re still smooth.

To change the framerate of a Flex application, set the frameRate attribute in your mx:WindowedApplication tag.

For example:
If you are using Actionscript or Javascript, you can set the stage.frameRate property to the desired value.

In many cases a lower framerate has no discernible effect on the quality of animation or the interactivity of your application but will result in a decreased CPU usage. Notice also that the refresh of video is independent of the framerate of your application, so even if you’re playing video, try to lower your framerate.

2. Dynamically change the framerate to fit your application needs

In addition to lowering the framerate of your application overall, you should also consider changing the framerate depending on what your application needs at different point in time. For example, you may need a higher framerate when displaying an animation. However, this may happen infrequently and there’s no reason to set the framerate of your application to the maximum you will ever need. Instead, you can temporarily increase the framerate when you need it, then set it back to a lower value.

For example, you may need to increase the framerate (maybe to 12 or 24 frame per second) during a visual transition (a Flex state change), while responding to a dragging operation, while your window is being resized or the layout of your application changes, or while playing video.

On the other hand, consider lowering the framerate even further when your application goes in the background. If your app is in the background, that’s probably a good indication that the user is focussed on something else, and if it means pausing some animation, or having them occur with less fidelity, that may be a valuable tradeoff. You can set your framerate as low as 0.1 or even to 0. Even with a 0 framerate, your app is not completely paused. It will still be sent events to react to, such as activation, window move and resize, mouse and keyboard, etc…

While in the background, if you have an ENTER_FRAME handler or some timers, you might want to consider unregistering them to further reduce your CPU usage. Restore them when your application is brought back to the foreground.

For example:
// In your application initializer:

// The application is being sent to the background
public function applicationDeactivate(event:Event):void {
this.removeEventListener(Event.ENTER_FRAME, enterFrame);
stage.frameRate = 0.1;

The above example uses Flex, but you can accomplish the same thing using the Event.DEACTIVATE event.

3. Only use Event.ENTER_FRAME handlers when necessary. Which is almost never.

You could think that Event.ENTER_FRAME handlers provide a convenient mean to perform some repetitive action. However, you must be mindful that they are not called just “once in a while”, but with every single frame that gets drawn on screen. That’s a lot. In general, you should only use an Event.ENTER_FRAME handler if you need to do some processing whenever the display is refreshed. That should be exceedingly rare. There’s usually a better (more efficient) way than using an Event.ENTER_FRAME handler. In fact, the only case I can think of where you could justify using Event.ENTER_FRAME is to calculate the effective framerate of your application.

For example, if you need to track the mouse, register for Event.MOUSE_MOVE events instead. Those events will only get dispatched when the mouse is actually moved. You should consider register for Event.MOUSE_ENTER and Event.MOUSE_LEAVE if that’s really the only thing you need to know.

If you need to do some processing not related to display, for example some sound processing, use a Timer instead of Event.ENTER_FRAME. You can choose how frequently to invoke the timer based on the amount of processing you need. You may be able to use a lower framerate for the stage, and a higher frequency for the timer. This will save considerably on the amount of CPU used.

Note that for animations, you are often better off using a Timer as well. The Event.ENTER_FRAME handler may not be called at exactly the framerate you expect anyway. As a result, if you base an animation on how frequently this handler is called, stutter may be visible. Instead, base your animation on absolute time, which will allow you to vary the framerate as needed without affecting the animation:

// Ease function to make the logo blink slowly
public function ease(t:Number): Number {
return (Math.sin(Math.PI * (2 * t - 0.5)) + 1 ) / 2;

// This handler is called anytime a new frame is
// drawn. Use sparingly.
public function enterFrame(event:Event):void {
logo.alpha = 0.2 + ease(new Date().time / 3000);
Whether you use a Timer or a Event.ENTER_FRAME handler make sure you stop and unregister them as soon as you can. Even a handler that does “nothing” will be consuming some significant amount of CPU cycles. That actually also applies to any kind of other event handlers, such as Event.MOUSE_MOVE. As soon as you’re done with them, make sure to unregister them.

The same advice that applied to your overall application framerate also applies to the frequency of timers: try to use the lowest frequency you can get away with. Experiment to find out what is acceptable. Also, vary the frequency of timers as needed, for example reducing them when your application is deactivated.

4. Have as few Event.ENTER_FRAME handlers and Timers as possible

You often need to do periodic operations for a variety of reason. It would be tempting to have multiple Timers or multiple Event.ENTER_FRAME handlers. However, there’s a non insignificant overhead with each Timer (or handler). Instead, try to group all the periodic operation that you need to perform in as few Timers as possible.

All the operations that need to happen at the same frequency should be handled in the same timer. Try to have at most a couple of Timers, maybe one for animation with a frequency of 40ms and another to do “background” operations every 2000ms or so. Turn off those timers whenever you’re done (for example, turn off the animation timer when the animation is done, and start it again if you need a new animation).

Note also that setInterval and clearInterval are implemented using Timers, so don’t think they are any lighter weight.

Saturday, August 28, 2010

Make Galleries For Your Website....

Fabulous way to make Galleries for your website.
Install Adobe Bridge CS5.
And follow some simple steps to make your websites full of charm and grace. 
Just click on the image if you cant see properly. It'll take some time but its worth it. 

Open Adobe Bridge CS5 on your computer.
Select Folders Pannel. Or get folders pannel from the Windows Menu bar from the top 

On the Left hand side, browse through the folders that contain wallpapers or photos which are desired to be the part of the gallery.

Now you have to select files from the content pannel as shown below.
You have to select the files that would to be the part of the gallery.
select it with Ctrl+Mouse Click on that file.

As I said, I have selected few files at the bottom.

Look at the top right corner of your screen. Select Output pannel from there. If it doesnt appear, click on the down arrow and select "Output".

Select Web Gallery Options from there(in the top right part)

Choose the type "Airtight AutoViewer"(preferred).... or any other as you want.

Select "Lightroom" for style.

Following are the pictures to customise your view.

Let the gallery be created.

Open the folder where it is saved.
Open Index.html in your favourite browser which has flash.

Just check out the effects of browsing photographs in your HTML page.

Enjoy and Innovate.
Happy "BRIDGING"!!!

Friday, August 20, 2010

"BUMPTOP 3D" - Desktop Innovation

Via Mashable and ReadWriteWeb: Anand Agarwala’s Bumptop, a viral demo from TED2007, has gone live (for Windows).

Two years ago, a bright engineer, Anand Agarawala, gave a presentation at the TED conference about a new technology he and a team were working on that showed how they believed the desktop should work. Just like how people use a real desk, they believed that the user should be able to interact with desktop items in 3D, pin up photographs, pile related items into stacks, and more.

Today, that dream has become a reality with the launch of BumpTop for Windows (Mac version coming soon), a gorgeous desktop application that transforms the desktop from a cold, vertical interface into a dynamic 3-dimensional room …

Right now, the site seems to be swamped. So until you can check it out in person, here’s Anand Agarwala’s demo of Bumptop at TED:

This is my old desktop : 

Now crank it up..... new desktop with BUMPTOP....
Messy New Styled Desktop.... With all the things here and there.. 
Select all of the icons and pile them.... 

Piled Icons 
Perform operations on the file.... 
Push the files or icons on thePile top.... 

Emphasise any Icons.... 
Paper fold properties to icons as a reminder.... 
make an icon as a dust ball and throw it on side.... 
Select all 
Throw it like a pack of cards 

Even pin imp files on the wall.... 
Excellent photo browser..... and thats bumptop

Tuesday, August 17, 2010

Tug of War: Push mail vs. Pull mail

             For the first stride, let us take a look at what happens when you access your email account from your PC: Every time your email client (whether it is Thunderbird or GMail's web interface) refreshes the email in your inbox, whether it is automatically after a set interval, or you refresh it manually, your computer will send a request to your mail provider's servers. The mail provider then checks for new mail and returns the same to you. This is pull mail, working pretty much like you expect the web to work.

            All was hunky-dory in the world of email, until mobiles-dapper-enough-for-email came along. The steps above were followed on the earlier handsets, and they’d flaunt their GPRS capabilities and fetch mail on the go. But with constrictions of battery life and data charges, it was soon realized that the current system of email was not the most efficient for phones. Thus was born Push-mail.

            Brought to the fore by RIM’s BlackBerry, this type of mail service eliminates the step where your device needs to send a request to the mail server to fetch mail. BlackBerry, for example, mediates between your mobile and the email provider. Theoretically, the ‘refresh’ done by you, is now done by the servers of the company – after all they're the one who know first when you get mail. If there is new mail, it is pushed onto your device. Now this is a very important ability: the ability to wake your phone up from stand-by. It is much like sending an SMS. Your phone doesn’t have to be ‘awake’ to receive it, thus, saving battery life. This was not the only reason for BlackBerry’s success though. It was also their proprietary encryption, protocols and near-real-time delivery of mails that made these phones indispensable for many businessmen.

            Another way to do the same is using the IMAP IDLE feature of the IMAP protocol. To understand how it works, consider this: Suppose you want certain data from a server. You send a request and wait. If there is no response within a stipulated time, the session gets expired or the packets get lost. In IMAP IDLE, this waiting time is very long. So a message is sent to the server and the phone waits in idle mode while the push-service provider checks for mail at regular intervals. The main constriction of the change of IP or network of the user is solved here by sending a new IMAP IDLE request if the user hops onto another network. Although it is a more widespread alternative, it does not match the efficiency of BlackBerry because you need a constant connection with the server. This creates a problem when your mobile service provider times out idle connections after 5 minutes, hence reconnection and battery kill is required. However, if this doesn't bother you, then one advantage is that many IMAP IDLE based push-mail clients are free or come bundled with high-end phones. These include: Emose, Yahoo Push Mail, Google Sync etc. for all platforms. K-9 Mail and MailDroid for Android. OviMail and Nokia Messaging in Nokia also work on IMAP IDLE. These clients work with popular email services like GMail, Yahoo, and Microsoft Exchange servers.

            BlackBerry is for the elite (their cheapest phone is around Rs. 10,000) and not every phone supports IMAP IDLE. I mean to point out the Java-based mobiles and low to mid-end Nokia phones that the masses love. This is the reason why a common Indian man has probably never used, or even heard of push-mail. This is the reason why we penned down this article. It is not that survival is difficult without push-mail, but instant delivery of emails is bound to attract anyone who needs to check the inbox, due to bindings of profession or obsession. And it is only healthy that like every other technology, push-mail comes to the masses at reduced prices.This has been accomplished to some extent by several providers of email-over-sms service, where a part of the mail is sent over SMS to your phone. This obviously supports each and every phone out there. It is probably as bare-bones as it can get. As far as push-mail over low end phones is considered, a much better alternative from our own backyard is BlacMail (available free for now), by a Bangalore-based startup, Fifth C Solutions. It is a variation that builds on the strengths of email-over-sms, while providing features like a graphical interface, address filters, and most of all – the much desired BlackBerry experience to the masses. That it uses the GSM channel to perform the task generally meant to be performed over the data/GPRS channel is also desirable (very similar to a recent project by HP Labs). It is in process to get a GPRS based version too that will take care of the attachments et al. We feel that a GPRS capable service, with initial push through GSM channel would be a winning mix, not just for the low-end phones. The provision of this service by BSNL (in Karnataka for now) shows that the people out there do want a taste of the cherry... oh, we mean, the berry!

Thursday, August 12, 2010

Welcome to the Era of Paperless Reading

Environmental Protection Drives Demand for e-Book

Printed materials are the number one way most people receive information. Nowadays, however, thanks to technological developments and increased focus on products that are environmentally friendly, the e-book has been one of the hottest products in the ICT field.

E-Reading: An Irresistible Trend
North America is the world’s fastest growing market for e-readers. It is estimated the market in the United States will reach 6.8 million units in 2010. Globally, 75% of e-readers are sold in North America. In addition to Amazon, Sony and Barnes & Nobles are also keen to increase their digital content. As of the end of 2009, consumers were able to access 2.85 million e-books. It is also expected that around 1 million e-readers will be sold in China this year.
According to DisplaySearch, the popularity of e-books, particularly Amazon’s Kindle, increased electronic paper display (EPD) shipments to 5 million units in 2009, up 417% from 950,000 in 2008. It is believe that this growth is a vote of confidence and an indication that consumers have embraced e-books. The research institute also pointed out that momentum from e-book popularity last year combined with new, larger-screen products hitting the market right now, means this trend will continue.
The Taiwan-based IT company, Ben Q Corp. has any eye-catching achievements in the popular field of e-reading. The company’s Vice Chairman Jerry Wang pointed out that with the popularity of iPad, the market for e-readers is likely to expand quickly. However, he also addressed the odd relationship between the iPad and various e-readers, “Mutual benefits exist between these two devices, but there is also competition. What I mean is: iPad undoubtedly helps to push the e-reading habit among readers, since people will gradually get used to holding a ‘pad’ to read, which benefits the sale and development of e-readers; but in the end, which device will readers choose to use when reading? iPad or e-readers? This is where there is much competition.”

In Wang’s opinion, e-readers will ultimately come out on top because they are designed to mimic the traditional book-reading experience. E-readers do not require a backlight or strong CPU and storage. They are slim and light with low power consumption. “The cost of e-readers will be similar to that of calculator, which cost US$1000 in 1970. But are now worth only US$10 each!”

Although it seems that everyone involving in the e-reading industry possesses is very optimistic about the future, Wang urges industry insiders not to forget readers’ expectations. “Content plus devices equals end-user reading experience, which is exactly what end-users care about. If the industry cooperates to offer them a good reading experience, then the market will grow faster than we expect.” That is also why BenQ does not feel that the business model for e-readers will copy that of MP3 players, which allows users to download free music from the Internet on their own. “Free content may not be very readable and thereby will not create a good reading experience for end-users.”

“Readers want the e-reading experience to be just like reading a book, nice and easy without the cold feeling of holding a machine. They also want flexibility in how they read. What they do not want is a mass of wires and cables around their ‘book’ or to have to charge the device all the time. They also want buying books to be a quick purchase process -- they are willing to spend only 20 seconds buying content from the Internet!” In other words, potential customers are looking for technology to make their lives easier and more convenient, rather than a burden and too much trouble. “Time should be spent reading, not operating the device. Our goal is to maintain consumers’ reading experience even where devices vary,” Wang says.

Wang also proudly announced that BenQ’s ambition is to successfully integrate hardware and content and develop its own distinctive business model for services.

Monday, August 9, 2010


Exploring FLICKR
-          Browse FLICKR by tags
Make sure that you click on the tags only option
e.g. type Mumbai Rains are Fun
-          Map
Uses Geo Tagging
easily possible to notice where the picture came from.
-          Commons
Hidden treasures of the worlds public photography archive. A must watch.
-          Bulk Downloads with BULKR
Easily download your photostream.
-          Flickr Games
guess one word for the photo. Fastest answer = more points.
-          Fun way to browse your photos
-          For Large Screen….. still enjoy Flickr
Totally new interface and design
-          Notes using flickr(fancy notes)
-          Flickr Badge(flash of images)


Wednesday, August 4, 2010