Thursday, October 7, 2010

Top 10 excuses why techies don't give projects on time

1) Requirement Slippage: "What can I do, if the client does not stick to his requirements?" Any techie you come across must have either made this excuse or must have come across it. Many times, when the team members in a particular project are about to complete the project keeping the client requirements in mind, they are insisted to either make certain changes in the project or bring in some addition to it. Requirement slippage is a genuine problem faced by team members in a project but many times it becomes the easiest excuse for any techie if the project is delayed. This excuse is often validated by the organization and the team members can easily prove themselves impeccable.

2) Wrong Project estimation: Project estimation is usually given by a module leader who is not deeply associated with the project. He or she is the one who builds relationship between the client and the project team and integrates the module's findings into the broader project work. Usually when the project demands some more time to be delivered, the team members crib about the project not being estimated in an appropriate manner. At times, the requirement is underestimated, the time frame is not fixed in sync with the project and the entire project is not compatible with the engineers working on the project. This excuse has a broader dimension as any one part of the project estimation could become a reason for extending the time for project delivery.

3) Work Overload: Attrition is no big news in the IT industry. The software professionals deal with immense pressure in coding their programmes correctly. In such a case, when one team member resigns, the existing team members are overloaded with the pending work of the ex-employee. And in such a case, the priorities of the project team members change and this becomes another excuse for team members.

4) Infrastructural issues: Well if nothing works out, then this is the excuse which everyone resorts to. Blame it on the company's infrastructure. Indian IT infrastructure usually lacks with effective resources like availability of power and high bandwidth. So probably one could understand the frustration caused due to a technical snag. Each time there is an infrastructural slowdown, the efficiency of employees comes down.

5) Information does not get passed on, lack of understanding of processes: Communication of the project details seems to be another area for making an excuse. If the project is not delivered on time, the problem could be directed to the organizational processes. The discrepancy in understanding of a project requirement is one point which the techies pick on to make an excuse.

6) Health issues: This is the most common excuse which prevails in every sector. This is one area, where the employees can't be questioned further. It has been widely seen that many IT professionals take sick leaves on Mondays because they are reluctant to work on Mondays after a relaxed weekend.

7) Unplanned Holidays: Take the recent verdict on Ayodhya. The fear of the consequences of the judgement led all the IT companies work for only half a day. Most of the holidays are granted to the IT professionals due to bandhs at both national and state level. The major development to the project comes to a halt when an organisation remains closed for a day or half. And this is often a valid reason for the failure of delivery of project on time.


8) Lack of proper skill set in a team: The experienced team members often accountable to higher authorities blame it on the unavailability of skilled engineers in the project. The hiring of additional developers late in the software development cycle, after not meeting some deadline, is often the factor in delayed contributions from the newcomers as they take time to familiarise themselves with the project. This contributes to a great deal of time lost in coordinating their joining the group.

9) Poor planning or management: the role of project manager is not only to give the final word to the team members and to arrive at a particular timeline for the project. If the person taking on the role of project manager has poor planning and managerial skills, the team members could point this as a reason for the project fall over.

10) Quality control and documentation: The major problem of a late running project. Many engineers try to find an excuse for the sake of quality assurance. It is easy to get away with this excuse as the client is also willing to compromise with the deadline for the sake of quality.

Wednesday, October 6, 2010

Abstract Class vs Interface

Introduction:

There are lost of discussion on the internet about the Interface vs Abstract class. Also, as base class whether we have to use interface, abstract class or normal class.

I am trying to point out few considerations on which we can take decision about Interface vs Abstract class vs Class.

Abstract Class vs Interface

I am assuming you are having all the basic knowledge of abstract and interface keyword. I am just briefing the basics.

We can not make instance of Abstract Class as well as Interface.

Here are few differences in Abstract class and Interface as per the definition.

Abstract class can contain abstract methods, abstract property as well as other members (just like normal class).

Interface can only contain abstract methods, properties but we don’t need to put abstract and public keyword. All the methods and properties defined in Interface are by default public and abstract.

//Abstarct Class

public abstract class Vehicles

{

private int noOfWheel;

private string color;

public abstract string Engine

{

get;

set;

}

public abstract void Accelerator();

}

//Interface

public interface Vehicles

{

string Engine

{

get;

set;

}

void Accelerator();

}

We can see abstract class contains private members also we can put some methods with implementation also. But in case of interface only methods and properties allowed.

We use abstract class and Interface for the base class in our application.

This is all about the language defination. Now million doller question:

How can we take decision about when we have to use Interface and when Abstract Class.

Basicly abstact class is a abstract view of any realword entity and interface is more abstract one. When we thinking about the entity there are two things one is intention and one is implemntation. Intention means I know about the entity and also may have idea about its state as well as behaviour but don’t know about how its looks or works or may know partially. Implementation means actual state and behaviour of entity.

Enough theory lets take an example.

I am trying to make a Content Management System where content is a genralize form of article, reviews, blogs etc.

CONTENT

ARTICLE

BLOGS

REVIEW

So content is our base class now how we make a decision whether content class should be Abstract class, Interface or normal class.

First normal class vs other type (abstract and interface). If content is not a core entity of my application means as per the business logic if content is nothing in my application only Article, Blogs, Review are the core part of business logic then content class should not be a normal class because I’ll never make instance of that class. So if you will never make instance of base class then Abstract class and Interface are the more appropriate choice.

Second between Interface and Abstract Class.

CONTENT

Publish ()

ARTICLE

BLOGS

REVIEW

As you can see content having behavior named “Publish”. If according to my business logic Publish having some default behavior which apply to all I’ll prefer content class as an Abstract class. If there is no default behavior for the “Publish” and every drive class makes their own implementation then there is no need to implement “Publish” behavior in the base case I’ll prefer Interface.

These are the in general idea of taking decision between abstract class, interface and normal class. But there is one catch. As we all know there is one constant in software that is “CHANGE”. If I made content class as Interface then it is difficult to make changes in base class because if I add new method or property in content interface then I have to implement new method in every drive class. These problems will over come if you are using abstract class for content class and new method is not an abstract type. So we can replace interface with abstract class except multiple inheritance.

CAN-DO and IS-A relationship is also define the deference between Interface and abstract class. As we already discuss Interface can be use for multiple inheritance for example we have another interface named “ICopy” which having behavior copy and every drive class have to implements its own implementation of Copy. If “Article” class drive from abstract class Content as well as ICopy then article “CAN-DO” copy also.

IS-A is for “generalization” and “specialization” means content is a generalize form of Article, Blogs, Review and Article, Blogs, Review are a specialize form of Content.

So, abstract class defines core identity. If we are thinking in term of speed then abstract is fast then interface because interface requires extra in-direction.

So as per my view Abstract class having upper-hand in compare to interface. Using interface having only advantage of multiple inheritance. If you don’t understand the things then don’t worry because it’s my mistake because I am not able to describe the topic.

Monday, March 1, 2010

SqlCacheDependency using ASP.NET 2.0 and SQL Server 2005

SqlCacheDependency using ASP.NET 2.0 AND SQLSERVER 2005 is a beautiful thing :) Although getting SqlCacheDependency to work with SQL Server 2000 is not rocket science, there are a few extra moving parts that need to be set-up in your web.config and on SQL Server 2000. When using SQL Server 2005, all of that goes away :)

Enable Service Broker

Before SqlCacheDependency will work with SQL Server 2005, you first have to enable Service Broker, which is reponsible for the notification services that let the web cache know a change has been made to the underlying database and that the item in the cache must be removed.

ALTER DATABASE Store SET ENABLE_BROKER;
GO

SqlCacheDependency.Start() in Global.asax

In ASP.NET, you need to run SqlCacheDependency.Start(connectionString) in the Global.asax:

void Application_Start(object sender, EventArgs e)
{
string connectionString = WebConfigurationManager.
ConnectionStrings[
"Catalog"].ConnectionString;
SqlDependency.Start(connectionString);
}

SqlCacheDependency in ASP.NET 2.0 Example

Now you can just create your SqlCacheDependency as normal in your ASP.NET 2.0 page. Here is a simple example:

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable categories
= (DataTable)Cache.Get("Categories");

if (categories == null)
{
categories
= GetCategories();
Label1.Text
= System.DateTime.Now.ToString();
}

GridView1.DataSource
= categories.DefaultView;
GridView1.DataBind();
}

