Welcome to MSDN Blogs Sign in | Join | Help

7000 Dominoes mark Windows 7 Launch

What comes to your mind when you think about Product Launch: Roadshows? Celebrity performances? Press conference? Gliterry evening with fancy stage?

How about Dominoes? Sounds different? Well, it was. 22 Microsoft employees worked for hours to setup 7000 dominoes at Microsoft campus in Hyderabad, India. The occasion was Windows 7 Launch on 22 October 2009.

How it started

Archis Gore came up with the idea of having a Domino demonstration and a couple of others found it really interested and unique. Like minded people gathered, discussed and executed the plan.

What made it possible

22 employees, 7000 dominoes, hours of effort to put up the dominoes, 3 dry runs and a lot of brainstorming.

All those who worked on the effort (in alphabetical order):

Anirban Debaprabha Das;Ansuman Acharya;Anup Nair;Archis Gore;Gargi Mitra;Gunjan Kesri;Hari Prasad N;Jitu Keshri;Lakshman Kumar Veerarajan;Mukesh Bhangria;Neha Gupta;Prashali Moodabettu Lakshminarayana;Puneet Singh;Ravi Kiran Puttaswamy;Sachin Verma;Sidharth Sehgal;Sidharth Vijayachandran;Swapnil Kothe;Tanvi Ritwik

Not to forget the support we got from : Anil Bhansali, Chitra Sood, Juhee Ahmed and Debjani Mukherji

And are you wondering if I am late in blogging about it? No… I was waiting for the right time, today is the 7th day of Windows 7 launch :) It’s all about 7 you see

Video of the Domino Demonstration (Uploaded by Archis Gore and Shoot by Ankur Sadhoo)

 

During one of the dry runs. We devised a way of setting up the fallen dominoes without disturbing the ones near them (and you can see me on the pipes).

 

Some pictures from the Event:

 _DSC0138

 _DSC0180

 100_0158

--

Virtual TechDays is back

Microsoft Virtual TechDays is back – don’t miss on this opportunity to get trained on the latest Microsoft technologies. You have the opportunity to learn and explore how Microsoft products and tools can help you quickly address your most time-consuming development challenges. Join fellow developers, architects, IT Professionals, designers and project managers at this online event to interact with the best-in-class technologists attending the event.

Agenda for the third and last day (21 August 2009) can be found at http://www.virtualtechdays.com/agenda_architects.aspx

 

Posted by ssehgal | 0 Comments
Filed under:

Register for PDC ‘09

Registrations for Professional Developers Conference (PDC) is now open. Register before September 15 and receive a $500 USD off the regular conference pass price.

clip_image002

ABOUT THE PDC

The Professional Developers Conference (PDC) is Microsoft’s premier gathering of leading-edge developers and architects.  Attendees come from around the world to learn about the future of Microsoft’s developer platform, exchange ideas with Microsoft technology experts, and network with fellow professionals.  This is the conference you need to attend if you want to stay ahead curve, and get a head start on planning your company’s products and technology investments.

Register by September 15th and receive $500 off your conference pass – that’s the best discount you’ll get for PDC09.  Visit us online at www.microsoftpdc.com and learn more about the future-focused content, industry-leading speakers and other great opportunities you’ll get at PDC09.

WHAT’S IN STORE FOR YOU AT PDC09

KEYNOTES

PDC is where our biggest names make the biggest announcements. Learn about the future of the Microsoft developer platform straight from the people who make it happen - Microsoft's Chief Software Architect, Ray Ozzie, and the President of Server and Tools, Bob Muglia.

SESSIONS & SPEAKERS

For the first time ever, participate in a perfect storm of brilliance, insight, experience, and vision as we bring together Microsoft’s Technical Fellows for the Technical Leaders series of sessions at PDC09. These are the big brains that develop and drive technical strategies for Microsoft and the industry, and this is a series you won’t want to miss.  Visit the Sessions page for a full listing of published sessions.

WORKSHOPS

Join us a day early (on November 16) for a full day of in-depth content delivered by recognized industry leaders.  Workshops are available exclusively to attendees – they will not be made available online.  Don’t miss out on the opportunity to expand your developer skills at the PDC09 workshops.

SPECIAL EVENTS

Not only will you get great content and speakers, you’ll also get early access to the technology and opportunities to meet one-on-one with Microsoft developer technology experts and fellow professions at our special events.  Visit the Special Events page for more information.

Pay your tributes to the King of Pop

Pay your tribute to Michael Jackson and watch his memorial live from the Staples Center in Los Angeles on July 7, 2009 10 AM PT, 1 PM ET at http://inmusic.ca/news_and_features/Michael_Jackson 

IIS Smooth Streaming and Microsoft Silverlight will be working behind the scene to bring you this broadcast to you in HD.

India Union Budget 2009 live on net, thanks to Silverlight

You don't need to worry if you want to catch up budget session live and don't have a Television set near you. Just log onto http://budgetlive.economictimes.com/ on 6 July 2009, 10 AM IST, where Microsoft Silverlight will be used to deliver streaming Live Budget session.

 

 

Running IIS6 App Pools under a Domain account Identity

Recently we changed the Identity of an App Pool in IIS 6, from Network Service to a Domain account. Soon after recycling the App Pool, we started seeing some issues.

As soon as we started the App Pool, the following warning was logged in the System section of Event Viewer:

 

Event Type:    Warning
Event Source:    W3SVC
Event Category:    None
Event ID:    1021
Date:        6/22/2009
Time:        11:16:26 PM
User:        N/A
Computer:    <ComputerName>
Description:
The identity of application pool, 'MyAppPool' is invalid.  If it remains invalid when the first request for the application pool is processed, the application pool will be disabled.  The data field contains the error number.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 69 05 07 80               i..

 

And when the Web Application which was using this App Pool was accessed, the App Pool stopped, logging these warnings/errors in Event Viewer:

 

Event Type:    Warning
Event Source:    W3SVC
Event Category:    None
Event ID:    1057
Date:        6/22/2009
Time:        11:16:39 PM
User:        N/A
Computer:    <ComputerName>
Description:
The identity of application pool 'MyAppPool' is invalid, so the World Wide Web Publishing Service can not create a worker process to serve the application pool.  Therefore, the application pool has been disabled.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

 

 

Event Type:    Error
Event Source:    W3SVC
Event Category:    None
Event ID:    1059
Date:        6/22/2009
Time:        11:16:39 PM
User:        N/A
Computer:    <ComputerName>
Description:
A failure was encountered while launching the process serving application pool 'MyAppPool'. The application pool has been disabled.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

 

So, here’s what you need to do if you are switching the identity of IIS App Pool to run under a Domain Account, Unless you love seeing the errors above :)

 

1. Add the Domain Account to the IIS_WPG group on the Machine running IIS.
(This group is the worker Process group which contains the Accounts, allowed to run the IIS worker process.)

2. Goto Start> Run and type secpol.msc . Hit OK. The Local Security Settings console will open up. Under Security Settings, expand Local Policies and Click User Rights Assignment. Double click Log on as a service in the right pane. Add the domain account if not already listed. Click OK and exit the console.
(It enabled the Domain account to register a process as a service.)

You are all set to run your web application now :)

Posted by ssehgal | 0 Comments

Securing the Microsoft Cloud Infrastructure &amp; Microsoft Online Services

Microsoft Global Foundation Services and BPOS team has provided the following resources to assist in concerns regarding the security, Privacy, reliability and operational controls for companies considering moving IT operations to Microsoft cloud.

 

Posted by ssehgal | 0 Comments

Are you ready for Server Quest II ?

The company’s  resident IT professional extraordinaire has just returned from a much-deserved vacation but, in a temporary spell of relaxed judgment, has jeopardized their reputation with a poorly placed email and forwarded personal holiday snaps to the entire staff. Now they have to excavate through the email chain to find the offending photos – all while keeping the office online.
In Server Quest II, the sequel to last year’s pixellated adventure, players must hone their technical prowess in order to prove once and for all why the tech pros take the cake.  From software support to sidequests, players will get behind the curtain and live the life of a server genius fighting for respect.”

clip_image002

Posted by ssehgal | 0 Comments
Filed under: , , ,

Azure “How Do I” videos

Learn more about Azure with free How Do I videos at http://msdn.microsoft.com/en-us/azure/dd439432.aspx 

4 new videos added recently:

Solution Topic: How Do I… Description
clip_image002[4] Leverage Concurrency in Windows Azure Table Storage? Windows Azure table storage is designed to support many users at the same time. In this session, you’ll learn how Windows Azure table storage supports concurrency, and you’ll learn a few strategies to help you deal with any concurrency violations.
  Use Paging in Windows Azure Tables? To improve application usability, many applications need to support viewing data page-by-page. In this screencast, you'll learn how Windows Azure table storage provides a built-in mechanism that allows you to efficiently page through query results.
     
