Spyware and IE

Today, on one of the computers at home, Meenakshi accidentally installed one of the spy-wares (via a popup – which interestingly was not blocked). This changed the search engine used by IE, installed some toolsbars and opened a whole bunch of popup windows. Also disabled some of the other legit toolbars that were running (MSN, Yahoo, Google, etc.) Anyways, it took me a good 3+ hours to track the bugger down and clean up the whole machine. What a pain and waste of time. But it got me the opportunity to document what I did and hopefully you can benefit from it.

I would like to also point out that an 1+ hours was taken by the two anti-spy-ware software that I use (Adware and Spybot – if you have not heard of them, I highly recommend download and using both of them). Though neither of them cleaned this particular one. :'(

Well how do you find out what is installed? First of all try and find the name of the “thing” running. Right-click on the toolbar and since that toolbar would be checked, you can find out the name. The first and foremost you should do is run your anti-spywares (make sure you update them). If they do find anything I would recommend rebooting your machine ASAP, after cleaning it. If the problem is solved, you got lucky (and you can stop Reading now :)). If not then goto your Add/Remove and see if you find something there that you don’t recognise if you find something uninstall and check if the problem has done. When uninstalling try and find the location of where it was installed and delete that as most uninstall programs keep something lingering (hopefully you are a geek like me and are not required to be told how to this).

If you still have the spyware, then you got more trouble (like I had). Next steps would be to poke in the (dreaded) registry and see what you can find there. To start, run Regedit (Start => Run => regedit.exe). Next goto HKLM\SOFTWARE\Microsoft\Internet Explorer\Toolbar where you would see a list of entries. Now I don’t presume you would know the GUIDs for the toolbars *grin*, so you would need to find everyone and see if they are legit or not. Here is the list of the ones I found in this computer (and what they meant):

  • {2318C2B1-4965-11d4-9B18-009027A5CD4F} – Google
  • {47833539-D0C5-4125-9FA8-0819E2EAAC93} – Acrobat (6)
  • {79FFEBC8-745B-AFDE-82E6-14ACEDC16E19} – This was the CLUPRIT!
  • {8E718888-423F-11D2-876E-00A0C9082467} – Mmedia Radioband
  • {EF99BD32-C1FB-11D2-892F-0090271D4F88} – Yahoo

Well the second one in the list above was the culprit called SLOW.Citydent, and was installed at “C:\Program Files\Settings Book”.

