Tuesday, August 31, 2010

Happy birthday Blogger!

One of the best blogging platforms available till date, Blogger, turned 11 this month. I have been using blogger even before it was acquired by Google. It is a very good blogging platform even for a person with less technical knowledge. To celebrate its birthday, Google has arranged for the first ever Blogger global birthday party (BloggerFiesta).

 Hyderabad Bloggers meet

The Hyderabad bloggers meet (BloggerFiesta) was organized by the city based six-digit blogger Amit BhawaniBloggerFiesta at Ohris Jiva. The number of entries for the same had been restricted to 50. Around 40 bloggers turned up for the event which started around 7 PM. The event started with a quick round of introduction from the bloggers present there. There were people from different background and it was nice catching up with the fellow bloggers and their interests. After that people started networking with each other while enjoying their food. Chetan Bhawani (Amit’s brother) and his friends organized an open quiz for the participants and goodies were given to the winners. The quiz was interesting and I participated actively answering many questions. Won a gift voucher and a T-shirt too. :) Though I have met Amit on few other occasions before, just happened to talk to him personally today.

Few valuable tips about blogging were given to the participants as a hand-out. Though Amit was actively answering the questions asked to him, it could have been better had he given a talk on blogging instead of just the hand-out. Also, the choice of place could have been better. Overall it was a good experience catching up with few interesting people from Hyderabad.

Thanks to Amit and his team for organizing the bloggers meet.

-- Varun

Sunday, August 29, 2010

[How to] Change fonts on Nexus One

Few days back, I had rooted my Nexus One using the article I had posted about rooting the Nexus One. One of the main reasons behind that move was the inability of Android to render the text in my mother tongue (Tamil). The plain vanilla Android 2.2 does support only a limited set of fonts and it has no support for Unicode yet. DroidSans is the default font used on Android devices. Fonts are placed inside /system/fonts folder of the Android system. After rooting my device, I tried installing few fonts which support Unicode char-set and my Nexus One is able to render Tamil characters now. However, some special glyphs of the Tamil language are not getting rendered properly. This is something to do with the position of the characters. Anyways, now I can read my favorite Tamil blogs on my dearest Nexus One.

Tamil text being transliterated Sending out a Tamil tweet from Nexus One 

Nexus One displaying Tamil characters!!

Here are the steps to be followed to change fonts:

  • First requirement here is that your device must be rooted.
  • Find out the font which supports Unicode char set. I have used “Arial Unicode MS” for rendering the Tamil characters.
  • Download and install the latest Android SDK from here. This comes up with all the tools needed for development and testing of your application. Make sure the driver ‘ADB interface’ is installed on your machine. In most of the cases, the driver will be installed directly once you plug-in the device.
  • Connect your Android device to your PC on debug mode. Enable USB debugging on your phone. Settings > Applications > Development > USB debugging.
  • On your laptop, open a command prompt and enter “adb shell”.
  • By default, /system partition is mounted as read-only. Need to re-mount the same in read-write mode. Follow the instructions here to do this.
  • Take a backup of the DroidSans font in super user mode. “adb shell”  > su > mv /system/fonts/DroidSans.ttf /system/fonts/DroidSansOriginal.ttf
  • After that, you have to push the Unicode font you have selected by executing the command “adb push <path to your font file> /system/fonts/DroidSans.ttf” So, we are just replacing the DroidSans font with the new one. The font you are choosing should support the characters originally supported by DroidSans. Otherwise, this is what will happen.

-- Varun

Saturday, August 28, 2010

One-Click root for Nexus One

If you are a tech savvy person, probably the first thing you will try to do on your Android is rooting it. Rooting is the process of gaining root privileges on your Android device. It enables an user to override protected features of the Android Operating System. After rooting the device, one can install the unofficial firmware images. There are different ways of rooting the device. The common method is to unlock the boot loader using the fastboot command. Remember, this will void the warranty. You will even see a warning from Google before doing this. Our friends at XDA have developed lots of tools to ease the rooting process. Quick rooter for Android 2.2 is one such popular tool. It does not install a full ROM, but, meant to be flashed over an existing Froyo installation. Rooting gets further easier with the new application “Universal Androot”

One-Click root

  • Universal Androot is the application which does the magic. The beta version of it can be downloaded from the developers site. Open the application after installing it.
  • Just click on the “Root :-)” button to unlock your device. Kudos to the developer. It works. “SuperUser” application will also be installed after you root your device. This is used to allow / deny when someone request for root access.
  • The application also provides an option to unroot your device. It is working with minor issues.

Universal Androot Super User application getting request from a shell

Supported devices
Google Nexus One (2.2), HTC Hero (2.1), HTC Magic (1.5), Dell Streak (2.1), Motorola Milestone (2.1), Motorola XT701, Motorola XT800 (2.1), Motorola ME511, Sony Ericsson X10 (1.6), Sony Ericsson X10 Mini Pro (1.6), Acer Liquid (2.1), Vibo A688 (1.6)

Disclaimer: I am not responsible if you mess up your phone trying this application.

(via xda-developers)

-- Varun

Monday, August 16, 2010

3DS, the glasses free 3D technology!!

Three-dimensional (3D) movies / videos are cool but you need to have the special glasses to enjoy them. If you are a person wearing glasses already, 3D glasses are a definite pain. Here is a new technology which, will be part of the upcoming gaming console Nintendo 3DS, can produce 3D effects without the need for glasses. Check out the video by Kombo’s Jeff Grubb to know how it works. More information can be found here.

Thanks to Nanda Kumar (@nanda_kumar_R) for sharing this info. On a different note, YouTube has been testing a video player for watching videos in 3D.

-- Varun

Nexus One Twin (HTC Desire) reaches India

The wait is finally over. HTC announces the launch of the Nexus One twin (HTC Desire) in India. The phone has the similar configuration as that of Nexus One in terms of the processor, memory, camera, resolution, etc. HTC has tied up with Tata DoCoMo to launch the phone in India. The cost of the phone is R 28,900/- which is quite reasonable when compared to the cost of iPhone 3GS in India. Trust me, it is powerful than iPhone 3GS. The new HTC Desire will be available starting today at all authorized HTC resellers across the country.  HTC Desire Few differences

  1. Optical trackpad instead of a trackball which I have hardly used on my Nexus One.
  2. FM radio. Though the Nexus One uses the same Broadcom BCM4329 WiFi/FM transmit/receive chipset, Google has not enabled it officially. Need to use a modified kernel and ROM for listening to FM Radio on Nexus One.
  3. No dual microphone to cancel the noise in HTC Desire.
  4. HTC Sense UI.
  5. Android 2.1. Froyo update will be available soon.

If you are planning to buy an Android based smart phone in India, this is the best phone available. The next version of it, HTC Desire HD HTC Ace, has already been spotted on Engadget.

-- Varun

Sunday, August 15, 2010

This week on Twitter [August 15, 2010]

Science & Technology

  • Street level imagery from Microsoft. Street Slide. Link.
  • Sun eruptions spit plasma at Earth. Link.
  • Eco-friendly USB rechargeable batteries. Link.
  • Kindle games. Link.
  • Helicopter game using HTML5. Link.
  • Make your old add-ons work with Firefox 4. Link.
  • Skype files for IPO. Link.
  • Mathematical breakthroughs. Link.
  • JQuery for mobile announced. Link.
  • Amazon opens UK Kindle store. Link.

Social Media

  • “Who to follow” is live on Twitter.
  • Twitter’s short link service. Link.
  • “You both follow” feature is live on Twitter.
  • Twitter now even more Torrent friendly. Link.

Google

  • Google launches multiple account sign-in. Link.
  • Google discontinued Wave. Link.
  • Google’s Ultimate demo system. Link.
  • Google updates the Contacts in GMail. Link.
  • Flipping for Gesture search. Link.
  • Product development at Google. Link.
  • Google unveils Voice actions for Android. Link.

Gadgets

  • JailBreakMe, the first web based Jailbreak for iPhone. Link.
  • RIM announces its first touch phone. Blackberry Torch. Link.
  • Two new Android based smart phones from Moto. Link.
  • HTC Wildifre available in India for 16K. Link.
  • Nexus One officially became a developer phone. Link.

India

  • Malaysia plans new Visa system (VFS) for India. Link.
  • Indian Govt. forms programmers’ army to hack systems of hostile nations. Link.
  • Mobile Number portability by Oct 31. Link.

Sports

  • Stumpy is chosen as the mascot for the 2011 cricket world cup. Link.

Events

  • Speakers announced for TEDxChennai. Link.

-- Varun

Solve these problems!

Math Problems

  • Given an arc construct a circle containing the arc.
  • Given three points construct a circle passing through all the three points. Ignore the co-linearity case.

Algorithmic Problems

  • Find out the pair of numbers from an array of numbers having the given sum.
  • How can we search a number in O(log n) in a circularly sorted array?

A friend of mine asked me these questions. I had lost touch on most of the geometrical concepts. It was interesting solving these problems again. I guess they are some of the standard ones at schools.

-- Varun

Saturday, August 14, 2010

Happy Independence day!

From Struggle..

To Freedom.. To Progress…

India moves forward…

Celebrating with you the Pride of being part of a nation that’s eternal and ever-new.. Happy Independence day!! :-)

Indian Independence day (15-Aug-2010)

-- Varun

Building Android apps using your favorite scripting language

Android market is growing day-by-day with lots of cool new applications. Google is trying to make the application development as easy as possible by launching a WYSIWYG designer for Android apps – Android App Inventor recently. However, the developers were restricted to only one language Java. There is an interesting project hosted on Google code named as Scripting Layer for Android (SL4A) which will remove this language restriction. The project (which was formerly known as Android Scripting Environment) allows you to build applications using any of your favorite scripting languages like Python, Perl, Javascript, etc.

Script Browser (SL4A) Script editor showing Perl scriptHello, World Android application using Perl 

Some interesting facts about Android Scripting

  • Android Scripting works on the principle of cross-compilation. Interpreters are written for different scripting languages which will interpret the scripts and execute them as native Android application.
  • APIs are available for Python, Perl, Javascript, JRuby, Lua, BeanShell, Tcl and Shell. These APIs are simplified interface to many of the APIs available to full-fledged Android development. API Reference.
  • The scripts can be run as background task or from a terminal.
  • Install the application ‘SL4A’ from here. The application has a script editor and a terminal interface. Check out the advanced topics here.
  • The project is hosted on Google code. Anyone, who wants to support their own scripting language, can write the interpreters for the same.

I wrote a Hello, World application using Perl. What are you waiting for? Get your hands dirty. Start building apps using your favorite scripting language. Enjoy scripting!! :-)

-- Varun

[How to] Fix the 3G issues on Nexus One

You can’t get everything right on the first go. Even the most successful products enter with minor defects. Google’s first attempt to launch a smart phone was no different. First version of Nexus One (T-Mobile compatible version) shipped had issues with 3G connectivity. The connection was getting lost often. Though Google claims to have fixed this issue with an OTA update (for the pinch-to-zoom capabilities), some of the users continue to suffer 3G connectivity issues. I have this problem on my Nexus One – the mobile network connectivity continues to hop from 3G to Edge and to 2G even with the same signal strength.

 Phone Info Network Type

