afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
I ran into this issue while updating my database on my dev environment:

Failed to read auto-increment value from storage engine


That happened when I was trying to insert something new into logproplist. When I checked logproplist, I saw that the propid had skipped from 31 to 255, for the latest property (community moderator thing). information_schema.AUTO_INCREMENT had 256 as its value. Now I have no idea what that means, or why it happened, but it was causing me trouble.

I deleted all references to the property in logprop2, deleted the property itself in logproplist, reset the auto increment for logproplist, and then reran the database update command. First two steps may have been unnecessary; I did them before I managed to google up the reset fix.

(In the process, I think I figured out that ALTER_TABLE modifies the information_schema somehow).

As far as I can tell, it's not something that everyone is going to go through (that is, it appears to be a bug in my MySQL server version, triggered by some funky other stuff), so I'm not posting in [site community profile] dw_dev to spread the word/fix. Just here in my journal so I don't forget :-)
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
When I first did renames, I didn't have the concept of a rename token object -- I had the shop item, and then I was doing a bunch of stuff directly in DW::Rename. At some point, I rethought, and encapsulated some of that logic into a new class DW::RenameToken, and I had to do a lot of tweaks to what I had already done to accommodate it.

I'm so *absolutely grateful* that [personal profile] szabgab did such a job towards making existing tests usable, because that put tests in mind when I first started doing the renames module, and I felt obliged to take the time to wrote a few simple tests.

Now the tests are failing, and in all the ways that point out to me where my old assumptions no longer bear weight under the new/tweaked code. They have paid for themselves many times over.

Now how do we convince others to write more of these things? :-)
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
Spent Saturday doing stuff, and Sunday alternating between hanging out with family and coding up rename tokens.

Rename tokens are so close, I can almost taste them (they taste vaguely nutty but kinda nice. DON'T TASTE THEM THOUGH I'm not sure they like that). I had this crazy idea to try to get them ready by the time [staff profile] mark finishes what he's working on now, but I don't think I'll make it.

The relevant patches combined are well over 2000 lines now ahahahahaha. Though a lot of that is splitting up the DW::Shop::Item::Account into a base class for all items and account-specific logic. And also a lot of that is documentation and white space (POD *__*). I think that what I've done so far is going to make it much easier to add gift certificates and similar to the system -- that is, tokens that a user will need to use, rather than be delivered at a set time (unlike paid time and vgifts).

I've had a lot of fun playing with Template Toolkit (♥ [personal profile] exor674), now I just need to finish implementing options for when someone renames, and go over things one more time make sure that I don't allow people to use tokens they shouldn't be able to, and go over things a couple more times to make sure I did implement everything that's necessary...

I really should reverse my weekend, and make Saturday my coding day and reserve Sunday for family. Though that removes Saturday as my errand day. Hmm, anyway.
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
Started from these instructions, but some modules try to install files into /usr/lib, which causes an error about being unable bto overwrite. I ran into this while trying to install a later version of Net::OpenID::Server/Net::OpenID::Consumer, in particular.

One solution is to force the install, but I don't know what other effect that could have.

The better solution is in this comment with similar but slightly different series of steps, from debian-administration.org.

(Note: in case it wasn't clear -- I had to figure it out through trial and error -- the rules.MakeMaker.noxs you're editing is the one in ~/.dh-make-perl)

So far so good; about to try it out.

ETA: Works!
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
Bah, the issues with interests are slowly driving me to distraction. Two requests about interests within hours of each other! I feel that those two... three? issues have been going on long enough, so I spent the afternoon digging into interests code.

No progress on any of the issues, unfortunately, and I'm left feeling that there are, indeed, ghosts in the interests code. Without a reliable method of replication, I can't even tell whether it's memcache or actual stored values that are the problem.

I have the feeling that when we figure out what's wrong, it will be a FLASH OF SUDDEN INSIGHT HOW COULD I HAVE MISSED IT. But today, I'm well and truly stumped past the point of unproductivity.

*shakes fist*

Will get you, yet.

Renaming

Saturday, December 5th, 2009 09:15 pm
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
I'm doing Bug 216: Renaming, and maaaaaan.

It's kind of funny -- I studiously ignored most of the renaming support requests back on LJ, because it seemed complicated and I didn't want to dig into the code, and now here I am, writing similar logic from scratch *snickers*

I'm having great fun. This seemed like one of the projects where tests would have a great effect, so I spent some time figuring out how to write tests from scratch, rather than just trying to tweak existing tests.

My tests look kinda like this:
tests )

I'm coding by first writing a bunch of tests, then writing code to make the tests pass. Every time I think of something new I should check for, I dash off a quick TODO block and then go back to writing either my test or my module. That helps me not lose my train of thought, but also means that I don't lose my ideas.

I'm starting with a small set of limited functionality, and then gradually expanding the scope. I actually started by disallowing everything except user-to-unregistered, and now I'm relaxing the rules as I add more. So far, I have personal-user-to-unregistered, with redirect and without redirect, and lots of checking for whether $fromu can rename to $tousername.

I'm in the middle of user-to-other-user, where the second user is just moved out of the way.
I estimate that I'm only about 10% of the way through -- I still need community-to-unregistered, community-to-other-community (or journal??), two-username-swap, keeping or removing various links -- subscriptions and the like, then catching edge cases (loops, openid attempts to rename, etc). And then I need to integrate it into the shop. And after that, I need to build a frontend so people can buy it from the shop *g*

At some point, I'll probably need to catch someone in chat to ask certain questions about the renaming process -- what should happen to usernames that were renamed away from, is swapping usernames one token or two, should you be able to rename a comm to a journal and vice versa, blah blah blah, buuut that can all wait a bit, because I'm sure I'll end up with still yet more questions.
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
Since my last update, I have done 18 more bugs, giving me a total of 29 patches, whee.