clip_image002[6] Sync Between Devices and the Cloud with FeedSync? Syncing the cloud and a growing world of devices is a fundamental need in today’s world. In this video, you will learn how to use FeedSync feeds to synchronize Live Framework data between a device and the cloud.
  Get Started with the Messenger Web Toolkit? Making your application sociable is easy. In this screencast, Chris Parker uses simple code to add instant messaging to his Web site. In minutes he connects his Web site to 320 million Instant Messenger (IM) users on PCs, Macs, mobile devices and Xbox 360. These efforts can help bring new users to his application and retain them for a longer period of time through the use of cool features like chat, presence, contacts and profile information.
Posted by ssehgal | 0 Comments
Filed under: , , ,

Springboard Virtual Roundtable - Windows 7 Application Compatibility, Part 1

Mark Russinovich will host a virtual roundtable for IT pros worldwide to discuss Windows 7 Application Compatibility on Thursday, June 18.

This is a chance for IT pros to learn all about the Windows 7 Application Compatibility and answer any deployment and management questions that they may have. As part of the “virtual” experience, IT pros will be able to submit their questions about Windows 7 Application Compatibility to the panel live during the event—or submit questions in advance to vrtable@microsoft.com.

Join Mark on June 18 2009,  11 AM Pacific Time at https://ms.istreamplanet.com/springboard 

clip_image002

 

Springboard Series Virtual Roundtable

Windows 7 Application Compatibility: Your Questions Answered (Part 1)

Date: Thursday, June 18

Time: 11:00am Pacific Time

https://ms.istreamplanet.com/springboard

Windows 7, is approaching fast and from the application standpoint is very similar to Windows Vista. We’re going to examine Windows 7 application compatibility not only from the perspective of moving from Windows Vista, but also for those coming from Windows XP. Join us to discuss the most common challenges around application compatibility when coming from a legacy operating system, why changes were made along the way, compatibility technologies inside the OS and methods for getting incompatible applications to run on Windows 7. Along the way we share tips and tricks, demonstrate free tools to analyze and fix applications and answer your specific questions about application compatibility live.

In Part 2 of this Virtual Round Table discussion (planned for later this Summer/Fall), we’ll discuss the options and approaches for using virtualization tools In depth to address application incompatibilities – including presentation virtualization, desktop virtualization and application virtualization. We’ll be sending out more details and posting information to www.microsoft.com/springboard for part 2 as the dates are finalized.

As part of the “virtual” experience, you may submit your questions about Windows 7 Application Compatibility to the panel live during the event—or submit questions in advance to vrtable@microsoft.com.

Springboard Series: The resource for Windows desktop IT professionals

 

clip_image004

clip_image006

clip_image004[1]

clip_image008

Configuring Windows services using Command Prompt

Configuring the properties of a Windows Service using command prompt and scripting it in a batch file is really simple and can save you from performing the same manual configuration again and again.

The sc utility comes handy to achieve this.

In the example below, we are going to configure a windows service to:

  • Set the startup type as automatic.
  • Run the service under a particular account
  • Set the failure actions for the service and set the reset period.
  • Define dependencies.

To give a more clear understanding, screenshots of the service properties UI is attached along with the scripts to set the configurations.

1. Set the startup type as automatic.

image

sc config "Service1"  start= auto

Note here that although the Display name of the Service is myfirstservice, The actual Service name is Service1. We need to use the actual service name in the scripts to control the service properties.

2. Run the service under a particular account

image 

sc config "Service1" obj= mydomain\sidharth password= MyPassword

 

3.Set the failure actions for the service and set the reset period.

image 

sc failure "Service1"  actions= restart/180000/restart/180000/""/180000 reset= 86400

The restart service times are in milliseconds and the reset fail count time is in seconds.

4. Define dependencies.

image

Our service depends on the SQL Server service, whose Actual Service name is MSSQLServer, To set this dependency, use the following command.

sc config "Service1"  depend= "MSSQLServer"

Finally, to start the server use

net start Service1

We can also club all the command and save it as a batch file, it will look like this:

sc config "Service1"  start= auto
sc config "Service1" obj= mydomain\sidharth password= MyPassword
sc failure "Service1"  actions= restart/180000/restart/180000/""/180000 reset= 86400
sc config "Service1"  depend= "MSSQLServer"
net start Service1

Bing webcast on June 1 @10 PM pacific time

