Google Toolbar is a Security Leak!

OK, I like many people have the Google Toolbar installed on my browser(s). One of the options on the toolbar is the PageRank button. If you've not used it, it's a really cool button that shows you Google's PageRank for the page you're currently viewing.

It's a simple enough implementation, for each page you visit the toolbar makes a request to Google's servers ( specifically) and looks up the page rank information on that page. The request is a simple GET request, included in the request is the current URL. The response is a simple text string showing the page rank. For example, if I visit I get back "Rank_1:1:6" in the response.

This is all well and good, except for one major problem. These toolbar queries are always sent as HTTP not HTTPS requests. That's not that bad a thing if you're checking or CNN, but if you happen to be browsing a secure site, your URLs are still being sent in the clear to Google! Not only that, but all your intranet URLs are sent to Google too, since Google tries to find the pagerank for every page you visit.

I'd like to find, but haven't yet, a header, metatag, or something similar that the web developer / site admin can add to their site to tell Google Toolbar that this page isn't going to have a pagerank and shouldn't be sent back to Google. I'd also like to see the toolbar updated to either not send HTTPS URLs back at all, or at least send them as HTTPS requests so they're encrypted on the wire.

If you want it in a given order, ask for it in a given order...

Why is this concept so difficult for people to grasp? If you want SQL to return your results in a given order (on any platform) you must, must, I repeat... MUST, ask for it in that order!

I don't care if it has "always" come back in last-name order when you ran this query. If you didn't specify an order-by then SQL is free to give it back in some other order if it feels so inclined.

There are few absolutes in the world, you don't use your hands in soccer, servers are sure to fail on a Friday afternoon, and if you want your result set ordered a specific way, ASK for it!

Scott Hanselman is a drug dealer...

"Hello, my name is Walden and I'm an addict." Scott Hanselman is a drug dealer, and Hanselminutes is a gateway drug!

I've never been into Podcasts, I never saw the point and thought those that listened to them were just, well, silly. Until... I downloaded a Hanselminutes and took one hit! It's worse than crack, I'm hooked! I can't get enough.

I've got Hanselminutes, DotNetRocks, and RunAsRadio taking up more and more of my iPod. I have to listen, several times a day even. Hell, I've taken up walking so I can listen while I walk.

So just a word of caution, be careful, or you'll get hooked too.

OpenOffice and Background Processes

Damn I hate OpenOffice sometimes! I'm sure it's a great app for an end-user, but its API could use some work. One problem I've been fighting with is getting a background task (ASP.Net Web Service) to start openoffice successfully. It would start, be never listened. This little gem really would have helped several weeks ago: The important part is "Step 7":
If we stop here the service will start but not actually work. That's because the service runs as a special account and will try to show the license agreement dialog as if it was a new user instead of starting the application. To avoid this, you need to edit share\registry\data\org\openoffice\Setup.xcu (it's an XML file) inside the installation directory and replace this bit
<prop oor:name="ooSetupInstCompleted">
<prop oor:name="ooSetupShowIntro">
with this other one (replace the date with today's date; it must be later than the OOo installation time)
<prop oor:name="ooSetupInstCompleted" oor:type="xs:boolean">
<prop oor:name="LicenseAcceptDate" oor:type="xs:string">
<prop oor:name="FirstStartWizardCompleted" oor:type="xs:boolean">
I guess OOo was trying to popup some sort of setup or license agreement. This change tell OOo I've already done those things. This is all despite the fact that I'm starting the soffice.exe with -headless -nologo -nofirstartwizard