- we don't need to resize images. canvas can do that for us
- we don't need to use `scale(-1, 1)` to draw flipped
- most of the old/new skin format shares the same code
- we can draw the skin image directly on the canvas
@Jake0oo0 fyi
We haven't changed anything on our 3D renders since we first introduced them.
They still have rendering glitches, they still don't render the jacket layer,
they still don't support alex-type skins.
Telling people this is no longer beta (@2515575) doesn't seem like a good idea.
human_status (response.js) defines code -2 as 'user error'. 404 is definitely a user error, so using that makes sense.
eventually we should change the whole status code thing with #120
unfortunately we can't use stream pipes because we need to generate
a hash of the content for the Etag.
I think proper caching (i.e. Etag) is very important
when using cache.save_hash, an `undefined` skin or cape hash means "do not touch"
while `null` means "overwrite as non-existent"
this was sent to redis after calling /capes/Notch for the first time:
"hmset" "notch" "c" "3f688e0e699b3d9fe448b5bb50a3a288f9c589762b3dae8308842122dcb81" "t" "1429651244222"
"hmset" "notch" "s" "a116e69a845e227f7ca1fdde8c357c8c821ebd4ba619382ea4a1f87d4ae94" "c" "" "t" "1429651244235"
as you can see, the first request stores the c(ape) but does not touch the s(kin), whereas the second request
sets the s(kin) and replaces the c(ape) value
- made sure that get_cape returns a status
- response.js returns 404 if body is empty
- 'X-Storage-Type: undefined' is no longer returned when status is `null`