Pages

Wednesday, May 26, 2010

What is Android


What is Android?
According to android developer’s guide: Android is a Software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs to begin developing applications on the android platform using Java programming language.
At android website they have provided the core specialties of the android as follows, I am elaborating the points with my own words:
1.       Open: Android is said to be a truly open platform.
It is being developed by Open Handset Allaince which is a consortium of several companies which include Texas Instrument, Broadcom corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint, T-Mobile, Sony, Toshiba, Huawei Technologies and many more organizations.
A truly open source platform, Android is built upon Linux Kernel. For the application development, it uses a common virtual machine (Dalvik Virtual Machine). This virtual machine is designed to optimize memory and hardware resources in a mobile environment.

Android is built from the scratch, thoughts have been poured by many developers and various issues and concerns have been addressed to make android best suitable for the devices.

2.       All applications are created equal: Android does not differentiate between the phone’s core applications and third party applications. They can all be built to have equal access to phone’s capabilities providing users with broad range of applications and services.
What does that mean in context of mobile applications? In fact that does mean there will not be restrictions from the OEMs. A developer, who has worked on J2ME and Blackberry platforms, can understand this easily. There are a lot of access restrictions imposed by OEMs for the applications developed by third party. Now with android no need to worry about those security concerns. A third party application will have similar freedom as of a native application.
3.       Breaking down application boundaries: Android breaks down the barriers to building new and innovative applications.
In my view the most important innovation android does is to remove distance between web and mobile. The true spirit of the android is to make internet reach to all persons. Now different Location based applications can be developed. Different social networking site applications can be developed. Android has forced different organizations to concentrate on mobile market for their web based applications.
4.       Fast & easy application development: Android provides access to a wide range of useful libraries and tools that can be used to build rich applications.
A true spirit at heart of android is to facilitate developers with a rich set of APIs. Let the developer concentrate on application development only. With the use of its SDK and eclipse based development plugin, and with official android development guide even a novice android developer can easily develop a best android mobile application.

Android is available as open source under Apache License.

First release for android was Android 1.5 also known as Cupcake. Then Android 1.6 (Donut) has been released. Then Android 2.0/2.1 (Éclair) has been released. The latest available version is Android 2.2 (Froyo).


Wednesday, August 26, 2009

Dreams and Success

Sometimes I think what can be there to get a success. My experience tells me some basic items for getting success. I dream at my college time and set goals for that. Though sometime I was not able to focus on those goals and it leads to a delay in success. I analyzed my way to get success. I analyzed each and every aspect of the dream, desire and goals. What were situations and all. Then I found something was missing there. I note down what was missing. Then I did exactly as I will mention below and now those dreams are becoming true one by one. Though it took sometime. But I found this mantra very successful for me. So I want to share with others also. There may be many approaches to get success but I found this best. and this is of-course analyzed, developed and designed by me. The only part is that I have analyzed this for my case only. You may give a try on this.


Success Mantra through the way of dreaming
Dreams are first step of success. If a person can't dream he can’t be successful. A person must dream inadvertently. There come two things after dream.
1. Desire
2. Thinking
To be successful the second thing must never come in mind. If you start thinking about dream or about its feasibility you will never be able to get success. Instead you should make a strong desire for your dream.
The desire again results in two things
1. Goals: If you have a strong desire then you will start setting the goals for that.
2. Thinking: If your desire is not strong, you again start thinking about feasibility of the dream.
Once you set your goals, the implementation phase comes in picture. If you dreamt inadvertently, you have strong desire and you set goals properly the implementation becomes easy and will lead you to success.
Now see the steps again:
Dream inadvertently > Make a strong Desire > Set Goals > Implement Goals > Get Success > Enjoy success of your dreams
Sometimes success may come late or not in that time when you expect for that. But it will be there in any case.
In any case you missed any step above it will lead to add an extra step in your success and that does not guarantee your success. See e.g.
Dream inadvertently > Thinking feasibility of dream (Either forget your dream or go ahead. But this is extra step) > Make a desire > Again think feasibility of desire (Either forget your dream or go ahead. But this is extra step) > Set goals (If desire is not strong setting goals may take long time)> Implement goals (In case goals are not proper, Implementing the goals will be hard) > Get success (After a long struggle with yourselves)> Enjoy success but with a little bit bitter taste.
A person should put hard efforts on his dream like a child, who wishes for ice-cream, and put all efforts to get that. Either he will cry or will do buttering to his parents, but any how he will get that. A person can learn many things from a child.

