123 karma · joined January 31, 2013
I've followed up with further comments there.
> If you have a better suggestions than using the Range header that will still allow clients to send multiple file chunks in parallel, I'd be very interested in it!
I don't see a way to support parallel transfers using only existing HTTP headers (without violating the HTTP spec). I would suggest maybe proposing a new header in the HTTPbis WG. For example, something like Available-Ranges that returns a ranges-specifier indicating the set of ranges that are avaiable.
This could possibly be returned as part of a 416 response when attempting to GET a file that isn't entirely available yet. A HEAD request would thus return the same thing.
> It's 100. We haven't specified GET requests yet, but a server could stream an upload in this case until all bytes have been received.
The reason I brought up a GET request is because "the metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the information sent in response to a GET request." (section 9.4 of RFC2616)
If you haven't got all 100 bytes yet, your GET request can't return a Content-Length of 100, thus your HEAD request shouldn't be returning 100 either.
I would have thought you would return whatever content you had available (hence the 70 bytes), but if you want to support parallel transfers, then a 416 error response indicating the available ranges might make more sense.
HTTP/1.1 200 Ok
Range: bytes=0-99
Content-Length: 0
But the Range header surely can't be used here, since it's a request header and this is a response. A Content-Range header wouldn't be any more appropriate, since you're not actually returning any content (of any amount). Do you really need this info in the response anyway? The sender knows what they sent, and either it was entirely successful (a 2xx response) or it wasn't.Also, if you're going to return a zero-length 200 response, you might as well use 204 No Content instead.
Then, when resuming an upload, you send a HEAD that returns the following:
HTTP/1.1 200 Ok
Content-Length: 100
Content-Type: image/jpg
Content-Disposition: attachment; filename="cat.jpg"'
Range: bytes=0-69
Again, you can't use the Range request header in a response. And the Content-Length should surely be 70, since that's how much content would be returned if this was a GET request. You could possibly include a Content-Range of 0-69/100 if the server wanted to communicate the expected file size, but I'm not convinced that's necessary and seems something of an abuse of that header.Finally, the response to the resumed PUT has the same problems as the first PUT response. It should probably just be a 204 No Content response - no Content-Length or Range headers required.
In the first picture, they're standing next to the lamp post near the tree (you can see the branches on the left). Also note the no stopping sign facing inwards.
In the last picture, they've moved further away from the finish line to the next lamp post - you can see the first lamp post and tree in the background. Also note the no stopping sign on the second lamp post is facing the road.
Less obviously, you can see the Slovakia flag, third to the left of the lamp post in the first picture. Harder to make out in the second picture, but it's clearly a white/blue/red tricolor.
There are also the Error classes (including OutOfMemoryError) that wouldn't automatically be caught, but there aren't many likely candidates there either.
For example if you had a very tall SVG image, you would constrain the height of the block that it was in, and set the overflow-style to paged-y. The browser would then provide some form of control for you to page vertically through the content in that block.
This stuff is currently documented in the GCPM module, but I suspect it will move somewhere else eventually.
I remember one of the tricks used by apps was to encrypt the code in some way, and rely on the DOS single-step interrupt to execute the decryption process as the code was run, one instruction at a time. The idea was to prevent static disassembly with the encryption while also discouraging run-time analysis (since a debugger would usually overwrite the single-step interrupt that fired off the decrypter).
I actually ended up writing my own TSR debugger that could step through such code by chaining the interrupts. It could also detect many of the self extracting compression formats and jump past the decompression stage on startup so you didn't spend the first 10 minutes trying to step through decompression code. I was quite proud of that app.
Then in the late 90s I moved on to Windows disassembly, when I became somewhat obsessed with uncovering the undocumented APIs in Windows 95. I even had a Geocities website where I used to publish some of my findings. The site is obviously gone now, but it's still mirrored in a few places.
In case anyone is interested, there's a mirror here: http://koti.mbnet.fi/vaultec/files/miscellaneous/undocw95/
Perhaps Unity apps aren't as widely used on older devices and thus the stats are skewed in favour of more recent versions of Android.
Then again, the Android dashboard data is collected from the Google Play Store, so it isn't a perfect representation of all Android users either.
hr {
background-image:
linear-gradient(left,rgba(195,195,195,0),rgba(195,195,195,1),rgba(195,195,195,0)),
linear-gradient(left,rgba(255,255,255,0),rgba(255,255,255,1),rgba(255,255,255,0));
background-position:0 0,0 1px;
background-repeat:no-repeat;
background-size:100% 1px,100% 3px;
border:0;
height:4px;
}
Fallback is non-existent for browsers that don't support linear gradients, but it has the advantage of automatically working with any background color.Not a criticism of the original solution - just offering an alternative approach to the problem.
The real problem was that not many people cared to subscribe to feeds, so it was considered a waste of space to have on the toolbar by default. It's easy enough to add back though...
http://support.mozilla.org/en-US/kb/customize-navigation-but...
The final editor's response explains the reasoning: "Change removed advice recommending use of h1 elements as the utline algorithm has virtually no implementations and as a result use of h1 elements flattens document outlines for users who actually consume the heading semantics. While use of elements of the appropriate rank for the section's nesting level is backwards compatible"
Exact wording: Sections may contain headings of any rank, but authors are strongly encouraged to use headings of the appropriate rank for the section's nesting level.
http://www.w3.org/html/wg/drafts/html/master/sections.html#h...