Android Minimum Required SDK

If you are unsure what should be the minimum required SDK for your new Android application, I suggest you take a look at the Android Developer Dashboards. It has a pie chart and table that shows you the number of Android devices that have accessed Google Play within a 14-day period.

As of this writing, you should really support Android 2.2 (Froyo) because it has 12% of the market. Going one level down to Android 2.1 (Eclair) gives you another 3.7%. There is little reason to support Android versions lower than 2.1.


SecureCRT SSH Key Authentication

Here’s how you can login to SSH with key authentication using SecureCRT. Here we are going to use SecureCRT 7.

1. You probably already have a public and private key you have used in the past. For example, you might already have the private key id_rsa and public key id_rsa.pub under USER_HOME.ssh in the client machine. If you don’t, you can create one by going to SecureCRT -> Tools -> Create Public Key. Pick RSA and OpenSSH key format.

2. Now login to the server and look for the file called ~/.ssh/authorized_keys. Copy the contents of id_rsa.pub and append the line in authorized_keys. If authorized_keys does not exist, create it and limit file permissions by running chmod 600 authorized_keys.

3. Now Create a new SecureCRT session. Under the SSH2 section, keep the PublicKey checkbox checked and click on Properties. Use the session public key setting and use your private key.

Create a new SecureCRT session


Maven Dependency System Scope Warning

We use PubNub and it is not in the Maven central repository as of this writing, so we have been using it as as system scope dependency in our Maven pom.xml. The dependency XML looks like this:

<dependency>
	<groupId>pubnub</groupId>
	<artifactId>pubnub</artifactId>
	<version>${pubnub.version}</version>
	<scope>system</scope>
	<systemPath>${basedir}/lib/pubnub-3.1.jar</systemPath>
</dependency>

We get a Maven warning about this setting and have been ignoring it for some time. To finally remove the warning, we have moved PubNub to our local repository by running mvn install.

mvn install:install-file -Dfile=libpubnub-3.1.jar -DgroupId=pubnub -DartifactId=pubnub -Dversion=3.1 -Dpackaging=jar

Now we can remove the system scope.

<dependency>
	<groupId>pubnub</groupId>
	<artifactId>pubnub</artifactId>
	<version>${pubnub.version}</version>
</dependency>