What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 133 Stack Exchange communities.

SOREP will be taken offline this month. SOREP V2 now lives on StackUsers.com

SOREP V2: Ranked and aggregated flair

SOREP V2 is a flair service that is built upon the StackUser platform that provides ranked flair, both in standard layout and themes as well as custom aggregations.

Since early this year, before the advent of the API, SOREP has been providing ranked flair for the big 4 trilogy sites. With the advent of the API and improved access to data (so long screen scraping!) the groundwork for SOREP V2 with an improved api and layout was put into motion with the Soapi.CS client library upon which the StackUser data platform is built.

See http://stackapps.com/questions/1578/sorep-v2-ranked-flair-take-2 for more info.

You may also be interested in the other tools available on stackusers.


Default flair layout

alt text

Small flair layout

alt text

Tiny aggregated flair layout

alt text

I see a few questions on meta.stackoverflow.com regarding user ranking. There are several existing lists but they are focused primarily on users with higher scores.

So, I wrote a small applet that, via a trickle pull, indexes all users for the trilogy and meta down to the 100 rep mark, in order of appearance.

The 100 rep cutoff seems reasonable. On StackOverflow, the vast majority of users are < 100 and pulling that data seems over the top frivolous.

You may access this data in several ways

INTERACTIVE:

http://skysanders.net/tools/sorep/default.aspx (detailed usage information here)

AUTOGET: (for you Benjol)

http://skysanders.net/tools/sorep/default.aspx?site=stackoverflow.com&userId=1

JSON:

http://skysanders.net/tools/sorep/SEStats.ashx?site=stackoverflow.com&userId=1

JSONP:

http://skysanders.net/tools/sorep/SEStats.ashx?site=stackoverflow.com&userId=1&callback=foo

Flair

An example of using ranking in Flair is available on the interactive page.

share|improve this question
1  
Must...catch...up...NickCraver...willbeatyousomeday! shakes fist ..... incoherent mumbling –  Aarobot Mar 25 '10 at 4:14
    
Damn ... It's true ... I do need to know. –  RedBlueThing Mar 25 '10 at 4:52
    
vote to close as 'should-be-on-ego-overflow' –  Antony Mar 25 '10 at 5:04
    
+1. Guilty as charged :) –  Benjol Mar 25 '10 at 5:44
2  
Any chance of allowing the userid as 'Get'? Thhat way I can bookmark my rank directly :) –  Benjol Mar 25 '10 at 5:50
    
@Benjol - yeah, this is the prototype. am refactoring to enable all stackexchange sites and you will be able to pull your rank via REST. Thinking of a Flair addin. –  Sky Sanders Mar 25 '10 at 16:46
    
@Sky - You dah man. Just one thing, do you think that the x in Rank: n of x should be also based on your 100-rep cut-off? –  Benjol Mar 26 '10 at 7:37
    
@Benjol - yes, although I am only indexing > 100, the total counts all users. –  Sky Sanders Mar 26 '10 at 8:15
    
In your calculations, maybe you can remove users with rep 1. This will give you a more accurate ranking. –  jjnguy Mar 26 '10 at 17:36
    
Why does the interactive page resets your id when you change the site combo? –  jmfsg Mar 26 '10 at 18:23
    
@Downvoter - because your ID is different for each site. You will notice that after a successful result for a particular site, the id for that site will be persisted via cookie. e.g. select mso, enter id, get results, select so - id box cleared, select mso - mso id present. viola. unfortunately the cookie is only session based right now. When I open the project back up, I will persist the cookie. IOW- this is a feature, not a bug. –  Sky Sanders Mar 26 '10 at 18:29
    
@sky, I had never noticed that... my SO and META ids are the same, so I assumed that was the case for every site –  jmfsg Mar 26 '10 at 18:31
1  
@Justin - I don't really do any calculations, except for the flair example. I just index users in order of appearance on the users tab of each site. The rank is your ordinal position in that list. For the flair, it might widen the aperture a bit if only > 100 are used for calculating the percentile. I will take a look at it. Those that agree that a percentile calculation should only include > 100 can upvote this comment or leave feedback on the interactive page. –  Sky Sanders Mar 26 '10 at 18:46
    
The vast majority of the people who will care about this are all Top 1% (which is not exactly hard to get), so this is pretty much meaningless. –  NullUserException อ_อ Sep 18 '10 at 17:07
    
@null - thanks for your kind evaluation of my offering. the comment alert reminds me to update this post to the new version. –  Sky Sanders Sep 20 '10 at 13:38

9 Answers 9

If you're on the front page it's easy :)

Also, where's the ServerFault/SuperUser/Meta version? ;)

share|improve this answer
3  
If you're Jon Skeet .. it is even easier. –  Tyler Carter Mar 25 '10 at 3:49
    
Aint that the truth –  Mark Henderson Mar 25 '10 at 3:51
    
I am going to give this a few days to settle and see how it is received. –  Sky Sanders Mar 25 '10 at 4:03
    
You'd be surprised. It isn't easy being Jon Skeet. –  Super Long Names are Hilarious Mar 25 '10 at 6:10
    
Does anybody care about their ranking on Meta? –  APC Mar 25 '10 at 15:14
    
@Sky, my SO id is 69683 –  Mark Henderson Mar 26 '10 at 5:49

