Inline Search in IE

This is a feature I have been dying to get — Inline Search or Find As You Type. I just love it in Firefox and since I generally use both browsers simultaneously, I’d really miss it in IE. Wonder why they didn’t add it even in IE7.
 
However, finally, I could locate a third party addon that does this. Seems it is fairly easy to add the extra script in IE. What’s better, I got a number of different implementations:

Super cool, wot say?

Calling a native Win32 DLL compiled in Cygwin + MingW from C#

First of all — This was a fairly intractable problem. I had to spend almost a full day to resolve it. There are many steps here and let’s go through them one by one:

Compiling a Win32 DLL using Cygwin/MingW

This was the hardest part. First of all, you should read Building and Using DLLs in the Cygwin manual. For me the linker flag "–export-all-symbols" didn’t work and I had to include a DEF file (read about it here).

Now, if it works you are darned lucky and I am jealous. In my case, on trying to link to my C# project, this gave an error about versioning with the cygwin1.dll. To be able to call from a .NET executable, you would want to compile it without dependancy on cygwin1.dll. Time to read another tutorial — Building MingW executables using Cygwin.

Runs without GCC throwing any tantrums? Lucky boy! Go to step 2. If it doesn’t (specifically saying undefined references for ___assert and ___getreent etc.), make sure that you are adding the "-mno-cygwin" flag to all the files that you compile, even when you are compiling from code to object files or else it will include the wrong headers. Perhaps the best option is to replace "gcc" by "gcc -mno-cygwin" everywhere.

If get compiler errors even now, you will just have to hack around in the code until you can fix it. Tough luck, baby, but that’s the way it is.

Before you move to the next step, just spend a time to check if the correct symbols have been exported. Run "dumpbin /exports <dll-name>" and you should be able to find all the symbols that the DLL exports. You can find more details about dumpbin here.

Calling a native assembly in C#

This is the easier part. You can called unmanaged DLLs from within .NET managed code by using P/Invoke through the DllImport attribute. It is as straight forward as:

[DllImport("my.dll")]

public extern static void foo(System.Uint32 num, System.IntPtr ptr);

and calling foo. But, it wouln’t hurt to read a little more about it right? So there you go:

  1. Calling Win32 DLLs with P/Invoke
  2. Another one
  3. How to Marshal structures using P/Invoke

A word of caution: Do not try and reference the Win32 Assembly from within your VStudio IDE. It just crashed for me. Just copy the DLL file you create above into the Debug\bin\ or Release\Bin directory of your project.

So, there you go! One day’s hard work saved for you.

Small things which matter

Both IE and FF are out with their latest versions. While I find both of them very similar in terms of functionality at this point of time, one feature I really miss in IE is the quick find which opens as a small bar at the bottom of the page in FF. Wonder why the IE devs haven’t integrated it!
 
Small things which make open source agile. IE 7.0 uses Ctrl+E as the keyboard shortcut for its quick search text box. FF 2.0 has now integrated it as a keyboard shortcut, and as a result I can use the same keyboard shortcut in both browsers – IE needs to be as agile! At the same time, I should mention that IE seems to be more stable, my FF 2.0 has already crashed thrice today.
 
In terms of memory performance, both browsers seem to get bloated very fast, affecting the overall responsiveness of the box especially while running Ajax apps. I hope somebody does a good job of memory management, and soon.

Typing problems in laptops

Do you have problems typing on a laptop? Does the cursor seem to jump around making it a pain to type? Well, it is usually because your thumb probably brushes across the touchpad while typing and the cursor jumps to the location where the mouse pointer is on screen.
 
Most Operating Systems would provide an option to disable the touchpad tapping functionality while typing. This should solve the problem. To do this on Windows XP, go to Control Panel > Mouse > Advanced > Advanced Feature Settings > Tapping and Feature Settings > Tapping Settings and check the "Disable tapping during key input" check box. This setting may reside in different places in the Mouse control panel applet based on yor manufacturer/Touchpad driver. This was the sequence in my Toshiba laptop. [Found this from here, Q7 -- it actually gives a different sequence to reach this setting, which may be more generic]
 
If you use Linux, Ubuntu blog descrives a method to do this on Linux here.

OpenDNS

OpenDNS (http://opendns.com/) seems like an interesting concept — especially useful for Indian users. I have seen a lot of times, that the DNS servers of our ISPs go down and it becomes impossible to surf the net even though the pipe to the ISP is working.
 
Seems like I can easily add one of their DNS servers as an alternate DNS Server in my network stack and be able to surf the internet at those times! Sweet!
 
(Got this link from Paul Stamatiou’s blog http://paulstamatiou.com/)
Follow

Get every new post delivered to your Inbox.

Join 1,842 other followers

%d bloggers like this: