Saturday, May 21, 2011

Flavors of Cloud

Cloud can be presented in three flavors. They are

· Infrastructure-as-a-Service (IAAS), Eg: Amazon web services[ Amazon EC2], Rackspace etc

· Platform-as-a-Service (PAAS) Eg: Microsoft Azure Platform, Google App Engine. and

· Software-as-a-Service (SAAS) Eg: SalesForce.com, Google Apps, Microsoft BPOs, Office365, SharePoint Online.

Depending upon the customer’s needs, one of the formats of cloud offering can be adopted. The benefits of each of the above flavors vary. In a nutshell, the benefits of the cloud offerings can be shown as under for the various flavors.

Courtesy Microsoft Corporation

Labels: , , , , ,

Sunday, May 08, 2011

Problem Management

Problem Management is the Process responsible for managing the Lifecycle of all Problems. The primary Objectives of Problem Management are to prevent Incidents from happening, and to minimize the Impact of Incidents that cannot be prevented. (ITIL® V3 Glossary v3.1.24, 11 May 2007)

While Incident Management is responsible for the fix or workaround, ultimately it is the Problem Management that performs the root cause analysis for chronic Incidents and provides a permanent solution.

There are two approaches towards managing a problem
  • When a problem has occurred and a solution need to be found, it is considered Reactive Problem Management
  • Proactive problem Management helps to manage a problem proactively (opposite opposite of reactive) by trying to anticipate problems and prevent them from happening.
When a problem has occurred and a solution need to be found, it is considered Reactive Problem Management

See also
  1. Change Management

Labels: , , ,

Change Management

Change Management is an essential process of any IT department. Change management is a structured approach to transitioning individuals, teams and organizations from a current state to a desired future state. Change Management ensures that only authorized and carefully considered Changes are implemented. Changes can be planned and unplanned and or emergency Changes and there is a process to handle both.

There are a number of business drivers for a change management process:
  1. Compliance - Your industry may require that certain changes be reviewed, approved, documented, and deployed in a methodical way.
  2. Productivity - The smallest change in a user interface can result in hours of lost productivity if users aren't given advance warning or training.
  3. Reliability - Prevent the deployment of changes that may break existing workflows or processes.
Change management processes attempt to answer all or some of the following questions:
  • Who approved and/or made the change?
  • Why was the change needed?
  • When was the change made?
  • How was the change deployed?

    See also
    1. Problem Management

    Labels: , ,

    Monday, October 22, 2007

    Excel Connection in SSIS

    While trying to load Excel files, by default SSIS will consider first 8 rows to determine the data type of each column. Refer http://support.microsoft.com/kb/189897/en-us regarding this. So, cases where the first 8-10 rows have empty data, the data type selected by SSIS may not be correct and we may face problems with uploading/transforming the data in these columns.

    We can resolve this issue by adding "IMEX=1; MAXROWSTOSCAN=0" to the excel connection string extended properties. A typical excel connection string after adding the above properties will look as follows:


    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test.xls;Extended Properties="EXCEL 8.0;HDR=YES;IMEX=1; MAXROWSTOSCAN=0";

    Labels: , , , ,

    Monday, March 12, 2007

    Writing Javascript from the Server Side

    Most of the time we might be require javascript to be created dynamically. This is required in most of the cases when you want to show some alert or confirm messages to the user. Sometimes, it may require to generate these javascript dynamically as we might need to show / process some values which are available from the serverside to these javascript functions.

    This piece of code, displays the contents of the textbox in a message box to the user.

    The HTML....

    <html>
    <head>
    </head>
    <body>
    <form runat="server">
    <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
    <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Show Alert"></asp:Button>
    </form>
    <script>
    <asp:literal runat="server" id="ltScript"></asp:literal>
    </script>
    </body>
    </html>
    
    



    The Code...

    void Button1_Click(object sender, EventArgs e)
    {
    Literal ltScript = (Literal) Page.FindControl("ltScript");
    ltScript.Text = "alert('" + TextBox1.Text + "')";
    }
    
    



    See also
    1. trim method in JavaScript

    Labels:

    Monday, September 11, 2006

    Set the Account Expiry property in LDAP

    In many forums, I have found the question of how to set the AccountExpiry property in LDAP. I saw these when I was facing such a similar issue. Most of the forums did not mention much or those which mentioned something were incomplete. That is why I thought of blogging my solution.

    This piece of code, is the one which I use to create a temporary user for my application. This can be helpful when you want to create a user whose account will expire after a certain period of time. Here I set it as 90 days.

    The Code...


    void SetAccountExpiry(string UserName)
    {
    DirectoryEntry UserDE = new DirectoryEntry(LDAPPath, LDAPUserName, LDAPPwd);

    DirectorySearcher oSearch = new DirectorySearcher(UserDE);
    oSearch.Filter = "(SAMAccountName=" + UserName + ")";
    SearchResult oResult = oSearch.FindOne();
    UserDE = oResult.GetDirectoryEntry();

    DateTime accExp = DateTime.Now.AddDays(90);
    int64 accExpNum = accExp.ToFileTime();
    UserDE.Properties["accountExpires"].Value = GetLargeinteger(accExpNum);
    UserDE.CommitChanges();
    }


    IADsLargeinteger GetLargeinteger(long val)
    {
    IADsLargeinteger largeint = new Largeinteger();
    largeint.HighPart = (int) (val >> 32);
    largeint.LowPart = (int) (val & 0xFFFFFFFF);
    return largeInt;
    }



    Hope this code was helpful. Comments and suggestions are always welcome.

    Thursday, September 07, 2006

    Creating Custom App Settings in Web.Config

    Most of the application requires lots of settings to be specified in the App Settings. Unless you manage that in a neat way, it will soon become a headache for you.

    .Net helps you out in this situation by allowing you to have custom AppSettings in your web.config. This will help you to group your appSettings in a more efficient manner so that management becomes much easier.

    In this blog, I have a sample code which lets you to retrieve the values from the custom AppSettings tag in your web.config.

    The Code....


    // Usage
    string MyKey = GetSettings ("Mykey");

    // The method
    private string GetSettings(string Key)
    {
    System.Collections.Specialized.NameValueCollection obj = (System.Collections.Specialized.NameValueCollection) System.Configuration.ConfigurationSettings.GetConfig("MySettings");
    return obj[Key].ToString();
    }



    The Web.config...

    <!-- Defining a new section -->

    <configSections>
    <section name="MySettings"
    type="System.Configuration.NameValueFileSectionHandler,System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </configSections>

    <!-- The New Section -->

    <MySettings>
    <add key="Mykey" value="MyKeyValue" />
    </MySettings>

    Friday, July 28, 2006

    Highlight rows in a DataGrid

    Here is another useful piece of code which can be helpful for novice programmers.

    DataGrid is a very nice tool to present the data. It is quite easy and once you start using that, I am sure, anybody would enjoy using that control. We can bind a grid to a dataset in just two steps.


    1. Assign the DataSource property of the grid to a DataObject. The DataObject can be anything from a DataSet to an array.

    2. Call the DataBind() method to bind the data.


    We can do further processing in the control in its ItemDataBound event.

    Once you have bound the data, the ItemDataBound even can be used to do furthur processing.

    In this example I present how to mark certain rows in a DataGrid based on some data. Here I use the Employees table in the Northwind database. I populate a grid with data and mark the Employees whose city is "Seattle"

    The Code...

    void Page_Load(object sender, EventArgs e)
    {
    DataGrid1.DataSource = GetData();
    DataGrid1.DataBind();
    }

    void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
    {
    if (e.Item.Cells[4].Text == "Seattle") // Cell4 Contains the City
    {
    e.Item.CssClass = "Hilite";
    }
    }
    }




    I have not included the code for creating the DataSet. The HTML has also not been inlcuded. It contains a DataGrid

    See also
    1. Export DataGrid to Excel
    2. Showing Checkboxes in Grid
    3. Create Serial# column in Datagrid/DataList