To find the right or wrong guid, you need to search the registry for each of the GUID and traverse it (i.e. that GUID (or CLSID) might point to another one – so keep following the rabbit trail and at the end of it you would see a COM entry (InProc32) that would point to the execuatable (dll/exe) and also a class name (e.g. SLOW.Citydent.1 in my example). Make sure you search for the GUID from the root in Regedit and delete all entries you find – as always be very careful when modifying anything related to the registry.

Also search using the ClassName in addition to the GUID, as you could potentially find entries realted to this also. Before deleteing the hives/keys make sure you find out the path in the InProc to find out where this is installed in the system. In my case this was at C:\Program Files\Settings Book (which would look like C:\progra~1\settin~1 – the 8 characters from the old DOS days). Make sure you go to this directory and inspect all files and folders – once you are found all other COM entries, you can delete all these files and folders.

Also search for the path in addition to the ClassName and GUID as that would ensure you caught all missed spywares.

You also should clear the similar entries from the following hives:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions
  • HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions

Lastly, also check for the programs you may not recognise in HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Make sure you reload regedit after you delete some key as it still would show it in its cache, which is not flushed till its loaded.

So, after a long number of hours I was able to clean the machine. The moral of the story is, be careful, if you don’t trust something, don’t open it or run it, no matter how convincing it might seem no matter how trustworthy the person sending it is. As more applications move to .NET this would be eliminated because of the security features built in the framework (and CAS – code access security), but till then, we all need to use our common sense.

Resource Management in .NET

Here is a very old post I found lying around on my disk by Brian Harry, he was the Product Manager of the CLR team at Microsoft (he might still be, I just don’t know). This is a long and very interesting read on the issue of resource management and the deterministic finalization of .NET. Brian provides the backgorund so most people (who were flaming MS at that time), understand that this is really a hard problem to solve. Happy Reading….

About Women…

Ladies reading this (are there any btw), I am just the messenger, so don’t shoot me. Per my dear friend Karan “…the thing about women is that they wont let u die they will keep u alive, in pain and agony, screaming and shouting, but wont let u fall over the edge…. “. He can be flamed here. πŸ˜‰

PDC Xaml Demo

This is probably stupid (and old news now), but if you saw the xaml demo during the PDC of Avalon (presented by Don Box I think), here is the code to reproduce that sample. Please note that you would need to change the source tag in the Video class to a path that makes more sense for you.

Also, as always, please use common sense when running this. Don’t flame me if something blows up. πŸ™‚


    Text=”Amit’s First Longhorn App” Visible=”True”
    <!–  The namespace + class name in the codebehind file and the def:Class attribute in the root of this document, must stay identical.  You can change them, but you must keep them in sync. –>
        <Canvas DockPanel.Dock=”Fill”>
    <Video Width=”100%” Height=”100%” Stretch=”Fill” Source=”c:\temp\ChrisA-DonB_300K.wmv” />
    <TransformDecorator Transform=”rotate 30 scale 3 3″ DockPanel.Dock=”Fill”>
        <TextBox ID=”foo” Width=”2in” Height=”20pt”></TextBox>
        <Button Click=”Pushed”>Click Me</Button>

window1.xaml codebehind:

//This is a list of commonly used namespaces for a window.
using System;
using MSAvalon.Windows;
using MSAvalon.Windows.Controls;
using MSAvalon.Windows.Documents;
using MSAvalon.Windows.Navigation;
using MSAvalon.Windows.Shapes;
using MSAvalon.Windows.Data;

namespace LonghornApp1


/// Interaction logic for Window1.xaml

public partial class Window1 : Window

// To use Loaded event put Loaded=”WindowLoaded” attribute in root element of .xaml file.
// private void WindowLoaded(object sender, EventArgs e) {}

void Pushed(object o, ClickEventArgs e)



Avalon Introduction (XAML)

Here are some excerpts from my slide deck on XAML. If you need to see the complete powerpoint, let me know and I can either mail it to you or upload it here.

If you don’t know, XAML is the new Extensible Application markup language that is part of Longhorn. If you have the PDC bits you should be able to run these. I am skipping on most of the details of the controls, probably will post that some other day.

What is XAML?

  • Pronounced as “Zammell”
  • “Extensible Application Markup Language”
  • Declarative Language
  • Elements represented in a .xaml file by tags
  • “XAML” is a collection of class objects that correspond to markup elements

Why use XAML?

  • Combination of both desktop and web worlds to an application.
  • Separation of UI and Implementation.


  • Application object.
  • XAML pages are characteristically dynamic incorporating both procedural code and markup elements

  • All that things you can do with markup can be done with procedural code.

  • XAML applications are managed.

  • Only “pure” XAML pages need not be compiled.

Structure of a XAML File

  • Panels
    • Handles Page Layout

    • Containers for other Elements

  • Controls

    • Handles user interaction
  • Documents
    • Handles document presentation
  • Shapes
    • Handles vector graphic shapes

What are Panels?
Panels control rendering of elements and objects
  • size
  • dimensions
  • position
  • arrangement

Kind of Panels

  • Canvas
    • Area in which child elements can be explicitly positioned
  • DockPanel
    • Area in which child elements can be arranged horizontally or vertically.
  • FlowPanel
    • Used to break, wrap, and align content > length of a line
  • GridPanel
    • Defines a grid area consisting of columns and rows
  • TextPanel
    • Formats, sizes and draws text
    • Supports multiple lines of text and formats

Kind of Controls

  • Chief components of a UI and enable user interaction
  • Control Patterns
    • Simple Controls
    • Content Controls
    • Items Controls
    • Headered Items and Headeres Content
  • Resources


IT Manager Game – Simulation of an IT department

First of all here are the sys. requirements:

  • Macromedia Flash Player 6 r79
  • IE 6 compatible browser with Javascript enabled

The IT manager – overworked and underappreciated. You know the story. Back in school, always the last to be picked for football, but the first one they ran to when they accidentally deleted a homework assignment. Not much has changed since then. But the fact is it takes a special skill set to manage an IT department. As IT manager you need to monitor industry trends and administer mission-critical resources for an entire company. At the same time, you have to manage increasingly tighter budgets – finding ways to do more with less – and possess the people skills to oversee staff and run interference with top decision makers.

The Intel® IT Manager Game tests your entire skill set – people management, resource allocation, strategic analysis and planning. It also tests your courage under fire – can you stand up to the scrutiny of top management along with that of your peers in the industry? Will the decisions you make result in breathtaking profits or devastating losses? Will you enjoy the sweet taste of victory or the bitter agony of defeat? Are you destined for management glory or will you be the kid sitting on the sidelines, waiting for the bell to ring?

Dumb and dumber moments in Technology

The year is just getting started, and that can mean only one thing: It’s time to reflect on the most shameful, dishonest, and just plain stupid tech moments of 2003.

Humans are "Failure Machines"

I forget where I read this recently, but it stuck to me. Humans are failure machines, we are not success machines. We fail all the time and almost all the things. And it is only through this “weeding” process we get the feedback for the failures and learn how to correct them and then do better. Well … at least the smart ones learn to how to correct them.

Running .NET on a J2EE App. Server

Yes it is true and it is very cool! Mainsoft has a product called Visual MainWin for both J2EE and Unix and Linux platforms. You can have your ASP.NET applications (using ADO.NET) deployed on a single J2EE platform. Please note, this is not really “calling” any web services that are running on Java.

How does it work? Well for one you can check out this flash movie (and it surely is amazing!). But basically they wrote an IL compiler that takes the IL generated by .NET app (i.e. ASP.NET in this case) and converts it to Java bytecode which then is run “natively” on a J2EE platform.

When you install their product, they add some extensions to VS.NET that allows you to write your ASP.NET application with VS.NET including using all the features you are used to (such as the debugger). You can also jump to the debugger from the java code/component. In the demo they have on the site, the middle-tier of a typical 3-tier web app is hosted in EJB’s and the presentation tier is ASP.NET which is then run on J2EE. The middle-tier is component (jar file) is referenced in the asp.net solution. The deployed application is a war file on the J2EE application tier.

IHMO, this has a lot of value in an Enterprise environment, and should help avoid the whole “religious” debate that some companies get hung over. Has anyone has had a chance to play with this? If so, what have your experiences been? What do you think about this, I would love to hear your thoughts.

VS.NET Fun Facts

If you use VS.NET then you must read the fun facts to get the most out of the IDE.  This is not new, but had forgotten about it, till I stumbled upon it again recently.

Digger on Smartphone – W00t!

Unfortunately, I am not one of the lucky guys with a smartphone, but for those who do have one, Lutz Roeder, released the code and the binaries for Digger (a copy of Dig-dug from the good ol Dos days) for the Smartphone. It needs the Smartphone 2003 and .NET CF.

Is it me or .NET?

Incase you did not know, but this blog runs on .Text with minor tweaks to the code. When I run this in the W3C Validator, I get 61 (wow!) errors back. If you examine the results of the validator some interesting things emerge.

Here is a listing of the issues I found:

  1. “End tag for element not found” – If you look at the source you will see that there is an open element and this is the corresponding end tag. So what am I missing? Per the validator, this error means: “The validator found an end tag, represented here by ‘FOO’, without a corresponding start tag. This frequently occurs in conjunction with the previous error. For instance, given <B><I>nope</B></I>, the validator will insert a </I> before the </B>, and then will find the </I> after the </B> and will have nothing to match it with.
  2. “There is no Attribute ‘BLAH’” – Now all these attributes are used by the .NET framework, e.g. Name, Bordercolor, Height, etc. But in my (unofficial) testing, I did not find any issues with this on most of the browsers as most of them just ignore them. So, what is the “standard” here and the cause for concern? This brings up another interesting question, should Microsoft change the way the .NET runtime renders this to “fix” this? How does this compare to what JSP’s render?
  3. “Value of attribute “ID” invalid” – technically this is part of the above, but I was curious on what the issue is with the ID starting with an underscore (_)? I am at a loss there. Any thoughts?
  4. “ALT not Specified” – Now this is truely my fault for not adding that attribute to the images. Next build one can be assured this would be fixed. πŸ™‚
  5. An attribute value must be a literal unless it contains only name characters” – This is interesting. .Text uses an open source (I think) control called FreeTextBox by John Dyer, which is quite cool. Maybe the newer version of the control fixes this issue.

As you gathered, I am not really a HTML guy, I know enough aboout it, but don’t know the protocol by heart, nor do I plan on learning that. So go easy on me if some of my questions are very basic *grin*.

I would be interested to hear what you feedback is and what your experiences with this have been?

Google and Numbers

Though, this has been possible by google for a bit, most people did not know all the power of google. Here are some of the things you can do:

  1. Area Code Maps
  2. Package Tracking (FedEx, UPS,  USPS)
  3. Flight Tracking Info
  4. Vehicle Info
  5. Patent Search
  6. FAA Plane Registration
  7. UPC Codes
  8. FCC Equipment IDs

There is also a calculator which in addition to the simple things (such as addition, multiplications, etc) can also calculate the sqrt, trigonometric functions (sin, cos, etc.), ln (logarithm base e), log (logarithm base 10), factorial, etc. Want to see some binary multiplication?

Now that is cool, the power to have all this at your fingertips. What would be next? πŸ™‚

Personalize input system, is it possible?

Ergodex has made what it dubs as the “The World’s First Totally Personalizable Input System”. They have a pad with a sticky surface that connects via usb to a computer. You can then stick the keys to the surface as you like. You can “record” macros and assign them to keys and can be executed at one touch.

Now, looking at it, my geek factor thinks it cool, but when I put on my practical hat, is it really worth almost the $150 bucks? Sure everyone’s hands are different, but at the end of the day you would probably set it up in a qwerty layout.


The first computer designed and produced in India is now for sale in the country. The Simputer has been developed by scientists and engineers at the Institute of Science in Bangalore. The handheld device was built to help people to afford to have their own computer and access the internet. It comes in three versions and can be used to surf the web and send e-mails. The basic model has a 206Mhz processor, 64MB of memory and uses the Linux operating system. The price will be around €190.  

Microsoft source code release not an accident

Interesting article on GMSV.

Typically, the only way to get a good look at Microsoft’s source code was via leak or the company’s “Shared Source” program. No longer. On Monday, Microsoft released some of its code (the Windows Installer Xml (WiX) toolset ) under an open-source license, and posted it on SourceForge. Rob Mensching, the Microsoft employee behind the unprecedented code release, commented on it in a post to his Web log. “After four and a half years of part-time development, the WiX design (and most of the code) matured to a point where I was comfortable trying to release it externally,” Mensching explained. “So, last October I started looking for a means to release not only the tools but the source code as well. I thought GotDotNet was the place. However, at that time, none of the existing Shared Source licenses were flexible enough to accept contributions from the community. Then, in February, I was introduced to Stephen Walli who was also working to improve Microsoft’s relationship with the Open Source community. Fortunately, Stephen was much farther along than I and had the step-by-step plan how to release an Open Source project from Microsoft using an approved OSS license. Today, via WiX on SourceForge, you get to see the results of many people’s efforts to improve Microsoft from the inside out. I’m not exactly sure what is going to happen next but I’m sure there are quite a few people who are interested to see where this leads. Personally, all I hope is that if you find the WiX toolset useful then you’ll join the community and help us improve the toolset.”

This is broken

This Is Broken, run by Mark Hurst, in my opinion has an excellent way to popularise the customer experience on the web. Not only is it “lmao“ funny, but it also tells you which products and companies to avoid! Kudos to Mark!

Does one need to "promote" offshoring?

Mercury News is running a story on how India’s second-largest software company, Infosys Technologies, announced Thursday that it is expanding operations in Fremont with a new management-consulting subsidiary to advise technology companies on shipping software-development work offshore. My question is, do they need to promote offshoring? Isn’t there enough action on the offshoring front?