origin page 5 - Dave's Blog

Search
My timeline on Mastodon

YouTube - Orchestre Ossipov Korobeiniki (original tetris music)

2008 May 11, 10:03"Orchestre Ossipov Direction Vladimir Ponkine Concert Institut Gnessine Moscou 2006 "PermalinkCommentstetris music video youtube classical

The Baudboys: Microsoft's Finest A Cappella

2008 May 5, 11:21"The Baudboys are an all-male a cappella group composed entirely of Microsoft employees. Risking the wrath of fellow employees by rehearsing in on-campus conference rooms, The Baudboys sing a variety of popular and original music."PermalinkCommentsmusic baudboys microsoft

URI Fragment Info Roundup

2008 Apr 21, 11:53

['Neverending story' by Alexandre Duret-Lutz. A framed photo of books with the droste effect applied. Licensed under creative commons.]Information about URI Fragments, the portion of URIs that follow the '#' at the end and that are used to navigate within a document, is scattered throughout various documents which I usually have to hunt down. Instead I'll link to them all here.

Definitions. Fragments are defined in the URI RFC which states that they're used to identify a secondary resource that is related to the primary resource identified by the URI as a subset of the primary, a view of the primary, or some other resource described by the primary. The interpretation of a fragment is based on the mime type of the primary resource. Tim Berners-Lee notes that determining fragment meaning from mime type is a problem because a single URI may contain a single fragment, however over HTTP a single URI can result in the same logical resource represented in different mime types. So there's one fragment but multiple mime types and so multiple interpretations of the one fragment. The URI RFC says that if an author has a single resource available in multiple mime types then the author must ensure that the various representations of a single resource must all resolve fragments to the same logical secondary resource. Depending on which mime types you're dealing with this is either not easy or not possible.

HTTP. In HTTP when URIs are used, the fragment is not included. The General Syntax section of the HTTP standard says it uses the definitions of 'URI-reference' (which includes the fragment), 'absoluteURI', and 'relativeURI' (which don't include the fragment) from the URI RFC. However, the 'URI-reference' term doesn't actually appear in the BNF for the protocol. Accordingly the headers like 'Request-URI', 'Content-Location', 'Location', and 'Referer' which include URIs are defined with 'absoluteURI' or 'relativeURI' and don't include the fragment. This is in keeping with the original fragment definition which says that the fragment is used as a view of the original resource and consequently only needed for resolution on the client. Additionally, the URI RFC explicitly notes that not including the fragment is a privacy feature such that page authors won't be able to stop clients from viewing whatever fragments the client chooses. This seems like an odd claim given that if the author wanted to selectively restrict access to portions of documents there are other options for them like breaking out the parts of a single resource to which the author wishes to restrict access into separate resources.

HTML. In HTML, the HTML mime type RFC defines HTML's fragment use which consists of fragments referring to elements with a corresponding 'id' attribute or one of a particular set of elements with a corresponding 'name' attribute. The HTML spec discusses fragment use additionally noting that the names and ids must be unique in the document and that they must consist of only US-ASCII characters. The ID and NAME attributes are further restricted in section 6 to only consist of alphanumerics, the hyphen, period, colon, and underscore. This is a subset of the characters allowed in the URI fragment so no encoding is discussed since technically its not needed. However, practically speaking, browsers like FireFox and Internet Explorer allow for names and ids containing characters outside of the defined set including characters that must be percent-encoded to appear in a URI fragment. The interpretation of percent-encoded characters in fragments for HTML documents is not consistent across browsers (or in some cases within the same browser) especially for the percent-encoded percent.

Text. Text/plain recently got a fragment definition that allows fragments to refer to particular lines or characters within a text document. The scheme no longer includes regular expressions, which disappointed me at first, but in retrospect is probably good idea for increasing the adoption of this fragment scheme and for avoiding the potential for ubiquitous DoS via regex. One of the authors also notes this on his blog. I look forward to the day when this scheme is widely implemented.

XML. XML has the XPointer framework to define its fragment structure as noted by the XML mime type definition. XPointer consists of a general scheme that contains subschemes that identify a subset of an XML document. Its too bad such a thing wasn't adopted for URI fragments in general to solve the problem of a single resource with multiple mime type representations. I wrote more about XPointer when I worked on hacking XPointer into IE.

SVG and MPEG. Through the Media Fragments Working Group I found a couple more fragment scheme definitions. SVG's fragment scheme is defined in the SVG documentation and looks similar to XML's. MPEG has one defined but I could only find it as an ISO document "Text of ISO/IEC FCD 21000-17 MPEG-12 FID" and not as an RFC which is a little disturbing.

AJAX. AJAX websites have used fragments as an escape hatch for two issues that I've seen. The first is getting a unique URL for versions of a page that are produced on the client by script. The fragment may be changed by script without forcing the page to reload. This goes outside the rules of the standards by using HTML fragments in a fashion not called out by the HTML spec. but it does seem to be inline with the spirit of the fragment in that it is a subview of the original resource and interpretted client side. The other hack-ier use of the fragment in AJAX is for cross domain communication. The basic idea is that different frames or windows may not communicate in normal fashions if they have different domains but they can view each other's URLs and accordingly can change their own fragments in order to send a message out to those who know where to look. IMO this is not inline with the spirit of the fragment but is rather a cool hack.

PermalinkCommentsxml text ajax technical url boring uri fragment rfc

growabrain

2008 Mar 21, 3:48An original style blog that consists of cool links and vidoes and things. Lots of interesting, odd, cool, and funny things here.PermalinkCommentsblog monthly humor photos videos links

Identifying Vegetables with 20q Pocket Mind Reader

2008 Feb 26, 2:24

A shallot sliced in two.At the grocery store the other day Sarah and I attempted to find shallot for a recipe, but I can't tell the difference between shallot, sweet onions, yellow onions, etc. etc. We found something that we decided was the closest we'd find in the store and I believe we picked correctly because at checkout the cashier rang it up as shallot.

I think this could be a practical problem that the 20q Pocket Mind Reader should be able to solve: obtain the name of an unidentified object. When we got home I decided to test the 20q Pocket Mind Reader on shallot. Unfortunately, it told me I had an onion, but I think if these were designed for identifying unknown objects based solely on information you can obtain by looking at it, rather than requiring knowledge of seeds, where it grows, etc. it would do better. Or I could just ask someone who works at the grocery store.

PermalinkCommentsonion shallot toy 20q random

Language Log: Egg, penis, whatever

2008 Feb 18, 3:05A case study on the origins of a humorous mistranslation. FTA: "The really weird ones are apparently from dictionary look-up errors ... not just taking an unlikely choice from the correct entry, but actually reading a different (but nearby) entry."PermalinkCommentshumor language blog article translate mistranslation languagelog

Phishing coders hook clueless crooks | The Register

2008 Jan 24, 8:55A software kit for phishers that, unknown to the phisher, messages any stolen info back to the originators of the kit.PermalinkCommentsfraud article phishing

CinematicTitanic: Mystery Science Theatre 3000 rides again -- sheer hilarity! - Boing Boing

2008 Jan 14, 4:03FTA: "CinematicTitanic picks up where MST3K left off -- much of the original cast are back, along with some new voices, except this time, it's direct-from-net distribution of DRM-free DVDs and (soon) DRM-free downloads."PermalinkCommentsvia:boingboing mst3k video product purchase

Maud Newton: Blog - Army Man

2007 Nov 12, 4:28Excerpts and brief history of Army Man a zine by one of the original Simpson's writers from before The Simpsons. I like 'An Amusing Anecdote' and the Bride's heckling.PermalinkCommentshumor culture history simpsons blog article via:boingboing

Ozzie

2007 Jun 25, 3:13I keep seeing 'Ozzie' on emails and such now due mainly to Ray Ozzie who is now the Chief Software Architect at Microsoft and his brother Jack Ozzie. Whenever I see his name I think of Ozzie from Chrono Trigger. He was one third of a trio of villains, the other two being Flea and Slash. I feel like I should be thinking of the Ozzy for which this Ozzie was named but I really don't.
Ray Ozzie. Links to license.Ozzie from Chrono Trigger. Links to license.Ozzy Osbourne. Links to license.
My next thought on Ozzie is the Scottish guy who went to my high school. He'd shout 'Ozzie! Ozzie! Ozzie!' to which listeners were compelled to respond 'Oi! Oi! Oi!'. The wikipedia article on the chant has some thoughts on the origins but I suppose at Microsoft it could take on entirely new meaning. I really hope I'm someday in a meeting with Ray or Jack Ozzie and have the opportunity...PermalinkCommentsozzy personal ozzie random nontechnical

New XSLT - IE7 XML Source View Upgrade Part 2

2007 May 11, 8:55Last time, I had written some resource tools to allow me to view and modify Windows module resources in my ultimate and noble quest to implement the XML content-type fragment in IE7. Using the resource tools I found that MSXML3.DLL isn't signed and that I can replace the XSLT embedded resource with my own, which is great news and means I could continue in my endevour. In the following I discuss how I came up with this replacement for IE7's XML source view.

At first I thought I could just modify the existing XSLT but it turns out that it isn't exactly an XSLT, rather its an IE5 XSL. I tried using the XSL to XSLT converter linked to on MSDN, however the resulting document still requires manual modification. But I didn't want to muck about in their weird language and I figured I could write my own XSLT faster than I could figure out how theirs worked.

I began work on the new XSLT and found it relatively easy to produce. First I got indenting working with all the XML nodes represented appropriately and different CSS classes attached to them to make it easy to do syntax highlighting. Next I added in some javascript to allow for closing and opening of elements. At this point my XSLT had the same features as the original XSL.

Next was the XML mimetype fragment which uses XPointer, a framework around various different schemes for naming parts of an XML document. I focused on the XPointer scheme which is an extended version of XPath. So I named my first task as getting XPaths working. Thankfully javascript running in the HTML document produced by running my XSLT on an XML document has access to the original XML document object via the document.XMLDocument property. From this this I can execute XPaths, however there's no builtin way to map from the XML nodes selected by the XPath to the HTML elements that I produced to represent them. So I created a recursive javascript function and XSLT named-template that both produce the same unique strings based on an XML node's position in the document. For instance 'a3-e2-e' is the name produced for the 3rd attribute of the second element of the root element of the XML document. When producing the HTML for an XML node, I add an 'id' attribute to the HTML with the unique string of the XML node. Then in javascript when I execute an XPath I can discover the unique string of each node in the selected set and map each of them to their corresponding positions in the HTML.

With the hard part out of the way I changed the onload to get the fragment of the URI of the current document, interpret it as an XPath and highlight and navigate to the selected nodes. I also added an interactive floating bar from which you can enter your own XPaths and do the same. On a related note, I found that when accessing XML files via the file URI scheme the fragment is stripped off and not available to the javascript.

The next steps are of course to actually implement XPointer framework parsing as well as the limited number of schemes that the XPointer framework specifies.PermalinkCommentsxml xpointer msxml res xpath xslt resource ie7 technical browser ie xsl

San Francisco Trip

2007 May 11, 7:48Hotel Diva BedAfter Carissa and Elijah's wedding Sarah and I went to San Francisco. We drove in, well Sarah drove anyway, still in the PT Cruiser Sunday morning and checked into our hotel, Hotel Diva. I was originally concerned that I wouldn't fit in as I don't really consider myself a diva, however the hotel was cool. They have Internet rooms setup in various themes, the front desk is always staffed, our room had a very modern look, and when we entered the flat-screen over the front desk was playing an episode of Aqua Teen Hunger Force.

Outside the SF Museum of Modern ArtWe walked around a bit before going to the SF Museum of Modern Art. There was a Picasso exhibit at the time which we could see for only $3 more. It felt kind of wrong like my ticket was super-sized. I think the most memorable piece I saw was three white panels which consisted of three blank panels. Art. Sure. After that Sarah wanted to see the giant Hello Kitty store she had heard of from her sister. We ended up going to the Westfield Shopping center which has a disappointingly average sized Hello Kitty store. Apparently the giant one is gone. That night we went to First Crush for dinner. I had a flight of wine which consists of three one-third sized glasses of various but complimentary wines. It was a great restaurant in terms of food, drink, atmosphere and service.

Sarah & I Pier 39The next morning we were even more the tourists when we went down to Fisherman's Wharf and Pier 39. We visited the famous wax museum and purchased multiple pounds of taffy. On the way back to the Oakland airport we got to experience a little traffic as part of the 580 freeway had collapsed the morning we arrived and was still under repair on our way out. We survived of course and I think the trip went rather well.PermalinkCommentssanfrancisco personal california sfmoma nontechnical

Spam (dance) - Wikipedia, the free encyclopedia

2007 Mar 30, 3:29Apparently there's a dance form named 'spam'. From the link: "The term originated in the underground scene from Ontario, Canada. It was lifted from the video game and technological meanings of spam, relating the concepts of rapid speed and randomness."PermalinkCommentsspam dance

History of UTF-8

2007 Mar 30, 1:27The origins of the UTF-8 Unicode encoding.PermalinkCommentshistory encoding unicode ken-thompson utf8

New Shoes

2004 May 10, 10:37Looking around the Microsoft campus it was easy to tell people who were there for an interview from the programmers who worked there. All of the people who were dressed formally, a suit or tie was an obvious sign, were there for an interview. I spent my time between interviews talking to other over dressed people between interviews. The usual topics of conversation included name, city of origin, computer science background, and the crazy problems our interviewers had asked us. Going through these topics with one such person, who incidentally was the only woman I saw interviewing, I asked what school she was attending. She told me she was just finishing her Masters in Computer Science at [some college] and I told her where I was from. She then asked me, "You have your Doctorate in Computer Science?" "No," I said, "My Bachelors... I'm working on my Bachelors." "Oh," she said, "Well you look very mature." I'm fairly certain that's a first for me -- being told I look "very mature" that is. Unfortunately, at that point my tram showed up and I had to travel to a different building. Now I'm left wondering what made me look mature. It could have been the gel or the slacks or the tucked in shirt. The day previous while dressed casually, hanging out with my friend Jeannie, some of her friends thought I was her age, about eight years older. The common element between my two appearances were my new black dressy-ish shoes. Maybe its just that easy.PermalinkComments
Older EntriesNewer Entries Creative Commons License Some rights reserved.