How to diagnose the problem?

  • Its pretty easy. The network notification bar jumps from 3G to Edge and back to 3G often (even from the same location). However, one can not conclude just by this. There may be actual signal problems in the place. But, there is a technical way to diagnose this problem.
  • Android phone has a number of hidden interfaces (interfaces which can not be launched by a naive phone user). ‘Phone info’ is one such interface which gives you information about your phone connectivity as well as the mobile network.
  • As the ‘Phone info’ interface is hidden, there is no straight way for the user to launch this interface.
  • How do I launch these interfaces? Any application available in Market? ‘Any Cut’ is an awesome application which comes handy here. ‘Any Cut’ allows you to instantly create shortcuts for nearly any function that your phone has to offer. Install the app from the Android market.
  • Open the ‘Any Cut’ application. New Shortcut > Activity > Phone Info. A new shortcut will be created on the home screen. (Organize the shortcut using folders)
  • Open the shortcut ‘Phone Info’. This will open the hidden interface ‘Phone Info’.
  • ‘Phone Info’ shows information like the IMEI number, Current network, Signal strength, GSM service, Network type, etc. Monitor the signal strength. Whenever there is a network hop, check out the difference in signal strength. If there is no significant change, then there is problem on your mobile.
  • ‘Phone Info’ can also be launched by dialing “*#*#4636#*#*”

Fix for the problem

  • Open ‘Phone Info’. Follow the above steps.
  • Set the preferred network type to ‘WCDMA only’ (3G). This will force the device to use 3G networks only. The default option will be ‘WCDMA Preferred’.
  • But, this fix comes with a cost. Your phone will not have receive signals in places without 3G network.

I will be on WiFi 90% of the time, the remaining 10% of the time I have been using this fix. It is working smoothly in cities like Hyderabad, Chennai and Bangalore. However, when you travel inner parts of the state, you will not have 3G network everywhere.

Are you guys facing the 3G connectivity issue with AT & T compatible version also? Have you figured out any other solution for the same? Share them on comments.

-- Varun

Thursday, August 12, 2010

Product development at Google

Yesterday, I had attended the tech talk on Google about "Developing products at the Speed and Scale of Google". It was organized at Google Campus, Hyderabad. Me and Sethu (@karthicksethu) reached Google around 5:30 PM for the talk which was scheduled to start at 6 PM. The first thing which surprised me was the count of Microsoft guys who have registered for the talk. We were escorted to the cafeteria where the talk was organized. The talk started on time. Ashish Kumar, who gave the talk, is an Engineering manager responsible for steering and managing the engineering Tools team that builds tools for most engineers at Google. The main focus of the talk was on the development environment at Google which enables its engineers to build products faster. Ashish talked about the different systems which are available for developers at Google to productize their ideas.

Highlights
  • For any company to be successful, it should have a good engineering hygiene. Good amount of investment on infrastructure is required. 
  • Google uses Perforce as its revision control system.
  • Common code base for all the Google products. From kernel to a simple plug-in built by Google will reside inside the same repository. Single monolithic tree. Developers work on Head. No branches. Build everything from source.
  • Google uses Eclipse and IntellijIDEA as its IDEs. Plug-ins are developed to do almost everything from within the IDE.
  • Continuous Build system. Google has built its own robust build system. Build system makes use of the thousands of idle machines on the cloud. Cacheing mechanism has been built which will enable faster builds by cacheing the output binaries. 1 PB objects are cached for builds. Google uses FUSE virtual file system to bring back the output binaries of the build to the developer. Every Google office has a local site cache.
  • Automated testing. Hundreds of millions of test cases are run every day. The aim of this system is to fail faster, report clearly, find the root cause. Most part of the test cases are written manually at Google. Ashish's team is working on data mining the results which can be can be used for Code analysis and predicting bugs from the code. There is a SQL interface for querying these test results - Google Sponge.
  • Rollout. Releases happen based on the tags and the build configurations.
Google's view on single tree repository
  • Single source code repository helps in maintaining strong coding practices.
  • Code transparency at the development phase itself.
  • Branching might lead to deviation from the standards.
  • Merging and conflicts resolution are more painful than working on the head.
  • Experimental features are controlled using build configurations.
Low Lights
  • No free WiFi ;)
Q & A Session
[Varun] How are the open projects like Chromium, Android, etc handled? Do they follow the same development procedure?
[Asish] Currently, Open source project development does not follow all the development procedures for closed source products. But, that is the ideal way to go and we are working on it.

