[Tutor] Top posters for 2009
Stefan Behnel
stefan_ml at behnel.de
Fri Feb 26 14:56:13 CET 2010
Shashwat Anand, 26.02.2010 04:57:
> @Kent: thanks for the script. It is kool.
>
> Here is 2010 list of Top-20 (as of now):
>
> 2010 (1155 posts, 204 posters)
> ====
> Alan Gauld 127 (11.0%)
> Kent Johnson 108 (9.4%)
> spir 52 (4.5%)
> Wayne Watson 46 (4.0%)
> Luke Paireepinart 32 (2.8%)
> Shashwat Anand 30 (2.6%)
> Wayne Werner 29 (2.5%)
> Steven D'Aprano 28 (2.4%)
> Stefan Behnel 24 (2.1%)
> Dave Angel 22 (1.9%)
> Lie Ryan 19 (1.6%)
> Hugo Arts 16 (1.4%)
> Benno Lang 14 (1.2%)
> David 14 (1.2%)
> Giorgio 14 (1.2%)
> Serdar Tumgoren 14 (1.2%)
> Grigor Kolev 13 (1.1%)
> Eike Welk 13 (1.1%)
> Christian Witts 12 (1.0%)
> invincible patriot 12 (1.0%)
>
> No more spamming now :P
>
> ~l0nwlf
>
> On Fri, Feb 26, 2010 at 9:10 AM, Shashwat Anand <anand.shashwat at gmail.com>wrote:
>
>> How about Top-40 posters (so that I can make the cut..Yayyy) :P
>>
>>
>> 2009 (7730 posts, 709 posters)
>> ====
>> Alan Gauld 969 (12.5%)
>> Kent Johnson 804 (10.4%)
>> Dave Angel 254 (3.3%)
>> spir 254 (3.3%)
>> Wayne Watson 222 (2.9%)
>> bob gailer 191 (2.5%)
>> Lie Ryan 186 (2.4%)
>> David 127 (1.6%)
>> Emile van Sebille 115 (1.5%)
>> Wayne 112 (1.4%)
>> Sander Sweers 111 (1.4%)
>> Serdar Tumgoren 100 (1.3%)
>> Luke Paireepinart 99 (1.3%)
>> wesley chun 99 (1.3%)
>> W W 74 (1.0%)
>> Marc Tompkins 72 (0.9%)
>> A.T.Hofkamp 71 (0.9%)
>> Robert Berman 68 (0.9%)
>> vince spicer 63 (0.8%)
>> Emad Nawfal 62 (0.8%)
>> Andre Engels 61 (0.8%)
>> Rich Lovely 60 (0.8%)
>> Christian Witts 57 (0.7%)
>> Martin Walsh 51 (0.7%)
>> Eduardo Vieira 47 (0.6%)
>> Tim Golden 47 (0.6%)
>> prasad rao 47 (0.6%)
>> Dinesh B Vadhia 47 (0.6%)
>> John Fouhy 42 (0.5%)
>> Norman Khine 41 (0.5%)
>> Che M 41 (0.5%)
>> Stephen Nelson-Smith 40 (0.5%)
>> Mark Tolonen 40 (0.5%)
>> Chris Fuller 38 (0.5%)
>> Stefan Behnel 35 (0.5%)
>> Wayne Werner 34 (0.4%)
>> Steve Willoughby 32 (0.4%)
>> Shashwat Anand 32 (0.4%)
>> Eike Welk 31 (0.4%)
>> Albert-Jan Roskam 30 (0.4%)
>>
>> ~l0nwlf
>>
>>
>> On Fri, Feb 26, 2010 at 9:04 AM, Shashwat Anand <anand.shashwat at gmail.com>wrote:
>>
>>> nice. Kudos to all top posters. May be I should search my rank ;)
>>>
>>> ~l0nwlf
>>>
>>>
>>> On Fri, Feb 26, 2010 at 8:23 AM, Kent Johnson <kent37 at tds.net> wrote:
>>>
>>>> It's not really about keeping score :-), but once again I've compiled
>>>> a list of the top 20 posters to the tutor list for the last year. For
>>>> 2009, the rankings are
>>>>
>>>> 2009 (7730 posts, 709 posters)
>>>> ====
>>>> Alan Gauld 969 (12.5%)
>>>> Kent Johnson 804 (10.4%)
>>>> Dave Angel 254 (3.3%)
>>>> spir 254 (3.3%)
>>>> Wayne Watson 222 (2.9%)
>>>> bob gailer 191 (2.5%)
>>>> Lie Ryan 186 (2.4%)
>>>> David 127 (1.6%)
>>>> Emile van Sebille 115 (1.5%)
>>>> Wayne 112 (1.4%)
>>>> Sander Sweers 111 (1.4%)
>>>> Serdar Tumgoren 100 (1.3%)
>>>> Luke Paireepinart 99 (1.3%)
>>>> wesley chun 99 (1.3%)
>>>> W W 74 (1.0%)
>>>> Marc Tompkins 72 (0.9%)
>>>> A.T.Hofkamp 71 (0.9%)
>>>> Robert Berman 68 (0.9%)
>>>> vince spicer 63 (0.8%)
>>>> Emad Nawfal 62 (0.8%)
>>>>
>>>> Alan, congratulations, you pulled ahead of me for the first time in
>>>> years! You posted more than in 2008, I posted less. Overall posts are
>>>> up from last year, which was the slowest year since I started
>>>> measuring (2003).
>>>>
>>>> Thank you to everyone who asks and answers questions here!
>>>>
>>>> The rankings are compiled by scraping the monthly author pages from
>>>> the tutor archives, using Beautiful Soup to extract author names. I
>>>> consolidate counts for different capitalizations of the same name but
>>>> not for different spellings. The script is below.
>>>>
>>>> Kent
>>>>
>>>> ''' Counts all posts to Python-tutor by author'''
>>>> # -*- coding: latin-1 -*-
>>>> from datetime import date, timedelta
>>>> import operator, urllib2
>>>> from BeautifulSoup import BeautifulSoup
>>>>
>>>> today = date.today()
>>>>
>>>> for year in range(2009, 2010):
>>>> startDate = date(year, 1, 1)
>>>> endDate = date(year, 12, 31)
>>>> thirtyOne = timedelta(days=31)
>>>> counts = {}
>>>>
>>>> # Collect all the counts for a year by scraping the monthly author
>>>> archive pages
>>>> while startDate < endDate and startDate < today:
>>>> dateString = startDate.strftime('%Y-%B')
>>>>
>>>> url = 'http://mail.python.org/pipermail/tutor/%s/author.html'
>>>> % dateString
>>>> data = urllib2.urlopen(url).read()
>>>> soup = BeautifulSoup(data)
>>>>
>>>> li = soup.findAll('li')[2:-2]
>>>>
>>>> for l in li:
>>>> name = l.i.string.strip()
>>>> counts[name] = counts.get(name, 0) + 1
>>>>
>>>> startDate += thirtyOne
>>>>
>>>> # Consolidate names that vary by case under the most popular spelling
>>>> nameMap = dict() # Map lower-case name to most popular name
>>>>
>>>> # Use counts.items() so we can delete from the dict.
>>>> for name, count in sorted(counts.items(),
>>>> key=operator.itemgetter(1), reverse=True):
>>>> lower = name.lower()
>>>> if lower in nameMap:
>>>> # Add counts for a name we have seen already and remove the
>>>> duplicate
>>>> counts[nameMap[lower]] += count
>>>> del counts[name]
>>>> else:
>>>> nameMap[lower] = name
>>>>
>>>> totalPosts = sum(counts.itervalues())
>>>> posters = len(counts)
>>>>
>>>> print
>>>> print '%s (%s posts, %s posters)' % (year, totalPosts, posters)
>>>> print '===='
>>>> for name, count in sorted(counts.iteritems(),
>>>> key=operator.itemgetter(1), reverse=True)[:20]:
>>>> pct = round(100.0*count/totalPosts, 1)
>>>> print '%s %s (%s%%)' % (name.encode('utf-8',
>>>> 'xmlcharrefreplace'), count, pct)
>>>> print
I think Kent was referring to "top posters" in the sense that they post a
lot, not that they reply as a top-post.
http://en.wikipedia.org/wiki/Posting_style
Stefan
More information about the Tutor
mailing list