[Taken from http://blogs.msdn.com/livesearch/archive/2009/05/29/join-us-june-1st-10am-pt-for-the-bing-webcast.aspx]

Want more Bing?  How about an interactive Webcast where we’ll walk you through all the cool features in our new decision engine.  Sure you could read the Product Guide (located here) but that would require, you know, reading.  Better just to watch. 

Plus, while you can talk to the Product Guide it likely won’t respond (and if it does let us know - I thought we fixed that bug).   Our webcast will let you interact with the presenter by asking questions throughout the session!

How do you join in the fun?  Three easy steps:

1) Set your alarm clocks for 10AM Pacific Daylight Time, Monday, June 1. 

2) Point your browser to  http://ms.istreamplanet.com/search (I’d do this before 10AM just to make sure you’ve got what you need to watch the stream)

3) Sit quietly and watch the ‘cast OR engage by typing questions in the player.

That’s it!  Tell your friends.  Tell your neighbors.  Tell people you don’t even know.  Post it on Facebook. The Bing Webcast– no prompters, no scripts, 100% danger.

Automating config file changes : Part 4 – Adding a new element to an XML file

After updating and deleting element from an XML config file, lets see how to add new elements at the desired position in an XML file.

We will again take the same web.config file , which we took in the first example and save it at C:\MyApplication

<?xml version="1.0"?>
<configuration>
  <system.web>
    <customErrors mode="On" defaultRedirect="Error.htm">
      <error statusCode="404" redirect="http://myAppDevWeb/404.aspx"/>
    </customErrors>
  </system.web>
  <appSettings>
    <add key="DBServer" value="myAppDevDB"/>
  </appSettings>
</configuration>

 

We want to add a new element <add key="ReportingServer" value="myAppDevRpt"/> under the appsettings section if it does not exist. If it exists we will set the value as myAppDevRpt

The resultant file should look like this

<?xml version="1.0"?>
<configuration>
  <system.web>
    <customErrors mode="On" defaultRedirect="Error.htm">
      <error statusCode="404" redirect="http://myAppDevWeb/404.aspx"/>
    </customErrors>
  </system.web>
  <appSettings>
    <add key="DBServer" value="myAppDevDB"/>
    <add key=”ReportingServer" value="myAppDevRpt"/>  
  </appSettings>
</configuration>

 

Lets have a look at the script.  We will name this script addElement.ps1 and store it in C:\Scripts

# Parameter declaration which will be passed to the script during execution

Param (
    $webConfigPath      #Path to the web.config file. Make sure file is not read-only
)

$RptKeyFound=0;

$xml = [xml](get-content $webConfigPath);              # Create the XML Object and open the web.config file
$root = $xml.get_DocumentElement();                     # Get the root element of the file

foreach( $item in $root.appSettings.add)                  # loop through the child items in appsettings
{
  if($item.key –eq “ReportingServer”)                       # If the desired element already exists
    {
      $item.value = “myAppDevRpt”;                          # Update the value attribute
      $RptKeyFound=1;                                             # Set the found flag
    }
}

if($RptKeyFound -eq 0)                                                   # If the desired element does not exist
{
    $newEl=$xml.CreateElement("add");                               # Create a new Element
    $nameAtt1=$xml.CreateAttribute("key");                         # Create a new attribute “key”
    $nameAtt1.psbase.value="ReportingServer";                    # Set the value of “key” attribute
    $newEl.SetAttributeNode($nameAtt1);                              # Attach the “key” attribute
    $nameAtt2=$xml.CreateAttribute("value");                       # Create “value” attribute 
    $nameAtt2.psbase.value="myAppDevRpt";                       # Set the value of “value” attribute
    $newEl.SetAttributeNode($nameAtt2);                               # Attach the “value” attribute
    $xml.configuration["appSettings"].AppendChild($newEl);    # Add the newly created element to the right position

}

$xml.Save($webConfigPath)                                                # Save the web.config file

 

Run the script

Open Command Prompt

c:\>Powershell

PS C:\> cd scripts

PS C:\scripts> .\addElement.ps1 “C:\MyApplication\web.config”

 

 

Related Posts:

Automating config file changes : Part 1 – Installing Microsoft Windows Powershell

Automating config file changes : Part 2 – modifying already existing config keys

Automating config file changes : Part 3 – Deleting an element from an XML files

Automating config file changes : Part 3 – Deleting an element from an XML file

This post talks about removing an existing XML element from the config file. Consider a scenario where we have the following web.config file saved at location C:\MyApplication

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web">
      <section name="myConfigSection”/>
    </sectionGroup>
  </configSections>
  <system.webServer>
    <modules>
      <add name="moduleToRemove”/>
      <add name="moduleToKeep”/>
    </modules>
  </system.webServer>  
  <system.web>
    <customErrors mode="On" defaultRedirect="Error.htm">
      <error statusCode="404" redirect="http://myAppDevWeb/404.aspx"/>
    </customErrors>
  </system.web>
  <appSettings>
    <add key="DBServer" value="myAppDevDB"/>
  </appSettings>
