spec page 9 - Dave's Blog

Search
My timeline on Mastodon

RFC 3675 - .sex Considered Dangerous

2008 Jun 30, 3:55FCC wants nationwide free wifi that's free of porn. They should read this. "Periodically there are proposals to mandate the use of a special top level name or an IP address bit to flag "adult" "unsafe" material or the like. This document explains why thiPermalinkCommentsdomain dns rfc ietf internet porn government politics censorship

The Fulgurator fulgurates (?) subliminal messages on photographs - Boing Boing Gadgets

2008 Jun 25, 11:59Cool hack but I'd be irritated if my photos we're messed up. "a camera-like device that implants messages in a sub-visible spectrum on its object. These messages are invisible to the naked eye, but are clearly visible when photographed. "PermalinkCommentsvideo photography humor camera hack

Generating N-D Tetris Pieces

2008 Jun 1, 7:27

When I woke up this morning for some reason I was thinking about Polytope Tetris, my N-D Tetris game, and specifically generating Tetris pieces in various number of dimensions. When I first wrote PTT I thought that as the number of dimensions increased you could end up with an infinite number of non-equivalent crazy Tetris pieces. However this morning I realized that because you only get four blocks per piece there are only a possible three joints in a single Tetris piece which means that you only need three dimensions to represent all possible distinct N-D Tetris pieces.

Below is the table of the various possible pieces per number of dimensions and sorted by the number of joints in the piece. Notice that the 'J' and 'L' become equivalent in 3D because you can rotate the 'J' through the third dimension to make it an 'L'. The same happens for 'S' and 'Z' in 3D, and 'S+' and 'Z+' in 4D.

Joints Name 1D 2D 3D +
1 I I I I I
2 J J J J
L L
3 O O O O
T T T T
S S S S
Z Z
T+ T+ T+
S+ S+ S+
Z+ Z+
Total 1 7 8 7

As a consequence of not realizing there's a finite and small number of N-D Tetris pieces, I wrote code that would randomly generate pieces for a specified number of dimensions by wandering through Tetris space. This consists of first marking the current spot, then randomly picking a direction (a dimension and either forward or backward), going in that direction until hitting a previously unvisited spot and repeating until four spots are marked, forming a Tetris piece. However this morning I realized that continuing in the same direction until reaching am unvisited spot means I can't generate the 'T+' piece. I think the better way to go is keep the list of all possible pieces, pick one randomly, and rotate it randomly through the available dimensions. Doing this will also allow me to give distinct pieces their own specific color (like the classic Tetris games do) rather than picking the color randomly like I do now.

PermalinkCommentspolytope tetris tetris

Scott Hinsley's WebLog : Windows Server Longhorn: Server Core

2008 May 30, 9:49Blog post on Windows Server Core, what it is and setting it up: "Server core is a minimal installation option for Windows Server "Longhorn" providing a minimal environment supporting specific server roles."PermalinkCommentswindows blog msdn server scott-hinsley os

Lifeboat Foundation Bios: Joshua W. Klein, M.S.

2008 May 16, 2:33This guy works on interesting projects. "Joshua W. Klein, M.S. is a Mobile, Personal, and Future Technology Specialist who is currently Senior Technology Principal at Frog Design."PermalinkCommentsjoshua-klien bio

Joshua Klein, Mobile, Personal, and Future Technology Specialist

2008 May 16, 2:32"Roo'd by Joshua Klein". Cyberpunk, fiction, creative-commons.PermalinkCommentscyberpunk fiction scifi free book writing cc joshua-klein

Welcome to Airship Ventures

2008 May 12, 5:13Finally, geez! "Airship Ventures is a corporation formed with the objective of bringing Zeppelin NT airships to the USA for commercial air tours, media and advertising operations, scientific research, and special missions."PermalinkCommentssteampunk travel zeppelin via:kris.kowal

Font embedding on the Web - Wikipedia, the free encyclopedia

2008 May 9, 9:32"The CSS2 specification adopted Microsoft's @font-face rule as the standard method for embedding fonts. However, Safari is the only browser other than Internet Explorer that supports @font-face, and it supports TrueType fonts instead of EOT fonts."PermalinkCommentsfont text web webdesign microsoft browser safari ie css

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

ImpossibleFunky Productions: "I Will Kill George Lucas With A Shovel"

2008 Apr 10, 6:32"[Patton Oswalt's] comedy album, Werewolves and Lollipops is pretty friggin' brilliant, especially the track here -- "At Midnight I Will Kill George Lucas With A Shovel""PermalinkCommentspatton-oswalt humor starwars audio mp3

Search and Archive of Dave's Things

2008 Apr 7, 10:31