[Varun] Is 'Mondrain' used as a code review tool for all the languages or only Python? Any plans of releasing Mondrain as a product?
[Asish] We use Mondrain (the code name for the code review tool) for all the code we write. No plans of releasing as a product. At least not in near future. Mondrain is being used in Google code.

[Q] Will this infrastructure setup be available as a service in future?
[Asish] May be. No plans as of now.

[Q] Do the developers accept these internal tools immediately?
[Asish] Our main goal is to improve the developers experience. If we are building anything better for them, they will accept it. Also, we dogfood all our products before going live.

Google's approach may not be suitable for all the companies but the idea should be to build a good engineering culture which will help the company to build products easily.

-- Varun

Tuesday, August 10, 2010

Mathematical breakthroughs!!

Lots of interesting things are happening in the Math world. Some of the remarkable breakthroughs this week:

  • Computation of Pi. Mathematicians Alexander J. Yee & Shigeru Kondo have successfully completed the computation of Pi to Five Trillion digits. The computation took 90 days on a single desktop. This is a new world record. The previous record was computation up to 2.7 Trillion digits. Link.
  • Rubik’s Cube solution. A team of researchers found that every possible combination of the Rubik’s cube can be solved in 20 moves or less. There are 43,252,003,274,489,856,000 possible Rubik’s cube positions. This is a new world record. The previous solution solved the problem in 28 moves. The number of moves used to solve the Rubik’s cube problem is known as God’s Number. Link.
  • P != NP. Researcher Vinay from HP labs claimed proof that P != NP. However, a major (unfixable) flaw was found later on his paper.

There are much more happening in the Math world. Subscribe to Slashdot Sciene / @digg_sciences to keep yourself updated on the latest happenings.

-- Varun

Saturday, August 7, 2010

Microsoft Community Tech Days 2010

Event Date: 07-Aug-2010

Venue: Microsoft Campus, Gachibowli, Hyderabad

Microsoft Community Tech Days 2010

Mind-map of Microsoft Community Tech Days 2010. Click on it to enlarge.

-- Varun

Wednesday, August 4, 2010

Developing products at the Speed and Scale of Google

Google Hyderabad Engineering is organizing a talk on “Developing products at the Speed and Scale of Google”. Ashish Kumar, Google’s Engineering Manager, will be delivering the talk. Asish is responsible for steering and managing the 100+ Engineering Tools team that builds tools for most engineers at Google.  He will talk about some of the key infrastructure elements that enable more than 6000 developers distributed over 40 offices to work together on more than 2000 projects. Limited seats. Register here by 07-Aug-2010.
Talk     : Developing products at the Speed and Scale of Google.
Date    : Tuesday, August 10, 2010, 6:00 PM onwards.
Update: The talk has been re-scheduled to Wednesday, August 11, 2010.
Update-1: Have pinged the organizers to arrange for live streaming (as requested by many of my readers). The organizers have replied back saying this option will be considered for the talks in future. For this time around, the video will be recorded and shared later.

-- Varun

RIP Google Wave!!

Google Wave is now history. Google has decided to discontinue Wave but the technology behind that will be used in other products. I was one of the beta testers for Google Wave and have developed quite a lot of extensions for it. It is sad to know that Google is stopping the development on Wave. From the Google’s official blog post:
“Wave has not seen the user adoption we would have liked. We don’t plan to continue developing Wave as a standalone product, but we will maintain the site at least through the end of the year and extend the technology for use in other Google projects. The central parts of the code, as well as the protocols that have driven many of Wave’s innovations, like drag-and-drop and character-by-character live typing, are already available as open source, so customers and partners can continue the innovation we began. In addition, we will work on tools so that users can easily ‘liberate’ their content from Wave.”
“We celebrate our failures” -- Google’s CEO Schmidt

-- Varun

Sunday, August 1, 2010

This week on Twitter [August 01, 2010]

