4

Would it be possible to have a hash of a sites icon so that you only have to download when it's changed. Or is this already implemented with HTTP cache or something like that (if it is could someone explain how you get the hash)?

Also could a link between the meta sites and their parent, like a parent_site_url or parent_site_name

(also meta stackoverflow's state is listed as normal, not linked_meta)

EDIT: Also the sites that are in beta, should their meta sites also be in beta it would make organizing a lot easier.

2
  • 1
    jonathon, you really should limit your feature requests to one per question as it really confuses the issue when people are commenting and voting. +1 for logo hash. Sep 5, 2010 at 1:00
  • To clarify, the particular feature request being declined is the hashing of image files. Sep 5, 2010 at 1:39

3 Answers 3

2

Actually, your browser does not download images on every request but perform a conditional request to the server using the If-Modified-Since header.
In case the image is not changed, the web server returns a 304 Not Modified status telling the client "resource you are requesting is not modified, use your cache :)".

1
  • Thanks, I thought I read something like this before (I think you wrote it as well) but couldn't remember where. Now to find out how to use this on objective-c :)
    – Jonathan.
    Sep 4, 2010 at 11:42
1

Wonderful idea! I'm getting tired of the bandwidth I waste everytime a logo needs to get retrieved.

Also, it would be nice if the /sites method was paged... it's getting kinda long.

5
  • logo hash is not a bad idea at all which would not break existing code but allow for extension of existing code. paging sites results is would break existing code and add no value. so +1/-1 = 0. ;-) Sep 5, 2010 at 1:06
  • @code: How would it 'break' sites? The default could be set to just return everything - which would match the current behavior. Sep 5, 2010 at 1:16
  • @code: Sidenote: meta.stackoverflow.com/questions/63483/… Sep 5, 2010 at 1:17
  • that is one (non-conventional) way to look at it. I don't like breaking conventions, but if it were implemented as you suggest, I wouldn't be opposed. Sep 5, 2010 at 1:35
  • @code: It's just a thought - I don't really think it'll be implemented until v2. Sep 5, 2010 at 2:01
0

Meta Stack Overflow is not, actually, a meta site in the api sense. It tracks reputation, and has a distinct set of user accounts from Stack Overflow.

Image hashing isn't really compelling, as you'd have to be polling /sites quite frequently to make use of it, which you shouldn't do. Rather, just pull the image down once a day* or so.

Clarifying the relationship between meta<->parent is already [status-planned].

You could also get clever and only pull images when something has happened that might signify a logo change. Things like: name changes, site_url changes, and state changes. Naturally the path to the logo itself changing would be a strong signal to invalidate your cache.

Per your edit, meta sites are always in the same effective state as their parent site by definition. So, Gaming Meta is in open_beta but Meta Server Fault is normal. This only really matters for closed_beta, as it restricts access to sites.

*As systempuntoout pointed out, you should be setting the If-Modified-Since header for those resources. Fetching them is outside of the API, so all the usual HTTP image caching tricks are valid.

7
  • (is that once a day per user or developer, I take that it's user). It's not only the bandwidth I'm worried about but the time it takes to download the logos (which ATM is thaat long but there will be many many more logos when the stackexhange sites come out of beta and stop using the same logo. I download them once the first rime the app is run and then I'd like to check at a certain interval(days not minutes) if they've been updated.
    – Jonathan.
    Sep 4, 2010 at 7:35
  • 1
    with close to 60 sites online and an unlimited number to come in the future, your conclusion that taking the small effort of providing a file hash is less compelling that forcing the developer to download an ever increasing number of files every day in order to assure currency is short sighted. Sep 5, 2010 at 0:59
  • Code poet, is that reference to my comment or Kevin's answer? kevin, I mean in the returned results, Gaming Meta's state is linked_meta, there's no way to distinguish between Meta Serverfault and Gaming Meta, in terms of state. Couldn't the gaming Meta have a state like Linked_meta_open_beta or something.
    – Jonathan.
    Sep 5, 2010 at 7:09
  • 1
    @Jonathan - no, because the meta site will always have the same effective state as the parent site, it shouldn't be duplicated like that. In the future it will be easier to tell which site is the parent site, which is a little annoying right now. Sep 5, 2010 at 7:47
  • But if you want to remove all the beta sites, then it would be much easier to remove all the sites whose states contain "beta", rather than checking upon each meta whether it's parent site (which as you said could be easier) is in beta and then removing it. Couldn't each normal site have a meta_site (or sub_site) property which is an array, and the array contains what the meta sites currntly do. So in the list of sites you don't get the meta sites at all. The meta sites aren't just linked to the parent, but actaully inside the parent.
    – Jonathan.
    Sep 5, 2010 at 15:32
  • Or rather, like there's /users on normal api sites which list all the users and then theres /users/{id}, on the stackauth there could be sites/{state}
    – Jonathan.
    Sep 5, 2010 at 15:34
  • @jon - first, to get my attention on a post that is not mine, use @code. And my response was to kevin (thus no @jon ;-o). Sep 5, 2010 at 19:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .