Pages

Sunday, January 30, 2011

Scrum Tuning, Presentation

A great presentation on Scrum by Jeff Sutherland, Ph.D, held at Google on December 7, 2006.

http://video.google.com/videoplay?docid=8795214308797356840#

Friday, January 28, 2011

Battery Tips for Android

Having had a great battery life with my phone initially and then dropping to less-than-a-day battery life, I spent some time reading the advice and trying some of that out. I have to admit that having a very good battery life initially happened because I had immediately disabled all the Location and Network functions after I got the phone. I did not have data on my plan so I did not need the networking. Also, there was not too many applications nor widgets installed and active.
After adding a whole bunch of applications (and, the worst of all - a whole bunch of task managers that are real battery vampires) and adding the data plan, the battery on my phone lasted only a few hours. The main reason for this was identified in being LauncherPro. With having that as my default home, the battery would be drained in a matter of a few hours. I noticed the system also got terribly slow. Applications would crash and the performance was just a pain. I haven't figured out where the conflict was - whether it was some of the widgets or background services - but removing LauncherPro and bringing back the default (Tw) launcher and home screen seemed to bring things back to (the new) normal.
Then I monitored the CPU and battery usage and haven't really found any further good suspects to eliminate. However, here are some tips that make sense to me, in general, so I added them to my phone practice:
  • Set the screen brightness to minimum. Possibly, use widget as a switch between brightness off (indoors) and auto brightness (outdoors). Widgetsoid's slider shows the actual percentage amount while the default slider for brightness does not. I found out my brightness was at 7% instead of 1% so I finally managed to set it to minimum.
  • Use Autostarts to actually disable startup items rather than kill them after they are started.
  • Remove widgets that consume CPU but are not absolutely necessary. I used to use widgets as mere shortcuts to the full application so replacing the widgets with actual shortcuts helps. Found Widgetsoid, a great widget app that consumes very little CPU/battery and allows access to most options I need.
  • If using Launcher Pro, do not use updating icons (Gmail mail count, SMS count, etc.). I decided to switch back to the default TwLauncher for peace of mind.
  • If disabling location finding via GPS, you might as well disable the same using cellular network.
  • DO NOT use task killers unless you really need to. There are several wonderful applications that will display the CPU usage and even monitor it over time (I recommend Usage Timelines, SystemPanel, & Android System Info). Use this for a period to identify hogs and eliminate them. Then stop monitoring and leave the application management to Android. That's why it's there.
    Note: If you keep killing apps, they tend to get started by certain events. There is an app that can show you all the event hooks in the system (I think it is Austostarts that does this, as well). So, you save battery by not killing those apps.
  • Uninstall the applications you are not using but that keep starting themselves every now and then. Different events will trigger different applications so, if you don't need them, the best option is to uninstall. Keep the apk package handy if you ever need them later.
In regards to network, my preference is to turn the network on only when I need it. Usually by using widgets to start the 3G connection and auto-sync. Then I let the apps update whatever they need to and/or use the Internet and then disconnect when I'm done. Also disable background network traffic as I hope applications will understand this and not send network request when network is offline. Still need to monitor usage for a bit longer to confirm how this affects battery life.
Edit: Although I disconnect 3G when not using it, I don't go into trouble of disabling the whole background communication. Things seem to work well. One observation I'd make is that it would be good to uninstall the applications that are not really used as there tends to be a lot of services and applications running in the background and, sooner or later, they *do* consume power and CPU cycles because they *are* checking and doing something. Monitoring the CPU usage displays that clearly.
Edit, 2011-01-28: After applying these tips, my phone has been alive and well on a single battery charge for 5 days and 5 hours and the battery is still at 15%. I have used it as I would normally - phone calls (over 42 minutes), taking photos, uploading to Facebook, checking emails in the morning and sometimes during the day, checking the web site for train schedule, checking GPS location, browsing online maps, missed calls, SMS messages, etc.
I still use widgets for 3G traffic, calendar, todo list, Financisto, and 8 Widgetsoid switches and indicators.
After finding how to rearrange icons in the application launcher, I started utilizing application shortcuts instead of numerous widgets for running the apps. Some of the apps I'm actively using are now located on the first two screens of the app launcher and others are accessible by tapping the widgets.
There is over 250 applications installed on the phone. It takes eternity just to list them. Use Android System Info for checking installed packages, uninstalling, etc.
2G network is being disabled overnight with Tasker and turned back on in the morning. The phone is also being used as a wake-up alarm in the morning with Alarm Clock Plus.
Before this session, I've depleted the battery completely and then recharged fully without turning the phone on in the meantime.
And, at the end, the phone is Samsung Galaxy S. :)
Edit 2011-01-30: The battery made it to 7 full days!