private DataTable GetCategories()
{
string connectionString = WebConfigurationManager.
ConnectionStrings[
"Catalog"].ConnectionString;

DataTable categories
= new DataTable();

using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command
= new SqlCommand(
"SELECT CategoryID,Code,Title
FROM dbo.Categories", connection);

SqlCacheDependency dependency
=
new SqlCacheDependency(command);

SqlDataAdapter adapter
= new SqlDataAdapter();
adapter.SelectCommand
= command;

DataSet dataset
= new DataSet();

adapter.Fill(dataset);

categories
= dataset.Tables[0];

Cache.Insert(
"Categories", categories, dependency);
}

return categories;
}
}

Wednesday, January 20, 2010

Top 10 Tutorials to Develop iPhone Apps

If you are tired of downoading apps for your iPhone why not develop one. Don't worry, even if you are a novice with iPhone programming there are a good number of tutorials that can guide you with the development of iPhone apps. It's obvious that you would find it hard when developing your first iPhone app. There is a whole lot of information in iPhone SDKDevelopment that will guide you with the tools and APIs for iPhone application development. Further, there are some cool tutorials that will provide you a step-by-step guide for developing iPhone apps. After a thorough search I came across the top 10 tutorials to develop iPhone apps. Hope my tutorials inspire you to develop your own great iPhone applications.

1. Objective-C and Interface Builder

In order to build iPhone apps you would require a the basics of Cocoa Touch, Objective-C, and Interface Builder. This free tutorial will assist you to learn the elementary knowledge required for developingiPhone apps.

Link

2. First iPhone Application

This tutorial gives you a brief introduction on how to get started with your first iPhone application. This app has been named as

Link

3. Basic iPhone Programming

This is a great tutorial for those new to iPhone SDK Programming (Cocoa in general). Learn the techniques for creating lables, Allocating Classes, AND how to use the basic features of Xcode.

Link

4. Cocoa Touch Tutorial

This tutorial teaches you how to build the a basic Cocoa application using Interface Builder.

Link

5. iPhone SDK Tutorial: Build a Simple RSS reader for the iPhone

To follow this tutorial you would require some familiarity iPhone SDK. This free tutorial allows you to build an RSS feed reader for simple feed.

Link

6. How to make an iPhone Application on XCode

This is an video tutorial that teaches you the step by step procedure need to get an iPhone application running on The XCode Simulator.

Link

7. iPhone Application Tutorial

This tutorial combines two applications - Hello World app and Timer app. By the end of this tutorial you would have the foundation to think about future apps.

Link

8. iPhone Dev Sessions: How To Make An Orientation-Aware Clock

This free tutorial provides you with the steps to create a simple clock that is orientation-aware. in this app the time will rotate as you rotate the iPhone.

Link

9. iPhone Programming Tutorial - Creating a ToDo List Using SQLite Part 1

Before you head for this tutorial you must be well acquainted with UITableViews. With the help of this tutorial you may create a prioritized To-Do list with SQLite.

Link

10. Make an iPhone App Using the Envato API

This tutorial teaches you how to make create your own iPhone app using data from the new API. This can be a useful for those in the beginning stages of API and JSON.

Link

