January 20, 2008
that is not a default dual interface, always create a Standard Dispatch interface using CreateStdDispatch(…) and the IUnknown implementation, and return it as a VARIANT.
… I learned that over the weekend the hard way.
Leave a Comment » |
C++, Microsoft, Programming, Windows |
Permalink
Posted by bybitsandbytes
January 13, 2007
In my opinion, I think Yahoo has so far the best email client among the three major web-based email providers (Yahoo! Mail, GMail, and Hotmail or Windows Live! Mail). The only problem that I have with that is that there is no mechanism for organizing emails as conversations (the only way of organizing mail in GMail). About Hotmail, the less said, the better. They should change their web-based user interface for Hotmail, to the one they use for Outlook, which is very, very nice.
However, I came across an interesting senario in Yahoo. If you right click on one of your mails, the browser’s context menu appears over the context menu of the email client. There is a clash between the browser’s context menu and the context menu for the AJAX application. Perhaps context menus in AJAX apps are not the right UI element. See the picture below for an example in Firefox.


Interestingly enough, this does’nt happen with IE7. See the figure below.

Safari does’nt support Yahoo’s AJAX version
Leave a Comment » |
Blogging, Google, Microsoft, Yahoo! |
Permalink
Posted by bybitsandbytes
June 20, 2006
Well Hello There!! My non-existent readers….
After a long hiatus, I’m back. I’m not sure why I stopped blogging. Probably a combination of reasons, work, mood swings, lethargy, feeling morbid, low self-esteem. But I’m back. Not sure about the reasons about why I’m back either, probably some obscure reason again, but really I dont think anyone really cares.
For the past couple of weeks I’ve been following Rocketboom. This is a video blog thats become quite popular around the internet. Great content, pretty good-looking host. Todays newscast was about twin bombshells that were dropped on the computing industry, namely, first Robert Scoble’s departure two weeks ago and then Bill Gates’ announcement that two years from now, he will work part-time at Microsoft as a non-executive chairman and immediatly cede his role as Chief Software Architect.
Here are my 2 cents on the matter.
Robert Scoble’s role at Microsoft was a little tad confusing for me. His technology evengelism on Channel 9 was awesome, but his blog sometimes bordered on childish petulance especially when people outside the company criticised it. This was really evident, in my opinion, when Joel Splosky criticised Microsoft. I cant find the links to those blog flame post war between Splosky and Scoble, but I think Splosky came out better in that “debate”. Plus, Scoble’s continuous posts seem to make him over-exposed. I generally skim through this posts after 20 or so posts accumulate. In contrast, other bloggers seem to only post when they genuinely have something to say and then can say it well. I guess that makes me look forward to their posts.
As far as Bill Gates is concerned, people tend to forget that he’s been in the same job for 30 years. Thats a pretty much my whole life. and thats enough to sicken anyone, not matter how passionate someone is about their jobs. I think he made the right decison to move on. New people can now move in and make the tough decisions that need to be made to compete effectively. People may say a lot of things about Microsoft and Bill Gates, but a lot of people in the computing industry (including your’s truly) owe their careers to Microsoft’s vision.
As for the stock market, I’m not a big fan of using the stock market as a barometer of a companies performance. Its kind of hard to believe that a company which has shown a profit quarter after quarter, and has billions of dollars in the bank is somehow doing badly.
Leave a Comment » |
Blogging, Life, Microsoft, Technology |
Permalink
Posted by bybitsandbytes
March 27, 2006
So I decided to test drive the mapping service from Microsoft today.
The first thing I usually do is to directions for the unlikely senario that I have to drive from Miami to Seattle. The first time I tried it, I got the "server is busy. Please try again" message. That put a little damper of my opinion.
Then I decided, that I would do comparison of different routes that I take home to work. Now, most other mapping services like google's and yahoo!'s and Rand McNally's ask you for a start and end addresses, and then find "best" directions. These directions are often not the best if you have some local knowledge about shortcuts either from a person who lives there, of having been to the place, you have some vague memory of it.
Microsoft's offering on the other hand allows you to locate the locations you're interested in without specifying the address. All you have to do is point, right-click and select either "from" or "to". Now this allows a user to plan the route in stages, or if the user has some local knowledge, use it for route planning. I'm pretty sure Google, Yahoo! and RandMcNally must have thought about this, but they must have figured that most users would just want to input the start and end address and get the directions. The Microsoft user experience for me was pretty good, except for the the initial hiccup about the "server being busy…" but I dont think its going to go down well with users. At least I dont think they will use the service to its full potential.
The one other feature I was curious about was the "locate me" feature. I clicked on that, and a window opened up giving me three choices.
-
Install an ActiveX control.
- Use an IP address
- Cancel
I'm betting that most users are either going to skim down the text, see the cancel button and click on it, or alternatively, they're going to see ActiveX control click on the small "x" on the top-right corner. This is typical Microsoft UI.
All in all, my initial reaction is that its a great and feature-rich service. While it may win me over, I dont think it will over rank-and-file consumers, either because of the halo effect of google and yahoo! or they might not use it to its full abilities.
…I'll be writing more about this as I use the new services more.
Leave a Comment » |
Blogging, Google, Internet, Microsoft, Software, Travel, Yahoo! |
Permalink
Posted by bybitsandbytes
March 26, 2006
I read this post a couple of days ago on my RSS aggregator. I think that was one day after MS announced, that consumer version of Microsoft Windows Vista would be delayed about 6 to 8 weeks. At the time there were like a few comments on the post. Right now there 419+ comments.
Some MSFT employees are really pissed.
Leave a Comment » |
Microsoft, Technology, Windows |
Permalink
Posted by bybitsandbytes
March 12, 2006
I found this a reference to this article on slashdot(link). It describes how researchers at Microsoft Research have combined virtualization technology and rootkits to run spyware and malware on a target computer. The idea is is still in a proof-of-concept, but with open-source virtual machines like Xen and how-to guides for making rootkits, I dont think that hackers will be far behind in figuring how to exploit this.According to the article.
The proof-of-concept rootkit, called SubVirt, exploits known security flaws and drops a VMM (virtual machine monitor) underneath a Windows or Linux installation.Once the target operating system is hoisted into a virtual machine, the rootkit becomes impossible to detect because its state cannot be accessed by security software running in the target system, according to documentation seen by eWEEK.
…
Today, anti-rootkit clean-up tools compare registry and file system API discrepancies to check for the presence of user-mode or kernel-mode rootkits, but this tactic is useless if the rootkit stores malware in a place that cannot be scanned.
“We used our proof-of concept [rootkits] to subvert Windows XP and Linux target systems and implemented four example malicious services,” the researchers wrote in a technical paper describing the attack scenario.
“[We] assume the perspective of the attacker, who is trying to run malicious software and avoid detection. By assuming this perspective, we hope to help defenders understand and defend against the threat posed by a new class of rootkits,” said the paper, which is co-written by researchers from the University of Michigan.
…Read the article to find out more.
Leave a Comment » |
Linux, Microsoft, Software, Windows |
Permalink
Posted by bybitsandbytes
March 5, 2006
Kryzstof Cwalina has written up some rules or “Laws” for API design, which I’m going to use in a presentation at some time in my company. I thought I should link them here in just in case I need to have to refer to it at that time. They are fairly good rules that I think should be used more often.
“usability” in this context means “how easy to use the library is”.
- The usability of a namespace is inversely proportional to the number of public types in the namespace.
- The usability of a type is inversely proportional to the number of public members of that type.
- The usability of a member is inversely proportional to the number of parameters this member has.
- The usability of a framework is inversely proportional to the sum of the number of explicit constructor invocations required and the number of types whose static methods need to be invoked to implement common scenarios.
- The likelihood of an abstraction being designed correctly is inversely proportional to the number of abstract members on that abstraction.
- The likelihood of an abstraction being designed correctly is proportional to the sum of the number of members taking it as a parameter and the number of types implementing it.
- The likelihood of a virtual member being designed correctly is inversely proportional to the size of the member’s body.
- The likelihood of a virtual member being designed correctly is proportional the sum of members calling it and the number of members overriding it.
Some of the comments were very interesting.
One commentator wrote:
If I understood correctly, applying laws 1, 2 and 3, the best class library in the world has:
one namespace
with one type
that has one member
with one parameter.
Or a member without parameters
or no members
or just an empty class library.
Sorry, I couldn’t resist
He had a point, which is why the original author decided to add the update, clarifying that the meaning of usability here means the “ease of use of a library”. Overall goodnes of a library is some combination of usability and functonality.
Read the rest of his blog.There’s prety interesting stuff about the
why the collections library of the .Net platform is theway it is.
Leave a Comment » |
.Net, Microsoft, Software, Technology, Windows |
Permalink
Posted by bybitsandbytes
February 26, 2006
Reading up on multi-files assemblies, I found these rules of thumb for integrating C++ and C# libraries, which are reproduced here
How do I mix C# and C++ code in a single assembly?
If your C++ code is not compiled with /clr:safe (i.e. it is compiled with /clr or /clr:pure), do the following:
1) compile your C++ code into .obj files
2) compile your C# code into a .netmodule, using /AddModule to reference the C++ .obj files
3) link the C# netmodule directly with the C++ object files using the C++ linker to create a mixed language assembly
If your C++ code is compiled with /clr:safe, build your C++ code as a .netmodule. You can use it just like you would use a .netmodule from any other language.
Brought to you from here.
Leave a Comment » |
.Net, Microsoft, Software, Technology, Windows |
Permalink
Posted by bybitsandbytes