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.

features that are helpful? What features would you add if this wereyour service?What is it about a newspaper that makes it particularly tough <strong>for</strong> thatorganization to act as publisher of an online community?11.7.2 Exercise 9: amazon.comList the features of amazon.com that would seem to lead to moregraceful scaling of their online community. Explain how each featurehelps.11.7.3 Exercise 10: Scaling Plan <strong>for</strong> Your <strong>Community</strong>Open a document at the abstract URL /doc/planning/YYYYMMDDscalingand start writing a scaling plan <strong>for</strong> your community. This planshould list those features that you expect to modify or add as the sitegrows. The features should be grouped by phases.Add a link to your new plan from /doc/ or a planning subindex page.11.7.4 Exercise 11: Implement Phase 1Implement Phase 1 of your scaling plan. This could be as simple asensuring that every time a user's name or email address appears onyour service, the text is an anchor to a page showing all of thatperson's contributions to the community (accountability). Or it couldbe as complex as complete geospatialization. It really depends onhow large a community your client expects to serve in the comingmonths.11.8 Spam-Proofing Public Online CommunitiesA public online community is one in which registration is acceptedfrom any IP address on the public <strong>Internet</strong> and one that servescontent back to the public <strong>Internet</strong>. In a private online community, <strong>for</strong>example, a corporate knowledge sharing system that is behind acompany firewall and that only accepts members who areemployees, you don't have to worry too much about spam, wherespam in this case is defined as "Any content that is off-topic, violatesthe terms of use, is posted multiple times in multiple places, orotherwise is unhelpful to other community members trying to learn."Let's look at some concrete scenarios. Let's assume that we have apublic community in which user-contributed content goes liveimmediately, without having to be approved by a moderator. The222navigation bar, also known as "hierarchical path" or "bread crumbs".Forexample,http://dir.yahoo.com/Arts/Visual_Arts/Photography/Panoramic/contains the following navigation bar:Home > Arts > Visual Arts > Photography > PanoramicNote that this bar grows in size as O[log N] where N is the number ofpages on the site. Showing a full site map or top tabs results in lineargrowth.To answer "Where have I been?", start by not instructing the browserto change the standard link colors. The user will thus be cued by thebrowser <strong>for</strong> any links that have already been visited. If you're carefulwith your programming and consistent with your page titles the userwill be able to right click on the Back button and optionally return toany previous place on your service. Note further that the Yahoo-stylenavigation bar is effective at answering "Where have I been?" <strong>for</strong>users who have actually clicked down from the home page.To answer "Where can I go?" you need ... links! Let the browserdefault to standard colors so that users will perceive the links aslinks. It is generally a bad idea to use rollovers, select boxes, orgraphics. These controls won't work the same from site to site andthere<strong>for</strong>e users may not understand how to use them. These controlsdon't turn have the property that visited links turn a different color;they generally can't or don't tap into the browser's history database.Finally these controls aren't effective at showing the user where he orshe can go because many of the choices are hidden.6.19 Exercise 5: CriticismTake or get a tour of the other projects being built by your classmatesin this course. For each project make sure that you familiarizeyourself with the overall service objectives and the data model. Thenregister as a user and author an article. (If you get stuck on any ofthese steps, contact the team members behind the project by phoneand email and ask them to add links or hints to their server.)Working with your project team members, write a plain text critique ofeach project that you review. Look <strong>for</strong> situations in which the client'srequirements, as expressed in the planning exercise solutions, can'tbe fulfilled with the data model that you see. Look <strong>for</strong> opportunities toprovide constructive criticism. Remember that your classmates don'tneed a self-esteem boost; they need the benefit of your engineeringskills.127

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

Saved successfully!

Ooh no, something went wrong!