Wikipedia:Snuggle/Work log/Archive May13

Wednesday, May 1st
Hey folks. There's been a lot of progress recently. The desirability metric seems to be holding up and it doesn't look like I'm grinding STiki into the ground by constantly requesting scores from it. I'm completed a set of UI cleanups including specifically noting which revisions are self-reverts and improving the color scheme for the revision graph (thanks to for creating a basic pallet).

There's someone I need to call someone for diligently working to make Snuggle better. has been driving a massive amount of change in Snuggle. While I've had to delay most of his feature requests until the next major release of Snuggle, many of his bugs and features have been implemented in the most recent version. So thanks for all your help! Without it Snuggle would suffer.

Now, to the plan... So, I'm getting a little bit of a run-around when it comes to getting Snuggle running on a production machine (stat1 is intended for the data analysis work that I do, not user interfaces like Snuggle), so it doesn't look like we can "officially" open up Snuggle to users within the week. However, I'd like to start some alpha testers on a stable version of the tool by Friday. We'll need to fly below the radar to an extent, so I don't plan to do any massive advertising. So far I have three alpha testers signed up to start working with Snuggle when its ready (, and ). Please contact me if you want in.

In the meantime, I'll keep the test instances up so you can help me catch bugs or come up with features. -- EpochFail (talk &bull; work) 18:20, 1 May 2013 (UTC)

Thursday, May 2nd
I'm working to squash a bug this morning that is causing some talk pages to not update inside of Snuggle. It's a surprisingly illusive problem, but I'm writing tests and refactoring as I go so the system will be more robust to future bugs. :)

Also, there's one thing I forgot to mention. I've submitted a proposal to present Snuggle @ Wikimania this year. If you'll be attending, please add your name to the "Interested Attendees" list at the bottom.

Back to bug bashing. -- EpochFail (talk &bull; work) 16:05, 2 May 2013 (UTC)

Saturday, May 4th
I've been dumping quite a few hours into Snuggle recently. In working on the last bug, I realized that I had two problems within Snuggle that were getting in the way of adding new functionality and squashing bugs: (1) a moderate amount of code duplication between the "sychronizer" that keeps newbie stats in sync with English Wikipedia and the "web UI" that turns the newbie stats into the snuggle interface you've seen and (2) a lack of testability for a lot of the system. Well, 20 hours and lots of refactoring later, I have removed all relevant code duplication and written a suite of tests that ensure that I can squash bugs and add new functionality more quickly.

I plan to have a new build pushed out by the end of the day today or early tomorrow. I'll update again when it is ready. -- EpochFail (talk &bull; work) 17:21, 4 May 2013 (UTC)

Sunday, May 5th
A new build is live at http://stat1.wikimedia.org:8080. It's hard to tell from the outside, but the inside of Snuggle is massively different. I've made a substantial push over the last few days to make sure that the server-side of Snuggle was clear, coherent and performant. However, a few interesting changes have made it to the UI.
 * 1) Colors are better.
 * I've switched to a higher contrast scheme for colors in the revision graph. In doing this, I also removed the color similarity between the good-faith/bad-faith buttons and edits to certain namespaces.  Hopefully, this will make getting a sense of a newcomer's activity at a glance much easier.
 * 1) Diffs are better.
 * I've increased the amount of context given for edits that change the amount of line breaks between paragraphs and sections.
 * 1) The talk page summary is better and more interactive.
 * The system I had in place for parsing user's talk pages to look for temples (Welcome, CSD, Teahouse invites, Warnings, etc) was a little bit broken. The new system is much more robust.  During my testing, it was useful to be able to ask Snuggle to update the talk page visualization while viewing a user.  Not that a "reload talk" button has been added to the interface.  When you click that, it will signal Snuggle to go read the user's talk page again and let you know if it ran into a problem.



Next on my plate is building up Snuggle's logging system to make it easier for us to track the activities of our fellow Snugglers. I'm also planning to use the logging system to allow you to subscribe to events like "a user that I marked as good-faith was just sent a warning". I'll post some sketches early next week. -- EpochFail (talk &bull; work) 19:30, 5 May 2013 (UTC)


 * I forgot to mention. I had to reload Snuggle's database for some of the changes I made, so it might be a couple of hours before everything is sync'd up.  I expect it to be ready by 23:00 UTC.  -- EpochFail  (talk &bull; work) 19:32, 5 May 2013 (UTC)

Tuesday, May 7th
Hey folks. Just a quick update this time. Over the past couple of days, I've been catching up on my academic stuff. However, while I was working out some details with my source code repository (snuggle), I came across Gource, a simple tool for visualizing the activity over time in a source code repository.

I've uploaded the video to youtube (licensed CC-BY SA 3.0) for your enjoyment. Note the marked change in activity towards the end of April, when I finished my contract @ Google. -- EpochFail (talk &bull; work) 13:31, 7 May 2013 (UTC)

Saturday, May 11th
It's been a little while since the last update, but I've been getting a substantial amount of work done in Snuggle's code. Over the last week, I performed some major refactoring (restructuring of code) that is bringing us closer to a few critical milestones:
 * 1) Snuggle can now update itself directly from Wikipedia's API
 * This may not sound like much, but it's a big deal. Previously, I used to need a direct connection to Wikipedia's MySQL database in order to stay in sync, but now I can do from anywhere that I can get an internet connection.  This means that we aren't tied to the Wikimedia machines (like stat1.wikimedia.org) that I've been hosting on thus far.  That means that I no longer have to wait on anyone else to move Snuggle to "production" status.  As soon as I get Snuggle up and running in the WMF Labs cluster, we can open up Snuggle to a wider audience.
 * 1) Snuggle is just a half-step away from multi-language configuration support
 * I have a framework in place that will allow Snuggle to display in different languages based on simple configuration files. I hope to put a call for translators soon.  If anyone's willing to give Snuggle a test run on non-English Wikipedias, let me know.  There's bound to be some kinks to work out.  The sooner I can get to those, the better.
 * 1) Snuggle's user actions (e.g. send message, invite to teahouse, report abuse) will also be configurable.
 * It doesn't make much sense to support easy configuration of language in Snuggle if I don't also allow for easy configuration of actions that affect the Wiki. Although I'm sure that "sending a message" to a newcomer is similar across Wikis, I doubt that the welcome invitations and the mechanisms for reporting abuse are identical.  Up to this point, one would need to write a substantial amount of code in order to add to or change the way that user actions behaved, but now, it's all captured in about 10 lines of a config file.
 * 1) Public activity logs
 * A crucial part of having a responsible community of Snuggle users is transparency. I've built a logging system that tracks categorizations and user actions performed by Snugglers.  I plan to surface those in a similar way to Special:Recentchanges.  Building this part of the system brings us a little closer to having event notifications of the type: "A newcomer you sent a Teahouse invite was just sent a vandal warning."

As soon as I can get things up and running in the WMF Labs, I'll start an instance that we can consider stable and start getting some use out of. As soon and I'm convinced that it is running well, we'll announce version 1.0. Thanks for your patience. -- EpochFail (talk &bull; work) 22:02, 11 May 2013 (UTC)
 * You're awesome. Thank you. Ocaasit &#124; c 22:08, 11 May 2013 (UTC)

Thursday, May 16th
Hey folks. I've been doing a bunch of infrastructure work recently. I'll have to update my gource animation from a couple of weeks ago so that you can visualize all of my new activity. A lot of the recent work has been in dealing with a natural experiment of STiki downtime. There were a few misconceptions about what would happen when STiki goes down that I've worked out. We should be substantially more robust to those sort of problems now.

On a bright note, the Labs admins have approved the Snuggle project, so I'm working on spinning up an instance at the moment. Once I've got that worked out, we can consider Snuggle stable enough for public use and make a larger announcement to pull in some more users. -- EpochFail (talk &bull; work) 15:56, 16 May 2013 (UTC)

Friday, May 17th
Just a quick note. My talk proposal for Wikimania was just accepted! If you're going to be @ Wikimania this year, make sure to find me and say "hi". -- EpochFail (talk &bull; work) 14:45, 17 May 2013 (UTC)

Monday, May 27th
Hey folks, I figure I'm due for an update. A lot's been going on recently.
 * STiki downtime: WP:STiki experienced a substantial amount of downtime while was moving the system to another server.  This is frustrating for us because it means that there are some massive gaps in the scores I use to sort new users by their desirability, so the sorting is likely to be wrong in places.  I'm looking at alternative sources of scores, but I'll have to do a little more engineering in order to get that working.  Right now, STiki is back online.
 * Customizability: As I mentioned on the 11th, in order to allow Snuggle to be useful to other Wikis, I needed to implement customizability across the system (not just language). Over the past few days, I've made some key updates to make this a reality.  The current version of the system allows complete configuration of the types of actions that can be performed via the "user menu" (see below).  I've taken this opportunity to make some substantial improvements to the functionality of the menu while I was refactoring the code.  The menu now has the ability to support arbitrary form elements and uses simple string processing to incorporate those elements into the actions that Snuggle will perform on user's behalf.  The preview pane now supports previewing of several different wiki operations (e.g edit page, append to page, watch page, etc.) as part of a single action.  Once I've got it all stitched together, I'll produce some docs explaining how it works.

If everything goes as planned, I'll have an update in a couple of days requesting alpha testers to help me clean up the remaining bugs before releasing the system to a larger audience at the end of the week.



Friday, May 31st
Hey folks! I have great news. Snuggle version 1.0 release candidate 1 is ready for testing. You can access it via  http://snuggle.instance-proxy.wmflabs.org. Once I've had a few users working with the system and confirmed that there are no glaring bugs remaining, I'll make an official announcement about the release to ping the whole list.

Thanks for your patience. Here we go! -- EpochFail (talk &bull; work) 20:36, 31 May 2013 (UTC)