View from Above

Shamit Patel @ MSFT

  • Welcome Shan!

    Shanmugam has been writing some very useful stuff over out here. Go ahead and check it out, I will be definitely be adding it to my RSS feeds.

     Maybe now I will be more regular in doing posts :)

  • New college recruiter for University of Maryland, Baltimore County

    Carey Morgan has been a great college recruiter for UMBC (University of Maryland, Baltimore County). With new fiscal year, he is taking on new goals. On behalf of UMBC alumni, we wish him all the best!

    We now have Meaghan Angelo taking up role of college recruiting for UMBC (she also handles University of Maryland, College Park).

    We wish her the best and hope we all have happy recruiting this year too!

    Btw - you should check out http://www.microsoft.com/college/yourschool.aspx . If you want to hear more contact your college recruiter or me.

    cya

  • Disgusting - Bomb blasts at Bombay

       One word - Cowardly

    There were simultaneous bomb blasts at seven places in bombay trains during rush hour traffic.

    My thoughts are with those affected.

    Rediff at http://ia.rediff.com/news/2006/jul/11train.htm?q=tp&file=.htm

    BBC at http://news.bbc.co.uk/2/hi/south_asia/5169332.stm

    CNN at http://www.cnn.com/2006/WORLD/asiapcf/07/11/mumbai.blasts/index.html

  • Where is Telnet in Vista/Longhorn beta builds?

    Telnet is now made an optional component in Vista and Longhorn Servers. This means if you type telnet in command shell, you will be out of luck.

    Why have we done it so?

    As time has passed, fewer users use telnet. Thus, to decrease the foot print as well as the attack surface, we decided to make it an optional component.

    Great, now how do I get telnet client/server working again?

    Vista -

    Use software explorer or Click Start, Control Panel, Programs, and then Turn Windows Features on or off. In the list, scroll down and select Telnet Client. Click OK to start the installation.

    Longhorn -

    Use RMT to install

    If you want to use command line options - please use the following commands -

    Command line to install telnet server:

    start /w pkgmgr /iu:"TelnetServer"

    Command line to install telnet server:

    start /w pkgmgr /iu:"TelnetClient"

    So have a try and let me know!

     

  • Help - Install problems with SDK and SUA on Vista/Longhorn!

    Few folks have been trying to install utilities and SDK from web on SUA running on Vista/LH.

    They get the following error -

    "Setup failed to create the symlink etc\hosts."

    This happens normally when you attempt to install SUA SDK on post Beta2 (5384) Vista/LH builds.

    Solution -

    Be logged in as an administrator. You need to run setup.exe and not setup.msi, and allow the program to run (a UAC prompt comes for unidentified program).

    Another option is to right click and run setup.exe as administrator.

    Posted Thursday, July 06, 2006 7:14 PM by shamit | 0 Comments
    Filed under:

    Attachment(s): SUA.JPG
  • Web download for Utilities and SDK for Subsystem for UNIX-based Applications in Vista/Longhorn Beta 2 available!

    We have Subsystem for UNIX-based Applications (SUA) component available in Vista Ultimate and Enterprise SKUs.

    What does this component do?

    SUA provides the basic infrastructure to run UNIX-based applications and scripts on Windows Vista (Ultimate and Enterprise) and Longhorn Server

    How does this component do that?


    It is a native subsystem residing on top of the kernel just like the win32 subsystem

    To do all the cool things, we need you to download from web which supplements SUA and brings you all the goodness.  We have had web download available here. Please note that it works *only* for Beta 2 (build 5384) bits only.

    Please try it and drop me a line on how your experience was!

    Thanks,

  • Web download for Identity Management for UNIX - Longhorn Server Beta 2

    Identity Management for UNIX component is available with Longhorn Server Beta 2 (5384) build.

    This component has two subcomponents -

    1. Password Synchronization
    2. Server for NIS

    We have a web download which contains Single Signon Daemon (SSOD) which can be installed on Linux and UNIX variants like AIX, Solaris, and HP-UX.

    This web download is now available at this location.  Please try it out and let me know the feedback. We are very excited to hear about them!

     

  • Welcome again!

    Hello everyone!

       First of all, I would like to update you with what I have been doing (in other words, what you have been missing)

       I transitioned the teams, and am working for UNIX Interop team (in Windows Server) for quite some time now. I also had an opportunity to take up Program Manager role.

    We own three components -

    1. Telnet (Yeah, one of the oldest mechanisms to login)
    2. Subsystem for UNIX-based Applications
    3. Identity Management for UNIX

       Primarily my work deals with -

    1. Release Management - Ensuring our components are in the server/client as case might be.
    2. Customer relations - This involves taking part in conferences, handling TAP customers, Beta chats etc
    3. Feature work - As time allows, I might take up some stuff like threat modeling, etc. Hopefully, as vista gets shipped I will get more opportunity to work on specing.

    In my other posts I will attempt to cover different components, their workings, FAQs, as well as anything that catches my attention.

    So long!

  • New team and we are Hiring!

    Recently my team got "re-orged". It normally means that the current project has run its course or there are more important projects that need resources and hence team moves on to a new project.

    We are "Developer Division Customer Product Lifecycle Experience Team" (DDCPX) and our vision is "Helping Developer Division create positive customer experiences throughout the product life cycle". Josh Ledgard is currently running a competition to help select the team's logo.

    We are currently running against a tight deadline and we will appreciate all the help we can get (Yeah, DDCPX wants you!). We are looking for SDETs at all levels of experiences, so if you want to ensure right product is shipped to right people in right way, look no further! You can check out the job postings at Microsoft jobs and if you can't find it send me the URLs of your resume. I can't guarantee reply for everyone but rest assured each resume will be looked at!

    SDE openings are discussed by HeathS

     

  • Remote connection to windows (using rcmd)

    I recently was looking for remote command utility which would enable me to run various commands on other windows boxes. Thats when I came across Remote Command (rcmd : http://www.microsoft.com/MSPress/books/1394.asp ).

    I remember rcmd provided in Unix machines. (man page for rcmd states: The rcmd() function is used by the super-user to execute a command on a remote machine using an authentication scheme based on reserved port num-bers. The difference in windows command is you don't need to be super-user, If you have valid accounts in both machines and they are connected over network you can use this.

     

    Advantages:

        It allows me to run all commands just as if I am on the DOS prompt. Setting up was very easy. Refer: http://www.windowsitpro.com/Windows/Article/ArticleID/40048/40048.html)

       STDOUT and STDERR was redirected easily and I had no issues getting logs either at my controller or client machines.

       It uses default credentials if none are provided so the usages are handsoff and very maintainence friendly.

    Disadvantage:

       Since RCMDSVC (service part which runs at each client) uses LOCAL SYSTEM credentials, it doesn't have any rights by default to use Network resources.  Of-course, there might be a way to circumvent it by running service under different credentials (say a user login), but I haven't tried that. Of-course companies should be disabling the rights to allow services to be run under different credentials to control migration of data.

       I have also seen RCMDSVC dying, hence it is a good idea to have restart of service when service stops as a default options.

  • extern "C" and overloading

    C++ will mangle every function assuming its potential to be overloaded. so how would you make sure your overloaded functions (where all except one of the overloaded functions act as wrappers to one core function ) work with C?


    Example:

    Assume foo(char *) calls foo (int i) .

    class Object
    {

    public:
        void foo(int i);             // primary function
        void foo(char *);         // secondary function
    };

    int _tmain(int argc, _TCHAR* argv[])
    {
        Object obj;
        obj.foo(1);
        obj.foo("string");
        return 0;
    }

    So when this snippet is compiled, we get the following error.
    error LNK2019: unresolved external symbol "public: void __thiscall Object::foo(char *)" (?foo@Object@@QAEXPAD@Z) referenced in function _main
    error LNK2019: unresolved external symbol "public: void __thiscall Object::foo(int)" (?foo@Object@@QAEXH@Z) referenced in function _main

    Note that functions are converted (mangled) with other characters (Ex: ?foo@Object@@QAEXPAD@Z) to guarantee uniqueness for C++ table handling.

    But if foo(char *) was a function which would call foo(int i) we could have made this in compiler-agnostic library by declaring first version as extern "C" and defining others within C++ as overloaded functions.

    For example:

    #ifdef __cplusplus
    extern "C" {
    #endif /* __cplusplus */

    void foo(int i);

    #ifdef __cplusplus
    }  /* extern "C" */

    inline foo (char * str)
    {
     return foo(atoi(str));
    }
    #endif /* __cplusplus */

    void foo (int i)
    {
     //definition of function
    }

    Thus, if you are using C compiler, you will have foo (int i ) at your disposal, and both foo (int i) and foo (char * str) otherwise. Hence your code is more portable.  Version of this problem is also discussed in Imperfect C++ by Matthew Wilson

  • Perl system command and return codes

    Many of you must have used Perl as part of day to day automation.

    Some teams use test harnesses made exclusively of Perl. This makes it easier to leverage various functionalitiesof text manipulation, file operations and process monitoring, etc which is needed for a functional test harness.

    More often, system command is used to run an executable and its return code ($?) is used to compare with expected return code. Normally, a successs means value of $? is zero and failure if otherwise. This is good if you plan to write tests from scratch and team decides to go with certain conventions.

    But, if you have no option but to run a set of tests which have been developed by other teams, and they might have decided to go with different return scheme, make sure you understand the following.

    According to Perl documentation (search for "system PROGRAM LIST"): The return value is the exit status of the program as returned by the wait call. To get the actual exit value shift right by eight.

    if ($? == -1) {

    print "failed to execute: $!\n";

    }

    elsif ($? & 127) {

    printf "child died with signal %d, %s coredump\n",

    ($? & 127), ($? & 128) ? 'with' : 'without';

    }

    else {

    printf "child exited with value %d\n", $? >> 8;

    }

    Thus, if a test returns 10, then the value of $? after running system is 2560. You shift 8 bits to right and you get 1.

    But, what they don't tell you is, if a test is returning 666, instead of returning 170496, you will get 154 (10011010)

    system command will return only lowermost 8 bits after you have already shifted 8 bits (for signals and core dumps)

    Thus,

    If test is expected to return 666                                        --- 10 1001 1010 0000 0000

    After shifting lowermost 8 bits, you would expect system to return --- 10 1001 1010 <- gone ->

    But, system will return only lowermost 8 bits again :)        --- <-gone-> 1001 1010 <- gone ->

    so after shifting 8 bits you will get 154 (1001 1010 ) instead of 666 (10 1001 1010 )

  • Welcome

    I have been working for Microsoft since April 2003 @ .NET Framework group.

    I plan to write (hopefully :) ) about experiences of a straight from college hire, technical issues, recruiting events, reviews of some papers, and some random musings.


© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker