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.shash...@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.shash...@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 <ken...@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 _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor