13.07.2015 Views

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

• User #21 contributed Comment #37 on Article #529• User #192 asked Question #512• User #451 posted Answer #3 to Question #924• User #1392 has read Article #456• User #8923 is interested in being alerted when a change ismade to Article #223• User #8923 is interested in being alerted when an answer toQuestion #9213 is postedWe are careful to record authorship because attributed contentcontributes to our chances of building a real community. To offerusers the service of email notifications when someone responds to aquestion or comments on an article, it is necessary to recordauthorship.Why record the fact that a particular user has read, or at leastdownloaded, a particular document? Consider an online learningcommunity of professors and students at a university. It is necessaryto record readership if one wishes to write a robot that sends outmessages like the following:To: Sam <strong>Student</strong>From: <strong>Community</strong> Nag RobotDate: Friday, 4:30 pmSubject: Your Lazy BonesSam,I notice that you have four assignments due onMonday and that youhave not even looked at two of them. I hope thatyou aren't planningto go to a fraternity party tonight instead ofstudying.Very truly yours,Some SQL CodeOnce an online learning community is recording the act ofreadership, it is natural to consider recording whether or not the actof reading proved worthwhile. In general collaborative filtering is thelast refuge of those too cowardly to edit. However, recording "UserChapter 16User Activity AnalysisThis chapter looks at ways that you can monitor user activity withinyour community and how that in<strong>for</strong>mation can be used to personalizea user's experience.16.1 Step 1: Ask the Right QuestionsBe<strong>for</strong>e considering what is technically feasible, it is best to start witha wishlist of the questions about user activity that have relevance <strong>for</strong>your client's application. Here are some starter questions:• What are the URLs that are producing server errors?[answer leads to action: fix broken code]• How many users requested non-existent files and where didthey get the bad URLs? [answer leads to action: fix badlinks]• Are at least 50 percent of users visiting /foobar/, ournewest and most important section? [answer leads toaction: maybe add more pointers to the new section fromother areas of the site]• How popular are the voice and wireless interfaces to theapplication? [answer leads to action: invest more ef<strong>for</strong>t inpopular interfaces]• Which pages are causing users to get stuck and abandontheir sessions? I.e., what are the typical last pages viewedbe<strong>for</strong>e a user disappears <strong>for</strong> the day? [answer leads toaction: clarify user interface or annotation on those pages]• Suppose that we operate an ecommerce site and that we'vepurchased advertisements on Google andwww.nytimes.com. How likely are visitors from those twosources to buy something? How do the dollar amountscompare? [answer leads to action: buy more ads from theplace that sends high-profit users]16.2 Step 2: Look at What's Easily AvailableEvery HTTP server program can be configured to log its actions.Typically the server will write two logs: (1) the "access log",containing one line corresponding to every user request, and (2) the"error log", containing complete in<strong>for</strong>mation about what went wrongduring those requests that resulted in program errors. A "file not64285

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!