Sunday, August 23, 2009

Bhuvan-India is shining. Jay ho

BhuvanA great and national level effort by ISRO towards the web world. I feel a great proud on this effort. ISRO has taken an outstanding step towards use of its technology. Though the Indian government might be gaining a lot by the use of Indian Remote Sensing satellite (IRS), but Bhuvan demonstrates the use of IRS for the common man (I meant here by the Internet users). This is a great move to show how strong is India in terms of technologies and how far has it moved. The data collection through IRS is a simple case. India might have many other uses. But Bhuvan depicts a large picture for end user. It says – ‘Hey, IRS is not meant for business only. It is for you also. Come and see this. We are having that much of information and much more.’ Bhuvan is a small exhibition of IRS strength.

I don’t know whether in current scenario, it will compete to google map or not. But It really depicts the strength and innovation of Indian scientists. I hope they will be able to enhance the features provided in Bhuvan as they already have planned.

Jay ho

In this article, I would like to share my user experience with the Bhuvan.

Excerpts from bhuvan website at following link:

Bhuvan

1. Bhuvan gives you an easy way to experience, explore and visualize IRS images over Indian region

2. Bhuvan, an ambitious project of ISRO to take Indian images and thematic information in multiple spatial resolutions to people through a web portal through easy access to information on basic natural resources in the geospatial domain.

3. Bhuvan showcases Indian images by the superimposition of these IRS satellite imageries on 3D globe. It displays satellite images of varying resolution of India’s surface, allowing users to visually see things like cities and important places of interest looking perpendicularly down or at an oblique angle, with different perspectives and can navigate through 3D viewing environment.

4. The degree of resolution showcased is based on the points of interest and popularity, but most of the Indian terrain is covered upto at least 5.8 meters of resolution with the least spatial resolution being 55 meters from AWifs Sensor. With such rich content, Bhuvan opens the door to graphic visualisation of digital geospatial India allowing individuals to experience the fully interactive terrain viewing capabilities.

5. Multi-resolution images from multi-sensor IRS satellites of India is seamlessly depicted through the Bhuvan web portal by enabling a common man to zoom into specific area of interest at high resolution.

6. Bhuvan brings a whole lot of uniqueness in understanding our own natural resources whilst presenting beautiful images and thematic vectors generated from varieties of geospatial information.

Basic features of Bhuvan:

  • Access, explore and visualise 2D and 3D image data along with rich thematic information on Soil, wasteland, water resources etc.
  • Visualise multi-resolution, multi-sensor, multi-temporal image data
  • Superpose administrative boundaries of choice on images as required
  • Visualisation of AWS ( Automatic Weather Stations) data/information in a graphic view and use tabular weather data of user choice
  • Fly to locations ( Flies from the current location directly to the selected location)
  • Heads-Up Display ( HUD) naviation controls ( Tilt slider, north indicator, opacity, compass ring, zoom slider)
  • Navigation using the 3D view Pop-up menu (Fly-in, Fly out, jump in, jump around, view point)
  • 3D Fly through (3D view to fly to locations, objects in the terrain, and navigate freely using the mouse or keyboard)
  • Drawing 2D objects (Text labels, polylines, polygons, rectangles, 2D arrows, circles, ellipse)
  • Drawing 3D Objects (placing of expressive 3D models, 3D polygons, boxes)
  • Snapshot creation (copies the 3D view to a floating window and allows to save to a external file)
  • Measurement tools (Horizontal distance, aerial distance, vertical distance, measure area)
  • Shadow Analysis (it sets the sun position based on the given time creating shadows and effects the lighting on the terrain)
  • Urban Design Tools (to build roads, junctions and traffic lights in an urban setting)
  • Contour map ( Displays a colorized terrain map and contour lines)
  • Draw tools (Creates simples markers, free hand lines, urban designs)