Update: Check out related post - Zeam Launcher improves battery life on Android.

Tuesday, January 18, 2011

VoIP Test Call

Just did the first proper SIP phone call from the Galaxy S to test out the quality and data usage. 

The call quality was pretty decent on my end. I could hear the other side well in duplex mode, there was no echo, and the whole experience was quite pleasant. There were initial quirks on the very beginning after the connection has been established but that went away after about ten seconds or so.

For the other side, the quality of connection was not as good as it was for me. They could hear echo and their own voice. This really affects the conversation, at least for me. I can't stand hearing myself repeating what I just said. However, in this case the conversation went pretty smoothly.

So, CSipSimple justified the praises other people had for it. The data usage for a 13:04-minute conversation was somewhere around 6.5 MB. It is hard to say because I did not note down the actual amount of data used before the call. It was somewhere in the range of 15 MB. And, at the end of the conversation the usage was at 21.55MB. That is pretty decent usage amount. As in the data usage is negligent - about 0.5MB per minute of duplex conversation. 

Saturday, January 08, 2011

E-Commerce Packages

I was asked a question about a decent e-commerce package for a small shop. As I haven't looked into those for a while, here is a great post that lists 10 such packages for a variety of platforms and frameworks. The list is a great reference for when you need an Open Source web site for e-commerce.

http://blog.webdistortion.com/2008/05/03/9-kick-ass-open-source-e-commerce-platforms-reviewed/

Friday, January 07, 2011

SIPDroid

SIPDroid FAQ explains quite a bit - http://code.google.com/p/sipdroid/wiki/FAQ

The useful part is the estimate of data use when calling through SIPDroid. Makes me wonder when are international calls all going to be routed through Internet.

WCF for jQuery

There is a great project at Codeplex that enables easy interaction between jQuery (or any other HTTP-based client) and WCF service. Support for Linq included.

Check out http://tomasz.janczuk.org/2010/10/wcf-support-for-jquery-on.html and wcf.codeplex.com

 

Wednesday, January 05, 2011

IIS Express

IIS Express (Beta) is available for download.

Have a look at Scott Gu's announcement - http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx

and then download from link at http://learn.iis.net/page.aspx/868/iis-express-overview/

direct link - http://download.microsoft.com/download/D/5/5/D551345B-1E08-4578-B8D8-662AC6BE8277/iisexpress_x86.msi


Tuesday, January 04, 2011

Maps of the Internet

There are several great maps of the Internet today. They portray different statistics and show a lot. Let's see...

1. XKCD map of online communities (link), showing the size of online communities

2. World map of Facebook friend connections (link)

3. Web is Dead article (link), showing the breakdown of total US internet traffic from 1990 to 2010

Saturday, January 01, 2011

Clear Gallery Thumbnails on Android

As I often transfer the photos from my (Android) phone to the PC, I delete them from the phone. However, the thumbnails remain in the Gallery application. They happen to be black, indicating there is no photo, but they are still there, which is a bit annoying. I tried some tips from forums to use Astro to clear thumbnail cache but that did not help.
To remove all the thumbnail data - go to Android directory on the phone (on Android 2.3.7 Cyanogen it is on SD Card in /mnt/sdcard/Android). Delete "com.cooliris.media" directory.
After this, you will notice the media manager rescanning the media and, when you open the Gallery, only the existing photos will have thumbnairs. Voila!