I know the answer (it's 42)

A blog on coding, .NET, .NET Compact Framework and life in general....

Posts
  • I know the answer (it's 42)

    We just finished celebrating our biggest festival

    • 0 Comments

    Durga puja is the biggest festival for Bengali's all over the world. This is the time when we worship the Goddess Durga, the Goddess  of strength, the symbol of the victory of good over evil. This time around my home town of Kolkata gets into festival mode. Most offices, business, schools, shuts down for over 5 days and all work stops. Thousands of people flock the street of the city in their finest clothes, visiting places of worship, eating all sorts of local fast food and generally have a good time.

    Unfortunately I couldn't visit home this year. But even in Hyderabad (where Microsoft India is situated) there are huge celebrations. The best part is that people from all over the world celebrate Durga Puja with us (Like this girl taking part in the Dhunuchi Dance)

  • I know the answer (it's 42)

    Program performed illegal operation. Let's call the police

    • 0 Comments

    One of our Colleague's young kids were working on a computer when it popped up a message "Program has performed illegal operation and will be shut down". He got urgent call from his 9 year old daughter "Dad, does this mean that the police will come?".

    So next time you ignore a UX guideline think thrice.

     And yes this is a true story and I didn't cook it up.

  • I know the answer (it's 42)

    Ravenous Bugblatter beast on Indian roads

    • 0 Comments

    From the HitchHiker's Guide to the Galaxy.

    "The Ravenous Bugblatter Beast of Traal is a creature that hails from the planet of Traal, and will eat anything. If you are to encounter one, the Guide tells you that it's impossible to slay, so you should wrap a towel around your head. This creature is so mind-bogglingly stupid that it assumes that if you can't see it, then it can't see you."

    I felt like one while on a road-trip to Visakhapatnam and surely you'll feel like one on Indian roads. We were going at high speed and suddenly we see someone crossing the highway. We honked hard and the person simply looked down. So the idea is that, if he can't see you, then you don't exist. Or maybe they were using the SEP field technology.

    In the following video watch the first person crossing the road and next a cyclist goes in the wrong direction as we wiz past at 120kmph (75 miles/hour).

     

    Cross posted here...

  • I know the answer (it's 42)

    What is the similarity between Windows and Textile Industry

    • 0 Comments

    ...they both use threads and fibers :)

    Pink....

    Most people are aware of processes and threads. Windows offers an even finer granularity over execution. This is called Fiber. To quote MSDN

    A fiber is a unit of execution that must be manually scheduled by the application. Fibers run in the context of the threads that schedule them.

    The obvious question that should come to managed code developers is whether .NET supports Fibers? The answer is from 2.0, CLR does support fiber mode. This means that there are hosting APIs using which a host can make CLR use Fibers to run its threads. So in effect there's no requirement that a .NET thread be tied to the underlying OS's threads. A classic example is that of SQL Server which hosts .NET in fiber mode because it wants to take care of scheduling directly. Head over to here (scroll down to SQL Server section) for an excellent read about this topic.

    There's also the book Customizing the Microsoft .NET Framework Common Language Runtime written by Steven Pratschner which has a chapter on customizing CLR to use Fibers. I have already ordered the book. Once it comes in and I get a chance to read it, I'll post more about this.

  • I know the answer (it's 42)

    Alternatives to XML

    • 0 Comments
    Halloween

    Though not as much as the Jeff Atwood I don't like overuse of XML as well. In our last project we used XML in a bunch of places where it made sense and also planned to use it in bunch of other places where it didn't. For some strange reason some folks think its actually readable and suggested we use XML to dump the user actions we recorded because it's easy to parse and is human readable/editable. While I'm perfectly fine doing it in XML, but definitely not for that reason.

    Anyways, sense prevailed and even though we do store it in XML we dump out automation source code in obviously more readable C#/VB.NET.

    Before I completely get sidetracked let me state that this post is not about XML or about JSON but about the fact  that there exists many alternatives to both. Head on to here (via Coding Horror)...

  • I know the answer (it's 42)

    Do namespace using directives affect Assembly Loading?

    • 0 Comments
    Hyderabad Microsoft Campus

    The simple answer is no, the inquisitive reader can read on :)

    Close to 2 year back I had posted about the two styles of coding using directives as follows

    Style 1

    namespace MyNameSpace
    {
        using System;
        using System.Collections.Generic;
        using System.Text;
        // ...
    }

    -

    Style 2

    using System;
    using System.Collections.Generic;
    using System.Text;
    namespace MyNameSpace { // ... }

    -

    and outlined the benefits of the first style (using directives inside the namespace). This post is not to re-iterate them.

    This post to figure out if either of the styles have any bearing in the loading order of assemblies. Obviously at the first look it clearly indicates that is shouldn't, but this has caused some back and forth discussions over the web.

    Scot Hanselman posted about a statement on the Microsoft Style cop blog which states

    "When using directives are declared outside of a namespace, the .Net Framework will load all assemblies referenced by these using statements at the same time that the referencing assembly is loaded.

    However, placing the using statements within a namespace element allows the framework to lazy load the referenced assemblies at runtime. In some cases, if the referencing code is not actually executed, the framework can avoid having to load one or more of the referenced assemblies completely. This follows general best practice rule about lazy loading for performance.

    Note, this is subject to change as the .Net Framework evolves, and there are subtle differences between the various versions of the framework."

    This just doesn't sound right because using directives have no bearing to assembly loading.

    Hanselman did a simple experiment with the following code

    using System;  
    using System.Xml;  
      
    namespace Microsoft.Sample  
    {  
       public class Program  
       {  
          public static void Main(string[] args)  
          {  
             Guid g = Guid.NewGuid();  
             Console.WriteLine("Before XML usage");  
             Console.ReadLine();  
             Foo();  
             Console.WriteLine("After XML usage");  
             Console.ReadLine();  
          }  
      
          public static void Foo()  
          {  
             XmlDocument x = new XmlDocument();  
          }  
       }  
    }  

    -

    and then he watched the loading time using process explorer and then he moved the using inside the namespace and did the same. Both loaded the System.Xml.dll after he hit enter on the console clearly indicating that for both the cases they got lazy loaded.

    Let me try to give a step by step rundown of how the whole type look up of XmlDocument happens in .NETCF which in turn would throw light on whether using directives have bearing on assembly loading.

    1. When Main method is Jitted and ran the System.Xml.dll is not yet loaded
    2. When method Foo is called the execution engine (referred to as EE) tries to JIT the method. As documented the Jitter only JITs methods that are to be executed.
    3. The Jitter tries to see if the method Foo is managed (could be native as well due to mixed mode support) and then tries to see if it's already Jitted (by a previous call), since it's not it goes ahead with jitting it
    4. The jitter validates a bunch of stuff like whether the class on which the method Foo is being called (in this case Microsoft.Sample.Program) is valid, been initialized, stack requirements, etc...
    5. Then it tries to resolve the local variables of the method. It waits to resolve the local variable type reference till this point so that it is able to save time and memory by not Jitting/loading types that are referenced by methods that are never executed
    6. Then it tries to resolve the type of the variable which in this case if System.Xml.XmlDocument.
    7. It sees if it's already in the cache, that is if that type is already loaded
    8. Since it's not the case it tries to search for the reference based on the type reference information
    9. This information contains the full type reference including the assembly name, which in this case is System.Xml.dll and also version information,strong name information, etc...
    10. All of the above information along with other information like the executing application's path is passed to the assembly loader to load the assembly
    11. The usual assembly search sequence is used to look for the assembly and then it is loaded and the type reference subsequently gets resolved

    If you see the above steps there is in no way a dependency of assembly loading on using directive. Hence at least on .NETCF whether you put the using outside or inside the namespace you'd get the referenced assemblies loaded exactly at the time of first reference of a type from that assembly (the step #5 above is the key).

  • I know the answer (it's 42)

    Function generator in C++

    • 0 Comments

    Some of us were just chatting about my previous post about function generators and we wondered about whether it can be done in C++ without using function pointers.... Most of my C++ knowledge has been rusted beyond repair but I thought even though its not possible to do directly, one can overload the ( ) operator to simulate this. So it should be possible to code so that the following is valid

    FuncGen(Adder)(p1, p2)

    Here the part in red semantically behaves like a function generator returning different functions based on the flag you pass. So here's some code in C++ that does it. Again I want to stress that this is not a function generator in C++, it just simulates something like it so that a statement like FuncGen(Adder)(p1, p2) will actually work....

    #include <iostream>
    #include
    <string>
    using namespace std;

    enum FuncType
    {
        Adder,
        Subtractor,
        Multiplicator,
    };

    class CFunc
    {
        public
    :
            FuncType m_funcType; 
            template <typename
    T>
            T
    operator
    ()(T p1, T p2)
            {
                if
    (m_funcType == Adder)
                    return
    FuncAdder(p1, p2);
                else if
    (m_funcType == Subtractor)
                    return
    FuncSub(p1, p2);
                else if
    (m_funcType == Multiplicator)
                    return
    FuncMult(p1, p2);
            }

        private:
            template <typename
    T>
            T FuncAdder(T p1, T p2)
            {
                return
    p1 + p2;
            }
            template <typename
    T>
            T FuncSub(T p1, T p2)
            {
                return
    p1 - p2;
            }
           
    template <typename T>
            T FuncMult(T p1, T p2)
            {
                return
    p1 * p2;
            }
    };

    CFunc cfunc;
    CFunc& FuncGen(FuncType ftype)
    {
        cfunc.m_funcType = ftype;
        return
    cfunc;
    };

    int main(int argc, char* argv[])
    {
        int
    p1 = 5, p2 = 1;
        cout << FuncGen(Adder)(p1, p2) << endl;
        cout << FuncGen(Subtractor)(p1, p2) << endl;
        cout << FuncGen(Multiplicator)(p1, p2) << endl;
        return
    0;
    }

    Instead of using a global variable like cfunc I could have also created a object on the heap in FuncGen and later deleted it but since I have been coding in C# so long that I felt too lazy to write a delete statement.

  • I know the answer (it's 42)

    Killing spree in India Development Center

    • 0 Comments

    Q.What does a bunch of disgruntled programmers do after work in MS IDC?
    A. They kill each other and shout with Joy when they see blood splatter all around.

    If you do not believe me drop into the 3rd floor lobby at IDC.

    Over the last couple of months Halo mania has taken over the IDC Burton (Team System) and DPM (Data Protection Manager) team. We all fight it out on the XBox on the third floor lobby. With the departure of our beloved Froddo who'd prove to be a far better assassin than a programmer, DPM is beating us hands down. However, some of the people in our team are not that far behind and we soon hope to frag DPM guys. The way Neeraj is ramping up on his core competency of shooting people with the hand gun, we soon hope to get our first win against DPM.

    Today was an auspicious day. The ladies in our group till now refrained from joining into the blood bath. But today two of them did. The sight of Neeti clapping with joy after killing me really shook me up. I never knew she'd get back to me like this for troubling her with weird bugs (she tests the features I work on :) ).

  • I know the answer (it's 42)

    C# 3.0

    • 0 Comments

    Even before C#2.0 is out (RTM) we already have some sneek preview of the C#3.0 features. Check out Cyrus's blog on this. Some time back I had said to some folks here that with some powerful functional programming fans :) in MS we are surely going to see some functional programming features creep into C#. Anonymous methods (lexical closure), continuation (yes I know in very limited format) got into 2.0 and now we have lambda expressions in 3.0.

    However I had expected more features from Spec# like contract verification and checked exception to have been introduced. Maybe they will be.

  • I know the answer (it's 42)

    Visit to redmond

    • 0 Comments

    Its almost a month, I'm here in Remond. I was very excited to come to the heart of things where everything of VSTS other than team build gets done. I was very excited to meet all the people and attach faces to the email aliases and caught off handed many a times when someone looked or talked so differentlly than the person you conjured in your mind. I loved the open campus which is so different than the walled campuses I have seen back home.

    I was surprised to see a soccer field in the middle of the campus. I always thougt that cricket and soccer is not so common in US. A visit to the cafeteria and a stroll around was enough to explain it. There are so many europeans and latin americans all around. I met people from so many coutries, people from Vietnam, Russian, England, China, Japan and of course from India. Did not see Bill Gates yet, but I do hope to catch a glimpse of him.What I hated most about the place was the rains. Do not get me wrong here, I am from coastal country and love the rains. But back home rain is torrential like a white blanket that comes down and cleans the earth of dust, dirt and sin. Then the sun is back again and you run for shelter. Here the rain is like a dripping tap, it goes on and on like drip, drip, drip, drip, drip.....

    I visited Whidbey island and took a photo of an insect on a leaf. Then had a blast sending an email to all the folks in India that I found a bug in Whidbey and sent a link to the picture. I gave the bug repro steps as well. Visit Whidbey, look around on the leaves and you'll find plenty of bugs.

  • I know the answer (it's 42)

    Steve Ballmer visiting India

    • 0 Comments

    The CEO of Microsoft Corporation, Steve Balmer is visiting Hyderabad on the 15th (next Monday). There's a lot of excitement around this. He is supposed to inaugurate a part of the new Microsoft Campus and also to lay foundation stone for the second phase.

     

    Hyderabad is very proud to house the MS IDC, a race it won by defeating several other cities. This visit is raising lot of rumors and some sites have gone as far as to predict that the new center will slowly grow and employ 5000 developers and will be the largest outside US.  Check out http://economictimes.indiatimes.com/articleshow/915404.cms. This appears to be a very distant reality. Personally I’m eager to hear what he has to say.

     

    MS was working out of rented facilities that spread across multiple floors in different buildings. Since these building are part of Software Parks, some additional benefits come with it. You get banks, ATMs, florists, travel agents, restaurants all at the same place.

     

    However, like most people I prefer the company having its own campus. You get a feel of unity and get to meet a lot more people from your own company. Casual chats over a cup of coffee can give amazing insight into a different technology domain which the other guy sharing your table works in. I just can’t wait to get into the new building once it start functioning…

  • I know the answer (it's 42)

    TechEd Hyderabad starts tomorrow

    • 0 Comments
    TechEd is starting tomorrow in Hyderabad (home to the MS India development centre). Most of the devs in our team will not be able to attend tomorrow and we will join the show from Tuesday. VSTS is getting a lot of attention this year and we heard great stories from the people who attended TechED in Bangalore and Chennai. The India Team System team working on Team Build and the converters will all be there in our Black T-shirts with Team System written in front. So if any one of you have any questions or need any insider info ;) catch us.
  • I know the answer (it's 42)

    Frame arrangement in image strips used for animation

    • 0 Comments

    Sometimes we get so used to things being the way they are we stop questioning them. We always have the perception in mind that individual frames of animated logo in a Bitmap strip is always horizontally arranged. I remember writing code to extract icons from a image lists that store individual frames of an animation sequence one after the other horizontally using something like

    animationIcons = new Icon[bitmapStrip.Width / 16];
    for (int
    i = 0; i < m_animationIcons.Length; i++)
    {
        Rectangle rect =
    new
    Rectangle(i*16, 0, 16, 16);
        Bitmap bmp = bitmapStrip.Clone(rect, bitmapStrip.PixelFormat);
        animationIcons[i] = Icon.FromHandle(bmp.GetHicon());
    }

    Even winforms ImageList works on this assumption that the AddStrip method of the ImageCollection in the control has the images placed side-by-side. However this is not at all the optimal placement of images. Read it on Raymond Chen's blog .....

  • I know the answer (it's 42)

    The CLR Nullable DCR works!!!!!

    • 0 Comments

    CLR took a DCR some time back on how nullable types are implemented. See here and here to find out more about the DCR. I found from one of the internal DLs that the fix was already in the RTM bits.

    I wrote a small piece of code which should work only with the DCR changes and kept it aside so once this DCR gets implemented I'd try it out. So each time I upgraded to a new build of VS/CLR I built/ran this code to see if it works. And it just did, with my todays upgrade to about 10 day old build in our lab. The new nullable type after becoming a  basic runtime intrinsic just rocks. I have put in comment all the failures that used to happen previously with the same piece of code....

    // this code works only with the latest bits of
    // Visual Studio 2005 (C#2.0) and will fail to
    // compile/run with older Beta2 bits

    static
    void Main(string[] args)
    {
        int
    ? val = 1;
        int? nullval = null;

        // this always worked
        if (nullval == null
    )
            Console.WriteLine("It worked"
    );

        // this used to fail before and I think one of
        // the biggest issue with the previous implementation
        object
    nullobj = nullval;
        if(nullobj == null
    )
            Console.WriteLine("It worked"
    );

        // previously required 
        // box = Nullable.ToObject<int>(val); argh!!!!
        object
    box = val;

        // If you do not need exceptional code
        // (that's code that throws exception)
        //
     you needed to do int? unbox = Nullable.FromObject<int>(box);
        int? unbox = (int
    ?)box;
        if
    (unbox == val)
            Console.WriteLine("It worked again"
    );

        int intval = (int)box;
        if
    (intval == val.Value)
            Console.WriteLine("attained Nullable Nirvana"
    );

        int x = 10;
        object
    y = x;
        // Previously Exception!!! cast is not valid
        int? z = (int
    ?)y;

        IComparable c = val;
        // Previously Exception!!! : object type cannot be
        // converted to target type
        if
    (c.CompareTo(box) == 0)
            Console.WriteLine("I have seen it all"
    );

        // compilation failure
        IComparable<int
    > ic = val;
        if(ic.CompareTo((int
    )box) == 0)
            Console.WriteLine("Wow there is even more to see"
    );
    }

    The output of the program is

    It worked
    It worked
    It worked again
    attained Nullable Nirvana
    I have seen it all
    Wow there is even more to see

  • I know the answer (it's 42)

    Emails, Emails and more emails

    • 0 Comments

    Just saw the post Slaves to email on excess email in MS and I couldn't agree more.....

    Large email volume for people who manage others, or those who interact with external customers is expected. But even for individual contributors (Dev/Test) the volume is just too high. We should really use the internal communicator more and get rid of those one-liner emails.

    Since we work in a different time zone within a team distributed between Redmond/NorthCarolina/India we face a different issue. Each morning you enter office and you are welcomed with 100s of emails which were sent to you in the local night time. By the time you wade through them almost an hour is over. Mondays are worse as you have to wade through the all the emails sent during Friday in US.

  • I know the answer (it's 42)

    What do we work on here in Microsoft India

    • 0 Comments

    Frequently I have been asked the question, what kind of work is done in Microsoft India or MIDC? The number of questions grew with my recent post on BillG's visit to India and his announcements regarding the plans to grow MIDC and MS India in general.

    MIDC is the second MS R&D center outside of US. We work on a lot of stuff here. I am in DevTools group which has ownership of lot of interesting things. The list goes as

    1. Visual Studio Team System's Team Build component is developed here. I work in the dev-team for this product. Since this is a V1 product we get to work on a lot of cool stuff. The converter tools that help users to migrate from pre-existing tools like VSS, ClearQuest to TFS is also completely developed here
    2. Visual Studio for devices is also developed here
    3. One of the .NET languages VJ#.NET is completely owned in MIDC. A tool called JLCA which automatically converts existing Java code into C# is also owned by the team

    Other than my group there are a lot of other groups here too. This list includes....

    1. Some of the WinXP-SP2, Windows 2003 and Vista (Longhorn) features. Stuff like Fax, TAPI, Scanning, IE, Services for UNIX (SFU), Terminal Server, System Resource Manager, Remote access,
    2. Windows Serviceability group is located here. So if you have Windows 2000 and got a service pack update, you now know where it came from :-)
    3. Data Protection Manager
    4. Office in your pocket or Office for mobile devices is completely owned here.
    5. SQL Server 2005 Mobile Edition
    6. Mobile messaging client similar to MS Office Communicator 2005
    7. MS is developing a RFID (Radio Frequency Identification) infrastructure that is also completely owned here
    8. Some of the MSN stuff like connector for outlook, live-meeting, One-care...
    9. XBox is coming here. Not sure what exactly they'll be working on...

    The list is growing fast, check out http://www.microsoft.com/india/indiadev/ for more info on MIDC...

  • I know the answer (it's 42)

    C# 2.0: no more lexer blues with nested templates

    • 0 Comments
    When generics got announced and I laid my hands on the C#2.0 compiler the first thing I tried is nested template usage. This C++ compiler (spec actually) gave me enough pain with this. Consider the following C++ code which uses the STL.

    #include "vector"

    using namespace std;

    int main()

    {

    vector<int> vectorI;

    vectorI.push_back(5);

    vector<vector<int>> vectorV;

    vectorV.push_back(vectorI);

    return 0;

    }

    First glance indicates that the line in bold is trying to create a vector of vectors. This is where the infamous C++ lexer blue starts. The lexer thinks that the >> is actually the right-shift operator and spits out an error. On some compiler the error is very cryptic and is something like "undefined symbol vectorV" on some its clearer and is "space required between adjacent ">" delimiters of nested template argument lists". The solution in C++ is to use a space between the two > and write it as

    vector<vector<int> > vectorV;

    Since I always forgot the space in my first attempt, I landed up swearing when I got this error. However many C++ compiler choose to deviate from the C++ spec and actually act intelligently and treat the consecutive >> as nested template delimiters based on context. I tried the above sample on Microsoft C++ compiler 14.00.50727.18 and it worked. So either MS compiler deviates from the C++ spec or maybe C++ spec has changed (I am not following the C++ world for a long time now....)

    The fact that this was a major pain in C++ helped in the design of C#. With C# 2.0 the >> and >>= tokens got removed from the lexical grammer (See the §20.10 in the 2.0 spec) and replaced with new assignment productions. So there is no requirement for the extra space in between >> in C#. So a similar code in C# is like

    List<int> listI = new List<int>();

    listI.Add(5);

    List<List<int>> listL = new List<List<int>>(); // no space reqd

    listL.Add(listI);

  • I know the answer (it's 42)

    VS 2005 is out!!!!

    • 0 Comments

    The final word is out!!! This is a great time indeed for most developers out there, Visual Studio 2005 has been released!!!!

    I have been using Visual Studio for some time now, but all those years I was a customer of MS. This time I am in MS and in the DevTools team. Even though our product Visual Studio Team System is due next year I can hardly wait any longer. Its a proud moment for all of us here.

  • I know the answer (it's 42)

    We're on Channel 9

    • 0 Comments

    Kaushal from Microsoft Bangalore was here in Hyderabad some time back. He shot some video of the folks here, including some from VSTS-Team Build. The video is on http://channel9.msdn.com/Showpost.aspx?postid=143589. See me and Anu giving a demo of Team Build and taking him around to meets folks out here.

     

  • I know the answer (it's 42)

    NonTech: Geekcity

    • 0 Comments

    Bangalore is famous world-over as the Indian version of Silicon city. I have never been to Silicon valley and so I'm not the right person to compare but a walk down some of the roads like the Airport road makes the comparison evident. Within a kilometer or two you'll see offices (or buildings) of Texas Instruments, Intel, ADI, IBM, Lucent, HP, Motorola, Microsoft, ADI on the side of the Road.

    What makes Bangalore special is that most people living in the city are not natives of the place and have recently (<5years) moved in. Most of them are young and work in the Hi-Tech industry. I have never been to a city with so low average age of people and where you hear people arguing over the merits of J2EE on the side of the road and pub fight over C# and Java (yes its true :) ). We had some friends who were hardcore MS technology fans and some other who worked in Sun Microsystem :)

    This unique environment along with institutes like IISc make Bangalore the geek city. Here are some reasons why

    • You get to see a newspaper vendor wearing a T-Shirts with "There are 10 types of people in the world: Those who understand binary and those who don't"
    • You get to see a House for sale poster that says "Make this your 127.0.0.1"
    • People say "that's our default" when referring to the pub they go to when they have no other place to go
    • Instead of saying "I do not want to go to that junk place" they say "I don't want to go to any foobar place"
    • Instead of saying "I have no choice" they say "I'll just use Select *"
    • Bikes have stickers on them that say "I play RoadRash"
    • Bike helmets commonly have "Intel inside" stickers on them. 
    • Some one got mad at me and shouted "I feel like Rebooting you"
    • You'll start believing that Wipro and Infosys manufactures bags and T-shirts because their names appear on all of them
  • I know the answer (it's 42)

    Reading too many blogs?

    • 0 Comments

    I am staying in the Mariott Residence Inn in 29Pl off 148th Av. I was driving down along with Neeraja on 148th and suddenly saw a house. It looked a bit odd as it was the only house among office buildings and also looked familiar. Suddenly I turned to Neeraja and told her. Do you know why this house sits among office buildings? Obviously she didn't because she doesn't read Raymond's blog.

    Later what struck me as real odd was that not only I read those blogs I actually remember small things like pictures from it!! Kind of weird....

  • I know the answer (it's 42)

    Sometimes the tool becomes more important than the work

    • 0 Comments

    Question: Which microsoft product did the Canadian Customs official quarantine.?
    Answer: Microsoft mouse!!!! This is a true story.

    The obvious thing I did after coming to Redmond is to rush down to the company store. I was looking for a wireless mouse for my notebook and found one. I narrowed down to Wireless Notebook Laser Mouse 6000.

    I assumed most of the fancy words on the box like high-definition, laser and unprecedented control are hogwash. That was until I used it. This is the best mouse I've ever used. The smoothness of the tilt-wheel was amazing so was the precision in the movement. Each time I use the mouse I feel good. Its like having an amazing lawn-mower, even when the grass is short you want to mow them!!!

  • I know the answer (it's 42)

    Campus trivia: Microsoft Walk of Fame

    • 0 Comments

    I was casually strolling around the MS Redmond campus when I reached the area in between building 16 and 17. I was surprised to see that similar to Hollywood Boulevard the pavement was embedded with tiles featuring shipped products.

    I had never heard about this place before. Its was specially interesting to see this one. It was released in the year I was born. So now you know how old I'm :)

  • I know the answer (it's 42)

    Ahlen, Kasumai, Amole, Ezender, Wiñamek - ClustrMaps for tracking blog hits

    • 0 Comments

    I first noticed it on Rob Caron's blog. Provided by http://clustrmaps.com/, it's a map of the world with red dots on it indicating hits to that blog from various countries.

    The idea is simple, you need to embed a html snippet into your blog and this snippet refers to an image. The browsers tries to get the image from ClustrMaps and that server tracks the browsers IP to detect which country it belongs to.

    I got interested and inserted this in my blog couple of days back. What I found was very interesting. As expected United States and European countries where high in the hit-list. But I also saw countries which I have never heard before or exotic places I have read about but never thought someone would read my blogs from. Some of them are

    • Africa: Senegal, Nigeria, Namibia, South Africa, Egypt, Morocco, Tunisia, Iran
    • Asia: Oman, UAE, Iran, Pakistan, Celebes Island Indonesia, Siberia-Russia
    • Iceland
    • Americas: Columbia, Peru, Argentina, Venezuela, Ecuador, Caribbean Island-Jamaica

    I had thought readership in China would be much higher but looks like I guessed wrong. I think it's be due to language differences. It's time I learnt Mandarin :)

    For people inquisitve about the title; they are "hello" in different languages.

  • I know the answer (it's 42)

    So Long, and thanks for All the Fish

    • 0 Comments

    It's time to go back home. It's close to 6 weeks I'm in Redmond and I do appreciate all the Salmon, Cod and Tilapia.

    It's really difficult to stay away from family for such a long period of time. Tomorrow I'm heading back to India and a long 24 hour journey awaits me.

    I was super busy during this time and that accounts for the quality of the posts. I loved Washington and no offense to anyone the love grew once I visited the east coast. The only thing that got me down is the cold beach (Sea Shore, West Port). However, this time I was fortunate to visit North Carolina and see the gorgeous beaches there. I doubt many people know that there is a Microsoft Development center in NC.

Page 15 of 15 (375 items) «1112131415