2011 Nov 23, 11:00
Shortly after joining the Internet Explorer team I got a bug from a PM on a popular Microsoft web server product that I'll leave unnamed (from now on UWS). The bug said that IE was handling empty
path segments incorrectly by not removing them before resolving dotted path segments. For example UWS would do the following:
A.1. http://example.com/a/b//../
A.2. http://example.com/a/b/../
A.3. http://example.com/a/
In step 1 they are given a URI with dotted path segment and an empty
path segment. In step 2 they remove the empty path segment, and in step 3 they resolve the dotted path segment. Whereas, given the same initial URI, IE would do the following:
B.1. http://example.com/a/b//../
B.2. http://example.com/a/b/
IE simply resolves the dotted path segment against the empty path segment and removes them both. So, how
did I resolve this bug? As "By Design" of course!
The URI RFC allows path segments of zero length and does not assign them any special meaning. So generic user agents that intend to work on the web must not treat an empty path segment any
different from a path segment with some text in it. In the case above IE is doing the correct thing.
That's the case for generic user agents, however servers may decide that a URI with an empty path segment returns the same resource as a the same URI without that empty path segment. Essentially
they can decide to ignore empty path segments. Both IIS and Apache work this way and thus return the same resource for the following URIs:
http://exmaple.com/foo//bar///baz
http://example.com/foo/bar/baz
The issue for UWS is that it removes empty path segments before resolving dotted path segments. It must
follow normal URI procedure before applying its own additional rules for empty path segments. Not doing that means they end up violating URI equivalency rules: URIs (A.1) and (B.2) are equivalent
but UWS will not return the same resource for them.
user agent url ie uri technical web browser 2011 Nov 14, 12:34
I wrote my HTML against IE9 and continually validated with Chrome as I went. Afterward I tried it in FireFox and found out that FireFox has textContent whereas IE9 & Chrome have innerText
technical web web-browser firefox ie9 chrome ie innertext textcontent js html 2011 Mar 28, 4:06"ILSpy is the open-source .NET assembly browser and decompiler. Development started after Red Gate announced that the free version of .NET Reflector would cease to exist by end of February 2011."
.net tools reflector c# development csharp dotnet technical tool 2010 Dec 13, 11:12Used to generate publicly verifiable random numbers. For instance to pick 'xn--' for the IDN prefix from a set of prefixes, they decided on a hash, a set of stocks and a time in the future to
generate the hash from the stock values. The resulting value is random and anyone can check the work to verify that it was chosen randomly.
Although, now looking back from the future I can't verify that they didn't generate this data after the stock quotes came out. And they're using MD5...
rfc algorithm random election ietf technical 2010 Aug 17, 3:05
I've just got a new media center PC connected directly to my television with lots of HD space and so I'm ripping a bunch of my DVDs to the PC so I don't have to fuss with the physical media. I'm
ripping with DVD Rip, viewing the results in Windows 7's Windows Media Center after turning on the WMC DVD Library, and using a powershell script I wrote to copy over cover art and metadata.
My powershell script follows. To use it you must do the following:
- Run Windows Media Center with the DVD in the drive and view the disc's metadata info.
- Rip each DVD to its own subdirectory of a common directory.
- The name of the subdirectory to which the DVD is ripped must have the same name as the DVD name in the metadata. An exception to this are characters that aren't allowed in Windows paths (e.g.
<, >, ?, *, etc)
- Run the script and pass the path to the common directory containing the DVD rips as the first parameter.
Running WMC and viewing the DVD's metadata forces WMC to copy the metadata off the Internet and cache it locally. After playing with Fiddler and reading this
blog post on WMC metadata I made the following script that copies metadata and cover art from the WMC cache to the corresponding
DVD rip directory.
Download copydvdinfo.ps1
powershell wmc technical tv dvd windows-media-center 2010 Jul 8, 9:00
I previously described my desire to
hook my Outlook calendar up to my
Google calendar. I just found out that I can do this and the reverse as both support publishing calendars to the Internet. The following are how I set this up under Outlook 2010 and Google
Calendar:
In Outlook, I go to the calendar view, right click on my calendar and select "Share Publish to Office.com". At this point I can change the permissions to allow anonymous Internet access, and under
Detail change between 'Full details' (full calendar), 'Limited details' (subject lines & availability only), 'Availability only'. Availability only is almost just what I want -- I'd also like
to include location but availability only is good enough. After hitting OK here I get a 'Do you want to send an invitation...' dialog box. I hit 'Yes' and I can copy the webcals:// URL out of the
email window that opens up. Next, to add it to my Google calendar, I open
http://www.google.com/calendar/, and under 'Other calendars', I select 'Add
Add by URL', paste in that webcals:// URL but change the 'webcals' at the start to 'https'.
In Google Calendar, I can click on my calendar name under 'My calendars', select 'Calendar settings', and on the new page, look under 'Calendar Address', click the ICAL icon, and copy the URL in
the new dialog. Now back in Outlook I go to the Calendar view, right click on 'My Calendars', and select 'Add Calendar From Internet...'. In the new dialog that pops up I paste in the URL from
Google Calendar.
In this fashion I can share public calendar data between my personal and work calendars.
2010 Jun 29, 6:40A fan made Kings Quest sequel gets an official go-ahead: "After negotiations, the C&D [cease and desist] has been officially rescinded, and Phoenix Online has been granted a non-commercial
license to release The Silver Lining!"
game legal law videogame kings-quest sierra technical 2010 Jun 25, 2:58"... all you need to do is specify the /W switch and the file or folder you want to overwrite—after you have already deleted it. cipher /W:C:\Path\To\Folder"
technical cmd privacy security windows cipher delete 2010 Jun 21, 1:15"We'd like to publicly apologize to the NPB for the confusion over unicorn and pork--and for their awkward extended pause on the phone after we had explained our unicorn meat doesn't actually exist."
humor copyright legal law thinkgeek unicorn pork 2010 Jun 20, 2:05A more friendly summary of the Salmon Protocol -- the distributed commenting procotol. After telling Sarah I was reading about salmon, we watched the Salmon Dance video again.
technical salmon protocol comment atom rss social reference 2010 Apr 21, 6:47"After years of secrecy (and the occasional leak), a draft of the Anti-Counterfeiting Trade Agreement (ACTA) treaty has finally been released by negotiators. We've delved deep into the treaty,
highlighting its numerous problems. Indeed, there's a lot not to like about the treaty: Internet disconnections, anticircumvention prohibitions, and even the ability for rightsholders to get
injunctions if they can show infringement is imminent."
arstechnica acta privacy internet todo government politics piracy technical 2010 Apr 16, 1:08Analysis of a potentially time travelling individual captured in a 40s photo "Reopening of the South Fork Bridge after flood in Nov. 1940".
humor history photo photography time-travel via:boingboing 2010 Apr 15, 2:52Scans of some of a few instances of hate mail Neil deGrasse Tyson received from elementary school students after demoting Pluto to non-planet status.
hate-mail mail humor cute children neil-degrasse-tyson science pluto space planet astronomy 2010 Mar 12, 1:28
It was relatively easy, although still more difficult than I would have guessed, to hook my bespoke website's Atom feed up to Google Buzz. I already have a Google email account and associated
profile so Buzz just showed up in my Gmail interface. Setting it up it offered to connect to my YouTube account or my Google
Chat account but I didn't see an option to connect to an arbitrary RSS or Atom feed like I expected.
But of course hooking up an arbitrary Atom or RSS feed is documented. You hook it up in the same manner you
claim a website as your own via the Google Profile (for some reason they want to ensure you own the feed connected to your Buzz account). You do this via Google's social graph API which uses XFN or
FOAF. I used XFN by simply adding a link to my feed to my Google profile (And be sure to check the 'This is a profile page about me' which ensures that a rel="me" tag is added to the HTML on your
profile. This is how XFN works.) And by adding a corresponding link in my feed back to my Google profile page with the following:
atom:link rel="me" href="http://www.google.com/profiles/david.risney"
I used this
Google tool to check my XFN
connections and when I checked back the next day my feed showed up in Google Buzz's configuration dialog.
So more difficult than I would have expected (more difficult than just an 'Add your feed' button and textbox) but not super difficult. And yet after reading this Buzz from DeWitt Clinton I feel better about opting-in to Google's Social API.
technical atom google buzz rss social 2010 Mar 12, 11:11"All of the sculpted noses on the planet Viltvodle VI were fashioned after Douglas Adams' own. The creators used a 3D model he had created for the game Starship Titanic." The noses mentioned in the
previous sentence were depicted in the movie in a church. The religion of this church maintains that the universe was created by their god sneezing out the universe and so they have statues of their
god's nose throughout the church. Of course this is intended to seem absurd, however based on the previous sentence -- that the nose belonged to Douglas Adams -- then they really were worshping the
nose of their creator.
douglas-adams book hhgttg movie religion nose 2010 Feb 26, 8:50Did I read this already on Paleo-Future? Anyway still an awesome 1995 rant on why the Internet will fail. "Then there’s cyberbusiness. We’re promised instant catalog shopping–just point and click for
great deals. We’ll order airline tickets over the network, make restaurant reservations and negotiate sales contracts. Stores will become obselete. So how come my local mall does more business in an
afternoon than the entire Internet handles in a month? Even if there were a trustworthy way to send money over the Internet–which there isn’t–the network is missing a most essential ingredient of
capitalism: salespeople."
humor internet fail article history 2010 Feb 26, 8:40
I'm making a switch from the IE team to the Windows team where I'll be working on the next version of Windows. As a going away surprise Jen and Nick added me to my gallery of Bill Gates (discussed previously). Here's a close up of the photoshopped cover.
Before:
After:
microsoft bill gates photoshop windows 2010 Feb 22, 3:13On the Griffith OBservatory and the history of Mr. Griffith: "Today a splendid statue of Mr. Griffith stands in the park named after him. In one hand he is not holding a pistol, and in the other hand
he is not holding a bottle of whiskey."
humor griffith-observatory la california trip destination 2010 Jan 22, 1:23Canada's National Film Board gives the successful stats of its website on which you can watch their films.
free video film canada movie internet statistics 2010 Jan 13, 6:35Ars Technica rounds up links on the recent Google threatening to stop censoring itself in China including quotes from Secretary of State Clinton, and the EFF and info on the hacks.
google china arstechnica news politics security censorship