(Source : http://blog.taragana.com/index.php/archive/top-10-tutorials-to-develop-iphone-apps/ )

Thursday, November 26, 2009

Your Professional Network within Microsoft Outlook

Coming Soon: Your Professional Network within Microsoft Outlook

Microsoft announced an exciting new addition to the upcoming Microsoft Office 2010 – the Outlook Social Connector. The Outlook Social Connector is designed to seamlessly bring communications history as well as business and social networking feeds into your Outlook experience.

LinkedIn will be the first networking site to support the Outlook Social Connector. The LinkedIn functionality will be available in early 2010. Our big belief is that you can be much more effective if you have your professional network close at hand, and you can leverage your online identity in the work you do on a daily basis. The Outlook Social Connector will bring your LinkedIn Professional Network to where you work – right within your e-mail inbox.

Here are three key benefits you get from this integration:

1. Keep up with LinkedIn connections right from your e-mail inbox

One of the great things about LinkedIn is being able to learn what your professional connections are working on and thinking about. Just glance at the Network Updates on your LinkedIn homepage and you’ll be able to learn what articles & books your connections are reading, what conferences they are attending, and what questions they are asking and answering on LinkedIn. Many use this information to keep current with their industry and profession, as well as to learn new things and expand their horizons.

The Outlooks Social Connector makes this even easier – by automatically showing the latest activity (i.e. Network Updates) from any LinkedIn connection that sends you an e-mail. So now you can get the latest information from your LinkedIn network even without having to leave your inbox.

2. E-mail your LinkedIn connections directly from Outlook

Know that perfect LinkedIn connection to help you with a business task or question but don’t remember their current email address? No longer do you have to go to the LinkedIn website to find their contact information before sending them a message, as your LinkedIn network is now available right within your inbox. Just start typing the name of a LinkedIn connection in the “To:” field of an Outlook message and the connections’ e-mail address from LinkedIn will automatically appear as if they are an existing Outlook contact. In fact, the Outlook Social Connector will create an Outlook Contacts folder for all of your LinkedIn connections and bring down their contact information, professional details, and picture from LinkedIn into Outlook.

3. Keep building your professional network from Outlook

Working with someone new but haven’t had a chance to connect with them on LinkedIn? By bringing professional networking to where you work, the Outlook Social Connector again makes it easy. Just click a button next to any e-mail you receive and instantly send an invitation to connect to the e-mail’s sender. It’s that easy.

We hope that these functions start bringing some of the key elements of your LinkedIn professional network to where you work – your Outlook e-mail inbox, sometime early next year. But these are certainly just the first steps. Let us know what else you’d like to see by leaving a comment below.

Source : http://blog.linkedin.com/2009/11/

Tuesday, November 17, 2009

Restrict IP Address to prevent invalid login attack to SQL Server.

Restrict IP Address to prevent invalid login attack to SQL Server.

Recently, we in customer scenario, amount of attacks come through making connection to SQL Server 2005 and trying invalid sa login. Under such a situation, SQL Server report error " login failed for user sa . It is quite annoying to get a lot of this kind of error under an attack and consequently impact the performance of SQL Server.

However, currently, SQL Server 2005 can not block client request based on IP Address automatically and it requires administrator to use one of the following operating system tools to workaround.

(1) IP Sec

Configure IP Sec policy to block ip address from the attacker's machine. IPSec is available on windows 2000, XP and windows 2003.

http://support.microsoft.com/kb/313190

(1) Firewall

When enabling exception for SQL Server port, the administrator can specify which ip addresses/network to be allowed to connect to it. Currently Window Firewall is available on windows XP and windows 2003.

http://www.microsoft.com/technet/community/columns/cableguy/cg0204.mspx#ELC

(3) RRAS IP Filter

Configure RRAS to drop the traffic from the attacker's ip address. RRAS is only available on windows server products. such as windows 2000 and windows 2003.

Refer to http://www.microsoft.com/technet/archive/winntas/proddocs/rras40/rrasch03.mspx?mfr=true


Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights


Source: http://blogs.msdn.com/sql_protocols/archive/2006/04/10/572605.aspx


Thursday, November 12, 2009

GO: Google Launches Its Own Programming Language

One of the core philosophies of Google, and one of the reasons it has been so successful, is efficiency. It’s about both being as efficient as possible when serving search results and processing data and creating product that push the limits of efficiency for the user (as an example, Google’s trying to make communication more efficient with Google Wave).

Maybe that’s why we’re not surprised that Google is finally looking to tackle the underpinning code that runs the web. Today the search giant released Go, an open-source development language that Google believes will combine performance with speed, and one that the company probably hopes will reshape the development and software industries in its favor.

Go is based on the C programming family, one of the most widely used programming language trees in the world. However, the twist is that incorporates elements of Python (a preferred development language within Google) and the Pascal/Modula/Oberon family to make faster and more dynamic programs.


Why Did Google Make Its Own Language?


In its Go FAQ, Google explains the main motivations behind the project:

“No major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously. There are several trends:

- Computers are enormously quicker but software development is not faster.

- Dependency management is a big part of software development today but the “header files” of languages in the C tradition are antithetical to clean dependency analysis—and fast compilation.

- There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript.

- Some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages.

- The emergence of multicore computers has generated worry and confusion.”

Summary: Google believes that the web and computing have changed dramatically in the last ten years, but the languages powering that computing have not. But when you get down to it, Google could benefit a great deal from not only having a more efficient programming language, but having one it designed being used in thousands web and software apps.

If you want to learn more, Google (as usual) has released a detailed, hour-long Google Tech Talk on the new language (embedded below). However, if you’re a developer and just want to get started, we suggest checking out the Go Tutorial and writing your first program.


Source : http://mashable.com/2009/11/10/go-google-language/


 
Feedback Form
Feedback Analytics