Procedure for using Bhuvan is as follows:

1. Register for Bhuvan at following link:

Bhuvan

Note: Remember your username and password as for now they have not provided any forget password link. Don’t know why, but I faced this at one time as I forget the password J, Though I remembered it again.

2. After registration download Plugin to use Bhuvan. Since Bhuvan is currently intented for Internet Explorer 6.0+ and this plugin will be installed for IE so that Bhuvan can be used in IE.

(Though, as an developer in open source technologies, I am a great fan of browsers like Firefox, Safari and Chrome, as Indian end user market is dominated by Microsoft so they targeted mainly to Internet Explorer users, so that can be a reason to develop it currently for IE only. But I will be happy if they aim it for other browsers also, so that developers also can take interest into it. This will be really needed if they want to popularize Bhuvan similar to Google Map.)

3. After downloading install the plugin.

4. Go to Bhuvan website (Bhuvan) and login into that site.

5. It is very slow currently and will take few seconds to open. But after it will open you can get a picture as follows:



Now let see some of features:

1. At the right pane of the website, you will see many items, the main three are:

§ Search box: Searc h any location

§ Add layers: One can add layers here

§ Bhuvan Layers: It further contains Vector, which contains two layers:

§ Base layers

§ Information Layers

2. You can get information at following levels of region from Bhuvan:

§ Country

§ State

§ District

§ Taluk

§ Towns

§ Villages: It seems, currently this feature is only following states:

§ Andhra Pradesh

§ Haryana

§ Gujrat

§ Karnataka

§ Kerla

§ Tamilnadu

3. Road and highway information can be retrieved at following basis:

§ Golden Quadrilateral (Swarnim Chaturbhuj)

§ National Highway

4. Other information also can be retrieved on map:

§ Location

§ Watershed

§ Wasteland

§ Soil

The problems with the current version of Bhuvan can be subdivided in two parts:

a. Look and feel of website is not so good.

b. I was not able to scroll in left pane when all items are open in Tree

c. Images at city and street levels are not clear. Sometimes it seems like I am zooming in and zooming out same image.

A great organization like ISRO should also concentrate on the user perspective. If look n feel and Processing will be so slow, they will find less number of users. As a developer I (and many more) would like to join the development, but will they allow. The main points are:

1. Are they having intention to compete with google map?

2. Will this be a simple start and end or there will be more versions in both – End users and Developer’s perspective.

3. Google map is popular because they let user participate in each manner to their products – in each term whether it is Development or Suggestions. User willingly participates and plays around their products like. What is ISRO’s plan for this?

4. How is ISRO going to market it and popularize it?

There are many more questions, answers of which may lie under plan list of ISRO or the time will reply for these. But I am hoping that Bhuvan will change the world and leads India to front in terms of Innovation.

Tuesday, April 7, 2009

Blackbery development using NetBeans and JDE


Blackbery development using NetBeans and JDE



It is very difficult to work with the JDE provided by blackberry, since it lacks a lot of specialties of the present decades IDE like it does not allow you to move from the method call to method definition. Indeed I realize that it is not more than a simple text editor except that to build, package and run the BlackBerry applications we need it. It does not provide you facility ‘CTRL + Space’ as to NetBeans and Eclipse. These are too simple features which are not there in the JDE. Many other sophisticated features are there which are not there in the JDE.
So to develop Blackberry applications, I came with another approach after some googling and help of some friends.
I am using NetBeans and JDE both – Development is done in NetBeans and Building, Running and packaging of the project is done in JDE. I used following environment/softwares for this:
1. Java 1.6
2. NetBeans
3. BlackBerry 4.5
I am writing this blog after being inspired from following tutorial,
http://developerlife.com/tutorials/?p=478
In this article I assume that you have successfully downloaded and install the NetBeans IDE and JDE for blackberry. If you don’t please visit the above link which provides all steps for the installation.
Following are steps for coding in NetBeans and Building and running project in JDE:
1. Create a J2ME project in Netbeans. Steps to create project in NetBeans are as follows:
a) Goto File > New Project
b) Select Java ME in the new window as shown in the Figure 1.