I was going to say that this had already been done... but then I realized that there's no ranking in those stats! For shame!

As to how often one does the 35*page + position calculation, I have to say I'm guilty. I have a bookmark in my toolbar (actually under the SO folder, which is in the toolbar) to my current page on SO, as well as the stats page for my main tag (as you can see I'm in a race to claim the 7th gold perl badge).* I look at both of these a few times a week.

*I also used to have a bookmark to my meta user's page, but now that I'm on page 1 I can just click "Users" at the top of any page.

share|improve this answer
    
That one only shows the > 10k users though, I like Sky's one better... although I only have 115 StackOverflow rep, so both aren't very useful to me –  Mark Henderson Mar 25 '10 at 3:55
    
@Ether - is there a public path to the tag pages, such as the one you linked to? I don't seem to see an obvious path... –  Sky Sanders Mar 25 '10 at 4:29
1  
@Sky: Stats tab on any tag's page. i44.tinypic.com/30tovps.jpg –  Gnome Mar 25 '10 at 5:36
    
Thanks. (filler) –  Sky Sanders Mar 25 '10 at 6:50

Stack Overflow users are programmers, so they should all know better than to make a linear search through the users pages. With a modest extrapolation to bracket your position by score and a binary search you can nail it down in O(logN) time...

share|improve this answer
4  
You'd be surprised how habitually programmers lean on linear search. –  Jimmy Mar 25 '10 at 4:06
    
true. but I think it might not be an uncommon scenario. –  Sky Sanders Mar 25 '10 at 4:07
2  
I've no sympathy whatsoever for programmers who use a linear search in this context. Their suffering can be as a lesson unto them... –  dmckee Mar 25 '10 at 4:38
2  
To perform binary search you need a random access iterator. The Users page has buttons "1" "2" "3" "4" "5" "4307" "next". If you know how to open page 2153 in O(1) time please tell me. –  Tadeusz Kopec Mar 25 '10 at 11:30
5  
@Tadeusz Kopec: stackoverflow.com/users?page=2153 –  mmyers Mar 25 '10 at 15:24
    
@mmyers Thanks. But admit it's not too convenient. –  Tadeusz Kopec Mar 25 '10 at 15:29
    
@Tadeusz: Why? It beats having to hunt down the right number in a little list on the page. Left hand on keyboard, right hand on mouse, works pretty well. (But it's true that it isn't that noticeable if you haven't seen it before.) –  mmyers Mar 25 '10 at 15:31
5  
Premature optimization is the root - oooOOOOoooh! Shiny algorithm! –  Adam Davis Mar 26 '10 at 17:36

Very nice.... now for a bit of feature creep; show how many ranks you could climb if you a) got an answer upvoted, b) got an answer upvoted & accepted, c) hit the repcap for the day

That could provide a bit more motivation for some, especially lower on the rep ranking the separation between ranks is just a couple of points, and some are shared by users with the same number of points.

share|improve this answer
5  
umm... sorry, I put on scopecreep block this morning - SCF 75 to be exact. ;-) thanks for the feedback. –  Sky Sanders Mar 25 '10 at 15:30
    
awwwwwwwwwwwwwwwww.............. :) –  retracile Mar 26 '10 at 1:17
    
and.... i don't really want to be doing any crazy analytics. Just provide an api for pulling current user stats. see the new api posted. –  Sky Sanders Mar 26 '10 at 4:37

Already exists? Easy Way to find out what your user rank is?

share|improve this answer
    
Can now say 'nope.' ;-) –  Sky Sanders Mar 26 '10 at 5:43

I'm guessing that it doesn't include the association bonus in the count towards "100 points"? I officially have 121 points on ServerFault, but you haven't generated a rank for my account on it.

share|improve this answer
    
@Sky Sanders: Literally a minute later it appeared. Odd. –  Margaret Mar 26 '10 at 5:52

Minor bug with the "Interactive" version:

Enter an incorrect user number, and the "User does not exist" message comes up. If you then enter a valid user number, the previous message stays there.

Screencap

(Yes, I know, no hand-drawn circles. How dare I?)

share|improve this answer
1  
Yes, I noticed that too. a problem with the prefix selector or the way I was using it. should not happen again. You can send bugs to the feedback link at the bottom of the page to keep this 'question' from devolving into a bug report. ;-) p.s. THANK YOU. your suggestions and feedback are welcomed. –  Sky Sanders Mar 26 '10 at 6:16
up vote 2 down vote accepted

Ok, the asp.net cache based autoupdate strategy I had implemented failed miserably, as did the ability of the update to run from my host for some reason so I switched to a task running locally.

The data is now reliably updated daily if anyone cares.

share|improve this answer
    
Nice work!----- –  Pëkka May 5 '10 at 14:04

Here is another way to access the data:

Get your flair with a ranking...

<!-- Requirements - jQuery and an SO style sheet -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="http://sstatic.net/so/flair-Default.StackOverflow.css" />


<!-- 

script tag to include on your site 

key: so  - stackoverflow, sf  - serverfault, su  - superuser, mso - meta stackoverflow
userid: the numeric portion of your profile url
-->
<script src="http://skysanders.net/tools/sorep/YourFlair.aspx?key=so&userid=242897" type="text/javascript"></script>

<!-- container into which script will render -->
<div id="flair">
</div>
share|improve this answer

You must log in to answer this question.

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