voice and mobile interfaces. If present, try them out (the Mobilechapter provides a list of desktop browser-based phone emulators sothat you won't have to use mobile phone; alternatively type "WAPemulator" or "Mobile browser emulator" into a public search engine).Look <strong>for</strong> evidence of personalization and direct controls overpreferences.3.10 Does the World Need More than One Online<strong>Community</strong>?Suppose that in Exercise 3 you found 100 online communities in yoursubject area. Should you be discouraged? A search at amazon.com<strong>for</strong> "aquarium" yields 679 books on the subject of keeping fish athome. The National Center <strong>for</strong> Educational Statistics (nces.ed.gov)found that there were 3913 colleges and universities in the UnitedStates in 1998. The computing world historically has tended towardconcentration. There is only room <strong>for</strong> one or two desktop userinterfaces, one or two word processors, one or two spreadsheets, ahandful of enterprise accounting systems, etc. Two factors preventsimilar concentration in the world of online learning communities.One is the idiosyncracy of authorship. A person may believe thatAnna Karenina is the best novel ever written and simultaneously beinterested in reading C.D. Payne's Youth in Revolt. A person maybelieve that Gone with the Wind will never be excelled and yet stillinvest two hours in Charade. The range of idiosyncracy is narrower inexplicitly tutorial works. Nonetheless one can admit the toweringaccomplishment of Stroebel's Basic Photographic Materials andProcesses and still profit from working through Mastering Black-And-White Photography (Bernhard Seuss 1995).The second <strong>for</strong>ce that prevents concentration in the world of onlinelearning communities is the nature of community itself. ChristopherAlexander argues in A Pattern Language against countries of morethan a few million people:"It is not hard to see why the government of a region becomes lessand less manageable with size. In a population of N persons, thereare of the order of N^2 person-to-person links needed to keepchannels of communication open. Naturally, when N goes beyond acertain limit, the channels of communication needed <strong>for</strong> democracyand justice and in<strong>for</strong>mation are simply too clogged, and too complex;bureaucracy overwhelms human process. ..."We believe the limits are reached when the population of a regionreaches some 2 to 10 million. Beyond this size, people become54computer application that you build, you ought to should prepare anoverview document. This will be a single HTML page containinglinear text that can be read simply by scrolling, i.e., the reader neednot follow any hyperlinks in order to understand your achievement. Itis probably reasonable to expect that you can hold the averageperson's attention <strong>for</strong> four or five screens worth of text andillustrations. What to include in the overview illustrations? In-lineimages of Web or mobile browser screens that display theapplication's capabilities. If the application supports a complexworkflow, perhaps a graphic showing all the states and transitions.Here are some examples done by folks just like yourself:• any of the reports in the 6.171 Project Gallery, Spring, 2002at http://philip.greenspun.com/seia/gallery/spring2002/from an earlier version of this course• http://philip.greenspun.com/seia/gallery/spring1999/arfdigita/• http://philip.greenspun.com/seia/gallery/spring2000/poa/• http://philip.greenspun.com/seia/gallery/fall2000/wap/ (aWAP-only application)• http://philip.greenspun.com/seia/gallery/fall2000/eaa/In case you're looking <strong>for</strong> inspiration, do remember that if Microsoft,Oracle, Red Hat, or Sun products either worked simply or simplyworked, half of the people in the in<strong>for</strong>mation technology industrywould be out of jobs. Also keep in mind that <strong>for</strong> every person readingthis chapter a poor villager in India is learning SQL and Java. A bigsalary can evaporate quickly. Hundreds of thousands of Americanaerospace engineers laid off in the 1970s discovered this. The oneswho'd toiled in obscurity on "landing gear bolt #39" ended up as cabdrivers or greeters at Walmart. A personal professional reputation, bycontrast, is a bit harder to build than the big salary but also harder tolose. If you don't invest some time in writing (prose, not code),however, you'll never have any reputation outside your immediatecircle of colleagues, who themselves may end up working atMcDonald's and be unable to help you get an engineering job duringa recession.17.1 Exercise 1Prepare an overview document <strong>for</strong> the application that you built thissemester. Place the document at /doc/overview on your server.295
Chapter 17WriteupIf I am not <strong>for</strong> myself, who is <strong>for</strong> me?When I am <strong>for</strong> myself, what am I?If not now, when?-- Hillel (circa 70 B.C. - 10 A.D.)If I do not document my results, who will?If the significance of my work is not communicated to others, whatam I?If not now, when?-- philgDo you believe that the world owes you attention? If not, why do youthink that anyone is going to spend 30 minutes surfing around thecommunity that you've built in order to find the most interestingfeatures? In any case, if much of your engineering success isembodied in administration pages, how would someone withoutadmin privileges ever see them?In code reviews at the beginning of this class, we often find studentsproducing source code files without attribution ("I know who wrote it")and Web pages without email signatures ("nobody is actually going touse this"). Maimonides's commentary on Hillel's quote above is that aperson acquires habits of doing right or wrong--virtues and vices--while young; youths should do good deeds now, and not wait untiladulthood. I.e., if you don't take steps to help other users andprogrammers now, as a university student, there is no reason tobelieve that you'll develop habits of virtue post-graduation. Analternative way of thinking about this is to ask yourself how you feelwhen you're stuck trying to use someone else's Web page and thereis no clear way to send feedback or get help. Or how much fun it is tobe reading the source code <strong>for</strong> an application and not have any ideawho wrote it, why, or where to ask questions. Continuing theTalmudic theme of the chapter, keep in mind Hillel's response to agentile interested in Judaism: "That which is hateful to you, do not doto your neighbor. That is the whole Torah; the rest is commentary.Go and study it."A comment header at the top of every source code file and an emailaddress at the bottom of every page. That's a good start towardbuilding a professional reputation. But it isn't enough. For everyremote from the large-scale processes of government. Our estimatemay seem extraordinary in the light of modern history: the nationstateshave grown mightily and their governments hold power overtens of millions, sometimes hundreds of millions, of people. But thesehuge powers cannot claim to have a natural size. They cannot claimto have struck the balance between the needs of towns andcommunities, and the needs of the world community as a whole.Indeed, their tendency has been to override local needs and represslocal culture, and at the same time aggrandize themselves to thepoint where they are out of reach, their power barely conceivable tothe average citizen."If it were possible <strong>for</strong> everyone to pile into a single community andhave a great learning experience, America Online would long agohave subsumed all the smaller communities on the <strong>Internet</strong>. One ofthe later chapters of this book is devoted to the topic of growing anonline community gracefully to a large size. But <strong>for</strong> now rest assuredthat it is a hard problem that nobody has solved. Given sufficientlyhigh quality magnet content and an initial group of people dedicatedto teaching, there will always be room <strong>for</strong> a new learning community.3.11 Exercise 4Identify sources of magnet content <strong>for</strong> your community this semester.If some of this content is going to come from other people, write tothem and ask <strong>for</strong> permission. Even if you're only using their workexperimentally, one concern that an author or publisher might have isthat your site will get indexed by search engines and readers will bemisdirected to your site instead of theirs. In practice, this is not aproblem if your server isn't accessible from the public <strong>Internet</strong> or ifyou include a robots.txt file that will instruct search engines toexclude certain content. You may get a friendlier response fromcopyright holders if you agree to provide a hyperlinked credit and toensure that their content does not become multiply indexed.If you have a client who is supplying all the magnet content, writedown a summary of what is going to be available and when. Next toeach class of documents note the person responsible <strong>for</strong> assemblingand delivering them. As an engineer it isn't your job to assemble anddevelop content but it is your job to identify risks to a project, such as"not enough magnet content" or "nobody has thought about magnetcontent".29455
- Page 1 and 2:
SoftwareEngineering forInternetAppl
- Page 3 and 4: Signature: ________________________
- Page 5 and 6: end-users. We use every opportunity
- Page 7 and 8: • availability of magnet content
- Page 9 and 10: • we want to see if a student is
- Page 11 and 12: you supply English-language queries
- Page 13 and 14: What to do during lecturesWe try to
- Page 15 and 16: The one-term cram courseWhen teachi
- Page 17 and 18: 332• spend a term learning how to
- Page 19 and 20: Once we've taught students how to b
- Page 21 and 22: has permission to perform each task
- Page 23 and 24: UDDIUnixcustomer's credit card. If
- Page 25 and 26: thousands of concurrent users. This
- Page 27 and 28: OraclePerlnamed XYZ" without the pr
- Page 29 and 30: LDAPLinuxbits per color, a vastly s
- Page 31 and 32: FilterFirewallFlat-fileGIF318functi
- Page 33 and 34: when there is an educational dimens
- Page 35 and 36: system. The authors of the core pro
- Page 37 and 38: Sign-OffsTry to schedule comprehens
- Page 39 and 40: scheduling goals that both you and
- Page 41 and 42: Client Tenure In Job (new, mid-term
- Page 43 and 44: ReferencesEngagement ManagementSQL*
- Page 45 and 46: Decision-makers often bring senior
- Page 47 and 48: presentation to a panel of outsider
- Page 49 and 50: 300always been written by programme
- Page 51 and 52: 17.3 Professionalism in the Softwar
- Page 53: Try to make sure that your audience
- Page 57 and 58: Suppose that an RDBMS failure were
- Page 59 and 60: analysis programs analyzing standar
- Page 61 and 62: at 9 hours 11 minutes 59 seconds pa
- Page 63 and 64: found" will result in an access log
- Page 65 and 66: 15.18 Time and MotionThe team shoul
- Page 67 and 68: select 227, 891, 'algorithm', curre
- Page 69 and 70: create table km_object_views (objec
- Page 71 and 72: • object-create• object-display
- Page 73 and 74: The trees chapter of SQL for Web Ne
- Page 75 and 76: );274-- ordering within a form, low
- Page 77 and 78: and start the high-level document f
- Page 79 and 80: Example Ontology 2: FlyingWe want a
- Page 81 and 82: systems. What would a knowledge man
- Page 83 and 84: spreadsheet". Other users can comme
- Page 85 and 86: Chapter 15Metadata (and Automatic C
- Page 87 and 88: {site url}{site description}en-usCo
- Page 89 and 90: drawing on the intermodule API that
- Page 91 and 92: At this point you have something of
- Page 93 and 94: • description• URL for a photo
- Page 95 and 96: Here's a raw SOAP request/response
- Page 97 and 98: Chapter 14Distributed Computing wit
- Page 99 and 100: conduct programmer job interviews h
- Page 101 and 102: Most admin pages can be excluded fr
- Page 103 and 104: content that should distinguish one
- Page 105 and 106:
Chapter 13Planning ReduxA lot has c
- Page 107 and 108:
the Internet-specific problem of no
- Page 109 and 110:
wouldn't see these dirty tricks unl
- Page 111 and 112:
12.8 Exercise 4: Big BrotherGeneral
- Page 113 and 114:
than one call to contains in the sa
- Page 115 and 116:
A third argument against the split
- Page 117 and 118:
way 1 1/16One might argue that this
- Page 119 and 120:
absquatulate 612bedizen 36, 9211cry
- Page 121 and 122:
What if the user typed multiple wor
- Page 123 and 124:
Chapter 12S E A R C HRecall from th
- Page 125 and 126:
long as it is much easier to remove
- Page 127 and 128:
features that are helpful? What fea
- Page 129 and 130:
made it in 1938)? Upon reflection,
- Page 131 and 132:
environment, we identify users by t
- Page 133 and 134:
those updates by no more than 1 min
- Page 135 and 136:
Balancer and mod_backhand, a load b
- Page 137 and 138:
translation had elapsed--the site w
- Page 139 and 140:
It seems reasonable to expect that
- Page 141 and 142:
11.1.5 Transport-Layer EncryptionWh
- Page 143 and 144:
such as ticket bookings would colla
- Page 145 and 146:
give their site a unique look and f
- Page 147 and 148:
It isn't challenging to throw hardw
- Page 149 and 150:
Chapter 11Scaling GracefullyLet's l
- Page 151 and 152:
10.15 Beyond VoiceXML: Conversation
- Page 153 and 154:
Consider that if you're authenticat
- Page 155 and 156:
In this example, we:194• ask the
- Page 157 and 158:
As in any XML document, every openi
- Page 159 and 160:
(http://www.voicegenie.com). These
- Page 161 and 162:
Chapter 10Voice (VoiceXML)questions
- Page 163 and 164:
9.15 MoreStandards information:•
- Page 165 and 166:
9.14 The FutureIn most countries th
- Page 167 and 168:
9.10 Exercise 7: Build a Pulse Page
- Page 169 and 170:
9.6 Keypad HyperlinksLet's look at
- Page 171 and 172:
text/xml,application/xml,applicatio
- Page 173 and 174:
Protocol (IP) routing, a standard H