Science & Technology

  • Why People think computers can’t. Link.
  • Yahoo! Japan to use the Google search in future. Link.
  • Oracle rebrands Java. Breaks Eclipse. Link.
  • Time saving auto hotkeys for windows. Link.
  • Firefox 3.6.8 released. Link.

Social Media

  • Twitter testing inline photos and videos. Link.
  • Twitter begins user stream testing. Link.
  • Facebook questions beta is out. Link.

Google

  • Google’s CEO says there is no need for ‘Google Me’. Link.
  • How to get a Google Nexus One. Link.
  • Google docs to get a new file type “Punch”. Link.
  • Google CEO announces Zynga partnership. Link.
  • Upcoming GMail features. Link.
  • YouTube launches a music video discovery page. Link.
  • YouTube’s new embedding code supports HTML5. Link.
  • Google places for Android gets Yelp like interface. Link.
  • Play hidden snake game in YouTube. Link.
  • YouTube increases the max video length to 15 mins. Link.

Gadgets

  • Jailbreaking iPhone is legal now. Link.
  • Apple announces new products on its store including Mac Pro and Magic Trackpad. Link.
  • Froyo for Samsung Galaxy S leaked. Link.
  • Froyo for HTC Incredible leaked. Link.
  • Amazon reveals new Kindle. Link.
  • Smartpen – a pen which records and playback what you wrote. Link.
  • Android user interface stencil kit. Link.

India

  • ISB iDiya 2010, a national social idea challenge announced. Link.
  • IT dept has extended the last day for tax filing to 4-Aug-2010 due to technical issues on e-filing site.Link.

-- Varun

Happy friendship day!

Happy friendship day!!

Happy friendship day to all the readers of Varun’s Scratchpad! :-)

-- Varun

[How to] Control Powerpoint presentation with your Android phone

Ever had the pain of asking someone to control the slides when you are giving a business presentation? Here is an awesome solution for you -- an application in Android market to help you control your presentation from your Android phone. While there are lots of applications available in the market to control your PC from the Android device, Gmote stands out from all of them in terms of the features offered. Using Gmote, you can control the presentation on your PC / laptop, play media files, browse through the contents on your laptop, etc. Gmote application requires a server to be up and running on the PC side. Gmote client runs on the Android device and communicates with the server on your PC. Gmote client can talk to the server over WiFi as well as the mobile 3G network (which not many applications support). Another good thing is Gmote has support for Windows, Linux and Mac.

Launching presentation with Gmote client Gmote remote control  Gmote touchpad - Control the mouse / keyboard on your PC from phone

Installation procedure & Configuration

  • On your android device, download and install the application ‘Gmote 2.0’ from the market.
  • Download the Gmote server from here. Need to have admin privileges to install the same.
  • Start the server on the PC which you want to control.
  • Gmote server will prompt you to set a password to your PC. The same has to used while connecting from the phone.
  • After that it will show the Media Path selector. Choose the location of media files which you wish to run remotely.
  • Start the client on the Android device. It will prompt you for the server details and the password.
  • Done. You are all set to control your PC from the phone.

Controlling the presentation from the phone

  • Make sure you have done all the configurations mentioned above.
  • Select ‘Browse’ from the menu and navigate to the power point file (.ppt / .pps)
  • Choose the option ‘Play on Computer’ from the file browser.
  • Click on the power point file to launch it on your PC.
  • Once the presentation is launched, Gmote remote control screen will be shown.
  • Press the play button to start the presentation. Use the left and right keys to navigate through the slides.

What else I can do with Gmote?

  • Use your Android phone as a remote mouse / keyboard for your PC.
  • You can play the media files on your PC from the phone.
  • Streaming of media files on your PC to the phone.
  • You can control the DVD drive on your PC.
  • Browse through the shared files on your PC.
  • Open a web page on your PC from the phone.

Check out the help page of Gmote. The only other application which comes closer to Gmote is RemoteDroid.

-- Varun

google-site-verification: googlea4d68ed16ed2eea6.html