Welcome

-----------------------------------------------------------------
I want you to leave


-----------------------------------------------------------------

Publishing: the simplest Internet service

-----------------------------------------------------------------
The world would be a better place if people simply wrote down what they know and stuck it on the Web. What are the challenges when building this kind of simple site? Killer use of technology: giving users a progress bar showing how much of the important content on the site they've read so far and suggesting something to read next.
-----------------------------------------------------------------

Usability for a straightforward publishing site

----------------------------------------------------------------- More: see http://www.arsdigita.com/asj/nielsen/
-----------------------------------------------------------------

Navigation for a publishing site

----------------------------------------------------------------- More: pages 146 to 149 of Visual Explanations: Images and Quantities, Evidence and Narrative (Tufte 1997; Graphics Press)
-----------------------------------------------------------------

Being user-centered is not enough

-----------------------------------------------------------------
The real power of the Internet for Web publishing is collecting and redistributing multiple perspectives.


-----------------------------------------------------------------

Being a Web publisher might not be enough

-----------------------------------------------------------------
We have to also build services!


-----------------------------------------------------------------

How to build your dream Internet service

-----------------------------------------------------------------


-----------------------------------------------------------------

If it is so easy, why do most sites suck?

-----------------------------------------------------------------
Jakob Nielsen states that what users want are HOME RUN Web sites:
  1. High Quality content
  2. Often Updated
  3. Minimal download time
  4. Ease of use
  5. Relevant to users' needs
  6. Unique to the online medium
  7. Net-centric corporate culture


-----------------------------------------------------------------

Step 3: interface

-----------------------------------------------------------------
In the old Web world, you had to think about: Now you have to think about More on GPRS: http://www.rysavy.com/Articles/GPRS2/gprs2.html; on WAP: http://www.arsdigita.com/asj/wireless/; on i-Mode: http://www.arsdigita.com/asj/imode/.

Drawing below is from http://www.voicexml.org/Review/features/Jan2001_what_is_voicexml.html.
 

-----------------------------------------------------------------

Step 4: Assemble the Team

-----------------------------------------------------------------
We're experts most on the tech stuff. Our best advice is to outsource power and IP to AboveNet, outsource sysadmin and dbadmin if you can find experts that you trust (good luck), and for the tech team make sure that you have (two or three of these may be combined into one physical body)

You can add a few more programmers to a project but if you've got these three roles covered the extra people can be used as raw labor.
-----------------------------------------------------------------

Step 5: Publishing System

-----------------------------------------------------------------
WYSIWYG tools solve the wrong problem; FrontPage has made the average site worse. You need a system to divide labor among You also need version control and scheduling of content. Is it tough to build? No. Our students do it in Problem Set 3. ArsDigita distributes a reasonably complete content management system with ACS. But it is tough to conceive the right workflow for any given organization, which is why almost everyone ends up with partially custom software, even those who spend $millions on packaged "solutions" (only those who start with an open-source system are able to avoid rewriting from scratch).
"As Internet technology advances, new things become suddenly possible. Take content management. Just five years ago, it was almost impossible to waste a million dollars building a Web site. But modern, twenty-first century Internet technology means that any medium-sized organisation with Web ambitions can now pour a seven-digit sum of money straight down the hole almost instantly.

"And one of the easiest and most efficient ways to do this is to buy the wrong Web content management system, or CMS."

-- David Walker (Australian tech journalist)

Forrester report on commercial content management systems estimates the cost for "basic CMS" is $650,000 and concludes by predicting that "Owner satisfaction will be short-lived".

Bottom line: if you start with an off-the-shelf CMS, make sure that it is open-source so that you can adapt it as your required workflow changes.
-----------------------------------------------------------------

Software Engineering for Internet Applications

----------------------------------------------------------------- The last step is the easiest but it is the only one where your choice of tools matters. We'll talk about it a bit in the tools course but for now concentrate on the important stuff: the first three steps.

Data model + page flow = everything important.
-----------------------------------------------------------------

Database Management Systems

----------------------------------------------------------------- Relational databases dominate the market because of good concurrency performance and isolation of important data from programmers' mistakes.
-----------------------------------------------------------------

Intro to SQL: The Mailing List

-----------------------------------------------------------------
create table mailing_list (

        email           varchar(100) not null primary key,

        name            varchar(100)

);



insert into mailing_list (name, email)

values ('Philip Greenspun','philg@mit.edu');



alter table mailing_list add (phone_number varchar(20));



insert into mailing_list (name, email)

values ('Michael O''Grady','ogrady@fastbuck.com');



select * from mailing_list;



EMAIL                     NAME                      PHONE_NUMBER

------------------------- ------------------------- ------------

philg@mit.edu             Philip Greenspun

ogrady@fastbuck.com       Michael O'Grady

-----------------------------------------------------------------

JOINs: The mailing list again.

-----------------------------------------------------------------
drop table mailing_list;



create table mailing_list (

        email           varchar(100) not null primary key,

        name            varchar(100)

);



create table phone_numbers (

        email           varchar(100) not null references mailing_list,

        number_type     varchar(15) check (number_type in ('work','home','cell','beeper')),

        phone_number    varchar(20) not null

);



SQL> insert into phone_numbers values ('ogrady@fastbuck.com','work','(800) 555-1212');



ORA-02291: integrity constraint (SCOTT.SYS_C001080) violated - parent key not found



insert into mailing_list (name, email)

values ('Philip Greenspun','philg@mit.edu');

insert into mailing_list (name, email)

values ('Michael O''Grady','ogrady@fastbuck.com');





insert into phone_numbers values ('ogrady@fastbuck.com','work','(800) 555-1212');

insert into phone_numbers values ('ogrady@fastbuck.com','home','(617) 495-6000');

insert into phone_numbers values ('philg@mit.edu','work','(617) 253-8574'); 

insert into phone_numbers values ('ogrady@fastbuck.com','beper','(617) 222-3456');



ORA-02290: check constraint (SCOTT.SYS_C001079) violated



SQL> select * from mailing_list, phone_numbers;



EMAIL            NAME             EMAIL            TYPE   NUMBER

---------------- ---------------- ---------------- ------ --------------

philg@mit.edu    Philip Greenspun ogrady@fastbuck. work   (800) 555-1212

ogrady@fastbuck. Michael O'Grady  ogrady@fastbuck. work   (800) 555-1212

philg@mit.edu    Philip Greenspun ogrady@fastbuck. home   (617) 495-6000

ogrady@fastbuck. Michael O'Grady  ogrady@fastbuck. home   (617) 495-6000

philg@mit.edu    Philip Greenspun philg@mit.edu    work   (617) 253-8574

ogrady@fastbuck. Michael O'Grady  philg@mit.edu    work   (617) 253-8574



6 rows selected.



-----------------------------------------------------------------

JOINs: Once more with constraints

-----------------------------------------------------------------
select * 

from mailing_list, phone_numbers

where mailing_list.email = phone_numbers.email;



EMAIL            NAME             EMAIL            TYPE   NUMBER

---------------- ---------------- ---------------- ------ --------------

ogrady@fastbuck. Michael O'Grady  ogrady@fastbuck. work   (800) 555-1212

ogrady@fastbuck. Michael O'Grady  ogrady@fastbuck. home   (617) 495-6000

philg@mit.edu    Philip Greenspun philg@mit.edu    work   (617) 253-8574



3 rows selected.



SQL> delete from phone_numbers;



3 rows deleted.



-- better: delete from phone_numbers where email = 'philg@mit.edu';



rollback;



SQL> update mailing_list set name = 'Phil-baby Greenspun' where email = 'philg@mit.edu';



1 row updated.



SQL> select * from mailing_list;



EMAIL                NAME

-------------------- --------------------

philg@mit.edu        Phil-baby Greenspun

ogrady@fastbuck.com  Michael O'Grady



2 rows selected.



-----------------------------------------------------------------

Software Engineering for Nouvelle Internet Applications

-----------------------------------------------------------------
Which is more advanced, photo.net or the Wealth Clock?


-----------------------------------------------------------------

Brave New World: J2EE

-----------------------------------------------------------------
What does Java 2 Enterprise Edition (J2EE) do that a standard Web programming environment does not do? result: application runs 1 million times slower than expected

How much better is spending $millions on J2EE than just using the stuff that comes bundled with Windows NT/2000? Check jobpost.deere.com (one of Sun's advertised success stories) versus www.netflix.com)

Check out http://www.jargonfreeweb.com/ and http://fury.com/aoliza/.

How much better is spending $millions on J2EE than just using whatever free open-source stuff comes with a RedHat Linux CD-ROM? Compare www.delta.com to www.slashdot.org or http://www.lpi.usra.edu/research/lunar_orbiter/.

More: http://www.arsdigita.com/asj/j2ee/ and http://www.arsdigita.com/asj/enhydra/.

Using J2EE without selling your soul to a vendor: JOnAS and JBOSS.
-----------------------------------------------------------------

Braver Newer World I: Microsoft .NET

-----------------------------------------------------------------
What are the good things about Java compared to really primitive languages such as C? Microsoft .NET gives you these things with any computer language.

Plus you can create subclasses across languages. For example, a component developer can build a class in C#. A service developer can create a subclass in Visual Basic that inherits from the C# superclass.

Plus "custom attributes" on methods, combined with comprehensive security architecture: "Nobody can call this otherwise public method unless it is code signed by me"; "Nobody can call this method unless it is code with write permission to /foo/bar.txt".

Plus metadata for each software component loaded:

(Plus a a new computer language to piss off Sun: C# (it is a bit better than Java; no int/Int distinction.))

Using the .NET system without being tied to Microsoft: http://msdn.microsoft.com/net/ECMA/.
-----------------------------------------------------------------

Braver Newer World II: Do computer languages matter?

-----------------------------------------------------------------


-----------------------------------------------------------------

Ecommerce: Would you go into a store where nobody else shops?

-----------------------------------------------------------------


-----------------------------------------------------------------

Ecommerce: keeping track of what the customer already has

-----------------------------------------------------------------
Consider ikhakis.com: Hardest part? Coordinating the purposeful community of customer service folks with a system that integrated phone/email/fax/web interactions into a single database table.

Another example: toyota.arsdigita.com.
-----------------------------------------------------------------

Collaborative Commerce (GE)

-----------------------------------------------------------------
Consider GE Medical Systems: (Note which division GE's new CEO comes from.)
-----------------------------------------------------------------

Collaborative Commerce (Cyrano)

-----------------------------------------------------------------
Cyrano Sciences:


-----------------------------------------------------------------

Planning a Collaborative Commerce Service

-----------------------------------------------------------------
Key questions:


-----------------------------------------------------------------

Required elements for a successful public online community

-----------------------------------------------------------------


-----------------------------------------------------------------

What makes a good community?

-----------------------------------------------------------------
The sociologists (Amitai Etzioni at least) say that to have a community you need To have a good community you need


-----------------------------------------------------------------

Online Community Shibboleths

-----------------------------------------------------------------


-----------------------------------------------------------------

Face-to-Face versus Computer-Mediated Communities

-----------------------------------------------------------------
http://www.hfni.gsehd.gwu.edu/~ccps/E31.html


-----------------------------------------------------------------

Best of Both Worlds?

-----------------------------------------------------------------
The experts say that distance learning doesn't work... but meeting F2F for awhile and then keeping up via distance learning does work. (See "Distance Learning @Harvard.edu" in the July/August 2000 issue of Harvard Magazine)
-----------------------------------------------------------------

Making Sure that Users Can Find the Discussion

-----------------------------------------------------------------


-----------------------------------------------------------------

Rewarding Users for Participation

-----------------------------------------------------------------


-----------------------------------------------------------------

Breakout and Reassemble

-----------------------------------------------------------------


-----------------------------------------------------------------

The Future

-----------------------------------------------------------------
Heat death (maximum entropy), cold death (continuous expansion), or "big crunch" (if we all keep eating). In the meantime...


-----------------------------------------------------------------

Learning More

-----------------------------------------------------------------


-----------------------------------------------------------------