Photo of crates in a warehouse. Licensed under creative commons by Don Jones.I now have search and an archive available for my site. I previously tried to setup crappy search by cheating using Yahoo Pipes and now instead I have a slightly less crappy search that works over all of the content that I've produced on my blog, uploaded to flickr or youtube, or added to delicious.

You can now read my first LiveJournal blog post or, for probably much more entertainment value, view all the photos and videos of Cadbury by searching for 'bunny'.

The search is only slightly less lame because although it searches over all my content, I still implemented it myself rather than getting a professional package. Also, the feed supports the same search and archive as my homepage so you can subscribe to a feed of Cadbury if you're so inclined and just skip all this other boring stuff. My homepage and feed implement the OpenSearch response elements and I've got an OpenSearch search provider (source) as well.

PermalinkCommentstechnical search archive opensearch homepage

YouTube - Seattle Pillow Fight 2008 in Pike Place Market

2008 Apr 2, 6:29A pillow fight in Pike Place Market. "A group of web-connected friends converge at a specified location in the city and at a designated time produce previously concealed pillows and begin an awesome fight."PermalinkCommentsflash-mob seattle washington pike-place-market pillow pillow-fight youtube video humor social via:swannman

Dinner with Goodwins at Icon Grill

2008 Mar 27, 9:33

The Goodwin family, except for Michelle who is taking a class trip to Washington DC and New York, was in Seattle this week. Sarah and I met up with them for dinner last night at the Icon Grill. I enjoy the Icon Grill in general and last night was no exception especially having dinner with the Goodwins which was a lot of fun. It was particularly cold and at one point snowed. The Goodwin's are seeing all the classic tourist attractions in Seattle some of which are depicted in the following 1962 Seattle's Worlds Fair postcard. The postcard is featured on Paleo-Future and unsurprisingly the 1962 Worlds Fair favored Seattle's Space Needle and monorail.

[Icon Grill front. Licensed under under Creative Commons. By Troy B Thompson][Seattle's Worlds Fair Postcard]

PermalinkCommentsicon grill life washington goodwins sarah seattle nontechnical

Extensible Markup Language (XML) 1.1 (Second Edition)

2008 Mar 18, 11:21End-of-line handling in XML. Spoiler: XML processor should normalize most newline character sequences to 0xA.PermalinkCommentsxml spec standard w3c unicode charset newline end-of-line

RFC 2231 MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations

2008 Mar 8, 11:44"This memo defines extensions to the RFC 2045 media type and RFC 2183 disposition parameter value mechanisms to provide ... a means to specify parameter values in character sets other than US-ASCII..."PermalinkCommentshttp http-header rfc standard reference ietf mime encoding charset language content-disposition

& Teller (iTricks.com Magic News, Magic Videos and Podcasts - Blog Archive - iTricks.TV Pick Of The Day)

2008 Mar 8, 10:48"remember Dawn Of The Dead? Did you ever wonder how that horrifying turn of events would effect Las Vegas? What about specifically Teller, of Penn and Teller?"PermalinkCommentsteller penn-and-teller video zombie humor sad via:boingboing

Windows Internet Explorer Testing Center

2008 Mar 5, 9:50"In conjunction with the Beta 1 release of Internet Explorer 8, we are posting a set of tests we are using to validate our interpretation and implementation of the CSS 2.1 specification. We are doing this so we can get some feedback from you, the web desiPermalinkCommentscss test w3c microsoft msdn ie browser ie8

best of craigslist : Survival Of The Fittest

2008 Feb 11, 7:07Whenever I get a package of plain M&Ms, I make it my duty to continue the strength and robustness of the candy as a species. To this end, I hold M&M duels.PermalinkCommentsvia:kris.kowal humor evolution candy m&m

HEMA - online winkelen

2008 Feb 6, 11:15A flash animated advertisement that starts as a regular website but turns into a kind of Rube Goldberg. I especially appreciate the automated scrolling.PermalinkCommentsadvertising animation art flash browser

HIMAGELIST Stream Size

2008 Jan 12, 2:26If you're like me you need to serialize an object that contains an HIMAGELIST via IMarshal for COM's marshalling. I could use ImageList_Write to actually write the HIMAGELIST to a stream for IMarshal::MarshalInterface, but I needed to know the size of the data that I was going to write for IMarshal::GetMarshalSizeMax. I thought I'd use HIMAGELIST_QueryInterface to get an IPersistStream pointer which works, but alas its implementation of IPersistStream::GetMaxSize just returns E_NOTIMPL. Ultimately I called ImageList_Write on a special stream that ignores the data passed to it and just records how much data is written to it. In this fashion I could get the size the HIMAGELIST would require when written to a stream.PermalinkCommentstechnical himagelist boring serialize imarshal com
Older EntriesNewer Entries Creative Commons License Some rights reserved.