Figure 1

c) Select Mobile application from the right side of the window as shown in Figure 2.
Figure 2

d) Click on next it will display Figure 3
Figure 3



e) Enter project name and the location of project in this screen.
f) Since we don’t want to create a J2ME MIDLet application so uncheck “Create Hello MIDLet” checkbox. Click on next.
g) In ‘Default Platform Selection’ change Device profile MIDP 2.0. Leave all other settings as it is as shown in Figure 4. Now click on finish.
Figure 4

h) Right click on the project, open properties window and add rim api jar at the build path.
2. Now open JDE.
a. Click on File > New. It will open screen as shown in figure 5.
Figure 5

b. Enter workspace location and name.
c. When you create a workspace for the BlackBerry, It will not create a folder instead it creates a *.jdw file for the workspace with name you entered in the Workspace name and at the location you entered at Location field.
d. Now you will have to create a project in this workspace. Right click on the workspace shown in the left pane as shown in figure 6 and click on the ‘Create new Project in HelloBlackBerry…..’ item.
Figure 6

e. Enter the project name in the new window. I entered project name as HelloBlackBerry.
Figure 7


3. Adding Source files In JDE: This is a major limitation of the JDE. For each new file you have to add that file in the project after creating it. Because of this I started approach as follows:
First creating a source file in the NetBeans. This is helpful since we can use NetBeans features to for coding.
In second step, after coding a source java file, adding new file into the JDE.
So let us start first by creating a simple Hello Blackberry application. Since yet I am not familiar a lot with Blackberry programming, so I am starting with familiar Hello programming.
a) I have created a package com.softneel.hello and a simple java class HelloBlackBerry in the NetBeans.
b) Extend this class with UiApplication – In my knowledge UiApplication is the base class for all ui applications. It maintains a stack of screens. It pushes those screens one by one at top of the stack and pops up those screens one by one.
For more details please refer to BlackBerry docs at following location:
http://www.blackberry.com/developers/docs/4.7.0api/
c) In the same package create a new class HelloScreen. Extend this class with MainScreen class of the BlackBerry
d) In HelloScreen class create a public constructor.
e)In this constructor, instantiate a LabelField object and set it as title of the screen.
f) Now add a RichFieldText instance to the screen.
g) Now create constructor of the HelloBlackBerry class.
h) Push an instance of the HelloScreen class to the stack.
i) In the main method of the HellBlackberry class, create an instance of the class and call enterEventDispatcher method on this instance. This method is used to set the calling thread as event-dispatching thread.
Following is code for the two classes:


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package com.softneel.hello;

import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.RichTextField;
import net.rim.device.api.ui.container.MainScreen;

/**
*
* @author Suresh Chandra Pal
*/
public class HelloBlackBerry extends UiApplication {
public static void main(String[] args) {
HelloBlackBerry theApp = new HelloBlackBerry();
theApp.enterEventDispatcher();
}
public HelloBlackBerry() {
pushScreen(new HelloScreen());
}

}

class HelloScreen extends MainScreen {
public HelloScreen() {
super();
LabelField title = new LabelField("Hello Blackberry Sample", LabelField.ELLIPSIS
| LabelField.USE_ALL_WIDTH);
setTitle(title);
add(new RichTextField("Hello Blackberry!"));

}

public boolean onClose() {
Dialog.alert("See you later!");
System.exit(0);
return true;
}


}


j) Now we are ready with the coding part. To build, run this project we need to go to JDE.
1. In the JDE we need to add each of the source files.
2. Right click on the project and click on the “Add file to project”. It will open a window.
3. Select the java files created in the netbeans, as shown in figure 8.
Figure 8

4. It will open the selected files.
5. Now select Build > Build All and Run.
6. Sometimes it may give following error:
I/O Error: Cannot run program "javac":
This is the case when java bin path is not set in System environment variable.
Set the path upto JAVA_HOME > Bin directory.
7. Now you can see the application running on Simulator.