I also have been doing Bug 117, but in bits and spurts because I haven't had the large chunk of time I want to sit down and just hack on something meaty, so it's mostly been bits and pieces here and there.

Quick rundown, and most of these have not been committed yet, so possibly there shall be changes --

Styles:
don't apply custom user layer to preview of a new theme; strip out user-entered links in subjects for entries aggregate views/collapsed comments, so that you can click through; appended ?style=mine and ?s2id=x appended to journal view links; allow ?s2id=x to work for anyone as long as all layers are public

Administrative:
new sysban type: spamreport

Backend optimization:
cache user tag lookup in RTE; memcache for nonexistent s2id

Misc interface improvements:
add consistent spacing between comment links in site scheme; add a bit of crossposting info to entryprops.bml; handle cut and uncut text better in latest news module; dynamic inbox count in the Inbox link under the Read menu; add link back to journal if there's no next/prev entry; link directly to the original feed's URL from tools/opml; dropdown for journaltype filter on network page; remember the option for "Disable Auto-Formatting"

Misc bugfixes:
fix ?show=PCF logic in tools/opml; respect the option to not save colors when adding someone to your circle

More coding

Monday, November 9th, 2009 02:40 am
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
I tamed the RTE \o/*! That makes 11/30 patches.

Also did a few commits, and now it is time for bed.

I feel my problem getting started on Bug 117 is because I'm suffering from blank-paper-itis -- the feeling of anxiety when faced with a blank sheet of paper, because you don't know where to start. I have batted about several ideas for implementation in my mind, and I'm not satisfied with any of them. But I have picked one now, and am running with it, on the assumption that something is better than nothing, and that if this implementation crashes and BURNS on me, it will at least break my current inertia, and I can easily pick another way (with one less possibility to worry about).


* hopefully not famous last words?
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
I started a thing! I pledged to patch 30 bugs in November. Here's what I have so far:

Progress:
100% ( 30 / 30 ) -- 2 planned


Planned:

  1. Bug 117 - "Why Dreamwidth?" (user testimonials)
  2. Bug 1706 - Snakes & Boxes layout


Done:
  1. Bug 2023 - Sort Base Layouts by Layout Name
  2. Bug 1492 - modify manage/subscriptions/comments.bml to also include entry, not just comment thread
  3. Bug 2034 - in comment form, comment browser button is styled and shouldn't be
  4. Bug 1183 - Tags module on Tags page ignores tags limit
  5. Bug 1690 - Support for <dc:creator>
  6. Bug 157 - XML-RPC doesn't work correctly in LJ - please fix it in Dreamwidth!
  7. Bug 2043 - featured layouts for November
  8. Bug 1411 - fix checking of whether or not comments are disabled on local entry for xpost
  9. Bug 2033 - autoclose unclosed <cut> tag in xposted entries before xpost footer is added
  10. Bug 1781 - Add clearing element to Tabula Rasa
  11. Bug 496 - Set up the RTE to use cross-site user tags
  12. Bug 1871 - append ?s2id/style=mine, etc, to the URLs for different views (/read, /network, etc)
  13. Bug 2084 - speed up user tag rendering in RTE, by caching once it has been looked up once
  14. Bug 2089 - some backend optimization for nonexistent styles being memcached
  15. Bug 378 - Dynamic inbox count for menus
  16. Bug 2099 - Inconsistent spacing between comment links on site scheme comment pages

  17. Bug 2066 - When previewing a theme for your current layout, user layer is applied
  18. Bug 1802 - Get (a tiny bit of) crossposting info on entryprops.bml
  19. Bug 2090 - News module widget should respect cuts
  20. Bug 843 - URLs in entry subject lines force subject lines to appear as text, not entry hyperlinks
  21. Bug 1575 - Usability improvement for Next/Prev navigation
  22. Bug 2013 - Link directly to the feed url of syndicated accounts, from the OPML file
  23. Bug 2111 - tweak the logic for the ?show=(accounttype) parameter to the tools/opml
  24. Bug 2104 - new sysban type: spamreport (for those who abuse the "report as spam" button)
  25. Bug 2001 - s2id for everyone, for styles with all public layers
  26. Bug 491 - respect the option to not save colors when adding someone to your circle
  27. Bug 1336 - add dropdown for journaltype filter on network page
  28. Bug 1677 - Remember the option for "Disable Auto-Formatting"
  29. Bug 1879 - reason for comment when editing
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
Extremely pleased with this weekend. Was a long weekend, no work Friday, so I was able to gather the time and energy to focus on converting styles.

Just counted, and there are fifteen new themes committed already. I expect 20+ (30 -- can we make 30? Going once, going twice...) before next code push, and there are at least two new base layouts prepped and ready, just waiting one final thing. And I'm pretty sure we have time to do a couple more ;-)

Once the current backlog in [site community profile] dreamscapes is more manageable, I can look at the current backlog in the review queue. And definitely need to make sure I'm holding up my end of the accessibility initiatives. Phew! Busy busy.

BTW, friends, coders, reviewers, [personal profile] yvi put up a great entry tackling Review 101. Read it, love it (and if you would, do it :-))

Productive weekend

Monday, June 1st, 2009 01:58 am
afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
Productive weekend! Have 18 patches by me in the review queue, though some of them I did earlier last week. Focused on the blocking-launch bugs this weekend; picked up nine of the ones that were yet unclaimed (one of them I will need to submit a second patch for). A couple of other things caught my eye in the process, and I filed a bug for those, and submitted a patch for a couple.

Also asked a few questions to clarify some things that were confusing me, and they're all answered now, so I may be able to do a second run-through through the blocking-launch queue and pick up a couple more bugs (or someone else can pick them up, that works for me!)