Take the 2-minute tour ×
Stack Apps is a question and answer site for apps, scripts, and development with the Stack Exchange API. It's 100% free, no registration required.

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.

share|improve this question
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. –  Sky Sanders Sep 5 '10 at 1:00
    
To clarify, the particular feature request being declined is the hashing of image files. –  Kevin Montrose Sep 5 '10 at 1:39
add comment

3 Answers 3

up vote 2 down vote accepted

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 :)".

share|improve this answer
    
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 '10 at 11:42
add comment

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.

share|improve this answer
    
(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 '10 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. –  Sky Sanders Sep 5 '10 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 '10 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. –  Kevin Montrose Sep 5 '10 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 '10 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 '10 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). –  Sky Sanders Sep 5 '10 at 19:15
add comment

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.

share|improve this answer
    
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. ;-) –  Sky Sanders Sep 5 '10 at 1:06
    
@code: How would it 'break' sites? The default could be set to just return everything - which would match the current behavior. –  Nathan Osman Sep 5 '10 at 1:16
    
@code: Sidenote: meta.stackoverflow.com/questions/63483/… –  Nathan Osman Sep 5 '10 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. –  Sky Sanders Sep 5 '10 at 1:35
    
@code: It's just a thought - I don't really think it'll be implemented until v2. –  Nathan Osman Sep 5 '10 at 2:01
add comment

You must log in to answer this question.

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