unless we're talking about light amplification by zimulated emission of radiation, which sounds like a crazy german professor's invention... so it could be!
Do they have accessibility guidelines specific for web comics though? :)
2013-02-14 04509, 2013
Freso
http://www.w3.org/TR/WCAG20/#text-equiv " Guideline 1.1 Text Alternatives: Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language."
2013-02-14 04539, 2013
Freso
That seems to cover it pretty well. :)
2013-02-14 04511, 2013
JonnyJD
logically: yes. I was looking for some kind of syntax/api/naming scheme for that
2013-02-14 04541, 2013
JonnyJD
but maybe there is no such thing
2013-02-14 04501, 2013
Freso
I don't think there is.
2013-02-14 04513, 2013
Freso
The closest thing would be to include it in the alt="" element.
2013-02-14 04521, 2013
Freso
But I guess you quickly enter into browser compatibility issues with that, if you wish to support older versions of a certain browser, which IIRC didn't deal well with alt attributes more than a certain length. (Given how some XKCD comics can be somewhat long-ish.)
2013-02-14 04553, 2013
JonnyJD
and you probably don't want the whole description to fill the screen when your mouse lands on the image
2013-02-14 04507, 2013
Freso
Well, that should be the title attribute used for that. :)
2013-02-14 04528, 2013
Freso
(Which he's also using as part of the comic itself.)
2013-02-14 04543, 2013
Freso
But old(er) browsers may have different behaviour.
2013-02-14 04538, 2013
JonnyJD
oh right, that's the title. I seem to have forgotten that in the last years.. I am sure I checked that at some time
2013-02-14 04532, 2013
JonnyJD
oh well, time to go to bed
2013-02-14 04519, 2013
_flow_ joined the channel
2013-02-14 04523, 2013
Freso has been in bed the whole day
2013-02-14 04536, 2013
Freso
It's not good for me to have tatl back in function. :|
2013-02-14 04510, 2013
ruaok joined the channel
2013-02-14 04513, 2013
adrianw joined the channel
2013-02-14 04529, 2013
MBJenkins
* Ian McEwen: MBS-5759: make 'Reorder Cover Art' an autoedit
2013-02-14 04530, 2013
MBJenkins
* Ian McEwen: MBS-5520: remove extra level of indirection for some links whose text needs to be translated along with their containing string
2013-02-14 04531, 2013
MBJenkins
* Ian McEwen: Update mb_server.pot
2013-02-14 04532, 2013
MBJenkins
* Ian McEwen: Update translations from transifex.
2013-02-14 04550, 2013
ianmcorvidae
apparently I suck at writing non-test-breaking patches lately
2013-02-14 04555, 2013
ianmcorvidae
(it's running again though :P)
2013-02-14 04541, 2013
MBJenkins
Ian McEwen: MBS-5759: add proper includes to unbreak tests
2013-02-14 04549, 2013
ianmcorvidae
or not :P
2013-02-14 04505, 2013
MBJenkins
Ian McEwen: MBS-5520: Escape dollar sign in template to unbreak tests.
2013-02-14 04546, 2013
Prophet5 joined the channel
2013-02-14 04524, 2013
warp
hello!
2013-02-14 04515, 2013
ianmcorvidae
bah, 3scale's docs are not what I'd like them to be :/
2013-02-14 04521, 2013
ianmcorvidae
well, really, it's more that they have a bunch of mutually-incompatible options for doing what should be the same thing
2013-02-14 04558, 2013
ianmcorvidae
you can use a language plugin, varnish, or nginx -- each language's plugin has a different set of features actually implemented, the varnish plugin has a different set, and the nginx stuff seems to be yet another set
2013-02-14 04536, 2013
ianmcorvidae
and most of this you can only find out by reading the code!
2013-02-14 04544, 2013
ianmcorvidae
of course, the specific thing I was hoping to do appears to be available only (in the places I've deciphered enough to find out) in the PHP language plugin
2013-02-14 04521, 2013
ianmcorvidae
(so neither the perl nor the varnish options -- haven't figured out how the nginx thing works at all yet, though I know it uses nginx features we don't have, so we'd have to replace our nginx on the frontends...)
2013-02-14 04525, 2013
ianmcorvidae
</rant>
2013-02-14 04558, 2013
warp
ianmcorvidae: sounds fun.
2013-02-14 04522, 2013
ianmcorvidae
heh, something like that :)
2013-02-14 04531, 2013
warp
ianmcorvidae: how complicated are those plugins?
2013-02-14 04555, 2013
ianmcorvidae
the varnish one is not something I'd be fond of dissecting, especially since it's in C, which I don't really know
2013-02-14 04523, 2013
warp
knowing C doesn't make dissecting any more fun :)
2013-02-14 04526, 2013
ianmcorvidae
the perl one is very straightforward and could probably be extended to do what I want, but I'm not sure about writing more perl or if that's the proper place to be doing things (especially since it might make caching of responses less than possible)
2013-02-14 04547, 2013
ianmcorvidae
well, it possibly makes it at least more plausible as a route forward :)
2013-02-14 04514, 2013
ianmcorvidae
my thinking is I may just see if I can interact with a real person at some point
2013-02-14 04522, 2013
warp nods.
2013-02-14 04529, 2013
ianmcorvidae
the basic issue is that, at present, the varnish stuff is basically written such that we would only be able to know "they're authorized" vs. "they're not authorized", which means we could only have one sort of plan, which seems like bad forward-thinking :)
2013-02-14 04524, 2013
warp
it doesn't come with any sort of identifier of who is being authorized?
2013-02-14 04500, 2013
ianmcorvidae
it would pass along an application ID, but without another query to them from the perl (meaning we request from them twice per request) we don't know what plan that corresponds to
2013-02-14 04527, 2013
ianmcorvidae
the authorize/report endpoint we're using does return the plan, but it doesn't seem to be available via the 3scale plugin at all
2013-02-14 04500, 2013
ianmcorvidae
though, hm, I may be able to pass along the entire XML response from the authrep endpoint
2013-02-14 04509, 2013
ianmcorvidae
wonder if there's a character length on HTTP headers
2013-02-14 04512, 2013
ianmcorvidae
limit*
2013-02-14 04547, 2013
warp
ianmcorvidae: i'm also thinking how this ties into more flexible rate limiting for non-paying (but authenticated) webservice clients
2013-02-14 04508, 2013
ianmcorvidae
I think some of my other changes will help there
2013-02-14 04558, 2013
ianmcorvidae
we're moving more of that logic to the ratelimiter -- so mb-server just passes along some basic info (what's being requested, what IP they're requesting from, what user-agent, 3scale information) and the ratelimiter decides what keys to use
2013-02-14 04554, 2013
warp
ianmcorvidae: ok. if customers paying for webservice access want to be authenticated on musicbrainz, do they seperately authenticate to 3scale and MB, or is that just not supported, or something else?
2013-02-14 04529, 2013
ianmcorvidae
so, they sign up for an account (semi-fuzzy what sort of account that is, at present, though I think what we're doing is treating everyone as an "app developer") with 3scale
2013-02-14 04547, 2013
ianmcorvidae
then, when they request from us, they put on some X-whatever headers to pass along their info, which we then use to query 3scale
2013-02-14 04519, 2013
ianmcorvidae
where what we're asking 3scale is basically "hey, who is this key/application ID, are they paid up, and what bucket do they go in?"
2013-02-14 04530, 2013
warp
ah, ok
2013-02-14 04545, 2013
ianmcorvidae
user auth for MB itself just works as usual
2013-02-14 04553, 2013
warp nods.
2013-02-14 04523, 2013
ianmcorvidae
and then obviously anything without the X- headers just gets put in the global/normal bucket
2013-02-14 04537, 2013
ianmcorvidae
with the current thing we can't get the "who is this" or "which bucket" answers, and there's no distinguishing "they're not paid up" from "they didn't try to authenticate"
2013-02-14 04500, 2013
ianmcorvidae
not sure the second distinction matters, but if we want to have, say, a user-level tier and a commercial tier, we need the first :/
2013-02-14 04502, 2013
warp
our ratelimiter is currently perl? are we moving that to something else?
2013-02-14 04557, 2013
ianmcorvidae
it's currently perl, I don't know if we have plans to move it
2013-02-14 04505, 2013
ianmcorvidae
I certainly don't see much need to rewrite it, I guess
2013-02-14 04537, 2013
warp
so the varnish/nginx plugin which pings 3scale would just set additional headers for the ratelimiter to act on, correct?
2013-02-14 04519, 2013
ianmcorvidae
yeah -- at present it just keeps the app ID/app key headers intact if the authorization works, and removes them if it doesn't
2013-02-14 04550, 2013
ianmcorvidae
but ideally, I think, it should set an X-3scale-plan (or something) header as well
2013-02-14 04502, 2013
ianmcorvidae
and obviously mbserver needs to pass along those headers to the ratelimiter, but that part's easy
2013-02-14 04554, 2013
warp
I think I would prefer that functionality to be part of the ratelimiter itself, that would focus all the ratelimiting bits in one place.
2013-02-14 04556, 2013
ianmcorvidae
and if we care about distinguishing "not paid up" from "didn't authenticate", it should never remove headers, but add some sort of X-3scale-authorized header (obviously all names are completely non-final)
2013-02-14 04513, 2013
ianmcorvidae
hm
2013-02-14 04530, 2013
ianmcorvidae
as in, pass everything through the whole way, and have the ratelimiter do the ping to 3scale?
2013-02-14 04531, 2013
warp
but then it seems almost a requirement to re-implement the ratelimiter in something faster/better, like nodejs or haskell.
2013-02-14 04544, 2013
warp
ianmcorvidae: yes.
2013-02-14 04506, 2013
warp
ianmcorvidae: well, I imagine nginx pinging the ratelimiter, not mbserver.
2013-02-14 04524, 2013
ianmcorvidae
ah -- that's not how it currently works
2013-02-14 04529, 2013
warp
I know :)
2013-02-14 04532, 2013
ianmcorvidae
mbserver / the search server are what call out to the ratelimiter :)
2013-02-14 04552, 2013
ianmcorvidae
heh
2013-02-14 04556, 2013
warp
sure, but that seems wrong. if someone is going to be denied access because they're over the limit, that shouldn't touch mbserver.
2013-02-14 04509, 2013
ianmcorvidae
that may actually basically be what their nginx thing does -- I know it requires the Lua plugin, so
2013-02-14 04549, 2013
warp
but 'over the limit' is more than just what 3scale thinks, because we have non-paying clients which need to be limited in various ways too.
2013-02-14 04515, 2013
ianmcorvidae
except their nginx thing assumes you're using 3scale's ratelimiting, which we aren't since not everything will need to hit them at all
2013-02-14 04516, 2013
ianmcorvidae
still, that may be the way to go -- move the ratelimiter to be lua code running in lenny/carl's nginx
2013-02-14 04534, 2013
ianmcorvidae
yeah, exactly
2013-02-14 04554, 2013
ianmcorvidae
that's what I mean by "their thing assumes you're using 3scale's ratelimiting"
2013-02-14 04557, 2013
warp
I wouldn't pick lua, but yes, the architecture of mbserver querying the ratelimiter seems wrong.
2013-02-14 04516, 2013
ianmcorvidae
well, lua is just the way that it can just be part of nginx directly
2013-02-14 04535, 2013
warp
yes, I know :)
2013-02-14 04544, 2013
ianmcorvidae
afaik nginx basically only has perl and lua integrated modules, so given *those* choices, lua :)
2013-02-14 04558, 2013
ianmcorvidae
I do like the workflow that creates: if something will be denied, it gets denied early in the process; updating ratelimiter configuration mostly just requires a HUP to nginx
2013-02-14 04501, 2013
warp
sure. so I wouldn't pick nginx for that part, because I don't want write perl, lua or C.
2013-02-14 04532, 2013
ianmcorvidae
yeah; I don't know how well nginx supports querying a separate service for something like this
2013-02-14 04501, 2013
ianmcorvidae
which I think may be part of why it's not currently done with nginx being the step that calls the ratelimiter
2013-02-14 04537, 2013
ianmcorvidae
(it's possible that the only way to get nginx to make an HTTP request in that way is to use Lua anyway)
2013-02-14 04550, 2013
ianmcorvidae
(er, well, HTTP or UDP or whatever)
2013-02-14 04554, 2013
warp
hm? that shouldn't be too hard
2013-02-14 04517, 2013
warp
I think you can use the regal fallback stuff.
2013-02-14 04531, 2013
ianmcorvidae
not quite sure what you mean -- I don't know a way to have nginx do something like "query this endpoint, and depending on the response either return 503/429 or proxy to <load-balanced upstream>"
2013-02-14 04512, 2013
warp
I could be wrong, my experience with nginx is limited, what I'm thinking of is: