8.7 Exercise 4: Build the User PagesImplement the user experience that you designed in Exercise 2.8.8 Exercise 5: Build the Admin PagesDesign a set of admin pages. In this case it is usually better to startwith a required list of tasks that must be accomplished. Then try tobuild a page flow that will let the administrator accomplish thosetasks in as few clicks as possible.Recall from the user registration chapter an important user interfaceprinciple to keep in mind: it is more natural <strong>for</strong> most computer usersto pick the noun first and then the verb. For example, the <strong>for</strong>ummoderator might first click on a message's subject line to select it andthen, on a subsequent page, select an action to per<strong>for</strong>m to thismessage: delete, approve, rate, categorize, etc. It is technicallyfeasible to build a system in which the moderator is first asked"Would you like to delete some messages?" and then prompted <strong>for</strong>the messages to be deleted. However, this is not how the AppleMacintosh was designed and there<strong>for</strong>e anyone who has used theMacintosh user interface or its derivatives, notably MicrosoftWindows, will be accustomed to the noun-verb order.This is your community and these are your users. So in the long runonly you can know what administrative actions are most needed. At aminimum, however, you should support the following:160• find the most active contributors• select a contributor to become a co-moderator (presumablyfrom the above list)• approve or disapprove a posting or a thread (this might behandled by more general pages from your contentmanagement system, though remember that moderating adiscussion <strong>for</strong>um ought to be a very streamlined process);note that these functions could be worked into the userpages but only enabled <strong>for</strong> those logged-in users who havemoderator privileges8.9 In-Class PresentationsAt this point we recommend that teams present their functioningdiscussion <strong>for</strong>um implementations. So that the audience can evaluatethe workability of the interface, the <strong>for</strong>ums should be preloaded withYou operate a server and the application. Someone else, perhapsthe phone company, runs the telephone lines and voice browser.Bottom line: voice browsers allow you to build telephone voiceapplications with nothing more than an HTTP server. From this, greatinnovation shall spring.10.1 IllustrationSuppose Tracy, a VP at a Boston-based firm, has just flown into LosAngeles. She wants to know the telephone number and address ofher company's Los Angeles office, as well as the direct number <strong>for</strong>one of the employees. Since her company intranet is not telephoneaccessible,she has to call up her assistant and ask him to open up aWeb browser to look up the in<strong>for</strong>mation in the intranet.With VoiceXML it can take as little as a few hours <strong>for</strong> a developer totake virtually any in<strong>for</strong>mation available on the Web and make itavailable by telephone -- not just to callers with high-tech cellphones,but to anyone with any kind of telephone. Tracy would be able to diala number and say which office or employee she is looking <strong>for</strong>. Aftersearching through some of the intranet's database tables, theVoiceXML application can read aloud the phone numbers andaddresses she wants. And next time Tracy arrives confused in a<strong>for</strong>eign city, she won't have to rely on her assistant being at his desk.10.2 What is VoiceXML?VoiceXML, or VXML, is a markup language like HTML. Thedifference: HTML is rendered by your Web browser to <strong>for</strong>mat contentand user-input <strong>for</strong>ms; VoiceXML is rendered by a voice browser.Your application can speak to the user via synthesized speech or bypre-recorded audio files. Your software can receive input from theuser via speech or by the tones from their telephone keypad. Ifyou've ever built a Web application, you're ready to get started withyour phone application.10.3 How to make your content telephone-accessibleAs in the old days, you can still rent a telephone line and runcommercial voice recognition software and text-to-speech (TTS)conversion software. However, the most interesting aspect of theVoiceXML revolution is that you need not actually do so. There arefree VoiceXML gateways, such as Tellme (http://www.tellme.com),BeVocal (http://www.bevocal.com), and VoiceGenie189
Chapter 10Voice (VoiceXML)questions and answers of realistic length, with material copied fromGoogle Groups if necessary.A suggested outline <strong>for</strong> the presentation is the following:In every computing era, programmers have been responsible <strong>for</strong>writing the fundamental application logic. During the desktopapplication era (1980s), the attention given to this logic was generallydwarfed by that given to the user interface, event handling, andgraphics code that a programming team needed to write to get acomputer program into the hands of users. Result: very littleinnovation at the individual level; most widely used computerprograms were written by large companies.During the Web era (1990s), the user interface and graphics wererendered by the Web browser, e.g., Netscape Navigator or Microsoft<strong>Internet</strong> Explorer. Programmers were able to deliver a completesystem to end-users after writing only the application logic and somesimple HTML specifying the user interface behavior. Result: arevolution in innovation, with most Web applications written in a fewmonths by a handful of people.Suppose that you'd observed that telephones are much morecommon and portable than personal computers and Web browsers.Furthermore, you'd noticed that telephones are able to be used byalmost everyone whereas many consumers have little patience <strong>for</strong>the complexities of the PC. Thus, you'd want to make yourin<strong>for</strong>mation system accessible to a user with only a telephone. Howwould you have done it? In the 1980s, you'd rent a telephone line,buy a big specialized box to recognize utterances, buy anotherspecialized box to talk to the user, and park those boxes right next tothe main server <strong>for</strong> your application. In the 1990s you'd have had torent a telephone line, buy specialized software, and park a standardcomputer running that software next to the server running yourapplication. Result in both decades: very little innovation, with onlythe largest organizations offering voice/telephone interfaces to theirin<strong>for</strong>mation systems.With the advent of today's voice browsers, the coming years promiseto be a period of tremendous innovation in the development oftelephone-accessible <strong>Internet</strong> applications. With a Web application,you operate the HTTP server and run the application code; someoneelse runs the browser. The idea of the voice browser is the same.• explain the kinds of people who are expected to use thediscussion subsystem, e.g., it might be only the siteadministrators (30 seconds)• without logging in or logged in as a casual visitor,demonstrate the pages that show all the <strong>for</strong>ums (if morethan one), questions within a <strong>for</strong>um, and questions andanswers within a single thread (1 minute)• demonstrate responding to an existing question/adding toan existing thread (30 seconds)• demonstrate asking a new question/starting a new thread(30 seconds)• log in as a <strong>for</strong>um moderator or site administrator (15seconds)• demonstrate disapproving or moderating down a posting (30seconds)• demonstrate viewing statistics on <strong>for</strong>um usage andparticipation level by user (1 minute)• show the source code <strong>for</strong> the page that shows a singlethread (one question, many answers), with the SQL query(or queries) highlighted (1 minute)• show the execution plan <strong>for</strong> that query or those queries, i.e.,the output of whatever SQL per<strong>for</strong>mance tracing tool isavailable in the RDBMS chosen <strong>for</strong> this project (1 minute)The presentation should be accompanied by a handout that shows(a) the data model that supports discussion, (b) any SQL codeinvoked by the URL that displays one thread of discussion (pulled outof whatever imperative language scripts it is imbedded in), and (c)the results of the query trace.8.10 UsabilityAt this point your discussion <strong>for</strong>um should work. Users can register.Users can ask questions. Users can post answers. Is it usable? Well,consider that most computer programs were considered perfect atone time by their creator(s). It is only in encounters with real usersthat most problems become evident.188161
- 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 and 54:
Try to make sure that your audience
- Page 55 and 56:
Chapter 17WriteupIf I am not for my
- 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: (http://www.voicegenie.com). These
- 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