Old avatar displaying




  • Discourse touched me in a no-no place

    Hmmm? O_o


  • Banned

    We like to complain about using a FORUM as a bug tracker, but can your bug tracker do this?



  • Because we don't use user id's to establish who the avatar quote comes from and just recycle the current avatar...?


  • Banned

    @Matches said:

    Because we don't use user id's to establish who the avatar quote comes from and just recycle the current avatar...?

    Because we cache avatars forever, that way you don't need to check with the server every time your browser encounters an avatar...



  • I feel like maintaining some kind of list... that contains usernames, and the date of last profile change (related to things like avatars) could be stored and passed around using some type of magical language, like json... that the client could check against the users in the thread... and see if any requeries are required... And if passing around the object is too much for every post (because lets face it, it would be) - having this as some type of periodic poll, maybe as part of other normal software functionality looking for deltas since a time...


  • Banned

    Our general approach here is a regular "rebake" of old posts, that way we can correct markdown bugs, images, out-of-date oneboxes and so on.

    Lots of stuff can change over time.

    We already have a "markdown" version thing and a mechanism to kick off updates, I think every major release will bump it up.



  • You know you don't even need that, right? Seriously, I haven't seen a case of NIH syndrome this badly in years.

    Also, the helpdesk software I wrote could have videos in both the ticket and replies if you so desired, depending on whether the base forum package was similarly installed.



  • It's not like you could have a /Users/Profile/Avatar/currentavatar.png, that just wouldn't make sense. There's no JSON or anything involved.



  • Well, if you have /Users/Profile/Avatar/timestamp.png, you don't have to wield JSON but you get stuck with browser caching.

    Oh wait, I got it... whatever XML you store the user's details in to catch that their password is hunter2, you can even store the timestamp there so when you parse that XML to find their current username, you can even store the timestamp or or wait for it... FILE_NOT FOUND.

    In all seriousness, there is one serious perk to doing that lookup, and that's if you're dealing with a user who deleted their account but not their posts, and that's a legitimate concern as there are parts of Europe that mandate personally identifying information must be stripped if a user demands it. So it's quite possible that an account might have to disappear (along with avatar)... I wonder how Discourse handles that.



  • From what I've seen, Europe doesn't appear to be the target market.



  • From what I've seen, low traffic forums that stay firmly on niche appear to be the target. Ironically this is a rather niche target market...


  • Banned

    @Arantor said:

    In all seriousness, there is one serious perk to doing that lookup, and that's if you're dealing with a user who deleted their account but not their posts, and that's a legitimate concern as there are parts of Europe that mandate personally identifying information must be stripped if a user demands it.

    Well we should be nuking the old avatar from the server when a new one is uploaded, I may even have permanent redirect logic for such cases.

    But... if you are saying ... cache nothing client site EVER cause you need 100% recall on any image you put out there, I am not really sure I agree.



  • @sam said:

    But... if you are saying ... cache nothing client site EVER cause you need 100% recall on any image you put out there, I am not really sure I agree.

    Yeah, I could see that causing a big performance hit on client side.



  • If only that were what I was saying, which it isn't. Please remember: I came from another forum software, this is a problem that was solved years ago. Albeit it's doing a pagination thing.

    So you get some posts. Presumably you're getting some user details at the point of getting those posts. If you're pretending that you never have guest posting, you're backing yourself into a corner if you ever delete user accounts without deleting the accompanying posts.

    Anyway. You have user data. You fetch user data with a post. Additionally fetch a timestamp which would be part of the filename - or file id or whatever it is that uniquifies the URL and shove that to the user.

    Then you let the server serve that URL with a long-life cache because it's unique to that avatar.

    Since you're already doing a database round trip to get the user information for the people who have posted - you're delivering a slice of the topic and fetching the relevant details for them... when dealing with quotes, you could fetch the details of who is being quoted and fetch their avatars as part of the same query (since ideally, fetching user data and fetching post data should actually be decoupled at the query level, fewer is not necessarily better)

    Of course, since I gather this stuff can be stored in the baked version of posts, you may be stuffed in any case, which makes me wonder why you're actually storing it in the baked version in the first place, rather than storing the quoted user(s) in post meta data, which would be the sane thing to do if you want to do anything other than simply showing the name...



  • @Arantor said:

    Really long post ...

    I think I can summarize in a tl;dr:

    You have the post in the database. Based on the way editing works, it appears that you aren't storing the fully baked version of the post, so you are already doing some processing before serving to the client. Why not get the path for the quoted user's current avatar at the same time? There shouldn't be a need for additional trips to the database.



  • No, you need some additional information from the database since you can't just get /username/currentavatar.png because that URL will be cached by the browser. So you have to have some unique element in the URL to prevent the browser caching an old avatar under the same URL.

    You already have to do this lookup anyway for post author->avatar, I'm just talking about tweaking that process.



  • Except that @sam already stated that when you update your avatar, it gets a unique URL. So the method I described would work.

    @sam said:

    This is so weird, we give you a brand new URL,

    http://what.thedailywtf.com/user_avatar/what.thedailywtf.com/abarker/45/3084.png

    3084 is the unique id for your upload.



  • Yes. but you don't put that unique information everywhere that the avatar would be called for. You have to get the URL when getting that information...



  • @abarker said:

    it appears that you aren't storing the fully baked version of the post

    Considering what they've said elsewhere (can't find where, obviously), I have to assume otherwise. I think they are storing the raw and "cooked" versions of the post, hence why at one point I recall @sam talking about having to re-cook posts due to changing something with their Markdown renderer.



  • If that is the case, there should be some sort of rule on the back-end that re-bakes quotes of a user when they change their avatar.



  • How do you find all the places a user was quoted? If you're storing that as meta-data that you can leverage, you don't need to rebake it in the first place...



  • That would be rather excessive at the server level. But having a daily/weekly job would be more appropriate.



  • I doubt it. I don't think most people are changing their avatars all that frequently.

    Filed Under: I'm and edge case



  • Sure, most people don't. But if you're rebaking all quotes/replies, even having only a few hundred users who occasionally modify their avatar results in a lot of things needing to be changed.



  • Because this is a problem that has never occurred before at all and could not in any way have been mitigated with smarter design?



  • @Matches said:

    Sure, most people don't. But if you're rebaking all quotes/replies, even having only a few hundred users who occasionally modify their avatar results in a lot of things needing to be changed.

    True, But if you're dealing with a forum, there's a decent chance that the membership is international. So when is a good down time to schedule such a job? Unless you have a maintenance time specified on your site, there is no good time. You end up running a probably massive job all at once, and slowing the whole site, instead of just doing a potentially massive job right at the time of the change.

    Really, I think the "when" could be argued with no real resolution. I think it just comes down to preference.


    Filed Under: FFS, get rid of the damn bugs background!



  • @abarker said:

    FFS, get rid of the damn bugs background!

    Custom styles work in the meantime:

    body.category-16 { background-image:none; }
    

    But yes, that background is really god damn annoying.



  • And of course there is no way to break such a task down into pieces and do each piece over time.


  • ♿ (Parody)

    Does anyone know who put that on there?



  • @boomzilla said:

    Does anyone know who put that on there?

    Based on the below quote, I suspect it was @PJH.

    @PJH said:

    @boomzilla said:
    OK, so it was a local admin or something? @apapadimoulis / @PJH / @dhromed ?

    Hello!


  • ♿ (Parody)

    @abarker said:

    Based on the below quote, I suspect it was @PJH.

    Yeah, he kind of left it ambiguous, and I wasn't sure if he wasn't just responding to my summons.


  • Discourse touched me in a no-no place

    I'll take it off. Though given the fact that the only place it appeared when I added it was on the catergory post-list and not on posts themselves, I think it may take a while to disappear.....


  • ♿ (Parody)

    Hard refresh got 'er done. Thanks!



  • Grazie!


  • Discourse touched me in a no-no place

    Just need to find something more annoying to replace it with now....



  • @PJH said:

    Just need to find something more annoying to replace it with now....





  • It burns!!


  • BINNED

    I think that suggestion should be in the Evil ideas thread


  • BINNED

    Also: I didn't have any problems with my avatar change.



  • @Luhmann said:

    Also: I didn't have any problems with my avatar change.

    Unfortunately. 😬



  • @Luhmann said:

    Also: I didn't have any problems with my avatar change.

    Hmmm ... I see a massive problem right here:

    Typing

    Page refresh

    Aaah, that's better:

    For those interested (and able), the custom CSS involved is below. It will affect all* instances of @Luhmann's avatar, and only @Luhmann's avatar.

    img.avatar[title="Luhmann"] {
        -webkit-filter: blur(10px);
    }
    

    *With the exception of on quotes. Next to his post and In Reply To only, I'm afraid.

    Edit: To completely get rid of that offensive avatar, you can modify the CSS as shown here:

    img.avatar[title="Luhmann"],img.avatar[src="/user_avatar/what.thedailywtf.com/luhmann/40/3390.png"] {
        -webkit-filter: blur(10px);
    }
    


  • After all the hard work I poured into my avatar, it doesn't even show next to my (3) old posts.
    Will it show next to my new posts, I do wonder?

    (EDIT: nope!)

    (EDIT2: And now it shows for all posts, possibly because I messed around in my settings page a bit? Crisis averted. I can go back to lurking.)


  • :belt_onion:

    @created_just_to_disl said:

    (EDIT2: And now it shows for all posts, possibly because I messed around in my settings page a bit? Crisis averted. I can go back to lurking.)

    It just takes a while for Dicsourse to get on with its job and clear its own cache because they refused to just overwrite the existing image... despite the fact that they then go and change every old avatar link to point to the new one.



  • Consistent inconsistency. Everyone loves Discourse.



  • @Arantor said:

    Consistent inconsistency. Everyone loves Discourse.

    No! I don't want to love Dicsourse! You can't make me!

    Wait ... What's that? Is that a tranq gun? Just try to hit me!

    [hiss of tranq gun]

    [thud]

    💤

    @kodingwhorror
    Let the work begin.

    Hours Later

    Discourse is my friend.



  • @abarker said:

    Discourse is my friend.

    "He gazed up at the enormous face. Forty years it had taken him to learn what kind of smile was hidden beneath the dark moustache. O cruel, needless misunderstanding! O stubborn, self-willed exile from the loving breast! Two gin-scented tears trickled down the sides of his nose. But it was all right, everything was all right, the struggle was finished. He had won the victory over himself. He loved Big Brother."



  • @Maciejasjmj said:

    "He gazed up at the enormous face. Forty years it had taken him to learn what kind of smile was hidden beneath the dark moustache. O cruel, needless misunderstanding! O stubborn, self-willed exile from the loving breast! Two gin-scented tears trickled down the sides of his nose. But it was all right, everything was all right, the struggle was finished. He had won the victory over himself. He loved Big Brother."

    I knew my story seemed familiar ...



  • We've always been at war with Eastasia.


Log in to reply