Archive for the ‘Others’ Category

GIS Engineer (GIS) – Mangalore Location

June 24, 2010

Location : Mangalore , India

Core Experience: 3 Yrs – 5 Yrs

 Total Experience: 5yrs

 Job Description:

 Digitization (Raster to Vector conversion using any kind of GIS tools)

  • GIS Data migration (one format to another format)
  • Creation of spatial and Non-spatial data as per the requirements
  • Able to work with minimum guidelines
  • Deliver assigned tasks on time with expected quality
  • Building Geo-database
  • Ensure data backup of all critical data necessary for business continuity

 Mandatory Skill:

 Knowledge of mapping/geospatial technology, Remote Sensing, GPS, geospatial data(such as 2D, 3D, vector/raster/image data, layers, thematic maps, attributes, projections/datum etc.)

  • Relevant GIS Tools Experience (ESRI ArcGIS / Autodesk AutoCAD Map / MapInfo / Intergraph Geomedia)
  • Digital Image Processing tool experience (ERDAS Imagine, ER Mapper, ENVI)
  • Exposure on RDBMS and programming knowledge
  • Good analytical / problem solving skills

 

Desire Skills:

 Geospatial Concepts, Remote Sensing skill and ArcGIS Software work experience.

Please send your resume to me (email ID given in contact section) I will forward to the respective concern.

Thanks

Lakshmanan

Advertisements

GIS Software Engineers – Walk in

June 16, 2010

Hello Folks

There are openings for GIS Software Engineers/Leads who has 4 to 8 years of experience in hands on development experience in .NET Technologies in any GIS platform from InfoTech Hyderabad.

Date: 19th June, Saturday & 10 to 4 pm

Venue: Grand Krishna Rooms 77, Koramangala, 28th Block, Madiwala , Bangalore.

Check out the advertisement on Today(June 16, 2010)  Times of India, Bangalore Edition – Page  11

This is for your information

All the very best

ESRI on YouTube

October 3, 2008

You can find some the favorites ESRI videos on You Tube.  http://in.youtube.com/esritv

ArcGIS javascript API: Simple Web Client Application video gives simple understanding the ArcGIS javascript API. Below is the link

http://in.youtube.com/watch?v=0OHrvnOToj4

Enjoy the videos~

ArcGIS 9.3 Final Release

June 25, 2008

All set for final release of much awaited ArcGIS 9.3. Shipping will begin on June 25, 2008.

The ArcGIS 9.3 beta closes on June 30th, 2008. Here afterwards, ESRI Support Services will provide support for the final release.

We congratulate ESRI efforts on the making this product.

Indian Highways Journal Paper Publication

June 14, 2008

Dear Folks,

I am very much happy to inform you that my part of research work has been published as a Technical paper in “Indian Highways” journal”, March 2008 issue.  I thank my professor and fellow collegue Mr. Bharath for bringing this out in this journal.

 

 Indian Highways -March 2008

International Workshop at IIT Madras

June 11, 2008

 

International Workshop

Dear All

 

I take extreme privilege to invite you all to an International Workshop on ” Best Practices to Relieve Congestion on Mixed-Traffic Urban Streets in Developing Countries” ( BPRCM-2008 ) which is going to held at Indian Institute of Technology Madras (IITM), Chennai, State of TamilNadu, India.

Research Scholars, Traffic/Transportation Professionals, Urban Planners and transportation passionate are welcome to present their papers/work to relieve congestion on Mixed urban Traffic. I welcome all GIS folks who works for Transportation vertical to have look into.

I invite you all on behalf of IITMadras, Chennai once again. Please see the attached document for further details. Thanks

Click Here for details: workshop-brochure

 

Coding Practices and list of Frequent Errors

June 3, 2008

 Coding Practices and list of Frequent Errors

We have recently concluded a project and project closure meeting is conducted in order to ascertains the views/experience of stake holders especially developers. The project was about customizing ArcMap with set of new commands and tools using Microsoft .NET Technology. The project was developed by the team of junior programmers (first time coders) lead by a senior developer.

I would like to come out with the list of frequent errors committed by programmers, missing validations and performance improvement ways. I have briefly discussed here. You can take this as a check list before start coding. There is no particular order followed in this list.

1. System.NullReferenceException – “Object reference not set to an instance of an object.”

This is the most frequently committed error by every developer. I would rate this error as an top rated one. You see people asking about this everywhere; about why are they getting this error. This error primarily occurred when coders are not seriously looking at the Objects created for the class. Below are a few common causes for this

Cause: You are trying to use a reference variable whose value is Nothing/Null.

• When the value is Nothing/null for the reference variable that means it is not actually holding a reference to an instance of any object.
• You either never assigned something to the variable, never created an instance of the value assigned to the variable
• You set the variable equal to Nothing/null manually, or you called a function that set the variable to Nothing/null for you.

I wish to highlight that there is a difference between C#. NET and VB.NET. In certain instances VB.NET code will compile whereas the C# even not allow do this. This is for generic cases for example accessing string.

C#.NET won’t compile

string a;
if (a.Length == 0)

{

Console.WriteLine (“Yes”);

}

VB.NET will compile
Dim a As String

If a.Length = 0 Then

Console.Write(“Yes”)

End if

But, there will be case in ArcObjects like this.

pMxDoc = m_MxDoc
pMap = pMxDoc.FocusMap
pFeatureLayer = pMap.Layer(0)
Dim Test As String = pFeatureLayer.Name
pFeatureClass = pFeatureLayer.FeatureClass
pFeatureCursor = pFeatureClass.Search(Nothing, False)

pFeature = pFeatureCursor.NextFeature //Culprit is here

We have written code and tested several times works well. But, when Layer (0) doesn’t have any features its throws an ugly error. We may test the code several times with the contents while there were no features and trying the get the Feature object it explodes. This is one such sample.

There are ‘n’ numbers of ways to cause this error in ArcObjects. I always suggest to check whether object is not ‘Nothing’ or object reference is properly set. Give higher importance when dealing with objects particularly while using COM objects.

2. ‘Maximum open cursors exceeded’ or ‘Layer in Use- Maximum number of streams exceeded’

This is also another frequent error which developer does. The maximum cursors will be opened while loop through recordset.

Where: Looping through a recordset using IFeatureCursor may cause the above error:

Garbage collection takes care of releasing resources in managed code. This process is non-deterministic and will release resources at some undetermined time. In most cases this approach works fine, however in this situation it is necessary to mark the COM object as eligible for garbage collection so the resources will be released in a timely manner. i.e. Explicit release of COM Objects when once usage is completed.

You can get sample code and detail on clicking this.

3. Opening and Closing Database Connection using predefined Methods.

It is best practice to open and close database connection using separate common methods by passing its parameters. We have to use this method whenever we need to open/close DB connection. It is also advisable that we need to close the DB connection on ‘Finally’ block; this prevents keeping the connection open when error has occurred in method.

Try
{
// Open Connection
// Do Something…..
}

Catch (Exception ex)
{
//Show Error Messages
//Release unwanted Objects
//Close DB connection
}

Finally
{
//Close DB Connection here as well…
}

4. Checking ArcObjects License using AoInitialize object

It is very important to check license availability of the application developed. Especially while using ESRI products understanding License Concepts is bit tough if you are novice. It is worth to give a reading on EDN about license on ESRI products.

Whenever we develop a project first and foremost requirement gathered is product/license used at client side. We have to ascertain the Product used along with Service Packs. As developer we may develop with product used at our organization. This brings greater conflict if you mismatched. Its strongly recommend you to use same product license and service similar to client environment. This will reduce major pain during deployment.

Here are other frequent errors which should be taken care of

5. Use of Feature Class names for all validation; avoid using layer name which may change at any course of time

6. Whenever updating (inserting) data in database in bulk use IFeatureBuffer/IRowBuffer interface for better performance.

7. Always use Try/Catch Block in each and every subroutine/method. This is MUST for any disciplined programmer. Otherwise it would be of hell later when you encounter errors at final stage.

8. IndexOutofRange/ ArrayBound Exception/Over Flow erros/InvalidCast Exception are few common errors can be avoided easily by taking little care while coding. Read OMD for better usage. Especially while using C#.NET casting objects is very vital. There is a performance difference between two ways of casting.

a. pFeatLayer = (IFeatureLayer)pLayer;
a. pFeatLayer = pLayer as IFeatureLayer ;

9. Use of proper collections plays huge role in performance e.g. ArrayList in place of HashTable . The hashtable is used to retrieve value using Key/Value pair whereas Arraylist to use to store the content that cannot be accessed at random. Usage of collection should be judicious. Note, key has to be unique while storing in hash tables otherwise throws an error. Determining which variable to store as key and which as value is paramount importance while retrieving. We often mismatch and take a long detour.

10. Providing proper Error Messages.

User doesn’t want detailed error message or stack trace, providing meaning full error message is very important. I suggest using resource files for doing this job. The usage of constants and providing simple, meaningful message makes application user friendly.

11. Use of proper Enumeration while using Collections- Enumeration, Dictionary etc

12. File Not Found/Read-Write Error.

Sometimes we need to write data in text/excel file,  we must check whether file exists or not at the specified path and then proceed further. At times file which we are about to write will be opened by others or shared, we have to handle such situations. Use of System.IO.Exception solves the issue. Here is an sample code in VB.NET

Try
       pStreamWr= New StreamWriter(strFoldPath + “\” + abc + “.csv”)
        blnOpen = False
Catch ex As IOException
        MessageBox.Show(abc + “.csv file is already in use. Please close the file and click Ok.”)
        blnOpen = True
Catch ex As UnauthorizedAccessException
        MessageBox.Show(abc + “.csv file property is Read-only. Please change the file property and click Ok.”)
        blnOpen = True
End Try

13. Usage of Constants throughout the project helps managing application easier. For example Message Box title /Form Title have to constant through out the application, hence usage of application level constant will solve the issue. Using resource file will be handy and easier.

14. Editing Concepts:

When to use pooled vs. non-pooled objects in case of Web Application is another question which we come across often. General practice is if your edits are quick, and you do not need to have un-do / re-do type capabilities, you apply them against a pooled object.For example – if you just need to insert a point into a layer – collect the x, y and attribute information via your web front end, and then create the feature in one transaction. This will work with a pooled object just fine.
If you want to have a longer running edit session, where the save is not automatically committed back to the database, use a non-pooled object.

15. Avoid simple errors like – allowing users to type in Dropdown list, this is prevented setting appropriate property in the control; Form will be opened multiple times on clicking command has been avoided by setting as Modal.

These are some of the points which has brought out at this instance. Many of developers may use better coding practice to avoid these sorts of error, but these points will be useful for many who just begin coding. As I said in top of this post these are used as check list to avoid frequent errors. If this post helps please drop your comments/Suggestion, you may suggest few more points to this one.

 

Geospatial Developer Survey Analysis II

May 30, 2008

In continuation with Part I here is second part  

 6.  “When you hear the term ‘Design Patterns’ what comes to mind?”. Here are the results, 

  • GOF (Gang of Four) –           55.3%
  • No Idea         –                    30.9%
  • Knitting                               7.9%
  • Graphic Design                   5.9%

Nearly more than half of respondents aware of some design patterns. Others should atleast poke their nose in know what it is, how best we can use this our projects, advantages and disadvantages of using them.  

7. Pattern Adoption 

  • What is pattern?                                                 37.5%
  • community or forum for developing pattern     44.7%
  • Limited to GOF, at best                                     17.8%

I’m happy that many of them interested to set up a forum or community to develop a geospatial pattern. Initiatives from people like Dave will be starting point in bringing new patterns which suits geospatial projects. I’m ready to join hands with Dave.  

 8. Model-View pattern use 

“Rate your use of Model View * Patterns” was the question    

  • What is Model-View:                       45.7%
  • Occasionally when I’m in mood      22.4%
  • Usually                                           20.1%
  • Never                                             6.9%
  • Always                                           4.9%

We infer that nearly 5% people using MV patterns in their work. It is also shocking that nearly 50% not knowing/using MV patterns in their development. Geospatial developer should atleast know what is MV pattern is. Dave has subscribed some docs for further reading. People who work with Server product from ESRI or other might know about the MVC architecture. The people who work with desktop products may not aware of what MVC, but still being a developer knowing what it is will certainly help.

 9. Inversion of Control & Dependency Injection

I belong to category of ‘What is Inversion of Control’. I’ve started looking at it. Martin Flower provides some basic details of IOC. 

  • What is Inversion of Control:        73.4%
  • Don’t like IOC                     :         12.2%
  • Other                                  :         5.6 %
  • Castle Windsor                   :         3.9 %
  • Spring.NET                         :         3.0%
  • ObjectBuilder                     :         2.0%

Geospatial Developer Survey Analysis I

May 29, 2008

 

It’s really interesting to know the primary results from the survey (30 questions) conducted by Dave from Geospatial Developers worldwide.  Prime objective of this survey is knowing more about how other people doing GIS/Geospatial development work. 320 people in Geospatial Industry have participated in this survey.

 

First I thank Dave for conducting such survey; otherwise it may not be easy to get these information. Many websites and popular magazines in Geospatial Industry have published some statistics using strange mathematical principles. Those surveys are usually biased and just to promote their product or for other own reasons.  But I truly believe that Survey conducted by Dave will give true picture in accepting terms.  Results for the some of the questions are published in his blog with charts. Here is link to know full details. I am going to analyze some of the findings from his survey results.

 

1.      Who are you:

 

The MUST question in any survey. This helps to categories the responses based on their profession/role. Though people may designate as Analyst/Developer, but we may often need to switch the roles depending on the requirement (day2day basis) or forced by the organization.  Here are the results

 

  • Professional GIS Software Developer:   30.9 %
  • GIS Analyst/Coder:                           29.7 %
  • Geospatial Software Engineer:            23.1%
  • Software Architect:                         10.3%
  • GIS Analyst forced to write code:       5.9%

 

Theoretically, the difference between Software Engineer and Developer is: software engineers apply computer science and mathematical principles to design and develop software. Software developers simply develop software, i.e. carry out programming tasks. So, results indicate that geospatial industry has more of developers than Engineers. Here, I always have classic dilemma similar to lover-friendship, whether GIS has to be viewed as Science or Technology. 

 

2.                  Use of ESRI products

 

  • Using pure ESRI suite of products:   40.6%
  • Non ESRI users:                           12.2%
  • 25% using ESRI products :             9.7%
  • 50 % using ESRI products:             11.3%
  • 75% using ESRI products:              26.3%

 

Predominately Geospatial market is dominated by ESRI products. It would be wise to know the level of usage. Some interesting results are brought out by this question. When I was in college where my interest in GIS domain grew (i.e. 1998-2002) at that time ESRI products found everywhere; ArcView 3.0, 3.1, 3.1a etc are floating in market. During my college days ESRI has been viewed as a research institute than product Development Company. This clearly shows that Open source technologies (GeoServer, GeoTools etc) and other products (Google) occupying considerable share. Major shift is being witnessed in the Geospatial Industry.  But time will decide the life of Open Source technologies on any industry.

 

3. Who do you develop for?

 

Almost 50-50 split on internal vs. external clients.  From survey results we learnt that most of the companies’ works for external clients (55.3%), who (Government or private) are those clients is important question. Mostly GIS used by Government organizations and others who work in non-GIS.  For self consumption like Military and other research institutes work for themselves (36.6%) and rest others. We can still explore this once after Dave publishes further category wise details on this.

 

3.      Primary Development language:

 

  • Microsoft Technologies :                                   61.2%
  • Java :                                                           11%
  • Python :                                                        12%
  • Others (VB6,VBA, C/C++,PHP, Ruby, Perl etc) :     16%

 

Conclusion, newbie can choose .NET languages for GIS development. I still support Java :)-

 

5.  Coding standards and Life Cycle:

 

I completely agree with Dave’s observation.  I feel most of GIS companies may fall in informal and cowboy code practice category. The professional software companies (uses CMMi level standards) may/may not adopt software Engineering practices on GIS projects. There are no well defined standards for using ArcObjects. We use Dim pFeatureClass as IFeatureclass.  It’s also tough to adopt the S/W Engg practices on GIS projects which undergo rapid changes in the requirements. But the things are changing, Agile practices being used by some companies. The argument is that GIS projects are much smaller and not like Enterprise level projects which run over years where use of practices will be effective is also seems valid. It would be much helpful to know that integration of other systems with GIS is also to be noted. Overall S/W Engg practices lacking in GIS projects.

 

I will continue analyze the results of survey and post my views and opinions. Anyone can share their views and concerns.

ESRI MVP

May 5, 2008

Dear Folks,
This is second consecutive time being Most Valuable Professional (MVP) on ESRI Forums. I take this opportunity to thank all those who have clicked ‘this post answered my question’ .


Thanks to all my team members, collegues, friends and organisation , for their support and encouragment  throughout.