154

In the comments to Enthusiast and Fanatic Badge on the blog, a comment was added that a nice feature would be adding the number of consecutive days you've visited to the site to the user's profile.

I’d love to see on your user page a count of how many consecutive days you have been on SO/SF. Kind of like looking at your uptime on a Unix box. - Code Slave

I believe it would be a good feature and wanted to put it out there for discussion.

I know personally, I would like to be able to track how many consecutive days I've visited the site without having to figure it out on my own.

4

5 Answers 5

45

This was a big suggestion following the creation of two new badges which were based on 30 consecutive days ("Enthusiast", earlier "Woot"), and 100 ("Fanatic").

I'm currently pursuing my "Woot" badge (and subsequently my "Fanatic" badge too) - somewhere between 20-25 days away I think.

0
29

I would find a concurrent-days counter interesting.

I'm pretty sure I have been on both StackOverflow and ServerFault for more than 30 days in a row.

But no badge.

It is easy to visit StackOverflow every day and still "miss a day." StackOverflow's day starts at midnight (GMT). So my "StackOverflow day" starts at 8pm, my time (Eastern Time). So it is conceivable that I simply logged in one morning and didn't check back until much later the next day... technically "missing" a day-as-tracked-by-stackoverflow in between.

I'll be okay.


UPDATE: Oh, crap. A possible slight miscalculation. I might-- just might-- have another day or two to go. We'll see.

8
  • 1
    That last part is a good point. What is the deadline for being counted as visiting the site "today"? I happened to think of this one evening at 11:55 p.m.
    – JSchaefer
    Jun 29, 2009 at 21:17
  • My max-votes-per-day counter starts sometime around 7pm (Eastern Time). It might be when I originally signed up, or something. I don't know if concurrent days are counted the same way. Jun 29, 2009 at 21:48
  • 3
    I believe all timing (for rep caps, voting, etc) is based on Greenwich Mean Time. Jun 30, 2009 at 1:52
  • 3
    I think you are right. I watched last night and it turns out my "day" starts at exactly 8pm and my timezone is GMT -4h. So, if you log in at different times of the day, you can easily miss a "StackOverflow day." I'm going to update my orginal post. Jun 30, 2009 at 13:45
  • 1
    Similarly, you can double your days by being active around midnight UTC (So, if you're in a timezone that is UTC-5, and accounting for daylight savings, you'd need to be active from around 19:45 to 20:15 every other day) Aug 13, 2009 at 8:01
  • 2
    Unfortunately, it doesn't work for 28 hour days. xkcd.com/320
    – mmx
    Sep 9, 2009 at 7:01
  • 1
    +1: I'm glad I'm not the only one surprised by that (sorry). I set my computer to auto-load all the sites at 7 pm, as insurance in case I hadn't gone yet that day. I'm at GMT -5, so I was pretty disappointed 100 days later. I guess I must have been off by a second or two a few times.
    – Pops
    May 11, 2010 at 22:47
  • This is so disappointing. I've been working this for over two weeks and I login today only to see that serverfault.com, my most visited, only has 3 days. Ugh! Robert Thanks for the info. Jun 23, 2010 at 15:18
13

This kind of query would be able to provide the data for the profile.

with numberedrows as(        
select 
   row_number() over (partition by UserID order by CreationDate desc) as NumRowsFromToday,
   datediff(day,CreationDate,getdate())+1 as DaysFromToday, 
   CreationDate, 
   UserID        
from tablename
where UserID = @UserID /* Optional line that can be removed to get everyone's current run */
)
select UserID, min(CreationDate) as StartOfRun, max(DaysFromToday) as LengthOfRun
from numberedrows
where DaysFromToday = NumRowsFromToday
group by UserID
order by max(DaysFromToday);

Here's the idea behind the query:

I know from SQL to determine minimum sequential days of access? that they only store one entry per user per day (if not, then DENSE_RANK is needed instead of ROW_NUMBER, and the OVER clause needs to truncate the date). So if you number those days (backwards), then the current run of consecutive days only includes entries where the rownumber is the same as the number of days from then to today (plus one, so that you don't start counting that number of days from 0).

With an index on (UserID, CreationDate), this should run quickly too.

So... hopefully Jeff & co are keeping an eye on this question, and can consider it?

Rob

8

Thanks for implementing this feature.

I had been wondering for quite a while when I'd hit that 100 day mark and finally get the dang badge. All the while, religiously hitting the site every day, even adding a bookmark on my iPhone so I could click it to get credit if I was traveling or didn't otherwise have access to a computer or the Internet on a given day.

So I click over to my profile and I am at...(drum-roll)... 15 consecutive days... F@#$!K

Somehow, somewhere I must have not clicked hard enough on the link to the site, or perhaps it was the time-zone thing, or God knows what, but after roughly 6 months of chasing this badge I am nowhere near getting it apparently.

The reason I am appreciative for this feature is that I finally know where I stand. I'm going back to just visiting the site when I have a question or feel like answering them, instead of checking in every day, just to hit roll call. Thanks for giving me back a few minutes of my day.

5

If you set your next badge in profile to fanatic it will show days you have been on consecutively

You must log in to answer this question.

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