Azure Jane Lunatic (Azz) 🌺 (
azurelunatic) wrote in
dw_dev2010-06-21 09:57 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[site community profile]](https://www.dreamwidth.org/img/comm_staff.png)
Entry tags:
Code tour: June 15, 2010 - June 21, 2010
This week's code tour is sponsored by that container of M&Ms with chocolate covered espresso beans mixed unexpectedly into it, which is apparently a key part of my personal observation of the Solstice. (Happy Summer Solstice to the Northern hemisphere; Happy Winter Solstice to the Southern hemisphere.)
This week's code tour is heavy on the small back-end stuff. It is dominated by
kareila, who has 10 patches to her name.
fu was mostly engaged in review, but nonetheless managed 5 patches of her own.
ninetydegrees comes in next with three patches.
denise has one patch, initial work on another before
kareila handled it, and one large stack of paperwork.
allen and
exor674 each have one patch.
maiden contributed some pretty images, and so did
sinaienantia.
Thanks also to everybody else who made this possible, including (but not limited to)
mark,
domtheknight holding the flag in Support,
zarhooie helping explain things, and the squad in IRC cheering everybody on.
[Edited to add: Oh, right, this stuff won't be live until the next code push; code pushes are generally announced before they happen in
dw_maintenance, and then right as they're happening on twitter, @dreamwidth.]
Bug 2086: Latest Things by tag duplicates entries if more than one tag is used
Category: Misc UI/Frontend, Latest Things, tags
Patch by:
fu
Description:
zarhooie explains: "If an entry is tagged nanowrimo or nnwm09, it will show up in the Latest Things by tag feed: http://www.dreamwidth.org/latest?feed=nnwm09
However, if an entry is tagged both nanowrimo AND nnwm09, it will show up twice."
Bug 2660: re-sync CLAs with list
Category: Bugzilla, administrative details
Headbanging by:
denise
Description: Dreamwidth is a Free/Libre Open Source Software project, and uses contributions from its users. In order to keep things aboveboard and sane, Dreamwidth keeps a Contributor License Agreement on file for everybody who contributes in a way that goes into the open source project. If you're thinking "Hey, wait, everyone who's had a patch accepted has to send/fax/email in a signed statement saying it's OK to put that patch into the FLOSS project? Isn't that a lot of people? Sounds like an administrative nightmare to keep track of!" then you're bang on the nose. This is one of those things that only
denise (or possibly her wife) can do, because she's the one who gets sent the physical paperwork. It has to be re-done every now and then, because more people show up and send in their paperwork.
Bug 356: Resubscribing to an inactive subscription results in multiple subscriptions
Category: APIs (RPC, XML, Flat), subscriptions, making things work
Patch by:
kareila
Description: This is a stupid hairy bug, and I remember having someone (possibly
aveleh, or maybe
fu) explain it to me in increasingly smaller words when it was causing problems on LiveJournal.
Here's the setup: You subscribe to something (say to new comments on a particular entry that's got a good discussion going). Then you decide you don't want to get notified of this anymore (maybe you're going on vacation and people are chatty), so you unsubscribe. The subscription is not deleted, but inactive. So far, so good. But maybe something makes you want to re-subscribe (you come back from vacation, read the backlog, and prepare for the inbox torrent), and you do so.
Instead of doing the smart thing, finding the existing inactive subscription, and reactivating it, it was creating a second subscription, and then getting massively confused and not allowing edits to the subscription (say you wanted to stop the torrent of emails but still get notification in your inbox). (If you subscribed again, it would create a third duplicate subscription, and so on.) You'd have to completely delete the subscription (of course, it wouldn't allow you to just delete one copy, it hosed all of them) and subscribe again to be able to make it work.
This fixes that: once this goes live the proliferating duplicate uneditable subscriptions will be a thing of the past.
Bug 1958: Remove ToS agreement code
Category: Misc UI/Frontend, making things simpler, fetch the code-machetes
Patch by:
kareila, with initial work by
denise.
Description: While in theory the ability to make all users agree to the changed Terms of Service every time someone updates it would be useful to some site out there, we don't use it, we don't need it, and out it goes!
Bug 2659: fix skipped modules in t/00-compile.t
Category: Misc Backend, making testing work properly
Patch by:
kareila
Description: There were a bunch of things that were skipped in this particular test. This will make things work better and more completely.
Bug 2714: rename userinfo.bml to profile.bml
Category: Misc Backend, updating stuff
Patch by:
ninetydegrees
Description: We don't call it the userinfo anymore, and actually neither does LiveJournal. This primarily helps new, lost developers looking for the file that builds the profile so they can make changes to it. Who'd think to search for "userinfo" if you want to work with "profile"?
Bug 1227: Crossposter fails when cut text attribute contains certain HTML entities
Category: Crossposter, WTF encoding, simple pictures are best
Patch by:
allen, troubleshooting in comments from
fu,
mark, and
jld
Description: Crossposts with various entities in the cut text were failing. There were various forms of trying to figure out how it broke and how best to fix it before
allen declared: "Hey, here's an idea: instead of screwing around with re-encoding the decoded attributes from the parser, and trying to figure out exactly how the decoded – differs from a literal –, how about if we just tell the parser NOT TO
DECODE THEM IN THE FIRST PLACE? *sigh*" Best idea ever! Very glad to have you developing for us, sir.
Bug 5: Add "current mood of service" toy
Category: silly fun stuff
Patch by:
exor674; pretty images by
maiden.
Description: A silly/fun thing harking back to an old LiveJournal office toy: this takes the moods of recent entries from the Latest Things, ranks them on happy to sad, and displays the averaged mood of the service on the site map and Latest Things page.
Bug 103: Refactor default email change actions
Category: Misc Backend, user email address handling
Patch by:
kareila
Description: Code for Doing Stuff when someone changed their email address was all over the place, repeated several different times on the back end. It's good to have stuff like this in only one place, so that when stuff changes, it either breaks or it doesn't (rather than one of them breaking and the rest not). Other stuff had started in this direction, and this finishes it.
Bug 1525: privilege function cleanup
Category: Misc Backend, privs, cleanup
Patch by:
kareila
Description: Who would have thought that cleaning up some of the code dealing with privs would be so hairy?
Bug 2644: User.pm function to count accounts
Category: Misc Backend, administrative tools
Patch by:
kareila
Description: Sometimes it's necessary for the owners to know how many accounts are registered to a particular email address. More backend work to make this happen.
Bug 2651: remove LJ::get_bio
Category: Misc Backend, cleanup, we aren't LJ
Patch by:
kareila
Description: Back-end cleanup.
kareila explains: "This patch removes LJ::get_bio, cleans up the code in $u->bio and also $u->set_bio (which was out of order in the file), and adds a $u->has_bio method."
Bug 2693: LJ::Talk::js_quote_button
Category: Misc Backend, the comment quote button
Patch by:
kareila
Description: Again,
kareila says it best in the comments to the bug: "Because duplicated code makes me twitch and is harder to maintain, this creates a function for generating the javascript function for the quick quote button, which is largely identical in the two places it is needed."
Bug 2700: remove LJ::nodb
Category: Misc Backend, fetch the code-machetes
Patch by:
kareila
Description: See obsolete function. See obsolete function one too many times. Rip obsolete function out. ...Rip a little more carefully.
Bug 715: distinguished collapsed comments from screened/deleted/suspended comments
Category: Style System, doing things the sane way
Patch by:
ninetydegrees
Description: One would have thought that S2 would have distinguished between collapsed comments (which one can expand and otherwise manipulate), and deleted/screened/suspended-user comments (which, if one is not the journal owner/admin/comment owner, one can actually not touch with a ten-foot pole) before this, but one would have thought wrong.
Bug 2500: Update Funky Circles to use latest CSS3 properties
Category: Style System, the modern browser experience, people use browsers that are not Firefox
Patch by:
ninetydegrees
Description: If you were wanting border-radius, box-shadow, and -khtml- to be updated in Funky Circles, you're in luck, particularly if you use Opera or Konqueror. If you vaguely recognize that Funky Circles is a style, isn't it, you can smile and nod.
Bug 2720: /latest?feed=... doesn't work, if the tag_map doesn't contain the group name/feed name
Category: Misc UI/Frontend, Latest Things, Azz has a strange fascination with the vuvuzela
Patch by:
fu
Description:
fu had to explain this one to me, because there weren't many notes in the bug. This never actually affected Dreamwidth's proper functioning, but it got fixed anyway. If you tried to bundle together a couple tags into a feed, but none of those tags was the name of the feed, things would break. For example, if you shoved "soccer", "football", and "vuvuzela" into "worldcup" without also using "worldcup" as one of the tags, things would go badly. BZZZZZZZZZZZZZZ.
Bug 2728: Declaration of which themes are default/should go in the base category, is duplicated
Category: Style System, making things make sense
Patch by:
fu
Description: There was a bit of confusion, and this turned up the fact that there were two places to declare default/base category themes, and this was not actually easy to work with.
Bug 2729: Error when loading a journal page which has a list of tags (dev environment only)
Category: Tags, backend, we catch these things before they go live
Patch by:
fu
Description: There was an error in development with journal pages with a list of tags having an error; turns out that something that was doing checking had to be a little more careful about what it passed through, in case of undefined stuff.
Bug 2730: Using quick reply from a thread in custom comments pages does not return you to thread view
Category: Journal contents, making things make sense, your commenting experience
Patch by:
fu
Description: Don't you hate it when you're in a long comment thread on, say, the third page of a spirited discussion, you leave a comment, and you're bounced back to page 1 and you have to find your place again?
fu found why it was doing that (it was tossing you to ?thread=1, which is on the first page) and made it not happen.
Bug 2544: Navigation strip does not always show "Post to community" option
Category: Misc UI/Frontend, making the navstrip useful, community non-membership
Patch by:
denise
Description: If the community has open posting (anyone can post, even if they're not a member) the navstrip wasn't showing the option to post there, although that would have been particularly useful.
Bug 2048: new mood theme: Sina'i Enantia's Dreamy Ds
Category: Misc UI/Frontend, mood themes
Patch by:
kareila, mood theme by
sinaienantia.
Description: New mood theme incoming: "Sina'i Enantia's Dreamy Ds", consisting of the stylized 'd' from Dreamwidth's logo, filled in with different colors, patterns, and shadow colors to creatively interpret the various moods, including (perhaps my favorite) a simple black line outline in the shape of the 'd' for the 'blank' mood, and lavender with bright yellow lines crossing, reminiscent of asterisks or fireworks, for 'excited'.
This week's code tour is heavy on the small back-end stuff. It is dominated by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Thanks also to everybody else who made this possible, including (but not limited to)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
[Edited to add: Oh, right, this stuff won't be live until the next code push; code pushes are generally announced before they happen in
![[site community profile]](https://www.dreamwidth.org/img/comm_staff.png)
Features & Bugfixes
Bug 2086: Latest Things by tag duplicates entries if more than one tag is used
Category: Misc UI/Frontend, Latest Things, tags
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
However, if an entry is tagged both nanowrimo AND nnwm09, it will show up twice."
Bug 2660: re-sync CLAs with list
Category: Bugzilla, administrative details
Headbanging by:
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Description: Dreamwidth is a Free/Libre Open Source Software project, and uses contributions from its users. In order to keep things aboveboard and sane, Dreamwidth keeps a Contributor License Agreement on file for everybody who contributes in a way that goes into the open source project. If you're thinking "Hey, wait, everyone who's had a patch accepted has to send/fax/email in a signed statement saying it's OK to put that patch into the FLOSS project? Isn't that a lot of people? Sounds like an administrative nightmare to keep track of!" then you're bang on the nose. This is one of those things that only
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Bug 356: Resubscribing to an inactive subscription results in multiple subscriptions
Category: APIs (RPC, XML, Flat), subscriptions, making things work
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: This is a stupid hairy bug, and I remember having someone (possibly
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Here's the setup: You subscribe to something (say to new comments on a particular entry that's got a good discussion going). Then you decide you don't want to get notified of this anymore (maybe you're going on vacation and people are chatty), so you unsubscribe. The subscription is not deleted, but inactive. So far, so good. But maybe something makes you want to re-subscribe (you come back from vacation, read the backlog, and prepare for the inbox torrent), and you do so.
Instead of doing the smart thing, finding the existing inactive subscription, and reactivating it, it was creating a second subscription, and then getting massively confused and not allowing edits to the subscription (say you wanted to stop the torrent of emails but still get notification in your inbox). (If you subscribed again, it would create a third duplicate subscription, and so on.) You'd have to completely delete the subscription (of course, it wouldn't allow you to just delete one copy, it hosed all of them) and subscribe again to be able to make it work.
This fixes that: once this goes live the proliferating duplicate uneditable subscriptions will be a thing of the past.
Bug 1958: Remove ToS agreement code
Category: Misc UI/Frontend, making things simpler, fetch the code-machetes
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Description: While in theory the ability to make all users agree to the changed Terms of Service every time someone updates it would be useful to some site out there, we don't use it, we don't need it, and out it goes!
Bug 2659: fix skipped modules in t/00-compile.t
Category: Misc Backend, making testing work properly
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: There were a bunch of things that were skipped in this particular test. This will make things work better and more completely.
Bug 2714: rename userinfo.bml to profile.bml
Category: Misc Backend, updating stuff
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: We don't call it the userinfo anymore, and actually neither does LiveJournal. This primarily helps new, lost developers looking for the file that builds the profile so they can make changes to it. Who'd think to search for "userinfo" if you want to work with "profile"?
Bug 1227: Crossposter fails when cut text attribute contains certain HTML entities
Category: Crossposter, WTF encoding, simple pictures are best
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: Crossposts with various entities in the cut text were failing. There were various forms of trying to figure out how it broke and how best to fix it before
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
DECODE THEM IN THE FIRST PLACE? *sigh*" Best idea ever! Very glad to have you developing for us, sir.
Bug 5: Add "current mood of service" toy
Category: silly fun stuff
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: A silly/fun thing harking back to an old LiveJournal office toy: this takes the moods of recent entries from the Latest Things, ranks them on happy to sad, and displays the averaged mood of the service on the site map and Latest Things page.
Bug 103: Refactor default email change actions
Category: Misc Backend, user email address handling
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: Code for Doing Stuff when someone changed their email address was all over the place, repeated several different times on the back end. It's good to have stuff like this in only one place, so that when stuff changes, it either breaks or it doesn't (rather than one of them breaking and the rest not). Other stuff had started in this direction, and this finishes it.
Bug 1525: privilege function cleanup
Category: Misc Backend, privs, cleanup
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: Who would have thought that cleaning up some of the code dealing with privs would be so hairy?
Bug 2644: User.pm function to count accounts
Category: Misc Backend, administrative tools
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: Sometimes it's necessary for the owners to know how many accounts are registered to a particular email address. More backend work to make this happen.
Bug 2651: remove LJ::get_bio
Category: Misc Backend, cleanup, we aren't LJ
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: Back-end cleanup.
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Bug 2693: LJ::Talk::js_quote_button
Category: Misc Backend, the comment quote button
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: Again,
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Bug 2700: remove LJ::nodb
Category: Misc Backend, fetch the code-machetes
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: See obsolete function. See obsolete function one too many times. Rip obsolete function out. ...Rip a little more carefully.
Bug 715: distinguished collapsed comments from screened/deleted/suspended comments
Category: Style System, doing things the sane way
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: One would have thought that S2 would have distinguished between collapsed comments (which one can expand and otherwise manipulate), and deleted/screened/suspended-user comments (which, if one is not the journal owner/admin/comment owner, one can actually not touch with a ten-foot pole) before this, but one would have thought wrong.
Bug 2500: Update Funky Circles to use latest CSS3 properties
Category: Style System, the modern browser experience, people use browsers that are not Firefox
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: If you were wanting border-radius, box-shadow, and -khtml- to be updated in Funky Circles, you're in luck, particularly if you use Opera or Konqueror. If you vaguely recognize that Funky Circles is a style, isn't it, you can smile and nod.
Bug 2720: /latest?feed=... doesn't work, if the tag_map doesn't contain the group name/feed name
Category: Misc UI/Frontend, Latest Things, Azz has a strange fascination with the vuvuzela
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Bug 2728: Declaration of which themes are default/should go in the base category, is duplicated
Category: Style System, making things make sense
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: There was a bit of confusion, and this turned up the fact that there were two places to declare default/base category themes, and this was not actually easy to work with.
Bug 2729: Error when loading a journal page which has a list of tags (dev environment only)
Category: Tags, backend, we catch these things before they go live
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: There was an error in development with journal pages with a list of tags having an error; turns out that something that was doing checking had to be a little more careful about what it passed through, in case of undefined stuff.
Bug 2730: Using quick reply from a thread in custom comments pages does not return you to thread view
Category: Journal contents, making things make sense, your commenting experience
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: Don't you hate it when you're in a long comment thread on, say, the third page of a spirited discussion, you leave a comment, and you're bounced back to page 1 and you have to find your place again?
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Bug 2544: Navigation strip does not always show "Post to community" option
Category: Misc UI/Frontend, making the navstrip useful, community non-membership
Patch by:
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Description: If the community has open posting (anyone can post, even if they're not a member) the navstrip wasn't showing the option to post there, although that would have been particularly useful.
New mood theme
Bug 2048: new mood theme: Sina'i Enantia's Dreamy Ds
Category: Misc UI/Frontend, mood themes
Patch by:
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Description: New mood theme incoming: "Sina'i Enantia's Dreamy Ds", consisting of the stylized 'd' from Dreamwidth's logo, filled in with different colors, patterns, and shadow colors to creatively interpret the various moods, including (perhaps my favorite) a simple black line outline in the shape of the 'd' for the 'blank' mood, and lavender with bright yellow lines crossing, reminiscent of asterisks or fireworks, for 'excited'.
no subject
It's
no subject
no subject
I think I love this bug. No, really, "ouups, we used the wrong variable, which is a boolean and then we always got the user redirected to thread #1" :D
no subject
no subject
no subject
no subject
no subject
no subject
And yay mood theme <33333333333
no subject
no subject
no subject
no subject
no subject
no subject