</configuration>

The requirement is to remove the <configSections> and the module “moduleToRemove” . These sections are  marked in Red.

The resultant file should look like this

<?xml version="1.0"?>
<configuration> 
  <system.webServer>
    <modules>
      <add name="moduleToKeep”/>
    </modules>
  </system.webServer>  
  <system.web>
    <customErrors mode="On" defaultRedirect="Error.htm">
      <error statusCode="404" redirect="http://myAppDevWeb/404.aspx"/>
    </customErrors>
  </system.web>
  <appSettings>
    <add key="DBServer" value="myAppDevDB"/>
  </appSettings>
</configuration>

 

Lets have a look at the Powershell script we will be using. We will name this script RemoveElement.ps1 and save it in C:\Scripts

# Declaring the parameter to be passed while executing the Powershell script

Param (
            $webConfigPath        # Path to the web.config file. Make sure file is not read-only
          )

$xml = [xml](get-content $webConfigPath)                                                      # Create XML object and open the web.config file

$nodeToRemove= $xml.configuration.SelectSingleNode("configSections");           # Selecting the Element to be removed
$xml.configuration.RemoveChild($nodeToRemove);                                          # Remove the Element

foreach( $item in  $xml.configuration."system.webServer".modules.add )             # Traverse through all modules
{
        if( $item.name -eq "moduleToRemove" )                                                 # Checking if the current module is to be removed
        {
              $xml.configuration."system.webServer".modules.RemoveChild($item);   # Remove the desired module when found
        }
}

 

$xml.Save($webConfigPath)                                                                            # Save the updated web.config file

 

Run the script:

c:\>Powershell

PS C:\> cd scripts

PS C:\scripts> .\RemoveElement.ps1 “C:\MyApplication\web.config”

 

 

 

Related Posts:

Automating config file changes : Part 1 – Installing Microsoft Windows Powershell

Automating config file changes : Part 2 – modifying already existing config keys

Automating config file changes : Part 2 – modifying already existing config keys

This post contains the Powershell script to modify already existing config key values in a config file.

A sample web.config file is given below

<?xml version="1.0"?>
<configuration>
  <system.web>
    <customErrors mode="On" defaultRedirect="Error.htm">
      <error statusCode="404" redirect="http://myAppDevWeb/404.aspx"/>
    </customErrors>
  </system.web>
  <appSettings>
    <add key="DBServer" value="myAppDevDB"/>
  </appSettings>
</configuration>

We want to modify the 404 redirect page address and DBServer by passing the required values to the Powershell script.

The following Powershell script helps us achieve this. We will name this script webUpdate.ps1 and store it in C:\Scripts

# In Powershell, variable is declared by prefixing dollar symbol $
# Anything followed by hash # is treating as a single line comment
# –eq is the comparison operator
# Plus + is used to concatenate strings

# Parameter declaration which will be passed to the script during execution

Param (
    $webConfigPath,        # Path to the web.config file. Make sure file is not read-only
    $webServerName,      # Name of the Webserver. This value will be used to construct the 404 page address
    $dbServerName         # Name of the DB Server.
)

$xml = [xml](get-content $webConfigPath);                           # Create the XML Object and open the web.config file
$root = $xml.get_DocumentElement();                                  # Get the root element of the file.

foreach( $item in $root."system.web".customErrors.error)         # Iterate through each error node under the customErrors tag
{
    if( $item.statusCode -eq "404" )                                       # Check if the current statusCode is 404
        { $item.redirect = “http://” + $webServername + "/404.aspx"; }         # Setting the redirect value for 404 error page
}

foreach( $item in $root.appSettings.add)                              # Updating the DBServer Name
{
        if( $item.key -eq "DBServer" )
            { $item.value = $dbServerName; }
}

$xml.Save($webConfigPath)                                               # Finally, Saving the file

We will now run the script on a web.config file present at the location C:\MyApplication\web.config
The requirement is to update the config values for the Test environment where the webserver name is myAppTestWeb and the DB Server name is myAppTestDB

Open Command Prompt

c:\>Powershell

PS C:\> cd scripts

PS C:\scripts> .\webUpdate.ps1 “C:\MyApplication\web.config” myAppTestWeb myAppTestDB

 

 

 

Related Post: Automating config file changes : Part 1 – Installing Microsoft Windows Powershell

More Posts Next page »
 
Page view tracker